@elice/material-exercise 1.231212.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
@@ -9,9 +9,9 @@ import '../context/recoilTypes.js';
9
9
  import '../context/subjects.js';
10
10
  import '../context/ExerciseProvider.js';
11
11
 
12
- var ExerciseMenuArduinoAgentModalButton = function ExerciseMenuArduinoAgentModalButton() {
13
- var setOpen = useSetRecoilState(exerciseArduinoAgentModalState);
14
- var handleClick = function handleClick() {
12
+ const ExerciseMenuArduinoAgentModalButton = () => {
13
+ const setOpen = useSetRecoilState(exerciseArduinoAgentModalState);
14
+ const handleClick = () => {
15
15
  setOpen(true);
16
16
  };
17
17
  return React.createElement(Button, {
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React from 'react';
3
2
  import { useIntl, FormattedMessage } from 'react-intl';
4
3
  import { Popover, Text, Flex, IconButton } from '@elice/blocks';
@@ -14,24 +13,18 @@ import '../context/subjects.js';
14
13
  import '../context/ExerciseProvider.js';
15
14
  import { StyledFilePopoverContent, StyledFilePopoverHeader, StyledFilePopoverBody, StyledFilePopoverBodyList, StyledPreferenceBodyItem, StyledSelect } from './ExerciseMenuStdioFileBrowser.styled.js';
16
15
 
17
- var ExerciseMenuArduinoSettings = function ExerciseMenuArduinoSettings() {
18
- var intl = useIntl();
19
- var _React$useState = React.useState(false),
20
- _React$useState2 = _slicedToArray(_React$useState, 2),
21
- open = _React$useState2[0],
22
- setOpen = _React$useState2[1];
23
- var anchorRef = React.useRef(null);
24
- var ports = useRecoilValue(exerciseArduinoPortsState);
25
- var _useRecoilState = useRecoilState(exerciseArduinoPreferenceState),
26
- _useRecoilState2 = _slicedToArray(_useRecoilState, 2),
27
- preference = _useRecoilState2[0],
28
- setPreference = _useRecoilState2[1];
29
- var openedPort = useRecoilValue(exerciseArduinoOpenedPortNameState);
30
- var onSelectPort = useRecoilValue(exerciseArduinoOnSelectPortState);
16
+ const ExerciseMenuArduinoSettings = () => {
17
+ const intl = useIntl();
18
+ const [open, setOpen] = React.useState(false);
19
+ const anchorRef = React.useRef(null);
20
+ const ports = useRecoilValue(exerciseArduinoPortsState);
21
+ const [preference, setPreference] = useRecoilState(exerciseArduinoPreferenceState);
22
+ const openedPort = useRecoilValue(exerciseArduinoOpenedPortNameState);
23
+ const onSelectPort = useRecoilValue(exerciseArduinoOnSelectPortState);
31
24
  /**
32
25
  * List of stdio files.
33
26
  */
34
- var renderStdioFileList = function renderStdioFileList() {
27
+ const renderStdioFileList = () => {
35
28
  return React.createElement(StyledFilePopoverBodyList, null, React.createElement(StyledPreferenceBodyItem, null, React.createElement(Text, {
36
29
  role: "gray3",
37
30
  block: true,
@@ -42,17 +35,15 @@ var ExerciseMenuArduinoSettings = function ExerciseMenuArduinoSettings() {
42
35
  value: preference.baudRate,
43
36
  size: "small",
44
37
  width: "xsmall",
45
- onChange: function onChange(value) {
38
+ onChange: value => {
46
39
  setPreference(Object.assign(Object.assign({}, preference), {
47
40
  baudRate: value
48
41
  }));
49
42
  }
50
- }, ARDUINO_BAUD_RATES.map(function (baudRate) {
51
- return React.createElement("option", {
52
- key: baudRate,
53
- value: baudRate
54
- }, baudRate);
55
- }))), React.createElement(StyledPreferenceBodyItem, null, React.createElement(Text, {
43
+ }, ARDUINO_BAUD_RATES.map(baudRate => React.createElement("option", {
44
+ key: baudRate,
45
+ value: baudRate
46
+ }, baudRate)))), React.createElement(StyledPreferenceBodyItem, null, React.createElement(Text, {
56
47
  role: "gray3",
57
48
  block: true,
58
49
  size: "small"
@@ -62,7 +53,7 @@ var ExerciseMenuArduinoSettings = function ExerciseMenuArduinoSettings() {
62
53
  value: openedPort !== null && openedPort !== void 0 ? openedPort : '',
63
54
  size: "small",
64
55
  width: "xsmall",
65
- onChange: function onChange(value) {
56
+ onChange: value => {
66
57
  onSelectPort(value);
67
58
  }
68
59
  }, ports.length === 0 ? React.createElement("option", {
@@ -75,17 +66,15 @@ var ExerciseMenuArduinoSettings = function ExerciseMenuArduinoSettings() {
75
66
  disabled: true
76
67
  }, React.createElement(FormattedMessage, {
77
68
  id: "exerciseMenu.arduino.setting.selectDevice"
78
- })), ports.map(function (port) {
79
- return React.createElement("option", {
80
- key: port.Name,
81
- value: port.Name
82
- }, "".concat(getDisplayName(port), "@").concat(port.Name));
83
- }))));
69
+ })), ports.map(port => React.createElement("option", {
70
+ key: port.Name,
71
+ value: port.Name
72
+ }, `${getDisplayName(port)}@${port.Name}`)))));
84
73
  };
85
74
  /**
86
75
  * Popover header.
87
76
  */
88
- var renderStdioFilePopoverHeader = function renderStdioFilePopoverHeader() {
77
+ const renderStdioFilePopoverHeader = () => {
89
78
  return React.createElement(StyledFilePopoverHeader, null, React.createElement(Text, {
90
79
  role: "white",
91
80
  bold: true
@@ -99,15 +88,13 @@ var ExerciseMenuArduinoSettings = function ExerciseMenuArduinoSettings() {
99
88
  size: "micro",
100
89
  border: false,
101
90
  transparent: true,
102
- onClick: function onClick() {
103
- return setOpen(false);
104
- }
91
+ onClick: () => setOpen(false)
105
92
  }));
106
93
  };
107
94
  /**
108
95
  * Popover body.
109
96
  */
110
- var renderStdioFilePopoverBody = function renderStdioFilePopoverBody() {
97
+ const renderStdioFilePopoverBody = () => {
111
98
  return React.createElement(StyledFilePopoverBody, {
112
99
  children: renderStdioFileList()
113
100
  });
@@ -115,7 +102,7 @@ var ExerciseMenuArduinoSettings = function ExerciseMenuArduinoSettings() {
115
102
  /**
116
103
  * Popover.
117
104
  */
118
- var renderStdioFilePopover = function renderStdioFilePopover() {
105
+ const renderStdioFilePopover = () => {
119
106
  return React.createElement(Popover, {
120
107
  open: open,
121
108
  anchorEl: anchorRef.current,
@@ -128,18 +115,14 @@ var ExerciseMenuArduinoSettings = function ExerciseMenuArduinoSettings() {
128
115
  /**
129
116
  * Popover toggle button.
130
117
  */
131
- var renderStdioFilePopoverToggleButton = function renderStdioFilePopoverToggleButton() {
118
+ const renderStdioFilePopoverToggleButton = () => {
132
119
  return React.createElement(ExerciseMenuButton, {
133
120
  icon: eilMaterialTypeArduino,
134
121
  title: intl.formatMessage({
135
122
  id: 'exerciseMenu.arduino.setting'
136
123
  }),
137
124
  active: open,
138
- onClick: function onClick() {
139
- return setOpen(function (prev) {
140
- return !prev;
141
- });
142
- },
125
+ onClick: () => setOpen(prev => !prev),
143
126
  ref: anchorRef
144
127
  });
145
128
  };
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React from 'react';
3
2
  import { useIntl } from 'react-intl';
4
3
  import { ButtonMenu } from '@elice/blocks';
@@ -15,53 +14,41 @@ import ExerciseCodeHistory from '../exercise-code-history/ExerciseCodeHistory.js
15
14
  import ExerciseRoom from '../exercise-room/ExerciseRoom.js';
16
15
  import ExerciseSubmitHistory from '../exercise-submit-history/ExerciseSubmitHistory.js';
17
16
 
18
- var ExerciseMenuDropdown = function ExerciseMenuDropdown() {
19
- var intl = useIntl();
20
- var _React$useContext = React.useContext(ExerciseContext),
21
- materialExerciseId = _React$useContext.materialExerciseId;
22
- var user = useRecoilValue(exerciseUserState);
23
- var exercise = useRecoilValue(exerciseState(materialExerciseId));
24
- var lecture = useRecoilValue(exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
25
- var activeFilename = useRecoilValue(exerciseActiveFilenameState);
26
- var setRightpaneActiveState = useSetRecoilState(exerciseRightpaneActiveState);
27
- var _React$useState = React.useState(false),
28
- _React$useState2 = _slicedToArray(_React$useState, 2),
29
- isSubmitHistoryModalOpen = _React$useState2[0],
30
- setIsSubmitHistoryModalOpen = _React$useState2[1];
31
- var _React$useState3 = React.useState(false),
32
- _React$useState4 = _slicedToArray(_React$useState3, 2),
33
- isCodeHistoryModalOpen = _React$useState4[0],
34
- setIsCodeHistoryModalOpen = _React$useState4[1];
35
- var _React$useState5 = React.useState(false),
36
- _React$useState6 = _slicedToArray(_React$useState5, 2),
37
- isExerciseRoomModalOpen = _React$useState6[0],
38
- setIsExerciseRoomModalOpen = _React$useState6[1];
39
- var isLectureTestInProgress = typeof (lecture === null || lecture === void 0 ? void 0 : lecture.testAdmissionStatus) !== 'undefined' && lecture.testAdmissionStatus === enums.TestAdmissionStatus.InProgress;
17
+ const ExerciseMenuDropdown = () => {
18
+ const intl = useIntl();
19
+ const {
20
+ materialExerciseId
21
+ } = React.useContext(ExerciseContext);
22
+ const user = useRecoilValue(exerciseUserState);
23
+ const exercise = useRecoilValue(exerciseState(materialExerciseId));
24
+ const lecture = useRecoilValue(exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
25
+ const activeFilename = useRecoilValue(exerciseActiveFilenameState);
26
+ const setRightpaneActiveState = useSetRecoilState(exerciseRightpaneActiveState);
27
+ const [isSubmitHistoryModalOpen, setIsSubmitHistoryModalOpen] = React.useState(false);
28
+ const [isCodeHistoryModalOpen, setIsCodeHistoryModalOpen] = React.useState(false);
29
+ const [isExerciseRoomModalOpen, setIsExerciseRoomModalOpen] = React.useState(false);
30
+ const isLectureTestInProgress = typeof (lecture === null || lecture === void 0 ? void 0 : lecture.testAdmissionStatus) !== 'undefined' && lecture.testAdmissionStatus === enums.TestAdmissionStatus.InProgress;
40
31
  /**
41
32
  *
42
33
  */
43
- var renderSumbitHistoryModal = function renderSumbitHistoryModal() {
34
+ const renderSumbitHistoryModal = () => {
44
35
  if (!isSubmitHistoryModalOpen) {
45
36
  return null;
46
37
  }
47
38
  return React.createElement(ExerciseSubmitHistory, {
48
- onHide: function onHide() {
49
- return setIsSubmitHistoryModalOpen(false);
50
- }
39
+ onHide: () => setIsSubmitHistoryModalOpen(false)
51
40
  });
52
41
  };
53
42
  /**
54
43
  *
55
44
  */
56
- var renderCodeHistoryModal = function renderCodeHistoryModal() {
45
+ const renderCodeHistoryModal = () => {
57
46
  if (!isCodeHistoryModalOpen) {
58
47
  return null;
59
48
  }
60
49
  return React.createElement(ExerciseCodeHistory, {
61
- onHide: function onHide() {
62
- return setIsCodeHistoryModalOpen(false);
63
- },
64
- onLoadVersionButtonClick: function onLoadVersionButtonClick(content) {
50
+ onHide: () => setIsCodeHistoryModalOpen(false),
51
+ onLoadVersionButtonClick: content => {
65
52
  exerciseFileEditorContentChange$.next(content);
66
53
  setIsCodeHistoryModalOpen(false);
67
54
  }
@@ -70,14 +57,12 @@ var ExerciseMenuDropdown = function ExerciseMenuDropdown() {
70
57
  /**
71
58
  *
72
59
  */
73
- var renderExerciseRoomModal = function renderExerciseRoomModal() {
60
+ const renderExerciseRoomModal = () => {
74
61
  if (!isExerciseRoomModalOpen) {
75
62
  return null;
76
63
  }
77
64
  return React.createElement(ExerciseRoom, {
78
- onHide: function onHide() {
79
- return setIsExerciseRoomModalOpen(false);
80
- }
65
+ onHide: () => setIsExerciseRoomModalOpen(false)
81
66
  });
82
67
  };
83
68
  //
@@ -88,40 +73,30 @@ var ExerciseMenuDropdown = function ExerciseMenuDropdown() {
88
73
  label: intl.formatMessage({
89
74
  id: 'exerciseMenu.dropdown.item.environment'
90
75
  }),
91
- onClick: function onClick() {
92
- return setRightpaneActiveState('environment');
93
- }
76
+ onClick: () => setRightpaneActiveState('environment')
94
77
  }, {
95
78
  label: intl.formatMessage({
96
79
  id: 'exerciseMenu.dropdown.item.preference'
97
80
  }),
98
- onClick: function onClick() {
99
- return setRightpaneActiveState('preference');
100
- }
81
+ onClick: () => setRightpaneActiveState('preference')
101
82
  }, {
102
83
  label: intl.formatMessage({
103
84
  id: 'exerciseMenu.dropdown.item.codeHistory'
104
85
  }),
105
86
  disabled: !user,
106
- onClick: function onClick() {
107
- return setIsCodeHistoryModalOpen(true);
108
- }
87
+ onClick: () => setIsCodeHistoryModalOpen(true)
109
88
  }, {
110
89
  label: intl.formatMessage({
111
90
  id: 'exerciseMenu.dropdown.item.submitHistory'
112
91
  }),
113
92
  disabled: !user || !activeFilename,
114
- onClick: function onClick() {
115
- return setIsSubmitHistoryModalOpen(true);
116
- }
93
+ onClick: () => setIsSubmitHistoryModalOpen(true)
117
94
  }, {
118
95
  label: intl.formatMessage({
119
96
  id: 'exerciseMenu.dropdown.item.room'
120
97
  }),
121
98
  disabled: isLectureTestInProgress,
122
- onClick: function onClick() {
123
- return setIsExerciseRoomModalOpen(true);
124
- }
99
+ onClick: () => setIsExerciseRoomModalOpen(true)
125
100
  }],
126
101
  size: "xsmall",
127
102
  placement: "bottom-end",
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React, { useState } from 'react';
3
2
  import { useIntl, FormattedMessage } from 'react-intl';
4
3
  import { Dialog } from '@elice/blocks';
@@ -23,25 +22,22 @@ import 'lodash/debounce';
23
22
  import 'random-words';
24
23
  import 'unicount';
25
24
 
26
- var ExerciseMenuReset = function ExerciseMenuReset() {
27
- var intl = useIntl();
28
- var _useState = useState(false),
29
- _useState2 = _slicedToArray(_useState, 2),
30
- isDialogOpen = _useState2[0],
31
- setDialogOpen = _useState2[1];
32
- var activeFilename = useRecoilValue(exerciseActiveFilenameState);
33
- var isFileResettable = useExerciseFileResettable(activeFilename);
25
+ const ExerciseMenuReset = () => {
26
+ const intl = useIntl();
27
+ const [isDialogOpen, setDialogOpen] = useState(false);
28
+ const activeFilename = useRecoilValue(exerciseActiveFilenameState);
29
+ const isFileResettable = useExerciseFileResettable(activeFilename);
34
30
  /**
35
31
  * Reset the active file.
36
32
  */
37
- var handleReset = function handleReset() {
33
+ const handleReset = () => {
38
34
  exerciseFileEditorContentChange$.next(null);
39
35
  setDialogOpen(false);
40
36
  };
41
37
  /**
42
38
  * Reset button.
43
39
  */
44
- var renderResetButton = function renderResetButton() {
40
+ const renderResetButton = () => {
45
41
  return React.createElement(ExerciseMenuButton, {
46
42
  icon: eilReset,
47
43
  active: isDialogOpen,
@@ -51,17 +47,13 @@ var ExerciseMenuReset = function ExerciseMenuReset() {
51
47
  id: 'exerciseMenu.reset.button.tooltip.disabled'
52
48
  }),
53
49
  disabled: !isFileResettable,
54
- onClick: function onClick() {
55
- return setDialogOpen(function (isOpen) {
56
- return !isOpen;
57
- });
58
- }
50
+ onClick: () => setDialogOpen(isOpen => !isOpen)
59
51
  });
60
52
  };
61
53
  /**
62
54
  * Reset confirm dialog.
63
55
  */
64
- var renderResetConfirmDialog = function renderResetConfirmDialog() {
56
+ const renderResetConfirmDialog = () => {
65
57
  if (!isDialogOpen) {
66
58
  return null;
67
59
  }
@@ -73,13 +65,9 @@ var ExerciseMenuReset = function ExerciseMenuReset() {
73
65
  body: intl.formatMessage({
74
66
  id: 'exerciseMenu.reset.confirmDialog.body'
75
67
  }),
76
- onHide: function onHide() {
77
- return setDialogOpen(false);
78
- }
68
+ onHide: () => setDialogOpen(false)
79
69
  }, React.createElement(Dialog.CloseButton, {
80
- onClick: function onClick() {
81
- return setDialogOpen(false);
82
- }
70
+ onClick: () => setDialogOpen(false)
83
71
  }, React.createElement(FormattedMessage, {
84
72
  id: "exerciseMenu.reset.confirmDialog.cancel"
85
73
  })), React.createElement(Dialog.ActionButton, {
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React from 'react';
3
2
  import { useIntl, FormattedMessage } from 'react-intl';
4
3
  import { Popover, Flex, Text, Hspace, NotificationCount, IconButton, Icon, Vspace } from '@elice/blocks';
@@ -14,18 +13,15 @@ import '../context/subjects.js';
14
13
  import '../context/ExerciseProvider.js';
15
14
  import { StyledFilePopoverContent, StyledMenuButtonFileCount, StyledFilePopoverHeader, StyledFilePopoverBody, StyledFilePopoverBodyList, StyledFilePopoverBodyListItem, StyledFilePopoverBodyListItemContentImageWrap, StyledFilePopoverBodyListItemContentImage, StyledFilePopoverBodyListItemDownloadButton, StyledFilePopoverBodyListItemContentFile } from './ExerciseMenuStdioFileBrowser.styled.js';
16
15
 
17
- var ExerciseMenuStdioFileBrowser = function ExerciseMenuStdioFileBrowser() {
18
- var intl = useIntl();
19
- var _React$useState = React.useState(false),
20
- _React$useState2 = _slicedToArray(_React$useState, 2),
21
- open = _React$useState2[0],
22
- setOpen = _React$useState2[1];
23
- var anchorRef = React.useRef(null);
24
- var stdioFiles = useRecoilValue(exerciseRunnerStdioFilesState);
16
+ const ExerciseMenuStdioFileBrowser = () => {
17
+ const intl = useIntl();
18
+ const [open, setOpen] = React.useState(false);
19
+ const anchorRef = React.useRef(null);
20
+ const stdioFiles = useRecoilValue(exerciseRunnerStdioFilesState);
25
21
  //
26
22
  // Open stdio file browser, on file changes.
27
23
  //
28
- React.useEffect(function () {
24
+ React.useEffect(() => {
29
25
  if (stdioFiles && stdioFiles.length > 0) {
30
26
  setOpen(true);
31
27
  }
@@ -35,10 +31,10 @@ var ExerciseMenuStdioFileBrowser = function ExerciseMenuStdioFileBrowser() {
35
31
  /**
36
32
  * Image type stdio file.
37
33
  */
38
- var renderStdioFileListItemImage = function renderStdioFileListItemImage(key, f) {
34
+ const renderStdioFileListItemImage = (key, f) => {
39
35
  var _a;
40
- var ext = (_a = f.mime) === null || _a === void 0 ? void 0 : _a.split('/').pop();
41
- var filename = ext ? "image_output.".concat(ext) : 'image_output';
36
+ const ext = (_a = f.mime) === null || _a === void 0 ? void 0 : _a.split('/').pop();
37
+ const filename = ext ? `image_output.${ext}` : 'image_output';
42
38
  return React.createElement(StyledFilePopoverBodyListItem, {
43
39
  key: key
44
40
  }, React.createElement(StyledFilePopoverBodyListItemContentImageWrap, null, React.createElement(ImageViewer, null, React.createElement(StyledFilePopoverBodyListItemContentImage, {
@@ -54,8 +50,8 @@ var ExerciseMenuStdioFileBrowser = function ExerciseMenuStdioFileBrowser() {
54
50
  /**
55
51
  * File type stdio file.
56
52
  */
57
- var renderStdioFileListFile = function renderStdioFileListFile(key, f) {
58
- var size = (f.data.length / 1024).toFixed(2);
53
+ const renderStdioFileListFile = (key, f) => {
54
+ const size = (f.data.length / 1024).toFixed(2);
59
55
  return React.createElement(StyledFilePopoverBodyListItem, {
60
56
  key: key
61
57
  }, React.createElement(StyledFilePopoverBodyListItemContentFile, null, React.createElement(Text, {
@@ -63,7 +59,7 @@ var ExerciseMenuStdioFileBrowser = function ExerciseMenuStdioFileBrowser() {
63
59
  role: "white",
64
60
  size: "small"
65
61
  }), React.createElement(Text, {
66
- children: "".concat(size, " KB"),
62
+ children: `${size} KB`,
67
63
  role: "gray4",
68
64
  size: "tiny"
69
65
  })), React.createElement(StyledFilePopoverBodyListItemDownloadButton, {
@@ -76,7 +72,7 @@ var ExerciseMenuStdioFileBrowser = function ExerciseMenuStdioFileBrowser() {
76
72
  /**
77
73
  * Empty list of stdio files.
78
74
  */
79
- var renderStdioFileListEmpty = function renderStdioFileListEmpty() {
75
+ const renderStdioFileListEmpty = () => {
80
76
  return React.createElement(Flex, {
81
77
  column: true,
82
78
  align: "center",
@@ -100,11 +96,11 @@ var ExerciseMenuStdioFileBrowser = function ExerciseMenuStdioFileBrowser() {
100
96
  /**
101
97
  * List of stdio files.
102
98
  */
103
- var renderStdioFileList = function renderStdioFileList() {
99
+ const renderStdioFileList = () => {
104
100
  if (!stdioFiles || !stdioFiles.length) {
105
101
  return renderStdioFileListEmpty();
106
102
  }
107
- return React.createElement(StyledFilePopoverBodyList, null, stdioFiles.map(function (f, index) {
103
+ return React.createElement(StyledFilePopoverBodyList, null, stdioFiles.map((f, index) => {
108
104
  switch (f.type) {
109
105
  case 'image':
110
106
  return renderStdioFileListItemImage(index, f);
@@ -118,7 +114,7 @@ var ExerciseMenuStdioFileBrowser = function ExerciseMenuStdioFileBrowser() {
118
114
  /**
119
115
  * Popover header.
120
116
  */
121
- var renderStdioFilePopoverHeader = function renderStdioFilePopoverHeader() {
117
+ const renderStdioFilePopoverHeader = () => {
122
118
  return React.createElement(StyledFilePopoverHeader, null, React.createElement(Flex, {
123
119
  align: "center"
124
120
  }, React.createElement(Text, {
@@ -138,15 +134,13 @@ var ExerciseMenuStdioFileBrowser = function ExerciseMenuStdioFileBrowser() {
138
134
  size: "micro",
139
135
  border: false,
140
136
  transparent: true,
141
- onClick: function onClick() {
142
- return setOpen(false);
143
- }
137
+ onClick: () => setOpen(false)
144
138
  }));
145
139
  };
146
140
  /**
147
141
  * Popover body.
148
142
  */
149
- var renderStdioFilePopoverBody = function renderStdioFilePopoverBody() {
143
+ const renderStdioFilePopoverBody = () => {
150
144
  return React.createElement(StyledFilePopoverBody, {
151
145
  children: renderStdioFileList()
152
146
  });
@@ -154,7 +148,7 @@ var ExerciseMenuStdioFileBrowser = function ExerciseMenuStdioFileBrowser() {
154
148
  /**
155
149
  * Popover.
156
150
  */
157
- var renderStdioFilePopover = function renderStdioFilePopover() {
151
+ const renderStdioFilePopover = () => {
158
152
  return React.createElement(Popover, {
159
153
  open: open,
160
154
  anchorEl: anchorRef.current,
@@ -167,18 +161,14 @@ var ExerciseMenuStdioFileBrowser = function ExerciseMenuStdioFileBrowser() {
167
161
  /**
168
162
  * Popover toggle button.
169
163
  */
170
- var renderStdioFilePopoverToggleButton = function renderStdioFilePopoverToggleButton() {
164
+ const renderStdioFilePopoverToggleButton = () => {
171
165
  return React.createElement(ExerciseMenuButton, {
172
166
  icon: eilAttachment,
173
167
  active: open,
174
168
  title: intl.formatMessage({
175
169
  id: 'exerciseMenu.stdioFileBrowser.button.tooltip'
176
170
  }),
177
- onClick: function onClick() {
178
- return setOpen(function (prev) {
179
- return !prev;
180
- });
181
- },
171
+ onClick: () => setOpen(prev => !prev),
182
172
  ref: anchorRef
183
173
  }, React.createElement(StyledMenuButtonFileCount, {
184
174
  role: "white",
@@ -2,40 +2,40 @@ import { NotificationCount, Select } from '@elice/blocks';
2
2
  import { base } from '@elice/design-tokens';
3
3
  import styled from 'styled-components';
4
4
 
5
- var StyledMenuButtonFileCount = styled(NotificationCount).withConfig({
5
+ const StyledMenuButtonFileCount = styled(NotificationCount).withConfig({
6
6
  componentId: "sc-9mtuee-0"
7
7
  })(["position:absolute;top:0.2rem;right:0.2rem;padding:0;min-width:0.625rem;height:0.625rem;font-size:0.5rem;"]);
8
- var StyledFilePopoverContent = styled.div.withConfig({
8
+ const StyledFilePopoverContent = styled.div.withConfig({
9
9
  componentId: "sc-9mtuee-1"
10
10
  })(["display:flex;flex-direction:column;padding:0;width:252px;min-height:178px;max-height:383px;border-radius:8px;background-color:", ";overflow:hidden;"], base.color.navy6);
11
- var StyledFilePopoverHeader = styled.div.withConfig({
11
+ const StyledFilePopoverHeader = styled.div.withConfig({
12
12
  componentId: "sc-9mtuee-2"
13
13
  })(["flex:0 0 2.5rem;display:flex;justify-content:space-between;align-items:center;padding:0 1rem;color:white;background-color:", ";"], base.color.navy7);
14
- var StyledFilePopoverBody = styled.div.withConfig({
14
+ const StyledFilePopoverBody = styled.div.withConfig({
15
15
  componentId: "sc-9mtuee-3"
16
16
  })(["flex:1;overflow-x:hidden;overflow-y:auto;"]);
17
- var StyledFilePopoverBodyList = styled.ul.withConfig({
17
+ const StyledFilePopoverBodyList = styled.ul.withConfig({
18
18
  componentId: "sc-9mtuee-4"
19
19
  })(["margin:0;padding:0.5rem;width:100%;height:100%;"]);
20
- var StyledFilePopoverBodyListItem = styled.li.withConfig({
20
+ const StyledFilePopoverBodyListItem = styled.li.withConfig({
21
21
  componentId: "sc-9mtuee-5"
22
22
  })(["display:flex;margin-bottom:0.5rem;border-radius:0.5rem;background-color:", ";overflow:hidden;&:last-of-type{margin-bottom:0;}"], base.color.navy5);
23
- var StyledFilePopoverBodyListItemDownloadButton = styled.a.withConfig({
23
+ const StyledFilePopoverBodyListItemDownloadButton = styled.a.withConfig({
24
24
  componentId: "sc-9mtuee-6"
25
25
  })(["display:flex;align-items:center;justify-content:center;padding:0.75rem;color:", ";font-size:1rem;background-color:", ";"], base.color.white, base.color.primary5);
26
- var StyledFilePopoverBodyListItemContentFile = styled.div.withConfig({
26
+ const StyledFilePopoverBodyListItemContentFile = styled.div.withConfig({
27
27
  componentId: "sc-9mtuee-7"
28
28
  })(["flex:1;display:flex;align-items:center;justify-content:space-between;padding:0 0.5rem;"]);
29
- var StyledFilePopoverBodyListItemContentImageWrap = styled.div.withConfig({
29
+ const StyledFilePopoverBodyListItemContentImageWrap = styled.div.withConfig({
30
30
  componentId: "sc-9mtuee-8"
31
31
  })(["display:flex;padding:0.5rem;flex:1 1 0;background:", ";"], base.color.white);
32
- var StyledFilePopoverBodyListItemContentImage = styled.img.withConfig({
32
+ const StyledFilePopoverBodyListItemContentImage = styled.img.withConfig({
33
33
  componentId: "sc-9mtuee-9"
34
34
  })(["width:100%;max-height:128px;object-fit:contain;cursor:zoom-in;"]);
35
- var StyledPreferenceBodyItem = styled.div.withConfig({
35
+ const StyledPreferenceBodyItem = styled.div.withConfig({
36
36
  componentId: "sc-9mtuee-10"
37
37
  })(["display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;min-height:2rem;color:white;&:last-child{margin-bottom:0;}"]);
38
- var StyledSelect = styled(Select).withConfig({
38
+ const StyledSelect = styled(Select).withConfig({
39
39
  componentId: "sc-9mtuee-11"
40
40
  })(["> div{background:", " !important;border-color:", " !important;}select{padding:0 !important;height:2rem !important;color:#fff !important;> option{background:", " !important;}}"], base.color.navy8, base.color.navy7, base.color.navy8);
41
41
 
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React from 'react';
3
2
  import { useDebounce } from 'react-use';
4
3
  import { Dropdown } from '@elice/blocks';
@@ -9,23 +8,21 @@ import '../context/recoilTypes.js';
9
8
  import '../context/subjects.js';
10
9
  import '../context/ExerciseProvider.js';
11
10
 
12
- var ExerciseMultilangDropdown = function ExerciseMultilangDropdown() {
13
- var _React$useContext = React.useContext(ExerciseContext),
14
- materialExerciseId = _React$useContext.materialExerciseId,
15
- exerciseRoomId = _React$useContext.exerciseRoomId,
16
- onMultiLangLanguageChange = _React$useContext.onMultiLangLanguageChange;
17
- var multilangLanguages = useRecoilValue(exerciseMultilangLanguagesState(materialExerciseId));
18
- var _useRecoilState = useRecoilState(exerciseMultilangEnvironmentState({
19
- materialExerciseId: materialExerciseId,
20
- exerciseRoomId: exerciseRoomId
21
- })),
22
- _useRecoilState2 = _slicedToArray(_useRecoilState, 2),
23
- multilangEnvironment = _useRecoilState2[0],
24
- setMultilangEnvironment = _useRecoilState2[1];
11
+ const ExerciseMultilangDropdown = () => {
12
+ const {
13
+ materialExerciseId,
14
+ exerciseRoomId,
15
+ onMultiLangLanguageChange
16
+ } = React.useContext(ExerciseContext);
17
+ const multilangLanguages = useRecoilValue(exerciseMultilangLanguagesState(materialExerciseId));
18
+ const [multilangEnvironment, setMultilangEnvironment] = useRecoilState(exerciseMultilangEnvironmentState({
19
+ materialExerciseId,
20
+ exerciseRoomId
21
+ }));
25
22
  //
26
23
  // emit `onMultiLangLanguageChange` when language changed
27
24
  //
28
- useDebounce(function () {
25
+ useDebounce(() => {
29
26
  if (multilangEnvironment && typeof onMultiLangLanguageChange === 'function') {
30
27
  onMultiLangLanguageChange(multilangEnvironment.language);
31
28
  }
@@ -42,17 +39,13 @@ var ExerciseMultilangDropdown = function ExerciseMultilangDropdown() {
42
39
  border: true,
43
40
  placement: "bottom-end",
44
41
  value: multilangEnvironment.language,
45
- onChange: function onChange(language) {
46
- return setMultilangEnvironment({
47
- language: language
48
- });
49
- }
50
- }, Object.keys(multilangLanguages).map(function (lang) {
51
- return React.createElement("option", {
52
- key: lang,
53
- value: lang
54
- }, multilangLanguages[lang].label);
55
- }));
42
+ onChange: language => setMultilangEnvironment({
43
+ language
44
+ })
45
+ }, Object.keys(multilangLanguages).map(lang => React.createElement("option", {
46
+ key: lang,
47
+ value: lang
48
+ }, multilangLanguages[lang].label)));
56
49
  };
57
50
 
58
51
  export { ExerciseMultilangDropdown as default };
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import ExerciseMultilangDropdown from './ExerciseMultilangDropdown.js';
3
3
 
4
- var ExerciseMultilangDropdownLazy = function ExerciseMultilangDropdownLazy() {
4
+ const ExerciseMultilangDropdownLazy = () => {
5
5
  return React.createElement(React.Suspense, {
6
6
  fallback: null
7
7
  }, React.createElement(ExerciseMultilangDropdown, null));