@elice/material-assignment 1.240327.0-runboxquota.0 → 1.240508.0-globalization.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 (25) hide show
  1. package/cjs/components/material-assignment/MaterialAssignment.d.ts +3 -3
  2. package/cjs/components/material-assignment/MaterialAssignment.js +18 -9
  3. package/cjs/components/material-assignment/MaterialAssignmentContent.js +30 -30
  4. package/cjs/components/material-assignment/MaterialAssignmentUploadModal.js +18 -16
  5. package/cjs/components/material-assignment/locales/en.json.js +7 -0
  6. package/cjs/components/material-assignment/locales/ko.json.js +7 -0
  7. package/cjs/components/material-assignment/locales/th.json.js +7 -0
  8. package/cjs/components/material-assignment-admin/MaterialAssignmentAdmin.js +2 -2
  9. package/cjs/components/material-assignment-admin/MaterialAssignmentAdminContent.js +5 -5
  10. package/cjs/components/material-assignment-admin/MaterialAssignmentAdminContentTa.js +5 -5
  11. package/es/components/material-assignment/MaterialAssignment.d.ts +3 -3
  12. package/es/components/material-assignment/MaterialAssignment.js +18 -10
  13. package/es/components/material-assignment/MaterialAssignmentContent.js +10 -10
  14. package/es/components/material-assignment/MaterialAssignmentUploadModal.js +4 -2
  15. package/es/components/material-assignment/locales/en.json.js +3 -0
  16. package/es/components/material-assignment/locales/ko.json.js +3 -0
  17. package/es/components/material-assignment/locales/th.json.js +3 -0
  18. package/es/components/material-assignment-admin/MaterialAssignmentAdmin.js +1 -1
  19. package/es/components/material-assignment-admin/MaterialAssignmentAdminContent.js +1 -1
  20. package/es/components/material-assignment-admin/MaterialAssignmentAdminContentTa.js +1 -1
  21. package/package.json +6 -6
  22. package/cjs/components/material-assignment/locales.d.ts +0 -39
  23. package/cjs/components/material-assignment/locales.js +0 -81
  24. package/es/components/material-assignment/locales.d.ts +0 -39
  25. package/es/components/material-assignment/locales.js +0 -78
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
+ import type { WithIntlComponentBuilderProps } from '@elice/intl';
2
3
  export interface MaterialAssignmentProps {
3
4
  materialAssignmentId: number;
4
5
  userId: number;
5
6
  className?: string;
6
- locale?: string;
7
7
  }
8
- declare const MaterialAssignment: React.FC<MaterialAssignmentProps>;
9
- export default MaterialAssignment;
8
+ declare const _default: React.ForwardRefExoticComponent<import("@elice/intl").IntlComponentExtraProps & Omit<WithIntlComponentBuilderProps<MaterialAssignmentProps>, keyof import("@elice/intl").IntlComponentExtraProps | "__intl"> & React.RefAttributes<any>>;
9
+ export default _default;
@@ -3,33 +3,42 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var reactIntl = require('react-intl');
7
6
  var designTokens = require('@elice/design-tokens');
7
+ var intl = require('@elice/intl');
8
8
  var classnames = require('classnames');
9
9
  var styled = require('styled-components');
10
- var locales = require('./locales.js');
10
+ var en = require('./locales/en.json.js');
11
+ var ko = require('./locales/ko.json.js');
12
+ var th = require('./locales/th.json.js');
11
13
  var MaterialAssignmentContent = require('./MaterialAssignmentContent.js');
12
14
 
15
+ //
16
+ //
17
+ //
13
18
  const StyledMaterialAssignmentWrapper = styled.div.withConfig({
14
19
  componentId: "sc-1kcyh7u-0"
15
20
  })(["display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:3.625rem;background-color:", ";"], designTokens.base.color.navy9);
21
+ //
22
+ //
23
+ //
16
24
  const MaterialAssignment = ({
17
25
  className,
18
26
  materialAssignmentId,
19
27
  userId,
20
- locale = 'en'
28
+ __intl
21
29
  }) => {
22
30
  const prefixCls = 'em-material-assignment';
23
- return React.createElement(StyledMaterialAssignmentWrapper, {
31
+ return React.createElement(intl.RawEliceIntlProvider, {
32
+ value: {
33
+ intl: __intl
34
+ }
35
+ }, React.createElement(StyledMaterialAssignmentWrapper, {
24
36
  className: classnames(prefixCls, className)
25
- }, React.createElement(reactIntl.IntlProvider, {
26
- locale: locale,
27
- defaultLocale: "en",
28
- messages: locale in locales ? locales[locale] : locales.en
29
37
  }, React.createElement(MaterialAssignmentContent.default, {
30
38
  materialAssignmentId: materialAssignmentId,
31
39
  userId: userId
32
40
  })));
33
41
  };
42
+ var MaterialAssignment$1 = new intl.IntlComponentBuilder(MaterialAssignment).add('en', en.default).add('ko', ko.default).add('th', th.default).build();
34
43
 
35
- exports.default = MaterialAssignment;
44
+ exports.default = MaterialAssignment$1;
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var reactIntl = require('react-intl');
7
6
  var apiClient = require('@elice/api-client');
8
7
  var blocks = require('@elice/blocks');
8
+ var intl = require('@elice/intl');
9
9
  var materialSharedUtils = require('@elice/material-shared-utils');
10
10
  var types = require('@elice/types');
11
11
  var MaterialAssignmentContainer = require('../shared/MaterialAssignmentContainer.js');
@@ -16,8 +16,10 @@ const MaterialAssignmentContent = ({
16
16
  materialAssignmentId,
17
17
  userId
18
18
  }) => {
19
- const intl = reactIntl.useIntl();
20
19
  const isReady = materialSharedUtils.useMaterialConfigApiClientUpdate(apiClient.config.init);
20
+ const {
21
+ intl: intl$1
22
+ } = intl.useRawEliceIntl();
21
23
  const {
22
24
  materialAssignment,
23
25
  materialLecturePage,
@@ -128,7 +130,7 @@ const MaterialAssignmentContent = ({
128
130
  if (!materialAssignment || assignmentGetStatus === 'rejected') {
129
131
  return React.createElement(blocks.Text, {
130
132
  role: "white"
131
- }, intl.formatMessage({
133
+ }, intl$1.formatMessage({
132
134
  id: 'materialAssignment.error'
133
135
  }));
134
136
  }
@@ -144,7 +146,7 @@ const MaterialAssignmentContent = ({
144
146
  bold: true,
145
147
  role: "danger",
146
148
  size: "small"
147
- }, intl.formatMessage({
149
+ }, intl$1.formatMessage({
148
150
  id: 'materialAssignment.status.deadlineExpired'
149
151
  }));
150
152
  }
@@ -153,7 +155,7 @@ const MaterialAssignmentContent = ({
153
155
  bold: true,
154
156
  role: "lightpurple",
155
157
  size: "small"
156
- }, intl.formatMessage({
158
+ }, intl$1.formatMessage({
157
159
  id: 'materialAssignment.status.graded'
158
160
  }));
159
161
  }
@@ -162,7 +164,7 @@ const MaterialAssignmentContent = ({
162
164
  bold: true,
163
165
  role: "success",
164
166
  size: "small"
165
- }, intl.formatMessage({
167
+ }, intl$1.formatMessage({
166
168
  id: 'materialAssignment.status.submitted'
167
169
  }));
168
170
  }
@@ -170,7 +172,7 @@ const MaterialAssignmentContent = ({
170
172
  bold: true,
171
173
  role: "warning",
172
174
  size: "small"
173
- }, intl.formatMessage({
175
+ }, intl$1.formatMessage({
174
176
  id: 'materialAssignment.status.noSubmitted'
175
177
  }));
176
178
  };
@@ -180,7 +182,7 @@ const MaterialAssignmentContent = ({
180
182
  bold: true,
181
183
  role: "white",
182
184
  size: "small"
183
- }, intl.formatMessage({
185
+ }, intl$1.formatMessage({
184
186
  id: 'materialAssignment.table.column.score'
185
187
  }, {
186
188
  score: (_a = materialAssignmentGradeResult === null || materialAssignmentGradeResult === void 0 ? void 0 : materialAssignmentGradeResult.score) !== null && _a !== void 0 ? _a : '--'
@@ -222,21 +224,19 @@ const MaterialAssignmentContent = ({
222
224
  style: {
223
225
  width: '19%'
224
226
  }
225
- }, intl.formatMessage({
227
+ }, intl$1.formatMessage({
226
228
  id: 'materialAssignment.table.column.status'
227
- })), React.createElement("td", null, renderAssignmentStatus())), React.createElement("tr", null, React.createElement("td", null, intl.formatMessage({
229
+ })), React.createElement("td", null, renderAssignmentStatus())), React.createElement("tr", null, React.createElement("td", null, intl$1.formatMessage({
228
230
  id: 'materialAssignment.table.column.deadlineDatetime'
229
- })), React.createElement("td", null, React.createElement(reactIntl.FormattedDate, {
230
- value: materialAssignment.closeDatetime,
231
- dateStyle: "medium",
232
- timeStyle: "short"
233
- }))), React.createElement("tr", null, React.createElement("td", null, intl.formatMessage({
231
+ })), React.createElement("td", null, intl$1.formatDate(materialAssignment.closeDatetime, {
232
+ dateStyle: 'medium',
233
+ timeStyle: 'short'
234
+ }))), React.createElement("tr", null, React.createElement("td", null, intl$1.formatMessage({
234
235
  id: 'materialAssignment.table.column.lastSubmitDatetime'
235
- })), React.createElement("td", null, (materialAssignmentSubmission === null || materialAssignmentSubmission === void 0 ? void 0 : materialAssignmentSubmission.createdDatetime) ? React.createElement(reactIntl.FormattedDate, {
236
- value: materialAssignmentSubmission.createdDatetime,
237
- dateStyle: "medium",
238
- timeStyle: "short"
239
- }) : '--')), React.createElement("tr", null, React.createElement("td", null, intl.formatMessage({
236
+ })), React.createElement("td", null, (materialAssignmentSubmission === null || materialAssignmentSubmission === void 0 ? void 0 : materialAssignmentSubmission.createdDatetime) ? intl$1.formatDate(materialAssignmentSubmission.createdDatetime, {
237
+ dateStyle: 'medium',
238
+ timeStyle: 'short'
239
+ }) : '--')), React.createElement("tr", null, React.createElement("td", null, intl$1.formatMessage({
240
240
  id: 'materialAssignment.table.column.uploadedFile'
241
241
  })), React.createElement("td", null, React.createElement("div", null, renderAssignmentAttachment(), React.createElement(blocks.Vspace, {
242
242
  height: 0.75
@@ -245,14 +245,14 @@ const MaterialAssignmentContent = ({
245
245
  role: "lightpurple",
246
246
  disabled: [isAssignmentResultVisible, !materialAssignment.isResubmitEnabled && isAssignmentSubmitted, isAssignmentClosed].some(Boolean),
247
247
  onClick: () => setShowAssignmentSubmitModal(true)
248
- }, intl.formatMessage({
248
+ }, intl$1.formatMessage({
249
249
  id: 'materialAssignment.button.upload'
250
- }))))), React.createElement("tr", null, React.createElement("td", null, intl.formatMessage({
250
+ }))))), React.createElement("tr", null, React.createElement("td", null, intl$1.formatMessage({
251
251
  id: 'materialAssignment.table.column.assignmentScore'
252
252
  })), React.createElement("td", null, renderAssignmentScore(), React.createElement(blocks.Text, {
253
253
  role: "navy4",
254
254
  size: "small"
255
- }, intl.formatMessage({
255
+ }, intl$1.formatMessage({
256
256
  id: 'materialAssignment.table.column.totalPoint'
257
257
  }, {
258
258
  point: (_a = materialLecturePage === null || materialLecturePage === void 0 ? void 0 : materialLecturePage.point) !== null && _a !== void 0 ? _a : '--'
@@ -264,13 +264,13 @@ const MaterialAssignmentContent = ({
264
264
  const renderAssignmentFeedback = () => {
265
265
  var _a;
266
266
  const tableColumns = [{
267
- Header: intl.formatMessage({
267
+ Header: intl$1.formatMessage({
268
268
  id: 'materialAssignment.table.header.index'
269
269
  }),
270
270
  accessor: 'index',
271
271
  width: 50
272
272
  }, {
273
- Header: intl.formatMessage({
273
+ Header: intl$1.formatMessage({
274
274
  id: 'materialAssignment.table.header.feedback'
275
275
  }),
276
276
  accessor: 'feedback'
@@ -287,7 +287,7 @@ const MaterialAssignmentContent = ({
287
287
  dark: true,
288
288
  columns: tableColumns,
289
289
  data: tableData,
290
- emptyMessage: intl.formatMessage({
290
+ emptyMessage: intl$1.formatMessage({
291
291
  id: isAssignmentResultVisible ? 'materialAssignment.table.empty.noFeedback' : 'materialAssignment.table.empty.noAssignment'
292
292
  })
293
293
  });
@@ -311,12 +311,12 @@ const MaterialAssignmentContent = ({
311
311
  bold: true,
312
312
  block: true,
313
313
  role: "white"
314
- }, intl.formatMessage({
314
+ }, intl$1.formatMessage({
315
315
  id: 'materialAssignment.label.general'
316
316
  })), React.createElement(blocks.Text, {
317
317
  role: "navy3",
318
318
  size: "tiny"
319
- }, intl.formatMessage({
319
+ }, intl$1.formatMessage({
320
320
  id: 'materialAssignment.description.general'
321
321
  })), React.createElement(blocks.Vspace, {
322
322
  height: 0.75
@@ -326,12 +326,12 @@ const MaterialAssignmentContent = ({
326
326
  bold: true,
327
327
  block: true,
328
328
  role: "white"
329
- }, intl.formatMessage({
329
+ }, intl$1.formatMessage({
330
330
  id: 'materialAssignment.label.feedback'
331
331
  })), React.createElement(blocks.Text, {
332
332
  role: "navy3",
333
333
  size: "tiny"
334
- }, intl.formatMessage({
334
+ }, intl$1.formatMessage({
335
335
  id: 'materialAssignment.description.feedback'
336
336
  })), React.createElement(blocks.Vspace, {
337
337
  height: 0.75
@@ -4,10 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var reactHookForm = require('react-hook-form');
7
- var reactIntl = require('react-intl');
8
7
  var apiClient = require('@elice/api-client');
9
8
  var blocks = require('@elice/blocks');
10
9
  var designTokens = require('@elice/design-tokens');
10
+ var intl = require('@elice/intl');
11
11
  var utils = require('@elice/utils');
12
12
  var styled = require('styled-components');
13
13
 
@@ -19,7 +19,9 @@ const MaterialAssignmentUploadModal = ({
19
19
  onClose,
20
20
  onSubmitCallback
21
21
  }) => {
22
- const intl = reactIntl.useIntl();
22
+ const {
23
+ intl: intl$1
24
+ } = intl.useRawEliceIntl();
23
25
  const abortCtrl = React.useRef(new AbortController());
24
26
  /** Select submission method */
25
27
  const [assignmentMode, setAssignmentMode] = React.useState('attachment');
@@ -49,7 +51,7 @@ const MaterialAssignmentUploadModal = ({
49
51
  signal: abortCtrl.current.signal
50
52
  });
51
53
  onClose();
52
- blocks.Notification.success(intl.formatMessage({
54
+ blocks.Notification.success(intl$1.formatMessage({
53
55
  id: 'materialAssignment.notification.submit.success'
54
56
  }));
55
57
  if (typeof onSubmitCallback === 'function') {
@@ -57,11 +59,11 @@ const MaterialAssignmentUploadModal = ({
57
59
  }
58
60
  } catch (error) {
59
61
  if (error.name === 'AbortError') {
60
- return blocks.Notification.error(intl.formatMessage({
62
+ return blocks.Notification.error(intl$1.formatMessage({
61
63
  id: 'materialAssignment.notification.submit.cancel'
62
64
  }));
63
65
  }
64
- blocks.Notification.error(intl.formatMessage({
66
+ blocks.Notification.error(intl$1.formatMessage({
65
67
  id: 'materialAssignment.notification.submit.failure'
66
68
  }));
67
69
  }
@@ -76,18 +78,18 @@ const MaterialAssignmentUploadModal = ({
76
78
  };
77
79
  }, []);
78
80
  return React.createElement(blocks.Modal, {
79
- title: intl.formatMessage({
81
+ title: intl$1.formatMessage({
80
82
  id: 'materialAssignment.modal.title'
81
83
  }),
82
84
  footerButtons: [{
83
- label: intl.formatMessage({
85
+ label: intl$1.formatMessage({
84
86
  id: 'materialAssignment.modal.button.submit'
85
87
  }),
86
88
  loading: formState.isSubmitting,
87
89
  disabled: [!isAssignmentResubmitEnabled && !isAgreedSubmit, formState.isSubmitting, !formState.isValid].some(Boolean),
88
90
  onClick: submitAssignment
89
91
  }, {
90
- label: intl.formatMessage({
92
+ label: intl$1.formatMessage({
91
93
  id: 'materialAssignment.modal.button.cancel'
92
94
  }),
93
95
  role: 'gray1',
@@ -96,7 +98,7 @@ const MaterialAssignmentUploadModal = ({
96
98
  onHide: onClose
97
99
  }, React.createElement(blocks.Alert, {
98
100
  role: isAssignmentResubmitEnabled ? 'primary' : 'warning'
99
- }, intl.formatMessage({
101
+ }, intl$1.formatMessage({
100
102
  id: isAssignmentResubmitEnabled ? 'materialAssignment.alert.oftenSubmit' : 'materialAssignment.alert.onceSubmit'
101
103
  })), React.createElement(blocks.Vspace, {
102
104
  height: 1.5
@@ -111,11 +113,11 @@ const MaterialAssignmentUploadModal = ({
111
113
  }
112
114
  }, React.createElement(blocks.RadioButton, {
113
115
  value: "attachment"
114
- }, intl.formatMessage({
116
+ }, intl$1.formatMessage({
115
117
  id: 'materialAssignment.radio.option.attachment'
116
118
  })), React.createElement(blocks.RadioButton, {
117
119
  value: "url"
118
- }, intl.formatMessage({
120
+ }, intl$1.formatMessage({
119
121
  id: 'materialAssignment.radio.option.url'
120
122
  }))), React.createElement(blocks.Vspace, {
121
123
  height: 1
@@ -134,13 +136,13 @@ const MaterialAssignmentUploadModal = ({
134
136
  maxCount: 1,
135
137
  maxSize: 300,
136
138
  disabled: isAssignmentClosed,
137
- dropMessage: intl.formatMessage({
139
+ dropMessage: intl$1.formatMessage({
138
140
  id: 'materialAssignment.attachment.dropMessage'
139
141
  }),
140
- buttonMessage: intl.formatMessage({
142
+ buttonMessage: intl$1.formatMessage({
141
143
  id: 'materialAssignment.attachment.button'
142
144
  }),
143
- maxSizeMessage: intl.formatMessage({
145
+ maxSizeMessage: intl$1.formatMessage({
144
146
  id: 'materialAssignment.attachment.maxSizeMessage'
145
147
  }),
146
148
  onChange: newFiles => {
@@ -156,7 +158,7 @@ const MaterialAssignmentUploadModal = ({
156
158
  name: "assignmentUrl",
157
159
  rules: {
158
160
  required: true,
159
- validate: url => utils.validateUrl(url !== null && url !== void 0 ? url : '') ? true : intl.formatMessage({
161
+ validate: url => utils.validateUrl(url !== null && url !== void 0 ? url : '') ? true : intl$1.formatMessage({
160
162
  id: 'materialAssignment.input.invalid'
161
163
  })
162
164
  },
@@ -181,7 +183,7 @@ const MaterialAssignmentUploadModal = ({
181
183
  onChange: setAgreedSubmit
182
184
  }, React.createElement(blocks.Text, {
183
185
  size: "small"
184
- }, intl.formatMessage({
186
+ }, intl$1.formatMessage({
185
187
  id: 'materialAssignment.attachment.checkbox.onceSubmit'
186
188
  })))));
187
189
  };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var messageEn = {"materialAssignment.button.upload":"Upload assignment","materialAssignment.error":"Failed to fetch assignment","materialAssignment.status.noSubmitted":"No submitted","materialAssignment.status.submitted":"Submitted","materialAssignment.status.graded":"Graded","materialAssignment.status.deadlineExpired":"Deadline expired","materialAssignment.table.column.status":"Status","materialAssignment.table.column.deadlineDatetime":"Deadline datetime","materialAssignment.table.column.lastSubmitDatetime":"Last submit datetime","materialAssignment.table.column.uploadedFile":"Uploaded file","materialAssignment.table.column.assignmentScore":"Assignment Score","materialAssignment.table.column.score":"{score}","materialAssignment.table.column.totalPoint":"/ {point} point","materialAssignment.table.header.index":"Index","materialAssignment.table.header.feedback":"Feedback","materialAssignment.table.empty.noAssignment":"Grading has not been completed yet.","materialAssignment.table.empty.noFeedback":"No feedback has been created.","materialAssignment.label.general":"General","materialAssignment.label.feedback":"Feedback","materialAssignment.description.general":"You can view basic information related to the task.","materialAssignment.description.feedback":"Check your feedback.","materialAssignment.notification.submit.success":"Assignment has been submitted.","materialAssignment.notification.submit.failure":"Error occurred while submitting assignment.","materialAssignment.notification.submit.cancel":"The assignment submission has been canceled.","materialAssignment.modal.title":"Upload assignment","materialAssignment.modal.button.submit":"Submit","materialAssignment.modal.button.cancel":"Cancel","materialAssignment.alert.onceSubmit":"The number of submissions is limited to one. Please note that the assignment cannot be modified after submission.","materialAssignment.alert.oftenSubmit":"You can modify and resubmit it before the deadline after submission.","materialAssignment.radio.option.attachment":"Attachment","materialAssignment.radio.option.url":"URL","materialAssignment.attachment.dropMessage":"Add files with drag and drop.","materialAssignment.attachment.maxSizeMessage":"Up to 300MB can be uploaded.","materialAssignment.attachment.button":"Select file","materialAssignment.attachment.checkbox.onceSubmit":"I have checked all the circumstances and agree to submit the assignment.","materialAssignment.input.invalid":"The URL is not of a valid format."};
6
+
7
+ exports.default = messageEn;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var messageKo = {"materialAssignment.button.upload":"과제 업로드","materialAssignment.error":"과제를 불러오는데 실패했습니다.\n잠시 후 다시 시도해주세요.","materialAssignment.status.noSubmitted":"미제출","materialAssignment.status.submitted":"제출됨","materialAssignment.status.graded":"채점 완료","materialAssignment.status.deadlineExpired":"제출 기한 만료","materialAssignment.table.column.status":"상태","materialAssignment.table.column.deadlineDatetime":"과제 제출 기한","materialAssignment.table.column.lastSubmitDatetime":"제출 일시","materialAssignment.table.column.uploadedFile":"업로드한 과제","materialAssignment.table.column.assignmentScore":"과제 점수","materialAssignment.table.column.score":"{score}점","materialAssignment.table.column.totalPoint":"/ {point}점 만점","materialAssignment.table.header.index":"번호","materialAssignment.table.header.feedback":"피드백","materialAssignment.table.empty.noAssignment":"아직 채점이 완료되지 않았습니다.","materialAssignment.table.empty.noFeedback":"작성된 피드백이 없습니다.","materialAssignment.label.general":"기본 정보","materialAssignment.label.feedback":"피드백","materialAssignment.description.general":"과제와 관련된 기본 정보를 볼 수 있습니다.","materialAssignment.description.feedback":"{_termCourseRoleEducator}의 피드백을 확인해 보세요.","materialAssignment.notification.submit.success":"과제가 제출되었습니다.","materialAssignment.notification.submit.failure":"과제 제출 중 문제가 발생하였습니다.","materialAssignment.notification.submit.cancel":"과제 제출을 취소하였습니다.","materialAssignment.modal.title":"과제 업로드","materialAssignment.modal.button.submit":"저장","materialAssignment.modal.button.cancel":"취소","materialAssignment.alert.onceSubmit":"제출 횟수가 1회로 제한됩니다. 제출 후 과제 수정이 불가하니 유의해 주세요.","materialAssignment.alert.oftenSubmit":"제출 마감 기한 전까지 다시 제출할 수 있습니다.","materialAssignment.radio.option.attachment":"파일 업로드","materialAssignment.radio.option.url":"URL 입력","materialAssignment.attachment.dropMessage":"드래그 앤 드롭으로 파일을 추가하세요.","materialAssignment.attachment.maxSizeMessage":"최대 300MB까지 업로드 가능합니다.","materialAssignment.attachment.button":"파일 선택","materialAssignment.attachment.checkbox.onceSubmit":"모든 상황을 확인했으며 과제 제출에 동의합니다.","materialAssignment.input.invalid":"올바른 형식의 URL이 아닙니다."};
6
+
7
+ exports.default = messageKo;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var messageTh = {"materialAssignment.button.upload":"การอัปโหลดงานบ้าน","materialAssignment.error":"การโหลดการบ้านล้มเหลว\nโปรดลองอีกครั้งในภายหลัง","materialAssignment.status.noSubmitted":"ไม่ได้ส่ง","materialAssignment.status.submitted":"ส่งแล้ว","materialAssignment.status.graded":"ตรวจคะแนนเรียบร้อยแล้ว","materialAssignment.status.deadlineExpired":"เวลาส่งหมดแล้ว","materialAssignment.table.column.status":"สถานะ","materialAssignment.table.column.deadlineDatetime":"เวลาส่งงาน","materialAssignment.table.column.lastSubmitDatetime":"เวลาส่ง:","materialAssignment.table.column.uploadedFile":"งานที่อัปโหลดแล้ว","materialAssignment.table.column.assignmentScore":"คะแนนการบ้าน","materialAssignment.table.column.score":"{score}จุด","materialAssignment.table.column.totalPoint":"/ {point}คะแนนทั้งหมด","materialAssignment.table.header.index":"เลขที่","materialAssignment.table.header.feedback":"ความคิดเห็น","materialAssignment.table.empty.noAssignment":"ยังไม่ได้ตรวจคำตอบเสร็จสิ้นครับ.","materialAssignment.table.empty.noFeedback":"ไม่มีข้อเสนอแนะที่ถูกเขียนไว้ครับ.","materialAssignment.label.general":"ข้อมูลพื้นฐาน","materialAssignment.label.feedback":"ความคิดเห็น","materialAssignment.description.general":"คุณสามารถดูข้อมูลพื้นฐานที่เกี่ยวข้องกับงานที่ได้รับมอบหน้าที่ได้ที่นี่ครับ.","materialAssignment.description.feedback":"ตรวจสอบคำแนะนำจาก{_termCourseRoleEducator}ของคุณ.","materialAssignment.notification.submit.success":"งานได้ถูกส่งแล้วครับ.","materialAssignment.notification.submit.failure":"มีปัญหาขณะส่งงาน ค่ะ","materialAssignment.notification.submit.cancel":"ยกเลิกการส่งงานแล้วค่ะ.","materialAssignment.modal.title":"อัปโหลดการบ้าน","materialAssignment.modal.button.submit":"บันทึก","materialAssignment.modal.button.cancel":"ยกเลิก","materialAssignment.alert.onceSubmit":"จำนวนครั้งในการส่งจะถูกจำกัดเป็น 1 ครั้งเท่านั้น หลังจากส่งงานแล้วจะไม่สามารถแก้ไขงานได้ กรุณาทราบด้วยครับ/ค่ะ","materialAssignment.alert.oftenSubmit":"สามารถส่งใส่ได้ใหม่ก่อนวันที่กำหนดส่งลงตู้ก่อน","materialAssignment.radio.option.attachment":"อัปโหลดไฟล์","materialAssignment.radio.option.url":"URL ใส่","materialAssignment.attachment.dropMessage":"ลากและวางไฟล์เพื่อเพิ่ม.","materialAssignment.attachment.maxSizeMessage":"สูงสุด 300MB สามารถอัปโหลดได้","materialAssignment.attachment.button":"การเลือกไฟล์","materialAssignment.attachment.checkbox.onceSubmit":"ท่านได้ตรวจสอบสถานการณ์ทั้งหมดและยินยอมในการส่งงาน ","materialAssignment.input.invalid":"รูปแบบ URL ไม่ถูกต้อง "};
6
+
7
+ exports.default = messageTh;
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var reactIntl = require('react-intl');
7
6
  var apiClient = require('@elice/api-client');
8
7
  var blocks = require('@elice/blocks');
8
+ var intl = require('@elice/intl');
9
9
  var materialSharedUtils = require('@elice/material-shared-utils');
10
10
  var types = require('@elice/types');
11
11
  var classnames = require('classnames');
@@ -49,7 +49,7 @@ const MaterialAssignmentAdmin = React.forwardRef(({
49
49
  };
50
50
  return React.createElement(MaterialAssignmentAdmin_styled.StyledMaterialAssignmentAdminContainer, {
51
51
  className: classnames(prefixCls, className)
52
- }, React.createElement(reactIntl.IntlProvider, {
52
+ }, React.createElement(intl.IntlProvider, {
53
53
  locale: locale,
54
54
  defaultLocale: "en"
55
55
  }, renderContent()));
@@ -4,11 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var reactHookForm = require('react-hook-form');
7
- var reactIntl = require('react-intl');
8
7
  var apiClient = require('@elice/api-client');
9
8
  var blocks = require('@elice/blocks');
10
9
  var designTokens = require('@elice/design-tokens');
11
10
  var icons = require('@elice/icons');
11
+ var intl = require('@elice/intl');
12
12
  var materialSharedUtils = require('@elice/material-shared-utils');
13
13
  var dayjs = require('dayjs');
14
14
  var MaterialAssignmentContainer = require('../shared/MaterialAssignmentContainer.js');
@@ -257,7 +257,7 @@ const MaterialAssignmentAdminContent = React.forwardRef(({
257
257
  }, "\uC81C\uCD9C \uC77C\uC2DC"), React.createElement(blocks.Text, {
258
258
  size: "small",
259
259
  role: "white"
260
- }, userSubmission ? React.createElement(reactIntl.FormattedDate, {
260
+ }, userSubmission ? React.createElement(intl.FormattedDate, {
261
261
  value: userSubmission.createdDatetime,
262
262
  dateStyle: "medium",
263
263
  timeStyle: "short"
@@ -372,11 +372,11 @@ const MaterialAssignmentAdminContent = React.forwardRef(({
372
372
  })();
373
373
  return React.createElement(blocks.InfoTable, {
374
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(reactIntl.FormattedDate, {
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
376
  value: materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.closeDatetime,
377
377
  dateStyle: "medium",
378
378
  timeStyle: "short"
379
- }))), React.createElement("tr", null, React.createElement("td", null, "\uC81C\uCD9C \uC77C\uC2DC"), React.createElement("td", null, userSubmission ? React.createElement(reactIntl.FormattedDate, {
379
+ }))), React.createElement("tr", null, React.createElement("td", null, "\uC81C\uCD9C \uC77C\uC2DC"), React.createElement("td", null, userSubmission ? React.createElement(intl.FormattedDate, {
380
380
  value: userSubmission.createdDatetime,
381
381
  dateStyle: "medium",
382
382
  timeStyle: "short"
@@ -443,7 +443,7 @@ const MaterialAssignmentAdminContent = React.forwardRef(({
443
443
  created: React.createElement(blocks.Flex, {
444
444
  align: "center",
445
445
  justify: "space-between"
446
- }, React.createElement(reactIntl.FormattedDate, {
446
+ }, React.createElement(intl.FormattedDate, {
447
447
  value: grade.createdDatetime,
448
448
  dateStyle: "medium",
449
449
  timeStyle: "short"
@@ -4,11 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var reactHookForm = require('react-hook-form');
7
- var reactIntl = require('react-intl');
8
7
  var apiClient = require('@elice/api-client');
9
8
  var blocks = require('@elice/blocks');
10
9
  var designTokens = require('@elice/design-tokens');
11
10
  var icons = require('@elice/icons');
11
+ var intl = require('@elice/intl');
12
12
  var materialSharedUtils = require('@elice/material-shared-utils');
13
13
  var dayjs = require('dayjs');
14
14
  var MaterialAssignmentContainer = require('../shared/MaterialAssignmentContainer.js');
@@ -158,7 +158,7 @@ const MaterialAssignmentAdminContentTa = ({
158
158
  }, "\uC81C\uCD9C \uC77C\uC2DC"), React.createElement(blocks.Text, {
159
159
  size: "small",
160
160
  role: "white"
161
- }, userSubmission ? React.createElement(reactIntl.FormattedDate, {
161
+ }, userSubmission ? React.createElement(intl.FormattedDate, {
162
162
  value: userSubmission.createdDatetime,
163
163
  dateStyle: "medium",
164
164
  timeStyle: "short"
@@ -257,11 +257,11 @@ const MaterialAssignmentAdminContentTa = ({
257
257
  })();
258
258
  return React.createElement(blocks.InfoTable, {
259
259
  dark: true
260
- }, 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(reactIntl.FormattedDate, {
260
+ }, 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, {
261
261
  value: materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.closeDatetime,
262
262
  dateStyle: "medium",
263
263
  timeStyle: "short"
264
- }))), React.createElement("tr", null, React.createElement("td", null, "\uC81C\uCD9C \uC77C\uC2DC"), React.createElement("td", null, userSubmission ? React.createElement(reactIntl.FormattedDate, {
264
+ }))), React.createElement("tr", null, React.createElement("td", null, "\uC81C\uCD9C \uC77C\uC2DC"), React.createElement("td", null, userSubmission ? React.createElement(intl.FormattedDate, {
265
265
  value: userSubmission.createdDatetime,
266
266
  dateStyle: "medium",
267
267
  timeStyle: "short"
@@ -338,7 +338,7 @@ const MaterialAssignmentAdminContentTa = ({
338
338
  size: "small"
339
339
  }, myGrade.gradeUser.email)),
340
340
  grade: myGrade.score,
341
- created: React.createElement(reactIntl.FormattedDate, {
341
+ created: React.createElement(intl.FormattedDate, {
342
342
  value: myGrade.createdDatetime,
343
343
  dateStyle: "medium",
344
344
  timeStyle: "short"
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
+ import type { WithIntlComponentBuilderProps } from '@elice/intl';
2
3
  export interface MaterialAssignmentProps {
3
4
  materialAssignmentId: number;
4
5
  userId: number;
5
6
  className?: string;
6
- locale?: string;
7
7
  }
8
- declare const MaterialAssignment: React.FC<MaterialAssignmentProps>;
9
- export default MaterialAssignment;
8
+ declare const _default: React.ForwardRefExoticComponent<import("@elice/intl").IntlComponentExtraProps & Omit<WithIntlComponentBuilderProps<MaterialAssignmentProps>, keyof import("@elice/intl").IntlComponentExtraProps | "__intl"> & React.RefAttributes<any>>;
9
+ export default _default;
@@ -1,32 +1,40 @@
1
1
  import React from 'react';
2
- import { IntlProvider } from 'react-intl';
3
2
  import { base } from '@elice/design-tokens';
3
+ import { IntlComponentBuilder, RawEliceIntlProvider } from '@elice/intl';
4
4
  import classnames from 'classnames';
5
5
  import styled from 'styled-components';
6
- import * as locales from './locales.js';
7
- import { en } from './locales.js';
6
+ import messageEn from './locales/en.json.js';
7
+ import messageKo from './locales/ko.json.js';
8
+ import messageTh from './locales/th.json.js';
8
9
  import MaterialAssignmentContent from './MaterialAssignmentContent.js';
9
10
 
11
+ //
12
+ //
13
+ //
10
14
  const StyledMaterialAssignmentWrapper = styled.div.withConfig({
11
15
  componentId: "sc-1kcyh7u-0"
12
16
  })(["display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:3.625rem;background-color:", ";"], base.color.navy9);
17
+ //
18
+ //
19
+ //
13
20
  const MaterialAssignment = ({
14
21
  className,
15
22
  materialAssignmentId,
16
23
  userId,
17
- locale = 'en'
24
+ __intl
18
25
  }) => {
19
26
  const prefixCls = 'em-material-assignment';
20
- return React.createElement(StyledMaterialAssignmentWrapper, {
27
+ return React.createElement(RawEliceIntlProvider, {
28
+ value: {
29
+ intl: __intl
30
+ }
31
+ }, React.createElement(StyledMaterialAssignmentWrapper, {
21
32
  className: classnames(prefixCls, className)
22
- }, React.createElement(IntlProvider, {
23
- locale: locale,
24
- defaultLocale: "en",
25
- messages: locale in locales ? locales[locale] : en
26
33
  }, React.createElement(MaterialAssignmentContent, {
27
34
  materialAssignmentId: materialAssignmentId,
28
35
  userId: userId
29
36
  })));
30
37
  };
38
+ var MaterialAssignment$1 = new IntlComponentBuilder(MaterialAssignment).add('en', messageEn).add('ko', messageKo).add('th', messageTh).build();
31
39
 
32
- export { MaterialAssignment as default };
40
+ export { MaterialAssignment$1 as default };
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { useIntl, FormattedDate } from 'react-intl';
3
2
  import { config, getOrgMaterialAssignmentGet, getOrgMaterialAssignmentGradeList, getOrgMaterialAssignmentGradeResultGet, getOrgMaterialAssignmentSubmissionGet } from '@elice/api-client';
4
3
  import { Spinner, Text, Vspace, InfoTable, Button, TableNext, Hspace } from '@elice/blocks';
4
+ import { useRawEliceIntl } from '@elice/intl';
5
5
  import { useMaterialConfigApiClientUpdate, useMaterialFetchRaw } from '@elice/material-shared-utils';
6
6
  import { enums } from '@elice/types';
7
7
  import MaterialAssignmentContainer from '../shared/MaterialAssignmentContainer.js';
@@ -12,8 +12,10 @@ const MaterialAssignmentContent = ({
12
12
  materialAssignmentId,
13
13
  userId
14
14
  }) => {
15
- const intl = useIntl();
16
15
  const isReady = useMaterialConfigApiClientUpdate(config.init);
16
+ const {
17
+ intl
18
+ } = useRawEliceIntl();
17
19
  const {
18
20
  materialAssignment,
19
21
  materialLecturePage,
@@ -222,16 +224,14 @@ const MaterialAssignmentContent = ({
222
224
  id: 'materialAssignment.table.column.status'
223
225
  })), React.createElement("td", null, renderAssignmentStatus())), React.createElement("tr", null, React.createElement("td", null, intl.formatMessage({
224
226
  id: 'materialAssignment.table.column.deadlineDatetime'
225
- })), React.createElement("td", null, React.createElement(FormattedDate, {
226
- value: materialAssignment.closeDatetime,
227
- dateStyle: "medium",
228
- timeStyle: "short"
227
+ })), React.createElement("td", null, intl.formatDate(materialAssignment.closeDatetime, {
228
+ dateStyle: 'medium',
229
+ timeStyle: 'short'
229
230
  }))), React.createElement("tr", null, React.createElement("td", null, intl.formatMessage({
230
231
  id: 'materialAssignment.table.column.lastSubmitDatetime'
231
- })), React.createElement("td", null, (materialAssignmentSubmission === null || materialAssignmentSubmission === void 0 ? void 0 : materialAssignmentSubmission.createdDatetime) ? React.createElement(FormattedDate, {
232
- value: materialAssignmentSubmission.createdDatetime,
233
- dateStyle: "medium",
234
- timeStyle: "short"
232
+ })), React.createElement("td", null, (materialAssignmentSubmission === null || materialAssignmentSubmission === void 0 ? void 0 : materialAssignmentSubmission.createdDatetime) ? intl.formatDate(materialAssignmentSubmission.createdDatetime, {
233
+ dateStyle: 'medium',
234
+ timeStyle: 'short'
235
235
  }) : '--')), React.createElement("tr", null, React.createElement("td", null, intl.formatMessage({
236
236
  id: 'materialAssignment.table.column.uploadedFile'
237
237
  })), React.createElement("td", null, React.createElement("div", null, renderAssignmentAttachment(), React.createElement(Vspace, {
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
2
  import { useForm, Controller } from 'react-hook-form';
3
- import { useIntl } from 'react-intl';
4
3
  import { postOrgMaterialAssignmentSubmissionAdd } from '@elice/api-client';
5
4
  import { Files, Notification, Modal, Alert, Vspace, Radio, RadioButton, Input, Checkbox, Text } from '@elice/blocks';
6
5
  import { base } from '@elice/design-tokens';
6
+ import { useRawEliceIntl } from '@elice/intl';
7
7
  import { validateUrl } from '@elice/utils';
8
8
  import styled from 'styled-components';
9
9
 
@@ -15,7 +15,9 @@ const MaterialAssignmentUploadModal = ({
15
15
  onClose,
16
16
  onSubmitCallback
17
17
  }) => {
18
- const intl = useIntl();
18
+ const {
19
+ intl
20
+ } = useRawEliceIntl();
19
21
  const abortCtrl = React.useRef(new AbortController());
20
22
  /** Select submission method */
21
23
  const [assignmentMode, setAssignmentMode] = React.useState('attachment');
@@ -0,0 +1,3 @@
1
+ var messageEn = {"materialAssignment.button.upload":"Upload assignment","materialAssignment.error":"Failed to fetch assignment","materialAssignment.status.noSubmitted":"No submitted","materialAssignment.status.submitted":"Submitted","materialAssignment.status.graded":"Graded","materialAssignment.status.deadlineExpired":"Deadline expired","materialAssignment.table.column.status":"Status","materialAssignment.table.column.deadlineDatetime":"Deadline datetime","materialAssignment.table.column.lastSubmitDatetime":"Last submit datetime","materialAssignment.table.column.uploadedFile":"Uploaded file","materialAssignment.table.column.assignmentScore":"Assignment Score","materialAssignment.table.column.score":"{score}","materialAssignment.table.column.totalPoint":"/ {point} point","materialAssignment.table.header.index":"Index","materialAssignment.table.header.feedback":"Feedback","materialAssignment.table.empty.noAssignment":"Grading has not been completed yet.","materialAssignment.table.empty.noFeedback":"No feedback has been created.","materialAssignment.label.general":"General","materialAssignment.label.feedback":"Feedback","materialAssignment.description.general":"You can view basic information related to the task.","materialAssignment.description.feedback":"Check your feedback.","materialAssignment.notification.submit.success":"Assignment has been submitted.","materialAssignment.notification.submit.failure":"Error occurred while submitting assignment.","materialAssignment.notification.submit.cancel":"The assignment submission has been canceled.","materialAssignment.modal.title":"Upload assignment","materialAssignment.modal.button.submit":"Submit","materialAssignment.modal.button.cancel":"Cancel","materialAssignment.alert.onceSubmit":"The number of submissions is limited to one. Please note that the assignment cannot be modified after submission.","materialAssignment.alert.oftenSubmit":"You can modify and resubmit it before the deadline after submission.","materialAssignment.radio.option.attachment":"Attachment","materialAssignment.radio.option.url":"URL","materialAssignment.attachment.dropMessage":"Add files with drag and drop.","materialAssignment.attachment.maxSizeMessage":"Up to 300MB can be uploaded.","materialAssignment.attachment.button":"Select file","materialAssignment.attachment.checkbox.onceSubmit":"I have checked all the circumstances and agree to submit the assignment.","materialAssignment.input.invalid":"The URL is not of a valid format."};
2
+
3
+ export { messageEn as default };
@@ -0,0 +1,3 @@
1
+ var messageKo = {"materialAssignment.button.upload":"과제 업로드","materialAssignment.error":"과제를 불러오는데 실패했습니다.\n잠시 후 다시 시도해주세요.","materialAssignment.status.noSubmitted":"미제출","materialAssignment.status.submitted":"제출됨","materialAssignment.status.graded":"채점 완료","materialAssignment.status.deadlineExpired":"제출 기한 만료","materialAssignment.table.column.status":"상태","materialAssignment.table.column.deadlineDatetime":"과제 제출 기한","materialAssignment.table.column.lastSubmitDatetime":"제출 일시","materialAssignment.table.column.uploadedFile":"업로드한 과제","materialAssignment.table.column.assignmentScore":"과제 점수","materialAssignment.table.column.score":"{score}점","materialAssignment.table.column.totalPoint":"/ {point}점 만점","materialAssignment.table.header.index":"번호","materialAssignment.table.header.feedback":"피드백","materialAssignment.table.empty.noAssignment":"아직 채점이 완료되지 않았습니다.","materialAssignment.table.empty.noFeedback":"작성된 피드백이 없습니다.","materialAssignment.label.general":"기본 정보","materialAssignment.label.feedback":"피드백","materialAssignment.description.general":"과제와 관련된 기본 정보를 볼 수 있습니다.","materialAssignment.description.feedback":"{_termCourseRoleEducator}의 피드백을 확인해 보세요.","materialAssignment.notification.submit.success":"과제가 제출되었습니다.","materialAssignment.notification.submit.failure":"과제 제출 중 문제가 발생하였습니다.","materialAssignment.notification.submit.cancel":"과제 제출을 취소하였습니다.","materialAssignment.modal.title":"과제 업로드","materialAssignment.modal.button.submit":"저장","materialAssignment.modal.button.cancel":"취소","materialAssignment.alert.onceSubmit":"제출 횟수가 1회로 제한됩니다. 제출 후 과제 수정이 불가하니 유의해 주세요.","materialAssignment.alert.oftenSubmit":"제출 마감 기한 전까지 다시 제출할 수 있습니다.","materialAssignment.radio.option.attachment":"파일 업로드","materialAssignment.radio.option.url":"URL 입력","materialAssignment.attachment.dropMessage":"드래그 앤 드롭으로 파일을 추가하세요.","materialAssignment.attachment.maxSizeMessage":"최대 300MB까지 업로드 가능합니다.","materialAssignment.attachment.button":"파일 선택","materialAssignment.attachment.checkbox.onceSubmit":"모든 상황을 확인했으며 과제 제출에 동의합니다.","materialAssignment.input.invalid":"올바른 형식의 URL이 아닙니다."};
2
+
3
+ export { messageKo as default };
@@ -0,0 +1,3 @@
1
+ var messageTh = {"materialAssignment.button.upload":"การอัปโหลดงานบ้าน","materialAssignment.error":"การโหลดการบ้านล้มเหลว\nโปรดลองอีกครั้งในภายหลัง","materialAssignment.status.noSubmitted":"ไม่ได้ส่ง","materialAssignment.status.submitted":"ส่งแล้ว","materialAssignment.status.graded":"ตรวจคะแนนเรียบร้อยแล้ว","materialAssignment.status.deadlineExpired":"เวลาส่งหมดแล้ว","materialAssignment.table.column.status":"สถานะ","materialAssignment.table.column.deadlineDatetime":"เวลาส่งงาน","materialAssignment.table.column.lastSubmitDatetime":"เวลาส่ง:","materialAssignment.table.column.uploadedFile":"งานที่อัปโหลดแล้ว","materialAssignment.table.column.assignmentScore":"คะแนนการบ้าน","materialAssignment.table.column.score":"{score}จุด","materialAssignment.table.column.totalPoint":"/ {point}คะแนนทั้งหมด","materialAssignment.table.header.index":"เลขที่","materialAssignment.table.header.feedback":"ความคิดเห็น","materialAssignment.table.empty.noAssignment":"ยังไม่ได้ตรวจคำตอบเสร็จสิ้นครับ.","materialAssignment.table.empty.noFeedback":"ไม่มีข้อเสนอแนะที่ถูกเขียนไว้ครับ.","materialAssignment.label.general":"ข้อมูลพื้นฐาน","materialAssignment.label.feedback":"ความคิดเห็น","materialAssignment.description.general":"คุณสามารถดูข้อมูลพื้นฐานที่เกี่ยวข้องกับงานที่ได้รับมอบหน้าที่ได้ที่นี่ครับ.","materialAssignment.description.feedback":"ตรวจสอบคำแนะนำจาก{_termCourseRoleEducator}ของคุณ.","materialAssignment.notification.submit.success":"งานได้ถูกส่งแล้วครับ.","materialAssignment.notification.submit.failure":"มีปัญหาขณะส่งงาน ค่ะ","materialAssignment.notification.submit.cancel":"ยกเลิกการส่งงานแล้วค่ะ.","materialAssignment.modal.title":"อัปโหลดการบ้าน","materialAssignment.modal.button.submit":"บันทึก","materialAssignment.modal.button.cancel":"ยกเลิก","materialAssignment.alert.onceSubmit":"จำนวนครั้งในการส่งจะถูกจำกัดเป็น 1 ครั้งเท่านั้น หลังจากส่งงานแล้วจะไม่สามารถแก้ไขงานได้ กรุณาทราบด้วยครับ/ค่ะ","materialAssignment.alert.oftenSubmit":"สามารถส่งใส่ได้ใหม่ก่อนวันที่กำหนดส่งลงตู้ก่อน","materialAssignment.radio.option.attachment":"อัปโหลดไฟล์","materialAssignment.radio.option.url":"URL ใส่","materialAssignment.attachment.dropMessage":"ลากและวางไฟล์เพื่อเพิ่ม.","materialAssignment.attachment.maxSizeMessage":"สูงสุด 300MB สามารถอัปโหลดได้","materialAssignment.attachment.button":"การเลือกไฟล์","materialAssignment.attachment.checkbox.onceSubmit":"ท่านได้ตรวจสอบสถานการณ์ทั้งหมดและยินยอมในการส่งงาน ","materialAssignment.input.invalid":"รูปแบบ URL ไม่ถูกต้อง "};
2
+
3
+ export { messageTh as default };
@@ -1,7 +1,7 @@
1
1
  import React, { forwardRef } from 'react';
2
- import { IntlProvider } from 'react-intl';
3
2
  import { config } from '@elice/api-client';
4
3
  import { Flex, Spinner } from '@elice/blocks';
4
+ import { IntlProvider } from '@elice/intl';
5
5
  import { useMaterialConfigApiClientUpdate } from '@elice/material-shared-utils';
6
6
  import { enums } from '@elice/types';
7
7
  import classnames from 'classnames';
@@ -1,10 +1,10 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import { useForm, Controller } from 'react-hook-form';
3
- import { FormattedDate } from 'react-intl';
4
3
  import { config, getOrgUserGet, getOrgMaterialAssignmentGet, getOrgMaterialAssignmentSubmissionList, getOrgMaterialAssignmentGradeResultGet, getOrgMaterialAssignmentGradeList, postOrgMaterialAssignmentGradeEdit, postOrgMaterialAssignmentGradeResultManualScoreEdit, postOrgMaterialAssignmentGradeDelete } from '@elice/api-client';
5
4
  import { Notification, Flex, Vspace, ProfileImage, Hspace, Text, Tooltip, Icon, InfoTable, Button, TableNext, IconButton, Pagination, Modal, Label, Input, Textarea, Alert } from '@elice/blocks';
6
5
  import { base } from '@elice/design-tokens';
7
6
  import { eilStatusInfo, eilChat, eilDelete, eilArrowRightwardsBasic } from '@elice/icons';
7
+ import { FormattedDate } from '@elice/intl';
8
8
  import { useMaterialConfigApiClientUpdate } from '@elice/material-shared-utils';
9
9
  import dayjs from 'dayjs';
10
10
  import MaterialAssignmentContainer from '../shared/MaterialAssignmentContainer.js';
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { useForm, Controller } from 'react-hook-form';
3
- import { FormattedDate } from 'react-intl';
4
3
  import { config, getOrgUserGet, getOrgMaterialAssignmentGet, getOrgMaterialAssignmentSubmissionList, getOrgMaterialAssignmentGradeResultGet, getOrgMaterialAssignmentGradeList, postOrgMaterialAssignmentGradeEdit } from '@elice/api-client';
5
4
  import { Notification, Flex, Vspace, ProfileImage, Hspace, Text, Tooltip, Icon, InfoTable, Button, TableNext, Modal, Label, Input, Textarea } from '@elice/blocks';
6
5
  import { base } from '@elice/design-tokens';
7
6
  import { eilStatusInfo } from '@elice/icons';
7
+ import { FormattedDate } from '@elice/intl';
8
8
  import { useMaterialConfigApiClientUpdate } from '@elice/material-shared-utils';
9
9
  import dayjs from 'dayjs';
10
10
  import MaterialAssignmentContainer from '../shared/MaterialAssignmentContainer.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elice/material-assignment",
3
- "version": "1.240327.0-runboxquota.0",
3
+ "version": "1.240508.0-globalization.0",
4
4
  "description": "User view and editing components of Elice material assignment",
5
5
  "repository": "https://git.elicer.io/elice/frontend/library/elice-material",
6
6
  "license": "UNLICENSED",
@@ -29,12 +29,12 @@
29
29
  "@elice/blocks": "^1",
30
30
  "@elice/design-tokens": "^1",
31
31
  "@elice/icons": "^1",
32
+ "@elice/intl": "*",
32
33
  "@elice/markdown": "^1",
33
34
  "@elice/material-shared-types": "*",
34
35
  "@elice/material-shared-utils": "*",
35
36
  "@elice/types": "^1",
36
37
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
37
- "react-intl": "^5.0.0",
38
38
  "react-use": "^17.0.0",
39
39
  "styled-components": "^5.2.0"
40
40
  },
@@ -50,17 +50,17 @@
50
50
  "@elice/design-tokens": "^1.220803.0",
51
51
  "@elice/icons": "^1.230814.0",
52
52
  "@elice/icons-legacy": "npm:@elice/icons@0.230814.0",
53
+ "@elice/intl": "0.240425.0-alpha.7",
53
54
  "@elice/markdown": "^1.220815.0",
54
- "@elice/material-shared-types": "1.240327.0-runboxquota.0",
55
- "@elice/material-shared-utils": "1.240327.0-runboxquota.0",
55
+ "@elice/material-shared-types": "1.240508.0-globalization.0",
56
+ "@elice/material-shared-utils": "1.240508.0-globalization.0",
56
57
  "@elice/types": "^1.240208.0",
57
58
  "@types/classnames": "^2.3.1",
58
59
  "@types/react": "~17.0.9",
59
60
  "@types/styled-components": "^5.1.21",
60
61
  "react": "^17.0.2",
61
- "react-intl": "^5.20.10",
62
62
  "react-use": "^17.2.4",
63
63
  "styled-components": "^5.3.0"
64
64
  },
65
- "gitHead": "0f47835bcaaa9806cffeb2e42995eb810e886750"
65
+ "gitHead": "e64474c7cab0b6cb852ba08a2076c88e732eec03"
66
66
  }
@@ -1,39 +0,0 @@
1
- export declare const en: {
2
- 'materialAssignment.button.upload': string;
3
- 'materialAssignment.error': string;
4
- 'materialAssignment.status.noSubmitted': string;
5
- 'materialAssignment.status.submitted': string;
6
- 'materialAssignment.status.graded': string;
7
- 'materialAssignment.status.deadlineExpired': string;
8
- 'materialAssignment.table.column.status': string;
9
- 'materialAssignment.table.column.deadlineDatetime': string;
10
- 'materialAssignment.table.column.lastSubmitDatetime': string;
11
- 'materialAssignment.table.column.uploadedFile': string;
12
- 'materialAssignment.table.column.assignmentScore': string;
13
- 'materialAssignment.table.column.score': string;
14
- 'materialAssignment.table.column.totalPoint': string;
15
- 'materialAssignment.table.header.index': string;
16
- 'materialAssignment.table.header.feedback': string;
17
- 'materialAssignment.table.empty.noAssignment': string;
18
- 'materialAssignment.table.empty.noFeedback': string;
19
- 'materialAssignment.label.general': string;
20
- 'materialAssignment.label.feedback': string;
21
- 'materialAssignment.description.general': string;
22
- 'materialAssignment.description.feedback': string;
23
- 'materialAssignment.notification.submit.success': string;
24
- 'materialAssignment.notification.submit.failure': string;
25
- 'materialAssignment.notification.submit.cancel': string;
26
- 'materialAssignment.modal.title': string;
27
- 'materialAssignment.modal.button.submit': string;
28
- 'materialAssignment.modal.button.cancel': string;
29
- 'materialAssignment.alert.onceSubmit': string;
30
- 'materialAssignment.alert.oftenSubmit': string;
31
- 'materialAssignment.radio.option.attachment': string;
32
- 'materialAssignment.radio.option.url': string;
33
- 'materialAssignment.attachment.dropMessage': string;
34
- 'materialAssignment.attachment.maxSizeMessage': string;
35
- 'materialAssignment.attachment.button': string;
36
- 'materialAssignment.attachment.checkbox.onceSubmit': string;
37
- 'materialAssignment.input.invalid': string;
38
- };
39
- export declare const ko: typeof en;
@@ -1,81 +0,0 @@
1
- 'use strict';
2
-
3
- const en = {
4
- 'materialAssignment.button.upload': 'Upload assignment',
5
- 'materialAssignment.error': 'Failed to fetch assignment',
6
- 'materialAssignment.status.noSubmitted': 'No submitted',
7
- 'materialAssignment.status.submitted': 'Submitted',
8
- 'materialAssignment.status.graded': 'Graded',
9
- 'materialAssignment.status.deadlineExpired': 'Deadline expired',
10
- 'materialAssignment.table.column.status': 'Status',
11
- 'materialAssignment.table.column.deadlineDatetime': 'Deadline datetime',
12
- 'materialAssignment.table.column.lastSubmitDatetime': 'Last submit datetime',
13
- 'materialAssignment.table.column.uploadedFile': 'Uploaded file',
14
- 'materialAssignment.table.column.assignmentScore': 'Assignment Score',
15
- 'materialAssignment.table.column.score': '{score}',
16
- 'materialAssignment.table.column.totalPoint': '/ {point} point',
17
- 'materialAssignment.table.header.index': 'Index',
18
- 'materialAssignment.table.header.feedback': 'Feedback',
19
- 'materialAssignment.table.empty.noAssignment': 'Grading has not been completed yet.',
20
- 'materialAssignment.table.empty.noFeedback': 'No feedback has been created.',
21
- 'materialAssignment.label.general': 'General',
22
- 'materialAssignment.label.feedback': 'Feedback',
23
- 'materialAssignment.description.general': 'You can view basic information related to the task.',
24
- 'materialAssignment.description.feedback': 'Check your feedback.',
25
- 'materialAssignment.notification.submit.success': 'Assignment has been submitted.',
26
- 'materialAssignment.notification.submit.failure': 'Error occurred while submitting assignment.',
27
- 'materialAssignment.notification.submit.cancel': 'The assignment submission has been canceled.',
28
- 'materialAssignment.modal.title': 'Upload assignment',
29
- 'materialAssignment.modal.button.submit': 'Submit',
30
- 'materialAssignment.modal.button.cancel': 'Cancel',
31
- 'materialAssignment.alert.onceSubmit': 'The number of submissions is limited to one. Please note that the assignment cannot be modified after submission.',
32
- 'materialAssignment.alert.oftenSubmit': 'You can modify and resubmit it before the deadline after submission.',
33
- 'materialAssignment.radio.option.attachment': 'Attachment',
34
- 'materialAssignment.radio.option.url': 'URL',
35
- 'materialAssignment.attachment.dropMessage': 'Add files with drag and drop.',
36
- 'materialAssignment.attachment.maxSizeMessage': 'Up to 300MB can be uploaded.',
37
- 'materialAssignment.attachment.button': 'Select file',
38
- 'materialAssignment.attachment.checkbox.onceSubmit': 'I have checked all the circumstances and agree to submit the assignment.',
39
- 'materialAssignment.input.invalid': 'The URL is not of a valid format.'
40
- };
41
- const ko = {
42
- 'materialAssignment.button.upload': '과제 업로드',
43
- 'materialAssignment.error': '과제를 불러오는데 실패했습니다.\n잠시 후 다시 시도해주세요.',
44
- 'materialAssignment.status.noSubmitted': '미제출',
45
- 'materialAssignment.status.submitted': '제출됨',
46
- 'materialAssignment.status.graded': '채점 완료',
47
- 'materialAssignment.status.deadlineExpired': '제출 기한 만료',
48
- 'materialAssignment.table.column.status': '상태',
49
- 'materialAssignment.table.column.deadlineDatetime': '과제 제출 기한',
50
- 'materialAssignment.table.column.lastSubmitDatetime': '제출 일시',
51
- 'materialAssignment.table.column.uploadedFile': '업로드한 과제',
52
- 'materialAssignment.table.column.assignmentScore': '과제 점수',
53
- 'materialAssignment.table.column.score': '{score}점',
54
- 'materialAssignment.table.column.totalPoint': '/ {point}점 만점',
55
- 'materialAssignment.table.header.index': '번호',
56
- 'materialAssignment.table.header.feedback': '피드백',
57
- 'materialAssignment.table.empty.noAssignment': '아직 채점이 완료되지 않았습니다.',
58
- 'materialAssignment.table.empty.noFeedback': '작성된 피드백이 없습니다.',
59
- 'materialAssignment.label.general': '기본 정보',
60
- 'materialAssignment.label.feedback': '피드백',
61
- 'materialAssignment.description.general': '과제와 관련된 기본 정보를 볼 수 있습니다.',
62
- 'materialAssignment.description.feedback': '선생님의 피드백을 확인해 보세요.',
63
- 'materialAssignment.notification.submit.success': '과제가 제출되었습니다.',
64
- 'materialAssignment.notification.submit.failure': '과제 제출 중 문제가 발생하였습니다.',
65
- 'materialAssignment.notification.submit.cancel': '과제 제출을 취소하였습니다.',
66
- 'materialAssignment.modal.title': '과제 업로드',
67
- 'materialAssignment.modal.button.submit': '저장',
68
- 'materialAssignment.modal.button.cancel': '취소',
69
- 'materialAssignment.alert.onceSubmit': '제출 횟수가 1회로 제한됩니다. 제출 후 과제 수정이 불가하니 유의해 주세요.',
70
- 'materialAssignment.alert.oftenSubmit': '제출 마감 기한 전까지 다시 제출할 수 있습니다.',
71
- 'materialAssignment.radio.option.attachment': '파일 업로드',
72
- 'materialAssignment.radio.option.url': 'URL 입력',
73
- 'materialAssignment.attachment.dropMessage': '드래그 앤 드롭으로 파일을 추가하세요.',
74
- 'materialAssignment.attachment.maxSizeMessage': '최대 300MB까지 업로드 가능합니다.',
75
- 'materialAssignment.attachment.button': '파일 선택',
76
- 'materialAssignment.attachment.checkbox.onceSubmit': '모든 상황을 확인했으며 과제 제출에 동의합니다.',
77
- 'materialAssignment.input.invalid': '올바른 형식의 URL이 아닙니다.'
78
- };
79
-
80
- exports.en = en;
81
- exports.ko = ko;
@@ -1,39 +0,0 @@
1
- export declare const en: {
2
- 'materialAssignment.button.upload': string;
3
- 'materialAssignment.error': string;
4
- 'materialAssignment.status.noSubmitted': string;
5
- 'materialAssignment.status.submitted': string;
6
- 'materialAssignment.status.graded': string;
7
- 'materialAssignment.status.deadlineExpired': string;
8
- 'materialAssignment.table.column.status': string;
9
- 'materialAssignment.table.column.deadlineDatetime': string;
10
- 'materialAssignment.table.column.lastSubmitDatetime': string;
11
- 'materialAssignment.table.column.uploadedFile': string;
12
- 'materialAssignment.table.column.assignmentScore': string;
13
- 'materialAssignment.table.column.score': string;
14
- 'materialAssignment.table.column.totalPoint': string;
15
- 'materialAssignment.table.header.index': string;
16
- 'materialAssignment.table.header.feedback': string;
17
- 'materialAssignment.table.empty.noAssignment': string;
18
- 'materialAssignment.table.empty.noFeedback': string;
19
- 'materialAssignment.label.general': string;
20
- 'materialAssignment.label.feedback': string;
21
- 'materialAssignment.description.general': string;
22
- 'materialAssignment.description.feedback': string;
23
- 'materialAssignment.notification.submit.success': string;
24
- 'materialAssignment.notification.submit.failure': string;
25
- 'materialAssignment.notification.submit.cancel': string;
26
- 'materialAssignment.modal.title': string;
27
- 'materialAssignment.modal.button.submit': string;
28
- 'materialAssignment.modal.button.cancel': string;
29
- 'materialAssignment.alert.onceSubmit': string;
30
- 'materialAssignment.alert.oftenSubmit': string;
31
- 'materialAssignment.radio.option.attachment': string;
32
- 'materialAssignment.radio.option.url': string;
33
- 'materialAssignment.attachment.dropMessage': string;
34
- 'materialAssignment.attachment.maxSizeMessage': string;
35
- 'materialAssignment.attachment.button': string;
36
- 'materialAssignment.attachment.checkbox.onceSubmit': string;
37
- 'materialAssignment.input.invalid': string;
38
- };
39
- export declare const ko: typeof en;
@@ -1,78 +0,0 @@
1
- const en = {
2
- 'materialAssignment.button.upload': 'Upload assignment',
3
- 'materialAssignment.error': 'Failed to fetch assignment',
4
- 'materialAssignment.status.noSubmitted': 'No submitted',
5
- 'materialAssignment.status.submitted': 'Submitted',
6
- 'materialAssignment.status.graded': 'Graded',
7
- 'materialAssignment.status.deadlineExpired': 'Deadline expired',
8
- 'materialAssignment.table.column.status': 'Status',
9
- 'materialAssignment.table.column.deadlineDatetime': 'Deadline datetime',
10
- 'materialAssignment.table.column.lastSubmitDatetime': 'Last submit datetime',
11
- 'materialAssignment.table.column.uploadedFile': 'Uploaded file',
12
- 'materialAssignment.table.column.assignmentScore': 'Assignment Score',
13
- 'materialAssignment.table.column.score': '{score}',
14
- 'materialAssignment.table.column.totalPoint': '/ {point} point',
15
- 'materialAssignment.table.header.index': 'Index',
16
- 'materialAssignment.table.header.feedback': 'Feedback',
17
- 'materialAssignment.table.empty.noAssignment': 'Grading has not been completed yet.',
18
- 'materialAssignment.table.empty.noFeedback': 'No feedback has been created.',
19
- 'materialAssignment.label.general': 'General',
20
- 'materialAssignment.label.feedback': 'Feedback',
21
- 'materialAssignment.description.general': 'You can view basic information related to the task.',
22
- 'materialAssignment.description.feedback': 'Check your feedback.',
23
- 'materialAssignment.notification.submit.success': 'Assignment has been submitted.',
24
- 'materialAssignment.notification.submit.failure': 'Error occurred while submitting assignment.',
25
- 'materialAssignment.notification.submit.cancel': 'The assignment submission has been canceled.',
26
- 'materialAssignment.modal.title': 'Upload assignment',
27
- 'materialAssignment.modal.button.submit': 'Submit',
28
- 'materialAssignment.modal.button.cancel': 'Cancel',
29
- 'materialAssignment.alert.onceSubmit': 'The number of submissions is limited to one. Please note that the assignment cannot be modified after submission.',
30
- 'materialAssignment.alert.oftenSubmit': 'You can modify and resubmit it before the deadline after submission.',
31
- 'materialAssignment.radio.option.attachment': 'Attachment',
32
- 'materialAssignment.radio.option.url': 'URL',
33
- 'materialAssignment.attachment.dropMessage': 'Add files with drag and drop.',
34
- 'materialAssignment.attachment.maxSizeMessage': 'Up to 300MB can be uploaded.',
35
- 'materialAssignment.attachment.button': 'Select file',
36
- 'materialAssignment.attachment.checkbox.onceSubmit': 'I have checked all the circumstances and agree to submit the assignment.',
37
- 'materialAssignment.input.invalid': 'The URL is not of a valid format.'
38
- };
39
- const ko = {
40
- 'materialAssignment.button.upload': '과제 업로드',
41
- 'materialAssignment.error': '과제를 불러오는데 실패했습니다.\n잠시 후 다시 시도해주세요.',
42
- 'materialAssignment.status.noSubmitted': '미제출',
43
- 'materialAssignment.status.submitted': '제출됨',
44
- 'materialAssignment.status.graded': '채점 완료',
45
- 'materialAssignment.status.deadlineExpired': '제출 기한 만료',
46
- 'materialAssignment.table.column.status': '상태',
47
- 'materialAssignment.table.column.deadlineDatetime': '과제 제출 기한',
48
- 'materialAssignment.table.column.lastSubmitDatetime': '제출 일시',
49
- 'materialAssignment.table.column.uploadedFile': '업로드한 과제',
50
- 'materialAssignment.table.column.assignmentScore': '과제 점수',
51
- 'materialAssignment.table.column.score': '{score}점',
52
- 'materialAssignment.table.column.totalPoint': '/ {point}점 만점',
53
- 'materialAssignment.table.header.index': '번호',
54
- 'materialAssignment.table.header.feedback': '피드백',
55
- 'materialAssignment.table.empty.noAssignment': '아직 채점이 완료되지 않았습니다.',
56
- 'materialAssignment.table.empty.noFeedback': '작성된 피드백이 없습니다.',
57
- 'materialAssignment.label.general': '기본 정보',
58
- 'materialAssignment.label.feedback': '피드백',
59
- 'materialAssignment.description.general': '과제와 관련된 기본 정보를 볼 수 있습니다.',
60
- 'materialAssignment.description.feedback': '선생님의 피드백을 확인해 보세요.',
61
- 'materialAssignment.notification.submit.success': '과제가 제출되었습니다.',
62
- 'materialAssignment.notification.submit.failure': '과제 제출 중 문제가 발생하였습니다.',
63
- 'materialAssignment.notification.submit.cancel': '과제 제출을 취소하였습니다.',
64
- 'materialAssignment.modal.title': '과제 업로드',
65
- 'materialAssignment.modal.button.submit': '저장',
66
- 'materialAssignment.modal.button.cancel': '취소',
67
- 'materialAssignment.alert.onceSubmit': '제출 횟수가 1회로 제한됩니다. 제출 후 과제 수정이 불가하니 유의해 주세요.',
68
- 'materialAssignment.alert.oftenSubmit': '제출 마감 기한 전까지 다시 제출할 수 있습니다.',
69
- 'materialAssignment.radio.option.attachment': '파일 업로드',
70
- 'materialAssignment.radio.option.url': 'URL 입력',
71
- 'materialAssignment.attachment.dropMessage': '드래그 앤 드롭으로 파일을 추가하세요.',
72
- 'materialAssignment.attachment.maxSizeMessage': '최대 300MB까지 업로드 가능합니다.',
73
- 'materialAssignment.attachment.button': '파일 선택',
74
- 'materialAssignment.attachment.checkbox.onceSubmit': '모든 상황을 확인했으며 과제 제출에 동의합니다.',
75
- 'materialAssignment.input.invalid': '올바른 형식의 URL이 아닙니다.'
76
- };
77
-
78
- export { en, ko };