@elice/material-exercise 1.230325.0 → 1.230418.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/cjs/_virtual/_rollupPluginBabelHelpers.js +526 -0
  2. package/cjs/components/material-exercise/MaterialExercise.js +44 -63
  3. package/cjs/components/material-exercise/MaterialExercise.styled.js +20 -23
  4. package/cjs/components/material-exercise/MaterialExerciseMobile.js +19 -15
  5. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  6. package/cjs/components/material-exercise/context/ExerciseProvider.js +83 -81
  7. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +16 -16
  8. package/cjs/components/material-exercise/context/context.js +1 -1
  9. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +3 -1
  10. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +3 -1
  11. package/cjs/components/material-exercise/context/recoil.d.ts +2 -1
  12. package/cjs/components/material-exercise/context/recoil.js +562 -373
  13. package/cjs/components/material-exercise/context/recoilTypes.js +0 -5
  14. package/cjs/components/material-exercise/context/subjects.js +3 -6
  15. package/cjs/components/material-exercise/context/types.d.ts +8 -1
  16. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  17. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -65
  18. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  19. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +7 -0
  20. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +7 -0
  21. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +20 -21
  22. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +228 -199
  23. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -10
  24. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +35 -32
  25. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +57 -48
  26. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
  27. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -1
  28. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -1
  29. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +327 -231
  30. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
  31. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +3 -1
  32. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +3 -1
  33. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +17 -17
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -14
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -6
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +47 -38
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +60 -42
  38. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +29 -22
  39. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +45 -56
  40. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  41. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +3 -1
  42. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +3 -1
  43. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -20
  44. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +5 -3
  45. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +30 -41
  46. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +17 -12
  47. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +3 -1
  48. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +3 -1
  49. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +24 -33
  50. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +13 -8
  51. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +84 -83
  52. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +3 -1
  53. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +3 -1
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +20 -12
  55. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  56. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +239 -147
  57. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +92 -63
  58. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  59. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +3 -1
  60. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +3 -1
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +224 -223
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -13
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +30 -26
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +26 -26
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +79 -95
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +27 -27
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +54 -60
  69. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +5 -5
  70. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -13
  71. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +29 -26
  72. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +3 -1
  73. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +3 -1
  74. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  75. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +290 -180
  76. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  77. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -45
  78. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +7 -0
  79. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +7 -0
  80. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +19 -17
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +5 -4
  82. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +15 -14
  83. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +7 -6
  84. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +17 -16
  85. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +18 -11
  86. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -4
  87. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  88. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -7
  89. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  90. package/cjs/components/shared/file-icon/FileIcon.js +23 -23
  91. package/cjs/components/shared/file-tabs/FileTab.js +32 -43
  92. package/cjs/components/shared/file-tabs/FileTab.styled.js +26 -22
  93. package/cjs/components/shared/file-tabs/FileTabs.js +55 -49
  94. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -2
  95. package/cjs/components/shared/file-tabs/util.js +29 -18
  96. package/cjs/components/shared/file-tree/FileTree.js +11 -11
  97. package/cjs/components/shared/file-tree/FileTreeConfig.js +24 -23
  98. package/cjs/components/shared/file-tree/FileTreeList.js +35 -41
  99. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +75 -91
  100. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  101. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +77 -101
  102. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  103. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +51 -86
  104. package/cjs/components/shared/file-tree/FileTreeListItems.js +150 -153
  105. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  106. package/cjs/components/shared/file-tree/FileTreeToolbar.js +30 -41
  107. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  108. package/cjs/components/shared/file-tree/context/FileTreeContext.js +91 -97
  109. package/cjs/components/shared/file-tree/locales/en.json.js +3 -1
  110. package/cjs/components/shared/file-tree/locales/ko.json.js +3 -1
  111. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  112. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  113. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  114. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  115. package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -7
  116. package/cjs/components/shared/file-viewer/FileViewer.js +59 -60
  117. package/cjs/components/shared/file-viewer/FileViewerCsv.js +145 -101
  118. package/cjs/components/shared/file-viewer/FileViewerImage.js +7 -8
  119. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +20 -14
  120. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +28 -34
  121. package/cjs/components/shared/file-viewer/FileViewerText.js +23 -16
  122. package/cjs/components/shared/file-viewer/locales/en.json.js +3 -1
  123. package/cjs/components/shared/file-viewer/locales/ko.json.js +3 -1
  124. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +3 -1
  125. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +3 -1
  126. package/cjs/components/shared/material-modal/MaterialModal.js +10 -12
  127. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -5
  128. package/cjs/components/shared/monaco-editor/MonacoEditor.js +123 -149
  129. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +10 -8
  130. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -58
  131. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +78 -85
  132. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  133. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  134. package/cjs/components/shared/monaco-editor/constants/themes/index.js +80 -32
  135. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  136. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  137. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  138. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  139. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  140. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  141. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +36 -12
  142. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +5 -8
  143. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +36 -12
  144. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -6
  145. package/cjs/components/shared/monaco-editor/editor-languages/index.js +3 -1
  146. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  147. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +3 -2
  148. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +3 -2
  149. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +3 -2
  150. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +36 -12
  151. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +18 -24
  152. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  153. package/cjs/components/shared/monaco-editor/locales/en.json.js +3 -1
  154. package/cjs/components/shared/monaco-editor/locales/ko.json.js +3 -1
  155. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  156. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  157. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  158. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +70 -32
  159. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  160. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  161. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  162. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  163. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  164. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +30 -9
  165. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  166. package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -5
  167. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  168. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  169. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  170. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  171. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  172. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  173. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  174. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  175. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +218 -329
  176. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  177. package/cjs/components/shared/no-vnc/NoVnc.js +93 -90
  178. package/cjs/components/shared/no-vnc/NoVncLazy.js +7 -5
  179. package/cjs/components/shared/preview-container/PreviewContainer.js +7 -10
  180. package/cjs/components/shared/web-browser/WebBrowser.js +54 -59
  181. package/cjs/components/shared/xterm/Xterm.js +112 -105
  182. package/cjs/components/shared/xterm/XtermLazy.js +7 -5
  183. package/cjs/components/shared/xterm/locales/en.json.js +3 -1
  184. package/cjs/components/shared/xterm/locales/ko.json.js +3 -1
  185. package/cjs/constants/arduino.js +10 -10
  186. package/cjs/constants/shortcutKeyMap.js +5 -5
  187. package/cjs/constants/stylesheets.js +7 -10
  188. package/cjs/hooks/useArduino.js +327 -255
  189. package/cjs/hooks/useExerciseFile.js +24 -24
  190. package/cjs/hooks/useExericseShortcut.js +6 -5
  191. package/cjs/hooks/useMaterialExerciseFileUrl.js +54 -37
  192. package/cjs/hooks/useRunnerRoomWebSocket.js +58 -56
  193. package/cjs/hooks/useStdioTextConcator.js +18 -12
  194. package/cjs/hooks/useStdioWebSocket.js +41 -67
  195. package/cjs/hooks/useUsercodeEditWebSocket.js +230 -252
  196. package/cjs/hooks/useUsercodeHistory.js +121 -82
  197. package/cjs/index.js +4 -4
  198. package/cjs/utils/arduino.js +23 -25
  199. package/cjs/utils/exerciseFile.js +8 -16
  200. package/cjs/utils/runner.js +29 -25
  201. package/es/_virtual/_rollupPluginBabelHelpers.js +504 -0
  202. package/es/components/material-exercise/MaterialExercise.js +33 -54
  203. package/es/components/material-exercise/MaterialExercise.styled.js +20 -23
  204. package/es/components/material-exercise/MaterialExerciseMobile.js +15 -13
  205. package/es/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  206. package/es/components/material-exercise/context/ExerciseProvider.js +79 -79
  207. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +11 -13
  208. package/es/components/material-exercise/context/context.js +1 -1
  209. package/es/components/material-exercise/context/recoil.d.ts +2 -1
  210. package/es/components/material-exercise/context/recoil.js +563 -374
  211. package/es/components/material-exercise/context/recoilTypes.js +0 -5
  212. package/es/components/material-exercise/context/subjects.js +3 -6
  213. package/es/components/material-exercise/context/types.d.ts +8 -1
  214. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  215. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +73 -62
  216. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  217. package/es/components/material-exercise/exercise-code-history/locales/en.json.js +3 -0
  218. package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +3 -0
  219. package/es/components/material-exercise/exercise-file/ExerciseFile.js +15 -18
  220. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +222 -195
  221. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -9
  222. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +31 -28
  223. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +52 -45
  224. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  225. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +321 -225
  226. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  227. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +12 -14
  228. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -10
  229. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -5
  230. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +43 -36
  231. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +53 -37
  232. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +25 -20
  233. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +41 -54
  234. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  235. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +25 -19
  236. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  237. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +21 -34
  238. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -10
  239. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +17 -28
  240. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +9 -6
  241. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +81 -82
  242. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +13 -7
  243. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  244. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +236 -146
  245. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +90 -63
  246. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  247. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +218 -219
  248. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  249. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +7 -9
  250. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +27 -25
  251. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +22 -24
  252. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +76 -94
  253. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +24 -26
  254. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +51 -59
  255. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -4
  256. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +6 -11
  257. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +26 -25
  258. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  259. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +284 -174
  260. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  261. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +38 -44
  262. package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +3 -0
  263. package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +3 -0
  264. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +16 -16
  265. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -3
  266. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -13
  267. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -3
  268. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -15
  269. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +15 -10
  270. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +2 -3
  271. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  272. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +5 -6
  273. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  274. package/es/components/shared/file-icon/FileIcon.js +20 -22
  275. package/es/components/shared/file-tabs/FileTab.js +28 -41
  276. package/es/components/shared/file-tabs/FileTab.styled.js +26 -22
  277. package/es/components/shared/file-tabs/FileTabs.js +52 -48
  278. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  279. package/es/components/shared/file-tabs/util.js +29 -18
  280. package/es/components/shared/file-tree/FileTree.js +3 -5
  281. package/es/components/shared/file-tree/FileTreeConfig.js +21 -22
  282. package/es/components/shared/file-tree/FileTreeList.js +31 -39
  283. package/es/components/shared/file-tree/FileTreeListItemContent.js +67 -85
  284. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  285. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +74 -100
  286. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  287. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +48 -85
  288. package/es/components/shared/file-tree/FileTreeListItems.js +147 -152
  289. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  290. package/es/components/shared/file-tree/FileTreeToolbar.js +24 -37
  291. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  292. package/es/components/shared/file-tree/context/FileTreeContext.js +91 -97
  293. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  294. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  295. package/es/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  296. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  297. package/es/components/shared/file-tree/utils/fileTreePath.js +5 -7
  298. package/es/components/shared/file-viewer/FileViewer.js +52 -53
  299. package/es/components/shared/file-viewer/FileViewerCsv.js +141 -99
  300. package/es/components/shared/file-viewer/FileViewerImage.js +3 -6
  301. package/es/components/shared/file-viewer/FileViewerIpynb.js +16 -12
  302. package/es/components/shared/file-viewer/FileViewerNonViewable.js +22 -30
  303. package/es/components/shared/file-viewer/FileViewerText.js +18 -13
  304. package/es/components/shared/material-modal/MaterialModal.js +7 -11
  305. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  306. package/es/components/shared/monaco-editor/MonacoEditor.js +119 -147
  307. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +6 -4
  308. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +45 -56
  309. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +73 -82
  310. package/es/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  311. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  312. package/es/components/shared/monaco-editor/constants/themes/index.js +80 -32
  313. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  314. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  315. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  316. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  317. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  318. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  319. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -11
  320. package/es/components/shared/monaco-editor/editor-languages/css/index.js +2 -5
  321. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -11
  322. package/es/components/shared/monaco-editor/editor-languages/html/index.js +2 -5
  323. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  324. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +0 -1
  325. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +0 -1
  326. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +0 -1
  327. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +33 -11
  328. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -16
  329. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  330. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  331. package/es/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  332. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  333. package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -31
  334. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  335. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  336. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  337. package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  338. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  339. package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -8
  340. package/es/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  341. package/es/components/shared/monaco-editor/utils/theme/index.js +22 -5
  342. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  343. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  344. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  345. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  346. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  347. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  348. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  349. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  350. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +219 -330
  351. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  352. package/es/components/shared/no-vnc/NoVnc.js +89 -88
  353. package/es/components/shared/no-vnc/NoVncLazy.js +4 -2
  354. package/es/components/shared/preview-container/PreviewContainer.js +7 -10
  355. package/es/components/shared/web-browser/WebBrowser.js +49 -56
  356. package/es/components/shared/xterm/Xterm.js +107 -102
  357. package/es/components/shared/xterm/XtermLazy.js +4 -2
  358. package/es/constants/arduino.js +10 -10
  359. package/es/constants/shortcutKeyMap.js +3 -5
  360. package/es/constants/stylesheets.js +7 -10
  361. package/es/hooks/useArduino.js +327 -255
  362. package/es/hooks/useExerciseFile.js +24 -24
  363. package/es/hooks/useExericseShortcut.js +6 -5
  364. package/es/hooks/useMaterialExerciseFileUrl.js +55 -38
  365. package/es/hooks/useRunnerRoomWebSocket.js +58 -56
  366. package/es/hooks/useStdioTextConcator.js +18 -12
  367. package/es/hooks/useStdioWebSocket.js +41 -67
  368. package/es/hooks/useUsercodeEditWebSocket.js +230 -252
  369. package/es/hooks/useUsercodeHistory.js +122 -83
  370. package/es/utils/arduino.js +23 -25
  371. package/es/utils/exerciseFile.js +8 -16
  372. package/es/utils/runner.js +29 -25
  373. package/package.json +8 -8
@@ -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); //
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
+ //
74
75
  // ========= ui states =========
75
76
  //
76
77
  // submit run
77
-
78
- const isSubmitRunHidden = isRunning;
79
- const isSubmitRunArduinoDisabled = isArduinoExercise ? arduinoUploadProgress !== 'ready' && arduinoUploadProgress !== 'error' || !arduinoOpenedPortName : false;
80
- const isSubmitRunDisabled = isSubmitRunHidden || isSubmitRunArduinoDisabled || isNotReady || isConnecting || isSubmitting; // submit grade
81
-
82
- const isSubmitGradeHidden = isRunning;
83
- const isSubmitGradeDisabled = isSubmitGradeHidden || exerciseWithNoGrade || isTestLecture && isTestLectureCompleted || isNotReady || isConnecting || isSubmitting; // cancel
84
-
85
- const isCancelHidden = !isRunning;
86
- const isCancelDisabled = isCancelHidden || isNotReady || isConnecting; // sync request
87
-
88
- const isSyncRequestHidden = !isRunning || !((_a = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _a === void 0 ? void 0 : _a.httpPort);
89
- const isSyncRequestDisabled = isSyncRequestHidden || isNotReady || isConnecting; // code help
90
-
91
- const isCodeHelpHidden = isRunning || isTestLecture && !isTestLectureCompleted; //
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,22 +218,26 @@ const ExerciseRunnerControllerButtonGroup = () => {
238
218
  /**
239
219
  * Code help button
240
220
  */
241
-
242
-
243
- const renderCodeHelpRequestButton = () => {
244
- if (isCodeHelpHidden || !editorCursorSelectionValue || typeof onCodeHelpRequest !== 'function') {
221
+ var renderCodeHelpRequestButton = function renderCodeHelpRequestButton() {
222
+ if (isRunning || !editorCursorSelectionValue || typeof onCodeHelpRequest !== 'function') {
245
223
  return null;
246
224
  }
247
-
248
- return React__default["default"].createElement(ExerciseRunnerControllerCodeHelpRequestButton, {
249
- onClick: () => onCodeHelpRequest(editorCursorSelectionValue)
225
+ return React__default["default"].createElement(ExerciseRunnerControllerCodeHelpRequestButton["default"], {
226
+ onClick: function onClick() {
227
+ var _a, _b, _c;
228
+ onCodeHelpRequest({
229
+ code: editorCursorSelectionValue,
230
+ readme: (_a = exercise === null || exercise === void 0 ? void 0 : exercise.description) !== null && _a !== void 0 ? _a : '',
231
+ instruction: (_b = exercise === null || exercise === void 0 ? void 0 : exercise.instructionContent) !== null && _b !== void 0 ? _b : '',
232
+ openFileContent: (_c = exerciseMonacoEditorApis === null || exerciseMonacoEditorApis === void 0 ? void 0 : exerciseMonacoEditorApis.getValue()) !== null && _c !== void 0 ? _c : ''
233
+ });
234
+ }
250
235
  });
251
- }; //
236
+ };
237
+ //
252
238
  //
253
239
  //
254
-
255
-
256
240
  return React__default["default"].createElement(StyledControllerButtonGroup, null, renderSubmitRunButton(), renderSubmitGradeButton(), renderCancelButton(), renderSyncRequestButton(), renderCodeHelpRequestButton());
257
241
  };
258
242
 
259
- module.exports = ExerciseRunnerControllerButtonGroup;
243
+ exports["default"] = ExerciseRunnerControllerButtonGroup;