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