@elice/material-exercise 1.240401.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.
- package/cjs/components/locales/en.json.js +7 -0
- package/cjs/components/locales/index.d.ts +3 -0
- package/cjs/components/locales/ko.json.js +7 -0
- package/cjs/components/locales/th.json.js +7 -0
- package/cjs/components/material-exercise/MaterialExercise.d.ts +3 -1
- package/cjs/components/material-exercise/MaterialExercise.js +14 -13
- package/cjs/components/material-exercise/context/ExerciseProviderNoImage.d.ts +2 -1
- package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +7 -15
- package/cjs/components/material-exercise/context/locales/noImage.en.json.js +2 -2
- package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +2 -2
- package/cjs/components/material-exercise/context/locales/noImage.th.json.js +7 -0
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -1
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +9 -12
- package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +2 -2
- package/cjs/components/material-exercise/exercise-code-history/locales/index.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +2 -2
- package/cjs/components/material-exercise/exercise-code-history/locales/th.json.js +7 -0
- package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.d.ts +3 -5
- package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +14 -5
- package/cjs/components/material-exercise/exercise-file-editor/locales/en.json.js +7 -0
- package/cjs/components/material-exercise/exercise-file-editor/locales/index.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-file-editor/locales/ko.json.js +7 -0
- package/cjs/components/material-exercise/exercise-file-editor/locales/th.json.js +7 -0
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.d.ts +3 -2
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +21 -4
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.d.ts +2 -2
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +7 -15
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +2 -2
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +2 -2
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.th.json.js +7 -0
- package/cjs/components/material-exercise/exercise-file-tabs/locales/index.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.d.ts +2 -3
- package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +8 -10
- package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +2 -2
- package/cjs/components/material-exercise/exercise-file-tree/locales/index.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +2 -2
- package/cjs/components/material-exercise/exercise-file-tree/locales/th.json.js +7 -0
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +2 -1
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -9
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -3
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +15 -13
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +10 -8
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +12 -10
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +9 -7
- package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +2 -2
- package/cjs/components/material-exercise/exercise-menu/locales/index.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +2 -2
- package/cjs/components/material-exercise/exercise-menu/locales/th.json.js +7 -0
- package/cjs/components/material-exercise/exercise-preview/ExercisePreview.d.ts +2 -1
- package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +12 -8
- package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +6 -4
- package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +2 -2
- package/cjs/components/material-exercise/exercise-preview/locales/index.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +2 -2
- package/cjs/components/material-exercise/exercise-preview/locales/th.json.js +7 -0
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.d.ts +2 -3
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +18 -15
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +20 -18
- package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +2 -2
- package/cjs/components/material-exercise/exercise-rightpane/locales/index.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +2 -2
- package/cjs/components/material-exercise/exercise-rightpane/locales/th.json.js +7 -0
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.d.ts +2 -1
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +13 -9
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +30 -28
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +17 -15
- package/cjs/components/material-exercise/exercise-room/locales/en.json.js +2 -2
- package/cjs/components/material-exercise/exercise-room/locales/index.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +2 -2
- package/cjs/components/material-exercise/exercise-room/locales/th.json.js +7 -0
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.d.ts +2 -1
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +30 -29
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +22 -18
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +12 -10
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +15 -13
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +8 -5
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +29 -30
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -7
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +8 -6
- package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +2 -2
- package/cjs/components/material-exercise/exercise-runner/locales/index.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +2 -2
- package/cjs/components/material-exercise/exercise-runner/locales/th.json.js +7 -0
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -1
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +17 -16
- package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +2 -2
- package/cjs/components/material-exercise/exercise-submit-history/locales/index.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +2 -2
- package/cjs/components/material-exercise/exercise-submit-history/locales/th.json.js +7 -0
- package/cjs/components/shared/file-tree/FileTree.d.ts +1 -5
- package/cjs/components/shared/file-tree/FileTree.js +11 -12
- package/cjs/components/shared/file-tree/FileTreeConfig.js +1 -2
- package/cjs/components/shared/file-tree/FileTreeList.js +1 -2
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +10 -8
- package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +26 -24
- package/cjs/components/shared/file-tree/FileTreeToolbar.js +8 -7
- package/cjs/components/shared/file-tree/locales/en.json.js +2 -2
- package/cjs/components/shared/file-tree/locales/index.d.ts +3 -0
- package/cjs/components/shared/file-tree/locales/ko.json.js +2 -2
- package/cjs/components/shared/file-tree/locales/th.json.js +7 -0
- package/cjs/components/shared/file-viewer/FileViewer.d.ts +2 -1
- package/cjs/components/shared/file-viewer/FileViewer.js +8 -16
- package/cjs/components/shared/file-viewer/FileViewerCsv.js +10 -7
- package/cjs/components/shared/file-viewer/FileViewerNonViewable.d.ts +2 -1
- package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +11 -18
- package/cjs/components/shared/file-viewer/locales/index.d.ts +6 -0
- package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +2 -2
- package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +2 -2
- package/cjs/components/shared/file-viewer/locales/nonViewable.th.json.js +7 -0
- package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.d.ts +2 -1
- package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +29 -37
- package/cjs/components/shared/monaco-editor/locales/en.json.js +2 -2
- package/cjs/components/shared/monaco-editor/locales/index.d.ts +3 -0
- package/cjs/components/shared/monaco-editor/locales/ko.json.js +2 -2
- package/cjs/components/shared/monaco-editor/locales/th.json.js +7 -0
- package/cjs/components/shared/xterm/Xterm.d.ts +3 -1
- package/cjs/components/shared/xterm/Xterm.js +8 -18
- package/cjs/components/shared/xterm/locales/en.json.js +2 -2
- package/cjs/components/shared/xterm/locales/index.d.ts +3 -0
- package/cjs/components/shared/xterm/locales/ko.json.js +2 -2
- package/cjs/components/shared/xterm/locales/th.json.js +7 -0
- package/es/components/locales/en.json.js +3 -0
- package/es/components/locales/index.d.ts +3 -0
- package/es/components/locales/ko.json.js +3 -0
- package/es/components/locales/th.json.js +3 -0
- package/es/components/material-exercise/MaterialExercise.d.ts +3 -1
- package/es/components/material-exercise/MaterialExercise.js +14 -14
- package/es/components/material-exercise/context/ExerciseProviderNoImage.d.ts +2 -1
- package/es/components/material-exercise/context/ExerciseProviderNoImage.js +9 -17
- package/es/components/material-exercise/context/locales/noImage.en.json.js +2 -2
- package/es/components/material-exercise/context/locales/noImage.ko.json.js +2 -2
- package/es/components/material-exercise/context/locales/noImage.th.json.js +3 -0
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -1
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +11 -14
- package/es/components/material-exercise/exercise-code-history/locales/en.json.js +2 -2
- package/es/components/material-exercise/exercise-code-history/locales/index.d.ts +3 -0
- package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +2 -2
- package/es/components/material-exercise/exercise-code-history/locales/th.json.js +3 -0
- package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.d.ts +3 -5
- package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +14 -5
- package/es/components/material-exercise/exercise-file-editor/locales/en.json.js +3 -0
- package/es/components/material-exercise/exercise-file-editor/locales/index.d.ts +3 -0
- package/es/components/material-exercise/exercise-file-editor/locales/ko.json.js +3 -0
- package/es/components/material-exercise/exercise-file-editor/locales/th.json.js +3 -0
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.d.ts +3 -2
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +21 -4
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.d.ts +2 -2
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +5 -13
- package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +2 -2
- package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +2 -2
- package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.th.json.js +3 -0
- package/es/components/material-exercise/exercise-file-tabs/locales/index.d.ts +3 -0
- package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.d.ts +2 -3
- package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +10 -12
- package/es/components/material-exercise/exercise-file-tree/locales/en.json.js +2 -2
- package/es/components/material-exercise/exercise-file-tree/locales/index.d.ts +3 -0
- package/es/components/material-exercise/exercise-file-tree/locales/ko.json.js +2 -2
- package/es/components/material-exercise/exercise-file-tree/locales/th.json.js +3 -0
- package/es/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +2 -1
- package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -9
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -3
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +14 -12
- package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +4 -2
- package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +8 -6
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +8 -6
- package/es/components/material-exercise/exercise-menu/locales/en.json.js +2 -2
- package/es/components/material-exercise/exercise-menu/locales/index.d.ts +3 -0
- package/es/components/material-exercise/exercise-menu/locales/ko.json.js +2 -2
- package/es/components/material-exercise/exercise-menu/locales/th.json.js +3 -0
- package/es/components/material-exercise/exercise-preview/ExercisePreview.d.ts +2 -1
- package/es/components/material-exercise/exercise-preview/ExercisePreview.js +13 -9
- package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +4 -2
- package/es/components/material-exercise/exercise-preview/locales/en.json.js +2 -2
- package/es/components/material-exercise/exercise-preview/locales/index.d.ts +3 -0
- package/es/components/material-exercise/exercise-preview/locales/ko.json.js +2 -2
- package/es/components/material-exercise/exercise-preview/locales/th.json.js +3 -0
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.d.ts +2 -3
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +18 -15
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +4 -2
- package/es/components/material-exercise/exercise-rightpane/locales/en.json.js +2 -2
- package/es/components/material-exercise/exercise-rightpane/locales/index.d.ts +3 -0
- package/es/components/material-exercise/exercise-rightpane/locales/ko.json.js +2 -2
- package/es/components/material-exercise/exercise-rightpane/locales/th.json.js +3 -0
- package/es/components/material-exercise/exercise-room/ExerciseRoom.d.ts +2 -1
- package/es/components/material-exercise/exercise-room/ExerciseRoom.js +13 -9
- package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +6 -4
- package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +4 -2
- package/es/components/material-exercise/exercise-room/locales/en.json.js +2 -2
- package/es/components/material-exercise/exercise-room/locales/index.d.ts +3 -0
- package/es/components/material-exercise/exercise-room/locales/ko.json.js +2 -2
- package/es/components/material-exercise/exercise-room/locales/th.json.js +3 -0
- package/es/components/material-exercise/exercise-runner/ExerciseRunner.d.ts +2 -1
- package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +30 -29
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +20 -16
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +4 -2
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +14 -12
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +8 -5
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +28 -29
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -7
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +8 -6
- package/es/components/material-exercise/exercise-runner/locales/en.json.js +2 -2
- package/es/components/material-exercise/exercise-runner/locales/index.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/locales/ko.json.js +2 -2
- package/es/components/material-exercise/exercise-runner/locales/th.json.js +3 -0
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -1
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +18 -17
- package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +2 -2
- package/es/components/material-exercise/exercise-submit-history/locales/index.d.ts +3 -0
- package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +2 -2
- package/es/components/material-exercise/exercise-submit-history/locales/th.json.js +3 -0
- package/es/components/shared/file-tree/FileTree.d.ts +1 -5
- package/es/components/shared/file-tree/FileTree.js +11 -12
- package/es/components/shared/file-tree/FileTreeConfig.js +1 -2
- package/es/components/shared/file-tree/FileTreeList.js +1 -2
- package/es/components/shared/file-tree/FileTreeListItemContentInput.js +4 -2
- package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +24 -22
- package/es/components/shared/file-tree/FileTreeToolbar.js +5 -4
- package/es/components/shared/file-tree/locales/en.json.js +2 -2
- package/es/components/shared/file-tree/locales/index.d.ts +3 -0
- package/es/components/shared/file-tree/locales/ko.json.js +2 -2
- package/es/components/shared/file-tree/locales/th.json.js +3 -0
- package/es/components/shared/file-viewer/FileViewer.d.ts +2 -1
- package/es/components/shared/file-viewer/FileViewer.js +8 -16
- package/es/components/shared/file-viewer/FileViewerCsv.js +10 -7
- package/es/components/shared/file-viewer/FileViewerNonViewable.d.ts +2 -1
- package/es/components/shared/file-viewer/FileViewerNonViewable.js +13 -20
- package/es/components/shared/file-viewer/locales/index.d.ts +6 -0
- package/es/components/shared/file-viewer/locales/nonViewable.en.json.js +2 -2
- package/es/components/shared/file-viewer/locales/nonViewable.ko.json.js +2 -2
- package/es/components/shared/file-viewer/locales/nonViewable.th.json.js +3 -0
- package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.d.ts +2 -1
- package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +30 -38
- package/es/components/shared/monaco-editor/locales/en.json.js +2 -2
- package/es/components/shared/monaco-editor/locales/index.d.ts +3 -0
- package/es/components/shared/monaco-editor/locales/ko.json.js +2 -2
- package/es/components/shared/monaco-editor/locales/th.json.js +3 -0
- package/es/components/shared/xterm/Xterm.d.ts +3 -1
- package/es/components/shared/xterm/Xterm.js +10 -20
- package/es/components/shared/xterm/locales/en.json.js +2 -2
- package/es/components/shared/xterm/locales/index.d.ts +3 -0
- package/es/components/shared/xterm/locales/ko.json.js +2 -2
- package/es/components/shared/xterm/locales/th.json.js +3 -0
- package/package.json +6 -6
- package/cjs/components/material-exercise/MaterialExercise.i18n.d.ts +0 -5
- package/cjs/components/material-exercise/MaterialExercise.i18n.js +0 -13
- package/cjs/components/material-exercise/context/ExerciseIntlProvider.d.ts +0 -12
- package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +0 -44
- package/es/components/material-exercise/MaterialExercise.i18n.d.ts +0 -5
- package/es/components/material-exercise/MaterialExercise.i18n.js +0 -10
- package/es/components/material-exercise/context/ExerciseIntlProvider.d.ts +0 -12
- package/es/components/material-exercise/context/ExerciseIntlProvider.js +0 -41
package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { useIntl, FormattedMessage, FormattedDate } from 'react-intl';
|
|
3
2
|
import { usePrevious } from 'react-use';
|
|
4
3
|
import { getOrgCourseGet, getOrgMaterialExerciseExerciseRunningList } from '@elice/api-client';
|
|
5
4
|
import { Hr, Notification, Flex } from '@elice/blocks';
|
|
6
5
|
import { base } from '@elice/design-tokens';
|
|
6
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
7
7
|
import { enums } from '@elice/types';
|
|
8
8
|
import { useRecoilValue } from 'recoil';
|
|
9
9
|
import styled from 'styled-components';
|
|
@@ -29,7 +29,9 @@ const StyledRunnerInfoContent = styled.span.withConfig({
|
|
|
29
29
|
//
|
|
30
30
|
//
|
|
31
31
|
const ExerciseRunnerControllerRunningInfo = () => {
|
|
32
|
-
const
|
|
32
|
+
const {
|
|
33
|
+
intl
|
|
34
|
+
} = useRawEliceIntl();
|
|
33
35
|
const {
|
|
34
36
|
materialExerciseId,
|
|
35
37
|
exerciseRoomId,
|
|
@@ -136,13 +138,12 @@ const ExerciseRunnerControllerRunningInfo = () => {
|
|
|
136
138
|
return React.createElement(React.Fragment, null, React.createElement(Flex, {
|
|
137
139
|
column: true,
|
|
138
140
|
justify: "center"
|
|
139
|
-
}, React.createElement(StyledRunnerInfoTitle, null,
|
|
140
|
-
id:
|
|
141
|
-
})), React.createElement(StyledRunnerInfoContent, null, typeof (exerciseLastSubmit === null || exerciseLastSubmit === void 0 ? void 0 : exerciseLastSubmit.score) === 'string' ?
|
|
142
|
-
id:
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
}
|
|
141
|
+
}, React.createElement(StyledRunnerInfoTitle, null, intl.formatMessage({
|
|
142
|
+
id: 'exerciseRunner.controller.runningInfo.lastSubmitScore'
|
|
143
|
+
})), React.createElement(StyledRunnerInfoContent, null, typeof (exerciseLastSubmit === null || exerciseLastSubmit === void 0 ? void 0 : exerciseLastSubmit.score) === 'string' ? intl.formatMessage({
|
|
144
|
+
id: 'exerciseRunner.controller.runningInfo.score'
|
|
145
|
+
}, {
|
|
146
|
+
score: exerciseLastSubmit.score
|
|
146
147
|
}) : '--')), React.createElement(StyledHr, {
|
|
147
148
|
color: base.color.navy6,
|
|
148
149
|
vertical: true,
|
|
@@ -160,30 +161,28 @@ const ExerciseRunnerControllerRunningInfo = () => {
|
|
|
160
161
|
return React.createElement(Flex, {
|
|
161
162
|
column: true,
|
|
162
163
|
justify: "center"
|
|
163
|
-
}, React.createElement(StyledRunnerInfoTitle, null, (exercise === null || exercise === void 0 ? void 0 : exercise.isNoSubmitGrade) ?
|
|
164
|
-
id:
|
|
165
|
-
}) :
|
|
166
|
-
id:
|
|
164
|
+
}, React.createElement(StyledRunnerInfoTitle, null, (exercise === null || exercise === void 0 ? void 0 : exercise.isNoSubmitGrade) ? intl.formatMessage({
|
|
165
|
+
id: 'exerciseRunner.controller.runningInfo.lastRunningDatetime'
|
|
166
|
+
}) : intl.formatMessage({
|
|
167
|
+
id: 'exerciseRunner.controller.runningInfo.lastSubmitDatetime'
|
|
167
168
|
})), React.createElement(StyledRunnerInfoContent, null, (exercise === null || exercise === void 0 ? void 0 : exercise.isNoSubmitGrade) ?
|
|
168
169
|
// last running
|
|
169
|
-
(exerciseLastRunning === null || exerciseLastRunning === void 0 ? void 0 : exerciseLastRunning.createdDatetime) ?
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
second: "2-digit"
|
|
170
|
+
(exerciseLastRunning === null || exerciseLastRunning === void 0 ? void 0 : exerciseLastRunning.createdDatetime) ? intl.formatDate(exerciseLastRunning.createdDatetime, {
|
|
171
|
+
year: 'numeric',
|
|
172
|
+
month: '2-digit',
|
|
173
|
+
day: '2-digit',
|
|
174
|
+
hour: '2-digit',
|
|
175
|
+
minute: '2-digit',
|
|
176
|
+
second: '2-digit'
|
|
177
177
|
}) : '--' :
|
|
178
178
|
// last submit
|
|
179
|
-
(exerciseLastSubmit === null || exerciseLastSubmit === void 0 ? void 0 : exerciseLastSubmit.createdDatetime) ?
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
second: "2-digit"
|
|
179
|
+
(exerciseLastSubmit === null || exerciseLastSubmit === void 0 ? void 0 : exerciseLastSubmit.createdDatetime) ? intl.formatDate(exerciseLastSubmit.createdDatetime, {
|
|
180
|
+
year: 'numeric',
|
|
181
|
+
month: '2-digit',
|
|
182
|
+
day: '2-digit',
|
|
183
|
+
hour: '2-digit',
|
|
184
|
+
minute: '2-digit',
|
|
185
|
+
second: '2-digit'
|
|
187
186
|
}) : '--'));
|
|
188
187
|
};
|
|
189
188
|
//
|
package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { FormattedMessage } from 'react-intl';
|
|
3
2
|
import { Flex, Text } from '@elice/blocks';
|
|
3
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
4
4
|
import { EliceWebSocket } from '@elice/websocket';
|
|
5
5
|
import { useRecoilValue } from 'recoil';
|
|
6
6
|
import styled from 'styled-components';
|
|
@@ -15,6 +15,9 @@ const StyledMessageWrapper = styled(Flex).withConfig({
|
|
|
15
15
|
componentId: "sc-1yqi8o2-0"
|
|
16
16
|
})(["height:1rem;"]);
|
|
17
17
|
const ExerciseRunnerControllerStatusMessage = () => {
|
|
18
|
+
const {
|
|
19
|
+
intl
|
|
20
|
+
} = useRawEliceIntl();
|
|
18
21
|
const websocketStatus = useRecoilValue(exerciseRunnerWebSocketStatusQuery);
|
|
19
22
|
/**
|
|
20
23
|
* Websocket state message.
|
|
@@ -22,17 +25,17 @@ const ExerciseRunnerControllerStatusMessage = () => {
|
|
|
22
25
|
const getWebsocketStateMessage = () => {
|
|
23
26
|
switch (websocketStatus) {
|
|
24
27
|
case EliceWebSocket.OPEN:
|
|
25
|
-
return
|
|
26
|
-
id:
|
|
28
|
+
return intl.formatMessage({
|
|
29
|
+
id: 'exerciseRunner.controller.statusMessage.open'
|
|
27
30
|
});
|
|
28
31
|
case EliceWebSocket.CLOSED:
|
|
29
|
-
return
|
|
30
|
-
id:
|
|
32
|
+
return intl.formatMessage({
|
|
33
|
+
id: 'exerciseRunner.controller.statusMessage.closed'
|
|
31
34
|
});
|
|
32
35
|
case EliceWebSocket.CONNECTING:
|
|
33
36
|
default:
|
|
34
|
-
return
|
|
35
|
-
id:
|
|
37
|
+
return intl.formatMessage({
|
|
38
|
+
id: 'exerciseRunner.controller.statusMessage.connecting'
|
|
36
39
|
});
|
|
37
40
|
}
|
|
38
41
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { FormattedMessage } from 'react-intl';
|
|
3
2
|
import { Text } from '@elice/blocks';
|
|
4
3
|
import { base } from '@elice/design-tokens';
|
|
4
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
5
5
|
import { useRecoilValue } from 'recoil';
|
|
6
6
|
import styled from 'styled-components';
|
|
7
7
|
import { exerciseState, exerciseRunnerRunningState } from '../context/recoil.js';
|
|
@@ -14,6 +14,9 @@ const StyledControllerTimerText = styled(Text).withConfig({
|
|
|
14
14
|
componentId: "sc-1ez8ns0-0"
|
|
15
15
|
})(["margin-top:-3px;color:", ";"], base.color.secondary4);
|
|
16
16
|
const ExerciseRunnerControllerTimer = () => {
|
|
17
|
+
const {
|
|
18
|
+
intl
|
|
19
|
+
} = useRawEliceIntl();
|
|
17
20
|
const {
|
|
18
21
|
materialExerciseId
|
|
19
22
|
} = React.useContext(ExerciseContext);
|
|
@@ -58,11 +61,10 @@ const ExerciseRunnerControllerTimer = () => {
|
|
|
58
61
|
}
|
|
59
62
|
return React.createElement(StyledControllerTimerText, {
|
|
60
63
|
size: "small"
|
|
61
|
-
},
|
|
62
|
-
id:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
64
|
+
}, intl.formatMessage({
|
|
65
|
+
id: 'exerciseRunner.controller.timer.runningRemainingTime'
|
|
66
|
+
}, {
|
|
67
|
+
remainingTime: new Date(remainingTime).toISOString().substr(14, 5)
|
|
66
68
|
}));
|
|
67
69
|
};
|
|
68
70
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var messageEn = {"exerciseRunner.controller.arduino.connectionStatus.connected":"Connected to Arduino","exerciseRunner.controller.arduino.connectionStatus.connectedDevice":"Connected to {device}","exerciseRunner.controller.arduino.connectionStatus.connecting":"Connecting to Elice Arduino Agent","exerciseRunner.controller.arduino.connectionStatus.disconnected":"Disconnected from Elice Arduino Agent","exerciseRunner.controller.arduino.connectionStatus.noDevice":"No connected device","exerciseRunner.controller.arduino.connectionStatus.reconnecting":"Connecting to Elice Arduino Agent","exerciseRunner.controller.arduino.connectionStatus.uploading":"Uploading...","exerciseRunner.controller.arduino.agent.title":"Connect to Agent","exerciseRunner.controller.arduino.agent.instruction.install":"1. Install Elice arduino agent","exerciseRunner.controller.arduino.agent.instruction.install.detail":"Install 'elice-arduino-agent' program to connect to arduino.","exerciseRunner.controller.arduino.agent.instruction.install.window":"Download for Windows","exerciseRunner.controller.arduino.agent.instruction.install.mac":"Download for MacOS","exerciseRunner.controller.arduino.agent.instruction.connect":"2. Connect to arduino","exerciseRunner.controller.arduino.agent.instruction.connect.detail":"After the download is completed, it should be connected to exercise environment. If connection is unavailable, please follow the manual.\nClick the button below to read the manual.","exerciseRunner.controller.arduino.agent.instruction.connect.button":"Go to Manual","exerciseRunner.controller.arduino.agent.instruction.close":"Close","exerciseRunner.controller.buttonGroup.button.compile":"Compile","exerciseRunner.controller.buttonGroup.button.helpRequest":"Ask Helpy a question","exerciseRunner.controller.buttonGroup.button.run":"Run","exerciseRunner.controller.buttonGroup.button.stop":"Stop","exerciseRunner.controller.buttonGroup.button.submit":"Submit","exerciseRunner.controller.buttonGroup.button.submit.tooltip.noSubmit":"Exercise without submission","exerciseRunner.controller.buttonGroup.button.syncRequest":"Sync code","exerciseRunner.controller.buttonGroup.button.tooltip.aiHelp":"Ask any questions you may have.","exerciseRunner.controller.runningInfo.error.fetch":"An error occurred while fetching running info","exerciseRunner.controller.runningInfo.lastRunningDatetime":"Last running datetime","exerciseRunner.controller.runningInfo.lastSubmitDatetime":"Last submit datetime","exerciseRunner.controller.runningInfo.lastSubmitScore":"Last submit score","exerciseRunner.controller.runningInfo.score":"{score}","exerciseRunner.controller.statusMessage.closed":"Editor disconnected","exerciseRunner.controller.statusMessage.connecting":"Connecting to editor...","exerciseRunner.controller.statusMessage.open":"Editor connected","exerciseRunner.controller.timer.runningRemainingTime":"Remaining: {remainingTime}","exerciseRunner.submitErrorDialog.action.confirm":"OK","exerciseRunner.submitErrorDialog.action.reload":"Reload page","exerciseRunner.submitErrorDialog.body.commonError":"An error occurred while running the code.\nPlease refresh and try again.","exerciseRunner.submitErrorDialog.body.exceedSubmitGradeLimit":"You have exceeded the allowed number of lab submissions.","exerciseRunner.submitErrorDialog.body.expiredExerciseImage":"The exercise image has been updated.\nPlease refresh and try again.","exerciseRunner.submitErrorDialog.body.networkError":"An error occurred while running the code.\nPlease refresh and try again.\nIf the problem persists, please check the network status.","exerciseRunner.submitErrorDialog.body.notForSubmitGrade":"This exercise is not allowed to be submitted.","exerciseRunner.submitErrorDialog.body.notPreparedRoom":"The exercise room is being prepared.\nPlease try again later.","exerciseRunner.submitErrorDialog.body.roomIsBusy":"The exercise room is running.\nPlease wait a moment.","exerciseRunner.submitErrorDialog.body.unknown":"An error occurred while running the code.\nPlease try again later.","exerciseRunner.submitErrorDialog.title":"Unable to run the code"};
|
|
2
2
|
|
|
3
|
-
export {
|
|
3
|
+
export { messageEn as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var messageKo = {"exerciseRunner.controller.arduino.connectionStatus.connected":"아두이노 기기 연결됨","exerciseRunner.controller.arduino.connectionStatus.connectedDevice":"{device} 연결됨","exerciseRunner.controller.arduino.connectionStatus.connecting":"엘리스 아두이노 에이전트 연결 중","exerciseRunner.controller.arduino.connectionStatus.disconnected":"엘리스 아두이노 에이전트 연결 끊김","exerciseRunner.controller.arduino.connectionStatus.noDevice":"연결된 기기 없음","exerciseRunner.controller.arduino.connectionStatus.reconnecting":"엘리스 아두이노 에이전트 연결 중","exerciseRunner.controller.arduino.connectionStatus.uploading":"업로드 중","exerciseRunner.controller.arduino.agent.title":"에이전트 연결","exerciseRunner.controller.arduino.agent.instruction.install":"1. 엘리스 아두이노 에이전트 설치하기","exerciseRunner.controller.arduino.agent.instruction.install.detail":"아두이노와 연결하기 위해 ‘엘리스 아두이노 에이전트'를 설치해주세요.","exerciseRunner.controller.arduino.agent.instruction.install.window":"Windows 용 설치","exerciseRunner.controller.arduino.agent.instruction.install.mac":"MacOS 용 설치","exerciseRunner.controller.arduino.agent.instruction.connect":"2. 연결하기","exerciseRunner.controller.arduino.agent.instruction.connect.detail":"다운로드를 완료하였다면 실습 환경과 연결이 필요합니다. 연결되지 않을 경우 매뉴얼을 확인하세요.\n아래 버튼을 클릭해 매뉴얼을 확인하실 수 있습니다.","exerciseRunner.controller.arduino.agent.instruction.connect.button":"매뉴얼 이동","exerciseRunner.controller.arduino.agent.instruction.close":"닫기","exerciseRunner.controller.buttonGroup.button.compile":"컴파일","exerciseRunner.controller.buttonGroup.button.helpRequest":"헬피에게 질문하기","exerciseRunner.controller.buttonGroup.button.run":"실행","exerciseRunner.controller.buttonGroup.button.stop":"정지","exerciseRunner.controller.buttonGroup.button.submit":"제출","exerciseRunner.controller.buttonGroup.button.submit.tooltip.noSubmit":"실행만 가능한 실습입니다.","exerciseRunner.controller.buttonGroup.button.syncRequest":"코드 동기화","exerciseRunner.controller.buttonGroup.button.tooltip.aiHelp":"궁금한 사항을 질문해 보세요.","exerciseRunner.controller.runningInfo.error.fetch":"최종 실행 내역을 가져오는데 문제가 발생하였습니다.","exerciseRunner.controller.runningInfo.lastRunningDatetime":"최종 실행 시간","exerciseRunner.controller.runningInfo.lastSubmitDatetime":"최종 제출 시간","exerciseRunner.controller.runningInfo.lastSubmitScore":"최종 제출 점수","exerciseRunner.controller.runningInfo.score":"{score} 점","exerciseRunner.controller.statusMessage.closed":"에디터 연결 끊김","exerciseRunner.controller.statusMessage.connecting":"에디터 연결 중...","exerciseRunner.controller.statusMessage.open":"에디터 연결됨","exerciseRunner.controller.timer.runningRemainingTime":"실행 제한시간: {remainingTime}","exerciseRunner.submitErrorDialog.action.confirm":"확인","exerciseRunner.submitErrorDialog.action.reload":"새로고침","exerciseRunner.submitErrorDialog.body.commonError":"코드 실행 중 오류가 발생했습니다.\n새로고침 후 다시 시도해주세요.","exerciseRunner.submitErrorDialog.body.exceedSubmitGradeLimit":"실습 제출 허용 횟수를 초과했습니다.","exerciseRunner.submitErrorDialog.body.expiredExerciseImage":"실습환경이 업데이트 되었습니다.\n새로고침 후 다시 시도해주세요.","exerciseRunner.submitErrorDialog.body.networkError":"코드 실행 중 오류가 발생했습니다.\n새로고침 후 다시 시도해주세요.\n문제가 계속되면 네트워크 상태를 확인해주세요.","exerciseRunner.submitErrorDialog.body.notForSubmitGrade":"제출이 허용되지 않은 실습입니다.","exerciseRunner.submitErrorDialog.body.notPreparedRoom":"실습환경이 준비 중입니다.\n잠시 후 다시 시도해주세요.","exerciseRunner.submitErrorDialog.body.roomIsBusy":"실습을 실행하고 있습니다.\n잠시만 기다려주세요.","exerciseRunner.submitErrorDialog.body.unknown":"코드 실행 중 오류가 발생했습니다.\n잠시 후 다시 시도해주세요.","exerciseRunner.submitErrorDialog.title":"실습을 실행할 수 없습니다"};
|
|
2
2
|
|
|
3
|
-
export {
|
|
3
|
+
export { messageKo as default };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var messageTh = {"exerciseRunner.controller.arduino.connectionStatus.connected":"เอาดูอินอุโน กีย ยอน รยังล่นดึม","exerciseRunner.controller.arduino.connectionStatus.connectedDevice":"{device} เชื่อมต่อแล้ว","exerciseRunner.controller.arduino.connectionStatus.connecting":"เอลลิ스 อาร์ดูย์โน เชื่อมต่อเอเจนท์แอนต์ โThai้ ","exerciseRunner.controller.arduino.connectionStatus.disconnected":"เอลลิ스 อา두ีโน เอเจนท์ ตัดการเชื่อมต่อ","exerciseRunner.controller.arduino.connectionStatus.noDevice":"ไม่มีอุปกรณ์ที่เชื่อมต่อ","exerciseRunner.controller.arduino.connectionStatus.reconnecting":"เอลลิ스 อาร์ดูย์โน เชื่อมต่อเอเจนท์ อาร์ดูย์โน อยู่ ค่ะ","exerciseRunner.controller.arduino.connectionStatus.uploading":"กำลังอัปโหลด","exerciseRunner.controller.arduino.agent.title":"เอเจนต์เชื่อมต่อ","exerciseRunner.controller.arduino.agent.instruction.install":"1. ติดตั้งเอลิส อาดูยโน เอเจนต์","exerciseRunner.controller.arduino.agent.instruction.install.detail":"เพื่อเชื่อมต่อกับอา두ีโน่ โปรดติดตั้ง 'Elees Arduino Agent' ค่ะ.","exerciseRunner.controller.arduino.agent.instruction.install.window":"การติดตั้งสำหรับ Windows","exerciseRunner.controller.arduino.agent.instruction.install.mac":"การติดตั้งสำหรับ MacOS","exerciseRunner.controller.arduino.agent.instruction.connect":"2. เชื่อมต่อ","exerciseRunner.controller.arduino.agent.instruction.connect.detail":"หากดาวน์โหลดเสร็จสิ้นแล้วจะต้องเชื่อมต่อกับสภาพแวดล้อมการฝึกฝน หากไม่สามารถเชื่อมต่อได้ โปรดตรวจสอบคู่มือ\nคุณสามารถคลิกที่ปุ่มด้านล่างเพื่อดูคู่มือ ","exerciseRunner.controller.arduino.agent.instruction.connect.button":"ย้ายคู่มือ","exerciseRunner.controller.arduino.agent.instruction.close":"ปิด","exerciseRunner.controller.buttonGroup.button.compile":"คอมไพล์","exerciseRunner.controller.buttonGroup.button.helpRequest":"ถามเฮล퍼","exerciseRunner.controller.buttonGroup.button.run":"การดำเนินการ","exerciseRunner.controller.buttonGroup.button.stop":"หยุด","exerciseRunner.controller.buttonGroup.button.submit":"ส่ง","exerciseRunner.controller.buttonGroup.button.submit.tooltip.noSubmit":"โปรดทำการดำเนินการเท่านั้น ","exerciseRunner.controller.buttonGroup.button.syncRequest":"การซิงโครไนซ์โค้ด","exerciseRunner.controller.buttonGroup.button.tooltip.aiHelp":"โปรดถามคำถามที่คุณสงสัย.","exerciseRunner.controller.runningInfo.error.fetch":"พบปัญหาในการดึงประวัติการดำเนินงานสุดท้าย ","exerciseRunner.controller.runningInfo.lastRunningDatetime":"เวลาที่รันล่าสุด","exerciseRunner.controller.runningInfo.lastSubmitDatetime":"เวลาส่งงานสุดท้าย","exerciseRunner.controller.runningInfo.lastSubmitScore":"คะแนนสุดท้ายที่ส่งท้าย","exerciseRunner.controller.runningInfo.score":"{score} จุด","exerciseRunner.controller.statusMessage.closed":"ตัดการเชื่อมต่อเอดิเตอร์","exerciseRunner.controller.statusMessage.connecting":"การเชื่อมต่อเอดิเตอร์...","exerciseRunner.controller.statusMessage.open":"เอดิเตอร์เชื่อมต่อแล้ว","exerciseRunner.controller.timer.runningRemainingTime":"เวลาที่จำกัดในการเรียกใช้: {remainingTime}","exerciseRunner.submitErrorDialog.action.confirm":"ตรวจสอบ","exerciseRunner.submitErrorDialog.action.reload":"รีเฟรช","exerciseRunner.submitErrorDialog.body.commonError":"ระหว่างการทำงานของโค้ดเกิดข้อผิดพลาด\nโปรดลองอีกครั้งหลังจากรีเฟรชหน้าจอ","exerciseRunner.submitErrorDialog.body.exceedSubmitGradeLimit":"เลยจำนวนครั้งที่อนุญาตให้ส่งงานทดลองแล้ว ","exerciseRunner.submitErrorDialog.body.expiredExerciseImage":"สภาพแวดล้อมการฝึกปฏิบัติได้รับการอัปเดต\nโปรดรีเฟรชและลองอีกครั้งค่ะ.","exerciseRunner.submitErrorDialog.body.networkError":"โปรดลองใหม่หลังจากรีเฟรช\nหากปัญหายังคงอยู่ โปรดตรวจสอบสถานะเครือข่าย","exerciseRunner.submitErrorDialog.body.notForSubmitGrade":"การส่งงานไม่ได้รับอนุญาตในการฝึกปฏิบัตินี้ค่ะ.","exerciseRunner.submitErrorDialog.body.notPreparedRoom":"สมดุลสภาพแวดล้อมกำลังเตรียมอยู่\nโปรดลองใหม่อีกครั้งในภายหลัง","exerciseRunner.submitErrorDialog.body.roomIsBusy":"กำลังดำเนินการฝึกงาน\nโปรดรอสักครู่","exerciseRunner.submitErrorDialog.body.unknown":"มีข้อผิดพลาดเกิดขึ้นในขณะที่รหัสกำลังทำงาน\nโปรดลองอีกครั้งในภายหลัง","exerciseRunner.submitErrorDialog.title":"ไม่สามารถดำเนินการฝึกงานได้"};
|
|
2
|
+
|
|
3
|
+
export { messageTh as default };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { WithIntlComponentBuilderProps } from '@elice/intl';
|
|
2
3
|
export interface ExerciseSubmitHistoryProps {
|
|
3
4
|
onHide?: () => void;
|
|
4
5
|
}
|
|
5
|
-
declare const _default: React.
|
|
6
|
+
declare const _default: React.ForwardRefExoticComponent<import("@elice/intl").IntlComponentExtraProps & Omit<WithIntlComponentBuilderProps<ExerciseSubmitHistoryProps>, keyof import("@elice/intl").IntlComponentExtraProps | "__intl"> & React.RefAttributes<any>>;
|
|
6
7
|
export default _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
|
-
import { useIntl } from 'react-intl';
|
|
3
2
|
import { getOrgMaterialExerciseExerciseRunningList, getOrgMaterialExerciseExerciseRunningGet, getOrgMaterialExerciseExerciseImageExerciseFileGet, getOrgMaterialExerciseExerciseRoomUserFileGet, getOrgMaterialExerciseUsercodeGet } from '@elice/api-client';
|
|
4
3
|
import { Flex, Box, Text, ResizableNext, Spinner } from '@elice/blocks';
|
|
4
|
+
import { IntlComponentBuilder, RawEliceIntlProvider } from '@elice/intl';
|
|
5
5
|
import { enums } from '@elice/types';
|
|
6
6
|
import dayjs from 'dayjs';
|
|
7
7
|
import { camelizeKeys } from 'humps';
|
|
@@ -19,10 +19,10 @@ import { ExerciseContext } from '../context/context.js';
|
|
|
19
19
|
import '../context/recoilTypes.js';
|
|
20
20
|
import '../context/subjects.js';
|
|
21
21
|
import '../context/ExerciseProvider.js';
|
|
22
|
-
import { withExerciseIntlProvider } from '../context/ExerciseIntlProvider.js';
|
|
23
|
-
import phrasesEn from './locales/en.json.js';
|
|
24
|
-
import phrasesKo from './locales/ko.json.js';
|
|
25
22
|
import ExerciseSubmitHistoryOutput from './ExerciseSubmitHistoryOutput.js';
|
|
23
|
+
import messageEn from './locales/en.json.js';
|
|
24
|
+
import messageKo from './locales/ko.json.js';
|
|
25
|
+
import messageTh from './locales/th.json.js';
|
|
26
26
|
import { StyledExerciseVersionRunType, StyledExerciseVersionDatetime, StyledExerciseVersionScore } from '../../shared/exercise-version-list/ExerciseVersionListItem.styled.js';
|
|
27
27
|
import { StyledFileTreeWrapper, StyledExerciseSubmitHistoryNotChanged, StyledExerciseSubmitHistoryEditorWrapper, StyledExerciseSubmitHistoryEditorLoadingScreen } from './ExerciseSubmitHistory.styled.js';
|
|
28
28
|
|
|
@@ -30,10 +30,10 @@ const AsyncFileTree = React.lazy(() => import('../../shared/file-tree/FileTree.j
|
|
|
30
30
|
const AsyncFileTreeList = React.lazy(() => import('../../shared/file-tree/FileTreeList.js'));
|
|
31
31
|
const AsyncFileViewer = React.lazy(() => import('../../shared/file-viewer/FileViewer.js'));
|
|
32
32
|
const ExerciseSubmitHistory = ({
|
|
33
|
-
onHide
|
|
33
|
+
onHide,
|
|
34
|
+
__intl
|
|
34
35
|
}) => {
|
|
35
36
|
const COUNT = 100;
|
|
36
|
-
const intl = useIntl();
|
|
37
37
|
const {
|
|
38
38
|
materialExerciseId,
|
|
39
39
|
exerciseRoomId,
|
|
@@ -205,9 +205,9 @@ const ExerciseSubmitHistory = ({
|
|
|
205
205
|
}, React.createElement(StyledExerciseVersionRunType, {
|
|
206
206
|
role: "gray3",
|
|
207
207
|
size: "small"
|
|
208
|
-
}, exerciseRunning.runType === enums.ExerciseRunType.Grade ?
|
|
208
|
+
}, exerciseRunning.runType === enums.ExerciseRunType.Grade ? __intl.formatMessage({
|
|
209
209
|
id: 'exerciseSubmitHistory.runType.grade'
|
|
210
|
-
}) :
|
|
210
|
+
}) : __intl.formatMessage({
|
|
211
211
|
id: 'exerciseSubmitHistory.runType.run'
|
|
212
212
|
})), React.createElement(StyledExerciseVersionDatetime, {
|
|
213
213
|
role: "gray3",
|
|
@@ -224,7 +224,7 @@ const ExerciseSubmitHistory = ({
|
|
|
224
224
|
width: "100%"
|
|
225
225
|
}, React.createElement(Text, {
|
|
226
226
|
role: "important"
|
|
227
|
-
},
|
|
227
|
+
}, __intl.formatMessage({
|
|
228
228
|
id: 'exerciseSubmitHistory.button.load.more'
|
|
229
229
|
})))) : null);
|
|
230
230
|
};
|
|
@@ -278,7 +278,7 @@ const ExerciseSubmitHistory = ({
|
|
|
278
278
|
}, !isUserChanged && React.createElement(StyledExerciseSubmitHistoryNotChanged, null, React.createElement(Text, {
|
|
279
279
|
role: "white",
|
|
280
280
|
size: "tiny"
|
|
281
|
-
},
|
|
281
|
+
}, __intl.formatMessage({
|
|
282
282
|
id: 'exerciseSubmitHistory.notChanged'
|
|
283
283
|
}))), React.createElement(StyledExerciseSubmitHistoryEditorWrapper, null, isFile ? React.createElement(React.Suspense, {
|
|
284
284
|
fallback: null
|
|
@@ -299,8 +299,12 @@ const ExerciseSubmitHistory = ({
|
|
|
299
299
|
//
|
|
300
300
|
//
|
|
301
301
|
//
|
|
302
|
-
return React.createElement(
|
|
303
|
-
|
|
302
|
+
return React.createElement(RawEliceIntlProvider, {
|
|
303
|
+
value: {
|
|
304
|
+
intl: __intl
|
|
305
|
+
}
|
|
306
|
+
}, React.createElement(MaterialModal, {
|
|
307
|
+
title: __intl.formatMessage({
|
|
304
308
|
id: 'exerciseSubmitHistory.title'
|
|
305
309
|
}),
|
|
306
310
|
onHide: onHide
|
|
@@ -317,11 +321,8 @@ const ExerciseSubmitHistory = ({
|
|
|
317
321
|
column: true,
|
|
318
322
|
height: "100%",
|
|
319
323
|
overflow: "hidden"
|
|
320
|
-
}, renderRunningContent(), renderRunningOutput())));
|
|
324
|
+
}, renderRunningContent(), renderRunningOutput()))));
|
|
321
325
|
};
|
|
322
|
-
var ExerciseSubmitHistory$1 =
|
|
323
|
-
en: phrasesEn,
|
|
324
|
-
ko: phrasesKo
|
|
325
|
-
});
|
|
326
|
+
var ExerciseSubmitHistory$1 = new IntlComponentBuilder(ExerciseSubmitHistory).add('en', messageEn).add('ko', messageKo).add('th', messageTh).build();
|
|
326
327
|
|
|
327
328
|
export { ExerciseSubmitHistory$1 as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var messageEn = {"exerciseSubmitHistory.button.load.more":"Load more","exerciseSubmitHistory.notChanged":"A file with no modification history.","exerciseSubmitHistory.runType.grade":"Grade","exerciseSubmitHistory.runType.run":"Run","exerciseSubmitHistory.title":"Code revision history"};
|
|
2
2
|
|
|
3
|
-
export {
|
|
3
|
+
export { messageEn as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var messageKo = {"exerciseSubmitHistory.button.load.more":"더 불러오기","exerciseSubmitHistory.notChanged":"수정 내역이 없는 파일입니다.","exerciseSubmitHistory.runType.grade":"제출","exerciseSubmitHistory.runType.run":"실행","exerciseSubmitHistory.title":"코드 수정 이력"};
|
|
2
2
|
|
|
3
|
-
export {
|
|
3
|
+
export { messageKo as default };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var messageTh = {"exerciseSubmitHistory.button.load.more":"โหลดเพิ่มเติม","exerciseSubmitHistory.notChanged":"ไม่มีปรับปรุงใดๆในไฟล์นี้ค่ะ.","exerciseSubmitHistory.runType.grade":"ส่ง","exerciseSubmitHistory.runType.run":"การดำเนินการ","exerciseSubmitHistory.title":"ประวัติการแก้ไขโค้ด"};
|
|
2
|
+
|
|
3
|
+
export { messageTh as default };
|
|
@@ -61,9 +61,5 @@ export interface FileTreeProps {
|
|
|
61
61
|
style?: React.CSSProperties;
|
|
62
62
|
locale?: string;
|
|
63
63
|
}
|
|
64
|
-
declare const _default: React.
|
|
65
|
-
Toolbar: React.VFC<import("./FileTreeToolbar").FileTreeToolbarProps>;
|
|
66
|
-
List: React.ForwardRefExoticComponent<import("./FileTreeList").FileTreeListProps & React.RefAttributes<HTMLDivElement>>;
|
|
67
|
-
Config: React.ForwardRefExoticComponent<import("./FileTreeConfig").FileTreeConfigProps & React.RefAttributes<HTMLDivElement>>;
|
|
68
|
-
};
|
|
64
|
+
declare const _default: React.ForwardRefExoticComponent<import("@elice/intl").IntlComponentExtraProps & Omit<FileTreeProps, keyof import("@elice/intl").IntlComponentExtraProps | "__intl"> & React.RefAttributes<any>>;
|
|
69
65
|
export default _default;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Spinner } from '@elice/blocks';
|
|
3
3
|
import { base } from '@elice/design-tokens';
|
|
4
|
-
import {
|
|
4
|
+
import { IntlComponentBuilder } from '@elice/intl';
|
|
5
5
|
import styled from 'styled-components';
|
|
6
|
-
import phrasesEn from './locales/en.json.js';
|
|
7
|
-
import phrasesKo from './locales/ko.json.js';
|
|
8
6
|
import { FileTreeProvider } from './context/FileTreeContext.js';
|
|
9
7
|
import FileTreeConfig from './FileTreeConfig.js';
|
|
10
8
|
import FileTreeList from './FileTreeList.js';
|
|
11
9
|
import FileTreeToolbar from './FileTreeToolbar.js';
|
|
10
|
+
import messageEn from './locales/en.json.js';
|
|
11
|
+
import messageKo from './locales/ko.json.js';
|
|
12
|
+
import messageTh from './locales/th.json.js';
|
|
12
13
|
|
|
13
14
|
const StyledFileTreeWrapper = styled.div.withConfig({
|
|
14
15
|
componentId: "sc-6ext2i-0"
|
|
@@ -17,20 +18,18 @@ const StyledLoading = styled.div.withConfig({
|
|
|
17
18
|
componentId: "sc-6ext2i-1"
|
|
18
19
|
})(["position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:", ";opacity:0.5;width:100%;height:100%;display:flex;align-items:center;justify-content:center;z-index:100;"], base.color.navy7);
|
|
19
20
|
const FileTree = props => {
|
|
20
|
-
return React.createElement(
|
|
21
|
-
locale: props.locale,
|
|
22
|
-
phrases: {
|
|
23
|
-
en: phrasesEn,
|
|
24
|
-
ko: phrasesKo
|
|
25
|
-
}
|
|
26
|
-
}, React.createElement(FileTreeProvider, Object.assign({}, props), React.createElement(StyledFileTreeWrapper, {
|
|
21
|
+
return React.createElement(FileTreeProvider, Object.assign({}, props), React.createElement(StyledFileTreeWrapper, {
|
|
27
22
|
style: props.style
|
|
28
|
-
}, props.loading ? React.createElement(StyledLoading, null, React.createElement(Spinner, null)) : null, props.children))
|
|
23
|
+
}, props.loading ? React.createElement(StyledLoading, null, React.createElement(Spinner, null)) : null, props.children));
|
|
29
24
|
};
|
|
30
|
-
|
|
25
|
+
//
|
|
26
|
+
//
|
|
27
|
+
//
|
|
28
|
+
const FileTreeComponents = Object.assign(FileTree, {
|
|
31
29
|
Toolbar: FileTreeToolbar,
|
|
32
30
|
List: FileTreeList,
|
|
33
31
|
Config: FileTreeConfig
|
|
34
32
|
});
|
|
33
|
+
var FileTree$1 = new IntlComponentBuilder(FileTreeComponents).add('en', messageEn).add('ko', messageKo).add('th', messageTh).build();
|
|
35
34
|
|
|
36
35
|
export { FileTree$1 as default };
|
|
@@ -53,6 +53,5 @@ const FileTreeConfig = forwardRef(({
|
|
|
53
53
|
}
|
|
54
54
|
}, mode === 'default' ? `Initial Open Files(${initialOpenFileListTemp.length})` : `Settings (${initialOpenFileListTemp.length})`));
|
|
55
55
|
});
|
|
56
|
-
var FileTreeConfig$1 = FileTreeConfig;
|
|
57
56
|
|
|
58
|
-
export { FileTreeConfig
|
|
57
|
+
export { FileTreeConfig as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useForm, Controller } from 'react-hook-form';
|
|
3
|
-
import { useIntl } from 'react-intl';
|
|
4
3
|
import { useClickAway } from 'react-use';
|
|
4
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
5
5
|
import { getParentPath } from './utils/fileTreeGenerator.js';
|
|
6
6
|
import { useFileTreeDispatch } from './context/FileTreeContext.js';
|
|
7
7
|
import { StyledInputForm, StyledInput } from './FileTreeListItemContentInput.styled.js';
|
|
@@ -21,7 +21,9 @@ const FileTreeListItemContentInput = ({
|
|
|
21
21
|
currentDirTitleList,
|
|
22
22
|
newInputType
|
|
23
23
|
}) => {
|
|
24
|
-
const
|
|
24
|
+
const {
|
|
25
|
+
intl
|
|
26
|
+
} = useRawEliceIntl();
|
|
25
27
|
const targetPath = getParentPath(currentPath);
|
|
26
28
|
const {
|
|
27
29
|
dispatch,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { useIntl, FormattedMessage } from 'react-intl';
|
|
3
2
|
import { Menu, Dialog, List } from '@elice/blocks';
|
|
3
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
4
4
|
import { useFileTreeState, useFileTreeDispatch } from './context/FileTreeContext.js';
|
|
5
5
|
|
|
6
6
|
const FileTreeListItemContentMenu = ({
|
|
@@ -8,7 +8,9 @@ const FileTreeListItemContentMenu = ({
|
|
|
8
8
|
anchorEl,
|
|
9
9
|
onClose
|
|
10
10
|
}) => {
|
|
11
|
-
const
|
|
11
|
+
const {
|
|
12
|
+
intl
|
|
13
|
+
} = useRawEliceIntl();
|
|
12
14
|
const {
|
|
13
15
|
allowToggleHidden,
|
|
14
16
|
allowToggleReadonly
|
|
@@ -118,8 +120,8 @@ const FileTreeListItemContentMenu = ({
|
|
|
118
120
|
}
|
|
119
121
|
return React.createElement(List.Item, {
|
|
120
122
|
onClick: handleReadOnlySet
|
|
121
|
-
}, React.createElement(List.ItemText, null,
|
|
122
|
-
id:
|
|
123
|
+
}, React.createElement(List.ItemText, null, intl.formatMessage({
|
|
124
|
+
id: 'fileTree.list.item.content.menu.item.readOnlySet'
|
|
123
125
|
})));
|
|
124
126
|
};
|
|
125
127
|
/**
|
|
@@ -131,8 +133,8 @@ const FileTreeListItemContentMenu = ({
|
|
|
131
133
|
}
|
|
132
134
|
return React.createElement(List.Item, {
|
|
133
135
|
onClick: handleReadOnlyUnset
|
|
134
|
-
}, React.createElement(List.ItemText, null,
|
|
135
|
-
id:
|
|
136
|
+
}, React.createElement(List.ItemText, null, intl.formatMessage({
|
|
137
|
+
id: 'fileTree.list.item.content.menu.item.readOnlyUnset'
|
|
136
138
|
})));
|
|
137
139
|
};
|
|
138
140
|
/**
|
|
@@ -144,8 +146,8 @@ const FileTreeListItemContentMenu = ({
|
|
|
144
146
|
}
|
|
145
147
|
return React.createElement(List.Item, {
|
|
146
148
|
onClick: handleHiddenSet
|
|
147
|
-
}, React.createElement(List.ItemText, null,
|
|
148
|
-
id:
|
|
149
|
+
}, React.createElement(List.ItemText, null, intl.formatMessage({
|
|
150
|
+
id: 'fileTree.list.item.content.menu.item.hiddenSet'
|
|
149
151
|
})));
|
|
150
152
|
};
|
|
151
153
|
/**
|
|
@@ -157,8 +159,8 @@ const FileTreeListItemContentMenu = ({
|
|
|
157
159
|
}
|
|
158
160
|
return React.createElement(List.Item, {
|
|
159
161
|
onClick: handleHiddenUnset
|
|
160
|
-
}, React.createElement(List.ItemText, null,
|
|
161
|
-
id:
|
|
162
|
+
}, React.createElement(List.ItemText, null, intl.formatMessage({
|
|
163
|
+
id: 'fileTree.list.item.content.menu.item.hiddenUnset'
|
|
162
164
|
})));
|
|
163
165
|
};
|
|
164
166
|
/**
|
|
@@ -170,8 +172,8 @@ const FileTreeListItemContentMenu = ({
|
|
|
170
172
|
}
|
|
171
173
|
return React.createElement(List.Item, {
|
|
172
174
|
onClick: handleNewFile
|
|
173
|
-
}, React.createElement(List.ItemText, null,
|
|
174
|
-
id:
|
|
175
|
+
}, React.createElement(List.ItemText, null, intl.formatMessage({
|
|
176
|
+
id: 'fileTree.list.item.content.menu.item.newFile'
|
|
175
177
|
})));
|
|
176
178
|
};
|
|
177
179
|
/**
|
|
@@ -183,8 +185,8 @@ const FileTreeListItemContentMenu = ({
|
|
|
183
185
|
}
|
|
184
186
|
return React.createElement(List.Item, {
|
|
185
187
|
onClick: handleNewDirectory
|
|
186
|
-
}, React.createElement(List.ItemText, null,
|
|
187
|
-
id:
|
|
188
|
+
}, React.createElement(List.ItemText, null, intl.formatMessage({
|
|
189
|
+
id: 'fileTree.list.item.content.menu.item.newDirectory'
|
|
188
190
|
})));
|
|
189
191
|
};
|
|
190
192
|
/**
|
|
@@ -194,8 +196,8 @@ const FileTreeListItemContentMenu = ({
|
|
|
194
196
|
return React.createElement(List.Item, {
|
|
195
197
|
disabled: !node.isRemovable,
|
|
196
198
|
onClick: handleRename
|
|
197
|
-
}, React.createElement(List.ItemText, null,
|
|
198
|
-
id:
|
|
199
|
+
}, React.createElement(List.ItemText, null, intl.formatMessage({
|
|
200
|
+
id: 'fileTree.list.item.content.menu.item.rename'
|
|
199
201
|
})));
|
|
200
202
|
};
|
|
201
203
|
/**
|
|
@@ -205,8 +207,8 @@ const FileTreeListItemContentMenu = ({
|
|
|
205
207
|
return React.createElement(List.Item, {
|
|
206
208
|
disabled: !node.isRemovable,
|
|
207
209
|
onClick: () => setDeleteDialogOpen(true)
|
|
208
|
-
}, React.createElement(List.ItemText, null,
|
|
209
|
-
id:
|
|
210
|
+
}, React.createElement(List.ItemText, null, intl.formatMessage({
|
|
211
|
+
id: 'fileTree.list.item.content.menu.item.delete'
|
|
210
212
|
})));
|
|
211
213
|
};
|
|
212
214
|
/**
|
|
@@ -242,12 +244,12 @@ const FileTreeListItemContentMenu = ({
|
|
|
242
244
|
onHide: () => setDeleteDialogOpen(false)
|
|
243
245
|
}, React.createElement(Dialog.CloseButton, {
|
|
244
246
|
onClick: () => setDeleteDialogOpen(false)
|
|
245
|
-
},
|
|
246
|
-
id:
|
|
247
|
+
}, intl.formatMessage({
|
|
248
|
+
id: 'fileTree.list.item.content.menu.deleteConfirmDialog.cancel'
|
|
247
249
|
})), React.createElement(Dialog.ActionButton, {
|
|
248
250
|
onClick: handleDelete
|
|
249
|
-
},
|
|
250
|
-
id:
|
|
251
|
+
}, intl.formatMessage({
|
|
252
|
+
id: 'fileTree.list.item.content.menu.deleteConfirmDialog.confirm'
|
|
251
253
|
})));
|
|
252
254
|
};
|
|
253
255
|
//
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { useIntl } from 'react-intl';
|
|
3
2
|
import { eilFileAdd, eilFolderAdd, eilUpload } from '@elice/icons';
|
|
3
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
4
4
|
import ExerciseMenuButton from '../exercise-menu-button/ExerciseMenuButton.js';
|
|
5
5
|
import { useFileTreeState, useFileTreeDispatch } from './context/FileTreeContext.js';
|
|
6
6
|
import { validateFilesSize } from './utils/fileTreeFiles.js';
|
|
@@ -10,7 +10,9 @@ import { StyledFileTreeToolbar } from './FileTreeToolbar.styled.js';
|
|
|
10
10
|
const FileTreeToolbar = ({
|
|
11
11
|
className
|
|
12
12
|
}) => {
|
|
13
|
-
const
|
|
13
|
+
const {
|
|
14
|
+
intl
|
|
15
|
+
} = useRawEliceIntl();
|
|
14
16
|
const {
|
|
15
17
|
activePath,
|
|
16
18
|
fileTree,
|
|
@@ -107,6 +109,5 @@ const FileTreeToolbar = ({
|
|
|
107
109
|
className: className
|
|
108
110
|
}, renderFileAddButton(), renderFolderAddButton(), renderFileUploadButton());
|
|
109
111
|
};
|
|
110
|
-
var FileTreeToolbar$1 = FileTreeToolbar;
|
|
111
112
|
|
|
112
|
-
export { FileTreeToolbar
|
|
113
|
+
export { FileTreeToolbar as default };
|