@elice/material-assignment 1.240401.0 → 1.240508.0-globalization.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/cjs/components/material-assignment/MaterialAssignment.d.ts +3 -3
  2. package/cjs/components/material-assignment/MaterialAssignment.js +14 -9
  3. package/cjs/components/material-assignment/MaterialAssignmentContent.js +28 -30
  4. package/cjs/components/material-assignment/MaterialAssignmentUploadModal.js +16 -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 +14 -10
  13. package/es/components/material-assignment/MaterialAssignmentContent.js +8 -10
  14. package/es/components/material-assignment/MaterialAssignmentUploadModal.js +2 -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,38 @@
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, Object.assign({}, __intl), React.createElement(StyledMaterialAssignmentWrapper, {
24
32
  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
33
  }, React.createElement(MaterialAssignmentContent.default, {
30
34
  materialAssignmentId: materialAssignmentId,
31
35
  userId: userId
32
36
  })));
33
37
  };
38
+ var MaterialAssignment$1 = new intl.IntlComponentBuilder(MaterialAssignment).add('en', en.default).add('ko', ko.default).add('th', th.default).build();
34
39
 
35
- exports.default = MaterialAssignment;
40
+ 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,8 @@ 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 intl$1 = intl.useRawEliceIntl();
21
21
  const {
22
22
  materialAssignment,
23
23
  materialLecturePage,
@@ -128,7 +128,7 @@ const MaterialAssignmentContent = ({
128
128
  if (!materialAssignment || assignmentGetStatus === 'rejected') {
129
129
  return React.createElement(blocks.Text, {
130
130
  role: "white"
131
- }, intl.formatMessage({
131
+ }, intl$1.formatMessage({
132
132
  id: 'materialAssignment.error'
133
133
  }));
134
134
  }
@@ -144,7 +144,7 @@ const MaterialAssignmentContent = ({
144
144
  bold: true,
145
145
  role: "danger",
146
146
  size: "small"
147
- }, intl.formatMessage({
147
+ }, intl$1.formatMessage({
148
148
  id: 'materialAssignment.status.deadlineExpired'
149
149
  }));
150
150
  }
@@ -153,7 +153,7 @@ const MaterialAssignmentContent = ({
153
153
  bold: true,
154
154
  role: "lightpurple",
155
155
  size: "small"
156
- }, intl.formatMessage({
156
+ }, intl$1.formatMessage({
157
157
  id: 'materialAssignment.status.graded'
158
158
  }));
159
159
  }
@@ -162,7 +162,7 @@ const MaterialAssignmentContent = ({
162
162
  bold: true,
163
163
  role: "success",
164
164
  size: "small"
165
- }, intl.formatMessage({
165
+ }, intl$1.formatMessage({
166
166
  id: 'materialAssignment.status.submitted'
167
167
  }));
168
168
  }
@@ -170,7 +170,7 @@ const MaterialAssignmentContent = ({
170
170
  bold: true,
171
171
  role: "warning",
172
172
  size: "small"
173
- }, intl.formatMessage({
173
+ }, intl$1.formatMessage({
174
174
  id: 'materialAssignment.status.noSubmitted'
175
175
  }));
176
176
  };
@@ -180,7 +180,7 @@ const MaterialAssignmentContent = ({
180
180
  bold: true,
181
181
  role: "white",
182
182
  size: "small"
183
- }, intl.formatMessage({
183
+ }, intl$1.formatMessage({
184
184
  id: 'materialAssignment.table.column.score'
185
185
  }, {
186
186
  score: (_a = materialAssignmentGradeResult === null || materialAssignmentGradeResult === void 0 ? void 0 : materialAssignmentGradeResult.score) !== null && _a !== void 0 ? _a : '--'
@@ -222,21 +222,19 @@ const MaterialAssignmentContent = ({
222
222
  style: {
223
223
  width: '19%'
224
224
  }
225
- }, intl.formatMessage({
225
+ }, intl$1.formatMessage({
226
226
  id: 'materialAssignment.table.column.status'
227
- })), React.createElement("td", null, renderAssignmentStatus())), React.createElement("tr", null, React.createElement("td", null, intl.formatMessage({
227
+ })), React.createElement("td", null, renderAssignmentStatus())), React.createElement("tr", null, React.createElement("td", null, intl$1.formatMessage({
228
228
  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({
229
+ })), React.createElement("td", null, intl$1.formatDate(materialAssignment.closeDatetime, {
230
+ dateStyle: 'medium',
231
+ timeStyle: 'short'
232
+ }))), React.createElement("tr", null, React.createElement("td", null, intl$1.formatMessage({
234
233
  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({
234
+ })), React.createElement("td", null, (materialAssignmentSubmission === null || materialAssignmentSubmission === void 0 ? void 0 : materialAssignmentSubmission.createdDatetime) ? intl$1.formatDate(materialAssignmentSubmission.createdDatetime, {
235
+ dateStyle: 'medium',
236
+ timeStyle: 'short'
237
+ }) : '--')), React.createElement("tr", null, React.createElement("td", null, intl$1.formatMessage({
240
238
  id: 'materialAssignment.table.column.uploadedFile'
241
239
  })), React.createElement("td", null, React.createElement("div", null, renderAssignmentAttachment(), React.createElement(blocks.Vspace, {
242
240
  height: 0.75
@@ -245,14 +243,14 @@ const MaterialAssignmentContent = ({
245
243
  role: "lightpurple",
246
244
  disabled: [isAssignmentResultVisible, !materialAssignment.isResubmitEnabled && isAssignmentSubmitted, isAssignmentClosed].some(Boolean),
247
245
  onClick: () => setShowAssignmentSubmitModal(true)
248
- }, intl.formatMessage({
246
+ }, intl$1.formatMessage({
249
247
  id: 'materialAssignment.button.upload'
250
- }))))), React.createElement("tr", null, React.createElement("td", null, intl.formatMessage({
248
+ }))))), React.createElement("tr", null, React.createElement("td", null, intl$1.formatMessage({
251
249
  id: 'materialAssignment.table.column.assignmentScore'
252
250
  })), React.createElement("td", null, renderAssignmentScore(), React.createElement(blocks.Text, {
253
251
  role: "navy4",
254
252
  size: "small"
255
- }, intl.formatMessage({
253
+ }, intl$1.formatMessage({
256
254
  id: 'materialAssignment.table.column.totalPoint'
257
255
  }, {
258
256
  point: (_a = materialLecturePage === null || materialLecturePage === void 0 ? void 0 : materialLecturePage.point) !== null && _a !== void 0 ? _a : '--'
@@ -264,13 +262,13 @@ const MaterialAssignmentContent = ({
264
262
  const renderAssignmentFeedback = () => {
265
263
  var _a;
266
264
  const tableColumns = [{
267
- Header: intl.formatMessage({
265
+ Header: intl$1.formatMessage({
268
266
  id: 'materialAssignment.table.header.index'
269
267
  }),
270
268
  accessor: 'index',
271
269
  width: 50
272
270
  }, {
273
- Header: intl.formatMessage({
271
+ Header: intl$1.formatMessage({
274
272
  id: 'materialAssignment.table.header.feedback'
275
273
  }),
276
274
  accessor: 'feedback'
@@ -287,7 +285,7 @@ const MaterialAssignmentContent = ({
287
285
  dark: true,
288
286
  columns: tableColumns,
289
287
  data: tableData,
290
- emptyMessage: intl.formatMessage({
288
+ emptyMessage: intl$1.formatMessage({
291
289
  id: isAssignmentResultVisible ? 'materialAssignment.table.empty.noFeedback' : 'materialAssignment.table.empty.noAssignment'
292
290
  })
293
291
  });
@@ -311,12 +309,12 @@ const MaterialAssignmentContent = ({
311
309
  bold: true,
312
310
  block: true,
313
311
  role: "white"
314
- }, intl.formatMessage({
312
+ }, intl$1.formatMessage({
315
313
  id: 'materialAssignment.label.general'
316
314
  })), React.createElement(blocks.Text, {
317
315
  role: "navy3",
318
316
  size: "tiny"
319
- }, intl.formatMessage({
317
+ }, intl$1.formatMessage({
320
318
  id: 'materialAssignment.description.general'
321
319
  })), React.createElement(blocks.Vspace, {
322
320
  height: 0.75
@@ -326,12 +324,12 @@ const MaterialAssignmentContent = ({
326
324
  bold: true,
327
325
  block: true,
328
326
  role: "white"
329
- }, intl.formatMessage({
327
+ }, intl$1.formatMessage({
330
328
  id: 'materialAssignment.label.feedback'
331
329
  })), React.createElement(blocks.Text, {
332
330
  role: "navy3",
333
331
  size: "tiny"
334
- }, intl.formatMessage({
332
+ }, intl$1.formatMessage({
335
333
  id: 'materialAssignment.description.feedback'
336
334
  })), React.createElement(blocks.Vspace, {
337
335
  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,7 @@ const MaterialAssignmentUploadModal = ({
19
19
  onClose,
20
20
  onSubmitCallback
21
21
  }) => {
22
- const intl = reactIntl.useIntl();
22
+ const intl$1 = intl.useRawEliceIntl();
23
23
  const abortCtrl = React.useRef(new AbortController());
24
24
  /** Select submission method */
25
25
  const [assignmentMode, setAssignmentMode] = React.useState('attachment');
@@ -49,7 +49,7 @@ const MaterialAssignmentUploadModal = ({
49
49
  signal: abortCtrl.current.signal
50
50
  });
51
51
  onClose();
52
- blocks.Notification.success(intl.formatMessage({
52
+ blocks.Notification.success(intl$1.formatMessage({
53
53
  id: 'materialAssignment.notification.submit.success'
54
54
  }));
55
55
  if (typeof onSubmitCallback === 'function') {
@@ -57,11 +57,11 @@ const MaterialAssignmentUploadModal = ({
57
57
  }
58
58
  } catch (error) {
59
59
  if (error.name === 'AbortError') {
60
- return blocks.Notification.error(intl.formatMessage({
60
+ return blocks.Notification.error(intl$1.formatMessage({
61
61
  id: 'materialAssignment.notification.submit.cancel'
62
62
  }));
63
63
  }
64
- blocks.Notification.error(intl.formatMessage({
64
+ blocks.Notification.error(intl$1.formatMessage({
65
65
  id: 'materialAssignment.notification.submit.failure'
66
66
  }));
67
67
  }
@@ -76,18 +76,18 @@ const MaterialAssignmentUploadModal = ({
76
76
  };
77
77
  }, []);
78
78
  return React.createElement(blocks.Modal, {
79
- title: intl.formatMessage({
79
+ title: intl$1.formatMessage({
80
80
  id: 'materialAssignment.modal.title'
81
81
  }),
82
82
  footerButtons: [{
83
- label: intl.formatMessage({
83
+ label: intl$1.formatMessage({
84
84
  id: 'materialAssignment.modal.button.submit'
85
85
  }),
86
86
  loading: formState.isSubmitting,
87
87
  disabled: [!isAssignmentResubmitEnabled && !isAgreedSubmit, formState.isSubmitting, !formState.isValid].some(Boolean),
88
88
  onClick: submitAssignment
89
89
  }, {
90
- label: intl.formatMessage({
90
+ label: intl$1.formatMessage({
91
91
  id: 'materialAssignment.modal.button.cancel'
92
92
  }),
93
93
  role: 'gray1',
@@ -96,7 +96,7 @@ const MaterialAssignmentUploadModal = ({
96
96
  onHide: onClose
97
97
  }, React.createElement(blocks.Alert, {
98
98
  role: isAssignmentResubmitEnabled ? 'primary' : 'warning'
99
- }, intl.formatMessage({
99
+ }, intl$1.formatMessage({
100
100
  id: isAssignmentResubmitEnabled ? 'materialAssignment.alert.oftenSubmit' : 'materialAssignment.alert.onceSubmit'
101
101
  })), React.createElement(blocks.Vspace, {
102
102
  height: 1.5
@@ -111,11 +111,11 @@ const MaterialAssignmentUploadModal = ({
111
111
  }
112
112
  }, React.createElement(blocks.RadioButton, {
113
113
  value: "attachment"
114
- }, intl.formatMessage({
114
+ }, intl$1.formatMessage({
115
115
  id: 'materialAssignment.radio.option.attachment'
116
116
  })), React.createElement(blocks.RadioButton, {
117
117
  value: "url"
118
- }, intl.formatMessage({
118
+ }, intl$1.formatMessage({
119
119
  id: 'materialAssignment.radio.option.url'
120
120
  }))), React.createElement(blocks.Vspace, {
121
121
  height: 1
@@ -134,13 +134,13 @@ const MaterialAssignmentUploadModal = ({
134
134
  maxCount: 1,
135
135
  maxSize: 300,
136
136
  disabled: isAssignmentClosed,
137
- dropMessage: intl.formatMessage({
137
+ dropMessage: intl$1.formatMessage({
138
138
  id: 'materialAssignment.attachment.dropMessage'
139
139
  }),
140
- buttonMessage: intl.formatMessage({
140
+ buttonMessage: intl$1.formatMessage({
141
141
  id: 'materialAssignment.attachment.button'
142
142
  }),
143
- maxSizeMessage: intl.formatMessage({
143
+ maxSizeMessage: intl$1.formatMessage({
144
144
  id: 'materialAssignment.attachment.maxSizeMessage'
145
145
  }),
146
146
  onChange: newFiles => {
@@ -156,7 +156,7 @@ const MaterialAssignmentUploadModal = ({
156
156
  name: "assignmentUrl",
157
157
  rules: {
158
158
  required: true,
159
- validate: url => utils.validateUrl(url !== null && url !== void 0 ? url : '') ? true : intl.formatMessage({
159
+ validate: url => utils.validateUrl(url !== null && url !== void 0 ? url : '') ? true : intl$1.formatMessage({
160
160
  id: 'materialAssignment.input.invalid'
161
161
  })
162
162
  },
@@ -181,7 +181,7 @@ const MaterialAssignmentUploadModal = ({
181
181
  onChange: setAgreedSubmit
182
182
  }, React.createElement(blocks.Text, {
183
183
  size: "small"
184
- }, intl.formatMessage({
184
+ }, intl$1.formatMessage({
185
185
  id: 'materialAssignment.attachment.checkbox.onceSubmit'
186
186
  })))));
187
187
  };
@@ -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,36 @@
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, Object.assign({}, __intl), React.createElement(StyledMaterialAssignmentWrapper, {
21
28
  className: classnames(prefixCls, className)
22
- }, React.createElement(IntlProvider, {
23
- locale: locale,
24
- defaultLocale: "en",
25
- messages: locale in locales ? locales[locale] : en
26
29
  }, React.createElement(MaterialAssignmentContent, {
27
30
  materialAssignmentId: materialAssignmentId,
28
31
  userId: userId
29
32
  })));
30
33
  };
34
+ var MaterialAssignment$1 = new IntlComponentBuilder(MaterialAssignment).add('en', messageEn).add('ko', messageKo).add('th', messageTh).build();
31
35
 
32
- export { MaterialAssignment as default };
36
+ 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,8 @@ const MaterialAssignmentContent = ({
12
12
  materialAssignmentId,
13
13
  userId
14
14
  }) => {
15
- const intl = useIntl();
16
15
  const isReady = useMaterialConfigApiClientUpdate(config.init);
16
+ const intl = useRawEliceIntl();
17
17
  const {
18
18
  materialAssignment,
19
19
  materialLecturePage,
@@ -222,16 +222,14 @@ const MaterialAssignmentContent = ({
222
222
  id: 'materialAssignment.table.column.status'
223
223
  })), React.createElement("td", null, renderAssignmentStatus())), React.createElement("tr", null, React.createElement("td", null, intl.formatMessage({
224
224
  id: 'materialAssignment.table.column.deadlineDatetime'
225
- })), React.createElement("td", null, React.createElement(FormattedDate, {
226
- value: materialAssignment.closeDatetime,
227
- dateStyle: "medium",
228
- timeStyle: "short"
225
+ })), React.createElement("td", null, intl.formatDate(materialAssignment.closeDatetime, {
226
+ dateStyle: 'medium',
227
+ timeStyle: 'short'
229
228
  }))), React.createElement("tr", null, React.createElement("td", null, intl.formatMessage({
230
229
  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"
230
+ })), React.createElement("td", null, (materialAssignmentSubmission === null || materialAssignmentSubmission === void 0 ? void 0 : materialAssignmentSubmission.createdDatetime) ? intl.formatDate(materialAssignmentSubmission.createdDatetime, {
231
+ dateStyle: 'medium',
232
+ timeStyle: 'short'
235
233
  }) : '--')), React.createElement("tr", null, React.createElement("td", null, intl.formatMessage({
236
234
  id: 'materialAssignment.table.column.uploadedFile'
237
235
  })), 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,7 @@ const MaterialAssignmentUploadModal = ({
15
15
  onClose,
16
16
  onSubmitCallback
17
17
  }) => {
18
- const intl = useIntl();
18
+ const intl = useRawEliceIntl();
19
19
  const abortCtrl = React.useRef(new AbortController());
20
20
  /** Select submission method */
21
21
  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.240401.0",
3
+ "version": "1.240508.0-globalization.1",
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.9",
53
54
  "@elice/markdown": "^1.220815.0",
54
- "@elice/material-shared-types": "1.240401.0",
55
- "@elice/material-shared-utils": "1.240401.0",
55
+ "@elice/material-shared-types": "1.240508.0-globalization.1",
56
+ "@elice/material-shared-utils": "1.240508.0-globalization.1",
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": "c3c7c033d7524e3d16328399010562ca6c2c3286"
65
+ "gitHead": "359abc2f14610a96b1c4514aedb4a7d0ad02aed3"
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 };