@elice/material-exercise 1.230328.0 → 1.230418.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/cjs/_virtual/_rollupPluginBabelHelpers.js +526 -0
  2. package/cjs/components/material-exercise/MaterialExercise.js +44 -63
  3. package/cjs/components/material-exercise/MaterialExercise.styled.js +20 -23
  4. package/cjs/components/material-exercise/MaterialExerciseMobile.js +19 -15
  5. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  6. package/cjs/components/material-exercise/context/ExerciseProvider.js +83 -81
  7. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +16 -16
  8. package/cjs/components/material-exercise/context/context.js +1 -1
  9. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +3 -1
  10. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +3 -1
  11. package/cjs/components/material-exercise/context/recoil.js +559 -371
  12. package/cjs/components/material-exercise/context/recoilTypes.js +0 -5
  13. package/cjs/components/material-exercise/context/subjects.js +3 -6
  14. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  15. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -65
  16. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  17. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +7 -0
  18. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +7 -0
  19. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +20 -21
  20. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +225 -198
  21. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -10
  22. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +35 -32
  23. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +57 -48
  24. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
  25. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -1
  26. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -1
  27. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +327 -231
  28. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
  29. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +3 -1
  30. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +3 -1
  31. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +17 -17
  32. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -14
  33. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -6
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +47 -38
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +60 -42
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +29 -22
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +45 -56
  38. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  39. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +3 -1
  40. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +3 -1
  41. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -20
  42. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +5 -3
  43. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +30 -41
  44. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +17 -12
  45. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +3 -1
  46. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +3 -1
  47. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +24 -33
  48. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +13 -8
  49. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +84 -83
  50. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +3 -1
  51. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +3 -1
  52. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +20 -12
  53. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +239 -147
  55. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +92 -63
  56. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  57. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +3 -1
  58. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +3 -1
  59. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +219 -220
  60. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -13
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +30 -26
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +26 -26
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +70 -95
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +27 -27
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +54 -60
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +5 -5
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -13
  69. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +29 -26
  70. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +3 -1
  71. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +3 -1
  72. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  73. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +290 -180
  74. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  75. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -45
  76. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +7 -0
  77. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +7 -0
  78. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +19 -17
  79. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +5 -4
  80. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +15 -14
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +7 -6
  82. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +17 -16
  83. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +18 -11
  84. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -4
  85. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  86. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -7
  87. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  88. package/cjs/components/shared/file-icon/FileIcon.js +23 -23
  89. package/cjs/components/shared/file-tabs/FileTab.js +32 -43
  90. package/cjs/components/shared/file-tabs/FileTab.styled.js +26 -22
  91. package/cjs/components/shared/file-tabs/FileTabs.js +55 -49
  92. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -2
  93. package/cjs/components/shared/file-tabs/util.js +29 -18
  94. package/cjs/components/shared/file-tree/FileTree.js +11 -11
  95. package/cjs/components/shared/file-tree/FileTreeConfig.js +24 -23
  96. package/cjs/components/shared/file-tree/FileTreeList.js +35 -41
  97. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +75 -91
  98. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  99. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +77 -101
  100. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  101. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +51 -86
  102. package/cjs/components/shared/file-tree/FileTreeListItems.js +150 -153
  103. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  104. package/cjs/components/shared/file-tree/FileTreeToolbar.js +30 -41
  105. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  106. package/cjs/components/shared/file-tree/context/FileTreeContext.js +91 -97
  107. package/cjs/components/shared/file-tree/locales/en.json.js +3 -1
  108. package/cjs/components/shared/file-tree/locales/ko.json.js +3 -1
  109. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  110. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  111. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  112. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  113. package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -7
  114. package/cjs/components/shared/file-viewer/FileViewer.js +59 -60
  115. package/cjs/components/shared/file-viewer/FileViewerCsv.js +145 -101
  116. package/cjs/components/shared/file-viewer/FileViewerImage.js +7 -8
  117. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +20 -14
  118. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +28 -34
  119. package/cjs/components/shared/file-viewer/FileViewerText.js +23 -16
  120. package/cjs/components/shared/file-viewer/locales/en.json.js +3 -1
  121. package/cjs/components/shared/file-viewer/locales/ko.json.js +3 -1
  122. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +3 -1
  123. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +3 -1
  124. package/cjs/components/shared/material-modal/MaterialModal.js +10 -12
  125. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -5
  126. package/cjs/components/shared/monaco-editor/MonacoEditor.js +123 -149
  127. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +10 -8
  128. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -58
  129. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +78 -85
  130. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  131. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  132. package/cjs/components/shared/monaco-editor/constants/themes/index.js +80 -32
  133. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  134. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  135. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  136. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  137. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  138. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  139. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +36 -12
  140. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +5 -8
  141. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +36 -12
  142. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -6
  143. package/cjs/components/shared/monaco-editor/editor-languages/index.js +3 -1
  144. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  145. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +3 -2
  146. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +3 -2
  147. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +3 -2
  148. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +36 -12
  149. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +18 -24
  150. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  151. package/cjs/components/shared/monaco-editor/locales/en.json.js +3 -1
  152. package/cjs/components/shared/monaco-editor/locales/ko.json.js +3 -1
  153. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  154. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  155. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  156. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +70 -32
  157. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  158. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  159. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  160. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  161. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  162. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +30 -9
  163. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  164. package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -5
  165. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  166. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  167. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  168. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  169. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  170. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  171. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  172. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  173. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +218 -329
  174. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  175. package/cjs/components/shared/no-vnc/NoVnc.js +93 -90
  176. package/cjs/components/shared/no-vnc/NoVncLazy.js +7 -5
  177. package/cjs/components/shared/preview-container/PreviewContainer.js +7 -10
  178. package/cjs/components/shared/web-browser/WebBrowser.js +54 -59
  179. package/cjs/components/shared/xterm/Xterm.js +112 -105
  180. package/cjs/components/shared/xterm/XtermLazy.js +7 -5
  181. package/cjs/components/shared/xterm/locales/en.json.js +3 -1
  182. package/cjs/components/shared/xterm/locales/ko.json.js +3 -1
  183. package/cjs/constants/arduino.js +10 -10
  184. package/cjs/constants/shortcutKeyMap.js +5 -5
  185. package/cjs/constants/stylesheets.js +7 -10
  186. package/cjs/hooks/useArduino.js +327 -255
  187. package/cjs/hooks/useExerciseFile.js +24 -24
  188. package/cjs/hooks/useExericseShortcut.js +6 -5
  189. package/cjs/hooks/useMaterialExerciseFileUrl.js +54 -37
  190. package/cjs/hooks/useRunnerRoomWebSocket.js +58 -56
  191. package/cjs/hooks/useStdioTextConcator.js +18 -12
  192. package/cjs/hooks/useStdioWebSocket.js +41 -67
  193. package/cjs/hooks/useUsercodeEditWebSocket.js +230 -252
  194. package/cjs/hooks/useUsercodeHistory.js +121 -82
  195. package/cjs/index.js +4 -4
  196. package/cjs/utils/arduino.js +23 -25
  197. package/cjs/utils/exerciseFile.js +8 -16
  198. package/cjs/utils/runner.js +29 -25
  199. package/es/_virtual/_rollupPluginBabelHelpers.js +504 -0
  200. package/es/components/material-exercise/MaterialExercise.js +33 -54
  201. package/es/components/material-exercise/MaterialExercise.styled.js +20 -23
  202. package/es/components/material-exercise/MaterialExerciseMobile.js +15 -13
  203. package/es/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  204. package/es/components/material-exercise/context/ExerciseProvider.js +79 -79
  205. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +11 -13
  206. package/es/components/material-exercise/context/context.js +1 -1
  207. package/es/components/material-exercise/context/recoil.js +560 -372
  208. package/es/components/material-exercise/context/recoilTypes.js +0 -5
  209. package/es/components/material-exercise/context/subjects.js +3 -6
  210. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  211. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +73 -62
  212. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  213. package/es/components/material-exercise/exercise-code-history/locales/en.json.js +3 -0
  214. package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +3 -0
  215. package/es/components/material-exercise/exercise-file/ExerciseFile.js +15 -18
  216. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +218 -193
  217. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -9
  218. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +31 -28
  219. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +52 -45
  220. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  221. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +321 -225
  222. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  223. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +12 -14
  224. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -10
  225. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -5
  226. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +43 -36
  227. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +53 -37
  228. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +25 -20
  229. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +41 -54
  230. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  231. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +25 -19
  232. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  233. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +21 -34
  234. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -10
  235. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +17 -28
  236. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +9 -6
  237. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +81 -82
  238. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +13 -7
  239. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  240. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +236 -146
  241. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +90 -63
  242. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  243. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +212 -215
  244. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  245. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +7 -9
  246. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +27 -25
  247. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +22 -24
  248. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +66 -93
  249. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +24 -26
  250. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +51 -59
  251. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -4
  252. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +6 -11
  253. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +26 -25
  254. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  255. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +284 -174
  256. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  257. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +38 -44
  258. package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +3 -0
  259. package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +3 -0
  260. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +16 -16
  261. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -3
  262. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -13
  263. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -3
  264. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -15
  265. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +15 -10
  266. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +2 -3
  267. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  268. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +5 -6
  269. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  270. package/es/components/shared/file-icon/FileIcon.js +20 -22
  271. package/es/components/shared/file-tabs/FileTab.js +28 -41
  272. package/es/components/shared/file-tabs/FileTab.styled.js +26 -22
  273. package/es/components/shared/file-tabs/FileTabs.js +52 -48
  274. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  275. package/es/components/shared/file-tabs/util.js +29 -18
  276. package/es/components/shared/file-tree/FileTree.js +3 -5
  277. package/es/components/shared/file-tree/FileTreeConfig.js +21 -22
  278. package/es/components/shared/file-tree/FileTreeList.js +31 -39
  279. package/es/components/shared/file-tree/FileTreeListItemContent.js +67 -85
  280. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  281. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +74 -100
  282. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  283. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +48 -85
  284. package/es/components/shared/file-tree/FileTreeListItems.js +147 -152
  285. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  286. package/es/components/shared/file-tree/FileTreeToolbar.js +24 -37
  287. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  288. package/es/components/shared/file-tree/context/FileTreeContext.js +91 -97
  289. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  290. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  291. package/es/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  292. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  293. package/es/components/shared/file-tree/utils/fileTreePath.js +5 -7
  294. package/es/components/shared/file-viewer/FileViewer.js +52 -53
  295. package/es/components/shared/file-viewer/FileViewerCsv.js +141 -99
  296. package/es/components/shared/file-viewer/FileViewerImage.js +3 -6
  297. package/es/components/shared/file-viewer/FileViewerIpynb.js +16 -12
  298. package/es/components/shared/file-viewer/FileViewerNonViewable.js +22 -30
  299. package/es/components/shared/file-viewer/FileViewerText.js +18 -13
  300. package/es/components/shared/material-modal/MaterialModal.js +7 -11
  301. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  302. package/es/components/shared/monaco-editor/MonacoEditor.js +119 -147
  303. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +6 -4
  304. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +45 -56
  305. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +73 -82
  306. package/es/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  307. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  308. package/es/components/shared/monaco-editor/constants/themes/index.js +80 -32
  309. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  310. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  311. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  312. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  313. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  314. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  315. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -11
  316. package/es/components/shared/monaco-editor/editor-languages/css/index.js +2 -5
  317. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -11
  318. package/es/components/shared/monaco-editor/editor-languages/html/index.js +2 -5
  319. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  320. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +0 -1
  321. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +0 -1
  322. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +0 -1
  323. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +33 -11
  324. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -16
  325. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  326. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  327. package/es/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  328. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  329. package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -31
  330. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  331. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  332. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  333. package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  334. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  335. package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -8
  336. package/es/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  337. package/es/components/shared/monaco-editor/utils/theme/index.js +22 -5
  338. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  339. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  340. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  341. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  342. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  343. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  344. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  345. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  346. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +219 -330
  347. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  348. package/es/components/shared/no-vnc/NoVnc.js +89 -88
  349. package/es/components/shared/no-vnc/NoVncLazy.js +4 -2
  350. package/es/components/shared/preview-container/PreviewContainer.js +7 -10
  351. package/es/components/shared/web-browser/WebBrowser.js +49 -56
  352. package/es/components/shared/xterm/Xterm.js +107 -102
  353. package/es/components/shared/xterm/XtermLazy.js +4 -2
  354. package/es/constants/arduino.js +10 -10
  355. package/es/constants/shortcutKeyMap.js +3 -5
  356. package/es/constants/stylesheets.js +7 -10
  357. package/es/hooks/useArduino.js +327 -255
  358. package/es/hooks/useExerciseFile.js +24 -24
  359. package/es/hooks/useExericseShortcut.js +6 -5
  360. package/es/hooks/useMaterialExerciseFileUrl.js +55 -38
  361. package/es/hooks/useRunnerRoomWebSocket.js +58 -56
  362. package/es/hooks/useStdioTextConcator.js +18 -12
  363. package/es/hooks/useStdioWebSocket.js +41 -67
  364. package/es/hooks/useUsercodeEditWebSocket.js +230 -252
  365. package/es/hooks/useUsercodeHistory.js +122 -83
  366. package/es/utils/arduino.js +23 -25
  367. package/es/utils/exerciseFile.js +8 -16
  368. package/es/utils/runner.js +29 -25
  369. package/package.json +8 -8
@@ -1,6 +1,10 @@
1
1
  'use strict';
2
2
 
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
3
6
  var React = require('react');
7
+ var reactIntl = require('react-intl');
4
8
  var apiClient = require('@elice/api-client');
5
9
  var blocks = require('@elice/blocks');
6
10
  var types = require('@elice/types');
@@ -21,255 +25,354 @@ var context = require('../context/context.js');
21
25
  require('../context/recoilTypes.js');
22
26
  require('../context/subjects.js');
23
27
  require('../context/ExerciseProvider.js');
28
+ var ExerciseIntlProvider = require('../context/ExerciseIntlProvider.js');
29
+ var en = require('./locales/en.json.js');
30
+ var ko = require('./locales/ko.json.js');
24
31
  var ExerciseSubmitHistoryOutput = require('./ExerciseSubmitHistoryOutput.js');
25
32
  var ExerciseVersionListItem_styled = require('../../shared/exercise-version-list/ExerciseVersionListItem.styled.js');
26
33
  var ExerciseSubmitHistory_styled = require('./ExerciseSubmitHistory.styled.js');
27
34
 
28
35
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
29
36
 
30
- function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, 'default': e }); }
31
-
32
37
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
33
38
  var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
34
39
 
35
- const AsyncFileTree = React__default["default"].lazy(() => Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('../../shared/file-tree/FileTree.js')); }));
36
- const AsyncFileTreeList = React__default["default"].lazy(() => Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('../../shared/file-tree/FileTreeList.js')); }));
37
- const AsyncFileViewer = React__default["default"].lazy(() => Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('../../shared/file-viewer/FileViewer.js')); }));
38
-
39
- const ExerciseSubmitHistory = ({
40
- onHide
41
- }) => {
42
- const COUNT = 100;
43
- const {
44
- materialExerciseId,
45
- exerciseRoomId,
46
- exerciseRoomUserId
47
- } = React__default["default"].useContext(context.ExerciseContext);
48
- const exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
49
- const preference = recoil.useRecoilValue(recoil$1.exerciseEditorPreferenceState);
50
- const [runningList, setRunningList] = React.useState([]);
51
- const [selectedRunning, setSelectedRunning] = React.useState(null);
52
- const [hasMoreRunning, setMoreRunning] = React.useState(false);
53
- const [offset, setOffset] = React.useState(0);
54
- const [fileList, setFileList] = React.useState([]);
55
- const [selectedFile, setSelectedFile] = React.useState(null);
56
- const [usercodeContent, setUsercodeContent] = React.useState(null);
57
- const [isUserChanged, setIsUserChanged] = React.useState(false);
58
- const [isFile, setIsFile] = React.useState(false);
59
- const [isFileReady, setIsFileReady] = React.useState(false);
60
- const selectedFileUrl = useMaterialExerciseFileUrl.useMaterialExerciseFileUrl({
40
+ var AsyncFileTree = React__default["default"].lazy(function () {
41
+ return Promise.resolve().then(function () { return require('../../shared/file-tree/FileTree.js'); });
42
+ });
43
+ var AsyncFileTreeList = React__default["default"].lazy(function () {
44
+ return Promise.resolve().then(function () { return require('../../shared/file-tree/FileTreeList.js'); });
45
+ });
46
+ var AsyncFileViewer = React__default["default"].lazy(function () {
47
+ return Promise.resolve().then(function () { return require('../../shared/file-viewer/FileViewer.js'); });
48
+ });
49
+ var ExerciseSubmitHistory = function ExerciseSubmitHistory(_ref) {
50
+ var onHide = _ref.onHide;
51
+ var COUNT = 100;
52
+ var intl = reactIntl.useIntl();
53
+ var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
54
+ materialExerciseId = _React$useContext.materialExerciseId,
55
+ exerciseRoomId = _React$useContext.exerciseRoomId,
56
+ exerciseRoomUserId = _React$useContext.exerciseRoomUserId;
57
+ var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
58
+ var preference = recoil.useRecoilValue(recoil$1.exerciseEditorPreferenceState);
59
+ var _useState = React.useState([]),
60
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
61
+ runningList = _useState2[0],
62
+ setRunningList = _useState2[1];
63
+ var _useState3 = React.useState(null),
64
+ _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
65
+ selectedRunning = _useState4[0],
66
+ setSelectedRunning = _useState4[1];
67
+ var _useState5 = React.useState(false),
68
+ _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
69
+ hasMoreRunning = _useState6[0],
70
+ setMoreRunning = _useState6[1];
71
+ var _useState7 = React.useState(0),
72
+ _useState8 = _rollupPluginBabelHelpers.slicedToArray(_useState7, 2),
73
+ offset = _useState8[0],
74
+ setOffset = _useState8[1];
75
+ var _useState9 = React.useState([]),
76
+ _useState10 = _rollupPluginBabelHelpers.slicedToArray(_useState9, 2),
77
+ fileList = _useState10[0],
78
+ setFileList = _useState10[1];
79
+ var _useState11 = React.useState(null),
80
+ _useState12 = _rollupPluginBabelHelpers.slicedToArray(_useState11, 2),
81
+ selectedFile = _useState12[0],
82
+ setSelectedFile = _useState12[1];
83
+ var _useState13 = React.useState(null),
84
+ _useState14 = _rollupPluginBabelHelpers.slicedToArray(_useState13, 2),
85
+ usercodeContent = _useState14[0],
86
+ setUsercodeContent = _useState14[1];
87
+ var _useState15 = React.useState(false),
88
+ _useState16 = _rollupPluginBabelHelpers.slicedToArray(_useState15, 2),
89
+ isUserChanged = _useState16[0],
90
+ setIsUserChanged = _useState16[1];
91
+ var _useState17 = React.useState(false),
92
+ _useState18 = _rollupPluginBabelHelpers.slicedToArray(_useState17, 2),
93
+ isFile = _useState18[0],
94
+ setIsFile = _useState18[1];
95
+ var _useState19 = React.useState(false),
96
+ _useState20 = _rollupPluginBabelHelpers.slicedToArray(_useState19, 2),
97
+ isFileReady = _useState20[0],
98
+ setIsFileReady = _useState20[1];
99
+ var selectedFileUrl = useMaterialExerciseFileUrl.useMaterialExerciseFileUrl({
61
100
  filename: selectedFile,
62
- exercise,
63
- exerciseRoomId
64
- }); //
101
+ exercise: exercise,
102
+ exerciseRoomId: exerciseRoomId
103
+ });
65
104
  //
66
105
  //
67
-
68
- React.useEffect(() => {
69
- void (async () => {
70
- try {
71
- const {
72
- exerciseRunnings
73
- } = await apiClient.getOrgMaterialExerciseExerciseRunningList({
74
- materialExerciseId,
75
- userId: exerciseRoomUserId,
76
- offset,
77
- count: COUNT
78
- });
79
- setRunningList(runningList => {
80
- if (runningList.length === 0 && exerciseRunnings[0]) {
81
- setSelectedRunning(exerciseRunnings[0]);
82
- }
83
-
84
- return [...runningList, ...exerciseRunnings];
85
- });
86
- setMoreRunning(exerciseRunnings.length === COUNT);
87
- } catch (err) {}
88
- })();
89
- }, [materialExerciseId, exerciseRoomUserId, offset]); //
106
+ //
107
+ React.useEffect(function () {
108
+ void _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
109
+ var _yield$getOrgMaterial, exerciseRunnings;
110
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
111
+ while (1) switch (_context.prev = _context.next) {
112
+ case 0:
113
+ _context.prev = 0;
114
+ _context.next = 3;
115
+ return apiClient.getOrgMaterialExerciseExerciseRunningList({
116
+ materialExerciseId: materialExerciseId,
117
+ userId: exerciseRoomUserId,
118
+ offset: offset,
119
+ count: COUNT
120
+ });
121
+ case 3:
122
+ _yield$getOrgMaterial = _context.sent;
123
+ exerciseRunnings = _yield$getOrgMaterial.exerciseRunnings;
124
+ setRunningList(function (runningList) {
125
+ if (runningList.length === 0 && exerciseRunnings[0]) {
126
+ setSelectedRunning(exerciseRunnings[0]);
127
+ }
128
+ return [].concat(_rollupPluginBabelHelpers.toConsumableArray(runningList), _rollupPluginBabelHelpers.toConsumableArray(exerciseRunnings));
129
+ });
130
+ setMoreRunning(exerciseRunnings.length === COUNT);
131
+ _context.next = 11;
132
+ break;
133
+ case 9:
134
+ _context.prev = 9;
135
+ _context.t0 = _context["catch"](0);
136
+ case 11:
137
+ case "end":
138
+ return _context.stop();
139
+ }
140
+ }, _callee, null, [[0, 9]]);
141
+ }))();
142
+ }, [materialExerciseId, exerciseRoomUserId, offset]);
143
+ //
90
144
  // When id of selected running is updated,
91
145
  // Get exercise running data and filelist.
92
146
  //
93
-
94
- React.useEffect(() => {
95
- void (async () => {
96
- var _a, _b, _c, _d, _e;
97
-
98
- if (!selectedRunning) {
99
- return;
100
- }
101
-
102
- try {
103
- const {
104
- exerciseRunning
105
- } = await apiClient.getOrgMaterialExerciseExerciseRunningGet({
106
- exerciseRunningId: selectedRunning.id,
107
- returnFilelist: true,
108
- returnUsercodeFilelist: true
109
- });
110
- setSelectedRunning(exerciseRunning);
111
-
112
- if ((exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.MultiLanguage) {
113
- let languages, environment;
114
-
115
- try {
116
- const languagesResponse = await apiClient.getOrgMaterialExerciseExerciseImageExerciseFileGet({
147
+ React.useEffect(function () {
148
+ void _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee2() {
149
+ var _a, _b, _c, _d, _e, _yield$getOrgMaterial2, exerciseRunning, languages, environment, languagesResponse, response, rootDir, initialOpenFilelist;
150
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee2$(_context2) {
151
+ while (1) switch (_context2.prev = _context2.next) {
152
+ case 0:
153
+ if (selectedRunning) {
154
+ _context2.next = 2;
155
+ break;
156
+ }
157
+ return _context2.abrupt("return");
158
+ case 2:
159
+ _context2.prev = 2;
160
+ _context2.next = 5;
161
+ return apiClient.getOrgMaterialExerciseExerciseRunningGet({
162
+ exerciseRunningId: selectedRunning.id,
163
+ returnFilelist: true,
164
+ returnUsercodeFilelist: true
165
+ });
166
+ case 5:
167
+ _yield$getOrgMaterial2 = _context2.sent;
168
+ exerciseRunning = _yield$getOrgMaterial2.exerciseRunning;
169
+ setSelectedRunning(exerciseRunning);
170
+ if (!((exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.MultiLanguage)) {
171
+ _context2.next = 35;
172
+ break;
173
+ }
174
+ _context2.prev = 9;
175
+ _context2.next = 12;
176
+ return apiClient.getOrgMaterialExerciseExerciseImageExerciseFileGet({
117
177
  exerciseImageId: exerciseRunning.exerciseImage.id,
118
178
  filename: '.languages.json'
119
179
  });
180
+ case 12:
181
+ languagesResponse = _context2.sent;
120
182
  languages = humps.camelizeKeys(JSON.parse(languagesResponse.exerciseFile.content));
121
- } catch (e) {
122
- console.error(e);
123
- }
124
-
125
- try {
126
- const response = await apiClient.getOrgMaterialExerciseExerciseRoomUserFileGet({
183
+ _context2.next = 19;
184
+ break;
185
+ case 16:
186
+ _context2.prev = 16;
187
+ _context2.t0 = _context2["catch"](9);
188
+ console.error(_context2.t0);
189
+ case 19:
190
+ _context2.prev = 19;
191
+ _context2.next = 22;
192
+ return apiClient.getOrgMaterialExerciseExerciseRoomUserFileGet({
127
193
  filename: '.environment.json',
128
- exerciseRoomId,
194
+ exerciseRoomId: exerciseRoomId,
129
195
  targetDatetime: exerciseRunning.createdDatetime
130
196
  });
197
+ case 22:
198
+ response = _context2.sent;
131
199
  environment = humps.camelizeKeys(JSON.parse(response.userFile.content));
132
- } catch (e) {
200
+ _context2.next = 29;
201
+ break;
202
+ case 26:
203
+ _context2.prev = 26;
204
+ _context2.t1 = _context2["catch"](19);
133
205
  // API returns error when the user hasn't changed the language
134
206
  if (languages && Object.keys(languages).length > 0) {
135
207
  environment = {
136
208
  language: Object.keys(languages)[0]
137
209
  };
138
210
  }
139
- }
140
-
141
- const rootDir = languages[environment.language].rootDir;
142
- const initialOpenFilelist = (_a = languages === null || languages === void 0 ? void 0 : languages[environment === null || environment === void 0 ? void 0 : environment.language]) === null || _a === void 0 ? void 0 : _a.initialOpenFilelist;
143
- setFileList([...((_b = exerciseRunning.exerciseImage.filelist) !== null && _b !== void 0 ? _b : []), ...((_c = exerciseRunning.exerciseRoom.filelist) !== null && _c !== void 0 ? _c : [])].filter(filepath => filepath.startsWith(rootDir)));
144
-
145
- if ((initialOpenFilelist === null || initialOpenFilelist === void 0 ? void 0 : initialOpenFilelist.length) > 0) {
146
- setSelectedFile(initialOpenFilelist[0]);
147
- }
148
- } else {
149
- setFileList([...((_d = exerciseRunning.exerciseImage.filelist) !== null && _d !== void 0 ? _d : []), ...((_e = exerciseRunning.exerciseRoom.filelist) !== null && _e !== void 0 ? _e : [])]);
150
-
151
- if (exerciseRunning.exerciseImage.taskFilelist && exerciseRunning.exerciseImage.taskFilelist.length > 0) {
152
- setSelectedFile(exerciseRunning.exerciseImage.taskFilelist[0]);
153
- }
211
+ case 29:
212
+ rootDir = languages[environment.language].rootDir;
213
+ initialOpenFilelist = (_a = languages === null || languages === void 0 ? void 0 : languages[environment === null || environment === void 0 ? void 0 : environment.language]) === null || _a === void 0 ? void 0 : _a.initialOpenFilelist;
214
+ setFileList([].concat(_rollupPluginBabelHelpers.toConsumableArray((_b = exerciseRunning.exerciseImage.filelist) !== null && _b !== void 0 ? _b : []), _rollupPluginBabelHelpers.toConsumableArray((_c = exerciseRunning.exerciseRoom.filelist) !== null && _c !== void 0 ? _c : [])).filter(function (filepath) {
215
+ return filepath.startsWith(rootDir);
216
+ }));
217
+ if ((initialOpenFilelist === null || initialOpenFilelist === void 0 ? void 0 : initialOpenFilelist.length) > 0) {
218
+ setSelectedFile(initialOpenFilelist[0]);
219
+ }
220
+ _context2.next = 37;
221
+ break;
222
+ case 35:
223
+ setFileList([].concat(_rollupPluginBabelHelpers.toConsumableArray((_d = exerciseRunning.exerciseImage.filelist) !== null && _d !== void 0 ? _d : []), _rollupPluginBabelHelpers.toConsumableArray((_e = exerciseRunning.exerciseRoom.filelist) !== null && _e !== void 0 ? _e : [])));
224
+ if (exerciseRunning.exerciseImage.taskFilelist && exerciseRunning.exerciseImage.taskFilelist.length > 0) {
225
+ setSelectedFile(exerciseRunning.exerciseImage.taskFilelist[0]);
226
+ }
227
+ case 37:
228
+ _context2.next = 42;
229
+ break;
230
+ case 39:
231
+ _context2.prev = 39;
232
+ _context2.t2 = _context2["catch"](2);
233
+ console.error(_context2.t2);
234
+ case 42:
235
+ case "end":
236
+ return _context2.stop();
154
237
  }
155
- } catch (err) {
156
- console.error(err);
157
- }
158
- })(); // eslint-disable-next-line react-hooks/exhaustive-deps
159
- }, [selectedRunning === null || selectedRunning === void 0 ? void 0 : selectedRunning.id]); //
238
+ }, _callee2, null, [[2, 39], [9, 16], [19, 26]]);
239
+ }))();
240
+ // eslint-disable-next-line react-hooks/exhaustive-deps
241
+ }, [selectedRunning === null || selectedRunning === void 0 ? void 0 : selectedRunning.id]);
242
+ //
160
243
  // When selectedFile or selectedRunning is updated,
161
244
  // Get usercode of selected file.
162
245
  //
163
-
164
- React.useEffect(() => {
165
- void (async () => {
166
- setIsFileReady(false);
167
-
168
- if (!(selectedRunning === null || selectedRunning === void 0 ? void 0 : selectedRunning.exerciseImage) || !selectedFile || !exerciseRoomId) {
169
- return;
170
- }
171
-
172
- const {
173
- usercode
174
- } = await apiClient.getOrgMaterialExerciseUsercodeGet({
175
- filename: selectedFile,
176
- exerciseRoomId: selectedRunning.exerciseRoom.id,
177
- targetDatetime: selectedRunning.createdDatetime
178
- });
179
-
180
- if ((usercode === null || usercode === void 0 ? void 0 : usercode.content) !== null && (usercode === null || usercode === void 0 ? void 0 : usercode.content) !== undefined) {
181
- setIsUserChanged(true);
182
- setIsFile(false);
183
- setUsercodeContent(usercode.content);
184
- setIsFileReady(true);
185
- } else {
186
- try {
187
- const {
188
- exerciseFile
189
- } = await apiClient.getOrgMaterialExerciseExerciseImageExerciseFileGet({
190
- exerciseImageId: selectedRunning.exerciseImage.id,
191
- filename: selectedFile
192
- });
193
-
194
- if ((exerciseFile === null || exerciseFile === void 0 ? void 0 : exerciseFile.content) !== null && (exerciseFile === null || exerciseFile === void 0 ? void 0 : exerciseFile.content) !== undefined) {
195
- setIsUserChanged(false);
246
+ React.useEffect(function () {
247
+ void _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee3() {
248
+ var _yield$getOrgMaterial3, usercode, _yield$getOrgMaterial4, exerciseFile;
249
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee3$(_context3) {
250
+ while (1) switch (_context3.prev = _context3.next) {
251
+ case 0:
252
+ setIsFileReady(false);
253
+ if (!(!(selectedRunning === null || selectedRunning === void 0 ? void 0 : selectedRunning.exerciseImage) || !selectedFile || !exerciseRoomId)) {
254
+ _context3.next = 3;
255
+ break;
256
+ }
257
+ return _context3.abrupt("return");
258
+ case 3:
259
+ _context3.next = 5;
260
+ return apiClient.getOrgMaterialExerciseUsercodeGet({
261
+ filename: selectedFile,
262
+ exerciseRoomId: selectedRunning.exerciseRoom.id,
263
+ targetDatetime: selectedRunning.createdDatetime
264
+ });
265
+ case 5:
266
+ _yield$getOrgMaterial3 = _context3.sent;
267
+ usercode = _yield$getOrgMaterial3.usercode;
268
+ if (!((usercode === null || usercode === void 0 ? void 0 : usercode.content) !== null && (usercode === null || usercode === void 0 ? void 0 : usercode.content) !== undefined)) {
269
+ _context3.next = 14;
270
+ break;
271
+ }
272
+ setIsUserChanged(true);
196
273
  setIsFile(false);
197
- setUsercodeContent(exerciseFile.content);
274
+ setUsercodeContent(usercode.content);
198
275
  setIsFileReady(true);
199
- } else {
276
+ _context3.next = 27;
277
+ break;
278
+ case 14:
279
+ _context3.prev = 14;
280
+ _context3.next = 17;
281
+ return apiClient.getOrgMaterialExerciseExerciseImageExerciseFileGet({
282
+ exerciseImageId: selectedRunning.exerciseImage.id,
283
+ filename: selectedFile
284
+ });
285
+ case 17:
286
+ _yield$getOrgMaterial4 = _context3.sent;
287
+ exerciseFile = _yield$getOrgMaterial4.exerciseFile;
288
+ if ((exerciseFile === null || exerciseFile === void 0 ? void 0 : exerciseFile.content) !== null && (exerciseFile === null || exerciseFile === void 0 ? void 0 : exerciseFile.content) !== undefined) {
289
+ setIsUserChanged(false);
290
+ setIsFile(false);
291
+ setUsercodeContent(exerciseFile.content);
292
+ setIsFileReady(true);
293
+ } else {
294
+ setIsUserChanged(false);
295
+ setIsFile(true);
296
+ setIsFileReady(true);
297
+ }
298
+ _context3.next = 27;
299
+ break;
300
+ case 22:
301
+ _context3.prev = 22;
302
+ _context3.t0 = _context3["catch"](14);
200
303
  setIsUserChanged(false);
201
304
  setIsFile(true);
202
305
  setIsFileReady(true);
203
- }
204
- } catch (_a) {
205
- setIsUserChanged(false);
206
- setIsFile(true);
207
- setIsFileReady(true);
306
+ case 27:
307
+ case "end":
308
+ return _context3.stop();
208
309
  }
209
- }
210
- })();
310
+ }, _callee3, null, [[14, 22]]);
311
+ }))();
211
312
  }, [selectedFile, exerciseRoomId, selectedRunning]);
212
313
  /**
213
314
  *
214
315
  */
215
-
216
- const renderRunningVersionList = () => {
217
- return React__default["default"].createElement(ExerciseVersionList, null, runningList.map(exerciseRunning => {
218
- return React__default["default"].createElement(ExerciseVersionListItem, {
316
+ var renderRunningVersionList = function renderRunningVersionList() {
317
+ return React__default["default"].createElement(ExerciseVersionList["default"], null, runningList.map(function (exerciseRunning) {
318
+ return React__default["default"].createElement(ExerciseVersionListItem["default"], {
219
319
  key: exerciseRunning.id,
220
320
  selected: Boolean(selectedRunning && selectedRunning.id === exerciseRunning.id),
221
- onClick: () => {
321
+ onClick: function onClick() {
222
322
  setSelectedRunning(exerciseRunning);
223
323
  }
224
324
  }, React__default["default"].createElement(ExerciseVersionListItem_styled.StyledExerciseVersionRunType, {
225
325
  role: "gray3",
226
326
  size: "small"
227
- }, exerciseRunning.runType === types.enums.ExerciseRunType.Grade ? '제출' : '실행'), React__default["default"].createElement(ExerciseVersionListItem_styled.StyledExerciseVersionDatetime, {
327
+ }, exerciseRunning.runType === types.enums.ExerciseRunType.Grade ? intl.formatMessage({
328
+ id: 'exerciseSubmitHistory.runType.grade'
329
+ }) : intl.formatMessage({
330
+ id: 'exerciseSubmitHistory.runType.run'
331
+ })), React__default["default"].createElement(ExerciseVersionListItem_styled.StyledExerciseVersionDatetime, {
228
332
  role: "gray3",
229
333
  size: "small"
230
334
  }, dayjs__default["default"](exerciseRunning.createdDatetime).format('YYYY.M.DD hh:mm')), React__default["default"].createElement(ExerciseVersionListItem_styled.StyledExerciseVersionScore, {
231
335
  role: "gray3",
232
336
  size: "small"
233
337
  }, exerciseRunning.score));
234
- }), hasMoreRunning ? React__default["default"].createElement(ExerciseVersionListItem, {
235
- onClick: () => setOffset(prevOffset => prevOffset + COUNT)
338
+ }), hasMoreRunning ? React__default["default"].createElement(ExerciseVersionListItem["default"], {
339
+ onClick: function onClick() {
340
+ return setOffset(function (prevOffset) {
341
+ return prevOffset + COUNT;
342
+ });
343
+ }
236
344
  }, React__default["default"].createElement(blocks.Flex, {
237
345
  align: "center",
238
346
  justify: "center",
239
347
  width: "100%"
240
348
  }, React__default["default"].createElement(blocks.Text, {
241
349
  role: "important"
242
- }, "\uB354 \uBD88\uB7EC\uC624\uAE30"))) : null);
350
+ }, intl.formatMessage({
351
+ id: 'exerciseSubmitHistory.button.load.more'
352
+ })))) : null);
243
353
  };
244
354
  /**
245
355
  *
246
356
  */
247
-
248
-
249
- const renderRunningOutput = () => {
357
+ var renderRunningOutput = function renderRunningOutput() {
250
358
  if (!selectedRunning) {
251
359
  return null;
252
360
  }
253
-
254
- return React__default["default"].createElement(ExerciseSubmitHistoryOutput, {
361
+ return React__default["default"].createElement(ExerciseSubmitHistoryOutput["default"], {
255
362
  exerciseRunningId: selectedRunning.id
256
363
  });
257
364
  };
258
365
  /**
259
366
  *
260
367
  */
261
-
262
-
263
- const renderRunningContent = () => {
368
+ var renderRunningContent = function renderRunningContent() {
264
369
  var _a;
265
-
266
370
  if (!selectedFile) {
267
371
  return null;
268
372
  }
269
-
270
- const runningId = Number((_a = selectedRunning === null || selectedRunning === void 0 ? void 0 : selectedRunning.id) !== null && _a !== void 0 ? _a : 0);
271
- const uniqueFilePath = `submit-history/${exerciseRoomId}/r${runningId}`;
272
- const editorFilename = `${uniqueFilePath}/${selectedFile}`;
373
+ var runningId = Number((_a = selectedRunning === null || selectedRunning === void 0 ? void 0 : selectedRunning.id) !== null && _a !== void 0 ? _a : 0);
374
+ var uniqueFilePath = "submit-history/".concat(exerciseRoomId, "/r").concat(runningId);
375
+ var editorFilename = "".concat(uniqueFilePath, "/").concat(selectedFile);
273
376
  return React__default["default"].createElement(blocks.Flex, {
274
377
  width: "100%",
275
378
  auto: true,
@@ -284,11 +387,11 @@ const ExerciseSubmitHistory = ({
284
387
  activePath: selectedFile,
285
388
  exerciseRoomFilelist: fileList,
286
389
  imageFilelist: [],
287
- onActivePathChange: (path, isDirectory = false) => {
390
+ onActivePathChange: function onActivePathChange(path) {
391
+ var isDirectory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
288
392
  if (isDirectory) {
289
393
  return;
290
394
  }
291
-
292
395
  setSelectedFile(path);
293
396
  }
294
397
  }, React__default["default"].createElement(AsyncFileTreeList, null))))), React__default["default"].createElement(blocks.Flex, {
@@ -299,13 +402,15 @@ const ExerciseSubmitHistory = ({
299
402
  }, !isUserChanged && React__default["default"].createElement(ExerciseSubmitHistory_styled.StyledExerciseSubmitHistoryNotChanged, null, React__default["default"].createElement(blocks.Text, {
300
403
  role: "white",
301
404
  size: "tiny"
302
- }, "\uC218\uC815 \uB0B4\uC5ED\uC774 \uC5C6\uB294 \uD30C\uC77C\uC785\uB2C8\uB2E4.")), React__default["default"].createElement(ExerciseSubmitHistory_styled.StyledExerciseSubmitHistoryEditorWrapper, null, isFile ? React__default["default"].createElement(React__default["default"].Suspense, {
405
+ }, intl.formatMessage({
406
+ id: 'exerciseSubmitHistory.notChanged'
407
+ }))), React__default["default"].createElement(ExerciseSubmitHistory_styled.StyledExerciseSubmitHistoryEditorWrapper, null, isFile ? React__default["default"].createElement(React__default["default"].Suspense, {
303
408
  fallback: null
304
409
  }, React__default["default"].createElement(AsyncFileViewer, {
305
410
  key: editorFilename,
306
411
  filename: editorFilename,
307
412
  fileurl: selectedFileUrl || ''
308
- })) : React__default["default"].createElement(MonacoEditorLazy, {
413
+ })) : React__default["default"].createElement(MonacoEditorLazy["default"], {
309
414
  key: editorFilename,
310
415
  defaultValue: usercodeContent !== null && usercodeContent !== void 0 ? usercodeContent : '',
311
416
  filename: editorFilename,
@@ -314,13 +419,14 @@ const ExerciseSubmitHistory = ({
314
419
  readOnly: true
315
420
  })
316
421
  }), !isFileReady && React__default["default"].createElement(ExerciseSubmitHistory_styled.StyledExerciseSubmitHistoryEditorLoadingScreen, null, React__default["default"].createElement(blocks.Spinner, null)))));
317
- }; //
422
+ };
318
423
  //
319
424
  //
320
-
321
-
322
- return React__default["default"].createElement(MaterialModal, {
323
- title: "\uC81C\uCD9C \uC774\uB825",
425
+ //
426
+ return React__default["default"].createElement(MaterialModal["default"], {
427
+ title: intl.formatMessage({
428
+ id: 'exerciseSubmitHistory.title'
429
+ }),
324
430
  onHide: onHide
325
431
  }, React__default["default"].createElement(blocks.Flex, {
326
432
  width: "100%",
@@ -337,5 +443,9 @@ const ExerciseSubmitHistory = ({
337
443
  overflow: "hidden"
338
444
  }, renderRunningContent(), renderRunningOutput())));
339
445
  };
446
+ var ExerciseSubmitHistory$1 = ExerciseIntlProvider.withExerciseIntlProvider(ExerciseSubmitHistory, {
447
+ en: en["default"],
448
+ ko: ko["default"]
449
+ });
340
450
 
341
- module.exports = ExerciseSubmitHistory;
451
+ exports["default"] = ExerciseSubmitHistory$1;
@@ -10,28 +10,28 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
10
10
 
11
11
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
12
12
 
13
- const StyledFileTreeWrapper = styled__default["default"].div.withConfig({
13
+ var StyledFileTreeWrapper = styled__default["default"].div.withConfig({
14
14
  componentId: "sc-uooiby-0"
15
15
  })(["overflow:auto;width:100%;height:100%;background-color:", ";"], designTokens.base.color.navy9);
16
- const StyledExerciseSubmitHistoryEditorWrapper = styled__default["default"](blocks.Flex).withConfig({
16
+ var StyledExerciseSubmitHistoryEditorWrapper = styled__default["default"](blocks.Flex).withConfig({
17
17
  componentId: "sc-uooiby-1"
18
18
  })(["position:relative;flex-direction:column;flex:1 1 0%;width:100%;overflow:hidden;"]);
19
- const StyledExerciseSubmitHistoryNotChanged = styled__default["default"].div.withConfig({
19
+ var StyledExerciseSubmitHistoryNotChanged = styled__default["default"].div.withConfig({
20
20
  componentId: "sc-uooiby-2"
21
21
  })(["background-color:", ";padding:0.5rem;"], designTokens.base.color.navy7);
22
- const StyledExerciseSubmitHistoryEditorLoadingScreen = styled__default["default"](blocks.Flex).withConfig({
22
+ var StyledExerciseSubmitHistoryEditorLoadingScreen = styled__default["default"](blocks.Flex).withConfig({
23
23
  componentId: "sc-uooiby-3"
24
24
  })(["position:absolute;top:0;left:0;right:0;bottom:0;background-color:", ";align-items:center;justify-content:center;"], designTokens.base.color.navy9);
25
- const StyledExerciseSubmitHistoryOutputText = styled__default["default"].span.withConfig({
25
+ var StyledExerciseSubmitHistoryOutputText = styled__default["default"].span.withConfig({
26
26
  componentId: "sc-uooiby-4"
27
27
  })(["white-space:pre-wrap;color:", ";font-size:0.875rem;line-height:1.5rem;&.grader{color:", ";}&.info{color:", ";display:block;}&.file{display:block;color:", ";cursor:pointer;&:hover{color:", ";}}"], designTokens.base.color.white, designTokens.base.color.secondary4, designTokens.base.color.red8, designTokens.base.color.secondary4, designTokens.base.color.white);
28
- const StyledExerciseSubmitHistoryOutput = styled__default["default"].div.withConfig({
28
+ var StyledExerciseSubmitHistoryOutput = styled__default["default"].div.withConfig({
29
29
  componentId: "sc-uooiby-5"
30
30
  })(["width:100%;height:100%;overflow:scroll;background-color:black;padding:0.5rem;font-size:14px;font-family:Elice Digital Coding;"]);
31
- const StyledExerciseSubmitHistoryOutputImageLink = styled__default["default"].a.withConfig({
31
+ var StyledExerciseSubmitHistoryOutputImageLink = styled__default["default"].a.withConfig({
32
32
  componentId: "sc-uooiby-6"
33
33
  })(["display:block;margin:9.8px 0;padding:0;width:100%;max-width:400px;"]);
34
- const StyledExerciseSubmitHistoryOutputImage = styled__default["default"].img.withConfig({
34
+ var StyledExerciseSubmitHistoryOutputImage = styled__default["default"].img.withConfig({
35
35
  componentId: "sc-uooiby-7"
36
36
  })(["display:block;width:100%;"]);
37
37