@elice/material-exercise 1.231227.0 → 1.231228.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 (395) hide show
  1. package/cjs/components/material-exercise/MaterialExercise.i18n.js +2 -4
  2. package/cjs/components/material-exercise/MaterialExercise.js +54 -59
  3. package/cjs/components/material-exercise/MaterialExercise.styled.js +14 -20
  4. package/cjs/components/material-exercise/MaterialExerciseMobile.js +8 -15
  5. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +14 -18
  6. package/cjs/components/material-exercise/context/ExerciseProvider.js +58 -66
  7. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +19 -24
  8. package/cjs/components/material-exercise/context/context.js +1 -7
  9. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +1 -1
  10. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +1 -1
  11. package/cjs/components/material-exercise/context/recoil.js +293 -544
  12. package/cjs/components/material-exercise/context/recoilTypes.js +0 -2
  13. package/cjs/components/material-exercise/context/subjects.js +3 -5
  14. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +60 -67
  15. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -14
  16. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +1 -1
  17. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +1 -1
  18. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +17 -21
  19. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +133 -203
  20. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -12
  21. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +24 -40
  22. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +38 -52
  23. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +5 -9
  24. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +1 -1
  25. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +1 -1
  26. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +189 -328
  27. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +5 -9
  28. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +1 -1
  29. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +1 -1
  30. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +14 -17
  31. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +11 -15
  32. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +7 -11
  33. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +44 -65
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +32 -61
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +19 -35
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +48 -62
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -18
  38. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
  39. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
  40. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +21 -32
  41. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +4 -8
  42. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +23 -27
  43. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +7 -17
  44. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +1 -1
  45. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +1 -1
  46. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +23 -32
  47. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +7 -15
  48. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +79 -86
  49. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +1 -1
  50. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +1 -1
  51. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +11 -22
  52. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -20
  53. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +180 -288
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +82 -116
  55. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -4
  56. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +1 -1
  57. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +1 -1
  58. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +125 -181
  59. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -7
  60. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -17
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +43 -58
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +15 -27
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +65 -68
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +23 -32
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +58 -92
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +3 -7
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +11 -16
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +18 -29
  69. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
  70. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
  71. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +162 -282
  72. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -14
  73. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -54
  74. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +1 -1
  75. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +1 -1
  76. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +15 -21
  77. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +14 -19
  78. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +16 -21
  79. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +5 -10
  80. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +18 -23
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +10 -21
  82. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -8
  83. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -7
  84. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -11
  85. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -15
  86. package/cjs/components/shared/file-icon/FileIcon.js +17 -23
  87. package/cjs/components/shared/file-tabs/FileTab.js +30 -36
  88. package/cjs/components/shared/file-tabs/FileTab.styled.js +15 -25
  89. package/cjs/components/shared/file-tabs/FileTabs.js +38 -63
  90. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -8
  91. package/cjs/components/shared/file-tabs/util.js +14 -29
  92. package/cjs/components/shared/file-tree/FileTree.js +12 -17
  93. package/cjs/components/shared/file-tree/FileTreeConfig.js +22 -25
  94. package/cjs/components/shared/file-tree/FileTreeList.js +37 -39
  95. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +61 -75
  96. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -31
  97. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +64 -72
  98. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -12
  99. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +63 -74
  100. package/cjs/components/shared/file-tree/FileTreeListItems.js +136 -151
  101. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -8
  102. package/cjs/components/shared/file-tree/FileTreeToolbar.js +31 -32
  103. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -7
  104. package/cjs/components/shared/file-tree/context/FileTreeContext.js +76 -97
  105. package/cjs/components/shared/file-tree/locales/en.json.js +1 -1
  106. package/cjs/components/shared/file-tree/locales/ko.json.js +1 -1
  107. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -26
  108. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +146 -195
  109. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -2
  110. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -3
  111. package/cjs/components/shared/file-tree/utils/fileTreePath.js +6 -7
  112. package/cjs/components/shared/file-viewer/FileViewer.js +37 -61
  113. package/cjs/components/shared/file-viewer/FileViewerCsv.js +108 -172
  114. package/cjs/components/shared/file-viewer/FileViewerImage.js +8 -12
  115. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +10 -23
  116. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +33 -42
  117. package/cjs/components/shared/file-viewer/FileViewerText.js +12 -24
  118. package/cjs/components/shared/file-viewer/locales/en.json.js +1 -1
  119. package/cjs/components/shared/file-viewer/locales/ko.json.js +1 -1
  120. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +1 -1
  121. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +1 -1
  122. package/cjs/components/shared/material-modal/MaterialModal.js +11 -14
  123. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -11
  124. package/cjs/components/shared/monaco-editor/MonacoEditor.js +74 -99
  125. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +6 -12
  126. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +36 -50
  127. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +91 -110
  128. package/cjs/components/shared/monaco-editor/constants/grammars/JSON.tmLanguage.json.js +1 -1
  129. package/cjs/components/shared/monaco-editor/constants/grammars/MagicPython.tmLanguage.json.js +1 -1
  130. package/cjs/components/shared/monaco-editor/constants/grammars/TypeScriptReact.tmLanguage.json.js +1 -1
  131. package/cjs/components/shared/monaco-editor/constants/grammars/asp-vb-net.tmlanguage.json.js +1 -1
  132. package/cjs/components/shared/monaco-editor/constants/grammars/c.tmLanguage.json.js +1 -1
  133. package/cjs/components/shared/monaco-editor/constants/grammars/cpp.tmLanguage.json.js +1 -1
  134. package/cjs/components/shared/monaco-editor/constants/grammars/csharp.tmLanguage.json.js +1 -1
  135. package/cjs/components/shared/monaco-editor/constants/grammars/css.tmLanguage.json.js +1 -1
  136. package/cjs/components/shared/monaco-editor/constants/grammars/dart.tmLanguage.json.js +1 -1
  137. package/cjs/components/shared/monaco-editor/constants/grammars/fsharp.tmLanguage.json.js +1 -1
  138. package/cjs/components/shared/monaco-editor/constants/grammars/go.tmLanguage.json.js +1 -1
  139. package/cjs/components/shared/monaco-editor/constants/grammars/html.tmLanguage.json.js +1 -1
  140. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +28 -84
  141. package/cjs/components/shared/monaco-editor/constants/grammars/java.tmLanguage.json.js +1 -1
  142. package/cjs/components/shared/monaco-editor/constants/grammars/lua.tmLanguage.json.js +1 -1
  143. package/cjs/components/shared/monaco-editor/constants/grammars/objective-c.tmLanguage.json.js +1 -1
  144. package/cjs/components/shared/monaco-editor/constants/grammars/php.tmLanguage.json.js +1 -1
  145. package/cjs/components/shared/monaco-editor/constants/grammars/r.tmLanguage.json.js +1 -1
  146. package/cjs/components/shared/monaco-editor/constants/grammars/ruby.tmLanguage.json.js +1 -1
  147. package/cjs/components/shared/monaco-editor/constants/grammars/rust.tmLanguage.json.js +1 -1
  148. package/cjs/components/shared/monaco-editor/constants/grammars/scss.tmLanguage.json.js +1 -1
  149. package/cjs/components/shared/monaco-editor/constants/grammars/sql.tmLanguage.json.js +1 -1
  150. package/cjs/components/shared/monaco-editor/constants/grammars/swift.tmLanguage.json.js +1 -1
  151. package/cjs/components/shared/monaco-editor/constants/grammars/xml.tmLanguage.json.js +1 -1
  152. package/cjs/components/shared/monaco-editor/constants/grammars/yaml.tmLanguage.json.js +1 -1
  153. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -7
  154. package/cjs/components/shared/monaco-editor/constants/themes/abyss.json.js +1 -1
  155. package/cjs/components/shared/monaco-editor/constants/themes/elice.json.js +1 -1
  156. package/cjs/components/shared/monaco-editor/constants/themes/index.js +17 -51
  157. package/cjs/components/shared/monaco-editor/constants/themes/kimbie-dark.json.js +1 -1
  158. package/cjs/components/shared/monaco-editor/constants/themes/monokai.json.js +1 -1
  159. package/cjs/components/shared/monaco-editor/constants/themes/quietlight.json.js +1 -1
  160. package/cjs/components/shared/monaco-editor/constants/themes/red.json.js +1 -1
  161. package/cjs/components/shared/monaco-editor/constants/themes/solarized-dark.json.js +1 -1
  162. package/cjs/components/shared/monaco-editor/constants/themes/solarized-light.json.js +1 -1
  163. package/cjs/components/shared/monaco-editor/constants/themes/tomorrow-night-blue.json.js +1 -1
  164. package/cjs/components/shared/monaco-editor/constants/themes/vs-dark-plus.json.js +1 -1
  165. package/cjs/components/shared/monaco-editor/constants/themes/vs-dark.json.js +1 -1
  166. package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-black.json.js +1 -1
  167. package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-light.json.js +1 -1
  168. package/cjs/components/shared/monaco-editor/constants/themes/vs-light-plus.json.js +1 -1
  169. package/cjs/components/shared/monaco-editor/constants/themes/vs-light.json.js +1 -1
  170. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  171. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -17
  172. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -11
  173. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -36
  174. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -11
  175. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -8
  176. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +11 -52
  177. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +7 -8
  178. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +11 -52
  179. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +5 -6
  180. package/cjs/components/shared/monaco-editor/editor-languages/index.js +4 -4
  181. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -3
  182. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +1 -1
  183. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +1 -1
  184. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +1 -1
  185. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +11 -56
  186. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +17 -18
  187. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -13
  188. package/cjs/components/shared/monaco-editor/locales/en.json.js +1 -1
  189. package/cjs/components/shared/monaco-editor/locales/ko.json.js +1 -1
  190. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -12
  191. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -2
  192. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -14
  193. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +25 -69
  194. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -27
  195. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +38 -73
  196. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +8 -11
  197. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +4 -8
  198. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -4
  199. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +8 -46
  200. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +14 -26
  201. package/cjs/components/shared/monaco-editor/utils/theme/index.js +3 -24
  202. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -79
  203. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -84
  204. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -122
  205. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +133 -158
  206. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -106
  207. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -4
  208. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -3
  209. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -4
  210. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +158 -179
  211. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -5
  212. package/cjs/components/shared/no-vnc/NoVnc.js +57 -86
  213. package/cjs/components/shared/no-vnc/NoVncLazy.js +5 -11
  214. package/cjs/components/shared/preview-container/PreviewContainer.js +11 -15
  215. package/cjs/components/shared/web-browser/WebBrowser.js +37 -53
  216. package/cjs/components/shared/xterm/Xterm.js +58 -81
  217. package/cjs/components/shared/xterm/XtermLazy.js +5 -11
  218. package/cjs/components/shared/xterm/locales/en.json.js +1 -1
  219. package/cjs/components/shared/xterm/locales/ko.json.js +1 -1
  220. package/cjs/components/shared/xterm/utils/index.js +0 -2
  221. package/cjs/constants/arduino.js +10 -12
  222. package/cjs/constants/shortcutKeyMap.js +2 -4
  223. package/cjs/constants/stylesheets.js +5 -9
  224. package/cjs/hooks/useArduino.js +141 -284
  225. package/cjs/hooks/useExerciseFile.js +22 -26
  226. package/cjs/hooks/useExericseShortcut.js +4 -8
  227. package/cjs/hooks/useMaterialExerciseFileUrl.js +33 -57
  228. package/cjs/hooks/useRunnerRoomWebSocket.js +27 -53
  229. package/cjs/hooks/useStdioTextConcator.js +10 -22
  230. package/cjs/hooks/useStdioWebSocket.js +28 -34
  231. package/cjs/hooks/useUsercodeEditWebSocket.js +158 -240
  232. package/cjs/hooks/useUsercodeHistory.js +63 -117
  233. package/cjs/index.js +4 -6
  234. package/cjs/utils/arduino.js +11 -25
  235. package/cjs/utils/exerciseFile.js +10 -10
  236. package/cjs/utils/runner.js +15 -31
  237. package/es/components/material-exercise/MaterialExercise.i18n.js +2 -2
  238. package/es/components/material-exercise/MaterialExercise.js +34 -35
  239. package/es/components/material-exercise/MaterialExercise.styled.js +14 -14
  240. package/es/components/material-exercise/MaterialExerciseMobile.js +6 -9
  241. package/es/components/material-exercise/context/ExerciseIntlProvider.js +10 -8
  242. package/es/components/material-exercise/context/ExerciseProvider.js +52 -55
  243. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +10 -10
  244. package/es/components/material-exercise/context/context.js +1 -1
  245. package/es/components/material-exercise/context/recoil.js +290 -535
  246. package/es/components/material-exercise/context/subjects.js +3 -3
  247. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +51 -53
  248. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  249. package/es/components/material-exercise/exercise-file/ExerciseFile.js +9 -8
  250. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +127 -193
  251. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -4
  252. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +20 -31
  253. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +35 -44
  254. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  255. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +181 -315
  256. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  257. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +11 -10
  258. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -6
  259. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -3
  260. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +25 -42
  261. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +26 -51
  262. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +11 -23
  263. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +21 -31
  264. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  265. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +19 -26
  266. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  267. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +15 -14
  268. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +5 -11
  269. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +11 -15
  270. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +5 -9
  271. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +78 -80
  272. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +6 -13
  273. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -14
  274. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +134 -236
  275. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +65 -94
  276. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
  277. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +116 -167
  278. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  279. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +8 -7
  280. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +17 -27
  281. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +11 -18
  282. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +52 -50
  283. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +10 -14
  284. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +46 -75
  285. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -2
  286. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +4 -4
  287. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +15 -21
  288. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +138 -253
  289. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  290. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +29 -37
  291. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +12 -13
  292. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -2
  293. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -12
  294. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -2
  295. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -14
  296. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +9 -15
  297. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +3 -2
  298. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  299. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +6 -5
  300. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -9
  301. package/es/components/shared/file-icon/FileIcon.js +15 -17
  302. package/es/components/shared/file-tabs/FileTab.js +22 -24
  303. package/es/components/shared/file-tabs/FileTab.styled.js +15 -19
  304. package/es/components/shared/file-tabs/FileTabs.js +35 -55
  305. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  306. package/es/components/shared/file-tabs/util.js +14 -27
  307. package/es/components/shared/file-tree/FileTree.js +3 -3
  308. package/es/components/shared/file-tree/FileTreeConfig.js +18 -15
  309. package/es/components/shared/file-tree/FileTreeList.js +33 -29
  310. package/es/components/shared/file-tree/FileTreeListItemContent.js +45 -55
  311. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -25
  312. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +60 -64
  313. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  314. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +39 -46
  315. package/es/components/shared/file-tree/FileTreeListItems.js +134 -145
  316. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  317. package/es/components/shared/file-tree/FileTreeToolbar.js +25 -22
  318. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  319. package/es/components/shared/file-tree/context/FileTreeContext.js +74 -89
  320. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -20
  321. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +146 -193
  322. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  323. package/es/components/shared/file-tree/utils/fileTreePath.js +6 -5
  324. package/es/components/shared/file-viewer/FileViewer.js +21 -38
  325. package/es/components/shared/file-viewer/FileViewerCsv.js +70 -129
  326. package/es/components/shared/file-viewer/FileViewerImage.js +4 -3
  327. package/es/components/shared/file-viewer/FileViewerIpynb.js +7 -14
  328. package/es/components/shared/file-viewer/FileViewerNonViewable.js +15 -18
  329. package/es/components/shared/file-viewer/FileViewerText.js +9 -17
  330. package/es/components/shared/material-modal/MaterialModal.js +8 -7
  331. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  332. package/es/components/shared/monaco-editor/MonacoEditor.js +67 -87
  333. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +2 -4
  334. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +31 -41
  335. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +52 -66
  336. package/es/components/shared/monaco-editor/constants/grammars/index.js +28 -82
  337. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
  338. package/es/components/shared/monaco-editor/constants/themes/index.js +17 -49
  339. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -11
  340. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -15
  341. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  342. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -34
  343. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -9
  344. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
  345. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +10 -33
  346. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +10 -33
  347. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  348. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +10 -37
  349. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +3 -3
  350. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -11
  351. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -10
  352. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -12
  353. package/es/components/shared/monaco-editor/utils/grammar/index.js +24 -68
  354. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -25
  355. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +35 -67
  356. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +5 -5
  357. package/es/components/shared/monaco-editor/utils/monacoPreference.js +4 -6
  358. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -2
  359. package/es/components/shared/monaco-editor/utils/prettier/index.js +7 -27
  360. package/es/components/shared/monaco-editor/utils/theme/convert.js +13 -19
  361. package/es/components/shared/monaco-editor/utils/theme/index.js +3 -22
  362. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -77
  363. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -82
  364. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -120
  365. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +130 -152
  366. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -104
  367. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  368. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -1
  369. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
  370. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +157 -172
  371. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
  372. package/es/components/shared/no-vnc/NoVnc.js +42 -59
  373. package/es/components/shared/no-vnc/NoVncLazy.js +2 -4
  374. package/es/components/shared/preview-container/PreviewContainer.js +8 -7
  375. package/es/components/shared/web-browser/WebBrowser.js +29 -40
  376. package/es/components/shared/xterm/Xterm.js +51 -69
  377. package/es/components/shared/xterm/XtermLazy.js +2 -4
  378. package/es/constants/arduino.js +10 -10
  379. package/es/constants/shortcutKeyMap.js +1 -3
  380. package/es/constants/stylesheets.js +5 -7
  381. package/es/hooks/useArduino.js +141 -278
  382. package/es/hooks/useExerciseFile.js +22 -24
  383. package/es/hooks/useExericseShortcut.js +4 -6
  384. package/es/hooks/useMaterialExerciseFileUrl.js +34 -52
  385. package/es/hooks/useRunnerRoomWebSocket.js +27 -51
  386. package/es/hooks/useStdioTextConcator.js +10 -16
  387. package/es/hooks/useStdioWebSocket.js +28 -32
  388. package/es/hooks/useUsercodeEditWebSocket.js +157 -232
  389. package/es/hooks/useUsercodeHistory.js +63 -115
  390. package/es/utils/arduino.js +11 -23
  391. package/es/utils/exerciseFile.js +10 -8
  392. package/es/utils/runner.js +15 -29
  393. package/package.json +11 -7
  394. package/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -521
  395. package/es/_virtual/_rollupPluginBabelHelpers.js +0 -499
@@ -4,4 +4,4 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var phrasesKo = {"exerciseFileTree.errorCode.insufficientPermission":"[Error] 권한이 없습니다.","exerciseFileTree.errorCode.invalidParameter":"[Error] 파라미터가 올바르지 않습니다.","exerciseFileTree.errorCode.invalidParameterCombination":"[Error] 파라미터 조합이 올바르지 않습니다.","exerciseFileTree.errorCode.notFoundCurrentFilename":"[Error] 파일을 찾을 수 없습니다.","exerciseFileTree.errorCode.notFoundExerciseRoom":"[Error] 실습방을 찾을 수 없습니다.","exerciseFileTree.errorCode.notFoundPath":"[Error] 해당 경로를 찾을 수 없습니다.","exerciseFileTree.errorCode.overwriteExistingOne":"[Error] 덮어쓰기가 불가능합니다.","exerciseFileTree.errorCode.resultingFilenameUnderCurrentFilename":"[Error] 같은 경로에 디렉토리를 옮길 수 없습니다.","exerciseFileTree.errorCode.subFileOrPathExist":"[Error] 디렉토리를 삭제하지 못했습니다. 디렉토리가 비어있어야 삭제할 수 있습니다.","exerciseFileTree.errorCode.unknown":"[Error] 알수 없는 에러가 발생하였습니다.","exerciseFileTree.errorCode.usableSizeExceed":"[Error] 허용된 용량을 초과하였습니다.","exerciseFileTree.fetchRoom.failure":"실습을 가져오는데 실패했습니다."};
6
6
 
7
- exports["default"] = phrasesKo;
7
+ exports.default = phrasesKo;
@@ -17,29 +17,26 @@ require('../context/recoilTypes.js');
17
17
  require('../context/subjects.js');
18
18
  require('../context/ExerciseProvider.js');
19
19
 
20
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
-
22
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
23
-
24
- var ExerciseFileViewer = function ExerciseFileViewer() {
25
- var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
26
- materialExerciseId = _React$useContext.materialExerciseId,
27
- exerciseRoomId = _React$useContext.exerciseRoomId,
28
- locale = _React$useContext.locale;
29
- var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
30
- var activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
31
- var activeFileUrl = useMaterialExerciseFileUrl.useMaterialExerciseFileUrl({
20
+ const ExerciseFileViewer = () => {
21
+ const {
22
+ materialExerciseId,
23
+ exerciseRoomId,
24
+ locale
25
+ } = React.useContext(context.ExerciseContext);
26
+ const exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
27
+ const activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
28
+ const activeFileUrl = useMaterialExerciseFileUrl.useMaterialExerciseFileUrl({
32
29
  filename: activeFilename,
33
- exercise: exercise,
34
- exerciseRoomId: exerciseRoomId
30
+ exercise,
31
+ exerciseRoomId
35
32
  });
36
33
  //
37
34
  //
38
35
  //
39
36
  if (!activeFilename) {
40
- return React__default["default"].createElement(ExerciseFileShimmer["default"], null);
37
+ return React.createElement(ExerciseFileShimmer.default, null);
41
38
  }
42
- return React__default["default"].createElement(FileViewer["default"], {
39
+ return React.createElement(FileViewer.default, {
43
40
  key: activeFileUrl,
44
41
  filename: activeFilename,
45
42
  fileurl: activeFileUrl,
@@ -47,4 +44,4 @@ var ExerciseFileViewer = function ExerciseFileViewer() {
47
44
  });
48
45
  };
49
46
 
50
- exports["default"] = ExerciseFileViewer;
47
+ exports.default = ExerciseFileViewer;
@@ -21,27 +21,23 @@ var ExerciseMenuDropdown = require('./ExerciseMenuDropdown.js');
21
21
  var ExerciseMenuReset = require('./ExerciseMenuReset.js');
22
22
  var ExerciseMenuStdioFileBrowser = require('./ExerciseMenuStdioFileBrowser.js');
23
23
 
24
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
25
-
26
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
27
- var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
28
-
29
- var StyledExerciseMenuWrapper = styled__default["default"].div.withConfig({
24
+ const StyledExerciseMenuWrapper = styled.div.withConfig({
30
25
  componentId: "sc-1gf6m87-0"
31
26
  })(["display:flex;justify-content:center;align-items:center;padding:0 0.5rem 0 1rem;height:2.25rem;gap:0.5rem;background-color:", ";"], designTokens.base.color.navy8);
32
- var ExerciseMenu = function ExerciseMenu() {
33
- var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
34
- materialExerciseId = _React$useContext.materialExerciseId;
35
- var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
36
- var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
27
+ const ExerciseMenu = () => {
28
+ const {
29
+ materialExerciseId
30
+ } = React.useContext(context.ExerciseContext);
31
+ const exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
32
+ const isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
37
33
  //
38
34
  //
39
35
  //
40
- return React__default["default"].createElement(StyledExerciseMenuWrapper, null, isArduinoExercise ? React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(ExerciseMenuArduinoAgentModalButton["default"], null), React__default["default"].createElement(ExerciseMenuArduinoSettings["default"], null)) : React__default["default"].createElement(ExerciseMenuStdioFileBrowser["default"], null), React__default["default"].createElement(ExerciseMenuReset["default"], null), React__default["default"].createElement(ExerciseMenuDropdown["default"], null));
36
+ return React.createElement(StyledExerciseMenuWrapper, null, isArduinoExercise ? React.createElement(React.Fragment, null, React.createElement(ExerciseMenuArduinoAgentModalButton.default, null), React.createElement(ExerciseMenuArduinoSettings.default, null)) : React.createElement(ExerciseMenuStdioFileBrowser.default, null), React.createElement(ExerciseMenuReset.default, null), React.createElement(ExerciseMenuDropdown.default, null));
41
37
  };
42
38
  var ExerciseMenu$1 = ExerciseIntlProvider.withExerciseIntlProvider(ExerciseMenu, {
43
- en: en["default"],
44
- ko: ko["default"]
39
+ en: en.default,
40
+ ko: ko.default
45
41
  });
46
42
 
47
- exports["default"] = ExerciseMenu$1;
43
+ exports.default = ExerciseMenu$1;
@@ -13,27 +13,23 @@ require('../context/recoilTypes.js');
13
13
  require('../context/subjects.js');
14
14
  require('../context/ExerciseProvider.js');
15
15
 
16
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
-
18
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
19
-
20
- var ExerciseMenuArduinoAgentModalButton = function ExerciseMenuArduinoAgentModalButton() {
21
- var setOpen = recoil.useSetRecoilState(recoil$1.exerciseArduinoAgentModalState);
22
- var handleClick = function handleClick() {
16
+ const ExerciseMenuArduinoAgentModalButton = () => {
17
+ const setOpen = recoil.useSetRecoilState(recoil$1.exerciseArduinoAgentModalState);
18
+ const handleClick = () => {
23
19
  setOpen(true);
24
20
  };
25
- return React__default["default"].createElement(blocks.Button, {
21
+ return React.createElement(blocks.Button, {
26
22
  size: "micro",
27
23
  role: "warning",
28
- icon: React__default["default"].createElement(blocks.Icon, {
24
+ icon: React.createElement(blocks.Icon, {
29
25
  icon: icons.eilStatusDanger
30
26
  }),
31
27
  iconAlign: "left",
32
28
  border: false,
33
29
  onClick: handleClick
34
- }, React__default["default"].createElement(reactIntl.FormattedMessage, {
30
+ }, React.createElement(reactIntl.FormattedMessage, {
35
31
  id: "exerciseMenu.arduino.agent.button"
36
32
  }));
37
33
  };
38
34
 
39
- exports["default"] = ExerciseMenuArduinoAgentModalButton;
35
+ exports.default = ExerciseMenuArduinoAgentModalButton;
@@ -2,7 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
6
5
  var React = require('react');
7
6
  var reactIntl = require('react-intl');
8
7
  var blocks = require('@elice/blocks');
@@ -18,143 +17,123 @@ require('../context/subjects.js');
18
17
  require('../context/ExerciseProvider.js');
19
18
  var ExerciseMenuStdioFileBrowser_styled = require('./ExerciseMenuStdioFileBrowser.styled.js');
20
19
 
21
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
-
23
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
-
25
- var ExerciseMenuArduinoSettings = function ExerciseMenuArduinoSettings() {
26
- var intl = reactIntl.useIntl();
27
- var _React$useState = React__default["default"].useState(false),
28
- _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
29
- open = _React$useState2[0],
30
- setOpen = _React$useState2[1];
31
- var anchorRef = React__default["default"].useRef(null);
32
- var ports = recoil.useRecoilValue(recoil$1.exerciseArduinoPortsState);
33
- var _useRecoilState = recoil.useRecoilState(recoil$1.exerciseArduinoPreferenceState),
34
- _useRecoilState2 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState, 2),
35
- preference = _useRecoilState2[0],
36
- setPreference = _useRecoilState2[1];
37
- var openedPort = recoil.useRecoilValue(recoil$1.exerciseArduinoOpenedPortNameState);
38
- var onSelectPort = recoil.useRecoilValue(recoil$1.exerciseArduinoOnSelectPortState);
20
+ const ExerciseMenuArduinoSettings = () => {
21
+ const intl = reactIntl.useIntl();
22
+ const [open, setOpen] = React.useState(false);
23
+ const anchorRef = React.useRef(null);
24
+ const ports = recoil.useRecoilValue(recoil$1.exerciseArduinoPortsState);
25
+ const [preference, setPreference] = recoil.useRecoilState(recoil$1.exerciseArduinoPreferenceState);
26
+ const openedPort = recoil.useRecoilValue(recoil$1.exerciseArduinoOpenedPortNameState);
27
+ const onSelectPort = recoil.useRecoilValue(recoil$1.exerciseArduinoOnSelectPortState);
39
28
  /**
40
29
  * List of stdio files.
41
30
  */
42
- var renderStdioFileList = function renderStdioFileList() {
43
- return React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledFilePopoverBodyList, null, React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledPreferenceBodyItem, null, React__default["default"].createElement(blocks.Text, {
31
+ const renderStdioFileList = () => {
32
+ return React.createElement(ExerciseMenuStdioFileBrowser_styled.StyledFilePopoverBodyList, null, React.createElement(ExerciseMenuStdioFileBrowser_styled.StyledPreferenceBodyItem, null, React.createElement(blocks.Text, {
44
33
  role: "gray3",
45
34
  block: true,
46
35
  size: "small"
47
- }, React__default["default"].createElement(reactIntl.FormattedMessage, {
36
+ }, React.createElement(reactIntl.FormattedMessage, {
48
37
  id: "exerciseMenu.arduino.transferSpeed"
49
- })), React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledSelect, {
38
+ })), React.createElement(ExerciseMenuStdioFileBrowser_styled.StyledSelect, {
50
39
  value: preference.baudRate,
51
40
  size: "small",
52
41
  width: "xsmall",
53
- onChange: function onChange(value) {
42
+ onChange: value => {
54
43
  setPreference(Object.assign(Object.assign({}, preference), {
55
44
  baudRate: value
56
45
  }));
57
46
  }
58
- }, arduino.ARDUINO_BAUD_RATES.map(function (baudRate) {
59
- return React__default["default"].createElement("option", {
60
- key: baudRate,
61
- value: baudRate
62
- }, baudRate);
63
- }))), React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledPreferenceBodyItem, null, React__default["default"].createElement(blocks.Text, {
47
+ }, arduino.ARDUINO_BAUD_RATES.map(baudRate => React.createElement("option", {
48
+ key: baudRate,
49
+ value: baudRate
50
+ }, baudRate)))), React.createElement(ExerciseMenuStdioFileBrowser_styled.StyledPreferenceBodyItem, null, React.createElement(blocks.Text, {
64
51
  role: "gray3",
65
52
  block: true,
66
53
  size: "small"
67
- }, React__default["default"].createElement(reactIntl.FormattedMessage, {
54
+ }, React.createElement(reactIntl.FormattedMessage, {
68
55
  id: "exerciseMenu.arduino.setting.device"
69
- })), React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledSelect, {
56
+ })), React.createElement(ExerciseMenuStdioFileBrowser_styled.StyledSelect, {
70
57
  value: openedPort !== null && openedPort !== void 0 ? openedPort : '',
71
58
  size: "small",
72
59
  width: "xsmall",
73
- onChange: function onChange(value) {
60
+ onChange: value => {
74
61
  onSelectPort(value);
75
62
  }
76
- }, ports.length === 0 ? React__default["default"].createElement("option", {
63
+ }, ports.length === 0 ? React.createElement("option", {
77
64
  value: "",
78
65
  disabled: true
79
- }, React__default["default"].createElement(reactIntl.FormattedMessage, {
66
+ }, React.createElement(reactIntl.FormattedMessage, {
80
67
  id: "exerciseMenu.arduino.setting.noDevice"
81
- })) : React__default["default"].createElement("option", {
68
+ })) : React.createElement("option", {
82
69
  value: "",
83
70
  disabled: true
84
- }, React__default["default"].createElement(reactIntl.FormattedMessage, {
71
+ }, React.createElement(reactIntl.FormattedMessage, {
85
72
  id: "exerciseMenu.arduino.setting.selectDevice"
86
- })), ports.map(function (port) {
87
- return React__default["default"].createElement("option", {
88
- key: port.Name,
89
- value: port.Name
90
- }, "".concat(arduino$1.getDisplayName(port), "@").concat(port.Name));
91
- }))));
73
+ })), ports.map(port => React.createElement("option", {
74
+ key: port.Name,
75
+ value: port.Name
76
+ }, `${arduino$1.getDisplayName(port)}@${port.Name}`)))));
92
77
  };
93
78
  /**
94
79
  * Popover header.
95
80
  */
96
- var renderStdioFilePopoverHeader = function renderStdioFilePopoverHeader() {
97
- return React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledFilePopoverHeader, null, React__default["default"].createElement(blocks.Text, {
81
+ const renderStdioFilePopoverHeader = () => {
82
+ return React.createElement(ExerciseMenuStdioFileBrowser_styled.StyledFilePopoverHeader, null, React.createElement(blocks.Text, {
98
83
  role: "white",
99
84
  bold: true
100
- }, React__default["default"].createElement(blocks.Flex, {
85
+ }, React.createElement(blocks.Flex, {
101
86
  align: "center"
102
- }, React__default["default"].createElement(reactIntl.FormattedMessage, {
87
+ }, React.createElement(reactIntl.FormattedMessage, {
103
88
  id: "exerciseMenu.arduino.setting"
104
- }))), React__default["default"].createElement(blocks.IconButton, {
89
+ }))), React.createElement(blocks.IconButton, {
105
90
  icon: icons.eilMathsignMultiplyBasic,
106
91
  role: "white",
107
92
  size: "micro",
108
93
  border: false,
109
94
  transparent: true,
110
- onClick: function onClick() {
111
- return setOpen(false);
112
- }
95
+ onClick: () => setOpen(false)
113
96
  }));
114
97
  };
115
98
  /**
116
99
  * Popover body.
117
100
  */
118
- var renderStdioFilePopoverBody = function renderStdioFilePopoverBody() {
119
- return React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledFilePopoverBody, {
101
+ const renderStdioFilePopoverBody = () => {
102
+ return React.createElement(ExerciseMenuStdioFileBrowser_styled.StyledFilePopoverBody, {
120
103
  children: renderStdioFileList()
121
104
  });
122
105
  };
123
106
  /**
124
107
  * Popover.
125
108
  */
126
- var renderStdioFilePopover = function renderStdioFilePopover() {
127
- return React__default["default"].createElement(blocks.Popover, {
109
+ const renderStdioFilePopover = () => {
110
+ return React.createElement(blocks.Popover, {
128
111
  open: open,
129
112
  anchorEl: anchorRef.current,
130
113
  placement: "bottom-end",
131
114
  style: {
132
115
  zIndex: 99
133
116
  }
134
- }, React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledFilePopoverContent, null, renderStdioFilePopoverHeader(), renderStdioFilePopoverBody()));
117
+ }, React.createElement(ExerciseMenuStdioFileBrowser_styled.StyledFilePopoverContent, null, renderStdioFilePopoverHeader(), renderStdioFilePopoverBody()));
135
118
  };
136
119
  /**
137
120
  * Popover toggle button.
138
121
  */
139
- var renderStdioFilePopoverToggleButton = function renderStdioFilePopoverToggleButton() {
140
- return React__default["default"].createElement(ExerciseMenuButton["default"], {
122
+ const renderStdioFilePopoverToggleButton = () => {
123
+ return React.createElement(ExerciseMenuButton.default, {
141
124
  icon: icons.eilMaterialTypeArduino,
142
125
  title: intl.formatMessage({
143
126
  id: 'exerciseMenu.arduino.setting'
144
127
  }),
145
128
  active: open,
146
- onClick: function onClick() {
147
- return setOpen(function (prev) {
148
- return !prev;
149
- });
150
- },
129
+ onClick: () => setOpen(prev => !prev),
151
130
  ref: anchorRef
152
131
  });
153
132
  };
154
133
  //
155
134
  //
156
135
  //
157
- return React__default["default"].createElement(React__default["default"].Fragment, null, renderStdioFilePopover(), renderStdioFilePopoverToggleButton());
136
+ return React.createElement(React.Fragment, null, renderStdioFilePopover(), renderStdioFilePopoverToggleButton());
158
137
  };
159
138
 
160
- exports["default"] = ExerciseMenuArduinoSettings;
139
+ exports.default = ExerciseMenuArduinoSettings;
@@ -2,7 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
6
5
  var React = require('react');
7
6
  var reactIntl = require('react-intl');
8
7
  var blocks = require('@elice/blocks');
@@ -19,57 +18,41 @@ var ExerciseCodeHistory = require('../exercise-code-history/ExerciseCodeHistory.
19
18
  var ExerciseRoom = require('../exercise-room/ExerciseRoom.js');
20
19
  var ExerciseSubmitHistory = require('../exercise-submit-history/ExerciseSubmitHistory.js');
21
20
 
22
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
-
24
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
-
26
- var ExerciseMenuDropdown = function ExerciseMenuDropdown() {
27
- var intl = reactIntl.useIntl();
28
- var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
29
- materialExerciseId = _React$useContext.materialExerciseId;
30
- var user = recoil.useRecoilValue(recoil$1.exerciseUserState);
31
- var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
32
- var lecture = recoil.useRecoilValue(recoil$1.exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
33
- var activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
34
- var setRightpaneActiveState = recoil.useSetRecoilState(recoil$1.exerciseRightpaneActiveState);
35
- var _React$useState = React__default["default"].useState(false),
36
- _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
37
- isSubmitHistoryModalOpen = _React$useState2[0],
38
- setIsSubmitHistoryModalOpen = _React$useState2[1];
39
- var _React$useState3 = React__default["default"].useState(false),
40
- _React$useState4 = _rollupPluginBabelHelpers.slicedToArray(_React$useState3, 2),
41
- isCodeHistoryModalOpen = _React$useState4[0],
42
- setIsCodeHistoryModalOpen = _React$useState4[1];
43
- var _React$useState5 = React__default["default"].useState(false),
44
- _React$useState6 = _rollupPluginBabelHelpers.slicedToArray(_React$useState5, 2),
45
- isExerciseRoomModalOpen = _React$useState6[0],
46
- setIsExerciseRoomModalOpen = _React$useState6[1];
47
- var isLectureTestInProgress = typeof (lecture === null || lecture === void 0 ? void 0 : lecture.testAdmissionStatus) !== 'undefined' && lecture.testAdmissionStatus === types.enums.TestAdmissionStatus.InProgress;
21
+ const ExerciseMenuDropdown = () => {
22
+ const intl = reactIntl.useIntl();
23
+ const {
24
+ materialExerciseId
25
+ } = React.useContext(context.ExerciseContext);
26
+ const user = recoil.useRecoilValue(recoil$1.exerciseUserState);
27
+ const exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
28
+ const lecture = recoil.useRecoilValue(recoil$1.exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
29
+ const activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
30
+ const setRightpaneActiveState = recoil.useSetRecoilState(recoil$1.exerciseRightpaneActiveState);
31
+ const [isSubmitHistoryModalOpen, setIsSubmitHistoryModalOpen] = React.useState(false);
32
+ const [isCodeHistoryModalOpen, setIsCodeHistoryModalOpen] = React.useState(false);
33
+ const [isExerciseRoomModalOpen, setIsExerciseRoomModalOpen] = React.useState(false);
34
+ const isLectureTestInProgress = typeof (lecture === null || lecture === void 0 ? void 0 : lecture.testAdmissionStatus) !== 'undefined' && lecture.testAdmissionStatus === types.enums.TestAdmissionStatus.InProgress;
48
35
  /**
49
36
  *
50
37
  */
51
- var renderSumbitHistoryModal = function renderSumbitHistoryModal() {
38
+ const renderSumbitHistoryModal = () => {
52
39
  if (!isSubmitHistoryModalOpen) {
53
40
  return null;
54
41
  }
55
- return React__default["default"].createElement(ExerciseSubmitHistory["default"], {
56
- onHide: function onHide() {
57
- return setIsSubmitHistoryModalOpen(false);
58
- }
42
+ return React.createElement(ExerciseSubmitHistory.default, {
43
+ onHide: () => setIsSubmitHistoryModalOpen(false)
59
44
  });
60
45
  };
61
46
  /**
62
47
  *
63
48
  */
64
- var renderCodeHistoryModal = function renderCodeHistoryModal() {
49
+ const renderCodeHistoryModal = () => {
65
50
  if (!isCodeHistoryModalOpen) {
66
51
  return null;
67
52
  }
68
- return React__default["default"].createElement(ExerciseCodeHistory["default"], {
69
- onHide: function onHide() {
70
- return setIsCodeHistoryModalOpen(false);
71
- },
72
- onLoadVersionButtonClick: function onLoadVersionButtonClick(content) {
53
+ return React.createElement(ExerciseCodeHistory.default, {
54
+ onHide: () => setIsCodeHistoryModalOpen(false),
55
+ onLoadVersionButtonClick: content => {
73
56
  subjects.exerciseFileEditorContentChange$.next(content);
74
57
  setIsCodeHistoryModalOpen(false);
75
58
  }
@@ -78,64 +61,52 @@ var ExerciseMenuDropdown = function ExerciseMenuDropdown() {
78
61
  /**
79
62
  *
80
63
  */
81
- var renderExerciseRoomModal = function renderExerciseRoomModal() {
64
+ const renderExerciseRoomModal = () => {
82
65
  if (!isExerciseRoomModalOpen) {
83
66
  return null;
84
67
  }
85
- return React__default["default"].createElement(ExerciseRoom["default"], {
86
- onHide: function onHide() {
87
- return setIsExerciseRoomModalOpen(false);
88
- }
68
+ return React.createElement(ExerciseRoom.default, {
69
+ onHide: () => setIsExerciseRoomModalOpen(false)
89
70
  });
90
71
  };
91
72
  //
92
73
  //
93
74
  //
94
- return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(blocks.ButtonMenu, {
75
+ return React.createElement(React.Fragment, null, React.createElement(blocks.ButtonMenu, {
95
76
  menuItemProps: [{
96
77
  label: intl.formatMessage({
97
78
  id: 'exerciseMenu.dropdown.item.environment'
98
79
  }),
99
- onClick: function onClick() {
100
- return setRightpaneActiveState('environment');
101
- }
80
+ onClick: () => setRightpaneActiveState('environment')
102
81
  }, {
103
82
  label: intl.formatMessage({
104
83
  id: 'exerciseMenu.dropdown.item.preference'
105
84
  }),
106
- onClick: function onClick() {
107
- return setRightpaneActiveState('preference');
108
- }
85
+ onClick: () => setRightpaneActiveState('preference')
109
86
  }, {
110
87
  label: intl.formatMessage({
111
88
  id: 'exerciseMenu.dropdown.item.codeHistory'
112
89
  }),
113
90
  disabled: !user,
114
- onClick: function onClick() {
115
- return setIsCodeHistoryModalOpen(true);
116
- }
91
+ onClick: () => setIsCodeHistoryModalOpen(true)
117
92
  }, {
118
93
  label: intl.formatMessage({
119
94
  id: 'exerciseMenu.dropdown.item.submitHistory'
120
95
  }),
121
96
  disabled: !user || !activeFilename,
122
- onClick: function onClick() {
123
- return setIsSubmitHistoryModalOpen(true);
124
- }
97
+ onClick: () => setIsSubmitHistoryModalOpen(true)
125
98
  }, {
126
99
  label: intl.formatMessage({
127
100
  id: 'exerciseMenu.dropdown.item.room'
128
101
  }),
129
102
  disabled: isLectureTestInProgress,
130
- onClick: function onClick() {
131
- return setIsExerciseRoomModalOpen(true);
132
- }
103
+ onClick: () => setIsExerciseRoomModalOpen(true)
133
104
  }],
134
105
  size: "xsmall",
135
106
  placement: "bottom-end",
136
107
  dark: true,
137
108
  shadow: true
138
- }, React__default["default"].createElement(ExerciseMenuButton["default"], {
109
+ }, React.createElement(ExerciseMenuButton.default, {
139
110
  icon: icons.eilMoreVertical,
140
111
  title: intl.formatMessage({
141
112
  id: 'exerciseMenu.dropdown.button.tooltip'
@@ -143,4 +114,4 @@ var ExerciseMenuDropdown = function ExerciseMenuDropdown() {
143
114
  })), renderSumbitHistoryModal(), renderCodeHistoryModal(), renderExerciseRoomModal());
144
115
  };
145
116
 
146
- exports["default"] = ExerciseMenuDropdown;
117
+ exports.default = ExerciseMenuDropdown;
@@ -2,7 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
6
5
  var React = require('react');
7
6
  var reactIntl = require('react-intl');
8
7
  var blocks = require('@elice/blocks');
@@ -27,30 +26,23 @@ require('lodash/debounce');
27
26
  require('random-words');
28
27
  require('unicount');
29
28
 
30
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
31
-
32
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
33
-
34
- var ExerciseMenuReset = function ExerciseMenuReset() {
35
- var intl = reactIntl.useIntl();
36
- var _useState = React.useState(false),
37
- _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
38
- isDialogOpen = _useState2[0],
39
- setDialogOpen = _useState2[1];
40
- var activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
41
- var isFileResettable = useExerciseFile.useExerciseFileResettable(activeFilename);
29
+ const ExerciseMenuReset = () => {
30
+ const intl = reactIntl.useIntl();
31
+ const [isDialogOpen, setDialogOpen] = React.useState(false);
32
+ const activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
33
+ const isFileResettable = useExerciseFile.useExerciseFileResettable(activeFilename);
42
34
  /**
43
35
  * Reset the active file.
44
36
  */
45
- var handleReset = function handleReset() {
37
+ const handleReset = () => {
46
38
  subjects.exerciseFileEditorContentChange$.next(null);
47
39
  setDialogOpen(false);
48
40
  };
49
41
  /**
50
42
  * Reset button.
51
43
  */
52
- var renderResetButton = function renderResetButton() {
53
- return React__default["default"].createElement(ExerciseMenuButton["default"], {
44
+ const renderResetButton = () => {
45
+ return React.createElement(ExerciseMenuButton.default, {
54
46
  icon: icons.eilReset,
55
47
  active: isDialogOpen,
56
48
  title: isFileResettable ? intl.formatMessage({
@@ -59,21 +51,17 @@ var ExerciseMenuReset = function ExerciseMenuReset() {
59
51
  id: 'exerciseMenu.reset.button.tooltip.disabled'
60
52
  }),
61
53
  disabled: !isFileResettable,
62
- onClick: function onClick() {
63
- return setDialogOpen(function (isOpen) {
64
- return !isOpen;
65
- });
66
- }
54
+ onClick: () => setDialogOpen(isOpen => !isOpen)
67
55
  });
68
56
  };
69
57
  /**
70
58
  * Reset confirm dialog.
71
59
  */
72
- var renderResetConfirmDialog = function renderResetConfirmDialog() {
60
+ const renderResetConfirmDialog = () => {
73
61
  if (!isDialogOpen) {
74
62
  return null;
75
63
  }
76
- return React__default["default"].createElement(blocks.Dialog, {
64
+ return React.createElement(blocks.Dialog, {
77
65
  type: "warning",
78
66
  title: intl.formatMessage({
79
67
  id: 'exerciseMenu.reset.confirmDialog.title'
@@ -81,25 +69,21 @@ var ExerciseMenuReset = function ExerciseMenuReset() {
81
69
  body: intl.formatMessage({
82
70
  id: 'exerciseMenu.reset.confirmDialog.body'
83
71
  }),
84
- onHide: function onHide() {
85
- return setDialogOpen(false);
86
- }
87
- }, React__default["default"].createElement(blocks.Dialog.CloseButton, {
88
- onClick: function onClick() {
89
- return setDialogOpen(false);
90
- }
91
- }, React__default["default"].createElement(reactIntl.FormattedMessage, {
72
+ onHide: () => setDialogOpen(false)
73
+ }, React.createElement(blocks.Dialog.CloseButton, {
74
+ onClick: () => setDialogOpen(false)
75
+ }, React.createElement(reactIntl.FormattedMessage, {
92
76
  id: "exerciseMenu.reset.confirmDialog.cancel"
93
- })), React__default["default"].createElement(blocks.Dialog.ActionButton, {
77
+ })), React.createElement(blocks.Dialog.ActionButton, {
94
78
  onClick: handleReset
95
- }, React__default["default"].createElement(reactIntl.FormattedMessage, {
79
+ }, React.createElement(reactIntl.FormattedMessage, {
96
80
  id: "exerciseMenu.reset.confirmDialog.confirm"
97
81
  })));
98
82
  };
99
83
  //
100
84
  //
101
85
  //
102
- return React__default["default"].createElement(React__default["default"].Fragment, null, renderResetButton(), renderResetConfirmDialog());
86
+ return React.createElement(React.Fragment, null, renderResetButton(), renderResetConfirmDialog());
103
87
  };
104
88
 
105
- exports["default"] = ExerciseMenuReset;
89
+ exports.default = ExerciseMenuReset;