@elice/material-exercise 1.230325.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 (373) 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.d.ts +2 -1
  12. package/cjs/components/material-exercise/context/recoil.js +562 -373
  13. package/cjs/components/material-exercise/context/recoilTypes.js +0 -5
  14. package/cjs/components/material-exercise/context/subjects.js +3 -6
  15. package/cjs/components/material-exercise/context/types.d.ts +8 -1
  16. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  17. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -65
  18. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  19. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +7 -0
  20. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +7 -0
  21. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +20 -21
  22. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +228 -199
  23. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -10
  24. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +35 -32
  25. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +57 -48
  26. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
  27. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -1
  28. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -1
  29. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +327 -231
  30. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
  31. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +3 -1
  32. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +3 -1
  33. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +17 -17
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -14
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -6
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +47 -38
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +60 -42
  38. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +29 -22
  39. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +45 -56
  40. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  41. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +3 -1
  42. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +3 -1
  43. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -20
  44. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +5 -3
  45. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +30 -41
  46. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +17 -12
  47. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +3 -1
  48. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +3 -1
  49. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +24 -33
  50. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +13 -8
  51. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +84 -83
  52. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +3 -1
  53. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +3 -1
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +20 -12
  55. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  56. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +239 -147
  57. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +92 -63
  58. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  59. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +3 -1
  60. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +3 -1
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +224 -223
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -13
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +30 -26
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +26 -26
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +79 -95
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +27 -27
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +54 -60
  69. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +5 -5
  70. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -13
  71. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +29 -26
  72. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +3 -1
  73. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +3 -1
  74. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  75. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +290 -180
  76. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  77. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -45
  78. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +7 -0
  79. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +7 -0
  80. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +19 -17
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +5 -4
  82. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +15 -14
  83. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +7 -6
  84. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +17 -16
  85. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +18 -11
  86. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -4
  87. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  88. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -7
  89. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  90. package/cjs/components/shared/file-icon/FileIcon.js +23 -23
  91. package/cjs/components/shared/file-tabs/FileTab.js +32 -43
  92. package/cjs/components/shared/file-tabs/FileTab.styled.js +26 -22
  93. package/cjs/components/shared/file-tabs/FileTabs.js +55 -49
  94. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -2
  95. package/cjs/components/shared/file-tabs/util.js +29 -18
  96. package/cjs/components/shared/file-tree/FileTree.js +11 -11
  97. package/cjs/components/shared/file-tree/FileTreeConfig.js +24 -23
  98. package/cjs/components/shared/file-tree/FileTreeList.js +35 -41
  99. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +75 -91
  100. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  101. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +77 -101
  102. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  103. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +51 -86
  104. package/cjs/components/shared/file-tree/FileTreeListItems.js +150 -153
  105. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  106. package/cjs/components/shared/file-tree/FileTreeToolbar.js +30 -41
  107. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  108. package/cjs/components/shared/file-tree/context/FileTreeContext.js +91 -97
  109. package/cjs/components/shared/file-tree/locales/en.json.js +3 -1
  110. package/cjs/components/shared/file-tree/locales/ko.json.js +3 -1
  111. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  112. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  113. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  114. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  115. package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -7
  116. package/cjs/components/shared/file-viewer/FileViewer.js +59 -60
  117. package/cjs/components/shared/file-viewer/FileViewerCsv.js +145 -101
  118. package/cjs/components/shared/file-viewer/FileViewerImage.js +7 -8
  119. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +20 -14
  120. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +28 -34
  121. package/cjs/components/shared/file-viewer/FileViewerText.js +23 -16
  122. package/cjs/components/shared/file-viewer/locales/en.json.js +3 -1
  123. package/cjs/components/shared/file-viewer/locales/ko.json.js +3 -1
  124. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +3 -1
  125. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +3 -1
  126. package/cjs/components/shared/material-modal/MaterialModal.js +10 -12
  127. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -5
  128. package/cjs/components/shared/monaco-editor/MonacoEditor.js +123 -149
  129. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +10 -8
  130. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -58
  131. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +78 -85
  132. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  133. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  134. package/cjs/components/shared/monaco-editor/constants/themes/index.js +80 -32
  135. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  136. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  137. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  138. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  139. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  140. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  141. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +36 -12
  142. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +5 -8
  143. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +36 -12
  144. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -6
  145. package/cjs/components/shared/monaco-editor/editor-languages/index.js +3 -1
  146. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  147. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +3 -2
  148. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +3 -2
  149. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +3 -2
  150. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +36 -12
  151. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +18 -24
  152. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  153. package/cjs/components/shared/monaco-editor/locales/en.json.js +3 -1
  154. package/cjs/components/shared/monaco-editor/locales/ko.json.js +3 -1
  155. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  156. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  157. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  158. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +70 -32
  159. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  160. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  161. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  162. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  163. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  164. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +30 -9
  165. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  166. package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -5
  167. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  168. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  169. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  170. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  171. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  172. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  173. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  174. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  175. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +218 -329
  176. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  177. package/cjs/components/shared/no-vnc/NoVnc.js +93 -90
  178. package/cjs/components/shared/no-vnc/NoVncLazy.js +7 -5
  179. package/cjs/components/shared/preview-container/PreviewContainer.js +7 -10
  180. package/cjs/components/shared/web-browser/WebBrowser.js +54 -59
  181. package/cjs/components/shared/xterm/Xterm.js +112 -105
  182. package/cjs/components/shared/xterm/XtermLazy.js +7 -5
  183. package/cjs/components/shared/xterm/locales/en.json.js +3 -1
  184. package/cjs/components/shared/xterm/locales/ko.json.js +3 -1
  185. package/cjs/constants/arduino.js +10 -10
  186. package/cjs/constants/shortcutKeyMap.js +5 -5
  187. package/cjs/constants/stylesheets.js +7 -10
  188. package/cjs/hooks/useArduino.js +327 -255
  189. package/cjs/hooks/useExerciseFile.js +24 -24
  190. package/cjs/hooks/useExericseShortcut.js +6 -5
  191. package/cjs/hooks/useMaterialExerciseFileUrl.js +54 -37
  192. package/cjs/hooks/useRunnerRoomWebSocket.js +58 -56
  193. package/cjs/hooks/useStdioTextConcator.js +18 -12
  194. package/cjs/hooks/useStdioWebSocket.js +41 -67
  195. package/cjs/hooks/useUsercodeEditWebSocket.js +230 -252
  196. package/cjs/hooks/useUsercodeHistory.js +121 -82
  197. package/cjs/index.js +4 -4
  198. package/cjs/utils/arduino.js +23 -25
  199. package/cjs/utils/exerciseFile.js +8 -16
  200. package/cjs/utils/runner.js +29 -25
  201. package/es/_virtual/_rollupPluginBabelHelpers.js +504 -0
  202. package/es/components/material-exercise/MaterialExercise.js +33 -54
  203. package/es/components/material-exercise/MaterialExercise.styled.js +20 -23
  204. package/es/components/material-exercise/MaterialExerciseMobile.js +15 -13
  205. package/es/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  206. package/es/components/material-exercise/context/ExerciseProvider.js +79 -79
  207. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +11 -13
  208. package/es/components/material-exercise/context/context.js +1 -1
  209. package/es/components/material-exercise/context/recoil.d.ts +2 -1
  210. package/es/components/material-exercise/context/recoil.js +563 -374
  211. package/es/components/material-exercise/context/recoilTypes.js +0 -5
  212. package/es/components/material-exercise/context/subjects.js +3 -6
  213. package/es/components/material-exercise/context/types.d.ts +8 -1
  214. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  215. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +73 -62
  216. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  217. package/es/components/material-exercise/exercise-code-history/locales/en.json.js +3 -0
  218. package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +3 -0
  219. package/es/components/material-exercise/exercise-file/ExerciseFile.js +15 -18
  220. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +222 -195
  221. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -9
  222. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +31 -28
  223. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +52 -45
  224. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  225. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +321 -225
  226. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  227. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +12 -14
  228. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -10
  229. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -5
  230. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +43 -36
  231. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +53 -37
  232. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +25 -20
  233. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +41 -54
  234. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  235. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +25 -19
  236. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  237. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +21 -34
  238. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -10
  239. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +17 -28
  240. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +9 -6
  241. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +81 -82
  242. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +13 -7
  243. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  244. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +236 -146
  245. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +90 -63
  246. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  247. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +218 -219
  248. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  249. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +7 -9
  250. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +27 -25
  251. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +22 -24
  252. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +76 -94
  253. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +24 -26
  254. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +51 -59
  255. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -4
  256. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +6 -11
  257. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +26 -25
  258. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  259. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +284 -174
  260. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  261. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +38 -44
  262. package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +3 -0
  263. package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +3 -0
  264. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +16 -16
  265. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -3
  266. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -13
  267. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -3
  268. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -15
  269. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +15 -10
  270. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +2 -3
  271. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  272. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +5 -6
  273. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  274. package/es/components/shared/file-icon/FileIcon.js +20 -22
  275. package/es/components/shared/file-tabs/FileTab.js +28 -41
  276. package/es/components/shared/file-tabs/FileTab.styled.js +26 -22
  277. package/es/components/shared/file-tabs/FileTabs.js +52 -48
  278. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  279. package/es/components/shared/file-tabs/util.js +29 -18
  280. package/es/components/shared/file-tree/FileTree.js +3 -5
  281. package/es/components/shared/file-tree/FileTreeConfig.js +21 -22
  282. package/es/components/shared/file-tree/FileTreeList.js +31 -39
  283. package/es/components/shared/file-tree/FileTreeListItemContent.js +67 -85
  284. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  285. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +74 -100
  286. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  287. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +48 -85
  288. package/es/components/shared/file-tree/FileTreeListItems.js +147 -152
  289. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  290. package/es/components/shared/file-tree/FileTreeToolbar.js +24 -37
  291. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  292. package/es/components/shared/file-tree/context/FileTreeContext.js +91 -97
  293. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  294. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  295. package/es/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  296. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  297. package/es/components/shared/file-tree/utils/fileTreePath.js +5 -7
  298. package/es/components/shared/file-viewer/FileViewer.js +52 -53
  299. package/es/components/shared/file-viewer/FileViewerCsv.js +141 -99
  300. package/es/components/shared/file-viewer/FileViewerImage.js +3 -6
  301. package/es/components/shared/file-viewer/FileViewerIpynb.js +16 -12
  302. package/es/components/shared/file-viewer/FileViewerNonViewable.js +22 -30
  303. package/es/components/shared/file-viewer/FileViewerText.js +18 -13
  304. package/es/components/shared/material-modal/MaterialModal.js +7 -11
  305. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  306. package/es/components/shared/monaco-editor/MonacoEditor.js +119 -147
  307. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +6 -4
  308. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +45 -56
  309. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +73 -82
  310. package/es/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  311. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  312. package/es/components/shared/monaco-editor/constants/themes/index.js +80 -32
  313. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  314. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  315. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  316. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  317. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  318. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  319. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -11
  320. package/es/components/shared/monaco-editor/editor-languages/css/index.js +2 -5
  321. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -11
  322. package/es/components/shared/monaco-editor/editor-languages/html/index.js +2 -5
  323. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  324. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +0 -1
  325. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +0 -1
  326. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +0 -1
  327. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +33 -11
  328. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -16
  329. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  330. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  331. package/es/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  332. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  333. package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -31
  334. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  335. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  336. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  337. package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  338. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  339. package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -8
  340. package/es/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  341. package/es/components/shared/monaco-editor/utils/theme/index.js +22 -5
  342. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  343. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  344. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  345. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  346. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  347. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  348. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  349. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  350. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +219 -330
  351. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  352. package/es/components/shared/no-vnc/NoVnc.js +89 -88
  353. package/es/components/shared/no-vnc/NoVncLazy.js +4 -2
  354. package/es/components/shared/preview-container/PreviewContainer.js +7 -10
  355. package/es/components/shared/web-browser/WebBrowser.js +49 -56
  356. package/es/components/shared/xterm/Xterm.js +107 -102
  357. package/es/components/shared/xterm/XtermLazy.js +4 -2
  358. package/es/constants/arduino.js +10 -10
  359. package/es/constants/shortcutKeyMap.js +3 -5
  360. package/es/constants/stylesheets.js +7 -10
  361. package/es/hooks/useArduino.js +327 -255
  362. package/es/hooks/useExerciseFile.js +24 -24
  363. package/es/hooks/useExericseShortcut.js +6 -5
  364. package/es/hooks/useMaterialExerciseFileUrl.js +55 -38
  365. package/es/hooks/useRunnerRoomWebSocket.js +58 -56
  366. package/es/hooks/useStdioTextConcator.js +18 -12
  367. package/es/hooks/useStdioWebSocket.js +41 -67
  368. package/es/hooks/useUsercodeEditWebSocket.js +230 -252
  369. package/es/hooks/useUsercodeHistory.js +122 -83
  370. package/es/utils/arduino.js +23 -25
  371. package/es/utils/exerciseFile.js +8 -16
  372. package/es/utils/runner.js +29 -25
  373. 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,95 +42,88 @@ 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 getExerciseMonacoEditorValueState = recoil.useRecoilValue(recoil$1.exerciseMonacoEditorValueState); // 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 => {
89
- var _a, _b;
90
-
91
- const error = runner.getProgrammingErrorResult(text);
92
-
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) {
88
+ var _a, _b, _c;
89
+ var error = runner.getProgrammingErrorResult(text);
93
90
  if (!!error && typeof onCodeHelpRequest === 'function') {
94
- onCodeHelpRequest(error.errorCode, error, {
91
+ onCodeHelpRequest({
92
+ code: error.errorCode,
93
+ error: error,
95
94
  readme: (_a = exercise === null || exercise === void 0 ? void 0 : exercise.description) !== null && _a !== void 0 ? _a : '',
96
95
  instruction: (_b = exercise === null || exercise === void 0 ? void 0 : exercise.instructionContent) !== null && _b !== void 0 ? _b : '',
97
- openFileContent: getExerciseMonacoEditorValueState
96
+ openFileContent: (_c = exerciseMonacoEditorApis === null || exerciseMonacoEditorApis === void 0 ? void 0 : exerciseMonacoEditorApis.getValue()) !== null && _c !== void 0 ? _c : ''
98
97
  });
99
98
  }
100
99
  };
101
-
102
- const {
103
- updateStdioTextConcator
104
- } = useStdioTextConcator.useStdioTextConcator(handleAiHelpibotError); // etc
105
-
106
- const exerciseContainerSize = recoil.useRecoilValue(recoil$1.exerciseContainerSizeState);
107
- const [runnerSubmitErrorDialog, setRunnerSubmitErrorDialog] = React__default["default"].useState(null);
108
- const arduinoTextBuffer = React__default["default"].useRef('');
109
- const runnerRunTypeRef = React__default["default"].useRef(runnerRunTypeState);
110
- 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);
111
111
  /**
112
112
  * Handle text received from arduino serial output.
113
113
  */
114
-
115
- const handleArduinoDigitalOutput = text => {
114
+ var handleArduinoDigitalOutput = function handleArduinoDigitalOutput(text) {
116
115
  var _a;
117
-
118
116
  (_a = xterm.current) === null || _a === void 0 ? void 0 : _a.write(text);
119
- }; // Arduino
120
-
121
-
122
- const arduino = useArduino.useArduino({
117
+ };
118
+ // Arduino
119
+ var arduino = useArduino.useArduino({
123
120
  writeTerminal: handleArduinoDigitalOutput
124
121
  });
125
- 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;
126
123
  /**
127
124
  * Handle destroy arduino client.
128
125
  */
129
-
130
- const handleArduinoDistroy = React__default["default"].useCallback(() => {
126
+ var handleArduinoDistroy = React__default["default"].useCallback(function () {
131
127
  if (isArduinoExercise) {
132
128
  arduino.destroy();
133
129
  }
@@ -135,20 +131,16 @@ const ExerciseRunner = ({
135
131
  /**
136
132
  * Handle text received from stdio websocket.
137
133
  */
138
-
139
- const handleWsStdioTextReceive = (type, text) => {
134
+ var handleWsStdioTextReceive = function handleWsStdioTextReceive(type, text) {
140
135
  var _a, _b, _c;
141
-
142
136
  switch (type) {
143
137
  case 'text':
144
138
  (_a = xterm.current) === null || _a === void 0 ? void 0 : _a[runnerRunTypeRef.current !== types.enums.ExerciseRunType.Run ? 'writeEmphasized' : 'write'](text);
145
139
  updateStdioTextConcator(text);
146
140
  break;
147
-
148
141
  case 'grader':
149
142
  (_b = xterm.current) === null || _b === void 0 ? void 0 : _b.write(text);
150
143
  break;
151
-
152
144
  case 'echo':
153
145
  (_c = xterm.current) === null || _c === void 0 ? void 0 : _c.write(text);
154
146
  break;
@@ -157,34 +149,29 @@ const ExerciseRunner = ({
157
149
  /**
158
150
  * Handle file received from stdio websocket.
159
151
  */
160
-
161
-
162
- const handleWsStdioFileReceive = stdioFile => {
152
+ var handleWsStdioFileReceive = function handleWsStdioFileReceive(stdioFile) {
163
153
  // arduino exercise
164
154
  if (isArduinoExercise) {
165
155
  if ('filename' in stdioFile && stdioFile.filename.startsWith('firmware') && stdioFile.filename.endsWith('hex')) {
166
156
  arduino.uploadHexFile(stdioFile);
167
157
  }
168
-
169
158
  return;
170
- } // normal exercise
171
-
172
-
173
- setRunnerStdioFilesState(prevFiles => [...prevFiles, stdioFile]);
159
+ }
160
+ // normal exercise
161
+ setRunnerStdioFilesState(function (prevFiles) {
162
+ return [].concat(_rollupPluginBabelHelpers.toConsumableArray(prevFiles), [stdioFile]);
163
+ });
174
164
  };
175
165
  /**
176
166
  * Runner room websocket
177
167
  */
178
-
179
-
180
- const wsRunnerRoom = useRunnerRoomWebSocket.useRunnerRoomWebSocket({
181
- exerciseRoomId
168
+ var wsRunnerRoom = useRunnerRoomWebSocket.useRunnerRoomWebSocket({
169
+ exerciseRoomId: exerciseRoomId
182
170
  });
183
171
  /**
184
172
  * Stdio websocket
185
173
  */
186
-
187
- const wsStdio = useStdioWebSocket.useStdioWebSocket({
174
+ var wsStdio = useStdioWebSocket.useStdioWebSocket({
188
175
  wsUri: (_a = wsRunnerRoom.roomConnectionInfo) === null || _a === void 0 ? void 0 : _a.wsUri,
189
176
  roomToken: (_b = wsRunnerRoom.roomConnectionInfo) === null || _b === void 0 ? void 0 : _b.roomToken,
190
177
  isTty: (_c = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _c === void 0 ? void 0 : _c.isTty,
@@ -194,10 +181,8 @@ const ExerciseRunner = ({
194
181
  /**
195
182
  * Handle submit code error.
196
183
  */
197
-
198
- const handleRunnerSubmitError = err => {
184
+ var handleRunnerSubmitError = function handleRunnerSubmitError(err) {
199
185
  var _a, _b;
200
-
201
186
  switch ((_a = err.detail) === null || _a === void 0 ? void 0 : _a.failCode) {
202
187
  case 'room_type_mismatch':
203
188
  case 'not_found_exercise_room':
@@ -212,10 +197,11 @@ const ExerciseRunner = ({
212
197
  action: intl.formatMessage({
213
198
  id: 'exerciseRunner.submitErrorDialog.action.reload'
214
199
  }),
215
- onAction: () => window.location.reload()
200
+ onAction: function onAction() {
201
+ return window.location.reload();
202
+ }
216
203
  });
217
204
  break;
218
-
219
205
  case 'invalid_room_token':
220
206
  setRunnerSubmitErrorDialog({
221
207
  code: err.detail.failCode,
@@ -225,10 +211,11 @@ const ExerciseRunner = ({
225
211
  action: intl.formatMessage({
226
212
  id: 'exerciseRunner.submitErrorDialog.action.reload'
227
213
  }),
228
- onAction: () => window.location.reload()
214
+ onAction: function onAction() {
215
+ return window.location.reload();
216
+ }
229
217
  });
230
218
  break;
231
-
232
219
  case 'not_for_submit_grade':
233
220
  setRunnerSubmitErrorDialog({
234
221
  code: err.detail.failCode,
@@ -240,7 +227,6 @@ const ExerciseRunner = ({
240
227
  })
241
228
  });
242
229
  break;
243
-
244
230
  case 'expired_exercise_image':
245
231
  setRunnerSubmitErrorDialog({
246
232
  code: err.detail.failCode,
@@ -250,10 +236,11 @@ const ExerciseRunner = ({
250
236
  action: intl.formatMessage({
251
237
  id: 'exerciseRunner.submitErrorDialog.action.reload'
252
238
  }),
253
- onAction: () => window.location.reload()
239
+ onAction: function onAction() {
240
+ return window.location.reload();
241
+ }
254
242
  });
255
243
  break;
256
-
257
244
  case 'not_prepared_room_forwarder':
258
245
  case 'try_again':
259
246
  setRunnerSubmitErrorDialog({
@@ -266,7 +253,6 @@ const ExerciseRunner = ({
266
253
  })
267
254
  });
268
255
  break;
269
-
270
256
  case 'room_is_busy':
271
257
  setRunnerSubmitErrorDialog({
272
258
  code: err.detail.failCode,
@@ -278,7 +264,6 @@ const ExerciseRunner = ({
278
264
  })
279
265
  });
280
266
  break;
281
-
282
267
  case 'exceed_submit_grade_limit':
283
268
  setRunnerSubmitErrorDialog({
284
269
  code: err.detail.failCode,
@@ -290,7 +275,6 @@ const ExerciseRunner = ({
290
275
  })
291
276
  });
292
277
  break;
293
-
294
278
  default:
295
279
  setRunnerSubmitErrorDialog({
296
280
  code: ((_b = err === null || err === void 0 ? void 0 : err.detail) === null || _b === void 0 ? void 0 : _b.failCode) || 'unknown',
@@ -307,196 +291,217 @@ const ExerciseRunner = ({
307
291
  /**
308
292
  * Handle submit code to runner and run / grade.
309
293
  */
310
-
311
-
312
- const handleRunnerSubmit = async runType => {
313
- var _a, _b, _c;
314
-
315
- const readyExerciseImage = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage;
316
- const roomToken = (_a = wsRunnerRoom.roomConnectionInfo) === null || _a === void 0 ? void 0 : _a.roomToken;
317
-
318
- if (!readyExerciseImage || !roomToken) {
319
- return;
320
- }
321
-
322
- setRunnerStdioFilesState([]);
323
- setRunnerRunTypeState(runType);
324
- setRunnerSubmitting(true);
325
- return apiClient.postOrgMaterialExerciseExerciseRunningSubmit({
326
- roomToken,
327
- runType,
328
- exerciseImageId: readyExerciseImage.id,
329
- vncWidth: readyExerciseImage.isVnc ? Math.max((_b = readyExerciseImage.defaultVncWidth) !== null && _b !== void 0 ? _b : 0, 640) : undefined,
330
- vncHeight: readyExerciseImage.isVnc ? Math.max((_c = readyExerciseImage.defaultVncHeight) !== null && _c !== void 0 ? _c : 0, 480) : undefined
331
- }).then(res => {
332
- if (typeof onSubmit === 'function') {
333
- onSubmit(res);
334
- }
335
- }).catch(err => {
336
- setRunnerSubmitting(false);
337
- handleRunnerSubmitError(err);
338
-
339
- if (typeof onError === 'function') {
340
- onError(err);
341
- }
342
- });
343
- };
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
+ }();
344
338
  /**
345
339
  * Handle runner to cancel running.
346
340
  */
347
-
348
-
349
- const handleRunnerCancel = async () => {
350
- var _a;
351
-
352
- const roomToken = (_a = wsRunnerRoom.roomConnectionInfo) === null || _a === void 0 ? void 0 : _a.roomToken;
353
-
354
- if (roomToken) {
355
- void apiClient.postOrgMaterialExerciseExerciseRunningCancel({
356
- roomToken
357
- });
358
- }
359
- };
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
+ }();
360
363
  /**
361
364
  * Handle runner to request code sync.
362
365
  */
363
-
364
-
365
- const handleRunnerSyncRequest = () => {
366
+ var handleRunnerSyncRequest = function handleRunnerSyncRequest() {
366
367
  wsStdio.sendSync();
367
368
  };
368
369
  /**
369
370
  * Handle input requests for arduino.
370
371
  */
371
-
372
-
373
- const handleXtermArduinoInputRequest = char => {
372
+ var handleXtermArduinoInputRequest = function handleXtermArduinoInputRequest(char) {
374
373
  var _a, _b, _c;
375
-
376
374
  switch (char) {
377
375
  // backspace
378
- case '\u007f':
376
+ case "\x7F":
379
377
  (_a = xterm.current) === null || _a === void 0 ? void 0 : _a.write(' ');
380
378
  arduinoTextBuffer.current = arduinoTextBuffer.current.slice(0, -1);
381
379
  break;
382
380
  // enter
383
-
384
381
  case '\r':
385
382
  if (arduinoTextBuffer.current.length) {
386
383
  (_b = xterm.current) === null || _b === void 0 ? void 0 : _b.write('\r\n');
387
384
  arduino.sendText(arduinoTextBuffer.current);
388
385
  arduinoTextBuffer.current = '';
389
386
  }
390
-
391
387
  break;
392
388
  // any char
393
-
394
389
  default:
395
390
  (_c = xterm.current) === null || _c === void 0 ? void 0 : _c.write(char);
396
- arduinoTextBuffer.current = `${arduinoTextBuffer.current}${char}`;
391
+ arduinoTextBuffer.current = "".concat(arduinoTextBuffer.current).concat(char);
397
392
  break;
398
393
  }
399
394
  };
400
395
  /**
401
396
  * Handle input requests.
402
397
  */
403
-
404
-
405
- const handleXtermInputRequest = text => {
398
+ var handleXtermInputRequest = function handleXtermInputRequest(text) {
406
399
  if (isArduinoExercise) {
407
400
  handleXtermArduinoInputRequest(text);
408
401
  } else {
409
402
  wsStdio.sendText(text);
410
403
  }
411
- }; //
404
+ };
405
+ //
412
406
  // Initialize Arduino devices.
413
407
  //
414
-
415
-
416
- React__default["default"].useEffect(() => {
408
+ React__default["default"].useEffect(function () {
417
409
  if (!isArduinoExercise) {
418
410
  return;
419
411
  }
420
-
421
412
  void arduino.init();
422
- return () => {
413
+ return function () {
423
414
  void arduino.destroy();
424
415
  };
425
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
426
- [exercise]); //
416
+ },
417
+ // eslint-disable-next-line react-hooks/exhaustive-deps
418
+ [exercise]);
419
+ //
427
420
  // Destroy arduino client when unload window.
428
421
  //
429
-
430
- reactUse.useEvent('beforeunload', handleArduinoDistroy, window); //
422
+ reactUse.useEvent('beforeunload', handleArduinoDistroy, window);
423
+ //
431
424
  // Update runner room websocket state.
432
425
  //
433
-
434
- React__default["default"].useEffect(() => setRunnerRoomWebSocketState(wsRunnerRoom.readyState), // eslint-disable-next-line react-hooks/exhaustive-deps
435
- [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
+ //
436
432
  // Update stdio websocket state.
437
433
  //
438
-
439
- React__default["default"].useEffect(() => setStdioWebSocketState(wsStdio.readyState), // eslint-disable-next-line react-hooks/exhaustive-deps
440
- [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
+ //
441
440
  // Set runner submitting status to false,
442
441
  // whenever runner room's running status is changed.
443
442
  // (assume that sumbitting done when running status is changed)
444
443
  //
445
-
446
- React__default["default"].useEffect(() => setRunnerSubmitting(false), // eslint-disable-next-line react-hooks/exhaustive-deps
447
- [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
+ //
448
450
  // Auto focus terminal when running.
449
451
  //
450
-
451
- React__default["default"].useEffect(() => {
452
+ React__default["default"].useEffect(function () {
452
453
  if (wsRunnerRoom.isRunning) {
453
- setTimeout(() => {
454
+ setTimeout(function () {
454
455
  var _a;
455
-
456
456
  return (_a = xterm.current) === null || _a === void 0 ? void 0 : _a.focus();
457
457
  }, 100);
458
458
  }
459
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
460
- [wsRunnerRoom.isRunning]); //
459
+ },
460
+ // eslint-disable-next-line react-hooks/exhaustive-deps
461
+ [wsRunnerRoom.isRunning]);
462
+ //
461
463
  // Bind runner run type to ref.
462
464
  //
463
-
464
- React__default["default"].useEffect(() => {
465
+ React__default["default"].useEffect(function () {
465
466
  runnerRunTypeRef.current = runnerRunTypeState;
466
- }, [runnerRunTypeState]); //
467
+ }, [runnerRunTypeState]);
468
+ //
467
469
  // Update room connection info.
468
470
  //
469
-
470
- React__default["default"].useEffect(() => setRunnerRunning(wsRunnerRoom.isRunning), // eslint-disable-next-line react-hooks/exhaustive-deps
471
- [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
+ //
472
477
  // Update room connection info.
473
478
  //
474
-
475
- React__default["default"].useEffect(() => setExerciseRunnerRoomConnectionInfo(wsRunnerRoom.roomConnectionInfo), // eslint-disable-next-line react-hooks/exhaustive-deps
476
- [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
+ //
477
485
  // handle send text request to runner stdio.
478
486
  //
479
-
480
- React__default["default"].useEffect(() => {
481
- const textSendSub = subjects.exerciseRunnerTextSend$.subscribe(wsStdio.sendText);
482
- return () => {
487
+ React__default["default"].useEffect(function () {
488
+ var textSendSub = subjects.exerciseRunnerTextSend$.subscribe(wsStdio.sendText);
489
+ return function () {
483
490
  textSendSub.unsubscribe();
484
491
  };
485
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
492
+ },
493
+ // eslint-disable-next-line react-hooks/exhaustive-deps
486
494
  []);
487
495
  /**
488
496
  * Preview.
489
497
  */
490
-
491
- const renderPreview = () => {
498
+ var renderPreview = function renderPreview() {
492
499
  if (exercisePreviewType === recoilTypes.ExercisePreviewType.None) {
493
500
  return null;
494
501
  }
495
-
496
502
  if (exercisePreviewDisplayMode !== recoilTypes.ExercisePreviewDisplayMode.Mini) {
497
503
  return null;
498
504
  }
499
-
500
505
  return React__default["default"].createElement(blocks.ResizableNext, Object.assign({}, stylesheets.MATERIAL_RESIZABLE_COMMON_PROPS, {
501
506
  children: exercisePreview,
502
507
  initialWidth: exerciseContainerSize.width * EXERCISE_RUNNER_HORIZONTAL_RATIO.PREVIEW,
@@ -507,14 +512,14 @@ const ExerciseRunner = ({
507
512
  /**
508
513
  * Xterm
509
514
  */
510
-
511
-
512
- const renderXterm = () => {
515
+ var renderXterm = function renderXterm() {
513
516
  // show system message when...
514
- const showSystemMessage = // - run type is grade
515
- 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
516
521
  !isArduinoExercise;
517
- return React__default["default"].createElement(XtermLazy, {
522
+ return React__default["default"].createElement(XtermLazy["default"], {
518
523
  isRunning: wsRunnerRoom.isRunning,
519
524
  fontSize: editorPreferenceFontSize,
520
525
  suppressSystemMessage: !showSystemMessage,
@@ -527,42 +532,39 @@ const ExerciseRunner = ({
527
532
  /**
528
533
  * Runner submit error dialog.
529
534
  */
530
-
531
-
532
- const renderRunnerSubmitErrorDialog = () => {
535
+ var renderRunnerSubmitErrorDialog = function renderRunnerSubmitErrorDialog() {
533
536
  if (!runnerSubmitErrorDialog) {
534
537
  return null;
535
538
  }
536
-
537
539
  return React__default["default"].createElement(blocks.Dialog, {
538
540
  type: "error",
539
541
  title: intl.formatMessage({
540
542
  id: 'exerciseRunner.submitErrorDialog.title'
541
543
  }),
542
- body: `${runnerSubmitErrorDialog.message}\n(error code: ${runnerSubmitErrorDialog.code})`,
543
- onHide: () => setRunnerSubmitErrorDialog(null)
544
+ body: "".concat(runnerSubmitErrorDialog.message, "\n(error code: ").concat(runnerSubmitErrorDialog.code, ")"),
545
+ onHide: function onHide() {
546
+ return setRunnerSubmitErrorDialog(null);
547
+ }
544
548
  }, React__default["default"].createElement(blocks.Dialog.ActionButton, {
545
549
  children: runnerSubmitErrorDialog.action,
546
- onClick: () => {
550
+ onClick: function onClick() {
547
551
  if (typeof runnerSubmitErrorDialog.onAction === 'function') {
548
552
  runnerSubmitErrorDialog.onAction();
549
553
  }
550
-
551
554
  setRunnerSubmitErrorDialog(null);
552
555
  }
553
556
  }));
554
- }; //
557
+ };
558
+ //
555
559
  //
556
560
  //
557
-
558
-
559
561
  return React__default["default"].createElement(StyledExerciseRunner, null, React__default["default"].createElement(ExerciseRunnerContext.ExerciseRunnerContext.Provider, {
560
562
  value: {
561
563
  onSubmit: handleRunnerSubmit,
562
564
  onCancel: handleRunnerCancel,
563
565
  onSyncRequest: handleRunnerSyncRequest
564
566
  }
565
- }, 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, {
566
568
  auto: true,
567
569
  style: {
568
570
  minHeight: 0
@@ -570,10 +572,9 @@ const ExerciseRunner = ({
570
572
  overflow: "hidden"
571
573
  }, renderPreview(), renderXterm(), renderRunnerSubmitErrorDialog())));
572
574
  };
573
-
574
575
  var ExerciseRunner$1 = ExerciseIntlProvider.withExerciseIntlProvider(ExerciseRunner, {
575
- en: en,
576
- ko: ko
576
+ en: en["default"],
577
+ ko: ko["default"]
577
578
  });
578
579
 
579
- module.exports = ExerciseRunner$1;
580
+ exports["default"] = ExerciseRunner$1;