@elice/material-exercise 1.230328.0 → 1.230418.1

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