@elice/material-exercise 1.230328.0 → 1.230418.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 (369) hide show
  1. package/cjs/_virtual/_rollupPluginBabelHelpers.js +526 -0
  2. package/cjs/components/material-exercise/MaterialExercise.js +44 -63
  3. package/cjs/components/material-exercise/MaterialExercise.styled.js +20 -23
  4. package/cjs/components/material-exercise/MaterialExerciseMobile.js +19 -15
  5. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  6. package/cjs/components/material-exercise/context/ExerciseProvider.js +83 -81
  7. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +16 -16
  8. package/cjs/components/material-exercise/context/context.js +1 -1
  9. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +3 -1
  10. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +3 -1
  11. package/cjs/components/material-exercise/context/recoil.js +559 -371
  12. package/cjs/components/material-exercise/context/recoilTypes.js +0 -5
  13. package/cjs/components/material-exercise/context/subjects.js +3 -6
  14. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  15. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -65
  16. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  17. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +7 -0
  18. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +7 -0
  19. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +20 -21
  20. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +225 -198
  21. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -10
  22. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +35 -32
  23. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +57 -48
  24. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
  25. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -1
  26. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -1
  27. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +327 -231
  28. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
  29. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +3 -1
  30. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +3 -1
  31. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +17 -17
  32. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -14
  33. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -6
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +47 -38
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +60 -42
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +29 -22
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +45 -56
  38. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  39. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +3 -1
  40. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +3 -1
  41. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -20
  42. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +5 -3
  43. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +30 -41
  44. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +17 -12
  45. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +3 -1
  46. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +3 -1
  47. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +24 -33
  48. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +13 -8
  49. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +84 -83
  50. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +3 -1
  51. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +3 -1
  52. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +20 -12
  53. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +239 -147
  55. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +92 -63
  56. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  57. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +3 -1
  58. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +3 -1
  59. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +219 -220
  60. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -13
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +30 -26
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +26 -26
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +70 -95
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +27 -27
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +54 -60
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +5 -5
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -13
  69. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +29 -26
  70. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +3 -1
  71. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +3 -1
  72. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  73. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +290 -180
  74. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  75. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -45
  76. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +7 -0
  77. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +7 -0
  78. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +19 -17
  79. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +5 -4
  80. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +15 -14
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +7 -6
  82. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +17 -16
  83. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +18 -11
  84. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -4
  85. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  86. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -7
  87. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  88. package/cjs/components/shared/file-icon/FileIcon.js +23 -23
  89. package/cjs/components/shared/file-tabs/FileTab.js +32 -43
  90. package/cjs/components/shared/file-tabs/FileTab.styled.js +26 -22
  91. package/cjs/components/shared/file-tabs/FileTabs.js +55 -49
  92. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -2
  93. package/cjs/components/shared/file-tabs/util.js +29 -18
  94. package/cjs/components/shared/file-tree/FileTree.js +11 -11
  95. package/cjs/components/shared/file-tree/FileTreeConfig.js +24 -23
  96. package/cjs/components/shared/file-tree/FileTreeList.js +35 -41
  97. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +75 -91
  98. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  99. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +77 -101
  100. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  101. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +51 -86
  102. package/cjs/components/shared/file-tree/FileTreeListItems.js +150 -153
  103. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  104. package/cjs/components/shared/file-tree/FileTreeToolbar.js +30 -41
  105. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  106. package/cjs/components/shared/file-tree/context/FileTreeContext.js +91 -97
  107. package/cjs/components/shared/file-tree/locales/en.json.js +3 -1
  108. package/cjs/components/shared/file-tree/locales/ko.json.js +3 -1
  109. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  110. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  111. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  112. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  113. package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -7
  114. package/cjs/components/shared/file-viewer/FileViewer.js +59 -60
  115. package/cjs/components/shared/file-viewer/FileViewerCsv.js +145 -101
  116. package/cjs/components/shared/file-viewer/FileViewerImage.js +7 -8
  117. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +20 -14
  118. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +28 -34
  119. package/cjs/components/shared/file-viewer/FileViewerText.js +23 -16
  120. package/cjs/components/shared/file-viewer/locales/en.json.js +3 -1
  121. package/cjs/components/shared/file-viewer/locales/ko.json.js +3 -1
  122. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +3 -1
  123. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +3 -1
  124. package/cjs/components/shared/material-modal/MaterialModal.js +10 -12
  125. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -5
  126. package/cjs/components/shared/monaco-editor/MonacoEditor.js +123 -149
  127. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +10 -8
  128. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -58
  129. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +78 -85
  130. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  131. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  132. package/cjs/components/shared/monaco-editor/constants/themes/index.js +80 -32
  133. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  134. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  135. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  136. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  137. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  138. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  139. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +36 -12
  140. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +5 -8
  141. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +36 -12
  142. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -6
  143. package/cjs/components/shared/monaco-editor/editor-languages/index.js +3 -1
  144. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  145. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +3 -2
  146. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +3 -2
  147. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +3 -2
  148. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +36 -12
  149. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +18 -24
  150. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  151. package/cjs/components/shared/monaco-editor/locales/en.json.js +3 -1
  152. package/cjs/components/shared/monaco-editor/locales/ko.json.js +3 -1
  153. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  154. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  155. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  156. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +70 -32
  157. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  158. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  159. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  160. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  161. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  162. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +30 -9
  163. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  164. package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -5
  165. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  166. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  167. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  168. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  169. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  170. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  171. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  172. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  173. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +218 -329
  174. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  175. package/cjs/components/shared/no-vnc/NoVnc.js +93 -90
  176. package/cjs/components/shared/no-vnc/NoVncLazy.js +7 -5
  177. package/cjs/components/shared/preview-container/PreviewContainer.js +7 -10
  178. package/cjs/components/shared/web-browser/WebBrowser.js +54 -59
  179. package/cjs/components/shared/xterm/Xterm.js +112 -105
  180. package/cjs/components/shared/xterm/XtermLazy.js +7 -5
  181. package/cjs/components/shared/xterm/locales/en.json.js +3 -1
  182. package/cjs/components/shared/xterm/locales/ko.json.js +3 -1
  183. package/cjs/constants/arduino.js +10 -10
  184. package/cjs/constants/shortcutKeyMap.js +5 -5
  185. package/cjs/constants/stylesheets.js +7 -10
  186. package/cjs/hooks/useArduino.js +327 -255
  187. package/cjs/hooks/useExerciseFile.js +24 -24
  188. package/cjs/hooks/useExericseShortcut.js +6 -5
  189. package/cjs/hooks/useMaterialExerciseFileUrl.js +54 -37
  190. package/cjs/hooks/useRunnerRoomWebSocket.js +58 -56
  191. package/cjs/hooks/useStdioTextConcator.js +18 -12
  192. package/cjs/hooks/useStdioWebSocket.js +41 -67
  193. package/cjs/hooks/useUsercodeEditWebSocket.js +230 -252
  194. package/cjs/hooks/useUsercodeHistory.js +121 -82
  195. package/cjs/index.js +4 -4
  196. package/cjs/utils/arduino.js +23 -25
  197. package/cjs/utils/exerciseFile.js +8 -16
  198. package/cjs/utils/runner.js +29 -25
  199. package/es/_virtual/_rollupPluginBabelHelpers.js +504 -0
  200. package/es/components/material-exercise/MaterialExercise.js +33 -54
  201. package/es/components/material-exercise/MaterialExercise.styled.js +20 -23
  202. package/es/components/material-exercise/MaterialExerciseMobile.js +15 -13
  203. package/es/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  204. package/es/components/material-exercise/context/ExerciseProvider.js +79 -79
  205. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +11 -13
  206. package/es/components/material-exercise/context/context.js +1 -1
  207. package/es/components/material-exercise/context/recoil.js +560 -372
  208. package/es/components/material-exercise/context/recoilTypes.js +0 -5
  209. package/es/components/material-exercise/context/subjects.js +3 -6
  210. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  211. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +73 -62
  212. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  213. package/es/components/material-exercise/exercise-code-history/locales/en.json.js +3 -0
  214. package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +3 -0
  215. package/es/components/material-exercise/exercise-file/ExerciseFile.js +15 -18
  216. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +218 -193
  217. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -9
  218. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +31 -28
  219. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +52 -45
  220. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  221. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +321 -225
  222. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  223. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +12 -14
  224. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -10
  225. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -5
  226. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +43 -36
  227. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +53 -37
  228. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +25 -20
  229. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +41 -54
  230. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  231. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +25 -19
  232. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  233. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +21 -34
  234. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -10
  235. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +17 -28
  236. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +9 -6
  237. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +81 -82
  238. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +13 -7
  239. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  240. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +236 -146
  241. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +90 -63
  242. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  243. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +212 -215
  244. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  245. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +7 -9
  246. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +27 -25
  247. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +22 -24
  248. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +66 -93
  249. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +24 -26
  250. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +51 -59
  251. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -4
  252. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +6 -11
  253. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +26 -25
  254. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  255. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +284 -174
  256. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  257. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +38 -44
  258. package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +3 -0
  259. package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +3 -0
  260. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +16 -16
  261. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -3
  262. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -13
  263. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -3
  264. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -15
  265. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +15 -10
  266. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +2 -3
  267. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  268. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +5 -6
  269. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  270. package/es/components/shared/file-icon/FileIcon.js +20 -22
  271. package/es/components/shared/file-tabs/FileTab.js +28 -41
  272. package/es/components/shared/file-tabs/FileTab.styled.js +26 -22
  273. package/es/components/shared/file-tabs/FileTabs.js +52 -48
  274. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  275. package/es/components/shared/file-tabs/util.js +29 -18
  276. package/es/components/shared/file-tree/FileTree.js +3 -5
  277. package/es/components/shared/file-tree/FileTreeConfig.js +21 -22
  278. package/es/components/shared/file-tree/FileTreeList.js +31 -39
  279. package/es/components/shared/file-tree/FileTreeListItemContent.js +67 -85
  280. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  281. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +74 -100
  282. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  283. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +48 -85
  284. package/es/components/shared/file-tree/FileTreeListItems.js +147 -152
  285. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  286. package/es/components/shared/file-tree/FileTreeToolbar.js +24 -37
  287. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  288. package/es/components/shared/file-tree/context/FileTreeContext.js +91 -97
  289. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  290. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  291. package/es/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  292. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  293. package/es/components/shared/file-tree/utils/fileTreePath.js +5 -7
  294. package/es/components/shared/file-viewer/FileViewer.js +52 -53
  295. package/es/components/shared/file-viewer/FileViewerCsv.js +141 -99
  296. package/es/components/shared/file-viewer/FileViewerImage.js +3 -6
  297. package/es/components/shared/file-viewer/FileViewerIpynb.js +16 -12
  298. package/es/components/shared/file-viewer/FileViewerNonViewable.js +22 -30
  299. package/es/components/shared/file-viewer/FileViewerText.js +18 -13
  300. package/es/components/shared/material-modal/MaterialModal.js +7 -11
  301. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  302. package/es/components/shared/monaco-editor/MonacoEditor.js +119 -147
  303. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +6 -4
  304. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +45 -56
  305. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +73 -82
  306. package/es/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  307. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  308. package/es/components/shared/monaco-editor/constants/themes/index.js +80 -32
  309. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  310. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  311. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  312. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  313. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  314. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  315. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -11
  316. package/es/components/shared/monaco-editor/editor-languages/css/index.js +2 -5
  317. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -11
  318. package/es/components/shared/monaco-editor/editor-languages/html/index.js +2 -5
  319. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  320. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +0 -1
  321. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +0 -1
  322. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +0 -1
  323. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +33 -11
  324. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -16
  325. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  326. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  327. package/es/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  328. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  329. package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -31
  330. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  331. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  332. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  333. package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  334. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  335. package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -8
  336. package/es/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  337. package/es/components/shared/monaco-editor/utils/theme/index.js +22 -5
  338. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  339. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  340. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  341. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  342. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  343. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  344. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  345. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  346. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +219 -330
  347. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  348. package/es/components/shared/no-vnc/NoVnc.js +89 -88
  349. package/es/components/shared/no-vnc/NoVncLazy.js +4 -2
  350. package/es/components/shared/preview-container/PreviewContainer.js +7 -10
  351. package/es/components/shared/web-browser/WebBrowser.js +49 -56
  352. package/es/components/shared/xterm/Xterm.js +107 -102
  353. package/es/components/shared/xterm/XtermLazy.js +4 -2
  354. package/es/constants/arduino.js +10 -10
  355. package/es/constants/shortcutKeyMap.js +3 -5
  356. package/es/constants/stylesheets.js +7 -10
  357. package/es/hooks/useArduino.js +327 -255
  358. package/es/hooks/useExerciseFile.js +24 -24
  359. package/es/hooks/useExericseShortcut.js +6 -5
  360. package/es/hooks/useMaterialExerciseFileUrl.js +55 -38
  361. package/es/hooks/useRunnerRoomWebSocket.js +58 -56
  362. package/es/hooks/useStdioTextConcator.js +18 -12
  363. package/es/hooks/useStdioWebSocket.js +41 -67
  364. package/es/hooks/useUsercodeEditWebSocket.js +230 -252
  365. package/es/hooks/useUsercodeHistory.js +122 -83
  366. package/es/utils/arduino.js +23 -25
  367. package/es/utils/exerciseFile.js +8 -16
  368. package/es/utils/runner.js +29 -25
  369. package/package.json +8 -8
@@ -1,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime, createForOfIteratorHelper as _createForOfIteratorHelper } from '../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import { useRef, useState, useEffect } from 'react';
2
3
  import { usePrevious } from 'react-use';
3
4
  import { useRecoilState, useSetRecoilState } from 'recoil';
@@ -12,83 +13,90 @@ import { getArduinoBoardType, getFileContent, createArduinoUrl, getFQBN } from '
12
13
 
13
14
  //
14
15
  //
15
-
16
- const AGENT_INIT_DELAY = 500;
17
- const AGENT_REDISCOVER_DELAY = 10000;
18
- const AGENT_CHECK_PING_INTERVAL = 2000; //
19
16
  //
17
+ var AGENT_INIT_DELAY = 500;
18
+ var AGENT_REDISCOVER_DELAY = 10000;
19
+ var AGENT_CHECK_PING_INTERVAL = 2000;
20
20
  //
21
-
22
- const useArduino = ({
23
- writeTerminal
24
- }) => {
25
- const _return = useRef({}); // ports
26
-
27
-
28
- const [ports, setPorts] = useRecoilState(exerciseArduinoPortsState);
29
- const [openedPortName, setOpenedPortName] = useRecoilState(exerciseArduinoOpenedPortNameState); // connection state
30
-
31
- const setAgentConnectionStatus = useSetRecoilState(exerciseArduinoAgentConnectionState); // upload progress
32
-
33
- const [uploadProgress, setUploadProgress] = useRecoilState(exerciseArduinoUploadProgressState);
34
- const previousUploadProgress = usePrevious(uploadProgress); // preferences
35
-
36
- const [preference, setPreference] = useRecoilState(exerciseArduinoPreferenceState);
37
- const setOnSelectPort = useSetRecoilState(exerciseArduinoOnSelectPortState); // internal state
38
-
39
- const state = useRef({
21
+ //
22
+ //
23
+ var useArduino = function useArduino(_ref) {
24
+ var writeTerminal = _ref.writeTerminal;
25
+ var _return = useRef({});
26
+ // ports
27
+ var _useRecoilState = useRecoilState(exerciseArduinoPortsState),
28
+ _useRecoilState2 = _slicedToArray(_useRecoilState, 2),
29
+ ports = _useRecoilState2[0],
30
+ setPorts = _useRecoilState2[1];
31
+ var _useRecoilState3 = useRecoilState(exerciseArduinoOpenedPortNameState),
32
+ _useRecoilState4 = _slicedToArray(_useRecoilState3, 2),
33
+ openedPortName = _useRecoilState4[0],
34
+ setOpenedPortName = _useRecoilState4[1];
35
+ // connection state
36
+ var setAgentConnectionStatus = useSetRecoilState(exerciseArduinoAgentConnectionState);
37
+ // upload progress
38
+ var _useRecoilState5 = useRecoilState(exerciseArduinoUploadProgressState),
39
+ _useRecoilState6 = _slicedToArray(_useRecoilState5, 2),
40
+ uploadProgress = _useRecoilState6[0],
41
+ setUploadProgress = _useRecoilState6[1];
42
+ var previousUploadProgress = usePrevious(uploadProgress);
43
+ // preferences
44
+ var _useRecoilState7 = useRecoilState(exerciseArduinoPreferenceState),
45
+ _useRecoilState8 = _slicedToArray(_useRecoilState7, 2),
46
+ preference = _useRecoilState8[0],
47
+ setPreference = _useRecoilState8[1];
48
+ var setOnSelectPort = useSetRecoilState(exerciseArduinoOnSelectPortState);
49
+ // internal state
50
+ var state = useRef({
40
51
  openedPortName: null,
41
52
  uploadingPortName: null,
42
53
  ports: []
43
54
  });
44
- const socket = useRef(null);
45
- const pingInterval = useRef(null);
46
- const [enabled, setEnabled] = useState(false);
47
- const [agentHttpPort, setAgentHttpPort] = useState(null);
55
+ var socket = useRef(null);
56
+ var pingInterval = useRef(null);
57
+ var _useState = useState(false),
58
+ _useState2 = _slicedToArray(_useState, 2),
59
+ enabled = _useState2[0],
60
+ setEnabled = _useState2[1];
61
+ var _useState3 = useState(null),
62
+ _useState4 = _slicedToArray(_useState3, 2),
63
+ agentHttpPort = _useState4[0],
64
+ setAgentHttpPort = _useState4[1];
48
65
  /**
49
66
  * Discovers arduino agent and connects.
50
67
  */
51
-
52
- const init = () => {
68
+ var init = function init() {
53
69
  setEnabled(true);
54
70
  };
55
71
  /**
56
72
  * Closes all connection and destroys arduino agent.
57
73
  */
58
-
59
-
60
- const destroy = () => {
74
+ var destroy = function destroy() {
61
75
  setEnabled(false);
62
76
  };
63
77
  /**
64
78
  * Re-initializes arduino agent.
65
79
  */
66
-
67
-
68
- const reload = () => {
80
+ var reload = function reload() {
69
81
  setEnabled(false);
70
82
  setTimeout(init, 1000);
71
83
  };
72
84
  /**
73
85
  * Close port, websocket and clear the state.
74
86
  */
75
-
76
-
77
- const reset = () => {
87
+ var reset = function reset() {
78
88
  // close port
79
- closePort(state.current.openedPortName); // close websocket
80
-
89
+ closePort(state.current.openedPortName);
90
+ // close websocket
81
91
  if (socket.current) {
82
92
  socket.current.close();
83
93
  socket.current = null;
84
- } // clear ping interval
85
-
86
-
94
+ }
95
+ // clear ping interval
87
96
  if (pingInterval.current) {
88
97
  window.clearInterval(pingInterval.current);
89
- } // reset states
90
-
91
-
98
+ }
99
+ // reset states
92
100
  setPorts([]);
93
101
  setOpenedPortName(null);
94
102
  setAgentConnectionStatus('disconnected');
@@ -97,21 +105,19 @@ const useArduino = ({
97
105
  /**
98
106
  * Send command to arduino agent.
99
107
  */
100
-
101
-
102
- const send = (command, ...args) => {
108
+ var send = function send(command) {
103
109
  var _a, _b;
104
-
105
110
  if ((_a = socket.current) === null || _a === void 0 ? void 0 : _a.connected) {
106
- (_b = socket.current) === null || _b === void 0 ? void 0 : _b.emit('command', [command, ...args].join(' '));
111
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
112
+ args[_key - 1] = arguments[_key];
113
+ }
114
+ (_b = socket.current) === null || _b === void 0 ? void 0 : _b.emit('command', [command].concat(args).join(' '));
107
115
  }
108
116
  };
109
117
  /**
110
118
  * Send text to arduino agent.
111
119
  */
112
-
113
-
114
- const sendText = text => {
120
+ var sendText = function sendText(text) {
115
121
  if (state.current.openedPortName) {
116
122
  send('send', state.current.openedPortName, text);
117
123
  }
@@ -119,9 +125,7 @@ const useArduino = ({
119
125
  /**
120
126
  * Open port.
121
127
  */
122
-
123
-
124
- const openPort = portName => {
128
+ var openPort = function openPort(portName) {
125
129
  if (portName) {
126
130
  setOpenedPortName(portName);
127
131
  send('open', portName, preference.baudRate);
@@ -130,9 +134,7 @@ const useArduino = ({
130
134
  /**
131
135
  * Close port.
132
136
  */
133
-
134
-
135
- const closePort = portName => {
137
+ var closePort = function closePort(portName) {
136
138
  if (portName) {
137
139
  send('close', portName);
138
140
  }
@@ -140,66 +142,78 @@ const useArduino = ({
140
142
  /**
141
143
  * Send list command to the agent.
142
144
  */
143
-
144
-
145
- const ping = async () => {
146
- if (!agentHttpPort) {
147
- return;
148
- }
149
-
150
- if (state.current.uploadingPortName) {
151
- return;
152
- }
153
-
154
- try {
155
- await fetch(createArduinoUrl({
156
- protocol: 'http',
157
- pathname: '/info',
158
- port: agentHttpPort
159
- }));
160
- send('list');
161
- } catch (_) {
162
- // if ping fails, reconnect the agent.
163
- reload();
164
- setAgentConnectionStatus('reconnecting');
165
- }
166
- };
145
+ var ping = /*#__PURE__*/function () {
146
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
147
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
148
+ while (1) switch (_context.prev = _context.next) {
149
+ case 0:
150
+ if (agentHttpPort) {
151
+ _context.next = 2;
152
+ break;
153
+ }
154
+ return _context.abrupt("return");
155
+ case 2:
156
+ if (!state.current.uploadingPortName) {
157
+ _context.next = 4;
158
+ break;
159
+ }
160
+ return _context.abrupt("return");
161
+ case 4:
162
+ _context.prev = 4;
163
+ _context.next = 7;
164
+ return fetch(createArduinoUrl({
165
+ protocol: 'http',
166
+ pathname: '/info',
167
+ port: agentHttpPort
168
+ }));
169
+ case 7:
170
+ send('list');
171
+ _context.next = 14;
172
+ break;
173
+ case 10:
174
+ _context.prev = 10;
175
+ _context.t0 = _context["catch"](4);
176
+ // if ping fails, reconnect the agent.
177
+ reload();
178
+ setAgentConnectionStatus('reconnecting');
179
+ case 14:
180
+ case "end":
181
+ return _context.stop();
182
+ }
183
+ }, _callee, null, [[4, 10]]);
184
+ }));
185
+ return function ping() {
186
+ return _ref2.apply(this, arguments);
187
+ };
188
+ }();
167
189
  /**
168
190
  * Upload hex file to the agent.
169
191
  */
170
-
171
-
172
- const uploadHexFile = hexFile => {
192
+ var uploadHexFile = function uploadHexFile(hexFile) {
173
193
  if (!agentHttpPort || !state.current.openedPortName) {
174
194
  return;
175
195
  }
176
-
177
- const port = state.current.ports.find(port => port.Name === state.current.openedPortName);
178
-
196
+ var port = state.current.ports.find(function (port) {
197
+ return port.Name === state.current.openedPortName;
198
+ });
179
199
  if (!port) {
180
200
  return;
181
201
  }
182
-
183
202
  if (!hexFile.filename.includes(getArduinoBoardType(port) || 'not found')) {
184
203
  return;
185
204
  }
186
-
187
- setUploadProgress('receivedHex'); // if port opened, close it.
188
-
205
+ setUploadProgress('receivedHex');
206
+ // if port opened, close it.
189
207
  state.current.uploadingPortName = state.current.openedPortName;
190
-
191
208
  if (port.IsOpen) {
192
209
  closePort(state.current.openedPortName);
193
- } // get board type and content.
194
-
195
-
196
- const content = getFileContent(hexFile.data);
197
- const boradType = getArduinoBoardType(port);
198
-
210
+ }
211
+ // get board type and content.
212
+ var content = getFileContent(hexFile.data);
213
+ var boradType = getArduinoBoardType(port);
199
214
  if (!boradType) {
200
215
  return;
201
216
  }
202
-
203
217
  fetch(createArduinoUrl({
204
218
  protocol: 'http',
205
219
  pathname: '/upload',
@@ -221,24 +235,24 @@ const useArduino = ({
221
235
  extrafiles: [],
222
236
  signature: AVR_SIGNATURE[boradType]
223
237
  })
224
- }).then(res => res.json()).then(() => {// no response (202 accepted)
225
- }).catch(() => {//
238
+ }).then(function (res) {
239
+ return res.json();
240
+ }).then(function () {
241
+ // no response (202 accepted)
242
+ }).catch(function () {
243
+ //
226
244
  });
227
245
  };
228
246
  /**
229
247
  * Handler called when user (re-)selects arduino device.
230
248
  */
231
-
232
-
233
- const onSelectPort = name => {
249
+ var onSelectPort = function onSelectPort(name) {
234
250
  if (name === state.current.openedPortName) {
235
251
  return;
236
252
  }
237
-
238
253
  if (state.current.openedPortName) {
239
254
  closePort(state.current.openedPortName);
240
255
  }
241
-
242
256
  if (name !== null) {
243
257
  openPort(name);
244
258
  }
@@ -246,19 +260,20 @@ const useArduino = ({
246
260
  /**
247
261
  * Handle arduino agent websocket message.
248
262
  */
249
-
250
-
251
- const handleAgentMsg = msg => {
263
+ var handleAgentMsg = function handleAgentMsg(msg) {
252
264
  // Ports
253
265
  if ('Ports' in msg && msg.Network === false) {
254
266
  handleAgentMsgPorts(msg);
255
- } // Cmd
267
+ }
268
+ // Cmd
256
269
  else if ('Cmd' in msg && 'Desc' in msg) {
257
270
  handleAgentMsgCmd(msg);
258
- } // Programmer Status
271
+ }
272
+ // Programmer Status
259
273
  else if ('ProgrammerStatus' in msg) {
260
274
  handleAgentMsgProgram(msg);
261
- } // D
275
+ }
276
+ // D
262
277
  else if ('D' in msg) {
263
278
  handleAgentMsgD(msg);
264
279
  }
@@ -266,16 +281,16 @@ const useArduino = ({
266
281
  /**
267
282
  * Handle arduino agent websocket message. (Ports)
268
283
  */
269
-
270
-
271
- const handleAgentMsgPorts = msg => {
272
- setPorts(msg.Ports); // if port not opened, open new port.
273
-
284
+ var handleAgentMsgPorts = function handleAgentMsgPorts(msg) {
285
+ setPorts(msg.Ports);
286
+ // if port not opened, open new port.
274
287
  if (!state.current.openedPortName && !state.current.uploadingPortName) {
275
- const prefPort = msg.Ports.find(port => port.Name === preference.port);
276
- const targetPort = prefPort ? prefPort : // if preference port not found, open first port.
288
+ var prefPort = msg.Ports.find(function (port) {
289
+ return port.Name === preference.port;
290
+ });
291
+ var targetPort = prefPort ? prefPort :
292
+ // if preference port not found, open first port.
277
293
  msg.Ports.length > 0 ? msg.Ports[0] : null;
278
-
279
294
  if (targetPort) {
280
295
  openPort(targetPort.Name);
281
296
  }
@@ -284,21 +299,19 @@ const useArduino = ({
284
299
  /**
285
300
  * Handle arduino agent websocket message. (Cmd)
286
301
  */
287
-
288
-
289
- const handleAgentMsgCmd = msg => {
302
+ var handleAgentMsgCmd = function handleAgentMsgCmd(msg) {
290
303
  switch (msg.Cmd) {
291
304
  case 'Open':
292
305
  setOpenedPortName(msg.Port);
293
- setPreference(prev => Object.assign(Object.assign({}, prev), {
294
- port: msg.Port
295
- }));
306
+ setPreference(function (prev) {
307
+ return Object.assign(Object.assign({}, prev), {
308
+ port: msg.Port
309
+ });
310
+ });
296
311
  break;
297
-
298
312
  case 'OpenFail':
299
313
  closePort(msg.Port);
300
314
  break;
301
-
302
315
  case 'Close':
303
316
  setOpenedPortName(null);
304
317
  break;
@@ -307,209 +320,268 @@ const useArduino = ({
307
320
  /**
308
321
  * Handle arduino agent websocket message. (ProgrammerStatus)
309
322
  */
310
-
311
-
312
- const handleAgentMsgProgram = msg => {
323
+ var handleAgentMsgProgram = function handleAgentMsgProgram(msg) {
313
324
  switch (msg.ProgrammerStatus) {
314
325
  case 'Starting':
315
326
  setUploadProgress('starting');
316
327
  return;
317
-
318
328
  case 'Busy':
319
329
  setUploadProgress('busy');
320
330
  return;
321
-
322
331
  case 'Done':
323
332
  setUploadProgress('done');
324
333
  openPort(state.current.uploadingPortName);
325
334
  state.current.uploadingPortName = null;
326
- window.setTimeout(() => setUploadProgress('ready'), DISABLE_TIME_AFTER_UPLOAD);
335
+ window.setTimeout(function () {
336
+ return setUploadProgress('ready');
337
+ }, DISABLE_TIME_AFTER_UPLOAD);
327
338
  return;
328
-
329
339
  case 'Error':
330
340
  setUploadProgress('error');
331
341
  openPort(state.current.uploadingPortName);
332
342
  state.current.uploadingPortName = null;
333
- window.setTimeout(() => setUploadProgress('ready'), DISABLE_TIME_AFTER_UPLOAD);
343
+ window.setTimeout(function () {
344
+ return setUploadProgress('ready');
345
+ }, DISABLE_TIME_AFTER_UPLOAD);
334
346
  return;
335
347
  }
336
348
  };
337
349
  /**
338
350
  * Handle arduino agent websocket message. (D)
339
351
  */
340
-
341
-
342
- const handleAgentMsgD = msg => {
352
+ var handleAgentMsgD = function handleAgentMsgD(msg) {
343
353
  writeTerminal(msg.D);
344
- }; //
354
+ };
355
+ //
345
356
  // Sync `openedPortName` recoil state with internal ref.
346
357
  //
347
-
348
-
349
- useEffect(() => {
358
+ useEffect(function () {
350
359
  state.current.openedPortName = openedPortName;
351
- }, [openedPortName]); //
360
+ }, [openedPortName]);
361
+ //
352
362
  // Sync `ports` recoil state with internal ref.
353
363
  //
354
-
355
- useEffect(() => {
364
+ useEffect(function () {
356
365
  state.current.ports = ports;
357
- }, [ports]); //
366
+ }, [ports]);
367
+ //
358
368
  // Discover arduino agent port.
359
369
  //
360
-
361
- useEffect(() => {
370
+ useEffect(function () {
362
371
  if (!enabled) {
363
372
  return;
364
373
  }
365
-
366
- const abortCtrl = new AbortController();
367
- let reconnectTimeout = null;
374
+ var abortCtrl = new AbortController();
375
+ var reconnectTimeout = null;
368
376
  /** Scan port. */
369
-
370
- const _scan = async () => {
371
- for (const port of ARDUINO_AGENT_PORTS) {
372
- try {
373
- await fetch(createArduinoUrl({
374
- protocol: 'http',
375
- pathname: '/info',
376
- port
377
- }), {
378
- signal: abortCtrl.signal
379
- });
380
- return port;
381
- } catch (err) {
382
- // throw error on `AbortError`, to stop scan.
383
- if (err.name === 'AbortError') {
384
- throw err;
377
+ var _scan = /*#__PURE__*/function () {
378
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
379
+ var _iterator, _step, port;
380
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
381
+ while (1) switch (_context2.prev = _context2.next) {
382
+ case 0:
383
+ _iterator = _createForOfIteratorHelper(ARDUINO_AGENT_PORTS);
384
+ _context2.prev = 1;
385
+ _iterator.s();
386
+ case 3:
387
+ if ((_step = _iterator.n()).done) {
388
+ _context2.next = 17;
389
+ break;
390
+ }
391
+ port = _step.value;
392
+ _context2.prev = 5;
393
+ _context2.next = 8;
394
+ return fetch(createArduinoUrl({
395
+ protocol: 'http',
396
+ pathname: '/info',
397
+ port: port
398
+ }), {
399
+ signal: abortCtrl.signal
400
+ });
401
+ case 8:
402
+ return _context2.abrupt("return", port);
403
+ case 11:
404
+ _context2.prev = 11;
405
+ _context2.t0 = _context2["catch"](5);
406
+ if (!(_context2.t0.name === 'AbortError')) {
407
+ _context2.next = 15;
408
+ break;
409
+ }
410
+ throw _context2.t0;
411
+ case 15:
412
+ _context2.next = 3;
413
+ break;
414
+ case 17:
415
+ _context2.next = 22;
416
+ break;
417
+ case 19:
418
+ _context2.prev = 19;
419
+ _context2.t1 = _context2["catch"](1);
420
+ _iterator.e(_context2.t1);
421
+ case 22:
422
+ _context2.prev = 22;
423
+ _iterator.f();
424
+ return _context2.finish(22);
425
+ case 25:
426
+ return _context2.abrupt("return", null);
427
+ case 26:
428
+ case "end":
429
+ return _context2.stop();
385
430
  }
386
- }
387
- }
388
-
389
- return null;
390
- };
431
+ }, _callee2, null, [[1, 19, 22, 25], [5, 11]]);
432
+ }));
433
+ return function _scan() {
434
+ return _ref3.apply(this, arguments);
435
+ };
436
+ }();
391
437
  /** Scan port to discover until found. */
392
-
393
-
394
- const _discover = async () => {
395
- void _scan().then(port => {
396
- // if port found, stop scanning and set port
397
- if (port) {
398
- setAgentHttpPort(port);
399
- } // or start scanning again
400
- else {
401
- reconnectTimeout = window.setTimeout(() => void _discover(), AGENT_REDISCOVER_DELAY);
402
- }
403
- }).catch(() => void 0);
404
- }; // start scanning...
405
-
406
-
438
+ var _discover = /*#__PURE__*/function () {
439
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
440
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
441
+ while (1) switch (_context3.prev = _context3.next) {
442
+ case 0:
443
+ void _scan().then(function (port) {
444
+ // if port found, stop scanning and set port
445
+ if (port) {
446
+ setAgentHttpPort(port);
447
+ }
448
+ // or start scanning again
449
+ else {
450
+ reconnectTimeout = window.setTimeout(function () {
451
+ return void _discover();
452
+ }, AGENT_REDISCOVER_DELAY);
453
+ }
454
+ }).catch(function () {
455
+ return void 0;
456
+ });
457
+ case 1:
458
+ case "end":
459
+ return _context3.stop();
460
+ }
461
+ }, _callee3);
462
+ }));
463
+ return function _discover() {
464
+ return _ref4.apply(this, arguments);
465
+ };
466
+ }();
467
+ // start scanning...
407
468
  setAgentConnectionStatus('connecting');
408
469
  void _discover();
409
- return () => {
470
+ return function () {
410
471
  abortCtrl.abort();
411
-
412
472
  if (reconnectTimeout) {
413
473
  window.clearTimeout(reconnectTimeout);
414
474
  }
415
-
416
475
  setAgentHttpPort(null);
417
476
  };
418
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
419
- [enabled]); //
477
+ },
478
+ // eslint-disable-next-line react-hooks/exhaustive-deps
479
+ [enabled]);
480
+ //
420
481
  // Initialize arduino agent websocket.
421
482
  //
422
-
423
- useEffect(() => {
483
+ useEffect(function () {
424
484
  if (!enabled || !agentHttpPort) {
425
485
  return;
426
486
  }
427
-
428
- const _init = async () => {
429
- await new Promise(r => window.setTimeout(r, AGENT_INIT_DELAY));
430
- setAgentConnectionStatus('connecting'); // connect socket.io-client to the agent.
431
-
432
- socket.current = io(createArduinoUrl({
433
- protocol: 'ws',
434
- port: agentHttpPort
435
- })); // agent - on message
436
-
437
- socket.current.on('message', message => {
438
- try {
439
- const msg = JSON.parse(message);
440
- handleAgentMsg(msg);
441
- } catch (e) {// console.warn(e);
442
- }
443
- }); // agent - on connect
444
-
445
- await new Promise(resolve => {
446
- var _a;
447
-
448
- return (_a = socket.current) === null || _a === void 0 ? void 0 : _a.on('connect', resolve);
449
- }).then(ping).then(() => {
450
- var _a, _b, _c, _d, _e;
451
-
452
- (_a = socket.current) === null || _a === void 0 ? void 0 : _a.emit('command', 'downloadtool windows-drivers latest arduino keep');
453
- (_b = socket.current) === null || _b === void 0 ? void 0 : _b.emit('command', 'downloadtool bossac 1.7.0 arduino keep');
454
- (_c = socket.current) === null || _c === void 0 ? void 0 : _c.emit('command', 'downloadtool fwupdater latest arduino keep');
455
- (_d = socket.current) === null || _d === void 0 ? void 0 : _d.emit('command', 'downloadtool rp2040tools latest arduino keep');
456
- (_e = socket.current) === null || _e === void 0 ? void 0 : _e.emit('command', 'downloadtool avrdude 6.3.0-arduino15 arduino keep');
457
- });
458
- setAgentConnectionStatus('connected');
459
- pingInterval.current = window.setInterval(() => void ping(), AGENT_CHECK_PING_INTERVAL);
460
- };
461
-
487
+ var _init = /*#__PURE__*/function () {
488
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
489
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
490
+ while (1) switch (_context4.prev = _context4.next) {
491
+ case 0:
492
+ _context4.next = 2;
493
+ return new Promise(function (r) {
494
+ return window.setTimeout(r, AGENT_INIT_DELAY);
495
+ });
496
+ case 2:
497
+ setAgentConnectionStatus('connecting');
498
+ // connect socket.io-client to the agent.
499
+ socket.current = io(createArduinoUrl({
500
+ protocol: 'ws',
501
+ port: agentHttpPort
502
+ }));
503
+ // agent - on message
504
+ socket.current.on('message', function (message) {
505
+ try {
506
+ var msg = JSON.parse(message);
507
+ handleAgentMsg(msg);
508
+ } catch (e) {
509
+ // console.warn(e);
510
+ }
511
+ });
512
+ // agent - on connect
513
+ _context4.next = 7;
514
+ return new Promise(function (resolve) {
515
+ var _a;
516
+ return (_a = socket.current) === null || _a === void 0 ? void 0 : _a.on('connect', resolve);
517
+ }).then(ping).then(function () {
518
+ var _a, _b, _c, _d, _e;
519
+ (_a = socket.current) === null || _a === void 0 ? void 0 : _a.emit('command', 'downloadtool windows-drivers latest arduino keep');
520
+ (_b = socket.current) === null || _b === void 0 ? void 0 : _b.emit('command', 'downloadtool bossac 1.7.0 arduino keep');
521
+ (_c = socket.current) === null || _c === void 0 ? void 0 : _c.emit('command', 'downloadtool fwupdater latest arduino keep');
522
+ (_d = socket.current) === null || _d === void 0 ? void 0 : _d.emit('command', 'downloadtool rp2040tools latest arduino keep');
523
+ (_e = socket.current) === null || _e === void 0 ? void 0 : _e.emit('command', 'downloadtool avrdude 6.3.0-arduino15 arduino keep');
524
+ });
525
+ case 7:
526
+ setAgentConnectionStatus('connected');
527
+ pingInterval.current = window.setInterval(function () {
528
+ return void ping();
529
+ }, AGENT_CHECK_PING_INTERVAL);
530
+ case 9:
531
+ case "end":
532
+ return _context4.stop();
533
+ }
534
+ }, _callee4);
535
+ }));
536
+ return function _init() {
537
+ return _ref5.apply(this, arguments);
538
+ };
539
+ }();
462
540
  void _init();
463
- return () => {
541
+ return function () {
464
542
  reset();
465
543
  };
466
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
467
- [enabled, agentHttpPort, // reload agent on port or baud rate change
468
- preference.port, preference.baudRate]); //
544
+ },
545
+ // eslint-disable-next-line react-hooks/exhaustive-deps
546
+ [enabled, agentHttpPort,
547
+ // reload agent on port or baud rate change
548
+ preference.port, preference.baudRate]);
549
+ //
469
550
  // Print message to terminal according to the message type.
470
551
  //
471
-
472
- useEffect(() => {
552
+ useEffect(function () {
473
553
  if (previousUploadProgress === uploadProgress) {
474
554
  return;
475
555
  }
476
-
477
- const _write = text => {
478
- writeTerminal(`\x1b[1m\x1b[38;5;221m${text}\x1b[0m`);
556
+ var _write = function _write(text) {
557
+ writeTerminal("\x1B[1m\x1B[38;5;221m".concat(text, "\x1B[0m"));
479
558
  };
480
-
481
559
  switch (uploadProgress) {
482
560
  case 'receivedHex':
483
561
  _write('/* 컴파일이 완료되었습니다. */\n');
484
-
485
562
  return;
486
-
487
563
  case 'starting':
488
564
  _write('/* 업로드를 시작합니다. */\n');
489
-
490
565
  return;
491
-
492
566
  case 'busy':
493
567
  _write('/* 업로드 중입니다... */\n');
494
-
495
568
  return;
496
-
497
569
  case 'done':
498
570
  _write('/* 업로드가 완료되었습니다. */\n');
499
-
500
571
  return;
501
-
502
572
  case 'error':
503
573
  _write('/* 에러가 발생했습니다. */\n');
504
-
505
574
  return;
506
575
  }
507
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
576
+ },
577
+ // eslint-disable-next-line react-hooks/exhaustive-deps
508
578
  [previousUploadProgress, uploadProgress]);
509
- setOnSelectPort(() => onSelectPort); //
579
+ setOnSelectPort(function () {
580
+ return onSelectPort;
581
+ });
582
+ //
510
583
  //
511
584
  //
512
-
513
585
  _return.current.init = init;
514
586
  _return.current.destroy = destroy;
515
587
  _return.current.reload = reload;