@elice/material-assignment 1.240718.0-trasncript.2 → 1.240718.1

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