@elice/material-exercise 1.230328.0 → 1.230418.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,5 +1,8 @@
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');
4
7
  var reactIntl = require('react-intl');
5
8
  var reactUse = require('react-use');
@@ -39,57 +42,51 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
39
42
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
40
43
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
41
44
 
42
- const EXERCISE_RUNNER_HORIZONTAL_RATIO = {
45
+ var EXERCISE_RUNNER_HORIZONTAL_RATIO = {
43
46
  PREVIEW: 0.3,
44
47
  XTERM: 0.7
45
48
  };
46
- const StyledExerciseRunner = styled__default["default"].div.withConfig({
49
+ var StyledExerciseRunner = styled__default["default"].div.withConfig({
47
50
  componentId: "sc-mp78g-0"
48
51
  })(["display:flex;flex-direction:column;width:100%;height:100%;background-color:", ";min-height:0;"], designTokens.base.color.navy8);
49
52
  /**
50
53
  *
51
54
  */
52
-
53
- const ExerciseRunner = ({
54
- exercisePreview
55
- }) => {
55
+ var ExerciseRunner = function ExerciseRunner(_ref) {
56
+ var exercisePreview = _ref.exercisePreview;
56
57
  var _a, _b, _c;
57
-
58
- const intl = reactIntl.useIntl();
59
- const {
60
- onCodeHelpRequest
61
- } = React__default["default"].useContext(context.ExerciseContext);
62
- const {
63
- materialExerciseId,
64
- exerciseRoomId,
65
- locale,
66
- onSubmit,
67
- onError
68
- } = React__default["default"].useContext(context.ExerciseContext);
69
- const exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
70
- const {
71
- fontSize: editorPreferenceFontSize
72
- } = recoil.useRecoilValue(recoil$1.exerciseEditorPreferenceState); // runner states
73
-
74
- const setRunnerSubmitting = recoil.useSetRecoilState(recoil$1.exerciseRunnerSubmittingState);
75
- const setRunnerRunning = recoil.useSetRecoilState(recoil$1.exerciseRunnerRunningState);
76
- const [runnerRunTypeState, setRunnerRunTypeState] = recoil.useRecoilState(recoil$1.exerciseRunnerRunTypeState);
77
- const setExerciseRunnerRoomConnectionInfo = recoil.useSetRecoilState(recoil$1.exerciseRunnerRoomConnectionInfoState);
78
- const setRunnerStdioFilesState = recoil.useSetRecoilState(recoil$1.exerciseRunnerStdioFilesState); // preview states
79
-
80
- const exercisePreviewType = recoil.useRecoilValue(recoil$1.exercisePreviewTypeState(materialExerciseId));
81
- const exercisePreviewDisplayMode = recoil.useRecoilValue(recoil$1.exercisePreviewDisplayModeState); // monaco editor value
82
-
83
- const exerciseMonacoEditorApis = recoil.useRecoilValue(recoil$1.exerciseMonacoEditorApisState); // websockets
84
-
85
- const setRunnerRoomWebSocketState = recoil.useSetRecoilState(recoil$1.exerciseWebsocketQuery('runnerRoom'));
86
- const setStdioWebSocketState = recoil.useSetRecoilState(recoil$1.exerciseWebsocketQuery('stdio'));
87
-
88
- const handleAiHelpibotError = text => {
58
+ var intl = reactIntl.useIntl();
59
+ var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
60
+ onCodeHelpRequest = _React$useContext.onCodeHelpRequest;
61
+ var _React$useContext2 = React__default["default"].useContext(context.ExerciseContext),
62
+ materialExerciseId = _React$useContext2.materialExerciseId,
63
+ exerciseRoomId = _React$useContext2.exerciseRoomId,
64
+ locale = _React$useContext2.locale,
65
+ onSubmit = _React$useContext2.onSubmit,
66
+ onError = _React$useContext2.onError;
67
+ var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
68
+ var _useRecoilValue = recoil.useRecoilValue(recoil$1.exerciseEditorPreferenceState),
69
+ editorPreferenceFontSize = _useRecoilValue.fontSize;
70
+ // runner states
71
+ var setRunnerSubmitting = recoil.useSetRecoilState(recoil$1.exerciseRunnerSubmittingState);
72
+ var setRunnerRunning = recoil.useSetRecoilState(recoil$1.exerciseRunnerRunningState);
73
+ var _useRecoilState = recoil.useRecoilState(recoil$1.exerciseRunnerRunTypeState),
74
+ _useRecoilState2 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState, 2),
75
+ runnerRunTypeState = _useRecoilState2[0],
76
+ setRunnerRunTypeState = _useRecoilState2[1];
77
+ var setExerciseRunnerRoomConnectionInfo = recoil.useSetRecoilState(recoil$1.exerciseRunnerRoomConnectionInfoState);
78
+ var setRunnerStdioFilesState = recoil.useSetRecoilState(recoil$1.exerciseRunnerStdioFilesState);
79
+ // preview states
80
+ var exercisePreviewType = recoil.useRecoilValue(recoil$1.exercisePreviewTypeState(materialExerciseId));
81
+ var exercisePreviewDisplayMode = recoil.useRecoilValue(recoil$1.exercisePreviewDisplayModeState);
82
+ // monaco editor value
83
+ var exerciseMonacoEditorApis = recoil.useRecoilValue(recoil$1.exerciseMonacoEditorApisState);
84
+ // websockets
85
+ var setRunnerRoomWebSocketState = recoil.useSetRecoilState(recoil$1.exerciseWebsocketQuery('runnerRoom'));
86
+ var setStdioWebSocketState = recoil.useSetRecoilState(recoil$1.exerciseWebsocketQuery('stdio'));
87
+ var handleAiHelpibotError = function handleAiHelpibotError(text) {
89
88
  var _a, _b, _c;
90
-
91
- const error = runner.getProgrammingErrorResult(text);
92
-
89
+ var error = runner.getProgrammingErrorResult(text);
93
90
  if (!!error && typeof onCodeHelpRequest === 'function') {
94
91
  onCodeHelpRequest({
95
92
  code: error.errorCode,
@@ -100,36 +97,33 @@ const ExerciseRunner = ({
100
97
  });
101
98
  }
102
99
  };
103
-
104
- const {
105
- updateStdioTextConcator
106
- } = useStdioTextConcator.useStdioTextConcator(handleAiHelpibotError); // etc
107
-
108
- const exerciseContainerSize = recoil.useRecoilValue(recoil$1.exerciseContainerSizeState);
109
- const [runnerSubmitErrorDialog, setRunnerSubmitErrorDialog] = React__default["default"].useState(null);
110
- const arduinoTextBuffer = React__default["default"].useRef('');
111
- const runnerRunTypeRef = React__default["default"].useRef(runnerRunTypeState);
112
- const xterm = React__default["default"].useRef(null);
100
+ var _useStdioTextConcator = useStdioTextConcator.useStdioTextConcator(handleAiHelpibotError),
101
+ updateStdioTextConcator = _useStdioTextConcator.updateStdioTextConcator;
102
+ // etc
103
+ var exerciseContainerSize = recoil.useRecoilValue(recoil$1.exerciseContainerSizeState);
104
+ var _React$useState = React__default["default"].useState(null),
105
+ _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
106
+ runnerSubmitErrorDialog = _React$useState2[0],
107
+ setRunnerSubmitErrorDialog = _React$useState2[1];
108
+ var arduinoTextBuffer = React__default["default"].useRef('');
109
+ var runnerRunTypeRef = React__default["default"].useRef(runnerRunTypeState);
110
+ var xterm = React__default["default"].useRef(null);
113
111
  /**
114
112
  * Handle text received from arduino serial output.
115
113
  */
116
-
117
- const handleArduinoDigitalOutput = text => {
114
+ var handleArduinoDigitalOutput = function handleArduinoDigitalOutput(text) {
118
115
  var _a;
119
-
120
116
  (_a = xterm.current) === null || _a === void 0 ? void 0 : _a.write(text);
121
- }; // Arduino
122
-
123
-
124
- const arduino = useArduino.useArduino({
117
+ };
118
+ // Arduino
119
+ var arduino = useArduino.useArduino({
125
120
  writeTerminal: handleArduinoDigitalOutput
126
121
  });
127
- const isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
122
+ var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
128
123
  /**
129
124
  * Handle destroy arduino client.
130
125
  */
131
-
132
- const handleArduinoDistroy = React__default["default"].useCallback(() => {
126
+ var handleArduinoDistroy = React__default["default"].useCallback(function () {
133
127
  if (isArduinoExercise) {
134
128
  arduino.destroy();
135
129
  }
@@ -137,20 +131,16 @@ const ExerciseRunner = ({
137
131
  /**
138
132
  * Handle text received from stdio websocket.
139
133
  */
140
-
141
- const handleWsStdioTextReceive = (type, text) => {
134
+ var handleWsStdioTextReceive = function handleWsStdioTextReceive(type, text) {
142
135
  var _a, _b, _c;
143
-
144
136
  switch (type) {
145
137
  case 'text':
146
138
  (_a = xterm.current) === null || _a === void 0 ? void 0 : _a[runnerRunTypeRef.current !== types.enums.ExerciseRunType.Run ? 'writeEmphasized' : 'write'](text);
147
139
  updateStdioTextConcator(text);
148
140
  break;
149
-
150
141
  case 'grader':
151
142
  (_b = xterm.current) === null || _b === void 0 ? void 0 : _b.write(text);
152
143
  break;
153
-
154
144
  case 'echo':
155
145
  (_c = xterm.current) === null || _c === void 0 ? void 0 : _c.write(text);
156
146
  break;
@@ -159,34 +149,29 @@ const ExerciseRunner = ({
159
149
  /**
160
150
  * Handle file received from stdio websocket.
161
151
  */
162
-
163
-
164
- const handleWsStdioFileReceive = stdioFile => {
152
+ var handleWsStdioFileReceive = function handleWsStdioFileReceive(stdioFile) {
165
153
  // arduino exercise
166
154
  if (isArduinoExercise) {
167
155
  if ('filename' in stdioFile && stdioFile.filename.startsWith('firmware') && stdioFile.filename.endsWith('hex')) {
168
156
  arduino.uploadHexFile(stdioFile);
169
157
  }
170
-
171
158
  return;
172
- } // normal exercise
173
-
174
-
175
- setRunnerStdioFilesState(prevFiles => [...prevFiles, stdioFile]);
159
+ }
160
+ // normal exercise
161
+ setRunnerStdioFilesState(function (prevFiles) {
162
+ return [].concat(_rollupPluginBabelHelpers.toConsumableArray(prevFiles), [stdioFile]);
163
+ });
176
164
  };
177
165
  /**
178
166
  * Runner room websocket
179
167
  */
180
-
181
-
182
- const wsRunnerRoom = useRunnerRoomWebSocket.useRunnerRoomWebSocket({
183
- exerciseRoomId
168
+ var wsRunnerRoom = useRunnerRoomWebSocket.useRunnerRoomWebSocket({
169
+ exerciseRoomId: exerciseRoomId
184
170
  });
185
171
  /**
186
172
  * Stdio websocket
187
173
  */
188
-
189
- const wsStdio = useStdioWebSocket.useStdioWebSocket({
174
+ var wsStdio = useStdioWebSocket.useStdioWebSocket({
190
175
  wsUri: (_a = wsRunnerRoom.roomConnectionInfo) === null || _a === void 0 ? void 0 : _a.wsUri,
191
176
  roomToken: (_b = wsRunnerRoom.roomConnectionInfo) === null || _b === void 0 ? void 0 : _b.roomToken,
192
177
  isTty: (_c = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _c === void 0 ? void 0 : _c.isTty,
@@ -196,10 +181,8 @@ const ExerciseRunner = ({
196
181
  /**
197
182
  * Handle submit code error.
198
183
  */
199
-
200
- const handleRunnerSubmitError = err => {
184
+ var handleRunnerSubmitError = function handleRunnerSubmitError(err) {
201
185
  var _a, _b;
202
-
203
186
  switch ((_a = err.detail) === null || _a === void 0 ? void 0 : _a.failCode) {
204
187
  case 'room_type_mismatch':
205
188
  case 'not_found_exercise_room':
@@ -214,10 +197,11 @@ const ExerciseRunner = ({
214
197
  action: intl.formatMessage({
215
198
  id: 'exerciseRunner.submitErrorDialog.action.reload'
216
199
  }),
217
- onAction: () => window.location.reload()
200
+ onAction: function onAction() {
201
+ return window.location.reload();
202
+ }
218
203
  });
219
204
  break;
220
-
221
205
  case 'invalid_room_token':
222
206
  setRunnerSubmitErrorDialog({
223
207
  code: err.detail.failCode,
@@ -227,10 +211,11 @@ const ExerciseRunner = ({
227
211
  action: intl.formatMessage({
228
212
  id: 'exerciseRunner.submitErrorDialog.action.reload'
229
213
  }),
230
- onAction: () => window.location.reload()
214
+ onAction: function onAction() {
215
+ return window.location.reload();
216
+ }
231
217
  });
232
218
  break;
233
-
234
219
  case 'not_for_submit_grade':
235
220
  setRunnerSubmitErrorDialog({
236
221
  code: err.detail.failCode,
@@ -242,7 +227,6 @@ const ExerciseRunner = ({
242
227
  })
243
228
  });
244
229
  break;
245
-
246
230
  case 'expired_exercise_image':
247
231
  setRunnerSubmitErrorDialog({
248
232
  code: err.detail.failCode,
@@ -252,10 +236,11 @@ const ExerciseRunner = ({
252
236
  action: intl.formatMessage({
253
237
  id: 'exerciseRunner.submitErrorDialog.action.reload'
254
238
  }),
255
- onAction: () => window.location.reload()
239
+ onAction: function onAction() {
240
+ return window.location.reload();
241
+ }
256
242
  });
257
243
  break;
258
-
259
244
  case 'not_prepared_room_forwarder':
260
245
  case 'try_again':
261
246
  setRunnerSubmitErrorDialog({
@@ -268,7 +253,6 @@ const ExerciseRunner = ({
268
253
  })
269
254
  });
270
255
  break;
271
-
272
256
  case 'room_is_busy':
273
257
  setRunnerSubmitErrorDialog({
274
258
  code: err.detail.failCode,
@@ -280,7 +264,6 @@ const ExerciseRunner = ({
280
264
  })
281
265
  });
282
266
  break;
283
-
284
267
  case 'exceed_submit_grade_limit':
285
268
  setRunnerSubmitErrorDialog({
286
269
  code: err.detail.failCode,
@@ -292,7 +275,6 @@ const ExerciseRunner = ({
292
275
  })
293
276
  });
294
277
  break;
295
-
296
278
  default:
297
279
  setRunnerSubmitErrorDialog({
298
280
  code: ((_b = err === null || err === void 0 ? void 0 : err.detail) === null || _b === void 0 ? void 0 : _b.failCode) || 'unknown',
@@ -309,196 +291,217 @@ const ExerciseRunner = ({
309
291
  /**
310
292
  * Handle submit code to runner and run / grade.
311
293
  */
312
-
313
-
314
- const handleRunnerSubmit = async runType => {
315
- var _a, _b, _c;
316
-
317
- const readyExerciseImage = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage;
318
- const roomToken = (_a = wsRunnerRoom.roomConnectionInfo) === null || _a === void 0 ? void 0 : _a.roomToken;
319
-
320
- if (!readyExerciseImage || !roomToken) {
321
- return;
322
- }
323
-
324
- setRunnerStdioFilesState([]);
325
- setRunnerRunTypeState(runType);
326
- setRunnerSubmitting(true);
327
- return apiClient.postOrgMaterialExerciseExerciseRunningSubmit({
328
- roomToken,
329
- runType,
330
- exerciseImageId: readyExerciseImage.id,
331
- vncWidth: readyExerciseImage.isVnc ? Math.max((_b = readyExerciseImage.defaultVncWidth) !== null && _b !== void 0 ? _b : 0, 640) : undefined,
332
- vncHeight: readyExerciseImage.isVnc ? Math.max((_c = readyExerciseImage.defaultVncHeight) !== null && _c !== void 0 ? _c : 0, 480) : undefined
333
- }).then(res => {
334
- if (typeof onSubmit === 'function') {
335
- onSubmit(res);
336
- }
337
- }).catch(err => {
338
- setRunnerSubmitting(false);
339
- handleRunnerSubmitError(err);
340
-
341
- if (typeof onError === 'function') {
342
- onError(err);
343
- }
344
- });
345
- };
294
+ var handleRunnerSubmit = /*#__PURE__*/function () {
295
+ var _ref2 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee(runType) {
296
+ var _a, _b, _c, readyExerciseImage, roomToken;
297
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
298
+ while (1) switch (_context.prev = _context.next) {
299
+ case 0:
300
+ readyExerciseImage = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage;
301
+ roomToken = (_a = wsRunnerRoom.roomConnectionInfo) === null || _a === void 0 ? void 0 : _a.roomToken;
302
+ if (!(!readyExerciseImage || !roomToken)) {
303
+ _context.next = 4;
304
+ break;
305
+ }
306
+ return _context.abrupt("return");
307
+ case 4:
308
+ setRunnerStdioFilesState([]);
309
+ setRunnerRunTypeState(runType);
310
+ setRunnerSubmitting(true);
311
+ return _context.abrupt("return", apiClient.postOrgMaterialExerciseExerciseRunningSubmit({
312
+ roomToken: roomToken,
313
+ runType: runType,
314
+ exerciseImageId: readyExerciseImage.id,
315
+ vncWidth: readyExerciseImage.isVnc ? Math.max((_b = readyExerciseImage.defaultVncWidth) !== null && _b !== void 0 ? _b : 0, 640) : undefined,
316
+ vncHeight: readyExerciseImage.isVnc ? Math.max((_c = readyExerciseImage.defaultVncHeight) !== null && _c !== void 0 ? _c : 0, 480) : undefined
317
+ }).then(function (res) {
318
+ if (typeof onSubmit === 'function') {
319
+ onSubmit(res);
320
+ }
321
+ }).catch(function (err) {
322
+ setRunnerSubmitting(false);
323
+ handleRunnerSubmitError(err);
324
+ if (typeof onError === 'function') {
325
+ onError(err);
326
+ }
327
+ }));
328
+ case 8:
329
+ case "end":
330
+ return _context.stop();
331
+ }
332
+ }, _callee);
333
+ }));
334
+ return function handleRunnerSubmit(_x) {
335
+ return _ref2.apply(this, arguments);
336
+ };
337
+ }();
346
338
  /**
347
339
  * Handle runner to cancel running.
348
340
  */
349
-
350
-
351
- const handleRunnerCancel = async () => {
352
- var _a;
353
-
354
- const roomToken = (_a = wsRunnerRoom.roomConnectionInfo) === null || _a === void 0 ? void 0 : _a.roomToken;
355
-
356
- if (roomToken) {
357
- void apiClient.postOrgMaterialExerciseExerciseRunningCancel({
358
- roomToken
359
- });
360
- }
361
- };
341
+ var handleRunnerCancel = /*#__PURE__*/function () {
342
+ var _ref3 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee2() {
343
+ var _a, roomToken;
344
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee2$(_context2) {
345
+ while (1) switch (_context2.prev = _context2.next) {
346
+ case 0:
347
+ roomToken = (_a = wsRunnerRoom.roomConnectionInfo) === null || _a === void 0 ? void 0 : _a.roomToken;
348
+ if (roomToken) {
349
+ void apiClient.postOrgMaterialExerciseExerciseRunningCancel({
350
+ roomToken: roomToken
351
+ });
352
+ }
353
+ case 2:
354
+ case "end":
355
+ return _context2.stop();
356
+ }
357
+ }, _callee2);
358
+ }));
359
+ return function handleRunnerCancel() {
360
+ return _ref3.apply(this, arguments);
361
+ };
362
+ }();
362
363
  /**
363
364
  * Handle runner to request code sync.
364
365
  */
365
-
366
-
367
- const handleRunnerSyncRequest = () => {
366
+ var handleRunnerSyncRequest = function handleRunnerSyncRequest() {
368
367
  wsStdio.sendSync();
369
368
  };
370
369
  /**
371
370
  * Handle input requests for arduino.
372
371
  */
373
-
374
-
375
- const handleXtermArduinoInputRequest = char => {
372
+ var handleXtermArduinoInputRequest = function handleXtermArduinoInputRequest(char) {
376
373
  var _a, _b, _c;
377
-
378
374
  switch (char) {
379
375
  // backspace
380
- case '\u007f':
376
+ case "\x7F":
381
377
  (_a = xterm.current) === null || _a === void 0 ? void 0 : _a.write(' ');
382
378
  arduinoTextBuffer.current = arduinoTextBuffer.current.slice(0, -1);
383
379
  break;
384
380
  // enter
385
-
386
381
  case '\r':
387
382
  if (arduinoTextBuffer.current.length) {
388
383
  (_b = xterm.current) === null || _b === void 0 ? void 0 : _b.write('\r\n');
389
384
  arduino.sendText(arduinoTextBuffer.current);
390
385
  arduinoTextBuffer.current = '';
391
386
  }
392
-
393
387
  break;
394
388
  // any char
395
-
396
389
  default:
397
390
  (_c = xterm.current) === null || _c === void 0 ? void 0 : _c.write(char);
398
- arduinoTextBuffer.current = `${arduinoTextBuffer.current}${char}`;
391
+ arduinoTextBuffer.current = "".concat(arduinoTextBuffer.current).concat(char);
399
392
  break;
400
393
  }
401
394
  };
402
395
  /**
403
396
  * Handle input requests.
404
397
  */
405
-
406
-
407
- const handleXtermInputRequest = text => {
398
+ var handleXtermInputRequest = function handleXtermInputRequest(text) {
408
399
  if (isArduinoExercise) {
409
400
  handleXtermArduinoInputRequest(text);
410
401
  } else {
411
402
  wsStdio.sendText(text);
412
403
  }
413
- }; //
404
+ };
405
+ //
414
406
  // Initialize Arduino devices.
415
407
  //
416
-
417
-
418
- React__default["default"].useEffect(() => {
408
+ React__default["default"].useEffect(function () {
419
409
  if (!isArduinoExercise) {
420
410
  return;
421
411
  }
422
-
423
412
  void arduino.init();
424
- return () => {
413
+ return function () {
425
414
  void arduino.destroy();
426
415
  };
427
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
428
- [exercise]); //
416
+ },
417
+ // eslint-disable-next-line react-hooks/exhaustive-deps
418
+ [exercise]);
419
+ //
429
420
  // Destroy arduino client when unload window.
430
421
  //
431
-
432
- reactUse.useEvent('beforeunload', handleArduinoDistroy, window); //
422
+ reactUse.useEvent('beforeunload', handleArduinoDistroy, window);
423
+ //
433
424
  // Update runner room websocket state.
434
425
  //
435
-
436
- React__default["default"].useEffect(() => setRunnerRoomWebSocketState(wsRunnerRoom.readyState), // eslint-disable-next-line react-hooks/exhaustive-deps
437
- [wsRunnerRoom.readyState]); //
426
+ React__default["default"].useEffect(function () {
427
+ return setRunnerRoomWebSocketState(wsRunnerRoom.readyState);
428
+ },
429
+ // eslint-disable-next-line react-hooks/exhaustive-deps
430
+ [wsRunnerRoom.readyState]);
431
+ //
438
432
  // Update stdio websocket state.
439
433
  //
440
-
441
- React__default["default"].useEffect(() => setStdioWebSocketState(wsStdio.readyState), // eslint-disable-next-line react-hooks/exhaustive-deps
442
- [wsStdio.readyState]); //
434
+ React__default["default"].useEffect(function () {
435
+ return setStdioWebSocketState(wsStdio.readyState);
436
+ },
437
+ // eslint-disable-next-line react-hooks/exhaustive-deps
438
+ [wsStdio.readyState]);
439
+ //
443
440
  // Set runner submitting status to false,
444
441
  // whenever runner room's running status is changed.
445
442
  // (assume that sumbitting done when running status is changed)
446
443
  //
447
-
448
- React__default["default"].useEffect(() => setRunnerSubmitting(false), // eslint-disable-next-line react-hooks/exhaustive-deps
449
- [wsRunnerRoom.isRunning]); //
444
+ React__default["default"].useEffect(function () {
445
+ return setRunnerSubmitting(false);
446
+ },
447
+ // eslint-disable-next-line react-hooks/exhaustive-deps
448
+ [wsRunnerRoom.isRunning]);
449
+ //
450
450
  // Auto focus terminal when running.
451
451
  //
452
-
453
- React__default["default"].useEffect(() => {
452
+ React__default["default"].useEffect(function () {
454
453
  if (wsRunnerRoom.isRunning) {
455
- setTimeout(() => {
454
+ setTimeout(function () {
456
455
  var _a;
457
-
458
456
  return (_a = xterm.current) === null || _a === void 0 ? void 0 : _a.focus();
459
457
  }, 100);
460
458
  }
461
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
462
- [wsRunnerRoom.isRunning]); //
459
+ },
460
+ // eslint-disable-next-line react-hooks/exhaustive-deps
461
+ [wsRunnerRoom.isRunning]);
462
+ //
463
463
  // Bind runner run type to ref.
464
464
  //
465
-
466
- React__default["default"].useEffect(() => {
465
+ React__default["default"].useEffect(function () {
467
466
  runnerRunTypeRef.current = runnerRunTypeState;
468
- }, [runnerRunTypeState]); //
467
+ }, [runnerRunTypeState]);
468
+ //
469
469
  // Update room connection info.
470
470
  //
471
-
472
- React__default["default"].useEffect(() => setRunnerRunning(wsRunnerRoom.isRunning), // eslint-disable-next-line react-hooks/exhaustive-deps
473
- [wsRunnerRoom.isRunning]); //
471
+ React__default["default"].useEffect(function () {
472
+ return setRunnerRunning(wsRunnerRoom.isRunning);
473
+ },
474
+ // eslint-disable-next-line react-hooks/exhaustive-deps
475
+ [wsRunnerRoom.isRunning]);
476
+ //
474
477
  // Update room connection info.
475
478
  //
476
-
477
- React__default["default"].useEffect(() => setExerciseRunnerRoomConnectionInfo(wsRunnerRoom.roomConnectionInfo), // eslint-disable-next-line react-hooks/exhaustive-deps
478
- [wsRunnerRoom.roomConnectionInfo]); //
479
+ React__default["default"].useEffect(function () {
480
+ return setExerciseRunnerRoomConnectionInfo(wsRunnerRoom.roomConnectionInfo);
481
+ },
482
+ // eslint-disable-next-line react-hooks/exhaustive-deps
483
+ [wsRunnerRoom.roomConnectionInfo]);
484
+ //
479
485
  // handle send text request to runner stdio.
480
486
  //
481
-
482
- React__default["default"].useEffect(() => {
483
- const textSendSub = subjects.exerciseRunnerTextSend$.subscribe(wsStdio.sendText);
484
- return () => {
487
+ React__default["default"].useEffect(function () {
488
+ var textSendSub = subjects.exerciseRunnerTextSend$.subscribe(wsStdio.sendText);
489
+ return function () {
485
490
  textSendSub.unsubscribe();
486
491
  };
487
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
492
+ },
493
+ // eslint-disable-next-line react-hooks/exhaustive-deps
488
494
  []);
489
495
  /**
490
496
  * Preview.
491
497
  */
492
-
493
- const renderPreview = () => {
498
+ var renderPreview = function renderPreview() {
494
499
  if (exercisePreviewType === recoilTypes.ExercisePreviewType.None) {
495
500
  return null;
496
501
  }
497
-
498
502
  if (exercisePreviewDisplayMode !== recoilTypes.ExercisePreviewDisplayMode.Mini) {
499
503
  return null;
500
504
  }
501
-
502
505
  return React__default["default"].createElement(blocks.ResizableNext, Object.assign({}, stylesheets.MATERIAL_RESIZABLE_COMMON_PROPS, {
503
506
  children: exercisePreview,
504
507
  initialWidth: exerciseContainerSize.width * EXERCISE_RUNNER_HORIZONTAL_RATIO.PREVIEW,
@@ -509,14 +512,14 @@ const ExerciseRunner = ({
509
512
  /**
510
513
  * Xterm
511
514
  */
512
-
513
-
514
- const renderXterm = () => {
515
+ var renderXterm = function renderXterm() {
515
516
  // show system message when...
516
- const showSystemMessage = // - run type is grade
517
- runnerRunTypeState === types.enums.ExerciseRunType.Grade || // - not an arduino exercise
517
+ var showSystemMessage =
518
+ // - run type is grade
519
+ runnerRunTypeState === types.enums.ExerciseRunType.Grade ||
520
+ // - not an arduino exercise
518
521
  !isArduinoExercise;
519
- return React__default["default"].createElement(XtermLazy, {
522
+ return React__default["default"].createElement(XtermLazy["default"], {
520
523
  isRunning: wsRunnerRoom.isRunning,
521
524
  fontSize: editorPreferenceFontSize,
522
525
  suppressSystemMessage: !showSystemMessage,
@@ -529,42 +532,39 @@ const ExerciseRunner = ({
529
532
  /**
530
533
  * Runner submit error dialog.
531
534
  */
532
-
533
-
534
- const renderRunnerSubmitErrorDialog = () => {
535
+ var renderRunnerSubmitErrorDialog = function renderRunnerSubmitErrorDialog() {
535
536
  if (!runnerSubmitErrorDialog) {
536
537
  return null;
537
538
  }
538
-
539
539
  return React__default["default"].createElement(blocks.Dialog, {
540
540
  type: "error",
541
541
  title: intl.formatMessage({
542
542
  id: 'exerciseRunner.submitErrorDialog.title'
543
543
  }),
544
- body: `${runnerSubmitErrorDialog.message}\n(error code: ${runnerSubmitErrorDialog.code})`,
545
- onHide: () => setRunnerSubmitErrorDialog(null)
544
+ body: "".concat(runnerSubmitErrorDialog.message, "\n(error code: ").concat(runnerSubmitErrorDialog.code, ")"),
545
+ onHide: function onHide() {
546
+ return setRunnerSubmitErrorDialog(null);
547
+ }
546
548
  }, React__default["default"].createElement(blocks.Dialog.ActionButton, {
547
549
  children: runnerSubmitErrorDialog.action,
548
- onClick: () => {
550
+ onClick: function onClick() {
549
551
  if (typeof runnerSubmitErrorDialog.onAction === 'function') {
550
552
  runnerSubmitErrorDialog.onAction();
551
553
  }
552
-
553
554
  setRunnerSubmitErrorDialog(null);
554
555
  }
555
556
  }));
556
- }; //
557
+ };
558
+ //
557
559
  //
558
560
  //
559
-
560
-
561
561
  return React__default["default"].createElement(StyledExerciseRunner, null, React__default["default"].createElement(ExerciseRunnerContext.ExerciseRunnerContext.Provider, {
562
562
  value: {
563
563
  onSubmit: handleRunnerSubmit,
564
564
  onCancel: handleRunnerCancel,
565
565
  onSyncRequest: handleRunnerSyncRequest
566
566
  }
567
- }, React__default["default"].createElement(ExerciseRunnerController, null), React__default["default"].createElement(blocks.Flex, {
567
+ }, React__default["default"].createElement(ExerciseRunnerController["default"], null), React__default["default"].createElement(blocks.Flex, {
568
568
  auto: true,
569
569
  style: {
570
570
  minHeight: 0
@@ -572,10 +572,9 @@ const ExerciseRunner = ({
572
572
  overflow: "hidden"
573
573
  }, renderPreview(), renderXterm(), renderRunnerSubmitErrorDialog())));
574
574
  };
575
-
576
575
  var ExerciseRunner$1 = ExerciseIntlProvider.withExerciseIntlProvider(ExerciseRunner, {
577
- en: en,
578
- ko: ko
576
+ en: en["default"],
577
+ ko: ko["default"]
579
578
  });
580
579
 
581
- module.exports = ExerciseRunner$1;
580
+ exports["default"] = ExerciseRunner$1;