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