@elice/material-exercise 1.231227.0 → 1.240112.0-cloud.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,8 +1,5 @@
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 recoil = require('recoil');
@@ -15,84 +12,63 @@ require('../components/material-exercise/context/ExerciseProvider.js');
15
12
  var arduino$1 = require('../constants/arduino.js');
16
13
  var arduino = require('../utils/arduino.js');
17
14
 
18
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
-
20
- var io__default = /*#__PURE__*/_interopDefaultLegacy(io);
21
-
22
15
  //
23
16
  //
24
17
  //
25
- var AGENT_INIT_DELAY = 500;
26
- var AGENT_REDISCOVER_DELAY = 10000;
27
- var AGENT_CHECK_PING_INTERVAL = 2000;
18
+ const AGENT_INIT_DELAY = 500;
19
+ const AGENT_REDISCOVER_DELAY = 10000;
20
+ const AGENT_CHECK_PING_INTERVAL = 2000;
28
21
  //
29
22
  //
30
23
  //
31
- var useArduino = function useArduino(_ref) {
32
- var writeTerminal = _ref.writeTerminal;
33
- var _return = React.useRef({});
24
+ const useArduino = ({
25
+ writeTerminal
26
+ }) => {
27
+ const _return = React.useRef({});
34
28
  // ports
35
- var _useRecoilState = recoil.useRecoilState(recoil$1.exerciseArduinoPortsState),
36
- _useRecoilState2 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState, 2),
37
- ports = _useRecoilState2[0],
38
- setPorts = _useRecoilState2[1];
39
- var _useRecoilState3 = recoil.useRecoilState(recoil$1.exerciseArduinoOpenedPortNameState),
40
- _useRecoilState4 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState3, 2),
41
- openedPortName = _useRecoilState4[0],
42
- setOpenedPortName = _useRecoilState4[1];
29
+ const [ports, setPorts] = recoil.useRecoilState(recoil$1.exerciseArduinoPortsState);
30
+ const [openedPortName, setOpenedPortName] = recoil.useRecoilState(recoil$1.exerciseArduinoOpenedPortNameState);
43
31
  // connection state
44
- var setAgentConnectionStatus = recoil.useSetRecoilState(recoil$1.exerciseArduinoAgentConnectionState);
32
+ const setAgentConnectionStatus = recoil.useSetRecoilState(recoil$1.exerciseArduinoAgentConnectionState);
45
33
  // upload progress
46
- var _useRecoilState5 = recoil.useRecoilState(recoil$1.exerciseArduinoUploadProgressState),
47
- _useRecoilState6 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState5, 2),
48
- uploadProgress = _useRecoilState6[0],
49
- setUploadProgress = _useRecoilState6[1];
50
- var previousUploadProgress = reactUse.usePrevious(uploadProgress);
34
+ const [uploadProgress, setUploadProgress] = recoil.useRecoilState(recoil$1.exerciseArduinoUploadProgressState);
35
+ const previousUploadProgress = reactUse.usePrevious(uploadProgress);
51
36
  // preferences
52
- var _useRecoilState7 = recoil.useRecoilState(recoil$1.exerciseArduinoPreferenceState),
53
- _useRecoilState8 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState7, 2),
54
- preference = _useRecoilState8[0],
55
- setPreference = _useRecoilState8[1];
56
- var setOnSelectPort = recoil.useSetRecoilState(recoil$1.exerciseArduinoOnSelectPortState);
37
+ const [preference, setPreference] = recoil.useRecoilState(recoil$1.exerciseArduinoPreferenceState);
38
+ const setOnSelectPort = recoil.useSetRecoilState(recoil$1.exerciseArduinoOnSelectPortState);
57
39
  // internal state
58
- var state = React.useRef({
40
+ const state = React.useRef({
59
41
  openedPortName: null,
60
42
  uploadingPortName: null,
61
43
  ports: []
62
44
  });
63
- var socket = React.useRef(null);
64
- var pingInterval = React.useRef(null);
65
- var _useState = React.useState(false),
66
- _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
67
- enabled = _useState2[0],
68
- setEnabled = _useState2[1];
69
- var _useState3 = React.useState(null),
70
- _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
71
- agentHttpPort = _useState4[0],
72
- setAgentHttpPort = _useState4[1];
45
+ const socket = React.useRef(null);
46
+ const pingInterval = React.useRef(null);
47
+ const [enabled, setEnabled] = React.useState(false);
48
+ const [agentHttpPort, setAgentHttpPort] = React.useState(null);
73
49
  /**
74
50
  * Discovers arduino agent and connects.
75
51
  */
76
- var init = function init() {
52
+ const init = () => {
77
53
  setEnabled(true);
78
54
  };
79
55
  /**
80
56
  * Closes all connection and destroys arduino agent.
81
57
  */
82
- var destroy = function destroy() {
58
+ const destroy = () => {
83
59
  setEnabled(false);
84
60
  };
85
61
  /**
86
62
  * Re-initializes arduino agent.
87
63
  */
88
- var reload = function reload() {
64
+ const reload = () => {
89
65
  setEnabled(false);
90
66
  setTimeout(init, 1000);
91
67
  };
92
68
  /**
93
69
  * Close port, websocket and clear the state.
94
70
  */
95
- var reset = function reset() {
71
+ const reset = () => {
96
72
  // close port
97
73
  closePort(state.current.openedPortName);
98
74
  // close websocket
@@ -113,19 +89,16 @@ var useArduino = function useArduino(_ref) {
113
89
  /**
114
90
  * Send command to arduino agent.
115
91
  */
116
- var send = function send(command) {
92
+ const send = (command, ...args) => {
117
93
  var _a, _b;
118
94
  if ((_a = socket.current) === null || _a === void 0 ? void 0 : _a.connected) {
119
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
120
- args[_key - 1] = arguments[_key];
121
- }
122
- (_b = socket.current) === null || _b === void 0 ? void 0 : _b.emit('command', [command].concat(args).join(' '));
95
+ (_b = socket.current) === null || _b === void 0 ? void 0 : _b.emit('command', [command, ...args].join(' '));
123
96
  }
124
97
  };
125
98
  /**
126
99
  * Send text to arduino agent.
127
100
  */
128
- var sendText = function sendText(text) {
101
+ const sendText = text => {
129
102
  if (state.current.openedPortName) {
130
103
  send('send', state.current.openedPortName, text);
131
104
  }
@@ -133,7 +106,7 @@ var useArduino = function useArduino(_ref) {
133
106
  /**
134
107
  * Open port.
135
108
  */
136
- var openPort = function openPort(portName) {
109
+ const openPort = portName => {
137
110
  if (portName) {
138
111
  setOpenedPortName(portName);
139
112
  send('open', portName, preference.baudRate);
@@ -142,7 +115,7 @@ var useArduino = function useArduino(_ref) {
142
115
  /**
143
116
  * Close port.
144
117
  */
145
- var closePort = function closePort(portName) {
118
+ const closePort = portName => {
146
119
  if (portName) {
147
120
  send('close', portName);
148
121
  }
@@ -150,60 +123,34 @@ var useArduino = function useArduino(_ref) {
150
123
  /**
151
124
  * Send list command to the agent.
152
125
  */
153
- var ping = /*#__PURE__*/function () {
154
- var _ref2 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
155
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
156
- while (1) switch (_context.prev = _context.next) {
157
- case 0:
158
- if (agentHttpPort) {
159
- _context.next = 2;
160
- break;
161
- }
162
- return _context.abrupt("return");
163
- case 2:
164
- if (!state.current.uploadingPortName) {
165
- _context.next = 4;
166
- break;
167
- }
168
- return _context.abrupt("return");
169
- case 4:
170
- _context.prev = 4;
171
- _context.next = 7;
172
- return fetch(arduino.createArduinoUrl({
173
- protocol: 'http',
174
- pathname: '/info',
175
- port: agentHttpPort
176
- }));
177
- case 7:
178
- send('list');
179
- _context.next = 14;
180
- break;
181
- case 10:
182
- _context.prev = 10;
183
- _context.t0 = _context["catch"](4);
184
- // if ping fails, reconnect the agent.
185
- reload();
186
- setAgentConnectionStatus('reconnecting');
187
- case 14:
188
- case "end":
189
- return _context.stop();
190
- }
191
- }, _callee, null, [[4, 10]]);
192
- }));
193
- return function ping() {
194
- return _ref2.apply(this, arguments);
195
- };
196
- }();
126
+ const ping = async () => {
127
+ if (!agentHttpPort) {
128
+ return;
129
+ }
130
+ if (state.current.uploadingPortName) {
131
+ return;
132
+ }
133
+ try {
134
+ await fetch(arduino.createArduinoUrl({
135
+ protocol: 'http',
136
+ pathname: '/info',
137
+ port: agentHttpPort
138
+ }));
139
+ send('list');
140
+ } catch (_) {
141
+ // if ping fails, reconnect the agent.
142
+ reload();
143
+ setAgentConnectionStatus('reconnecting');
144
+ }
145
+ };
197
146
  /**
198
147
  * Upload hex file to the agent.
199
148
  */
200
- var uploadHexFile = function uploadHexFile(hexFile) {
149
+ const uploadHexFile = hexFile => {
201
150
  if (!agentHttpPort || !state.current.openedPortName) {
202
151
  return;
203
152
  }
204
- var port = state.current.ports.find(function (port) {
205
- return port.Name === state.current.openedPortName;
206
- });
153
+ const port = state.current.ports.find(port => port.Name === state.current.openedPortName);
207
154
  if (!port) {
208
155
  return;
209
156
  }
@@ -217,8 +164,8 @@ var useArduino = function useArduino(_ref) {
217
164
  closePort(state.current.openedPortName);
218
165
  }
219
166
  // get board type and content.
220
- var content = arduino.getFileContent(hexFile.data);
221
- var boradType = arduino.getArduinoBoardType(port);
167
+ const content = arduino.getFileContent(hexFile.data);
168
+ const boradType = arduino.getArduinoBoardType(port);
222
169
  if (!boradType) {
223
170
  return;
224
171
  }
@@ -243,18 +190,16 @@ var useArduino = function useArduino(_ref) {
243
190
  extrafiles: [],
244
191
  signature: arduino$1.AVR_SIGNATURE[boradType]
245
192
  })
246
- }).then(function (res) {
247
- return res.json();
248
- }).then(function () {
193
+ }).then(res => res.json()).then(() => {
249
194
  // no response (202 accepted)
250
- }).catch(function () {
195
+ }).catch(() => {
251
196
  //
252
197
  });
253
198
  };
254
199
  /**
255
200
  * Handler called when user (re-)selects arduino device.
256
201
  */
257
- var onSelectPort = function onSelectPort(name) {
202
+ const onSelectPort = name => {
258
203
  if (name === state.current.openedPortName) {
259
204
  return;
260
205
  }
@@ -268,7 +213,7 @@ var useArduino = function useArduino(_ref) {
268
213
  /**
269
214
  * Handle arduino agent websocket message.
270
215
  */
271
- var handleAgentMsg = function handleAgentMsg(msg) {
216
+ const handleAgentMsg = msg => {
272
217
  // Ports
273
218
  if ('Ports' in msg && msg.Network === false) {
274
219
  handleAgentMsgPorts(msg);
@@ -289,14 +234,12 @@ var useArduino = function useArduino(_ref) {
289
234
  /**
290
235
  * Handle arduino agent websocket message. (Ports)
291
236
  */
292
- var handleAgentMsgPorts = function handleAgentMsgPorts(msg) {
237
+ const handleAgentMsgPorts = msg => {
293
238
  setPorts(msg.Ports);
294
239
  // if port not opened, open new port.
295
240
  if (!state.current.openedPortName && !state.current.uploadingPortName) {
296
- var prefPort = msg.Ports.find(function (port) {
297
- return port.Name === preference.port;
298
- });
299
- var targetPort = prefPort ? prefPort :
241
+ const prefPort = msg.Ports.find(port => port.Name === preference.port);
242
+ const targetPort = prefPort ? prefPort :
300
243
  // if preference port not found, open first port.
301
244
  msg.Ports.length > 0 ? msg.Ports[0] : null;
302
245
  if (targetPort) {
@@ -307,15 +250,13 @@ var useArduino = function useArduino(_ref) {
307
250
  /**
308
251
  * Handle arduino agent websocket message. (Cmd)
309
252
  */
310
- var handleAgentMsgCmd = function handleAgentMsgCmd(msg) {
253
+ const handleAgentMsgCmd = msg => {
311
254
  switch (msg.Cmd) {
312
255
  case 'Open':
313
256
  setOpenedPortName(msg.Port);
314
- setPreference(function (prev) {
315
- return Object.assign(Object.assign({}, prev), {
316
- port: msg.Port
317
- });
318
- });
257
+ setPreference(prev => Object.assign(Object.assign({}, prev), {
258
+ port: msg.Port
259
+ }));
319
260
  break;
320
261
  case 'OpenFail':
321
262
  closePort(msg.Port);
@@ -328,7 +269,7 @@ var useArduino = function useArduino(_ref) {
328
269
  /**
329
270
  * Handle arduino agent websocket message. (ProgrammerStatus)
330
271
  */
331
- var handleAgentMsgProgram = function handleAgentMsgProgram(msg) {
272
+ const handleAgentMsgProgram = msg => {
332
273
  switch (msg.ProgrammerStatus) {
333
274
  case 'Starting':
334
275
  setUploadProgress('starting');
@@ -340,142 +281,81 @@ var useArduino = function useArduino(_ref) {
340
281
  setUploadProgress('done');
341
282
  openPort(state.current.uploadingPortName);
342
283
  state.current.uploadingPortName = null;
343
- window.setTimeout(function () {
344
- return setUploadProgress('ready');
345
- }, arduino$1.DISABLE_TIME_AFTER_UPLOAD);
284
+ window.setTimeout(() => setUploadProgress('ready'), arduino$1.DISABLE_TIME_AFTER_UPLOAD);
346
285
  return;
347
286
  case 'Error':
348
287
  setUploadProgress('error');
349
288
  openPort(state.current.uploadingPortName);
350
289
  state.current.uploadingPortName = null;
351
- window.setTimeout(function () {
352
- return setUploadProgress('ready');
353
- }, arduino$1.DISABLE_TIME_AFTER_UPLOAD);
290
+ window.setTimeout(() => setUploadProgress('ready'), arduino$1.DISABLE_TIME_AFTER_UPLOAD);
354
291
  return;
355
292
  }
356
293
  };
357
294
  /**
358
295
  * Handle arduino agent websocket message. (D)
359
296
  */
360
- var handleAgentMsgD = function handleAgentMsgD(msg) {
297
+ const handleAgentMsgD = msg => {
361
298
  writeTerminal(msg.D);
362
299
  };
363
300
  //
364
301
  // Sync `openedPortName` recoil state with internal ref.
365
302
  //
366
- React.useEffect(function () {
303
+ React.useEffect(() => {
367
304
  state.current.openedPortName = openedPortName;
368
305
  }, [openedPortName]);
369
306
  //
370
307
  // Sync `ports` recoil state with internal ref.
371
308
  //
372
- React.useEffect(function () {
309
+ React.useEffect(() => {
373
310
  state.current.ports = ports;
374
311
  }, [ports]);
375
312
  //
376
313
  // Discover arduino agent port.
377
314
  //
378
- React.useEffect(function () {
315
+ React.useEffect(() => {
379
316
  if (!enabled) {
380
317
  return;
381
318
  }
382
- var abortCtrl = new AbortController();
383
- var reconnectTimeout = null;
319
+ const abortCtrl = new AbortController();
320
+ let reconnectTimeout = null;
384
321
  /** Scan port. */
385
- var _scan = /*#__PURE__*/function () {
386
- var _ref3 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee2() {
387
- var _iterator, _step, port;
388
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee2$(_context2) {
389
- while (1) switch (_context2.prev = _context2.next) {
390
- case 0:
391
- _iterator = _rollupPluginBabelHelpers.createForOfIteratorHelper(arduino$1.ARDUINO_AGENT_PORTS);
392
- _context2.prev = 1;
393
- _iterator.s();
394
- case 3:
395
- if ((_step = _iterator.n()).done) {
396
- _context2.next = 17;
397
- break;
398
- }
399
- port = _step.value;
400
- _context2.prev = 5;
401
- _context2.next = 8;
402
- return fetch(arduino.createArduinoUrl({
403
- protocol: 'http',
404
- pathname: '/info',
405
- port: port
406
- }), {
407
- signal: abortCtrl.signal
408
- });
409
- case 8:
410
- return _context2.abrupt("return", port);
411
- case 11:
412
- _context2.prev = 11;
413
- _context2.t0 = _context2["catch"](5);
414
- if (!(_context2.t0.name === 'AbortError')) {
415
- _context2.next = 15;
416
- break;
417
- }
418
- throw _context2.t0;
419
- case 15:
420
- _context2.next = 3;
421
- break;
422
- case 17:
423
- _context2.next = 22;
424
- break;
425
- case 19:
426
- _context2.prev = 19;
427
- _context2.t1 = _context2["catch"](1);
428
- _iterator.e(_context2.t1);
429
- case 22:
430
- _context2.prev = 22;
431
- _iterator.f();
432
- return _context2.finish(22);
433
- case 25:
434
- return _context2.abrupt("return", null);
435
- case 26:
436
- case "end":
437
- return _context2.stop();
322
+ const _scan = async () => {
323
+ for (const port of arduino$1.ARDUINO_AGENT_PORTS) {
324
+ try {
325
+ await fetch(arduino.createArduinoUrl({
326
+ protocol: 'http',
327
+ pathname: '/info',
328
+ port
329
+ }), {
330
+ signal: abortCtrl.signal
331
+ });
332
+ return port;
333
+ } catch (err) {
334
+ // throw error on `AbortError`, to stop scan.
335
+ if (err.name === 'AbortError') {
336
+ throw err;
438
337
  }
439
- }, _callee2, null, [[1, 19, 22, 25], [5, 11]]);
440
- }));
441
- return function _scan() {
442
- return _ref3.apply(this, arguments);
443
- };
444
- }();
338
+ }
339
+ }
340
+ return null;
341
+ };
445
342
  /** Scan port to discover until found. */
446
- var _discover = /*#__PURE__*/function () {
447
- var _ref4 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee3() {
448
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee3$(_context3) {
449
- while (1) switch (_context3.prev = _context3.next) {
450
- case 0:
451
- void _scan().then(function (port) {
452
- // if port found, stop scanning and set port
453
- if (port) {
454
- setAgentHttpPort(port);
455
- }
456
- // or start scanning again
457
- else {
458
- reconnectTimeout = window.setTimeout(function () {
459
- return void _discover();
460
- }, AGENT_REDISCOVER_DELAY);
461
- }
462
- }).catch(function () {
463
- return void 0;
464
- });
465
- case 1:
466
- case "end":
467
- return _context3.stop();
468
- }
469
- }, _callee3);
470
- }));
471
- return function _discover() {
472
- return _ref4.apply(this, arguments);
473
- };
474
- }();
343
+ const _discover = async () => {
344
+ void _scan().then(port => {
345
+ // if port found, stop scanning and set port
346
+ if (port) {
347
+ setAgentHttpPort(port);
348
+ }
349
+ // or start scanning again
350
+ else {
351
+ reconnectTimeout = window.setTimeout(() => void _discover(), AGENT_REDISCOVER_DELAY);
352
+ }
353
+ }).catch(() => void 0);
354
+ };
475
355
  // start scanning...
476
356
  setAgentConnectionStatus('connecting');
477
357
  void _discover();
478
- return function () {
358
+ return () => {
479
359
  abortCtrl.abort();
480
360
  if (reconnectTimeout) {
481
361
  window.clearTimeout(reconnectTimeout);
@@ -488,65 +368,44 @@ var useArduino = function useArduino(_ref) {
488
368
  //
489
369
  // Initialize arduino agent websocket.
490
370
  //
491
- React.useEffect(function () {
371
+ React.useEffect(() => {
492
372
  if (!enabled || !agentHttpPort) {
493
373
  return;
494
374
  }
495
- var _init = /*#__PURE__*/function () {
496
- var _ref5 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee4() {
497
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee4$(_context4) {
498
- while (1) switch (_context4.prev = _context4.next) {
499
- case 0:
500
- _context4.next = 2;
501
- return new Promise(function (r) {
502
- return window.setTimeout(r, AGENT_INIT_DELAY);
503
- });
504
- case 2:
505
- setAgentConnectionStatus('connecting');
506
- // connect socket.io-client to the agent.
507
- socket.current = io__default["default"](arduino.createArduinoUrl({
508
- protocol: 'ws',
509
- port: agentHttpPort
510
- }));
511
- // agent - on message
512
- socket.current.on('message', function (message) {
513
- try {
514
- var msg = JSON.parse(message);
515
- handleAgentMsg(msg);
516
- } catch (e) {
517
- // console.warn(e);
518
- }
519
- });
520
- // agent - on connect
521
- _context4.next = 7;
522
- return new Promise(function (resolve) {
523
- var _a;
524
- return (_a = socket.current) === null || _a === void 0 ? void 0 : _a.on('connect', resolve);
525
- }).then(ping).then(function () {
526
- var _a, _b, _c, _d, _e;
527
- (_a = socket.current) === null || _a === void 0 ? void 0 : _a.emit('command', 'downloadtool windows-drivers latest arduino keep');
528
- (_b = socket.current) === null || _b === void 0 ? void 0 : _b.emit('command', 'downloadtool bossac 1.7.0 arduino keep');
529
- (_c = socket.current) === null || _c === void 0 ? void 0 : _c.emit('command', 'downloadtool fwupdater latest arduino keep');
530
- (_d = socket.current) === null || _d === void 0 ? void 0 : _d.emit('command', 'downloadtool rp2040tools latest arduino keep');
531
- (_e = socket.current) === null || _e === void 0 ? void 0 : _e.emit('command', 'downloadtool avrdude 6.3.0-arduino15 arduino keep');
532
- });
533
- case 7:
534
- setAgentConnectionStatus('connected');
535
- pingInterval.current = window.setInterval(function () {
536
- return void ping();
537
- }, AGENT_CHECK_PING_INTERVAL);
538
- case 9:
539
- case "end":
540
- return _context4.stop();
541
- }
542
- }, _callee4);
375
+ const _init = async () => {
376
+ await new Promise(r => window.setTimeout(r, AGENT_INIT_DELAY));
377
+ setAgentConnectionStatus('connecting');
378
+ // connect socket.io-client to the agent.
379
+ socket.current = io(arduino.createArduinoUrl({
380
+ protocol: 'ws',
381
+ port: agentHttpPort
543
382
  }));
544
- return function _init() {
545
- return _ref5.apply(this, arguments);
546
- };
547
- }();
383
+ // agent - on message
384
+ socket.current.on('message', message => {
385
+ try {
386
+ const msg = JSON.parse(message);
387
+ handleAgentMsg(msg);
388
+ } catch (e) {
389
+ // console.warn(e);
390
+ }
391
+ });
392
+ // agent - on connect
393
+ await new Promise(resolve => {
394
+ var _a;
395
+ return (_a = socket.current) === null || _a === void 0 ? void 0 : _a.on('connect', resolve);
396
+ }).then(ping).then(() => {
397
+ var _a, _b, _c, _d, _e;
398
+ (_a = socket.current) === null || _a === void 0 ? void 0 : _a.emit('command', 'downloadtool windows-drivers latest arduino keep');
399
+ (_b = socket.current) === null || _b === void 0 ? void 0 : _b.emit('command', 'downloadtool bossac 1.7.0 arduino keep');
400
+ (_c = socket.current) === null || _c === void 0 ? void 0 : _c.emit('command', 'downloadtool fwupdater latest arduino keep');
401
+ (_d = socket.current) === null || _d === void 0 ? void 0 : _d.emit('command', 'downloadtool rp2040tools latest arduino keep');
402
+ (_e = socket.current) === null || _e === void 0 ? void 0 : _e.emit('command', 'downloadtool avrdude 6.3.0-arduino15 arduino keep');
403
+ });
404
+ setAgentConnectionStatus('connected');
405
+ pingInterval.current = window.setInterval(() => void ping(), AGENT_CHECK_PING_INTERVAL);
406
+ };
548
407
  void _init();
549
- return function () {
408
+ return () => {
550
409
  reset();
551
410
  };
552
411
  },
@@ -557,12 +416,12 @@ var useArduino = function useArduino(_ref) {
557
416
  //
558
417
  // Print message to terminal according to the message type.
559
418
  //
560
- React.useEffect(function () {
419
+ React.useEffect(() => {
561
420
  if (previousUploadProgress === uploadProgress) {
562
421
  return;
563
422
  }
564
- var _write = function _write(text) {
565
- writeTerminal("\x1B[1m\x1B[38;5;221m".concat(text, "\x1B[0m"));
423
+ const _write = text => {
424
+ writeTerminal(`\x1b[1m\x1b[38;5;221m${text}\x1b[0m`);
566
425
  };
567
426
  switch (uploadProgress) {
568
427
  case 'receivedHex':
@@ -584,9 +443,7 @@ var useArduino = function useArduino(_ref) {
584
443
  },
585
444
  // eslint-disable-next-line react-hooks/exhaustive-deps
586
445
  [previousUploadProgress, uploadProgress]);
587
- setOnSelectPort(function () {
588
- return onSelectPort;
589
- });
446
+ setOnSelectPort(() => onSelectPort);
590
447
  //
591
448
  //
592
449
  //