@elice/material-assignment 1.240306.0-runboxtutoring.0 → 1.240306.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 (63) hide show
  1. package/cjs/components/material-assignment/MaterialAssignment.d.ts +3 -3
  2. package/cjs/components/material-assignment/MaterialAssignment.js +22 -34
  3. package/cjs/components/material-assignment/MaterialAssignmentContent.js +195 -299
  4. package/cjs/components/material-assignment/MaterialAssignmentUploadModal.js +142 -185
  5. package/cjs/components/material-assignment/locales.d.ts +39 -0
  6. package/cjs/components/material-assignment/locales.js +81 -0
  7. package/cjs/components/material-assignment-admin/MaterialAssignmentAdmin.d.ts +2 -4
  8. package/cjs/components/material-assignment-admin/MaterialAssignmentAdmin.js +26 -35
  9. package/cjs/components/material-assignment-admin/MaterialAssignmentAdmin.styled.d.ts +2 -0
  10. package/cjs/components/material-assignment-admin/MaterialAssignmentAdmin.styled.js +17 -19
  11. package/cjs/components/material-assignment-admin/MaterialAssignmentAdminContent.js +565 -863
  12. package/cjs/components/material-assignment-admin/MaterialAssignmentAdminContentTa.js +314 -467
  13. package/cjs/components/shared/MaterialAssignmentContainer.js +13 -23
  14. package/es/components/material-assignment/MaterialAssignment.d.ts +3 -3
  15. package/es/components/material-assignment/MaterialAssignment.js +23 -29
  16. package/es/components/material-assignment/MaterialAssignmentContent.js +193 -292
  17. package/es/components/material-assignment/MaterialAssignmentUploadModal.js +140 -178
  18. package/es/components/material-assignment/locales.d.ts +39 -0
  19. package/es/components/material-assignment/locales.js +78 -0
  20. package/es/components/material-assignment-admin/MaterialAssignmentAdmin.d.ts +2 -4
  21. package/es/components/material-assignment-admin/MaterialAssignmentAdmin.js +27 -32
  22. package/es/components/material-assignment-admin/MaterialAssignmentAdmin.styled.d.ts +2 -0
  23. package/es/components/material-assignment-admin/MaterialAssignmentAdmin.styled.js +16 -16
  24. package/es/components/material-assignment-admin/MaterialAssignmentAdminContent.js +567 -860
  25. package/es/components/material-assignment-admin/MaterialAssignmentAdminContentTa.js +316 -464
  26. package/es/components/shared/MaterialAssignmentContainer.js +13 -19
  27. package/package.json +15 -12
  28. package/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -383
  29. package/cjs/components/index.js +0 -9
  30. package/cjs/components/material-assignment/constants/color.d.ts +0 -1
  31. package/cjs/components/material-assignment/constants/color.js +0 -5
  32. package/cjs/components/material-assignment/index.js +0 -7
  33. package/cjs/components/material-assignment/locales/en.json.js +0 -7
  34. package/cjs/components/material-assignment/locales/index.d.ts +0 -4
  35. package/cjs/components/material-assignment/locales/index.js +0 -13
  36. package/cjs/components/material-assignment/locales/ja.json.js +0 -7
  37. package/cjs/components/material-assignment/locales/ko.json.js +0 -7
  38. package/cjs/components/material-assignment/locales/th.json.js +0 -7
  39. package/cjs/components/material-assignment-admin/index.js +0 -7
  40. package/cjs/components/material-assignment-admin/locales/en.json.js +0 -7
  41. package/cjs/components/material-assignment-admin/locales/index.d.ts +0 -4
  42. package/cjs/components/material-assignment-admin/locales/index.js +0 -13
  43. package/cjs/components/material-assignment-admin/locales/ja.json.js +0 -7
  44. package/cjs/components/material-assignment-admin/locales/ko.json.js +0 -7
  45. package/cjs/components/material-assignment-admin/locales/th.json.js +0 -7
  46. package/es/_virtual/_rollupPluginBabelHelpers.js +0 -374
  47. package/es/components/index.js +0 -2
  48. package/es/components/material-assignment/constants/color.d.ts +0 -1
  49. package/es/components/material-assignment/constants/color.js +0 -3
  50. package/es/components/material-assignment/index.js +0 -1
  51. package/es/components/material-assignment/locales/en.json.js +0 -3
  52. package/es/components/material-assignment/locales/index.d.ts +0 -4
  53. package/es/components/material-assignment/locales/index.js +0 -4
  54. package/es/components/material-assignment/locales/ja.json.js +0 -3
  55. package/es/components/material-assignment/locales/ko.json.js +0 -3
  56. package/es/components/material-assignment/locales/th.json.js +0 -3
  57. package/es/components/material-assignment-admin/index.js +0 -1
  58. package/es/components/material-assignment-admin/locales/en.json.js +0 -3
  59. package/es/components/material-assignment-admin/locales/index.d.ts +0 -4
  60. package/es/components/material-assignment-admin/locales/index.js +0 -4
  61. package/es/components/material-assignment-admin/locales/ja.json.js +0 -3
  62. package/es/components/material-assignment-admin/locales/ko.json.js +0 -3
  63. package/es/components/material-assignment-admin/locales/th.json.js +0 -3
@@ -1,25 +1,23 @@
1
- import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
1
  import React from 'react';
4
2
  import { useForm, Controller } from 'react-hook-form';
3
+ import { FormattedDate } from 'react-intl';
5
4
  import { config, getOrgUserGet, getOrgMaterialAssignmentGet, getOrgMaterialAssignmentSubmissionList, getOrgMaterialAssignmentGradeResultGet, getOrgMaterialAssignmentGradeList, postOrgMaterialAssignmentGradeEdit } from '@elice/api-client';
6
- import { Flex, Vspace, Notification, Text, Hspace, Tooltip, Icon, InfoTable, Button, TableNext, Modal, Label, Input, Textarea } from '@elice/blocks';
5
+ import { Notification, Flex, Vspace, ProfileImage, Hspace, Text, Tooltip, Icon, InfoTable, Button, TableNext, Modal, Label, Input, Textarea } from '@elice/blocks';
7
6
  import { base } from '@elice/design-tokens';
8
7
  import { eilStatusInfo } from '@elice/icons';
9
- import { useRawEliceIntl, FormattedDate } from '@elice/intl';
10
8
  import { useMaterialConfigApiClientUpdate } from '@elice/material-shared-utils';
11
9
  import dayjs from 'dayjs';
12
10
  import MaterialAssignmentContainer from '../shared/MaterialAssignmentContainer.js';
13
- import { StyledMaterialAssignmentAdminGradeWrapper } from './MaterialAssignmentAdmin.styled.js';
11
+ import { StyledMaterialAssignmentAdminHeader, StyledMaterialAssignmentAdminHeaderCell, StyledMaterialAssignmentAdminGradeWrapper } from './MaterialAssignmentAdmin.styled.js';
14
12
 
15
- var MaterialAssignmentAdminContentTa = function MaterialAssignmentAdminContentTa(_ref) {
16
- var materialAssignmentId = _ref.materialAssignmentId,
17
- userId = _ref.userId,
18
- adminUserId = _ref.adminUserId;
13
+ const MaterialAssignmentAdminContentTa = ({
14
+ materialAssignmentId,
15
+ userId,
16
+ adminUserId
17
+ }) => {
19
18
  var _a;
20
- var intl = useRawEliceIntl();
21
19
  // Form
22
- var gradeEditFormMethods = useForm({
20
+ const gradeEditFormMethods = useForm({
23
21
  defaultValues: {
24
22
  score: 0,
25
23
  comment: ''
@@ -27,100 +25,67 @@ var MaterialAssignmentAdminContentTa = function MaterialAssignmentAdminContentTa
27
25
  mode: 'onChange'
28
26
  });
29
27
  // State related with component
30
- var _React$useState = React.useState(false),
31
- _React$useState2 = _slicedToArray(_React$useState, 2),
32
- showGradeEditModal = _React$useState2[0],
33
- setShowGradeEditModal = _React$useState2[1];
28
+ const [showGradeEditModal, setShowGradeEditModal] = React.useState(false);
34
29
  // State related with api
35
- var _React$useState3 = React.useState(null),
36
- _React$useState4 = _slicedToArray(_React$useState3, 2),
37
- user = _React$useState4[0],
38
- setUser = _React$useState4[1];
39
- var _React$useState5 = React.useState(null),
40
- _React$useState6 = _slicedToArray(_React$useState5, 2),
41
- materialAssignment = _React$useState6[0],
42
- setMaterialAssignment = _React$useState6[1];
43
- var _React$useState7 = React.useState(null),
44
- _React$useState8 = _slicedToArray(_React$useState7, 2),
45
- userSubmission = _React$useState8[0],
46
- setUserSubmission = _React$useState8[1];
47
- var _React$useState9 = React.useState(null),
48
- _React$useState10 = _slicedToArray(_React$useState9, 2),
49
- gradeResult = _React$useState10[0],
50
- setGradeResult = _React$useState10[1];
51
- var _React$useState11 = React.useState(null),
52
- _React$useState12 = _slicedToArray(_React$useState11, 2),
53
- myGrade = _React$useState12[0],
54
- setMyGrade = _React$useState12[1];
55
- var isAssignmentClosed = dayjs().isAfter(dayjs(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.closeDatetime));
56
- var isScoreFinalized = Boolean(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.scoreFinalizedDatetime);
57
- var isUserSubmitted = Boolean(userSubmission);
30
+ const [user, setUser] = React.useState(null);
31
+ const [materialAssignment, setMaterialAssignment] = React.useState(null);
32
+ const [userSubmission, setUserSubmission] = React.useState(null);
33
+ const [gradeResult, setGradeResult] = React.useState(null);
34
+ const [myGrade, setMyGrade] = React.useState(null);
35
+ const isAssignmentClosed = dayjs().isAfter(dayjs(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.closeDatetime));
36
+ const isScoreFinalized = Boolean(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.scoreFinalizedDatetime);
37
+ const isUserSubmitted = Boolean(userSubmission);
58
38
  // API Status
59
- var isReady = useMaterialConfigApiClientUpdate(config.init);
60
- var _React$useState13 = React.useState('idle'),
61
- _React$useState14 = _slicedToArray(_React$useState13, 2),
62
- submissionListGetStatus = _React$useState14[0],
63
- setSubmissionListGetStatus = _React$useState14[1];
64
- var fetchUserGet = React.useCallback(function () {
39
+ const isReady = useMaterialConfigApiClientUpdate(config.init);
40
+ const [submissionListGetStatus, setSubmissionListGetStatus] = React.useState('idle');
41
+ const fetchUserGet = React.useCallback(() => {
65
42
  void getOrgUserGet({
66
- userId: userId
67
- }).then(function (res) {
68
- return res.user;
69
- }).then(setUser);
43
+ userId
44
+ }).then(res => res.user).then(setUser);
70
45
  }, [userId]);
71
- var fetchMaterialAssignmentGet = React.useCallback(function () {
46
+ const fetchMaterialAssignmentGet = React.useCallback(() => {
72
47
  void getOrgMaterialAssignmentGet({
73
- materialAssignmentId: materialAssignmentId
74
- }).then(function (res) {
75
- return res.materialAssignment;
76
- }).then(setMaterialAssignment);
48
+ materialAssignmentId
49
+ }).then(res => res.materialAssignment).then(setMaterialAssignment);
77
50
  }, [materialAssignmentId]);
78
- var fetchSubmissionList = React.useCallback(function () {
51
+ const fetchSubmissionList = React.useCallback(() => {
79
52
  setSubmissionListGetStatus('pending');
80
53
  void getOrgMaterialAssignmentSubmissionList({
81
- materialAssignmentId: materialAssignmentId,
54
+ materialAssignmentId,
82
55
  offset: 0,
83
56
  count: 1,
84
57
  filterConditions: {
85
58
  isLast: true,
86
59
  userIds: [userId]
87
60
  }
88
- }).then(function (res) {
89
- return res.materialAssignmentSubmissions[0];
90
- }).then(function (submission) {
61
+ }).then(res => res.materialAssignmentSubmissions[0]).then(submission => {
91
62
  setUserSubmission(submission !== null && submission !== void 0 ? submission : null);
92
63
  setSubmissionListGetStatus('resolved');
93
- }).catch(function (err) {
64
+ }).catch(err => {
94
65
  console.error(err);
95
66
  setSubmissionListGetStatus('rejected');
96
67
  });
97
68
  }, [materialAssignmentId, userId]);
98
- var fetchGradeResult = React.useCallback(function () {
69
+ const fetchGradeResult = React.useCallback(() => {
99
70
  void getOrgMaterialAssignmentGradeResultGet({
100
- materialAssignmentId: materialAssignmentId,
101
- userId: userId
102
- }).then(function (res) {
103
- return res.materialAssignmentGradeResult;
104
- }).then(setGradeResult).catch(function () {
71
+ materialAssignmentId,
72
+ userId
73
+ }).then(res => res.materialAssignmentGradeResult).then(setGradeResult).catch(() => {
105
74
  setGradeResult(null);
106
75
  });
107
76
  }, [materialAssignmentId, userId]);
108
- var fetchMyGrade = React.useCallback(function () {
77
+ const fetchMyGrade = React.useCallback(() => {
109
78
  void getOrgMaterialAssignmentGradeList({
110
- materialAssignmentId: materialAssignmentId,
79
+ materialAssignmentId,
111
80
  offset: 0,
112
81
  count: 1,
113
82
  filterConditions: {
114
- userId: userId,
83
+ userId,
115
84
  gradeUserId: adminUserId
116
85
  }
117
- }).then(function (res) {
118
- return res.materialAssignmentGrades[0];
119
- }).then(function (grade) {
120
- return setMyGrade(grade !== null && grade !== void 0 ? grade : null);
121
- });
86
+ }).then(res => res.materialAssignmentGrades[0]).then(grade => setMyGrade(grade !== null && grade !== void 0 ? grade : null));
122
87
  }, [adminUserId, materialAssignmentId, userId]);
123
- var handleGradeEditClick = function handleGradeEditClick() {
88
+ const handleGradeEditClick = () => {
124
89
  var _a, _b;
125
90
  setShowGradeEditModal(true);
126
91
  gradeEditFormMethods.reset({
@@ -128,51 +93,28 @@ var MaterialAssignmentAdminContentTa = function MaterialAssignmentAdminContentTa
128
93
  comment: (_b = myGrade === null || myGrade === void 0 ? void 0 : myGrade.comment) !== null && _b !== void 0 ? _b : ''
129
94
  });
130
95
  };
131
- var handleGradeEditSubmit = gradeEditFormMethods.handleSubmit( /*#__PURE__*/function () {
132
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
133
- var score, comment;
134
- return _regeneratorRuntime().wrap(function _callee$(_context) {
135
- while (1) switch (_context.prev = _context.next) {
136
- case 0:
137
- score = _ref2.score, comment = _ref2.comment;
138
- _context.prev = 1;
139
- _context.next = 4;
140
- return postOrgMaterialAssignmentGradeEdit({
141
- materialAssignmentGradeId: myGrade === null || myGrade === void 0 ? void 0 : myGrade.id,
142
- materialAssignmentId: materialAssignmentId,
143
- userId: userId,
144
- score: score,
145
- comment: comment
146
- });
147
- case 4:
148
- fetchMyGrade();
149
- Notification.success(intl.formatMessage({
150
- id: 'materialAssignment.notify.success'
151
- }));
152
- _context.next = 12;
153
- break;
154
- case 8:
155
- _context.prev = 8;
156
- _context.t0 = _context["catch"](1);
157
- console.error(_context.t0);
158
- Notification.error(intl.formatMessage({
159
- id: 'materialAssignment.notify.error'
160
- }));
161
- case 12:
162
- _context.prev = 12;
163
- setShowGradeEditModal(false);
164
- return _context.finish(12);
165
- case 15:
166
- case "end":
167
- return _context.stop();
168
- }
169
- }, _callee, null, [[1, 8, 12, 15]]);
170
- }));
171
- return function (_x) {
172
- return _ref3.apply(this, arguments);
173
- };
174
- }());
175
- React.useEffect(function () {
96
+ const handleGradeEditSubmit = gradeEditFormMethods.handleSubmit(async ({
97
+ score,
98
+ comment
99
+ }) => {
100
+ try {
101
+ await postOrgMaterialAssignmentGradeEdit({
102
+ materialAssignmentGradeId: myGrade === null || myGrade === void 0 ? void 0 : myGrade.id,
103
+ materialAssignmentId,
104
+ userId,
105
+ score,
106
+ comment
107
+ });
108
+ fetchMyGrade();
109
+ Notification.success('저장되었습니다');
110
+ } catch (err) {
111
+ console.error(err);
112
+ Notification.error('오류가 발생했습니다.');
113
+ } finally {
114
+ setShowGradeEditModal(false);
115
+ }
116
+ });
117
+ React.useEffect(() => {
176
118
  if (!isReady) {
177
119
  return;
178
120
  }
@@ -182,410 +124,320 @@ var MaterialAssignmentAdminContentTa = function MaterialAssignmentAdminContentTa
182
124
  fetchSubmissionList();
183
125
  fetchMaterialAssignmentGet();
184
126
  }, [isReady, fetchUserGet, fetchMyGrade, fetchGradeResult, fetchSubmissionList, fetchMaterialAssignmentGet]);
185
- var renderGradeResult = function renderGradeResult() {
186
- return jsx(StyledMaterialAssignmentAdminGradeWrapper, {
127
+ const renderHeader = () => {
128
+ var _a;
129
+ return React.createElement(StyledMaterialAssignmentAdminHeader, {
130
+ align: "center",
131
+ padding: "1rem",
132
+ width: "100%"
133
+ }, React.createElement(Flex, {
134
+ auto: true,
135
+ align: "center"
136
+ }, React.createElement(ProfileImage, {
137
+ src: (_a = user === null || user === void 0 ? void 0 : user.profileUrl) !== null && _a !== void 0 ? _a : '',
138
+ width: "2.5rem",
139
+ height: "2.5rem"
140
+ }), React.createElement(Hspace, {
141
+ width: 1
142
+ }), React.createElement(Text, {
143
+ size: "small",
144
+ role: "warmwhite"
145
+ }, user === null || user === void 0 ? void 0 : user.fullname)), React.createElement(StyledMaterialAssignmentAdminHeaderCell, null, React.createElement(Text, {
146
+ size: "tiny",
147
+ role: "gray4"
148
+ }, "\uC810\uC218"), React.createElement(Text, {
149
+ size: "small",
150
+ role: "white"
151
+ }, (gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.score) && isScoreFinalized ? `${gradeResult.score}점(공개됨)` : '--')), React.createElement(StyledMaterialAssignmentAdminHeaderCell, null, React.createElement(Text, {
152
+ size: "tiny",
153
+ role: "gray4"
154
+ }, "\uC81C\uCD9C \uC77C\uC2DC"), React.createElement(Text, {
155
+ size: "small",
156
+ role: "white"
157
+ }, userSubmission ? React.createElement(FormattedDate, {
158
+ value: userSubmission.createdDatetime,
159
+ dateStyle: "medium",
160
+ timeStyle: "short"
161
+ }) : '--')));
162
+ };
163
+ const renderGradeResult = () => {
164
+ return React.createElement(StyledMaterialAssignmentAdminGradeWrapper, {
187
165
  wrap: true,
188
166
  width: "100%",
189
- align: "center",
190
- children: jsxs(Flex, {
191
- auto: true,
192
- align: "center",
193
- children: [jsx(Text, {
194
- role: "navy1",
195
- size: "small",
196
- lineHeight: "1.375rem",
197
- children: user ? "".concat(user.fullname, " ").concat(intl.formatMessage({
198
- id: 'materialAssignment.username.subfix'
199
- })) : null
200
- }), jsx(Hspace, {
201
- width: 0.25
202
- }), jsx(Tooltip, {
203
- useMaxWidth: true,
204
- placement: "top",
205
- title: intl.formatMessage({
206
- id: 'materialAssignment.modal.grade-result.tooltip'
207
- }),
208
- children: jsx(Icon, {
209
- icon: eilStatusInfo,
210
- color: base.color.navy1
211
- })
212
- }), jsx(Hspace, {
213
- width: 0.75
214
- }), jsx(Text, {
215
- bold: true,
216
- role: "white",
217
- children: (gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.score) && isScoreFinalized ? "".concat(intl.formatMessage({
218
- id: 'materialAssignment.table.column.score'
219
- }, {
220
- score: gradeResult.score
221
- })).concat(intl.formatMessage({
222
- id: 'materialAssignment.reveal'
223
- })) : '--'
224
- })]
225
- })
226
- });
167
+ align: "center"
168
+ }, React.createElement(Flex, {
169
+ auto: true,
170
+ align: "center"
171
+ }, React.createElement(Text, {
172
+ role: "navy1",
173
+ size: "small",
174
+ lineHeight: "1.375rem"
175
+ }, user ? `${user.fullname} 님의 점수` : null), React.createElement(Hspace, {
176
+ width: 0.25
177
+ }), React.createElement(Tooltip, {
178
+ useMaxWidth: true,
179
+ placement: "top",
180
+ title: '최종 점수는 관리자가 모든 채점자의 점수를 고려하여 반영한 후 공개됩니다.'
181
+ }, React.createElement(Icon, {
182
+ icon: eilStatusInfo,
183
+ color: base.color.navy1
184
+ })), React.createElement(Hspace, {
185
+ width: 0.75
186
+ }), React.createElement(Text, {
187
+ bold: true,
188
+ role: "white"
189
+ }, (gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.score) && isScoreFinalized ? `${gradeResult.score}점(공개됨)` : '--')));
227
190
  };
228
- var renderSubmissionInfo = function renderSubmissionInfo() {
229
- var statusText = function () {
191
+ const renderSubmissionInfo = () => {
192
+ const statusText = (() => {
230
193
  if (submissionListGetStatus === 'pending') {
231
194
  return null;
232
195
  }
233
196
  switch (true) {
234
197
  case !isUserSubmitted && isAssignmentClosed:
235
- return jsx(Text, {
198
+ return React.createElement(Text, {
236
199
  bold: true,
237
200
  role: "danger",
238
- size: "small",
239
- children: intl.formatMessage({
240
- id: 'materialAssignment.status.deadlineExpired'
241
- })
242
- });
201
+ size: "small"
202
+ }, "\uC81C\uCD9C \uAE30\uD55C \uB9CC\uB8CC");
243
203
  case isScoreFinalized:
244
- return jsx(Text, {
204
+ return React.createElement(Text, {
245
205
  bold: true,
246
206
  role: "lightpurple",
247
- size: "small",
248
- children: intl.formatMessage({
249
- id: 'materialAssignment.status.graded'
250
- })
251
- });
207
+ size: "small"
208
+ }, "\uCC44\uC810 \uC644\uB8CC");
252
209
  case isUserSubmitted:
253
- return jsx(Text, {
210
+ return React.createElement(Text, {
254
211
  bold: true,
255
212
  role: "success",
256
- size: "small",
257
- children: intl.formatMessage({
258
- id: 'materialAssignment.status.submitted'
259
- })
260
- });
213
+ size: "small"
214
+ }, "\uC81C\uCD9C\uB428");
261
215
  case !isUserSubmitted:
262
- return jsx(Text, {
216
+ return React.createElement(Text, {
263
217
  bold: true,
264
218
  role: "warning",
265
- size: "small",
266
- children: intl.formatMessage({
267
- id: 'materialAssignment.status.noSubmitted'
268
- })
269
- });
219
+ size: "small"
220
+ }, "\uBBF8\uC81C\uCD9C");
270
221
  }
271
- }();
272
- var submissionAttachment = function () {
222
+ })();
223
+ const submissionAttachment = (() => {
273
224
  if (!userSubmission) {
274
225
  return '--';
275
226
  }
276
227
  if (userSubmission.assignmentFileUrl) {
277
- var assignmentFilename = decodeURIComponent(userSubmission.assignmentFileUrl && new URL(userSubmission.assignmentFileUrl).pathname.split('/').pop() || '');
278
- return jsx("a", {
228
+ const assignmentFilename = decodeURIComponent(userSubmission.assignmentFileUrl && new URL(userSubmission.assignmentFileUrl).pathname.split('/').pop() || '');
229
+ return React.createElement("a", {
279
230
  href: userSubmission.assignmentFileUrl,
280
231
  download: assignmentFilename,
281
232
  target: "_blank",
282
- rel: "noopener noreferrer",
283
- children: jsx(Text, {
284
- hoverable: true,
285
- underline: true,
286
- role: "white",
287
- size: "small",
288
- children: assignmentFilename
289
- })
290
- });
233
+ rel: "noopener noreferrer"
234
+ }, React.createElement(Text, {
235
+ hoverable: true,
236
+ underline: true,
237
+ role: "white",
238
+ size: "small"
239
+ }, assignmentFilename));
291
240
  }
292
241
  if (userSubmission === null || userSubmission === void 0 ? void 0 : userSubmission.assignmentUrl) {
293
- return jsx("a", {
242
+ return React.createElement("a", {
294
243
  href: userSubmission.assignmentUrl,
295
244
  target: "_blank",
296
- rel: "noopener noreferrer",
297
- children: jsx(Text, {
298
- hoverable: true,
299
- underline: true,
300
- role: "white",
301
- size: "small",
302
- children: userSubmission.assignmentUrl
303
- })
304
- });
245
+ rel: "noopener noreferrer"
246
+ }, React.createElement(Text, {
247
+ hoverable: true,
248
+ underline: true,
249
+ role: "white",
250
+ size: "small"
251
+ }, userSubmission.assignmentUrl));
305
252
  }
306
- }();
307
- return jsx(InfoTable, {
308
- dark: true,
309
- children: jsxs("tbody", {
310
- children: [jsxs("tr", {
311
- children: [jsx("td", {
312
- children: intl.formatMessage({
313
- id: 'materialAssignment.table.column.status'
314
- })
315
- }), jsx("td", {
316
- children: statusText
317
- })]
318
- }), jsxs("tr", {
319
- children: [jsx("td", {
320
- children: intl.formatMessage({
321
- id: 'materialAssignment.table.column.deadlineDatetime'
322
- })
323
- }), jsx("td", {
324
- children: jsx(FormattedDate, {
325
- value: materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.closeDatetime,
326
- dateStyle: "medium",
327
- timeStyle: "short"
328
- })
329
- })]
330
- }), jsxs("tr", {
331
- children: [jsx("td", {
332
- children: intl.formatMessage({
333
- id: 'materialAssignment.table.column.lastSubmitDatetime'
334
- })
335
- }), jsx("td", {
336
- children: userSubmission ? jsx(FormattedDate, {
337
- value: userSubmission.createdDatetime,
338
- dateStyle: "medium",
339
- timeStyle: "short"
340
- }) : '--'
341
- })]
342
- }), jsxs("tr", {
343
- children: [jsx("td", {
344
- children: intl.formatMessage({
345
- id: 'materialAssignment.table.column.uploadedAssignments'
346
- })
347
- }), jsx("td", {
348
- children: submissionAttachment
349
- })]
350
- })]
351
- })
352
- });
253
+ })();
254
+ return React.createElement(InfoTable, {
255
+ dark: true
256
+ }, 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, {
257
+ value: materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.closeDatetime,
258
+ dateStyle: "medium",
259
+ timeStyle: "short"
260
+ }))), React.createElement("tr", null, React.createElement("td", null, "\uC81C\uCD9C \uC77C\uC2DC"), React.createElement("td", null, userSubmission ? React.createElement(FormattedDate, {
261
+ value: userSubmission.createdDatetime,
262
+ dateStyle: "medium",
263
+ timeStyle: "short"
264
+ }) : '--')), React.createElement("tr", null, React.createElement("td", null, "\uC5C5\uB85C\uB4DC\uB41C \uACFC\uC81C"), React.createElement("td", null, submissionAttachment))));
353
265
  };
354
- var renderGrade = function renderGrade() {
355
- var isGradeEditDisabled = !isAssignmentClosed || !isUserSubmitted || isScoreFinalized;
356
- var tooltipTitle = function () {
266
+ const renderGrade = () => {
267
+ const isGradeEditDisabled = !isAssignmentClosed || !isUserSubmitted || isScoreFinalized;
268
+ const tooltipTitle = (() => {
357
269
  switch (true) {
358
270
  case isScoreFinalized:
359
- return intl.formatMessage({
360
- id: 'materialAssignment.grade-list.tooltip.scoreFinalized'
361
- });
271
+ return '공개 이후 채점이 불가합니다.';
362
272
  case !isAssignmentClosed:
363
- return intl.formatMessage({
364
- id: 'materialAssignment.grade-list.tooltip.not-submitted'
365
- });
273
+ return '제출 기한이 지난 이후 채점할 수 있습니다.';
366
274
  case !isUserSubmitted:
367
- return intl.formatMessage({
368
- id: 'materialAssignment.grade-list.tooltip.user-submitted'
369
- });
275
+ return '미제출인 경우 채점할 수 없습니다.';
370
276
  }
371
- }();
372
- return jsxs(Flex, {
277
+ })();
278
+ return React.createElement(Flex, {
373
279
  column: true,
280
+ align: "center"
281
+ }, React.createElement(Flex, {
374
282
  align: "center",
375
- children: [jsxs(Flex, {
376
- align: "center",
377
- width: "100%",
378
- children: [jsxs(Flex, {
379
- column: true,
380
- auto: true,
381
- children: [jsx(Text, {
382
- block: true,
383
- bold: true,
384
- role: "white",
385
- lineHeight: 1.375,
386
- children: intl.formatMessage({
387
- id: 'materialAssignment.my-grading'
388
- })
389
- }), jsx(Text, {
390
- block: true,
391
- size: "tiny",
392
- role: "navy3",
393
- lineHeight: 1.6,
394
- children: intl.formatMessage({
395
- id: 'materialAssignment.view.information.related'
396
- })
397
- })]
398
- }), jsx(Tooltip, {
399
- placement: "top",
400
- title: tooltipTitle,
401
- visible: isGradeEditDisabled ? undefined : false,
402
- children: jsx("span", {
403
- children: jsx(Button, {
404
- size: "small",
405
- role: "lightpurple",
406
- disabled: isGradeEditDisabled,
407
- onClick: handleGradeEditClick,
408
- children: intl.formatMessage({
409
- id: Boolean(myGrade) ? 'materialAssignment.edit-grading' : 'materialAssignment.start-grading'
410
- })
411
- })
412
- })
413
- })]
414
- }), jsx(Vspace, {
415
- height: 0.75
416
- }), jsx(TableNext, {
417
- dark: true,
418
- emptyMessage: intl.formatMessage({
419
- id: 'materialAssignment.table.empty-smg.grading-not-start'
420
- }),
421
- columns: [{
422
- Header: intl.formatMessage({
423
- id: 'materialAssignment.table-col.fullname'
424
- }),
425
- accessor: 'fullname'
426
- }, {
427
- Header: intl.formatMessage({
428
- id: 'materialAssignment.table.column.assignmentScore'
429
- }),
430
- accessor: 'grade'
431
- }, {
432
- Header: intl.formatMessage({
433
- id: 'materialAssignment.table-col.grade-datetime'
434
- }),
435
- accessor: 'created',
436
- textAlign: 'left'
437
- }],
438
- data: myGrade ? [{
439
- fullname: jsxs(Flex, {
440
- paddingy: "0.25rem",
441
- children: [jsx(Text, {
442
- noWrap: true,
443
- role: "navy0",
444
- size: "small",
445
- children: myGrade.gradeUser.fullname
446
- }), jsx(Hspace, {
447
- width: 0.25
448
- }), jsx(Text, {
449
- ellipsis: true,
450
- role: "navy3",
451
- size: "small",
452
- children: myGrade.gradeUser.email
453
- })]
454
- }),
455
- grade: myGrade.score,
456
- created: jsx(FormattedDate, {
457
- value: myGrade.createdDatetime,
458
- dateStyle: "medium",
459
- timeStyle: "short"
460
- })
461
- }] : []
462
- })]
463
- });
283
+ width: "100%"
284
+ }, React.createElement(Flex, {
285
+ column: true,
286
+ auto: true
287
+ }, React.createElement(Text, {
288
+ block: true,
289
+ bold: true,
290
+ role: "white",
291
+ lineHeight: 1.375
292
+ }, "\uB0B4 \uCC44\uC810"), React.createElement(Text, {
293
+ block: true,
294
+ size: "tiny",
295
+ role: "navy3",
296
+ lineHeight: 1.6
297
+ }, "\uB0B4\uAC00 \uB9E4\uAE34 \uD3C9\uAC00\uC640 \uAD00\uB828\uB41C \uC815\uBCF4\uB97C \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4.")), React.createElement(Tooltip, {
298
+ placement: "top",
299
+ title: tooltipTitle,
300
+ visible: isGradeEditDisabled ? undefined : false
301
+ }, React.createElement("span", null, React.createElement(Button, {
302
+ size: "small",
303
+ role: "lightpurple",
304
+ disabled: isGradeEditDisabled,
305
+ onClick: handleGradeEditClick
306
+ }, Boolean(myGrade) ? '내 채점 수정' : '내 채점 시작')))), React.createElement(Vspace, {
307
+ height: 0.75
308
+ }), React.createElement(TableNext, {
309
+ dark: true,
310
+ emptyMessage: "\uC544\uC9C1 \uCC44\uC810\uC744 \uC2DC\uC791\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.",
311
+ columns: [{
312
+ Header: '채점자명',
313
+ accessor: 'fullname'
314
+ }, {
315
+ Header: '과제 점수',
316
+ accessor: 'grade'
317
+ }, {
318
+ Header: '채점 일시',
319
+ accessor: 'created',
320
+ textAlign: 'left'
321
+ }],
322
+ data: myGrade ? [{
323
+ fullname: React.createElement(Flex, {
324
+ paddingy: "0.25rem"
325
+ }, React.createElement(Text, {
326
+ noWrap: true,
327
+ role: "navy0",
328
+ size: "small"
329
+ }, myGrade.gradeUser.fullname), React.createElement(Hspace, {
330
+ width: 0.25
331
+ }), React.createElement(Text, {
332
+ ellipsis: true,
333
+ role: "navy3",
334
+ size: "small"
335
+ }, myGrade.gradeUser.email)),
336
+ grade: myGrade.score,
337
+ created: React.createElement(FormattedDate, {
338
+ value: myGrade.createdDatetime,
339
+ dateStyle: "medium",
340
+ timeStyle: "short"
341
+ })
342
+ }] : []
343
+ }));
464
344
  };
465
- var renderGradeEditModal = function renderGradeEditModal() {
345
+ const renderGradeEditModal = () => {
466
346
  if (!showGradeEditModal) {
467
347
  return null;
468
348
  }
469
- return jsxs(Modal, {
470
- title: intl.formatMessage({
471
- id: Boolean(myGrade) ? 'materialAssignment.edit-grading' : 'materialAssignment.grading-assignments'
472
- }),
349
+ return React.createElement(Modal, {
350
+ title: Boolean(myGrade) ? '내 채점 수정' : '과제 채점',
473
351
  footerButtons: [{
474
- label: intl.formatMessage({
475
- id: 'materialAssignment.modal.button.confirm'
476
- }),
352
+ label: '확인',
477
353
  size: 'small',
478
354
  role: 'primary',
479
355
  loading: gradeEditFormMethods.formState.isSubmitting,
480
356
  disabled: gradeEditFormMethods.formState.isSubmitting || !gradeEditFormMethods.formState.isValid,
481
357
  onClick: handleGradeEditSubmit
482
358
  }, {
483
- label: intl.formatMessage({
484
- id: 'materialAssignment.modal.button.cancel'
485
- }),
359
+ label: '취소',
486
360
  size: 'small',
487
361
  role: 'gray1',
488
- onClick: function onClick() {
362
+ onClick: () => {
489
363
  setShowGradeEditModal(false);
490
364
  }
491
365
  }],
492
- onHide: function onHide() {
366
+ onHide: () => {
493
367
  setShowGradeEditModal(false);
494
- },
495
- children: [jsx(Label, {
496
- bold: true,
497
- block: true,
368
+ }
369
+ }, React.createElement(Label, {
370
+ bold: true,
371
+ block: true,
372
+ required: true
373
+ }, "\uC810\uC218"), React.createElement(Vspace, {
374
+ height: 0.5
375
+ }), React.createElement(Flex, {
376
+ align: "center"
377
+ }, React.createElement(Controller, {
378
+ control: gradeEditFormMethods.control,
379
+ name: "score",
380
+ rules: {
498
381
  required: true,
499
- children: intl.formatMessage({
500
- id: 'materialAssignment.score'
501
- })
502
- }), jsx(Vspace, {
503
- height: 0.5
504
- }), jsxs(Flex, {
505
- align: "center",
506
- children: [jsx(Controller, {
507
- control: gradeEditFormMethods.control,
508
- name: "score",
509
- rules: {
510
- required: true,
511
- min: 0,
512
- max: 100
513
- },
514
- render: function render(_ref4) {
515
- var field = _ref4.field,
516
- fieldState = _ref4.fieldState;
517
- return jsx(Input, Object.assign({}, field, {
518
- invalid: fieldState.invalid,
519
- size: "small",
520
- width: "xsmall",
521
- type: "number"
522
- }));
523
- }
524
- }), jsx(Hspace, {
525
- width: 0.5
526
- }), jsx(Text, {
527
- bold: true,
528
- role: "gray9",
529
- size: "small",
530
- children: intl.formatMessage({
531
- id: 'materialAssignment.dot'
532
- })
533
- }), jsx(Text, {
534
- role: "gray6",
535
- size: "small",
536
- children: intl.formatMessage({
537
- id: 'materialAssignment.table.column.totalPoint'
538
- }, {
539
- point: 100
540
- })
541
- })]
542
- }), jsx(Vspace, {
543
- height: 1.25
544
- }), jsx(Label, {
545
- bold: true,
546
- block: true,
547
- children: intl.formatMessage({
548
- id: 'materialAssignment.table.header.feedback'
549
- })
550
- }), jsx(Vspace, {
551
- height: 0.5
552
- }), jsx(Controller, {
553
- control: gradeEditFormMethods.control,
554
- name: "comment",
555
- rules: {
556
- maxLength: 1000
557
- },
558
- render: function render(_ref5) {
559
- var field = _ref5.field;
560
- return jsx(Textarea, {
561
- value: field.value,
562
- wordLimit: 1000,
563
- rows: 8,
564
- onChange: field.onChange
565
- });
566
- }
567
- })]
568
- });
569
- };
570
- return jsxs(Fragment, {
571
- children: [jsx(Flex, {
572
- column: true,
573
- auto: true,
574
- padding: "3.625rem",
575
- width: "100%",
576
- height: "100%",
577
- overflow: "hidden",
578
- align: "center",
579
- children: jsxs(MaterialAssignmentContainer, {
580
- title: (_a = materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.title) !== null && _a !== void 0 ? _a : '',
581
- children: [renderGradeResult(), jsx(Vspace, {
582
- height: 1.25
583
- }), renderSubmissionInfo(), jsx(Vspace, {
584
- height: 1.5
585
- }), renderGrade()]
382
+ min: 0,
383
+ max: 100
384
+ },
385
+ render: ({
386
+ field,
387
+ fieldState
388
+ }) => React.createElement(Input, Object.assign({}, field, {
389
+ invalid: fieldState.invalid,
390
+ size: "small",
391
+ width: "xsmall",
392
+ type: "number"
393
+ }))
394
+ }), React.createElement(Hspace, {
395
+ width: 0.5
396
+ }), React.createElement(Text, {
397
+ bold: true,
398
+ role: "gray9",
399
+ size: "small"
400
+ }, "\uC810"), React.createElement(Text, {
401
+ role: "gray6",
402
+ size: "small"
403
+ }, ' / 100점 만점')), React.createElement(Vspace, {
404
+ height: 1.25
405
+ }), React.createElement(Label, {
406
+ bold: true,
407
+ block: true
408
+ }, "\uD53C\uB4DC\uBC31"), React.createElement(Vspace, {
409
+ height: 0.5
410
+ }), React.createElement(Controller, {
411
+ control: gradeEditFormMethods.control,
412
+ name: "comment",
413
+ rules: {
414
+ maxLength: 1000
415
+ },
416
+ render: ({
417
+ field
418
+ }) => React.createElement(Textarea, {
419
+ value: field.value,
420
+ wordLimit: 1000,
421
+ rows: 8,
422
+ onChange: field.onChange
586
423
  })
587
- }), renderGradeEditModal()]
588
- });
424
+ }));
425
+ };
426
+ return React.createElement(React.Fragment, null, renderHeader(), React.createElement(Flex, {
427
+ column: true,
428
+ auto: true,
429
+ padding: "3.625rem",
430
+ width: "100%",
431
+ height: "100%",
432
+ overflow: "hidden",
433
+ align: "center"
434
+ }, React.createElement(MaterialAssignmentContainer, {
435
+ title: (_a = materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.title) !== null && _a !== void 0 ? _a : ''
436
+ }, renderGradeResult(), React.createElement(Vspace, {
437
+ height: 1.25
438
+ }), renderSubmissionInfo(), React.createElement(Vspace, {
439
+ height: 1.5
440
+ }), renderGrade())), renderGradeEditModal());
589
441
  };
590
442
 
591
443
  export { MaterialAssignmentAdminContentTa as default };