@elice/material-assignment 1.240718.3 → 1.240719.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/cjs/_virtual/_rollupPluginBabelHelpers.js +383 -0
  2. package/cjs/components/index.js +9 -0
  3. package/cjs/components/material-assignment/MaterialAssignment.js +23 -17
  4. package/cjs/components/material-assignment/MaterialAssignmentContent.js +281 -194
  5. package/cjs/components/material-assignment/MaterialAssignmentUploadModal.js +181 -138
  6. package/cjs/components/material-assignment/constants/color.js +1 -1
  7. package/cjs/components/material-assignment/index.js +7 -0
  8. package/cjs/components/material-assignment/locales/index.js +13 -0
  9. package/cjs/components/material-assignment-admin/MaterialAssignmentAdmin.js +32 -24
  10. package/cjs/components/material-assignment-admin/MaterialAssignmentAdmin.styled.js +19 -9
  11. package/cjs/components/material-assignment-admin/MaterialAssignmentAdminContent.js +774 -548
  12. package/cjs/components/material-assignment-admin/MaterialAssignmentAdminContentTa.js +436 -303
  13. package/cjs/components/material-assignment-admin/index.js +7 -0
  14. package/cjs/components/shared/MaterialAssignmentContainer.js +23 -13
  15. package/es/_virtual/_rollupPluginBabelHelpers.js +374 -0
  16. package/es/components/index.js +2 -0
  17. package/es/components/material-assignment/MaterialAssignment.js +18 -17
  18. package/es/components/material-assignment/MaterialAssignmentContent.js +276 -194
  19. package/es/components/material-assignment/MaterialAssignmentUploadModal.js +177 -139
  20. package/es/components/material-assignment/constants/color.js +1 -1
  21. package/es/components/material-assignment/index.js +1 -0
  22. package/es/components/material-assignment/locales/index.js +4 -0
  23. package/es/components/material-assignment-admin/MaterialAssignmentAdmin.js +29 -25
  24. package/es/components/material-assignment-admin/MaterialAssignmentAdmin.styled.js +15 -9
  25. package/es/components/material-assignment-admin/MaterialAssignmentAdminContent.js +770 -549
  26. package/es/components/material-assignment-admin/MaterialAssignmentAdminContentTa.js +432 -304
  27. package/es/components/material-assignment-admin/index.js +1 -0
  28. package/es/components/shared/MaterialAssignmentContainer.js +19 -13
  29. package/package.json +9 -12
@@ -1,7 +1,9 @@
1
+ import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
1
3
  import React, { forwardRef } from 'react';
2
4
  import { useForm, Controller } from 'react-hook-form';
3
5
  import { config, getOrgUserGet, getOrgMaterialAssignmentGet, getOrgMaterialAssignmentSubmissionList, getOrgMaterialAssignmentGradeResultGet, getOrgMaterialAssignmentGradeList, postOrgMaterialAssignmentGradeEdit, postOrgMaterialAssignmentGradeResultManualScoreEdit, postOrgMaterialAssignmentGradeDelete } from '@elice/api-client';
4
- import { Notification, Flex, Vspace, ProfileImage, Hspace, Text, Tooltip, Icon, InfoTable, Button, TableNext, IconButton, Pagination, Modal, Label, Input, Textarea, Alert } from '@elice/blocks';
6
+ import { Flex, Vspace, ProfileImage, Hspace, Text, Tooltip, Icon, InfoTable, Button, TableNext, IconButton, Pagination, Modal, Label, Input, Textarea, Alert, Notification } from '@elice/blocks';
5
7
  import { base } from '@elice/design-tokens';
6
8
  import { eilStatusInfo, eilChat, eilDelete, eilArrowRightwardsBasic } from '@elice/icons';
7
9
  import { FormattedDate } from '@elice/intl';
@@ -10,121 +12,173 @@ import dayjs from 'dayjs';
10
12
  import MaterialAssignmentContainer from '../shared/MaterialAssignmentContainer.js';
11
13
  import { StyledMaterialAssignmentAdminHeader, StyledMaterialAssignmentAdminHeaderCell, StyledMaterialAssignmentAdminGradeWrapper, StyledMaterialAssignmentAdminTextareaWrapper, StyledMaterialAssignmentAdminManualScoreEditButtonWrapper, StyledMaterialAssignmentAdminManualScoreEditButton } from './MaterialAssignmentAdmin.styled.js';
12
14
 
13
- const FETCH_GRADE_LIST_COUNT = 5;
14
- const MaterialAssignmentAdminContent = forwardRef(({
15
- materialAssignmentId,
16
- userId,
17
- adminUserId,
18
- updateMaterialUserBrowserResponse
19
- }, ref) => {
15
+ var FETCH_GRADE_LIST_COUNT = 5;
16
+ var MaterialAssignmentAdminContent = forwardRef(function (_ref, ref) {
17
+ var materialAssignmentId = _ref.materialAssignmentId,
18
+ userId = _ref.userId,
19
+ adminUserId = _ref.adminUserId,
20
+ updateMaterialUserBrowserResponse = _ref.updateMaterialUserBrowserResponse;
20
21
  var _a;
21
22
  // Form
22
- const gradeEditFormMethods = useForm({
23
+ var gradeEditFormMethods = useForm({
23
24
  defaultValues: {
24
25
  score: 0,
25
26
  comment: ''
26
27
  },
27
28
  mode: 'onChange'
28
29
  });
29
- const manualScoreEditFormMethods = useForm({
30
+ var manualScoreEditFormMethods = useForm({
30
31
  defaultValues: {
31
32
  manualScore: 0
32
33
  },
33
34
  mode: 'onChange'
34
35
  });
35
36
  // API Status
36
- const isReady = useMaterialConfigApiClientUpdate(config.init);
37
- const [submissionListGetStatus, setSubmissionListGetStatus] = React.useState('idle');
38
- const [gradeDeleteStatus, setGradeDeleteStatus] = React.useState('idle');
37
+ var isReady = useMaterialConfigApiClientUpdate(config.init);
38
+ var _React$useState = React.useState('idle'),
39
+ _React$useState2 = _slicedToArray(_React$useState, 2),
40
+ submissionListGetStatus = _React$useState2[0],
41
+ setSubmissionListGetStatus = _React$useState2[1];
42
+ var _React$useState3 = React.useState('idle'),
43
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
44
+ gradeDeleteStatus = _React$useState4[0],
45
+ setGradeDeleteStatus = _React$useState4[1];
39
46
  // State related with component
40
- const [showGradeEditModal, setShowGradeEditModal] = React.useState(false);
41
- const [showManualScoreEditModal, setShowManualScoreEditModal] = React.useState(false);
42
- const [selectedGradeForShow, setSelectedGradeForShow] = React.useState(null);
43
- const [selectedGradeForDelete, setSelectedGradeForDelete] = React.useState(null);
47
+ var _React$useState5 = React.useState(false),
48
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
49
+ showGradeEditModal = _React$useState6[0],
50
+ setShowGradeEditModal = _React$useState6[1];
51
+ var _React$useState7 = React.useState(false),
52
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
53
+ showManualScoreEditModal = _React$useState8[0],
54
+ setShowManualScoreEditModal = _React$useState8[1];
55
+ var _React$useState9 = React.useState(null),
56
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
57
+ selectedGradeForShow = _React$useState10[0],
58
+ setSelectedGradeForShow = _React$useState10[1];
59
+ var _React$useState11 = React.useState(null),
60
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
61
+ selectedGradeForDelete = _React$useState12[0],
62
+ setSelectedGradeForDelete = _React$useState12[1];
44
63
  // State related with api
45
- const [user, setUser] = React.useState(null);
46
- const [materialAssignment, setMaterialAssignment] = React.useState(null);
47
- const [userSubmission, setUserSubmission] = React.useState(null);
48
- const [myGrade, setMyGrade] = React.useState(null);
49
- const [gradeResult, setGradeResult] = React.useState(null);
50
- const [gradeList, setGradeList] = React.useState([]);
51
- const [gradeListCount, setGradeListCount] = React.useState(0);
52
- const [gradeListPage, setGradeListPage] = React.useState(1);
53
- const gradeListOffset = (gradeListPage - 1) * FETCH_GRADE_LIST_COUNT;
54
- const isAssignmentClosed = dayjs().isAfter(dayjs(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.closeDatetime));
55
- const isScoreFinalized = Boolean(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.scoreFinalizedDatetime);
56
- const isUserSubmitted = Boolean(userSubmission);
57
- const fetchUserGet = React.useCallback(() => {
64
+ var _React$useState13 = React.useState(null),
65
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
66
+ user = _React$useState14[0],
67
+ setUser = _React$useState14[1];
68
+ var _React$useState15 = React.useState(null),
69
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
70
+ materialAssignment = _React$useState16[0],
71
+ setMaterialAssignment = _React$useState16[1];
72
+ var _React$useState17 = React.useState(null),
73
+ _React$useState18 = _slicedToArray(_React$useState17, 2),
74
+ userSubmission = _React$useState18[0],
75
+ setUserSubmission = _React$useState18[1];
76
+ var _React$useState19 = React.useState(null),
77
+ _React$useState20 = _slicedToArray(_React$useState19, 2),
78
+ myGrade = _React$useState20[0],
79
+ setMyGrade = _React$useState20[1];
80
+ var _React$useState21 = React.useState(null),
81
+ _React$useState22 = _slicedToArray(_React$useState21, 2),
82
+ gradeResult = _React$useState22[0],
83
+ setGradeResult = _React$useState22[1];
84
+ var _React$useState23 = React.useState([]),
85
+ _React$useState24 = _slicedToArray(_React$useState23, 2),
86
+ gradeList = _React$useState24[0],
87
+ setGradeList = _React$useState24[1];
88
+ var _React$useState25 = React.useState(0),
89
+ _React$useState26 = _slicedToArray(_React$useState25, 2),
90
+ gradeListCount = _React$useState26[0],
91
+ setGradeListCount = _React$useState26[1];
92
+ var _React$useState27 = React.useState(1),
93
+ _React$useState28 = _slicedToArray(_React$useState27, 2),
94
+ gradeListPage = _React$useState28[0],
95
+ setGradeListPage = _React$useState28[1];
96
+ var gradeListOffset = (gradeListPage - 1) * FETCH_GRADE_LIST_COUNT;
97
+ var isAssignmentClosed = dayjs().isAfter(dayjs(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.closeDatetime));
98
+ var isScoreFinalized = Boolean(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.scoreFinalizedDatetime);
99
+ var isUserSubmitted = Boolean(userSubmission);
100
+ var fetchUserGet = React.useCallback(function () {
58
101
  void getOrgUserGet({
59
- userId
60
- }).then(res => res.user).then(setUser);
102
+ userId: userId
103
+ }).then(function (res) {
104
+ return res.user;
105
+ }).then(setUser);
61
106
  }, [userId]);
62
- const fetchMaterialAssignmentGet = React.useCallback(() => {
107
+ var fetchMaterialAssignmentGet = React.useCallback(function () {
63
108
  void getOrgMaterialAssignmentGet({
64
- materialAssignmentId
65
- }).then(res => res.materialAssignment).then(setMaterialAssignment);
109
+ materialAssignmentId: materialAssignmentId
110
+ }).then(function (res) {
111
+ return res.materialAssignment;
112
+ }).then(setMaterialAssignment);
66
113
  }, [materialAssignmentId]);
67
- const fetchSubmissionList = React.useCallback(() => {
114
+ var fetchSubmissionList = React.useCallback(function () {
68
115
  setSubmissionListGetStatus('pending');
69
116
  void getOrgMaterialAssignmentSubmissionList({
70
- materialAssignmentId,
117
+ materialAssignmentId: materialAssignmentId,
71
118
  offset: 0,
72
119
  count: 1,
73
120
  filterConditions: {
74
121
  isLast: true,
75
122
  userIds: [userId]
76
123
  }
77
- }).then(res => res.materialAssignmentSubmissions[0]).then(submission => {
124
+ }).then(function (res) {
125
+ return res.materialAssignmentSubmissions[0];
126
+ }).then(function (submission) {
78
127
  setUserSubmission(submission !== null && submission !== void 0 ? submission : null);
79
128
  setSubmissionListGetStatus('resolved');
80
- }).catch(err => {
129
+ }).catch(function (err) {
81
130
  console.error(err);
82
131
  setSubmissionListGetStatus('rejected');
83
132
  });
84
133
  }, [materialAssignmentId, userId]);
85
- const fetchGradeResult = React.useCallback(() => {
134
+ var fetchGradeResult = React.useCallback(function () {
86
135
  void getOrgMaterialAssignmentGradeResultGet({
87
- materialAssignmentId,
88
- userId
89
- }).then(res => res.materialAssignmentGradeResult).then(setGradeResult).catch(() => {
136
+ materialAssignmentId: materialAssignmentId,
137
+ userId: userId
138
+ }).then(function (res) {
139
+ return res.materialAssignmentGradeResult;
140
+ }).then(setGradeResult).catch(function () {
90
141
  setGradeResult(null);
91
142
  });
92
143
  }, [materialAssignmentId, userId]);
93
- const fetchGradeList = React.useCallback(() => {
144
+ var fetchGradeList = React.useCallback(function () {
94
145
  void getOrgMaterialAssignmentGradeList({
95
- materialAssignmentId,
146
+ materialAssignmentId: materialAssignmentId,
96
147
  offset: gradeListOffset,
97
148
  count: FETCH_GRADE_LIST_COUNT,
98
149
  filterConditions: {
99
- userId
150
+ userId: userId
100
151
  }
101
- }).then(({
102
- materialAssignmentGrades,
103
- materialAssignmentGradeCount
104
- }) => {
152
+ }).then(function (_ref2) {
153
+ var materialAssignmentGrades = _ref2.materialAssignmentGrades,
154
+ materialAssignmentGradeCount = _ref2.materialAssignmentGradeCount;
105
155
  setGradeList(materialAssignmentGrades);
106
156
  setGradeListCount(materialAssignmentGradeCount);
107
157
  });
108
158
  }, [gradeListOffset, materialAssignmentId, userId]);
109
- const fetchMyGrade = React.useCallback(() => {
159
+ var fetchMyGrade = React.useCallback(function () {
110
160
  void getOrgMaterialAssignmentGradeList({
111
- materialAssignmentId,
161
+ materialAssignmentId: materialAssignmentId,
112
162
  offset: 0,
113
163
  count: 1,
114
164
  filterConditions: {
115
- userId,
165
+ userId: userId,
116
166
  gradeUserId: adminUserId
117
167
  }
118
- }).then(res => res.materialAssignmentGrades[0]).then(grade => setMyGrade(grade !== null && grade !== void 0 ? grade : null));
168
+ }).then(function (res) {
169
+ return res.materialAssignmentGrades[0];
170
+ }).then(function (grade) {
171
+ return setMyGrade(grade !== null && grade !== void 0 ? grade : null);
172
+ });
119
173
  }, [adminUserId, materialAssignmentId, userId]);
120
- const handleManualScoreEditClick = () => {
174
+ var handleManualScoreEditClick = function handleManualScoreEditClick() {
121
175
  var _a, _b;
122
176
  setShowManualScoreEditModal(true);
123
177
  manualScoreEditFormMethods.reset({
124
178
  manualScore: (_b = (_a = gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.manualScore) !== null && _a !== void 0 ? _a : gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.avgCalcScore) !== null && _b !== void 0 ? _b : 0
125
179
  });
126
180
  };
127
- const handleGradeEditClick = () => {
181
+ var handleGradeEditClick = function handleGradeEditClick() {
128
182
  var _a, _b;
129
183
  setShowGradeEditModal(true);
130
184
  gradeEditFormMethods.reset({
@@ -132,82 +186,144 @@ const MaterialAssignmentAdminContent = forwardRef(({
132
186
  comment: (_b = myGrade === null || myGrade === void 0 ? void 0 : myGrade.comment) !== null && _b !== void 0 ? _b : ''
133
187
  });
134
188
  };
135
- const handleGradeEditSubmit = gradeEditFormMethods.handleSubmit(async ({
136
- score,
137
- comment
138
- }) => {
139
- try {
140
- await postOrgMaterialAssignmentGradeEdit({
141
- materialAssignmentGradeId: myGrade === null || myGrade === void 0 ? void 0 : myGrade.id,
142
- materialAssignmentId,
143
- userId,
144
- score,
145
- comment
146
- });
147
- fetchMyGrade();
148
- fetchGradeResult();
149
- fetchGradeList();
150
- if (typeof updateMaterialUserBrowserResponse === 'function') {
151
- updateMaterialUserBrowserResponse(userId);
152
- }
153
- Notification.success('저장되었습니다');
154
- } catch (err) {
155
- console.error(err);
156
- Notification.error('오류가 발생했습니다.');
157
- } finally {
158
- setShowGradeEditModal(false);
159
- }
160
- });
161
- const handleGradeDeleteSubmit = async () => {
162
- if (!selectedGradeForDelete) {
163
- return;
164
- }
165
- try {
166
- setGradeDeleteStatus('pending');
167
- await postOrgMaterialAssignmentGradeDelete({
168
- materialAssignmentGradeId: selectedGradeForDelete.id
169
- });
170
- // If delete my grade, re-fetch my grade data.
171
- if (adminUserId === selectedGradeForDelete.gradeUser.id) {
172
- fetchMyGrade();
173
- }
174
- fetchGradeList();
175
- fetchGradeResult();
176
- setGradeDeleteStatus('resolved');
177
- if (typeof updateMaterialUserBrowserResponse === 'function') {
178
- updateMaterialUserBrowserResponse(userId);
179
- }
180
- Notification.success('저장되었습니다');
181
- } catch (err) {
182
- console.error(err);
183
- setGradeDeleteStatus('rejected');
184
- Notification.error('오류가 발생했습니다.');
185
- } finally {
186
- setSelectedGradeForDelete(null);
187
- }
188
- };
189
- const handleManualScoreEditSubmit = manualScoreEditFormMethods.handleSubmit(async ({
190
- manualScore
191
- }) => {
192
- try {
193
- await postOrgMaterialAssignmentGradeResultManualScoreEdit({
194
- userId,
195
- manualScore,
196
- materialAssignmentId
197
- });
198
- fetchGradeResult();
199
- if (typeof updateMaterialUserBrowserResponse === 'function') {
200
- updateMaterialUserBrowserResponse(userId);
201
- }
202
- Notification.success('저장되었습니다');
203
- } catch (err) {
204
- console.error(err);
205
- Notification.error('오류가 발생했습니다.');
206
- } finally {
207
- setShowManualScoreEditModal(false);
208
- }
209
- });
210
- React.useEffect(() => {
189
+ var handleGradeEditSubmit = gradeEditFormMethods.handleSubmit( /*#__PURE__*/function () {
190
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref3) {
191
+ var score, comment;
192
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
193
+ while (1) switch (_context.prev = _context.next) {
194
+ case 0:
195
+ score = _ref3.score, comment = _ref3.comment;
196
+ _context.prev = 1;
197
+ _context.next = 4;
198
+ return postOrgMaterialAssignmentGradeEdit({
199
+ materialAssignmentGradeId: myGrade === null || myGrade === void 0 ? void 0 : myGrade.id,
200
+ materialAssignmentId: materialAssignmentId,
201
+ userId: userId,
202
+ score: score,
203
+ comment: comment
204
+ });
205
+ case 4:
206
+ fetchMyGrade();
207
+ fetchGradeResult();
208
+ fetchGradeList();
209
+ if (typeof updateMaterialUserBrowserResponse === 'function') {
210
+ updateMaterialUserBrowserResponse(userId);
211
+ }
212
+ Notification.success('저장되었습니다');
213
+ _context.next = 15;
214
+ break;
215
+ case 11:
216
+ _context.prev = 11;
217
+ _context.t0 = _context["catch"](1);
218
+ console.error(_context.t0);
219
+ Notification.error('오류가 발생했습니다.');
220
+ case 15:
221
+ _context.prev = 15;
222
+ setShowGradeEditModal(false);
223
+ return _context.finish(15);
224
+ case 18:
225
+ case "end":
226
+ return _context.stop();
227
+ }
228
+ }, _callee, null, [[1, 11, 15, 18]]);
229
+ }));
230
+ return function (_x) {
231
+ return _ref4.apply(this, arguments);
232
+ };
233
+ }());
234
+ var handleGradeDeleteSubmit = /*#__PURE__*/function () {
235
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
236
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
237
+ while (1) switch (_context2.prev = _context2.next) {
238
+ case 0:
239
+ if (selectedGradeForDelete) {
240
+ _context2.next = 2;
241
+ break;
242
+ }
243
+ return _context2.abrupt("return");
244
+ case 2:
245
+ _context2.prev = 2;
246
+ setGradeDeleteStatus('pending');
247
+ _context2.next = 6;
248
+ return postOrgMaterialAssignmentGradeDelete({
249
+ materialAssignmentGradeId: selectedGradeForDelete.id
250
+ });
251
+ case 6:
252
+ // If delete my grade, re-fetch my grade data.
253
+ if (adminUserId === selectedGradeForDelete.gradeUser.id) {
254
+ fetchMyGrade();
255
+ }
256
+ fetchGradeList();
257
+ fetchGradeResult();
258
+ setGradeDeleteStatus('resolved');
259
+ if (typeof updateMaterialUserBrowserResponse === 'function') {
260
+ updateMaterialUserBrowserResponse(userId);
261
+ }
262
+ Notification.success('저장되었습니다');
263
+ _context2.next = 19;
264
+ break;
265
+ case 14:
266
+ _context2.prev = 14;
267
+ _context2.t0 = _context2["catch"](2);
268
+ console.error(_context2.t0);
269
+ setGradeDeleteStatus('rejected');
270
+ Notification.error('오류가 발생했습니다.');
271
+ case 19:
272
+ _context2.prev = 19;
273
+ setSelectedGradeForDelete(null);
274
+ return _context2.finish(19);
275
+ case 22:
276
+ case "end":
277
+ return _context2.stop();
278
+ }
279
+ }, _callee2, null, [[2, 14, 19, 22]]);
280
+ }));
281
+ return function handleGradeDeleteSubmit() {
282
+ return _ref5.apply(this, arguments);
283
+ };
284
+ }();
285
+ var handleManualScoreEditSubmit = manualScoreEditFormMethods.handleSubmit( /*#__PURE__*/function () {
286
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref6) {
287
+ var manualScore;
288
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
289
+ while (1) switch (_context3.prev = _context3.next) {
290
+ case 0:
291
+ manualScore = _ref6.manualScore;
292
+ _context3.prev = 1;
293
+ _context3.next = 4;
294
+ return postOrgMaterialAssignmentGradeResultManualScoreEdit({
295
+ userId: userId,
296
+ manualScore: manualScore,
297
+ materialAssignmentId: materialAssignmentId
298
+ });
299
+ case 4:
300
+ fetchGradeResult();
301
+ if (typeof updateMaterialUserBrowserResponse === 'function') {
302
+ updateMaterialUserBrowserResponse(userId);
303
+ }
304
+ Notification.success('저장되었습니다');
305
+ _context3.next = 13;
306
+ break;
307
+ case 9:
308
+ _context3.prev = 9;
309
+ _context3.t0 = _context3["catch"](1);
310
+ console.error(_context3.t0);
311
+ Notification.error('오류가 발생했습니다.');
312
+ case 13:
313
+ _context3.prev = 13;
314
+ setShowManualScoreEditModal(false);
315
+ return _context3.finish(13);
316
+ case 16:
317
+ case "end":
318
+ return _context3.stop();
319
+ }
320
+ }, _callee3, null, [[1, 9, 13, 16]]);
321
+ }));
322
+ return function (_x2) {
323
+ return _ref7.apply(this, arguments);
324
+ };
325
+ }());
326
+ React.useEffect(function () {
211
327
  if (!isReady) {
212
328
  return;
213
329
  }
@@ -218,273 +334,346 @@ const MaterialAssignmentAdminContent = forwardRef(({
218
334
  fetchSubmissionList();
219
335
  fetchMaterialAssignmentGet();
220
336
  }, [isReady, fetchUserGet, fetchMyGrade, fetchGradeList, fetchGradeResult, fetchSubmissionList, fetchMaterialAssignmentGet]);
221
- React.useImperativeHandle(ref, () => ({
222
- refreshMaterialAssignment: () => {
223
- fetchMaterialAssignmentGet();
224
- }
225
- }), [fetchMaterialAssignmentGet]);
226
- const renderHeader = () => {
337
+ React.useImperativeHandle(ref, function () {
338
+ return {
339
+ refreshMaterialAssignment: function refreshMaterialAssignment() {
340
+ fetchMaterialAssignmentGet();
341
+ }
342
+ };
343
+ }, [fetchMaterialAssignmentGet]);
344
+ var renderHeader = function renderHeader() {
227
345
  var _a, _b, _c;
228
- return React.createElement(StyledMaterialAssignmentAdminHeader, {
346
+ return jsxs(StyledMaterialAssignmentAdminHeader, {
229
347
  align: "center",
230
348
  padding: "1rem",
231
- width: "100%"
232
- }, React.createElement(Flex, {
233
- auto: true,
234
- align: "center"
235
- }, React.createElement(ProfileImage, {
236
- src: (_a = user === null || user === void 0 ? void 0 : user.profileUrl) !== null && _a !== void 0 ? _a : '',
237
- width: "2.5rem",
238
- height: "2.5rem"
239
- }), React.createElement(Hspace, {
240
- width: 1
241
- }), React.createElement(Text, {
242
- size: "small",
243
- role: "warmwhite"
244
- }, user === null || user === void 0 ? void 0 : user.fullname)), React.createElement(StyledMaterialAssignmentAdminHeaderCell, null, React.createElement(Text, {
245
- size: "tiny",
246
- role: "gray4"
247
- }, "\uC810\uC218"), React.createElement(Text, {
248
- size: "small",
249
- role: "white"
250
- }, gradeResult ? `${(_c = (_b = gradeResult.manualScore) !== null && _b !== void 0 ? _b : gradeResult.avgCalcScore) !== null && _c !== void 0 ? _c : 0}${isScoreFinalized ? '(공개됨)' : '(비공개)'}` : '--')), React.createElement(StyledMaterialAssignmentAdminHeaderCell, null, React.createElement(Text, {
251
- size: "tiny",
252
- role: "gray4"
253
- }, "\uC81C\uCD9C \uC77C\uC2DC"), React.createElement(Text, {
254
- size: "small",
255
- role: "white"
256
- }, userSubmission ? React.createElement(FormattedDate, {
257
- value: userSubmission.createdDatetime,
258
- dateStyle: "medium",
259
- timeStyle: "short"
260
- }) : '--')));
349
+ width: "100%",
350
+ children: [jsxs(Flex, {
351
+ auto: true,
352
+ align: "center",
353
+ children: [jsx(ProfileImage, {
354
+ src: (_a = user === null || user === void 0 ? void 0 : user.profileUrl) !== null && _a !== void 0 ? _a : '',
355
+ width: "2.5rem",
356
+ height: "2.5rem"
357
+ }), jsx(Hspace, {
358
+ width: 1
359
+ }), jsx(Text, {
360
+ size: "small",
361
+ role: "warmwhite",
362
+ children: user === null || user === void 0 ? void 0 : user.fullname
363
+ })]
364
+ }), jsxs(StyledMaterialAssignmentAdminHeaderCell, {
365
+ children: [jsx(Text, {
366
+ size: "tiny",
367
+ role: "gray4",
368
+ children: "\uC810\uC218"
369
+ }), jsx(Text, {
370
+ size: "small",
371
+ role: "white",
372
+ children: gradeResult ? "".concat((_c = (_b = gradeResult.manualScore) !== null && _b !== void 0 ? _b : gradeResult.avgCalcScore) !== null && _c !== void 0 ? _c : 0).concat(isScoreFinalized ? '(공개됨)' : '(비공개)') : '--'
373
+ })]
374
+ }), jsxs(StyledMaterialAssignmentAdminHeaderCell, {
375
+ children: [jsx(Text, {
376
+ size: "tiny",
377
+ role: "gray4",
378
+ children: "\uC81C\uCD9C \uC77C\uC2DC"
379
+ }), jsx(Text, {
380
+ size: "small",
381
+ role: "white",
382
+ children: userSubmission ? jsx(FormattedDate, {
383
+ value: userSubmission.createdDatetime,
384
+ dateStyle: "medium",
385
+ timeStyle: "short"
386
+ }) : '--'
387
+ })]
388
+ })]
389
+ });
261
390
  };
262
- const renderManualScoreEditButton = () => {
263
- return React.createElement(Tooltip, {
391
+ var renderManualScoreEditButton = function renderManualScoreEditButton() {
392
+ return jsx(Tooltip, {
264
393
  placement: "top",
265
394
  title: isUserSubmitted ? '제출 기한이 지난 이후 조정할 수 있습니다.' : '미제출인 경우 조정할 수 없습니다.',
266
- visible: !isAssignmentClosed || !isUserSubmitted ? undefined : false
267
- }, React.createElement(StyledMaterialAssignmentAdminManualScoreEditButtonWrapper, {
268
- disabled: !isAssignmentClosed || !isUserSubmitted
269
- }, React.createElement(StyledMaterialAssignmentAdminManualScoreEditButton, {
270
- disabled: !isAssignmentClosed || !isUserSubmitted,
271
- underline: true,
272
- role: "navy3",
273
- size: "tiny",
274
- onClick: handleManualScoreEditClick
275
- }, "\uC810\uC218 \uC870\uC815\uD558\uAE30")));
395
+ visible: !isAssignmentClosed || !isUserSubmitted ? undefined : false,
396
+ children: jsx(StyledMaterialAssignmentAdminManualScoreEditButtonWrapper, {
397
+ disabled: !isAssignmentClosed || !isUserSubmitted,
398
+ children: jsx(StyledMaterialAssignmentAdminManualScoreEditButton, {
399
+ disabled: !isAssignmentClosed || !isUserSubmitted,
400
+ underline: true,
401
+ role: "navy3",
402
+ size: "tiny",
403
+ onClick: handleManualScoreEditClick,
404
+ children: "\uC810\uC218 \uC870\uC815\uD558\uAE30"
405
+ })
406
+ })
407
+ });
276
408
  };
277
- const renderGradeResult = () => {
409
+ var renderGradeResult = function renderGradeResult() {
278
410
  var _a, _b;
279
- return React.createElement(StyledMaterialAssignmentAdminGradeWrapper, {
411
+ return jsxs(StyledMaterialAssignmentAdminGradeWrapper, {
280
412
  wrap: true,
281
413
  width: "100%",
282
- align: "center"
283
- }, React.createElement(Flex, {
284
- auto: true,
285
- align: "center"
286
- }, React.createElement(Text, {
287
- role: "navy1",
288
- size: "small",
289
- lineHeight: "1.375rem"
290
- }, user ? `${user.fullname} 님의 점수` : null), React.createElement(Hspace, {
291
- width: 0.25
292
- }), React.createElement(Tooltip, {
293
- useMaxWidth: true,
294
- placement: "top",
295
- title: "모든 채점 점수의 평균값이 반영된 종합 점수입니다. 평균값을 사용하지 않으려면 ‘조정하기'를 클릭해 직접 점수를 입력하세요."
296
- }, React.createElement(Icon, {
297
- icon: eilStatusInfo,
298
- color: base.color.navy1
299
- })), React.createElement(Hspace, {
300
- width: 0.75
301
- }), React.createElement(Text, {
302
- bold: true,
303
- role: "white"
304
- }, gradeResult ? `${(_b = (_a = gradeResult.manualScore) !== null && _a !== void 0 ? _a : gradeResult.avgCalcScore) !== null && _b !== void 0 ? _b : 0}${isScoreFinalized ? '(공개됨)' : '(비공개)'}` : '--')), renderManualScoreEditButton());
414
+ align: "center",
415
+ children: [jsxs(Flex, {
416
+ auto: true,
417
+ align: "center",
418
+ children: [jsx(Text, {
419
+ role: "navy1",
420
+ size: "small",
421
+ lineHeight: "1.375rem",
422
+ children: user ? "".concat(user.fullname, " \uB2D8\uC758 \uC810\uC218") : null
423
+ }), jsx(Hspace, {
424
+ width: 0.25
425
+ }), jsx(Tooltip, {
426
+ useMaxWidth: true,
427
+ placement: "top",
428
+ title: "모든 채점 점수의 평균값이 반영된 종합 점수입니다. 평균값을 사용하지 않으려면 ‘조정하기'를 클릭해 직접 점수를 입력하세요.",
429
+ children: jsx(Icon, {
430
+ icon: eilStatusInfo,
431
+ color: base.color.navy1
432
+ })
433
+ }), jsx(Hspace, {
434
+ width: 0.75
435
+ }), jsx(Text, {
436
+ bold: true,
437
+ role: "white",
438
+ children: gradeResult ? "".concat((_b = (_a = gradeResult.manualScore) !== null && _a !== void 0 ? _a : gradeResult.avgCalcScore) !== null && _b !== void 0 ? _b : 0).concat(isScoreFinalized ? '(공개됨)' : '(비공개)') : '--'
439
+ })]
440
+ }), renderManualScoreEditButton()]
441
+ });
305
442
  };
306
- const renderSubmissionInfo = () => {
307
- const statusText = (() => {
443
+ var renderSubmissionInfo = function renderSubmissionInfo() {
444
+ var statusText = function () {
308
445
  if (submissionListGetStatus === 'pending') {
309
446
  return null;
310
447
  }
311
448
  switch (true) {
312
449
  case !isUserSubmitted && isAssignmentClosed:
313
- return React.createElement(Text, {
450
+ return jsx(Text, {
314
451
  bold: true,
315
452
  role: "danger",
316
- size: "small"
317
- }, "\uC81C\uCD9C \uAE30\uD55C \uB9CC\uB8CC");
453
+ size: "small",
454
+ children: "\uC81C\uCD9C \uAE30\uD55C \uB9CC\uB8CC"
455
+ });
318
456
  case isScoreFinalized:
319
- return React.createElement(Text, {
457
+ return jsx(Text, {
320
458
  bold: true,
321
459
  role: "lightpurple",
322
- size: "small"
323
- }, "\uCC44\uC810 \uC644\uB8CC");
460
+ size: "small",
461
+ children: "\uCC44\uC810 \uC644\uB8CC"
462
+ });
324
463
  case isUserSubmitted:
325
- return React.createElement(Text, {
464
+ return jsx(Text, {
326
465
  bold: true,
327
466
  role: "success",
328
- size: "small"
329
- }, "\uC81C\uCD9C\uB428");
467
+ size: "small",
468
+ children: "\uC81C\uCD9C\uB428"
469
+ });
330
470
  case !isUserSubmitted:
331
- return React.createElement(Text, {
471
+ return jsx(Text, {
332
472
  bold: true,
333
473
  role: "warning",
334
- size: "small"
335
- }, "\uBBF8\uC81C\uCD9C");
474
+ size: "small",
475
+ children: "\uBBF8\uC81C\uCD9C"
476
+ });
336
477
  }
337
- })();
338
- const submissionAttachment = (() => {
478
+ }();
479
+ var submissionAttachment = function () {
339
480
  if (!userSubmission) {
340
481
  return '--';
341
482
  }
342
483
  if (userSubmission.assignmentFileUrl) {
343
- const assignmentFilename = decodeURIComponent(userSubmission.assignmentFileUrl && new URL(userSubmission.assignmentFileUrl).pathname.split('/').pop() || '');
344
- return React.createElement("a", {
484
+ var assignmentFilename = decodeURIComponent(userSubmission.assignmentFileUrl && new URL(userSubmission.assignmentFileUrl).pathname.split('/').pop() || '');
485
+ return jsx("a", {
345
486
  href: userSubmission.assignmentFileUrl,
346
487
  download: assignmentFilename,
347
488
  target: "_blank",
348
- rel: "noopener noreferrer"
349
- }, React.createElement(Text, {
350
- hoverable: true,
351
- underline: true,
352
- role: "white",
353
- size: "small"
354
- }, assignmentFilename));
489
+ rel: "noopener noreferrer",
490
+ children: jsx(Text, {
491
+ hoverable: true,
492
+ underline: true,
493
+ role: "white",
494
+ size: "small",
495
+ children: assignmentFilename
496
+ })
497
+ });
355
498
  }
356
499
  if (userSubmission === null || userSubmission === void 0 ? void 0 : userSubmission.assignmentUrl) {
357
- return React.createElement("a", {
500
+ return jsx("a", {
358
501
  href: userSubmission.assignmentUrl,
359
502
  target: "_blank",
360
- rel: "noopener noreferrer"
361
- }, React.createElement(Text, {
362
- hoverable: true,
363
- underline: true,
364
- role: "white",
365
- size: "small"
366
- }, userSubmission.assignmentUrl));
503
+ rel: "noopener noreferrer",
504
+ children: jsx(Text, {
505
+ hoverable: true,
506
+ underline: true,
507
+ role: "white",
508
+ size: "small",
509
+ children: userSubmission.assignmentUrl
510
+ })
511
+ });
367
512
  }
368
- })();
369
- return React.createElement(InfoTable, {
370
- dark: true
371
- }, React.createElement("tbody", null, React.createElement("tr", null, React.createElement("td", null, "\uC0C1\uD0DC"), React.createElement("td", null, statusText)), React.createElement("tr", null, React.createElement("td", null, "\uACFC\uC81C \uC81C\uCD9C \uAE30\uD55C"), React.createElement("td", null, React.createElement(FormattedDate, {
372
- value: materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.closeDatetime,
373
- dateStyle: "medium",
374
- timeStyle: "short"
375
- }))), React.createElement("tr", null, React.createElement("td", null, "\uC81C\uCD9C \uC77C\uC2DC"), React.createElement("td", null, userSubmission ? React.createElement(FormattedDate, {
376
- value: userSubmission.createdDatetime,
377
- dateStyle: "medium",
378
- timeStyle: "short"
379
- }) : '--')), React.createElement("tr", null, React.createElement("td", null, "\uC5C5\uB85C\uB4DC\uB41C \uACFC\uC81C"), React.createElement("td", null, submissionAttachment))));
513
+ }();
514
+ return jsx(InfoTable, {
515
+ dark: true,
516
+ children: jsxs("tbody", {
517
+ children: [jsxs("tr", {
518
+ children: [jsx("td", {
519
+ children: "\uC0C1\uD0DC"
520
+ }), jsx("td", {
521
+ children: statusText
522
+ })]
523
+ }), jsxs("tr", {
524
+ children: [jsx("td", {
525
+ children: "\uACFC\uC81C \uC81C\uCD9C \uAE30\uD55C"
526
+ }), jsx("td", {
527
+ children: jsx(FormattedDate, {
528
+ value: materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.closeDatetime,
529
+ dateStyle: "medium",
530
+ timeStyle: "short"
531
+ })
532
+ })]
533
+ }), jsxs("tr", {
534
+ children: [jsx("td", {
535
+ children: "\uC81C\uCD9C \uC77C\uC2DC"
536
+ }), jsx("td", {
537
+ children: userSubmission ? jsx(FormattedDate, {
538
+ value: userSubmission.createdDatetime,
539
+ dateStyle: "medium",
540
+ timeStyle: "short"
541
+ }) : '--'
542
+ })]
543
+ }), jsxs("tr", {
544
+ children: [jsx("td", {
545
+ children: "\uC5C5\uB85C\uB4DC\uB41C \uACFC\uC81C"
546
+ }), jsx("td", {
547
+ children: submissionAttachment
548
+ })]
549
+ })]
550
+ })
551
+ });
380
552
  };
381
- const renderGradeList = () => {
382
- return React.createElement(Flex, {
553
+ var renderGradeList = function renderGradeList() {
554
+ return jsxs(Flex, {
383
555
  column: true,
384
- align: "center"
385
- }, React.createElement(Flex, {
386
556
  align: "center",
387
- width: "100%"
388
- }, React.createElement(Flex, {
389
- column: true,
390
- auto: true
391
- }, React.createElement(Text, {
392
- block: true,
393
- bold: true,
394
- role: "white",
395
- lineHeight: 1.375
396
- }, "\uCC44\uC810 \uD604\uD669"), React.createElement(Text, {
397
- block: true,
398
- size: "tiny",
399
- role: "navy3",
400
- lineHeight: 1.6
401
- }, "\uCC44\uC810\uC644\uB8CC\uD55C \uCC44\uC810\uC790\uC758 \uC810\uC218\uC640 \uD53C\uB4DC\uBC31\uC744 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4.")), React.createElement(Tooltip, {
402
- placement: "top",
403
- title: isUserSubmitted ? '제출 기한이 지난 이후 채점할 수 있습니다.' : '미제출인 경우 채점할 수 없습니다.',
404
- visible: !isAssignmentClosed || !isUserSubmitted ? undefined : false
405
- }, React.createElement("span", null, React.createElement(Button, {
406
- size: "small",
407
- role: "lightpurple",
408
- disabled: !isAssignmentClosed || !isUserSubmitted,
409
- onClick: handleGradeEditClick
410
- }, Boolean(myGrade) ? '내 채점 수정' : '내 채점 시작')))), React.createElement(Vspace, {
411
- height: 0.75
412
- }), React.createElement(TableNext, {
413
- dark: true,
414
- emptyMessage: "\uCC44\uC810 \uC644\uB8CC\uD55C \uCC44\uC810\uC790\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",
415
- columns: [{
416
- Header: '채점자명',
417
- accessor: 'fullname'
418
- }, {
419
- Header: '과제 점수',
420
- accessor: 'grade'
421
- }, {
422
- Header: '채점 일시',
423
- accessor: 'created',
424
- textAlign: 'left'
425
- }],
426
- data: gradeList.map(grade => ({
427
- fullname: React.createElement(Flex, null, React.createElement(Text, {
428
- noWrap: true,
429
- role: "navy0",
430
- size: "small"
431
- }, `${grade.gradeUser.fullname}${grade.gradeUser.id === adminUserId ? '(나)' : ''}`), React.createElement(Hspace, {
432
- width: 0.25
433
- }), React.createElement(Text, {
434
- ellipsis: true,
435
- role: "navy3",
436
- size: "small"
437
- }, grade.gradeUser.email)),
438
- grade: grade.score,
439
- created: React.createElement(Flex, {
440
- align: "center",
441
- justify: "space-between"
442
- }, React.createElement(FormattedDate, {
443
- value: grade.createdDatetime,
444
- dateStyle: "medium",
445
- timeStyle: "short"
446
- }), React.createElement(Flex, {
447
- align: "center"
448
- }, React.createElement(IconButton, {
449
- icon: eilChat,
450
- size: "tiny",
451
- role: "navy3",
452
- onClick: () => {
453
- setSelectedGradeForShow(grade);
454
- }
455
- }), React.createElement(Hspace, {
456
- width: 0.5
457
- }), React.createElement(IconButton, {
458
- icon: eilDelete,
459
- size: "tiny",
460
- role: "navy3",
461
- onClick: () => {
462
- setSelectedGradeForDelete(grade);
463
- }
464
- })))
465
- }))
466
- }), React.createElement(Vspace, {
467
- height: 0.5
468
- }), React.createElement(Pagination, {
469
- dark: true,
470
- offset: gradeListOffset,
471
- count: FETCH_GRADE_LIST_COUNT,
472
- total: gradeListCount,
473
- isNext: gradeListOffset + FETCH_GRADE_LIST_COUNT < gradeListCount,
474
- isPrev: gradeListOffset > 0,
475
- onClickNext: () => {
476
- setGradeListPage(gradeListPage + 1);
477
- },
478
- onClickPrev: () => {
479
- setGradeListPage(gradeListPage - 1);
480
- }
481
- }));
557
+ children: [jsxs(Flex, {
558
+ align: "center",
559
+ width: "100%",
560
+ children: [jsxs(Flex, {
561
+ column: true,
562
+ auto: true,
563
+ children: [jsx(Text, {
564
+ block: true,
565
+ bold: true,
566
+ role: "white",
567
+ lineHeight: 1.375,
568
+ children: "\uCC44\uC810 \uD604\uD669"
569
+ }), jsx(Text, {
570
+ block: true,
571
+ size: "tiny",
572
+ role: "navy3",
573
+ lineHeight: 1.6,
574
+ children: "\uCC44\uC810\uC644\uB8CC\uD55C \uCC44\uC810\uC790\uC758 \uC810\uC218\uC640 \uD53C\uB4DC\uBC31\uC744 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4."
575
+ })]
576
+ }), jsx(Tooltip, {
577
+ placement: "top",
578
+ title: isUserSubmitted ? '제출 기한이 지난 이후 채점할 수 있습니다.' : '미제출인 경우 채점할 수 없습니다.',
579
+ visible: !isAssignmentClosed || !isUserSubmitted ? undefined : false,
580
+ children: jsx("span", {
581
+ children: jsx(Button, {
582
+ size: "small",
583
+ role: "lightpurple",
584
+ disabled: !isAssignmentClosed || !isUserSubmitted,
585
+ onClick: handleGradeEditClick,
586
+ children: Boolean(myGrade) ? '내 채점 수정' : '내 채점 시작'
587
+ })
588
+ })
589
+ })]
590
+ }), jsx(Vspace, {
591
+ height: 0.75
592
+ }), jsx(TableNext, {
593
+ dark: true,
594
+ emptyMessage: "\uCC44\uC810 \uC644\uB8CC\uD55C \uCC44\uC810\uC790\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",
595
+ columns: [{
596
+ Header: '채점자명',
597
+ accessor: 'fullname'
598
+ }, {
599
+ Header: '과제 점수',
600
+ accessor: 'grade'
601
+ }, {
602
+ Header: '채점 일시',
603
+ accessor: 'created',
604
+ textAlign: 'left'
605
+ }],
606
+ data: gradeList.map(function (grade) {
607
+ return {
608
+ fullname: jsxs(Flex, {
609
+ children: [jsx(Text, {
610
+ noWrap: true,
611
+ role: "navy0",
612
+ size: "small",
613
+ children: "".concat(grade.gradeUser.fullname).concat(grade.gradeUser.id === adminUserId ? '(나)' : '')
614
+ }), jsx(Hspace, {
615
+ width: 0.25
616
+ }), jsx(Text, {
617
+ ellipsis: true,
618
+ role: "navy3",
619
+ size: "small",
620
+ children: grade.gradeUser.email
621
+ })]
622
+ }),
623
+ grade: grade.score,
624
+ created: jsxs(Flex, {
625
+ align: "center",
626
+ justify: "space-between",
627
+ children: [jsx(FormattedDate, {
628
+ value: grade.createdDatetime,
629
+ dateStyle: "medium",
630
+ timeStyle: "short"
631
+ }), jsxs(Flex, {
632
+ align: "center",
633
+ children: [jsx(IconButton, {
634
+ icon: eilChat,
635
+ size: "tiny",
636
+ role: "navy3",
637
+ onClick: function onClick() {
638
+ setSelectedGradeForShow(grade);
639
+ }
640
+ }), jsx(Hspace, {
641
+ width: 0.5
642
+ }), jsx(IconButton, {
643
+ icon: eilDelete,
644
+ size: "tiny",
645
+ role: "navy3",
646
+ onClick: function onClick() {
647
+ setSelectedGradeForDelete(grade);
648
+ }
649
+ })]
650
+ })]
651
+ })
652
+ };
653
+ })
654
+ }), jsx(Vspace, {
655
+ height: 0.5
656
+ }), jsx(Pagination, {
657
+ dark: true,
658
+ offset: gradeListOffset,
659
+ count: FETCH_GRADE_LIST_COUNT,
660
+ total: gradeListCount,
661
+ isNext: gradeListOffset + FETCH_GRADE_LIST_COUNT < gradeListCount,
662
+ isPrev: gradeListOffset > 0,
663
+ onClickNext: function onClickNext() {
664
+ setGradeListPage(gradeListPage + 1);
665
+ },
666
+ onClickPrev: function onClickPrev() {
667
+ setGradeListPage(gradeListPage - 1);
668
+ }
669
+ })]
670
+ });
482
671
  };
483
- const renderGradeEditModal = () => {
672
+ var renderGradeEditModal = function renderGradeEditModal() {
484
673
  if (!showGradeEditModal) {
485
674
  return null;
486
675
  }
487
- return React.createElement(Modal, {
676
+ return jsxs(Modal, {
488
677
  title: Boolean(myGrade) ? '내 채점 수정' : '과제 채점',
489
678
  footerButtons: [{
490
679
  label: '확인',
@@ -497,129 +686,145 @@ const MaterialAssignmentAdminContent = forwardRef(({
497
686
  label: '취소',
498
687
  size: 'small',
499
688
  role: 'gray1',
500
- onClick: () => {
689
+ onClick: function onClick() {
501
690
  setShowGradeEditModal(false);
502
691
  }
503
692
  }],
504
- onHide: () => {
693
+ onHide: function onHide() {
505
694
  setShowGradeEditModal(false);
506
- }
507
- }, React.createElement(Label, {
508
- bold: true,
509
- block: true,
510
- required: true
511
- }, "\uC810\uC218"), React.createElement(Vspace, {
512
- height: 0.5
513
- }), React.createElement(Flex, {
514
- align: "center"
515
- }, React.createElement(Controller, {
516
- control: gradeEditFormMethods.control,
517
- name: "score",
518
- rules: {
519
- required: true,
520
- min: 0,
521
- max: 100
522
695
  },
523
- render: ({
524
- field,
525
- fieldState
526
- }) => React.createElement(Input, Object.assign({}, field, {
527
- invalid: fieldState.invalid,
528
- size: "small",
529
- width: "xsmall",
530
- type: "number"
531
- }))
532
- }), React.createElement(Hspace, {
533
- width: 0.5
534
- }), React.createElement(Text, {
535
- bold: true,
536
- role: "gray9",
537
- size: "small"
538
- }, "\uC810"), React.createElement(Text, {
539
- role: "gray6",
540
- size: "small"
541
- }, ' / 100점 만점')), React.createElement(Vspace, {
542
- height: 1.25
543
- }), React.createElement(Label, {
544
- bold: true,
545
- block: true
546
- }, "\uD53C\uB4DC\uBC31"), React.createElement(Vspace, {
547
- height: 0.5
548
- }), React.createElement(Controller, {
549
- control: gradeEditFormMethods.control,
550
- name: "comment",
551
- rules: {
552
- maxLength: 1000
553
- },
554
- render: ({
555
- field
556
- }) => React.createElement(Textarea, {
557
- value: field.value,
558
- wordLimit: 1000,
559
- rows: 8,
560
- onChange: field.onChange
561
- })
562
- }));
696
+ children: [jsx(Label, {
697
+ bold: true,
698
+ block: true,
699
+ required: true,
700
+ children: "\uC810\uC218"
701
+ }), jsx(Vspace, {
702
+ height: 0.5
703
+ }), jsxs(Flex, {
704
+ align: "center",
705
+ children: [jsx(Controller, {
706
+ control: gradeEditFormMethods.control,
707
+ name: "score",
708
+ rules: {
709
+ required: true,
710
+ min: 0,
711
+ max: 100
712
+ },
713
+ render: function render(_ref8) {
714
+ var field = _ref8.field,
715
+ fieldState = _ref8.fieldState;
716
+ return jsx(Input, Object.assign({}, field, {
717
+ invalid: fieldState.invalid,
718
+ size: "small",
719
+ width: "xsmall",
720
+ type: "number"
721
+ }));
722
+ }
723
+ }), jsx(Hspace, {
724
+ width: 0.5
725
+ }), jsx(Text, {
726
+ bold: true,
727
+ role: "gray9",
728
+ size: "small",
729
+ children: "\uC810"
730
+ }), jsx(Text, {
731
+ role: "gray6",
732
+ size: "small",
733
+ children: ' / 100점 만점'
734
+ })]
735
+ }), jsx(Vspace, {
736
+ height: 1.25
737
+ }), jsx(Label, {
738
+ bold: true,
739
+ block: true,
740
+ children: "\uD53C\uB4DC\uBC31"
741
+ }), jsx(Vspace, {
742
+ height: 0.5
743
+ }), jsx(Controller, {
744
+ control: gradeEditFormMethods.control,
745
+ name: "comment",
746
+ rules: {
747
+ maxLength: 1000
748
+ },
749
+ render: function render(_ref9) {
750
+ var field = _ref9.field;
751
+ return jsx(Textarea, {
752
+ value: field.value,
753
+ wordLimit: 1000,
754
+ rows: 8,
755
+ onChange: field.onChange
756
+ });
757
+ }
758
+ })]
759
+ });
563
760
  };
564
- const renderGradeShowModal = () => {
761
+ var renderGradeShowModal = function renderGradeShowModal() {
565
762
  if (!selectedGradeForShow) {
566
763
  return null;
567
764
  }
568
- return React.createElement(Modal, {
765
+ return jsxs(Modal, {
569
766
  title: "\uCC44\uC810 \uACB0\uACFC \uD655\uC778",
570
767
  footerButtons: [{
571
768
  label: '확인',
572
769
  size: 'small',
573
770
  role: 'primary',
574
- onClick: () => {
771
+ onClick: function onClick() {
575
772
  setSelectedGradeForShow(null);
576
773
  }
577
774
  }],
578
- onHide: () => {
775
+ onHide: function onHide() {
579
776
  setSelectedGradeForShow(null);
580
- }
581
- }, React.createElement(Label, {
582
- bold: true,
583
- block: true,
584
- required: true
585
- }, "\uC810\uC218"), React.createElement(Vspace, {
586
- height: 0.5
587
- }), React.createElement(Flex, {
588
- align: "center"
589
- }, React.createElement(Input, {
590
- disabled: true,
591
- value: selectedGradeForShow.score,
592
- size: "small",
593
- width: "xsmall",
594
- type: "number"
595
- }), React.createElement(Hspace, {
596
- width: 0.5
597
- }), React.createElement(Text, {
598
- bold: true,
599
- role: "gray9",
600
- size: "small"
601
- }, "\uC810"), React.createElement(Text, {
602
- role: "gray6",
603
- size: "small"
604
- }, ' / 100점 만점')), React.createElement(Vspace, {
605
- height: 1.25
606
- }), React.createElement(Label, {
607
- bold: true,
608
- block: true
609
- }, "\uD53C\uB4DC\uBC31"), React.createElement(Vspace, {
610
- height: 0.5
611
- }), React.createElement(StyledMaterialAssignmentAdminTextareaWrapper, null, React.createElement(Textarea, {
612
- disabled: true,
613
- value: selectedGradeForShow.comment,
614
- wordLimit: 1000,
615
- rows: 8
616
- })));
777
+ },
778
+ children: [jsx(Label, {
779
+ bold: true,
780
+ block: true,
781
+ required: true,
782
+ children: "\uC810\uC218"
783
+ }), jsx(Vspace, {
784
+ height: 0.5
785
+ }), jsxs(Flex, {
786
+ align: "center",
787
+ children: [jsx(Input, {
788
+ disabled: true,
789
+ value: selectedGradeForShow.score,
790
+ size: "small",
791
+ width: "xsmall",
792
+ type: "number"
793
+ }), jsx(Hspace, {
794
+ width: 0.5
795
+ }), jsx(Text, {
796
+ bold: true,
797
+ role: "gray9",
798
+ size: "small",
799
+ children: "\uC810"
800
+ }), jsx(Text, {
801
+ role: "gray6",
802
+ size: "small",
803
+ children: ' / 100점 만점'
804
+ })]
805
+ }), jsx(Vspace, {
806
+ height: 1.25
807
+ }), jsx(Label, {
808
+ bold: true,
809
+ block: true,
810
+ children: "\uD53C\uB4DC\uBC31"
811
+ }), jsx(Vspace, {
812
+ height: 0.5
813
+ }), jsx(StyledMaterialAssignmentAdminTextareaWrapper, {
814
+ children: jsx(Textarea, {
815
+ disabled: true,
816
+ value: selectedGradeForShow.comment,
817
+ wordLimit: 1000,
818
+ rows: 8
819
+ })
820
+ })]
821
+ });
617
822
  };
618
- const renderGradeDeleteModal = () => {
823
+ var renderGradeDeleteModal = function renderGradeDeleteModal() {
619
824
  if (!selectedGradeForDelete) {
620
825
  return null;
621
826
  }
622
- return React.createElement(Modal, {
827
+ return jsxs(Modal, {
623
828
  title: "\uCC44\uC810 \uC0AD\uC81C",
624
829
  width: "narrow",
625
830
  footerButtons: [{
@@ -633,47 +838,53 @@ const MaterialAssignmentAdminContent = forwardRef(({
633
838
  label: '취소',
634
839
  size: 'small',
635
840
  role: 'gray1',
636
- onClick: () => {
841
+ onClick: function onClick() {
637
842
  setSelectedGradeForDelete(null);
638
843
  }
639
844
  }],
640
- onHide: () => {
845
+ onHide: function onHide() {
641
846
  setSelectedGradeForDelete(null);
642
- }
643
- }, React.createElement(Text, {
644
- role: "gray9"
645
- }, "\uC0AD\uC81C\uB41C \uC810\uC218\uC640 \uD53C\uB4DC\uBC31\uC740 \uB2E4\uC2DC \uBCF5\uAD6C\uB420 \uC218 \uC5C6\uC73C\uBA70 \uD559\uC0DD\uC758 \uD3C9\uADE0 \uC810\uC218\uAC00 \uBCC0\uACBD\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4."), React.createElement(Vspace, {
646
- height: 0.75
647
- }), React.createElement(TableNext, {
648
- columns: [{
649
- Header: '채점자명',
650
- accessor: 'fullname'
651
- }, {
652
- Header: '최종 점수',
653
- accessor: 'score'
654
- }],
655
- data: [{
656
- fullname: React.createElement(Flex, null, React.createElement(Text, {
657
- noWrap: true,
658
- role: "gray9",
659
- size: "small"
660
- }, selectedGradeForDelete.gradeUser.fullname), React.createElement(Hspace, {
661
- width: 0.25
662
- }), React.createElement(Text, {
663
- ellipsis: true,
664
- role: "gray5",
665
- size: "small"
666
- }, selectedGradeForDelete.gradeUser.email)),
667
- score: selectedGradeForDelete.score
668
- }]
669
- }));
847
+ },
848
+ children: [jsx(Text, {
849
+ role: "gray9",
850
+ children: "\uC0AD\uC81C\uB41C \uC810\uC218\uC640 \uD53C\uB4DC\uBC31\uC740 \uB2E4\uC2DC \uBCF5\uAD6C\uB420 \uC218 \uC5C6\uC73C\uBA70 \uD559\uC0DD\uC758 \uD3C9\uADE0 \uC810\uC218\uAC00 \uBCC0\uACBD\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4."
851
+ }), jsx(Vspace, {
852
+ height: 0.75
853
+ }), jsx(TableNext, {
854
+ columns: [{
855
+ Header: '채점자명',
856
+ accessor: 'fullname'
857
+ }, {
858
+ Header: '최종 점수',
859
+ accessor: 'score'
860
+ }],
861
+ data: [{
862
+ fullname: jsxs(Flex, {
863
+ children: [jsx(Text, {
864
+ noWrap: true,
865
+ role: "gray9",
866
+ size: "small",
867
+ children: selectedGradeForDelete.gradeUser.fullname
868
+ }), jsx(Hspace, {
869
+ width: 0.25
870
+ }), jsx(Text, {
871
+ ellipsis: true,
872
+ role: "gray5",
873
+ size: "small",
874
+ children: selectedGradeForDelete.gradeUser.email
875
+ })]
876
+ }),
877
+ score: selectedGradeForDelete.score
878
+ }]
879
+ })]
880
+ });
670
881
  };
671
- const renderManualScoreEditModal = () => {
882
+ var renderManualScoreEditModal = function renderManualScoreEditModal() {
672
883
  var _a, _b;
673
884
  if (!showManualScoreEditModal) {
674
885
  return null;
675
886
  }
676
- return React.createElement(Modal, {
887
+ return jsxs(Modal, {
677
888
  title: "\uC810\uC218 \uC870\uC815",
678
889
  width: "narrow",
679
890
  footerButtons: [{
@@ -687,76 +898,86 @@ const MaterialAssignmentAdminContent = forwardRef(({
687
898
  label: '취소',
688
899
  size: 'small',
689
900
  role: 'gray1',
690
- onClick: () => {
901
+ onClick: function onClick() {
691
902
  setShowManualScoreEditModal(false);
692
903
  }
693
904
  }],
694
- onHide: () => {
905
+ onHide: function onHide() {
695
906
  setShowManualScoreEditModal(false);
696
- }
697
- }, React.createElement(Alert, {
698
- role: "warning"
699
- }, "\uC810\uC218 \uC870\uC815 \uC774\uD6C4 \uB2E4\uC2DC \uD3C9\uADE0\uAC12\uC73C\uB85C \uB418\uB3CC\uB9B4 \uC218 \uC5C6\uC73C\uB2C8 \uC720\uC758\uD574 \uC8FC\uC138\uC694."), React.createElement(Vspace, {
700
- height: 1
701
- }), React.createElement(Flex, {
702
- align: "center"
703
- }, React.createElement(Input, {
704
- disabled: true,
705
- size: "small",
706
- width: "xsmall",
707
- type: "number",
708
- label: "\uC774\uC804 \uC810\uC218",
709
- value: (_b = (_a = gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.manualScore) !== null && _a !== void 0 ? _a : gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.avgCalcScore) !== null && _b !== void 0 ? _b : 0
710
- }), React.createElement(Hspace, {
711
- width: 1
712
- }), React.createElement(Icon, {
713
- icon: eilArrowRightwardsBasic
714
- }), React.createElement(Hspace, {
715
- width: 1
716
- }), React.createElement(Controller, {
717
- control: manualScoreEditFormMethods.control,
718
- name: "manualScore",
719
- rules: {
720
- required: true,
721
- min: 0,
722
- max: 100
723
907
  },
724
- render: ({
725
- field,
726
- fieldState
727
- }) => React.createElement(Input, Object.assign({}, field, {
728
- invalid: fieldState.invalid,
729
- size: "small",
730
- width: "xsmall",
731
- type: "number",
732
- label: "\uC870\uC815 \uC810\uC218"
733
- }))
734
- }), React.createElement(Hspace, {
735
- width: 0.75
736
- }), React.createElement(Text, {
737
- bold: true,
738
- role: "gray9",
739
- size: "small"
740
- }, "\uC810"), React.createElement(Text, {
741
- role: "gray6",
742
- size: "small"
743
- }, ' / 100점 만점')));
908
+ children: [jsx(Alert, {
909
+ role: "warning",
910
+ children: "\uC810\uC218 \uC870\uC815 \uC774\uD6C4 \uB2E4\uC2DC \uD3C9\uADE0\uAC12\uC73C\uB85C \uB418\uB3CC\uB9B4 \uC218 \uC5C6\uC73C\uB2C8 \uC720\uC758\uD574 \uC8FC\uC138\uC694."
911
+ }), jsx(Vspace, {
912
+ height: 1
913
+ }), jsxs(Flex, {
914
+ align: "center",
915
+ children: [jsx(Input, {
916
+ disabled: true,
917
+ size: "small",
918
+ width: "xsmall",
919
+ type: "number",
920
+ label: "\uC774\uC804 \uC810\uC218",
921
+ value: (_b = (_a = gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.manualScore) !== null && _a !== void 0 ? _a : gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.avgCalcScore) !== null && _b !== void 0 ? _b : 0
922
+ }), jsx(Hspace, {
923
+ width: 1
924
+ }), jsx(Icon, {
925
+ icon: eilArrowRightwardsBasic
926
+ }), jsx(Hspace, {
927
+ width: 1
928
+ }), jsx(Controller, {
929
+ control: manualScoreEditFormMethods.control,
930
+ name: "manualScore",
931
+ rules: {
932
+ required: true,
933
+ min: 0,
934
+ max: 100
935
+ },
936
+ render: function render(_ref10) {
937
+ var field = _ref10.field,
938
+ fieldState = _ref10.fieldState;
939
+ return jsx(Input, Object.assign({}, field, {
940
+ invalid: fieldState.invalid,
941
+ size: "small",
942
+ width: "xsmall",
943
+ type: "number",
944
+ label: "\uC870\uC815 \uC810\uC218"
945
+ }));
946
+ }
947
+ }), jsx(Hspace, {
948
+ width: 0.75
949
+ }), jsx(Text, {
950
+ bold: true,
951
+ role: "gray9",
952
+ size: "small",
953
+ children: "\uC810"
954
+ }), jsx(Text, {
955
+ role: "gray6",
956
+ size: "small",
957
+ children: ' / 100점 만점'
958
+ })]
959
+ })]
960
+ });
744
961
  };
745
- return React.createElement(React.Fragment, null, renderHeader(), React.createElement(Flex, {
746
- column: true,
747
- auto: true,
748
- padding: "3.625rem",
749
- width: "100%",
750
- height: "100%",
751
- overflow: "hidden",
752
- align: "center"
753
- }, React.createElement(MaterialAssignmentContainer, {
754
- title: (_a = materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.title) !== null && _a !== void 0 ? _a : ''
755
- }, renderGradeResult(), React.createElement(Vspace, {
756
- height: 1.25
757
- }), renderSubmissionInfo(), React.createElement(Vspace, {
758
- height: 1.5
759
- }), renderGradeList())), renderGradeEditModal(), renderGradeShowModal(), renderGradeDeleteModal(), renderManualScoreEditModal());
962
+ return jsxs(Fragment, {
963
+ children: [renderHeader(), jsx(Flex, {
964
+ column: true,
965
+ auto: true,
966
+ padding: "3.625rem",
967
+ width: "100%",
968
+ height: "100%",
969
+ overflow: "hidden",
970
+ align: "center",
971
+ children: jsxs(MaterialAssignmentContainer, {
972
+ title: (_a = materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.title) !== null && _a !== void 0 ? _a : '',
973
+ children: [renderGradeResult(), jsx(Vspace, {
974
+ height: 1.25
975
+ }), renderSubmissionInfo(), jsx(Vspace, {
976
+ height: 1.5
977
+ }), renderGradeList()]
978
+ })
979
+ }), renderGradeEditModal(), renderGradeShowModal(), renderGradeDeleteModal(), renderManualScoreEditModal()]
980
+ });
760
981
  });
761
982
 
762
983
  export { MaterialAssignmentAdminContent as default };