@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
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
 
3
- const ExerciseRunnerContext = React.createContext(null);
3
+ var ExerciseRunnerContext = React.createContext(null);
4
4
 
5
5
  export { ExerciseRunnerContext };
@@ -16,17 +16,15 @@ import ExerciseRunnerControllerRunningInfo from './ExerciseRunnerControllerRunni
16
16
  import ExerciseRunnerControllerStatusMessage from './ExerciseRunnerControllerStatusMessage.js';
17
17
  import ExerciseRunnerControllerTimer from './ExerciseRunnerControllerTimer.js';
18
18
 
19
- const RUNNER_CONTROLLER_HEIGHT = 50;
20
- const StyledController = styled.div.withConfig({
19
+ var RUNNER_CONTROLLER_HEIGHT = 50;
20
+ var StyledController = styled.div.withConfig({
21
21
  componentId: "sc-1fvokag-0"
22
22
  })(["display:flex;justify-content:space-between;align-items:center;padding:0.5rem 1rem;height:", "px;border-bottom:", ";"], RUNNER_CONTROLLER_HEIGHT, MATERIAL_DIVIDER_BORDER_VALUE);
23
-
24
- const ExerciseRunnerController = () => {
25
- const {
26
- materialExerciseId
27
- } = React.useContext(ExerciseContext);
28
- const exercise = useRecoilValue(exerciseState(materialExerciseId));
29
- const isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === enums.ExerciseEnvType.Arduino;
23
+ var ExerciseRunnerController = function ExerciseRunnerController() {
24
+ var _React$useContext = React.useContext(ExerciseContext),
25
+ materialExerciseId = _React$useContext.materialExerciseId;
26
+ var exercise = useRecoilValue(exerciseState(materialExerciseId));
27
+ var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === enums.ExerciseEnvType.Arduino;
30
28
  return React.createElement(StyledController, null, React.createElement(Flex, {
31
29
  align: "center"
32
30
  }, React.createElement(ExerciseRunnerControllerButtonGroup, null), React.createElement(Hspace, {
@@ -1,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import React from 'react';
2
3
  import { useIntl, FormattedMessage } from 'react-intl';
3
4
  import { Modal, Text, Vspace, Flex, Button, Icon, Hspace } from '@elice/blocks';
@@ -10,33 +11,31 @@ import '../context/recoilTypes.js';
10
11
  import '../context/subjects.js';
11
12
  import '../context/ExerciseProvider.js';
12
13
 
13
- const ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_KEY = 'elice-material-exercise-arduino-agent-modal-closed';
14
- const ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_VALUE = 'true';
15
- const ARDUINO_AGENT_MAC_DOWNLOAD_URL = 'https://eli.so/arduino-agent-mac';
16
- const ARDUINO_AGENT_WIN_DOWNLOAD_URL = 'https://eli.so/arduino-agent-win';
17
- const ARDUINO_AGENT_MANUAL_URL = 'https://eli.so/arduino-faq';
18
-
19
- const ExerciseRunnerControllerArduinoAgentModal = () => {
20
- const intl = useIntl();
21
- const [open, setOpen] = useRecoilState(exerciseArduinoAgentModalState);
22
- React.useEffect(() => {
23
- const isConfirmed = localStorage.getItem(ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_KEY) === ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_VALUE;
24
-
14
+ var ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_KEY = 'elice-material-exercise-arduino-agent-modal-closed';
15
+ var ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_VALUE = 'true';
16
+ var ARDUINO_AGENT_MAC_DOWNLOAD_URL = 'https://eli.so/arduino-agent-mac';
17
+ var ARDUINO_AGENT_WIN_DOWNLOAD_URL = 'https://eli.so/arduino-agent-win';
18
+ var ARDUINO_AGENT_MANUAL_URL = 'https://eli.so/arduino-faq';
19
+ var ExerciseRunnerControllerArduinoAgentModal = function ExerciseRunnerControllerArduinoAgentModal() {
20
+ var intl = useIntl();
21
+ var _useRecoilState = useRecoilState(exerciseArduinoAgentModalState),
22
+ _useRecoilState2 = _slicedToArray(_useRecoilState, 2),
23
+ open = _useRecoilState2[0],
24
+ setOpen = _useRecoilState2[1];
25
+ React.useEffect(function () {
26
+ var isConfirmed = localStorage.getItem(ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_KEY) === ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_VALUE;
25
27
  if (!isConfirmed) {
26
28
  setOpen(true);
27
29
  }
28
30
  }, [setOpen]);
29
-
30
- const handleClose = () => {
31
+ var handleClose = function handleClose() {
31
32
  setOpen(false);
32
33
  localStorage.setItem(ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_KEY, ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_VALUE);
33
34
  };
34
-
35
- const handleDownload = fileUrl => {
35
+ var handleDownload = function handleDownload(fileUrl) {
36
36
  FileSaver.saveAs(fileUrl);
37
37
  };
38
-
39
- const renderAgentInstallInstruction = () => {
38
+ var renderAgentInstallInstruction = function renderAgentInstallInstruction() {
40
39
  return React.createElement(React.Fragment, null, React.createElement(Text, {
41
40
  bold: true,
42
41
  role: "gray0"
@@ -59,7 +58,9 @@ const ExerciseRunnerControllerArduinoAgentModal = () => {
59
58
  size: "huge"
60
59
  }),
61
60
  iconAlign: "left",
62
- onClick: () => handleDownload(ARDUINO_AGENT_WIN_DOWNLOAD_URL)
61
+ onClick: function onClick() {
62
+ return handleDownload(ARDUINO_AGENT_WIN_DOWNLOAD_URL);
63
+ }
63
64
  }, React.createElement(FormattedMessage, {
64
65
  id: "exerciseRunner.controller.arduino.agent.instruction.install.window"
65
66
  })), React.createElement(Hspace, {
@@ -71,13 +72,14 @@ const ExerciseRunnerControllerArduinoAgentModal = () => {
71
72
  icon: eisMac
72
73
  }),
73
74
  iconAlign: "left",
74
- onClick: () => handleDownload(ARDUINO_AGENT_MAC_DOWNLOAD_URL)
75
+ onClick: function onClick() {
76
+ return handleDownload(ARDUINO_AGENT_MAC_DOWNLOAD_URL);
77
+ }
75
78
  }, React.createElement(FormattedMessage, {
76
79
  id: "exerciseRunner.controller.arduino.agent.instruction.install.mac"
77
80
  }))));
78
81
  };
79
-
80
- const renderAgentConnectionInstruction = () => {
82
+ var renderAgentConnectionInstruction = function renderAgentConnectionInstruction() {
81
83
  return React.createElement(React.Fragment, null, React.createElement(Text, {
82
84
  role: "gray0",
83
85
  bold: true
@@ -100,16 +102,16 @@ const ExerciseRunnerControllerArduinoAgentModal = () => {
100
102
  iconAlign: "right",
101
103
  size: "tiny",
102
104
  role: "secondary",
103
- onClick: () => window.open(ARDUINO_AGENT_MANUAL_URL)
105
+ onClick: function onClick() {
106
+ return window.open(ARDUINO_AGENT_MANUAL_URL);
107
+ }
104
108
  }, React.createElement(FormattedMessage, {
105
109
  id: "exerciseRunner.controller.arduino.agent.instruction.connect.button"
106
110
  })));
107
111
  };
108
-
109
112
  if (!open) {
110
113
  return null;
111
114
  }
112
-
113
115
  return React.createElement(Modal, {
114
116
  theme: "dark",
115
117
  title: intl.formatMessage({
@@ -1,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import React, { useState, useEffect } from 'react';
2
3
  import { useIntl } from 'react-intl';
3
4
  import { Flex, Text } from '@elice/blocks';
@@ -11,19 +12,24 @@ import '../context/subjects.js';
11
12
  import '../context/ExerciseProvider.js';
12
13
  import ExerciseRunnerControllerStatusIndicator from './ExerciseRunnerControllerStatusIndicator.js';
13
14
 
14
- const StyledMessageWrapper = styled(Flex).withConfig({
15
+ var StyledMessageWrapper = styled(Flex).withConfig({
15
16
  componentId: "sc-19z7lun-0"
16
17
  })(["height:1rem;"]);
17
-
18
- const ExerciseRunnerControllerArduinoStatusMessage = () => {
19
- const intl = useIntl();
20
- const ports = useRecoilValue(exerciseArduinoPortsState);
21
- const [message, setMessage] = useState('');
22
- const [status, setStatus] = useState('error');
23
- const arduinoOpenedPort = useRecoilValue(exerciseArduinoOpenedPortNameState);
24
- const arduinoUploadProgress = useRecoilValue(exerciseArduinoUploadProgressState);
25
- const arduinoAgentConnectionStatus = useRecoilValue(exerciseArduinoAgentConnectionState);
26
- useEffect(() => {
18
+ var ExerciseRunnerControllerArduinoStatusMessage = function ExerciseRunnerControllerArduinoStatusMessage() {
19
+ var intl = useIntl();
20
+ var ports = useRecoilValue(exerciseArduinoPortsState);
21
+ var _useState = useState(''),
22
+ _useState2 = _slicedToArray(_useState, 2),
23
+ message = _useState2[0],
24
+ setMessage = _useState2[1];
25
+ var _useState3 = useState('error'),
26
+ _useState4 = _slicedToArray(_useState3, 2),
27
+ status = _useState4[0],
28
+ setStatus = _useState4[1];
29
+ var arduinoOpenedPort = useRecoilValue(exerciseArduinoOpenedPortNameState);
30
+ var arduinoUploadProgress = useRecoilValue(exerciseArduinoUploadProgressState);
31
+ var arduinoAgentConnectionStatus = useRecoilValue(exerciseArduinoAgentConnectionState);
32
+ useEffect(function () {
27
33
  if (arduinoAgentConnectionStatus === 'disconnected') {
28
34
  setStatus('error');
29
35
  setMessage(intl.formatMessage({
@@ -31,7 +37,6 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
31
37
  }));
32
38
  return;
33
39
  }
34
-
35
40
  if (arduinoAgentConnectionStatus === 'connecting') {
36
41
  setStatus('warning');
37
42
  setMessage(intl.formatMessage({
@@ -39,16 +44,14 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
39
44
  }));
40
45
  return;
41
46
  }
42
-
43
47
  if (arduinoAgentConnectionStatus === 'reconnecting') {
44
48
  setStatus('warning');
45
49
  setMessage(intl.formatMessage({
46
50
  id: 'exerciseRunner.controller.arduino.connectionStatus.reconnecting'
47
51
  }));
48
52
  return;
49
- } // Arduino agent is connected.
50
-
51
-
53
+ }
54
+ // Arduino agent is connected.
52
55
  if (arduinoOpenedPort === '' && arduinoUploadProgress === 'ready') {
53
56
  setStatus('error');
54
57
  setMessage(intl.formatMessage({
@@ -56,9 +59,7 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
56
59
  }));
57
60
  return;
58
61
  }
59
-
60
62
  setStatus('success');
61
-
62
63
  switch (arduinoUploadProgress) {
63
64
  case 'receivedHex':
64
65
  case 'starting':
@@ -67,13 +68,11 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
67
68
  id: 'exerciseRunner.controller.arduino.connectionStatus.uploading'
68
69
  }));
69
70
  return;
70
-
71
71
  case 'ready':
72
72
  case 'error':
73
73
  case 'done':
74
74
  default:
75
- const device = getPortFromName(ports, arduinoOpenedPort);
76
-
75
+ var device = getPortFromName(ports, arduinoOpenedPort);
77
76
  if (device) {
78
77
  setMessage(intl.formatMessage({
79
78
  id: 'exerciseRunner.controller.arduino.connectionStatus.connectedDevice'
@@ -85,13 +84,12 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
85
84
  id: 'exerciseRunner.controller.arduino.connectionStatus.connected'
86
85
  }));
87
86
  }
88
-
89
87
  return;
90
88
  }
91
- }, [intl, arduinoOpenedPort, arduinoUploadProgress, arduinoAgentConnectionStatus, ports]); //
89
+ }, [intl, arduinoOpenedPort, arduinoUploadProgress, arduinoAgentConnectionStatus, ports]);
90
+ //
92
91
  //
93
92
  //
94
-
95
93
  return React.createElement(StyledMessageWrapper, {
96
94
  align: "center"
97
95
  }, React.createElement(ExerciseRunnerControllerStatusIndicator, {
@@ -7,7 +7,7 @@ import { useRecoilValue } from 'recoil';
7
7
  import styled from 'styled-components';
8
8
  import 'react-use';
9
9
  import 'socket.io-client';
10
- import { exerciseRunnerWebSocketStatusQuery, exerciseFileEditorCursorSelectionValueState, exerciseState, exerciseRunnerRunTypeState, exerciseLectureState, exerciseRunnerSubmittingState, exerciseRunnerRunningState, exerciseArduinoUploadProgressState, exerciseArduinoOpenedPortNameState } from '../context/recoil.js';
10
+ import { exerciseRunnerWebSocketStatusQuery, exerciseFileEditorCursorSelectionValueState, exerciseState, exerciseRunnerRunTypeState, exerciseLectureState, exerciseRunnerSubmittingState, exerciseRunnerRunningState, exerciseArduinoUploadProgressState, exerciseArduinoOpenedPortNameState, exerciseMonacoEditorApisState } from '../context/recoil.js';
11
11
  import { ExerciseContext } from '../context/context.js';
12
12
  import '../context/recoilTypes.js';
13
13
  import { exerciseFileEditorSaveAction$ } from '../context/subjects.js';
@@ -24,72 +24,67 @@ import 'unicount';
24
24
  import { ExerciseRunnerContext } from './ExerciseRunnerContext.js';
25
25
  import ExerciseRunnerControllerCodeHelpRequestButton from './ExerciseRunnerControllerCodeHelpRequestButton.js';
26
26
 
27
- const StyledControllerButton = styled(Button).withConfig({
27
+ var StyledControllerButton = styled(Button).withConfig({
28
28
  componentId: "sc-d9xhed-0"
29
29
  })(["position:relative;transition:none;"]);
30
- const StyledControllerButtonWrap = styled.div.withConfig({
30
+ var StyledControllerButtonWrap = styled.div.withConfig({
31
31
  componentId: "sc-d9xhed-1"
32
32
  })(["display:flex;"]);
33
- const StyledControllerButtonGroup = styled.div.withConfig({
33
+ var StyledControllerButtonGroup = styled.div.withConfig({
34
34
  componentId: "sc-d9xhed-2"
35
35
  })(["display:flex;flex-direction:row;align-items:center;> ", ",> ", "{margin-right:0.5rem;&:last-child{margin-right:0;}}"], StyledControllerButtonWrap, StyledControllerButton);
36
-
37
- const ExerciseRunnerControllerButtonGroup = () => {
36
+ var ExerciseRunnerControllerButtonGroup = function ExerciseRunnerControllerButtonGroup() {
38
37
  var _a;
39
-
40
- const intl = useIntl();
41
- const {
42
- materialExerciseId,
43
- onCodeHelpRequest
44
- } = React.useContext(ExerciseContext);
45
- const {
46
- onSubmit,
47
- onSyncRequest,
48
- onCancel
49
- } = React.useContext(ExerciseRunnerContext);
50
- const runnerWebsocketStatus = useRecoilValue(exerciseRunnerWebSocketStatusQuery);
51
- const editorCursorSelectionValue = useRecoilValue(exerciseFileEditorCursorSelectionValueState);
52
- const exercise = useRecoilValue(exerciseState(materialExerciseId));
53
- const exerciseRunType = useRecoilValue(exerciseRunnerRunTypeState);
54
- const exerciseWithNoGrade = Boolean(exercise === null || exercise === void 0 ? void 0 : exercise.isNoSubmitGrade);
55
- const lecture = useRecoilValue(exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
56
- const isTestLecture = (lecture === null || lecture === void 0 ? void 0 : lecture.lectureType) === enums.LectureType.Test;
57
- const isTestLectureCompleted = (lecture === null || lecture === void 0 ? void 0 : lecture.testAdmissionStatus) === enums.TestAdmissionStatus.Completed; // runner states
58
-
59
- const isSubmitting = useRecoilValue(exerciseRunnerSubmittingState);
60
- const isRunning = useRecoilValue(exerciseRunnerRunningState);
61
- const isConnecting = runnerWebsocketStatus === EliceWebSocket.CONNECTING;
62
- const isNotReady = runnerWebsocketStatus !== EliceWebSocket.OPEN; // arduino
63
-
64
- const isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === enums.ExerciseEnvType.Arduino;
65
- const arduinoUploadProgress = useRecoilValue(exerciseArduinoUploadProgressState);
66
- const arduinoOpenedPortName = useRecoilValue(exerciseArduinoOpenedPortNameState); //
38
+ var intl = useIntl();
39
+ var _React$useContext = React.useContext(ExerciseContext),
40
+ materialExerciseId = _React$useContext.materialExerciseId,
41
+ onCodeHelpRequest = _React$useContext.onCodeHelpRequest;
42
+ var _React$useContext2 = React.useContext(ExerciseRunnerContext),
43
+ onSubmit = _React$useContext2.onSubmit,
44
+ onSyncRequest = _React$useContext2.onSyncRequest,
45
+ onCancel = _React$useContext2.onCancel;
46
+ var runnerWebsocketStatus = useRecoilValue(exerciseRunnerWebSocketStatusQuery);
47
+ var editorCursorSelectionValue = useRecoilValue(exerciseFileEditorCursorSelectionValueState);
48
+ var exercise = useRecoilValue(exerciseState(materialExerciseId));
49
+ var exerciseRunType = useRecoilValue(exerciseRunnerRunTypeState);
50
+ var exerciseWithNoGrade = Boolean(exercise === null || exercise === void 0 ? void 0 : exercise.isNoSubmitGrade);
51
+ var lecture = useRecoilValue(exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
52
+ var isTestLecture = (lecture === null || lecture === void 0 ? void 0 : lecture.lectureType) === enums.LectureType.Test;
53
+ var isTestLectureCompleted = (lecture === null || lecture === void 0 ? void 0 : lecture.testAdmissionStatus) === enums.TestAdmissionStatus.Completed;
54
+ // runner states
55
+ var isSubmitting = useRecoilValue(exerciseRunnerSubmittingState);
56
+ var isRunning = useRecoilValue(exerciseRunnerRunningState);
57
+ var isConnecting = runnerWebsocketStatus === EliceWebSocket.CONNECTING;
58
+ var isNotReady = runnerWebsocketStatus !== EliceWebSocket.OPEN;
59
+ // arduino
60
+ var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === enums.ExerciseEnvType.Arduino;
61
+ var arduinoUploadProgress = useRecoilValue(exerciseArduinoUploadProgressState);
62
+ var arduinoOpenedPortName = useRecoilValue(exerciseArduinoOpenedPortNameState);
63
+ // monaco editor apis
64
+ var exerciseMonacoEditorApis = useRecoilValue(exerciseMonacoEditorApisState);
65
+ //
67
66
  // ========= ui states =========
68
67
  //
69
68
  // submit run
70
-
71
- const isSubmitRunHidden = isRunning;
72
- const isSubmitRunArduinoDisabled = isArduinoExercise ? arduinoUploadProgress !== 'ready' && arduinoUploadProgress !== 'error' || !arduinoOpenedPortName : false;
73
- const isSubmitRunDisabled = isSubmitRunHidden || isSubmitRunArduinoDisabled || isNotReady || isConnecting || isSubmitting; // submit grade
74
-
75
- const isSubmitGradeHidden = isRunning;
76
- const isSubmitGradeDisabled = isSubmitGradeHidden || exerciseWithNoGrade || isTestLecture && isTestLectureCompleted || isNotReady || isConnecting || isSubmitting; // cancel
77
-
78
- const isCancelHidden = !isRunning;
79
- const isCancelDisabled = isCancelHidden || isNotReady || isConnecting; // sync request
80
-
81
- const isSyncRequestHidden = !isRunning || !((_a = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _a === void 0 ? void 0 : _a.httpPort);
82
- const isSyncRequestDisabled = isSyncRequestHidden || isNotReady || isConnecting; // code help
83
-
84
- const isCodeHelpHidden = isRunning || isTestLecture && !isTestLectureCompleted; //
69
+ var isSubmitRunHidden = isRunning;
70
+ var isSubmitRunArduinoDisabled = isArduinoExercise ? arduinoUploadProgress !== 'ready' && arduinoUploadProgress !== 'error' || !arduinoOpenedPortName : false;
71
+ var isSubmitRunDisabled = isSubmitRunHidden || isSubmitRunArduinoDisabled || isNotReady || isConnecting || isSubmitting;
72
+ // submit grade
73
+ var isSubmitGradeHidden = isRunning;
74
+ var isSubmitGradeDisabled = isSubmitGradeHidden || exerciseWithNoGrade || isTestLecture && isTestLectureCompleted || isNotReady || isConnecting || isSubmitting;
75
+ // cancel
76
+ var isCancelHidden = !isRunning;
77
+ var isCancelDisabled = isCancelHidden || isNotReady || isConnecting;
78
+ // sync request
79
+ var isSyncRequestHidden = !isRunning || !((_a = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _a === void 0 ? void 0 : _a.httpPort);
80
+ var isSyncRequestDisabled = isSyncRequestHidden || isNotReady || isConnecting;
81
+ //
85
82
  //
86
83
  //
87
-
88
84
  /**
89
85
  * Submit to run
90
86
  */
91
-
92
- const handleSubmitRun = () => {
87
+ var handleSubmitRun = function handleSubmitRun() {
93
88
  if (!isSubmitRunDisabled) {
94
89
  void onSubmit(enums.ExerciseRunType.Run);
95
90
  }
@@ -97,9 +92,7 @@ const ExerciseRunnerControllerButtonGroup = () => {
97
92
  /**
98
93
  * Submit to grade
99
94
  */
100
-
101
-
102
- const handleSubmitGrade = () => {
95
+ var handleSubmitGrade = function handleSubmitGrade() {
103
96
  if (!isSubmitGradeDisabled) {
104
97
  void onSubmit(enums.ExerciseRunType.Grade);
105
98
  }
@@ -107,9 +100,7 @@ const ExerciseRunnerControllerButtonGroup = () => {
107
100
  /**
108
101
  * Cancel
109
102
  */
110
-
111
-
112
- const handleCancel = () => {
103
+ var handleCancel = function handleCancel() {
113
104
  if (!isCancelDisabled) {
114
105
  onCancel();
115
106
  }
@@ -117,40 +108,36 @@ const ExerciseRunnerControllerButtonGroup = () => {
117
108
  /**
118
109
  * Sync request
119
110
  */
120
-
121
-
122
- const handleSyncRequest = () => {
111
+ var handleSyncRequest = function handleSyncRequest() {
123
112
  if (!isSyncRequestDisabled) {
124
113
  onSyncRequest();
125
114
  }
126
- }; //
115
+ };
116
+ //
127
117
  // keyboard shortcuts to control runner
128
118
  //
129
-
130
-
131
119
  useExericseShortcut('RUNNER_SUBMIT_RUN', handleSubmitRun);
132
120
  useExericseShortcut('RUNNER_SUBMIT_GRADE', handleSubmitGrade);
133
121
  useExericseShortcut('RUNNER_CANCEL', handleCancel);
134
- useExericseShortcut('RUNNER_SYNC_REQUEST', handleSyncRequest); //
122
+ useExericseShortcut('RUNNER_SYNC_REQUEST', handleSyncRequest);
123
+ //
135
124
  // handle save action emitted by file editor
136
125
  //
137
-
138
- React.useEffect(() => {
139
- const saveActionSub = exerciseFileEditorSaveAction$.subscribe(handleSyncRequest);
140
- return () => {
126
+ React.useEffect(function () {
127
+ var saveActionSub = exerciseFileEditorSaveAction$.subscribe(handleSyncRequest);
128
+ return function () {
141
129
  saveActionSub.unsubscribe();
142
130
  };
143
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
131
+ },
132
+ // eslint-disable-next-line react-hooks/exhaustive-deps
144
133
  [isSyncRequestDisabled]);
145
134
  /**
146
135
  * Submit to run button
147
136
  */
148
-
149
- const renderSubmitRunButton = () => {
137
+ var renderSubmitRunButton = function renderSubmitRunButton() {
150
138
  if (isSubmitRunHidden) {
151
139
  return null;
152
140
  }
153
-
154
141
  return React.createElement(StyledControllerButton, {
155
142
  size: "tiny",
156
143
  loading: isConnecting || isSubmitting && exerciseRunType === enums.ExerciseRunType.Run,
@@ -165,13 +152,10 @@ const ExerciseRunnerControllerButtonGroup = () => {
165
152
  /**
166
153
  * Submit to grade button
167
154
  */
168
-
169
-
170
- const renderSubmitGradeButton = () => {
155
+ var renderSubmitGradeButton = function renderSubmitGradeButton() {
171
156
  if (isSubmitGradeHidden) {
172
157
  return null;
173
158
  }
174
-
175
159
  return React.createElement(Tooltip, {
176
160
  title: exerciseWithNoGrade ? intl.formatMessage({
177
161
  id: 'exerciseRunner.controller.buttonGroup.button.submit.tooltip.noSubmit'
@@ -191,13 +175,10 @@ const ExerciseRunnerControllerButtonGroup = () => {
191
175
  /**
192
176
  * Cancel button
193
177
  */
194
-
195
-
196
- const renderCancelButton = () => {
178
+ var renderCancelButton = function renderCancelButton() {
197
179
  if (isCancelHidden) {
198
180
  return null;
199
181
  }
200
-
201
182
  return React.createElement(StyledControllerButton, {
202
183
  size: "tiny",
203
184
  role: "danger",
@@ -211,13 +192,10 @@ const ExerciseRunnerControllerButtonGroup = () => {
211
192
  /**
212
193
  * Sync request button
213
194
  */
214
-
215
-
216
- const renderSyncRequestButton = () => {
195
+ var renderSyncRequestButton = function renderSyncRequestButton() {
217
196
  if (isSyncRequestHidden) {
218
197
  return null;
219
198
  }
220
-
221
199
  return React.createElement(StyledControllerButton, {
222
200
  size: "tiny",
223
201
  role: "secondary",
@@ -231,21 +209,25 @@ const ExerciseRunnerControllerButtonGroup = () => {
231
209
  /**
232
210
  * Code help button
233
211
  */
234
-
235
-
236
- const renderCodeHelpRequestButton = () => {
237
- if (isCodeHelpHidden || !editorCursorSelectionValue || typeof onCodeHelpRequest !== 'function') {
212
+ var renderCodeHelpRequestButton = function renderCodeHelpRequestButton() {
213
+ if (isRunning || !editorCursorSelectionValue || typeof onCodeHelpRequest !== 'function') {
238
214
  return null;
239
215
  }
240
-
241
216
  return React.createElement(ExerciseRunnerControllerCodeHelpRequestButton, {
242
- onClick: () => onCodeHelpRequest(editorCursorSelectionValue)
217
+ onClick: function onClick() {
218
+ var _a, _b, _c;
219
+ onCodeHelpRequest({
220
+ code: editorCursorSelectionValue,
221
+ readme: (_a = exercise === null || exercise === void 0 ? void 0 : exercise.description) !== null && _a !== void 0 ? _a : '',
222
+ instruction: (_b = exercise === null || exercise === void 0 ? void 0 : exercise.instructionContent) !== null && _b !== void 0 ? _b : '',
223
+ openFileContent: (_c = exerciseMonacoEditorApis === null || exerciseMonacoEditorApis === void 0 ? void 0 : exerciseMonacoEditorApis.getValue()) !== null && _c !== void 0 ? _c : ''
224
+ });
225
+ }
243
226
  });
244
- }; //
227
+ };
228
+ //
245
229
  //
246
230
  //
247
-
248
-
249
231
  return React.createElement(StyledControllerButtonGroup, null, renderSubmitRunButton(), renderSubmitGradeButton(), renderCancelButton(), renderSyncRequestButton(), renderCodeHelpRequestButton());
250
232
  };
251
233
 
@@ -1,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import React from 'react';
2
3
  import { FormattedMessage } from 'react-intl';
3
4
  import { getGlobalOrganizationGet } from '@elice/api-client';
@@ -6,50 +7,48 @@ import { eilMathsignMultiplyBasic, eilArrowRightwardsBasic } from '@elice/icons'
6
7
  import { useMaterialConfig } from '@elice/material-shared-utils';
7
8
  import styled from 'styled-components';
8
9
 
9
- const ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_KEY = 'elice-material-exercise-aibot-tooltip-hidden';
10
- const ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_VALUE = 'true';
11
- const StyledControllerButton = styled(Button).withConfig({
10
+ var ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_KEY = 'elice-material-exercise-aibot-tooltip-hidden';
11
+ var ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_VALUE = 'true';
12
+ var StyledControllerButton = styled(Button).withConfig({
12
13
  componentId: "sc-10grd0k-0"
13
14
  })(["position:relative;transition:none;"]);
14
- const ExerciseRunnerControllerCodeHelpRequestButton = React.forwardRef((props, ref) => {
15
- const {
16
- orgNameShort
17
- } = useMaterialConfig();
18
- const [isTooltipHidden, setIsTooltipHidden] = React.useState(false); //
15
+ var ExerciseRunnerControllerCodeHelpRequestButton = React.forwardRef(function (props, ref) {
16
+ var _useMaterialConfig = useMaterialConfig(),
17
+ orgNameShort = _useMaterialConfig.orgNameShort;
18
+ var _React$useState = React.useState(false),
19
+ _React$useState2 = _slicedToArray(_React$useState, 2),
20
+ isTooltipHidden = _React$useState2[0],
21
+ setIsTooltipHidden = _React$useState2[1];
22
+ //
19
23
  //
20
24
  // Get ai info from organization and check all resovle below conditions.
21
25
  // - isEnable is true.
22
26
  // - quotaPerDay is upper than zero.
23
27
  // - tooltip hidden is false.
24
-
25
- React.useEffect(() => {
26
- const isTooltipHidden = sessionStorage.getItem(ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_KEY) === ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_VALUE;
27
-
28
+ React.useEffect(function () {
29
+ var isTooltipHidden = sessionStorage.getItem(ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_KEY) === ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_VALUE;
28
30
  if (isTooltipHidden) {
29
31
  setIsTooltipHidden(true);
30
32
  return;
31
33
  }
32
-
33
34
  getGlobalOrganizationGet({
34
35
  organizationNameShort: orgNameShort
35
- }).then(res => {
36
- const {
37
- aibotInfo
38
- } = res.organization;
39
- const isHidden = !aibotInfo.isEnabled || aibotInfo.quotaPerDay <= 0;
36
+ }).then(function (res) {
37
+ var aibotInfo = res.organization.aibotInfo;
38
+ var isHidden = !aibotInfo.isEnabled || aibotInfo.quotaPerDay <= 0;
40
39
  setIsTooltipHidden(isHidden);
41
- }).catch(() => {
40
+ }).catch(function () {
42
41
  setIsTooltipHidden(true);
43
- }); // eslint-disable-next-line react-hooks/exhaustive-deps
44
- }, []); //
42
+ });
43
+ // eslint-disable-next-line react-hooks/exhaustive-deps
44
+ }, []);
45
+ //
45
46
  //
46
47
  //
47
-
48
48
  /**
49
49
  *
50
50
  */
51
-
52
- const renderAiBotTooltipTitle = () => {
51
+ var renderAiBotTooltipTitle = function renderAiBotTooltipTitle() {
53
52
  return React.createElement(Flex, {
54
53
  align: "center"
55
54
  }, React.createElement(BadgeNext, {
@@ -74,13 +73,12 @@ const ExerciseRunnerControllerCodeHelpRequestButton = React.forwardRef((props, r
74
73
  hasPadding: false,
75
74
  border: false,
76
75
  icon: eilMathsignMultiplyBasic,
77
- onClick: () => {
76
+ onClick: function onClick() {
78
77
  sessionStorage.setItem(ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_KEY, ELICE_MATERIAL_EXERCISE_AI_BOT_TOOLTIP_VALUE);
79
78
  setIsTooltipHidden(true);
80
79
  }
81
80
  }));
82
81
  };
83
-
84
82
  return React.createElement(Tooltip, {
85
83
  placement: "top",
86
84
  dark: false,