@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
@@ -1,40 +1,22 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
6
3
  var React = require('react');
7
4
  var reactUse = require('react-use');
8
5
  var apiClient = require('@elice/api-client');
9
6
  var otTextUnicode = require('ot-text-unicode');
10
7
 
11
- var OP_FETCHING_COUNT = 100;
12
- var useUsercodeHistory = function useUsercodeHistory(exerciseRoomId, filename) {
13
- var latestDocRef = React.useRef('');
14
- var _useState = React.useState([]),
15
- _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
16
- ops = _useState2[0],
17
- setOps = _useState2[1];
18
- var _useState3 = React.useState(''),
19
- _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
20
- doc = _useState4[0],
21
- setDoc = _useState4[1];
22
- var _useState5 = React.useState(),
23
- _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
24
- version = _useState6[0],
25
- setVersion = _useState6[1];
26
- var _useState7 = React.useState(),
27
- _useState8 = _rollupPluginBabelHelpers.slicedToArray(_useState7, 2),
28
- latestVersion = _useState8[0],
29
- setLatestVersion = _useState8[1];
30
- var _useState9 = React.useState(false),
31
- _useState10 = _rollupPluginBabelHelpers.slicedToArray(_useState9, 2),
32
- hasMoreVersion = _useState10[0],
33
- setHasMoreVersion = _useState10[1];
8
+ const OP_FETCHING_COUNT = 100;
9
+ const useUsercodeHistory = (exerciseRoomId, filename) => {
10
+ const latestDocRef = React.useRef('');
11
+ const [ops, setOps] = React.useState([]);
12
+ const [doc, setDoc] = React.useState('');
13
+ const [version, setVersion] = React.useState();
14
+ const [latestVersion, setLatestVersion] = React.useState();
15
+ const [hasMoreVersion, setHasMoreVersion] = React.useState(false);
34
16
  /**
35
17
  *
36
18
  */
37
- var inverseApplyOp = function inverseApplyOp(doc, op) {
19
+ const inverseApplyOp = (doc, op) => {
38
20
  if (typeof otTextUnicode.type.invert !== 'function') {
39
21
  return doc;
40
22
  }
@@ -43,57 +25,34 @@ var useUsercodeHistory = function useUsercodeHistory(exerciseRoomId, filename) {
43
25
  /**
44
26
  *
45
27
  */
46
- var applyOps = function applyOps(selectedVersion) {
28
+ const applyOps = selectedVersion => {
47
29
  if (!latestVersion) {
48
30
  return;
49
31
  }
50
- setDoc(ops.slice(0, latestVersion - selectedVersion).reduce(function (newDoc, op) {
51
- return inverseApplyOp(newDoc, op.ots);
52
- }, latestDocRef.current));
32
+ setDoc(ops.slice(0, latestVersion - selectedVersion).reduce((newDoc, op) => inverseApplyOp(newDoc, op.ots), latestDocRef.current));
53
33
  };
54
34
  /**
55
35
  *
56
36
  */
57
- var loadMoreVersions = /*#__PURE__*/function () {
58
- var _ref = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
59
- var _yield$getOrgMaterial, newOps;
60
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
61
- while (1) switch (_context.prev = _context.next) {
62
- case 0:
63
- if (filename) {
64
- _context.next = 2;
65
- break;
66
- }
67
- return _context.abrupt("return");
68
- case 2:
69
- _context.next = 4;
70
- return apiClient.getOrgMaterialExerciseUsercodeOpList({
71
- exerciseRoomId: exerciseRoomId,
72
- filename: filename,
73
- offset: ops.length,
74
- count: OP_FETCHING_COUNT,
75
- isOpComposed: false
76
- });
77
- case 4:
78
- _yield$getOrgMaterial = _context.sent;
79
- newOps = _yield$getOrgMaterial.ops;
80
- setOps(function (prev) {
81
- return [].concat(_rollupPluginBabelHelpers.toConsumableArray(prev), _rollupPluginBabelHelpers.toConsumableArray(newOps));
82
- });
83
- case 7:
84
- case "end":
85
- return _context.stop();
86
- }
87
- }, _callee);
88
- }));
89
- return function loadMoreVersions() {
90
- return _ref.apply(this, arguments);
91
- };
92
- }();
37
+ const loadMoreVersions = async () => {
38
+ if (!filename) {
39
+ return;
40
+ }
41
+ const {
42
+ ops: newOps
43
+ } = await apiClient.getOrgMaterialExerciseUsercodeOpList({
44
+ exerciseRoomId,
45
+ filename,
46
+ offset: ops.length,
47
+ count: OP_FETCHING_COUNT,
48
+ isOpComposed: false
49
+ });
50
+ setOps(prev => [...prev, ...newOps]);
51
+ };
93
52
  /**
94
53
  *
95
54
  */
96
- var changeVersion = function changeVersion(selectedVersion) {
55
+ const changeVersion = selectedVersion => {
97
56
  if (selectedVersion === version) {
98
57
  return;
99
58
  }
@@ -103,69 +62,56 @@ var useUsercodeHistory = function useUsercodeHistory(exerciseRoomId, filename) {
103
62
  //
104
63
  //
105
64
  //
106
- reactUse.useMount(function () {
65
+ reactUse.useMount(() => {
107
66
  if (!filename) {
108
67
  return;
109
68
  }
110
- void _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee2() {
111
- var _yield$Promise$all, _yield$Promise$all2, usercode, _ops;
112
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee2$(_context2) {
113
- while (1) switch (_context2.prev = _context2.next) {
114
- case 0:
115
- _context2.prev = 0;
116
- _context2.next = 3;
117
- return Promise.all([apiClient.getOrgMaterialExerciseUsercodeGet({
118
- exerciseRoomId: exerciseRoomId,
119
- filename: filename
120
- }), apiClient.getOrgMaterialExerciseUsercodeOpList({
121
- exerciseRoomId: exerciseRoomId,
122
- filename: filename,
123
- offset: 0,
124
- count: OP_FETCHING_COUNT,
125
- isOpComposed: false
126
- })]);
127
- case 3:
128
- _yield$Promise$all = _context2.sent;
129
- _yield$Promise$all2 = _rollupPluginBabelHelpers.slicedToArray(_yield$Promise$all, 2);
130
- usercode = _yield$Promise$all2[0].usercode;
131
- _ops = _yield$Promise$all2[1].ops;
132
- latestDocRef.current = usercode.content;
133
- setDoc(usercode.content);
134
- setOps(_ops);
135
- setVersion(_ops[0].version);
136
- setLatestVersion(_ops[0].version);
137
- if (_ops.length < _ops[0].version) {
138
- setHasMoreVersion(true);
139
- }
140
- _context2.next = 17;
141
- break;
142
- case 15:
143
- _context2.prev = 15;
144
- _context2.t0 = _context2["catch"](0);
145
- case 17:
146
- case "end":
147
- return _context2.stop();
69
+ void (async () => {
70
+ try {
71
+ const [{
72
+ usercode
73
+ }, {
74
+ ops
75
+ }] = await Promise.all([apiClient.getOrgMaterialExerciseUsercodeGet({
76
+ exerciseRoomId,
77
+ filename
78
+ }), apiClient.getOrgMaterialExerciseUsercodeOpList({
79
+ exerciseRoomId,
80
+ filename,
81
+ offset: 0,
82
+ count: OP_FETCHING_COUNT,
83
+ isOpComposed: false
84
+ })]);
85
+ latestDocRef.current = usercode.content;
86
+ setDoc(usercode.content);
87
+ setOps(ops);
88
+ setVersion(ops[0].version);
89
+ setLatestVersion(ops[0].version);
90
+ if (ops.length < ops[0].version) {
91
+ setHasMoreVersion(true);
148
92
  }
149
- }, _callee2, null, [[0, 15]]);
150
- }))();
93
+ } catch (_) {
94
+ //
95
+ }
96
+ })();
151
97
  });
152
98
  //
153
99
  //
154
100
  //
155
- React.useEffect(function () {
101
+ React.useEffect(() => {
156
102
  setHasMoreVersion(latestVersion !== undefined && ops.length < latestVersion);
157
103
  }, [latestVersion, ops]);
158
104
  //
159
105
  //
160
106
  //
161
107
  return {
162
- doc: doc,
163
- ops: ops,
164
- version: version,
165
- latestVersion: latestVersion,
166
- hasMoreVersion: hasMoreVersion,
167
- changeVersion: changeVersion,
168
- loadMoreVersions: loadMoreVersions
108
+ doc,
109
+ ops,
110
+ version,
111
+ latestVersion,
112
+ hasMoreVersion,
113
+ changeVersion,
114
+ loadMoreVersions
169
115
  };
170
116
  };
171
117
 
package/cjs/index.js CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var MaterialExercise = require('./components/material-exercise/MaterialExercise.js');
6
4
  var MaterialExerciseMobile = require('./components/material-exercise/MaterialExerciseMobile.js');
7
5
  var MonacoEditorLazy = require('./components/shared/monaco-editor/MonacoEditorLazy.js');
@@ -13,10 +11,10 @@ var preferences = require('./components/shared/monaco-editor/constants/monaco/pr
13
11
 
14
12
 
15
13
 
16
- exports.MaterialExercise = MaterialExercise["default"];
17
- exports.MaterialExerciseMobile = MaterialExerciseMobile["default"];
18
- exports.MonacoEditorLazy = MonacoEditorLazy["default"];
19
- exports.MonacoEditorPerference = MonacoEditorPerferenceForm["default"];
14
+ exports.MaterialExercise = MaterialExercise.default;
15
+ exports.MaterialExerciseMobile = MaterialExerciseMobile.default;
16
+ exports.MonacoEditorLazy = MonacoEditorLazy.default;
17
+ exports.MonacoEditorPerference = MonacoEditorPerferenceForm.default;
20
18
  exports.getLanguageFromFilename = monacoLanguage.getLanguageFromFilename;
21
19
  exports.normalizeMonacoPreference = monacoPreference.normalizeMonacoPreference;
22
20
  exports.TM_LANGUAGES = index.TM_LANGUAGES;
@@ -1,15 +1,12 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
6
3
  var arduino = require('../constants/arduino.js');
7
4
 
8
5
  /**
9
6
  * Create url to communicate with arduino.
10
7
  */
11
8
  function createArduinoUrl(options) {
12
- var url = new URL("".concat(options.protocol, "://127.0.0.1"));
9
+ const url = new URL(`${options.protocol}://127.0.0.1`);
13
10
  if (options.pathname) {
14
11
  url.pathname = options.pathname;
15
12
  }
@@ -22,21 +19,12 @@ function createArduinoUrl(options) {
22
19
  *
23
20
  */
24
21
  function getArduinoBoardType(port) {
25
- var boards = arduino.ARDUINO_VENDOR_PRODUCT_IDS;
26
- for (var board in boards) {
27
- var _iterator = _rollupPluginBabelHelpers.createForOfIteratorHelper(boards[board]),
28
- _step;
29
- try {
30
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
31
- var pair = _step.value;
32
- if (pair.vendorId === port.VendorID && pair.productId === port.ProductID) {
33
- return board;
34
- }
22
+ const boards = arduino.ARDUINO_VENDOR_PRODUCT_IDS;
23
+ for (const board in boards) {
24
+ for (const pair of boards[board]) {
25
+ if (pair.vendorId === port.VendorID && pair.productId === port.ProductID) {
26
+ return board;
35
27
  }
36
- } catch (err) {
37
- _iterator.e(err);
38
- } finally {
39
- _iterator.f();
40
28
  }
41
29
  }
42
30
  return null;
@@ -45,8 +33,8 @@ function getArduinoBoardType(port) {
45
33
  *
46
34
  */
47
35
  function getDisplayName(port) {
48
- var type = getArduinoBoardType(port);
49
- var displayName = type !== null && Object.keys(arduino.ARDUINO_BOARD_NAMES).includes(type) ? "".concat(arduino.ARDUINO_BOARD_NAMES[type]) : "Unsupported Device";
36
+ const type = getArduinoBoardType(port);
37
+ const displayName = type !== null && Object.keys(arduino.ARDUINO_BOARD_NAMES).includes(type) ? `${arduino.ARDUINO_BOARD_NAMES[type]}` : `Unsupported Device`;
50
38
  return displayName;
51
39
  }
52
40
  /**
@@ -54,22 +42,20 @@ function getDisplayName(port) {
54
42
  */
55
43
  function getPortFromName(ports, name) {
56
44
  var _a;
57
- return (_a = ports.filter(function (port) {
58
- return port.Name === name;
59
- })[0]) !== null && _a !== void 0 ? _a : null;
45
+ return (_a = ports.filter(port => port.Name === name)[0]) !== null && _a !== void 0 ? _a : null;
60
46
  }
61
47
  /**
62
48
  *
63
49
  */
64
50
  function getFileContent(encoded) {
65
- var file = encoded.split(',');
51
+ const file = encoded.split(',');
66
52
  return file[1];
67
53
  }
68
54
  /**
69
55
  *
70
56
  */
71
57
  function getFQBN(device) {
72
- var type = getArduinoBoardType(device);
58
+ const type = getArduinoBoardType(device);
73
59
  if (type) {
74
60
  return arduino.ARDUINO_BOARD_FQBN[type];
75
61
  }
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  //
6
4
  //
7
5
  //
@@ -28,9 +26,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
28
26
  /**
29
27
  * Check whether the exercise file is editable.
30
28
  */
31
- var checkExerciseFileEditable = function checkExerciseFileEditable(filename, _ref) {
32
- var exercise = _ref.exercise,
33
- exerciseRoom = _ref.exerciseRoom;
29
+ const checkExerciseFileEditable = (filename, {
30
+ exercise,
31
+ exerciseRoom
32
+ }) => {
34
33
  var _a;
35
34
  if (!filename) {
36
35
  return false;
@@ -40,16 +39,17 @@ var checkExerciseFileEditable = function checkExerciseFileEditable(filename, _re
40
39
  /**
41
40
  * Check whether the exercise file is resettable.
42
41
  */
43
- var checkExerciseFileResettable = function checkExerciseFileResettable(filename, _ref2) {
44
- var exercise = _ref2.exercise,
45
- exerciseRoom = _ref2.exerciseRoom;
42
+ const checkExerciseFileResettable = (filename, {
43
+ exercise,
44
+ exerciseRoom
45
+ }) => {
46
46
  var _a, _b, _c;
47
47
  if (!filename) {
48
48
  return false;
49
49
  }
50
50
  return [checkExerciseFileEditable(filename, {
51
- exercise: exercise,
52
- exerciseRoom: exerciseRoom
51
+ exercise,
52
+ exerciseRoom
53
53
  }), (_a = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _a === void 0 ? void 0 : _a.taskFilelist.includes(filename), !((_b = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _b === void 0 ? void 0 : _b.readOnlyFilelist.includes(filename)), !((_c = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _c === void 0 ? void 0 : _c.hiddenFilelist.includes(filename))].every(Boolean);
54
54
  };
55
55
 
@@ -1,78 +1,62 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  //
6
4
  // This logic is based on the following spreadsheet.
7
5
  // https://docs.google.com/spreadsheets/d/1AeIf1eIlxp2MFR5hZijr-s304xVHMdtuAzcODS6nL-g/edit#gid=0
8
6
  //
9
- var PythonRuntimeErrorRegex = new RegExp(/Traceback \(most recent call last\):\n\s*File "\S+", line \d+, in \S+\n\s*.*\n(.+\n)*\S+Error:\s.+/gm);
10
- var PythonSyntaxErrorRegex = new RegExp(/File "(.*?)", line (\d+)\n\s*.+\n\s*(\^+)\n(.+)Error:\s(.+)/gm);
11
- var CCCPCompileErrorRegex = new RegExp(/(.*?):(\d+):(\d+):\s+(warning|error|note):\s+(.*)(\n.+\n.+)?/gm);
12
- var CCCPRuntimeErrorRegex = new RegExp(/(\w+ fault)\s+\(.*\)/gm);
13
- var JavaCompileErrorRegex = new RegExp(/(.*?):(\d+):\s+error:\s+(.*)\n.+\n.+(\n\s*symbol.+)?(\n\s*location.+)?/gm);
14
- var JavaRuntimeErrorRegex = new RegExp(/^Exception in thread ".+" (.+)$\n((?:\s+at .+$\n)+)/gm);
15
- var JavascriptRuntimeErrorRegex = new RegExp(/(Uncaught )?(\w+Error):\s+(.*)\n((?:\s+at .+$\n)+)/gm);
7
+ const PythonRuntimeErrorRegex = new RegExp(/Traceback \(most recent call last\):\n\s*File "\S+", line \d+, in \S+\n\s*.*\n(.+\n)*\S+Error:\s.+/gm);
8
+ const PythonSyntaxErrorRegex = new RegExp(/File "(.*?)", line (\d+)\n\s*.+\n\s*(\^+)\n(.+)Error:\s(.+)/gm);
9
+ const CCCPCompileErrorRegex = new RegExp(/(.*?):(\d+):(\d+):\s+(warning|error|note):\s+(.*)(\n.+\n.+)?/gm);
10
+ const CCCPRuntimeErrorRegex = new RegExp(/(\w+ fault)\s+\(.*\)/gm);
11
+ const JavaCompileErrorRegex = new RegExp(/(.*?):(\d+):\s+error:\s+(.*)\n.+\n.+(\n\s*symbol.+)?(\n\s*location.+)?/gm);
12
+ const JavaRuntimeErrorRegex = new RegExp(/^Exception in thread ".+" (.+)$\n((?:\s+at .+$\n)+)/gm);
13
+ const JavascriptRuntimeErrorRegex = new RegExp(/(Uncaught )?(\w+Error):\s+(.*)\n((?:\s+at .+$\n)+)/gm);
16
14
  /**
17
15
  * Get Programming Error Results from text.
18
16
  */
19
17
  function getProgrammingErrorResult(text) {
20
18
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
21
- var escapedText = text.replace(/[\r|\\]/gm, '');
19
+ const escapedText = text.replace(/[\r|\\]/gm, '');
22
20
  switch (true) {
23
21
  case PythonRuntimeErrorRegex.test(escapedText):
24
22
  return {
25
- errorCode: (_b = (_a = escapedText.match(PythonRuntimeErrorRegex)) === null || _a === void 0 ? void 0 : _a.reduce(function (acc, curr) {
26
- return acc + '\n' + curr;
27
- })) !== null && _b !== void 0 ? _b : '',
23
+ errorCode: (_b = (_a = escapedText.match(PythonRuntimeErrorRegex)) === null || _a === void 0 ? void 0 : _a.reduce((acc, curr) => acc + '\n' + curr)) !== null && _b !== void 0 ? _b : '',
28
24
  errorLangType: 'python',
29
25
  errorType: 'runtime'
30
26
  };
31
27
  case PythonSyntaxErrorRegex.test(escapedText):
32
28
  return {
33
- errorCode: (_d = (_c = escapedText.match(PythonSyntaxErrorRegex)) === null || _c === void 0 ? void 0 : _c.reduce(function (acc, curr) {
34
- return acc + '\n' + curr;
35
- })) !== null && _d !== void 0 ? _d : '',
29
+ errorCode: (_d = (_c = escapedText.match(PythonSyntaxErrorRegex)) === null || _c === void 0 ? void 0 : _c.reduce((acc, curr) => acc + '\n' + curr)) !== null && _d !== void 0 ? _d : '',
36
30
  errorLangType: 'python',
37
31
  errorType: 'syntax'
38
32
  };
39
33
  case CCCPCompileErrorRegex.test(escapedText):
40
34
  return {
41
- errorCode: (_f = (_e = escapedText.match(CCCPCompileErrorRegex)) === null || _e === void 0 ? void 0 : _e.reduce(function (acc, curr) {
42
- return acc + '\n' + curr;
43
- })) !== null && _f !== void 0 ? _f : '',
35
+ errorCode: (_f = (_e = escapedText.match(CCCPCompileErrorRegex)) === null || _e === void 0 ? void 0 : _e.reduce((acc, curr) => acc + '\n' + curr)) !== null && _f !== void 0 ? _f : '',
44
36
  errorLangType: 'c/cpp',
45
37
  errorType: 'compile'
46
38
  };
47
39
  case CCCPRuntimeErrorRegex.test(escapedText):
48
40
  return {
49
- errorCode: (_h = (_g = escapedText.match(CCCPRuntimeErrorRegex)) === null || _g === void 0 ? void 0 : _g.reduce(function (acc, curr) {
50
- return acc + '\n' + curr;
51
- })) !== null && _h !== void 0 ? _h : '',
41
+ errorCode: (_h = (_g = escapedText.match(CCCPRuntimeErrorRegex)) === null || _g === void 0 ? void 0 : _g.reduce((acc, curr) => acc + '\n' + curr)) !== null && _h !== void 0 ? _h : '',
52
42
  errorLangType: 'c/cpp',
53
43
  errorType: 'runtime'
54
44
  };
55
45
  case JavaCompileErrorRegex.test(escapedText):
56
46
  return {
57
- errorCode: (_k = (_j = escapedText.match(JavaCompileErrorRegex)) === null || _j === void 0 ? void 0 : _j.reduce(function (acc, curr) {
58
- return acc + '\n' + curr;
59
- })) !== null && _k !== void 0 ? _k : '',
47
+ errorCode: (_k = (_j = escapedText.match(JavaCompileErrorRegex)) === null || _j === void 0 ? void 0 : _j.reduce((acc, curr) => acc + '\n' + curr)) !== null && _k !== void 0 ? _k : '',
60
48
  errorLangType: 'java',
61
49
  errorType: 'compile'
62
50
  };
63
51
  case JavaRuntimeErrorRegex.test(escapedText):
64
52
  return {
65
- errorCode: (_m = (_l = escapedText.match(JavaRuntimeErrorRegex)) === null || _l === void 0 ? void 0 : _l.reduce(function (acc, curr) {
66
- return acc + '\n' + curr;
67
- })) !== null && _m !== void 0 ? _m : '',
53
+ errorCode: (_m = (_l = escapedText.match(JavaRuntimeErrorRegex)) === null || _l === void 0 ? void 0 : _l.reduce((acc, curr) => acc + '\n' + curr)) !== null && _m !== void 0 ? _m : '',
68
54
  errorLangType: 'java',
69
55
  errorType: 'runtime'
70
56
  };
71
57
  case JavascriptRuntimeErrorRegex.test(escapedText):
72
58
  return {
73
- errorCode: (_p = (_o = escapedText.match(JavascriptRuntimeErrorRegex)) === null || _o === void 0 ? void 0 : _o.reduce(function (acc, curr) {
74
- return acc + '\n' + curr;
75
- })) !== null && _p !== void 0 ? _p : '',
59
+ errorCode: (_p = (_o = escapedText.match(JavascriptRuntimeErrorRegex)) === null || _o === void 0 ? void 0 : _o.reduce((acc, curr) => acc + '\n' + curr)) !== null && _p !== void 0 ? _p : '',
76
60
  errorLangType: 'javascript',
77
61
  errorType: 'runtime'
78
62
  };
@@ -1,7 +1,7 @@
1
- var en = {
1
+ const en = {
2
2
  'materialExercise.button.referenceDocs': 'Reference Docs'
3
3
  };
4
- var ko = {
4
+ const ko = {
5
5
  'materialExercise.button.referenceDocs': '언어 레퍼런스'
6
6
  };
7
7
 
@@ -33,22 +33,24 @@ import { en } from './MaterialExercise.i18n.js';
33
33
  /**
34
34
  * Material exercise.
35
35
  */
36
- var MaterialExercise = forwardRef(function (props, ref) {
37
- var intl = useIntl();
38
- var _React$useContext = React.useContext(ExerciseContext),
39
- onReferenceDocsToggle = _React$useContext.onReferenceDocsToggle;
40
- var _useRecoilValue = useRecoilValue(exerciseContainerSizeState),
41
- width = _useRecoilValue.width,
42
- height = _useRecoilValue.height;
43
- var exercise = useRecoilValue(exerciseState(props.materialExerciseId));
44
- var exerciseFileTreeOpened = useRecoilValue(exerciseFileTreeOpenedState);
45
- var exercisePreviewType = useRecoilValue(exercisePreviewTypeState(props.materialExerciseId));
46
- var exercisePreviewDisplayMode = useRecoilValue(exercisePreviewDisplayModeState);
47
- var exerciseMonacoEditorApis = useRecoilValue(exerciseMonacoEditorApisState);
36
+ const MaterialExercise = forwardRef((props, ref) => {
37
+ const intl = useIntl();
38
+ const {
39
+ onReferenceDocsToggle
40
+ } = React.useContext(ExerciseContext);
41
+ const {
42
+ width,
43
+ height
44
+ } = useRecoilValue(exerciseContainerSizeState);
45
+ const exercise = useRecoilValue(exerciseState(props.materialExerciseId));
46
+ const exerciseFileTreeOpened = useRecoilValue(exerciseFileTreeOpenedState);
47
+ const exercisePreviewType = useRecoilValue(exercisePreviewTypeState(props.materialExerciseId));
48
+ const exercisePreviewDisplayMode = useRecoilValue(exercisePreviewDisplayModeState);
49
+ const exerciseMonacoEditorApis = useRecoilValue(exerciseMonacoEditorApisState);
48
50
  /**
49
51
  * File tree
50
52
  */
51
- var renderExerciseFileTree = function renderExerciseFileTree() {
53
+ const renderExerciseFileTree = () => {
52
54
  return React.createElement(StyledxerciseFileTreeContaner, {
53
55
  "aria-hidden": !exerciseFileTreeOpened
54
56
  }, React.createElement(ResizableNext, Object.assign({}, MATERIAL_RESIZABLE_COMMON_PROPS, {
@@ -60,19 +62,19 @@ var MaterialExercise = forwardRef(function (props, ref) {
60
62
  /**
61
63
  * File tree toggle button
62
64
  */
63
- var renderExerciseFileTreeButton = function renderExerciseFileTreeButton() {
65
+ const renderExerciseFileTreeButton = () => {
64
66
  return React.createElement(ExerciseFileTabsFileTreeButton, null);
65
67
  };
66
68
  /**
67
69
  * File tabs
68
70
  */
69
- var renderExerciseFileTabs = function renderExerciseFileTabs() {
71
+ const renderExerciseFileTabs = () => {
70
72
  return React.createElement(StyledExerciseTabsWrap, null, React.createElement(ExerciseFileTabsLazy, null));
71
73
  };
72
74
  /**
73
75
  * reference docs toggle button
74
76
  */
75
- var renderExerciseReferenceDocsToggleButton = function renderExerciseReferenceDocsToggleButton() {
77
+ const renderExerciseReferenceDocsToggleButton = () => {
76
78
  if (typeof onReferenceDocsToggle !== 'function') {
77
79
  return null;
78
80
  }
@@ -96,19 +98,19 @@ var MaterialExercise = forwardRef(function (props, ref) {
96
98
  /**
97
99
  * Menu
98
100
  */
99
- var renderExerciseMenu = function renderExerciseMenu() {
101
+ const renderExerciseMenu = () => {
100
102
  return React.createElement(StyledExerciseTabMenuWrap, null, renderExerciseReferenceDocsToggleButton(), React.createElement(ExerciseMultilangDropdownLazy, null), React.createElement(ExerciseMenu, null));
101
103
  };
102
104
  /**
103
105
  * Code editor and file viewer
104
106
  */
105
- var renderExerciseFile = function renderExerciseFile() {
107
+ const renderExerciseFile = () => {
106
108
  return React.createElement(StyledExerciseFileWrap, null, React.createElement(ExerciseFile, null));
107
109
  };
108
110
  /**
109
111
  * Exercise preview (side by side)
110
112
  */
111
- var renderExercisePreviewSideBySide = function renderExercisePreviewSideBySide() {
113
+ const renderExercisePreviewSideBySide = () => {
112
114
  if (exercisePreviewType === ExercisePreviewType.None) {
113
115
  return null;
114
116
  }
@@ -125,7 +127,7 @@ var MaterialExercise = forwardRef(function (props, ref) {
125
127
  /**
126
128
  * Exercise main
127
129
  */
128
- var renderExerciseMain = function renderExerciseMain() {
130
+ const renderExerciseMain = () => {
129
131
  if (exercise === null || exercise === void 0 ? void 0 : exercise.uiConfig.isEditorDisabled) {
130
132
  return null;
131
133
  }
@@ -134,8 +136,8 @@ var MaterialExercise = forwardRef(function (props, ref) {
134
136
  /**
135
137
  * Exercise Runner
136
138
  */
137
- var renderExerciseRunner = function renderExerciseRunner() {
138
- var _runner = React.createElement(StyledExerciseRunnerWrap, null, React.createElement(ExerciseRunner, {
139
+ const renderExerciseRunner = () => {
140
+ const _runner = React.createElement(StyledExerciseRunnerWrap, null, React.createElement(ExerciseRunner, {
139
141
  exercisePreview: React.createElement(ExercisePreview, null)
140
142
  }));
141
143
  if (exercise === null || exercise === void 0 ? void 0 : exercise.uiConfig.isEditorDisabled) {
@@ -150,16 +152,12 @@ var MaterialExercise = forwardRef(function (props, ref) {
150
152
  //
151
153
  //
152
154
  //
153
- React.useImperativeHandle(ref, function () {
154
- return {
155
- sendTextToRunner: function sendTextToRunner(text) {
156
- exerciseRunnerTextSend$.next(text);
157
- },
158
- getMonacoEditorApis: function getMonacoEditorApis() {
159
- return exerciseMonacoEditorApis;
160
- }
161
- };
162
- }, [exerciseMonacoEditorApis]);
155
+ React.useImperativeHandle(ref, () => ({
156
+ sendTextToRunner: text => {
157
+ exerciseRunnerTextSend$.next(text);
158
+ },
159
+ getMonacoEditorApis: () => exerciseMonacoEditorApis
160
+ }), [exerciseMonacoEditorApis]);
163
161
  //
164
162
  //
165
163
  //
@@ -168,9 +166,10 @@ var MaterialExercise = forwardRef(function (props, ref) {
168
166
  //
169
167
  //
170
168
  //
171
- var MaterialExercise$1 = withForwardRefMaterial(forwardRef(function (props, ref) {
172
- var _props$locale = props.locale,
173
- locale = _props$locale === void 0 ? 'en' : _props$locale;
169
+ var MaterialExercise$1 = withForwardRefMaterial(forwardRef((props, ref) => {
170
+ const {
171
+ locale = 'en'
172
+ } = props;
174
173
  return React.createElement(IntlProvider, {
175
174
  locale: locale,
176
175
  defaultLocale: "en",