@elice/material-exercise 1.240718.0-trasncript.2 → 1.240718.1

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