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