@elice/material-exercise 1.230328.0 → 1.230418.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/cjs/_virtual/_rollupPluginBabelHelpers.js +526 -0
  2. package/cjs/components/material-exercise/MaterialExercise.js +44 -63
  3. package/cjs/components/material-exercise/MaterialExercise.styled.js +20 -23
  4. package/cjs/components/material-exercise/MaterialExerciseMobile.js +19 -15
  5. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  6. package/cjs/components/material-exercise/context/ExerciseProvider.js +83 -81
  7. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +16 -16
  8. package/cjs/components/material-exercise/context/context.js +1 -1
  9. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +3 -1
  10. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +3 -1
  11. package/cjs/components/material-exercise/context/recoil.js +559 -371
  12. package/cjs/components/material-exercise/context/recoilTypes.js +0 -5
  13. package/cjs/components/material-exercise/context/subjects.js +3 -6
  14. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  15. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -65
  16. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  17. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +7 -0
  18. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +7 -0
  19. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +20 -21
  20. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +225 -198
  21. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -10
  22. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +35 -32
  23. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +57 -48
  24. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
  25. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -1
  26. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -1
  27. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +327 -231
  28. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
  29. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +3 -1
  30. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +3 -1
  31. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +17 -17
  32. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -14
  33. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -6
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +47 -38
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +60 -42
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +29 -22
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +45 -56
  38. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  39. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +3 -1
  40. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +3 -1
  41. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -20
  42. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +5 -3
  43. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +30 -41
  44. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +17 -12
  45. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +3 -1
  46. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +3 -1
  47. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +24 -33
  48. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +13 -8
  49. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +84 -83
  50. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +3 -1
  51. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +3 -1
  52. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +20 -12
  53. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +239 -147
  55. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +92 -63
  56. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  57. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +3 -1
  58. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +3 -1
  59. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +219 -220
  60. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -13
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +30 -26
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +26 -26
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +70 -95
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +27 -27
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +54 -60
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +5 -5
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -13
  69. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +29 -26
  70. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +3 -1
  71. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +3 -1
  72. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  73. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +290 -180
  74. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  75. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -45
  76. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +7 -0
  77. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +7 -0
  78. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +19 -17
  79. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +5 -4
  80. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +15 -14
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +7 -6
  82. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +17 -16
  83. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +18 -11
  84. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -4
  85. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  86. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -7
  87. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  88. package/cjs/components/shared/file-icon/FileIcon.js +23 -23
  89. package/cjs/components/shared/file-tabs/FileTab.js +32 -43
  90. package/cjs/components/shared/file-tabs/FileTab.styled.js +26 -22
  91. package/cjs/components/shared/file-tabs/FileTabs.js +55 -49
  92. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -2
  93. package/cjs/components/shared/file-tabs/util.js +29 -18
  94. package/cjs/components/shared/file-tree/FileTree.js +11 -11
  95. package/cjs/components/shared/file-tree/FileTreeConfig.js +24 -23
  96. package/cjs/components/shared/file-tree/FileTreeList.js +35 -41
  97. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +75 -91
  98. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  99. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +77 -101
  100. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  101. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +51 -86
  102. package/cjs/components/shared/file-tree/FileTreeListItems.js +150 -153
  103. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  104. package/cjs/components/shared/file-tree/FileTreeToolbar.js +30 -41
  105. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  106. package/cjs/components/shared/file-tree/context/FileTreeContext.js +91 -97
  107. package/cjs/components/shared/file-tree/locales/en.json.js +3 -1
  108. package/cjs/components/shared/file-tree/locales/ko.json.js +3 -1
  109. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  110. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  111. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  112. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  113. package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -7
  114. package/cjs/components/shared/file-viewer/FileViewer.js +59 -60
  115. package/cjs/components/shared/file-viewer/FileViewerCsv.js +145 -101
  116. package/cjs/components/shared/file-viewer/FileViewerImage.js +7 -8
  117. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +20 -14
  118. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +28 -34
  119. package/cjs/components/shared/file-viewer/FileViewerText.js +23 -16
  120. package/cjs/components/shared/file-viewer/locales/en.json.js +3 -1
  121. package/cjs/components/shared/file-viewer/locales/ko.json.js +3 -1
  122. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +3 -1
  123. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +3 -1
  124. package/cjs/components/shared/material-modal/MaterialModal.js +10 -12
  125. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -5
  126. package/cjs/components/shared/monaco-editor/MonacoEditor.js +123 -149
  127. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +10 -8
  128. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -58
  129. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +78 -85
  130. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  131. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  132. package/cjs/components/shared/monaco-editor/constants/themes/index.js +80 -32
  133. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  134. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  135. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  136. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  137. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  138. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  139. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +36 -12
  140. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +5 -8
  141. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +36 -12
  142. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -6
  143. package/cjs/components/shared/monaco-editor/editor-languages/index.js +3 -1
  144. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  145. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +3 -2
  146. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +3 -2
  147. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +3 -2
  148. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +36 -12
  149. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +18 -24
  150. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  151. package/cjs/components/shared/monaco-editor/locales/en.json.js +3 -1
  152. package/cjs/components/shared/monaco-editor/locales/ko.json.js +3 -1
  153. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  154. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  155. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  156. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +70 -32
  157. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  158. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  159. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  160. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  161. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  162. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +30 -9
  163. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  164. package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -5
  165. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  166. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  167. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  168. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  169. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  170. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  171. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  172. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  173. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +218 -329
  174. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  175. package/cjs/components/shared/no-vnc/NoVnc.js +93 -90
  176. package/cjs/components/shared/no-vnc/NoVncLazy.js +7 -5
  177. package/cjs/components/shared/preview-container/PreviewContainer.js +7 -10
  178. package/cjs/components/shared/web-browser/WebBrowser.js +54 -59
  179. package/cjs/components/shared/xterm/Xterm.js +112 -105
  180. package/cjs/components/shared/xterm/XtermLazy.js +7 -5
  181. package/cjs/components/shared/xterm/locales/en.json.js +3 -1
  182. package/cjs/components/shared/xterm/locales/ko.json.js +3 -1
  183. package/cjs/constants/arduino.js +10 -10
  184. package/cjs/constants/shortcutKeyMap.js +5 -5
  185. package/cjs/constants/stylesheets.js +7 -10
  186. package/cjs/hooks/useArduino.js +327 -255
  187. package/cjs/hooks/useExerciseFile.js +24 -24
  188. package/cjs/hooks/useExericseShortcut.js +6 -5
  189. package/cjs/hooks/useMaterialExerciseFileUrl.js +54 -37
  190. package/cjs/hooks/useRunnerRoomWebSocket.js +58 -56
  191. package/cjs/hooks/useStdioTextConcator.js +18 -12
  192. package/cjs/hooks/useStdioWebSocket.js +41 -67
  193. package/cjs/hooks/useUsercodeEditWebSocket.js +230 -252
  194. package/cjs/hooks/useUsercodeHistory.js +121 -82
  195. package/cjs/index.js +4 -4
  196. package/cjs/utils/arduino.js +23 -25
  197. package/cjs/utils/exerciseFile.js +8 -16
  198. package/cjs/utils/runner.js +29 -25
  199. package/es/_virtual/_rollupPluginBabelHelpers.js +504 -0
  200. package/es/components/material-exercise/MaterialExercise.js +33 -54
  201. package/es/components/material-exercise/MaterialExercise.styled.js +20 -23
  202. package/es/components/material-exercise/MaterialExerciseMobile.js +15 -13
  203. package/es/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  204. package/es/components/material-exercise/context/ExerciseProvider.js +79 -79
  205. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +11 -13
  206. package/es/components/material-exercise/context/context.js +1 -1
  207. package/es/components/material-exercise/context/recoil.js +560 -372
  208. package/es/components/material-exercise/context/recoilTypes.js +0 -5
  209. package/es/components/material-exercise/context/subjects.js +3 -6
  210. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  211. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +73 -62
  212. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  213. package/es/components/material-exercise/exercise-code-history/locales/en.json.js +3 -0
  214. package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +3 -0
  215. package/es/components/material-exercise/exercise-file/ExerciseFile.js +15 -18
  216. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +218 -193
  217. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -9
  218. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +31 -28
  219. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +52 -45
  220. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  221. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +321 -225
  222. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  223. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +12 -14
  224. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -10
  225. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -5
  226. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +43 -36
  227. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +53 -37
  228. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +25 -20
  229. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +41 -54
  230. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  231. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +25 -19
  232. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  233. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +21 -34
  234. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -10
  235. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +17 -28
  236. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +9 -6
  237. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +81 -82
  238. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +13 -7
  239. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  240. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +236 -146
  241. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +90 -63
  242. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  243. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +212 -215
  244. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  245. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +7 -9
  246. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +27 -25
  247. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +22 -24
  248. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +66 -93
  249. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +24 -26
  250. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +51 -59
  251. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -4
  252. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +6 -11
  253. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +26 -25
  254. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  255. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +284 -174
  256. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  257. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +38 -44
  258. package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +3 -0
  259. package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +3 -0
  260. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +16 -16
  261. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -3
  262. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -13
  263. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -3
  264. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -15
  265. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +15 -10
  266. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +2 -3
  267. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  268. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +5 -6
  269. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  270. package/es/components/shared/file-icon/FileIcon.js +20 -22
  271. package/es/components/shared/file-tabs/FileTab.js +28 -41
  272. package/es/components/shared/file-tabs/FileTab.styled.js +26 -22
  273. package/es/components/shared/file-tabs/FileTabs.js +52 -48
  274. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  275. package/es/components/shared/file-tabs/util.js +29 -18
  276. package/es/components/shared/file-tree/FileTree.js +3 -5
  277. package/es/components/shared/file-tree/FileTreeConfig.js +21 -22
  278. package/es/components/shared/file-tree/FileTreeList.js +31 -39
  279. package/es/components/shared/file-tree/FileTreeListItemContent.js +67 -85
  280. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  281. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +74 -100
  282. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  283. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +48 -85
  284. package/es/components/shared/file-tree/FileTreeListItems.js +147 -152
  285. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  286. package/es/components/shared/file-tree/FileTreeToolbar.js +24 -37
  287. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  288. package/es/components/shared/file-tree/context/FileTreeContext.js +91 -97
  289. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  290. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  291. package/es/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  292. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  293. package/es/components/shared/file-tree/utils/fileTreePath.js +5 -7
  294. package/es/components/shared/file-viewer/FileViewer.js +52 -53
  295. package/es/components/shared/file-viewer/FileViewerCsv.js +141 -99
  296. package/es/components/shared/file-viewer/FileViewerImage.js +3 -6
  297. package/es/components/shared/file-viewer/FileViewerIpynb.js +16 -12
  298. package/es/components/shared/file-viewer/FileViewerNonViewable.js +22 -30
  299. package/es/components/shared/file-viewer/FileViewerText.js +18 -13
  300. package/es/components/shared/material-modal/MaterialModal.js +7 -11
  301. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  302. package/es/components/shared/monaco-editor/MonacoEditor.js +119 -147
  303. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +6 -4
  304. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +45 -56
  305. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +73 -82
  306. package/es/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  307. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  308. package/es/components/shared/monaco-editor/constants/themes/index.js +80 -32
  309. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  310. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  311. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  312. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  313. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  314. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  315. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -11
  316. package/es/components/shared/monaco-editor/editor-languages/css/index.js +2 -5
  317. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -11
  318. package/es/components/shared/monaco-editor/editor-languages/html/index.js +2 -5
  319. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  320. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +0 -1
  321. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +0 -1
  322. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +0 -1
  323. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +33 -11
  324. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -16
  325. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  326. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  327. package/es/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  328. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  329. package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -31
  330. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  331. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  332. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  333. package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  334. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  335. package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -8
  336. package/es/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  337. package/es/components/shared/monaco-editor/utils/theme/index.js +22 -5
  338. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  339. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  340. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  341. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  342. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  343. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  344. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  345. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  346. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +219 -330
  347. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  348. package/es/components/shared/no-vnc/NoVnc.js +89 -88
  349. package/es/components/shared/no-vnc/NoVncLazy.js +4 -2
  350. package/es/components/shared/preview-container/PreviewContainer.js +7 -10
  351. package/es/components/shared/web-browser/WebBrowser.js +49 -56
  352. package/es/components/shared/xterm/Xterm.js +107 -102
  353. package/es/components/shared/xterm/XtermLazy.js +4 -2
  354. package/es/constants/arduino.js +10 -10
  355. package/es/constants/shortcutKeyMap.js +3 -5
  356. package/es/constants/stylesheets.js +7 -10
  357. package/es/hooks/useArduino.js +327 -255
  358. package/es/hooks/useExerciseFile.js +24 -24
  359. package/es/hooks/useExericseShortcut.js +6 -5
  360. package/es/hooks/useMaterialExerciseFileUrl.js +55 -38
  361. package/es/hooks/useRunnerRoomWebSocket.js +58 -56
  362. package/es/hooks/useStdioTextConcator.js +18 -12
  363. package/es/hooks/useStdioWebSocket.js +41 -67
  364. package/es/hooks/useUsercodeEditWebSocket.js +230 -252
  365. package/es/hooks/useUsercodeHistory.js +122 -83
  366. package/es/utils/arduino.js +23 -25
  367. package/es/utils/exerciseFile.js +8 -16
  368. package/es/utils/runner.js +29 -25
  369. package/package.json +8 -8
@@ -8,6 +8,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
8
8
 
9
9
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
10
 
11
- const ExerciseRunnerContext = React__default["default"].createContext(null);
11
+ var ExerciseRunnerContext = React__default["default"].createContext(null);
12
12
 
13
13
  exports.ExerciseRunnerContext = ExerciseRunnerContext;
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
3
5
  var React = require('react');
4
6
  var blocks = require('@elice/blocks');
5
7
  var types = require('@elice/types');
@@ -23,25 +25,23 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
23
25
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
26
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
25
27
 
26
- const RUNNER_CONTROLLER_HEIGHT = 50;
27
- const StyledController = styled__default["default"].div.withConfig({
28
+ var RUNNER_CONTROLLER_HEIGHT = 50;
29
+ var StyledController = styled__default["default"].div.withConfig({
28
30
  componentId: "sc-1fvokag-0"
29
31
  })(["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);
30
-
31
- const ExerciseRunnerController = () => {
32
- const {
33
- materialExerciseId
34
- } = React__default["default"].useContext(context.ExerciseContext);
35
- const exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
36
- const isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
32
+ var ExerciseRunnerController = function ExerciseRunnerController() {
33
+ var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
34
+ materialExerciseId = _React$useContext.materialExerciseId;
35
+ var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
36
+ var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
37
37
  return React__default["default"].createElement(StyledController, null, React__default["default"].createElement(blocks.Flex, {
38
38
  align: "center"
39
- }, React__default["default"].createElement(ExerciseRunnerControllerButtonGroup, null), React__default["default"].createElement(blocks.Hspace, {
39
+ }, React__default["default"].createElement(ExerciseRunnerControllerButtonGroup["default"], null), React__default["default"].createElement(blocks.Hspace, {
40
40
  width: 1
41
- }), React__default["default"].createElement(ExerciseRunnerControllerRunningInfo, null), React__default["default"].createElement(ExerciseRunnerControllerTimer, null)), React__default["default"].createElement(blocks.Flex, {
41
+ }), React__default["default"].createElement(ExerciseRunnerControllerRunningInfo["default"], null), React__default["default"].createElement(ExerciseRunnerControllerTimer["default"], null)), React__default["default"].createElement(blocks.Flex, {
42
42
  column: true,
43
43
  align: "flex-end"
44
- }, React__default["default"].createElement(ExerciseRunnerControllerStatusMessage, null), isArduinoExercise ? React__default["default"].createElement(ExerciseRunnerControllerArduinoStatusMessage, null) : null), isArduinoExercise ? React__default["default"].createElement(ExerciseRunnerControllerArduinoAgentModal, null) : null);
44
+ }, React__default["default"].createElement(ExerciseRunnerControllerStatusMessage["default"], null), isArduinoExercise ? React__default["default"].createElement(ExerciseRunnerControllerArduinoStatusMessage["default"], null) : null), isArduinoExercise ? React__default["default"].createElement(ExerciseRunnerControllerArduinoAgentModal["default"], null) : null);
45
45
  };
46
46
 
47
- module.exports = ExerciseRunnerController;
47
+ exports["default"] = ExerciseRunnerController;
@@ -1,5 +1,8 @@
1
1
  'use strict';
2
2
 
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
3
6
  var React = require('react');
4
7
  var reactIntl = require('react-intl');
5
8
  var blocks = require('@elice/blocks');
@@ -17,33 +20,31 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
17
20
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
21
  var FileSaver__default = /*#__PURE__*/_interopDefaultLegacy(FileSaver);
19
22
 
20
- const ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_KEY = 'elice-material-exercise-arduino-agent-modal-closed';
21
- const ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_VALUE = 'true';
22
- const ARDUINO_AGENT_MAC_DOWNLOAD_URL = 'https://eli.so/arduino-agent-mac';
23
- const ARDUINO_AGENT_WIN_DOWNLOAD_URL = 'https://eli.so/arduino-agent-win';
24
- const ARDUINO_AGENT_MANUAL_URL = 'https://eli.so/arduino-faq';
25
-
26
- const ExerciseRunnerControllerArduinoAgentModal = () => {
27
- const intl = reactIntl.useIntl();
28
- const [open, setOpen] = recoil.useRecoilState(recoil$1.exerciseArduinoAgentModalState);
29
- React__default["default"].useEffect(() => {
30
- const isConfirmed = localStorage.getItem(ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_KEY) === ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_VALUE;
31
-
23
+ var ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_KEY = 'elice-material-exercise-arduino-agent-modal-closed';
24
+ var ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_VALUE = 'true';
25
+ var ARDUINO_AGENT_MAC_DOWNLOAD_URL = 'https://eli.so/arduino-agent-mac';
26
+ var ARDUINO_AGENT_WIN_DOWNLOAD_URL = 'https://eli.so/arduino-agent-win';
27
+ var ARDUINO_AGENT_MANUAL_URL = 'https://eli.so/arduino-faq';
28
+ var ExerciseRunnerControllerArduinoAgentModal = function ExerciseRunnerControllerArduinoAgentModal() {
29
+ var intl = reactIntl.useIntl();
30
+ var _useRecoilState = recoil.useRecoilState(recoil$1.exerciseArduinoAgentModalState),
31
+ _useRecoilState2 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState, 2),
32
+ open = _useRecoilState2[0],
33
+ setOpen = _useRecoilState2[1];
34
+ React__default["default"].useEffect(function () {
35
+ var isConfirmed = localStorage.getItem(ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_KEY) === ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_VALUE;
32
36
  if (!isConfirmed) {
33
37
  setOpen(true);
34
38
  }
35
39
  }, [setOpen]);
36
-
37
- const handleClose = () => {
40
+ var handleClose = function handleClose() {
38
41
  setOpen(false);
39
42
  localStorage.setItem(ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_KEY, ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_VALUE);
40
43
  };
41
-
42
- const handleDownload = fileUrl => {
44
+ var handleDownload = function handleDownload(fileUrl) {
43
45
  FileSaver__default["default"].saveAs(fileUrl);
44
46
  };
45
-
46
- const renderAgentInstallInstruction = () => {
47
+ var renderAgentInstallInstruction = function renderAgentInstallInstruction() {
47
48
  return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(blocks.Text, {
48
49
  bold: true,
49
50
  role: "gray0"
@@ -66,7 +67,9 @@ const ExerciseRunnerControllerArduinoAgentModal = () => {
66
67
  size: "huge"
67
68
  }),
68
69
  iconAlign: "left",
69
- onClick: () => handleDownload(ARDUINO_AGENT_WIN_DOWNLOAD_URL)
70
+ onClick: function onClick() {
71
+ return handleDownload(ARDUINO_AGENT_WIN_DOWNLOAD_URL);
72
+ }
70
73
  }, React__default["default"].createElement(reactIntl.FormattedMessage, {
71
74
  id: "exerciseRunner.controller.arduino.agent.instruction.install.window"
72
75
  })), React__default["default"].createElement(blocks.Hspace, {
@@ -78,13 +81,14 @@ const ExerciseRunnerControllerArduinoAgentModal = () => {
78
81
  icon: icons.eisMac
79
82
  }),
80
83
  iconAlign: "left",
81
- onClick: () => handleDownload(ARDUINO_AGENT_MAC_DOWNLOAD_URL)
84
+ onClick: function onClick() {
85
+ return handleDownload(ARDUINO_AGENT_MAC_DOWNLOAD_URL);
86
+ }
82
87
  }, React__default["default"].createElement(reactIntl.FormattedMessage, {
83
88
  id: "exerciseRunner.controller.arduino.agent.instruction.install.mac"
84
89
  }))));
85
90
  };
86
-
87
- const renderAgentConnectionInstruction = () => {
91
+ var renderAgentConnectionInstruction = function renderAgentConnectionInstruction() {
88
92
  return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(blocks.Text, {
89
93
  role: "gray0",
90
94
  bold: true
@@ -107,16 +111,16 @@ const ExerciseRunnerControllerArduinoAgentModal = () => {
107
111
  iconAlign: "right",
108
112
  size: "tiny",
109
113
  role: "secondary",
110
- onClick: () => window.open(ARDUINO_AGENT_MANUAL_URL)
114
+ onClick: function onClick() {
115
+ return window.open(ARDUINO_AGENT_MANUAL_URL);
116
+ }
111
117
  }, React__default["default"].createElement(reactIntl.FormattedMessage, {
112
118
  id: "exerciseRunner.controller.arduino.agent.instruction.connect.button"
113
119
  })));
114
120
  };
115
-
116
121
  if (!open) {
117
122
  return null;
118
123
  }
119
-
120
124
  return React__default["default"].createElement(blocks.Modal, {
121
125
  theme: "dark",
122
126
  title: intl.formatMessage({
@@ -134,4 +138,4 @@ const ExerciseRunnerControllerArduinoAgentModal = () => {
134
138
  }), renderAgentConnectionInstruction()));
135
139
  };
136
140
 
137
- module.exports = ExerciseRunnerControllerArduinoAgentModal;
141
+ exports["default"] = ExerciseRunnerControllerArduinoAgentModal;
@@ -1,5 +1,8 @@
1
1
  'use strict';
2
2
 
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
3
6
  var React = require('react');
4
7
  var reactIntl = require('react-intl');
5
8
  var blocks = require('@elice/blocks');
@@ -18,19 +21,24 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
18
21
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
19
22
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
20
23
 
21
- const StyledMessageWrapper = styled__default["default"](blocks.Flex).withConfig({
24
+ var StyledMessageWrapper = styled__default["default"](blocks.Flex).withConfig({
22
25
  componentId: "sc-19z7lun-0"
23
26
  })(["height:1rem;"]);
24
-
25
- const ExerciseRunnerControllerArduinoStatusMessage = () => {
26
- const intl = reactIntl.useIntl();
27
- const ports = recoil.useRecoilValue(recoil$1.exerciseArduinoPortsState);
28
- const [message, setMessage] = React.useState('');
29
- const [status, setStatus] = React.useState('error');
30
- const arduinoOpenedPort = recoil.useRecoilValue(recoil$1.exerciseArduinoOpenedPortNameState);
31
- const arduinoUploadProgress = recoil.useRecoilValue(recoil$1.exerciseArduinoUploadProgressState);
32
- const arduinoAgentConnectionStatus = recoil.useRecoilValue(recoil$1.exerciseArduinoAgentConnectionState);
33
- React.useEffect(() => {
27
+ var ExerciseRunnerControllerArduinoStatusMessage = function ExerciseRunnerControllerArduinoStatusMessage() {
28
+ var intl = reactIntl.useIntl();
29
+ var ports = recoil.useRecoilValue(recoil$1.exerciseArduinoPortsState);
30
+ var _useState = React.useState(''),
31
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
32
+ message = _useState2[0],
33
+ setMessage = _useState2[1];
34
+ var _useState3 = React.useState('error'),
35
+ _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
36
+ status = _useState4[0],
37
+ setStatus = _useState4[1];
38
+ var arduinoOpenedPort = recoil.useRecoilValue(recoil$1.exerciseArduinoOpenedPortNameState);
39
+ var arduinoUploadProgress = recoil.useRecoilValue(recoil$1.exerciseArduinoUploadProgressState);
40
+ var arduinoAgentConnectionStatus = recoil.useRecoilValue(recoil$1.exerciseArduinoAgentConnectionState);
41
+ React.useEffect(function () {
34
42
  if (arduinoAgentConnectionStatus === 'disconnected') {
35
43
  setStatus('error');
36
44
  setMessage(intl.formatMessage({
@@ -38,7 +46,6 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
38
46
  }));
39
47
  return;
40
48
  }
41
-
42
49
  if (arduinoAgentConnectionStatus === 'connecting') {
43
50
  setStatus('warning');
44
51
  setMessage(intl.formatMessage({
@@ -46,16 +53,14 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
46
53
  }));
47
54
  return;
48
55
  }
49
-
50
56
  if (arduinoAgentConnectionStatus === 'reconnecting') {
51
57
  setStatus('warning');
52
58
  setMessage(intl.formatMessage({
53
59
  id: 'exerciseRunner.controller.arduino.connectionStatus.reconnecting'
54
60
  }));
55
61
  return;
56
- } // Arduino agent is connected.
57
-
58
-
62
+ }
63
+ // Arduino agent is connected.
59
64
  if (arduinoOpenedPort === '' && arduinoUploadProgress === 'ready') {
60
65
  setStatus('error');
61
66
  setMessage(intl.formatMessage({
@@ -63,9 +68,7 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
63
68
  }));
64
69
  return;
65
70
  }
66
-
67
71
  setStatus('success');
68
-
69
72
  switch (arduinoUploadProgress) {
70
73
  case 'receivedHex':
71
74
  case 'starting':
@@ -74,13 +77,11 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
74
77
  id: 'exerciseRunner.controller.arduino.connectionStatus.uploading'
75
78
  }));
76
79
  return;
77
-
78
80
  case 'ready':
79
81
  case 'error':
80
82
  case 'done':
81
83
  default:
82
- const device = arduino.getPortFromName(ports, arduinoOpenedPort);
83
-
84
+ var device = arduino.getPortFromName(ports, arduinoOpenedPort);
84
85
  if (device) {
85
86
  setMessage(intl.formatMessage({
86
87
  id: 'exerciseRunner.controller.arduino.connectionStatus.connectedDevice'
@@ -92,16 +93,15 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
92
93
  id: 'exerciseRunner.controller.arduino.connectionStatus.connected'
93
94
  }));
94
95
  }
95
-
96
96
  return;
97
97
  }
98
- }, [intl, arduinoOpenedPort, arduinoUploadProgress, arduinoAgentConnectionStatus, ports]); //
98
+ }, [intl, arduinoOpenedPort, arduinoUploadProgress, arduinoAgentConnectionStatus, ports]);
99
+ //
99
100
  //
100
101
  //
101
-
102
102
  return React__default["default"].createElement(StyledMessageWrapper, {
103
103
  align: "center"
104
- }, React__default["default"].createElement(ExerciseRunnerControllerStatusIndicator, {
104
+ }, React__default["default"].createElement(ExerciseRunnerControllerStatusIndicator["default"], {
105
105
  status: status
106
106
  }), React__default["default"].createElement(blocks.Text, {
107
107
  role: "gray3",
@@ -109,4 +109,4 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
109
109
  }, message));
110
110
  };
111
111
 
112
- module.exports = ExerciseRunnerControllerArduinoStatusMessage;
112
+ exports["default"] = ExerciseRunnerControllerArduinoStatusMessage;
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
3
5
  var React = require('react');
4
6
  var reactIntl = require('react-intl');
5
7
  var blocks = require('@elice/blocks');
@@ -31,72 +33,67 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
31
33
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
32
34
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
33
35
 
34
- const StyledControllerButton = styled__default["default"](blocks.Button).withConfig({
36
+ var StyledControllerButton = styled__default["default"](blocks.Button).withConfig({
35
37
  componentId: "sc-d9xhed-0"
36
38
  })(["position:relative;transition:none;"]);
37
- const StyledControllerButtonWrap = styled__default["default"].div.withConfig({
39
+ var StyledControllerButtonWrap = styled__default["default"].div.withConfig({
38
40
  componentId: "sc-d9xhed-1"
39
41
  })(["display:flex;"]);
40
- const StyledControllerButtonGroup = styled__default["default"].div.withConfig({
42
+ var StyledControllerButtonGroup = styled__default["default"].div.withConfig({
41
43
  componentId: "sc-d9xhed-2"
42
44
  })(["display:flex;flex-direction:row;align-items:center;> ", ",> ", "{margin-right:0.5rem;&:last-child{margin-right:0;}}"], StyledControllerButtonWrap, StyledControllerButton);
43
-
44
- const ExerciseRunnerControllerButtonGroup = () => {
45
+ var ExerciseRunnerControllerButtonGroup = function ExerciseRunnerControllerButtonGroup() {
45
46
  var _a;
46
-
47
- const intl = reactIntl.useIntl();
48
- const {
49
- materialExerciseId,
50
- onCodeHelpRequest
51
- } = React__default["default"].useContext(context.ExerciseContext);
52
- const {
53
- onSubmit,
54
- onSyncRequest,
55
- onCancel
56
- } = React__default["default"].useContext(ExerciseRunnerContext.ExerciseRunnerContext);
57
- const runnerWebsocketStatus = recoil.useRecoilValue(recoil$1.exerciseRunnerWebSocketStatusQuery);
58
- const editorCursorSelectionValue = recoil.useRecoilValue(recoil$1.exerciseFileEditorCursorSelectionValueState);
59
- const exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
60
- const exerciseRunType = recoil.useRecoilValue(recoil$1.exerciseRunnerRunTypeState);
61
- const exerciseWithNoGrade = Boolean(exercise === null || exercise === void 0 ? void 0 : exercise.isNoSubmitGrade);
62
- const lecture = recoil.useRecoilValue(recoil$1.exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
63
- const isTestLecture = (lecture === null || lecture === void 0 ? void 0 : lecture.lectureType) === types.enums.LectureType.Test;
64
- const isTestLectureCompleted = (lecture === null || lecture === void 0 ? void 0 : lecture.testAdmissionStatus) === types.enums.TestAdmissionStatus.Completed; // runner states
65
-
66
- const isSubmitting = recoil.useRecoilValue(recoil$1.exerciseRunnerSubmittingState);
67
- const isRunning = recoil.useRecoilValue(recoil$1.exerciseRunnerRunningState);
68
- const isConnecting = runnerWebsocketStatus === websocket.EliceWebSocket.CONNECTING;
69
- const isNotReady = runnerWebsocketStatus !== websocket.EliceWebSocket.OPEN; // arduino
70
-
71
- const isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
72
- const arduinoUploadProgress = recoil.useRecoilValue(recoil$1.exerciseArduinoUploadProgressState);
73
- const arduinoOpenedPortName = recoil.useRecoilValue(recoil$1.exerciseArduinoOpenedPortNameState); // monaco editor apis
74
-
75
- const exerciseMonacoEditorApis = recoil.useRecoilValue(recoil$1.exerciseMonacoEditorApisState); //
47
+ var intl = reactIntl.useIntl();
48
+ var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
49
+ materialExerciseId = _React$useContext.materialExerciseId,
50
+ onCodeHelpRequest = _React$useContext.onCodeHelpRequest;
51
+ var _React$useContext2 = React__default["default"].useContext(ExerciseRunnerContext.ExerciseRunnerContext),
52
+ onSubmit = _React$useContext2.onSubmit,
53
+ onSyncRequest = _React$useContext2.onSyncRequest,
54
+ onCancel = _React$useContext2.onCancel;
55
+ var runnerWebsocketStatus = recoil.useRecoilValue(recoil$1.exerciseRunnerWebSocketStatusQuery);
56
+ var editorCursorSelectionValue = recoil.useRecoilValue(recoil$1.exerciseFileEditorCursorSelectionValueState);
57
+ var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
58
+ var exerciseRunType = recoil.useRecoilValue(recoil$1.exerciseRunnerRunTypeState);
59
+ var exerciseWithNoGrade = Boolean(exercise === null || exercise === void 0 ? void 0 : exercise.isNoSubmitGrade);
60
+ var lecture = recoil.useRecoilValue(recoil$1.exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
61
+ var isTestLecture = (lecture === null || lecture === void 0 ? void 0 : lecture.lectureType) === types.enums.LectureType.Test;
62
+ var isTestLectureCompleted = (lecture === null || lecture === void 0 ? void 0 : lecture.testAdmissionStatus) === types.enums.TestAdmissionStatus.Completed;
63
+ // runner states
64
+ var isSubmitting = recoil.useRecoilValue(recoil$1.exerciseRunnerSubmittingState);
65
+ var isRunning = recoil.useRecoilValue(recoil$1.exerciseRunnerRunningState);
66
+ var isConnecting = runnerWebsocketStatus === websocket.EliceWebSocket.CONNECTING;
67
+ var isNotReady = runnerWebsocketStatus !== websocket.EliceWebSocket.OPEN;
68
+ // arduino
69
+ var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
70
+ var arduinoUploadProgress = recoil.useRecoilValue(recoil$1.exerciseArduinoUploadProgressState);
71
+ var arduinoOpenedPortName = recoil.useRecoilValue(recoil$1.exerciseArduinoOpenedPortNameState);
72
+ // monaco editor apis
73
+ var exerciseMonacoEditorApis = recoil.useRecoilValue(recoil$1.exerciseMonacoEditorApisState);
74
+ //
76
75
  // ========= ui states =========
77
76
  //
78
77
  // submit run
79
-
80
- const isSubmitRunHidden = isRunning;
81
- const isSubmitRunArduinoDisabled = isArduinoExercise ? arduinoUploadProgress !== 'ready' && arduinoUploadProgress !== 'error' || !arduinoOpenedPortName : false;
82
- const isSubmitRunDisabled = isSubmitRunHidden || isSubmitRunArduinoDisabled || isNotReady || isConnecting || isSubmitting; // submit grade
83
-
84
- const isSubmitGradeHidden = isRunning;
85
- const isSubmitGradeDisabled = isSubmitGradeHidden || exerciseWithNoGrade || isTestLecture && isTestLectureCompleted || isNotReady || isConnecting || isSubmitting; // cancel
86
-
87
- const isCancelHidden = !isRunning;
88
- const isCancelDisabled = isCancelHidden || isNotReady || isConnecting; // sync request
89
-
90
- const isSyncRequestHidden = !isRunning || !((_a = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _a === void 0 ? void 0 : _a.httpPort);
91
- const isSyncRequestDisabled = isSyncRequestHidden || isNotReady || isConnecting; //
78
+ var isSubmitRunHidden = isRunning;
79
+ var isSubmitRunArduinoDisabled = isArduinoExercise ? arduinoUploadProgress !== 'ready' && arduinoUploadProgress !== 'error' || !arduinoOpenedPortName : false;
80
+ var isSubmitRunDisabled = isSubmitRunHidden || isSubmitRunArduinoDisabled || isNotReady || isConnecting || isSubmitting;
81
+ // submit grade
82
+ var isSubmitGradeHidden = isRunning;
83
+ var isSubmitGradeDisabled = isSubmitGradeHidden || exerciseWithNoGrade || isTestLecture && isTestLectureCompleted || isNotReady || isConnecting || isSubmitting;
84
+ // cancel
85
+ var isCancelHidden = !isRunning;
86
+ var isCancelDisabled = isCancelHidden || isNotReady || isConnecting;
87
+ // sync request
88
+ var isSyncRequestHidden = !isRunning || !((_a = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _a === void 0 ? void 0 : _a.httpPort);
89
+ var isSyncRequestDisabled = isSyncRequestHidden || isNotReady || isConnecting;
90
+ //
92
91
  //
93
92
  //
94
-
95
93
  /**
96
94
  * Submit to run
97
95
  */
98
-
99
- const handleSubmitRun = () => {
96
+ var handleSubmitRun = function handleSubmitRun() {
100
97
  if (!isSubmitRunDisabled) {
101
98
  void onSubmit(types.enums.ExerciseRunType.Run);
102
99
  }
@@ -104,9 +101,7 @@ const ExerciseRunnerControllerButtonGroup = () => {
104
101
  /**
105
102
  * Submit to grade
106
103
  */
107
-
108
-
109
- const handleSubmitGrade = () => {
104
+ var handleSubmitGrade = function handleSubmitGrade() {
110
105
  if (!isSubmitGradeDisabled) {
111
106
  void onSubmit(types.enums.ExerciseRunType.Grade);
112
107
  }
@@ -114,9 +109,7 @@ const ExerciseRunnerControllerButtonGroup = () => {
114
109
  /**
115
110
  * Cancel
116
111
  */
117
-
118
-
119
- const handleCancel = () => {
112
+ var handleCancel = function handleCancel() {
120
113
  if (!isCancelDisabled) {
121
114
  onCancel();
122
115
  }
@@ -124,40 +117,36 @@ const ExerciseRunnerControllerButtonGroup = () => {
124
117
  /**
125
118
  * Sync request
126
119
  */
127
-
128
-
129
- const handleSyncRequest = () => {
120
+ var handleSyncRequest = function handleSyncRequest() {
130
121
  if (!isSyncRequestDisabled) {
131
122
  onSyncRequest();
132
123
  }
133
- }; //
124
+ };
125
+ //
134
126
  // keyboard shortcuts to control runner
135
127
  //
136
-
137
-
138
128
  useExericseShortcut.useExericseShortcut('RUNNER_SUBMIT_RUN', handleSubmitRun);
139
129
  useExericseShortcut.useExericseShortcut('RUNNER_SUBMIT_GRADE', handleSubmitGrade);
140
130
  useExericseShortcut.useExericseShortcut('RUNNER_CANCEL', handleCancel);
141
- useExericseShortcut.useExericseShortcut('RUNNER_SYNC_REQUEST', handleSyncRequest); //
131
+ useExericseShortcut.useExericseShortcut('RUNNER_SYNC_REQUEST', handleSyncRequest);
132
+ //
142
133
  // handle save action emitted by file editor
143
134
  //
144
-
145
- React__default["default"].useEffect(() => {
146
- const saveActionSub = subjects.exerciseFileEditorSaveAction$.subscribe(handleSyncRequest);
147
- return () => {
135
+ React__default["default"].useEffect(function () {
136
+ var saveActionSub = subjects.exerciseFileEditorSaveAction$.subscribe(handleSyncRequest);
137
+ return function () {
148
138
  saveActionSub.unsubscribe();
149
139
  };
150
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
140
+ },
141
+ // eslint-disable-next-line react-hooks/exhaustive-deps
151
142
  [isSyncRequestDisabled]);
152
143
  /**
153
144
  * Submit to run button
154
145
  */
155
-
156
- const renderSubmitRunButton = () => {
146
+ var renderSubmitRunButton = function renderSubmitRunButton() {
157
147
  if (isSubmitRunHidden) {
158
148
  return null;
159
149
  }
160
-
161
150
  return React__default["default"].createElement(StyledControllerButton, {
162
151
  size: "tiny",
163
152
  loading: isConnecting || isSubmitting && exerciseRunType === types.enums.ExerciseRunType.Run,
@@ -172,13 +161,10 @@ const ExerciseRunnerControllerButtonGroup = () => {
172
161
  /**
173
162
  * Submit to grade button
174
163
  */
175
-
176
-
177
- const renderSubmitGradeButton = () => {
164
+ var renderSubmitGradeButton = function renderSubmitGradeButton() {
178
165
  if (isSubmitGradeHidden) {
179
166
  return null;
180
167
  }
181
-
182
168
  return React__default["default"].createElement(blocks.Tooltip, {
183
169
  title: exerciseWithNoGrade ? intl.formatMessage({
184
170
  id: 'exerciseRunner.controller.buttonGroup.button.submit.tooltip.noSubmit'
@@ -198,13 +184,10 @@ const ExerciseRunnerControllerButtonGroup = () => {
198
184
  /**
199
185
  * Cancel button
200
186
  */
201
-
202
-
203
- const renderCancelButton = () => {
187
+ var renderCancelButton = function renderCancelButton() {
204
188
  if (isCancelHidden) {
205
189
  return null;
206
190
  }
207
-
208
191
  return React__default["default"].createElement(StyledControllerButton, {
209
192
  size: "tiny",
210
193
  role: "danger",
@@ -218,13 +201,10 @@ const ExerciseRunnerControllerButtonGroup = () => {
218
201
  /**
219
202
  * Sync request button
220
203
  */
221
-
222
-
223
- const renderSyncRequestButton = () => {
204
+ var renderSyncRequestButton = function renderSyncRequestButton() {
224
205
  if (isSyncRequestHidden) {
225
206
  return null;
226
207
  }
227
-
228
208
  return React__default["default"].createElement(StyledControllerButton, {
229
209
  size: "tiny",
230
210
  role: "secondary",
@@ -238,17 +218,13 @@ const ExerciseRunnerControllerButtonGroup = () => {
238
218
  /**
239
219
  * Code help button
240
220
  */
241
-
242
-
243
- const renderCodeHelpRequestButton = () => {
221
+ var renderCodeHelpRequestButton = function renderCodeHelpRequestButton() {
244
222
  if (isRunning || !editorCursorSelectionValue || typeof onCodeHelpRequest !== 'function') {
245
223
  return null;
246
224
  }
247
-
248
- return React__default["default"].createElement(ExerciseRunnerControllerCodeHelpRequestButton, {
249
- onClick: () => {
225
+ return React__default["default"].createElement(ExerciseRunnerControllerCodeHelpRequestButton["default"], {
226
+ onClick: function onClick() {
250
227
  var _a, _b, _c;
251
-
252
228
  onCodeHelpRequest({
253
229
  code: editorCursorSelectionValue,
254
230
  readme: (_a = exercise === null || exercise === void 0 ? void 0 : exercise.description) !== null && _a !== void 0 ? _a : '',
@@ -257,12 +233,11 @@ const ExerciseRunnerControllerButtonGroup = () => {
257
233
  });
258
234
  }
259
235
  });
260
- }; //
236
+ };
237
+ //
261
238
  //
262
239
  //
263
-
264
-
265
240
  return React__default["default"].createElement(StyledControllerButtonGroup, null, renderSubmitRunButton(), renderSubmitGradeButton(), renderCancelButton(), renderSyncRequestButton(), renderCodeHelpRequestButton());
266
241
  };
267
242
 
268
- module.exports = ExerciseRunnerControllerButtonGroup;
243
+ exports["default"] = ExerciseRunnerControllerButtonGroup;