@elice/material-exercise 1.240718.2 → 1.240719.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 (459) hide show
  1. package/cjs/_virtual/_rollupPluginBabelHelpers.js +519 -0
  2. package/cjs/assets/empty.png.js +1 -2
  3. package/cjs/components/index.js +25 -0
  4. package/cjs/components/locales/index.js +13 -0
  5. package/cjs/components/material-exercise/MaterialExercise.d.ts +1 -1
  6. package/cjs/components/material-exercise/MaterialExercise.js +111 -75
  7. package/cjs/components/material-exercise/MaterialExercise.styled.js +18 -14
  8. package/cjs/components/material-exercise/MaterialExerciseMobile.d.ts +1 -1
  9. package/cjs/components/material-exercise/MaterialExerciseMobile.js +17 -7
  10. package/cjs/components/material-exercise/context/ExerciseProvider.js +68 -58
  11. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +39 -30
  12. package/cjs/components/material-exercise/context/context.js +5 -1
  13. package/cjs/components/material-exercise/context/index.js +57 -0
  14. package/cjs/components/material-exercise/context/recoil.js +542 -293
  15. package/cjs/components/material-exercise/context/subjects.js +4 -4
  16. package/cjs/components/material-exercise/context/types.d.ts +2 -2
  17. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +100 -78
  18. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +12 -8
  19. package/cjs/components/material-exercise/exercise-code-history/index.js +7 -0
  20. package/cjs/components/material-exercise/exercise-code-history/locales/index.js +13 -0
  21. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +30 -27
  22. package/cjs/components/material-exercise/exercise-file/index.js +7 -0
  23. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +225 -149
  24. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +20 -13
  25. package/cjs/components/material-exercise/exercise-file-editor/index.js +7 -0
  26. package/cjs/components/material-exercise/exercise-file-editor/locales/index.js +13 -0
  27. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +49 -29
  28. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.d.ts +1 -2
  29. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +10 -4
  30. package/cjs/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/ExerciseFileTabsFileTreeButton.js +53 -36
  31. package/cjs/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/index.js +7 -0
  32. package/cjs/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/locales/index.js +13 -0
  33. package/cjs/components/material-exercise/exercise-file-tabs/index.js +9 -0
  34. package/cjs/components/material-exercise/exercise-file-tabs/locales/index.js +13 -0
  35. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +353 -211
  36. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.d.ts +1 -2
  37. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +10 -4
  38. package/cjs/components/material-exercise/exercise-file-tree/index.js +9 -0
  39. package/cjs/components/material-exercise/exercise-file-tree/locales/index.js +13 -0
  40. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +18 -15
  41. package/cjs/components/material-exercise/exercise-file-viewer/index.js +7 -0
  42. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +21 -12
  43. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +12 -11
  44. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +123 -80
  45. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +100 -67
  46. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +40 -22
  47. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +144 -119
  48. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +17 -13
  49. package/cjs/components/material-exercise/exercise-menu/index.js +7 -0
  50. package/cjs/components/material-exercise/exercise-menu/locales/index.js +13 -0
  51. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +32 -19
  52. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.d.ts +1 -2
  53. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +10 -4
  54. package/cjs/components/material-exercise/exercise-multilang-dropdown/index.js +9 -0
  55. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +31 -24
  56. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -6
  57. package/cjs/components/material-exercise/exercise-preview/index.js +7 -0
  58. package/cjs/components/material-exercise/exercise-preview/locales/index.js +13 -0
  59. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +51 -35
  60. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +14 -6
  61. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +90 -78
  62. package/cjs/components/material-exercise/exercise-rightpane/index.js +7 -0
  63. package/cjs/components/material-exercise/exercise-rightpane/locales/index.js +13 -0
  64. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +25 -12
  65. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +18 -12
  66. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +504 -349
  67. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +197 -132
  68. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
  69. package/cjs/components/material-exercise/exercise-room/helpers/index.js +7 -0
  70. package/cjs/components/material-exercise/exercise-room/index.js +7 -0
  71. package/cjs/components/material-exercise/exercise-room/locales/index.js +13 -0
  72. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +205 -142
  73. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +5 -1
  74. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +25 -16
  75. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +118 -86
  76. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +33 -19
  77. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +95 -82
  78. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +68 -52
  79. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +136 -87
  80. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +6 -2
  81. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +21 -15
  82. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +36 -23
  83. package/cjs/components/material-exercise/exercise-runner/index.js +7 -0
  84. package/cjs/components/material-exercise/exercise-runner/locales/index.js +13 -0
  85. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +402 -248
  86. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +12 -8
  87. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +74 -50
  88. package/cjs/components/material-exercise/exercise-submit-history/index.js +7 -0
  89. package/cjs/components/material-exercise/exercise-submit-history/locales/index.js +13 -0
  90. package/cjs/components/material-exercise/index.js +9 -0
  91. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +32 -23
  92. package/cjs/components/shared/exercise-menu-button/index.js +7 -0
  93. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +44 -38
  94. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +26 -20
  95. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +14 -8
  96. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +28 -22
  97. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +24 -9
  98. package/cjs/components/shared/exercise-shimmer/index.js +15 -0
  99. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +6 -5
  100. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +5 -1
  101. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +10 -10
  102. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +13 -5
  103. package/cjs/components/shared/exercise-version-list/index.js +9 -0
  104. package/cjs/components/shared/file-icon/FileIcon.js +23 -16
  105. package/cjs/components/shared/file-icon/index.js +7 -0
  106. package/cjs/components/shared/file-tabs/FileTab.js +47 -33
  107. package/cjs/components/shared/file-tabs/FileTab.styled.js +23 -15
  108. package/cjs/components/shared/file-tabs/FileTabs.js +66 -39
  109. package/cjs/components/shared/file-tabs/FileTabs.styled.js +6 -2
  110. package/cjs/components/shared/file-tabs/index.js +7 -0
  111. package/cjs/components/shared/file-tabs/util.js +27 -14
  112. package/cjs/components/shared/file-tree/FileTree.js +20 -10
  113. package/cjs/components/shared/file-tree/FileTreeConfig.js +46 -40
  114. package/cjs/components/shared/file-tree/FileTreeList.js +43 -40
  115. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +128 -99
  116. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -21
  117. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +106 -96
  118. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +10 -6
  119. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +133 -91
  120. package/cjs/components/shared/file-tree/FileTreeListItems.js +149 -137
  121. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +6 -2
  122. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +5 -1
  123. package/cjs/components/shared/file-tree/context/FileTreeContext.d.ts +1 -1
  124. package/cjs/components/shared/file-tree/context/FileTreeContext.js +101 -79
  125. package/cjs/components/shared/file-tree/context/index.js +9 -0
  126. package/cjs/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +59 -54
  127. package/cjs/components/shared/file-tree/file-tree-toolbar/index.js +7 -0
  128. package/cjs/components/shared/file-tree/file-tree-toolbar/locales/index.js +13 -0
  129. package/cjs/components/shared/file-tree/index.js +7 -0
  130. package/cjs/components/shared/file-tree/locales/index.js +13 -0
  131. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +24 -20
  132. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -146
  133. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +11 -0
  134. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  135. package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -6
  136. package/cjs/components/shared/file-tree/utils/index.js +20 -0
  137. package/cjs/components/shared/file-viewer/FileViewer.js +76 -46
  138. package/cjs/components/shared/file-viewer/FileViewerCsv.js +262 -167
  139. package/cjs/components/shared/file-viewer/FileViewerImage.js +16 -12
  140. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +27 -11
  141. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +65 -47
  142. package/cjs/components/shared/file-viewer/FileViewerText.js +23 -11
  143. package/cjs/components/shared/file-viewer/index.js +7 -0
  144. package/cjs/components/shared/file-viewer/locales/index.js +21 -0
  145. package/cjs/components/shared/material-modal/MaterialModal.js +20 -11
  146. package/cjs/components/shared/material-modal/MaterialModal.styled.js +9 -5
  147. package/cjs/components/shared/material-modal/index.js +7 -0
  148. package/cjs/components/shared/monaco-editor/MonacoEditor.js +102 -74
  149. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +15 -7
  150. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -34
  151. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +249 -194
  152. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +82 -28
  153. package/cjs/components/shared/monaco-editor/constants/index.js +13 -0
  154. package/cjs/components/shared/monaco-editor/constants/monaco/index.js +11 -0
  155. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
  156. package/cjs/components/shared/monaco-editor/constants/themes/index.js +49 -17
  157. package/cjs/components/shared/monaco-editor/editor-hooks/index.js +17 -0
  158. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +11 -10
  159. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +15 -14
  160. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +9 -8
  161. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +34 -30
  162. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +9 -7
  163. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
  164. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -10
  165. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +3 -2
  166. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -10
  167. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -2
  168. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  169. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/index.js +11 -0
  170. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +37 -10
  171. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +6 -5
  172. package/cjs/components/shared/monaco-editor/hooks/index.js +7 -0
  173. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +11 -5
  174. package/cjs/components/shared/monaco-editor/index.js +21 -0
  175. package/cjs/components/shared/monaco-editor/locales/index.js +13 -0
  176. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +10 -12
  177. package/cjs/components/shared/monaco-editor/utils/emmet/index.js +9 -0
  178. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -6
  179. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +67 -24
  180. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -6
  181. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +70 -37
  182. package/cjs/components/shared/monaco-editor/utils/index.js +9 -0
  183. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +8 -7
  184. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -4
  185. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -2
  186. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +27 -7
  187. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +24 -14
  188. package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -3
  189. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -56
  190. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -68
  191. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +120 -93
  192. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +155 -132
  193. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -92
  194. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/index.js +12 -0
  195. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  196. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -6
  197. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
  198. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +177 -158
  199. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/index.js +11 -0
  200. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
  201. package/cjs/components/shared/no-vnc/NoVnc.js +118 -78
  202. package/cjs/components/shared/no-vnc/NoVncLazy.js +15 -7
  203. package/cjs/components/shared/no-vnc/index.js +7 -0
  204. package/cjs/components/shared/preview-container/PreviewContainer.js +18 -13
  205. package/cjs/components/shared/preview-container/index.js +9 -0
  206. package/cjs/components/shared/web-browser/WebBrowser.js +74 -52
  207. package/cjs/components/shared/web-browser/index.js +7 -0
  208. package/cjs/components/shared/xterm/Xterm.js +82 -57
  209. package/cjs/components/shared/xterm/XtermLazy.js +15 -7
  210. package/cjs/components/shared/xterm/index.js +7 -0
  211. package/cjs/components/shared/xterm/locales/index.js +13 -0
  212. package/cjs/constants/arduino.js +10 -10
  213. package/cjs/constants/color.js +1 -1
  214. package/cjs/constants/index.js +7 -0
  215. package/cjs/constants/shortcutKeyMap.js +3 -1
  216. package/cjs/constants/stylesheets.js +7 -5
  217. package/cjs/hooks/index.js +20 -0
  218. package/cjs/hooks/useArduino.js +282 -141
  219. package/cjs/hooks/useExerciseFile.js +24 -22
  220. package/cjs/hooks/useExericseShortcut.js +6 -4
  221. package/cjs/hooks/useMaterialExerciseFileUrl.js +55 -33
  222. package/cjs/hooks/useRunnerRoomWebSocket.js +51 -27
  223. package/cjs/hooks/useStdioTextConcator.js +15 -11
  224. package/cjs/hooks/useStdioWebSocket.js +32 -28
  225. package/cjs/hooks/useUsercodeEditWebSocket.js +238 -158
  226. package/cjs/hooks/useUsercodeHistory.js +115 -63
  227. package/cjs/utils/arduino.js +23 -11
  228. package/cjs/utils/exerciseFile.js +8 -10
  229. package/cjs/utils/index.js +10 -0
  230. package/cjs/utils/runner.js +33 -17
  231. package/es/_virtual/_rollupPluginBabelHelpers.js +499 -0
  232. package/es/assets/empty.png.js +1 -2
  233. package/es/components/index.js +8 -0
  234. package/es/components/locales/index.js +4 -0
  235. package/es/components/material-exercise/MaterialExercise.d.ts +1 -1
  236. package/es/components/material-exercise/MaterialExercise.js +107 -75
  237. package/es/components/material-exercise/MaterialExercise.styled.js +14 -14
  238. package/es/components/material-exercise/MaterialExerciseMobile.d.ts +1 -1
  239. package/es/components/material-exercise/MaterialExerciseMobile.js +13 -7
  240. package/es/components/material-exercise/context/ExerciseProvider.js +63 -58
  241. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +35 -30
  242. package/es/components/material-exercise/context/context.js +1 -1
  243. package/es/components/material-exercise/context/index.js +5 -0
  244. package/es/components/material-exercise/context/recoil.js +535 -290
  245. package/es/components/material-exercise/context/subjects.js +4 -4
  246. package/es/components/material-exercise/context/types.d.ts +2 -2
  247. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +95 -78
  248. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  249. package/es/components/material-exercise/exercise-code-history/index.js +1 -0
  250. package/es/components/material-exercise/exercise-code-history/locales/index.js +4 -0
  251. package/es/components/material-exercise/exercise-file/ExerciseFile.js +25 -27
  252. package/es/components/material-exercise/exercise-file/index.js +1 -0
  253. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +221 -149
  254. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +15 -13
  255. package/es/components/material-exercise/exercise-file-editor/index.js +1 -0
  256. package/es/components/material-exercise/exercise-file-editor/locales/index.js +4 -0
  257. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +44 -29
  258. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.d.ts +1 -2
  259. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
  260. package/es/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/ExerciseFileTabsFileTreeButton.js +48 -36
  261. package/es/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/index.js +1 -0
  262. package/es/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/locales/index.js +4 -0
  263. package/es/components/material-exercise/exercise-file-tabs/index.js +2 -0
  264. package/es/components/material-exercise/exercise-file-tabs/locales/index.js +4 -0
  265. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +348 -211
  266. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.d.ts +1 -2
  267. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
  268. package/es/components/material-exercise/exercise-file-tree/index.js +2 -0
  269. package/es/components/material-exercise/exercise-file-tree/locales/index.js +4 -0
  270. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +14 -15
  271. package/es/components/material-exercise/exercise-file-viewer/index.js +1 -0
  272. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +16 -12
  273. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +12 -11
  274. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +119 -80
  275. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +96 -67
  276. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +41 -23
  277. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +143 -122
  278. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +13 -13
  279. package/es/components/material-exercise/exercise-menu/index.js +1 -0
  280. package/es/components/material-exercise/exercise-menu/locales/index.js +4 -0
  281. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -19
  282. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.d.ts +1 -2
  283. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +6 -4
  284. package/es/components/material-exercise/exercise-multilang-dropdown/index.js +2 -0
  285. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +26 -24
  286. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +14 -7
  287. package/es/components/material-exercise/exercise-preview/index.js +1 -0
  288. package/es/components/material-exercise/exercise-preview/locales/index.js +4 -0
  289. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +47 -35
  290. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +10 -6
  291. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +85 -78
  292. package/es/components/material-exercise/exercise-rightpane/index.js +1 -0
  293. package/es/components/material-exercise/exercise-rightpane/locales/index.js +4 -0
  294. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +21 -12
  295. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  296. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +498 -349
  297. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +193 -133
  298. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
  299. package/es/components/material-exercise/exercise-room/helpers/index.js +1 -0
  300. package/es/components/material-exercise/exercise-room/index.js +1 -0
  301. package/es/components/material-exercise/exercise-room/locales/index.js +4 -0
  302. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +200 -142
  303. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  304. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +20 -16
  305. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +112 -85
  306. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +30 -20
  307. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +90 -82
  308. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +63 -52
  309. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +131 -87
  310. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -2
  311. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +17 -15
  312. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +31 -23
  313. package/es/components/material-exercise/exercise-runner/index.js +1 -0
  314. package/es/components/material-exercise/exercise-runner/locales/index.js +4 -0
  315. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +399 -250
  316. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  317. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +68 -49
  318. package/es/components/material-exercise/exercise-submit-history/index.js +1 -0
  319. package/es/components/material-exercise/exercise-submit-history/locales/index.js +4 -0
  320. package/es/components/material-exercise/index.js +2 -0
  321. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +29 -24
  322. package/es/components/shared/exercise-menu-button/index.js +1 -0
  323. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +40 -38
  324. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +22 -20
  325. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +10 -8
  326. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +24 -22
  327. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +19 -9
  328. package/es/components/shared/exercise-shimmer/index.js +5 -0
  329. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +6 -5
  330. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  331. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +10 -10
  332. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  333. package/es/components/shared/exercise-version-list/index.js +2 -0
  334. package/es/components/shared/file-icon/FileIcon.js +19 -16
  335. package/es/components/shared/file-icon/index.js +1 -0
  336. package/es/components/shared/file-tabs/FileTab.js +43 -33
  337. package/es/components/shared/file-tabs/FileTab.styled.js +19 -15
  338. package/es/components/shared/file-tabs/FileTabs.js +62 -40
  339. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  340. package/es/components/shared/file-tabs/index.js +1 -0
  341. package/es/components/shared/file-tabs/util.js +27 -14
  342. package/es/components/shared/file-tree/FileTree.js +16 -10
  343. package/es/components/shared/file-tree/FileTreeConfig.js +39 -39
  344. package/es/components/shared/file-tree/FileTreeList.js +38 -40
  345. package/es/components/shared/file-tree/FileTreeListItemContent.js +124 -99
  346. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +25 -21
  347. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +102 -96
  348. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  349. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +129 -91
  350. package/es/components/shared/file-tree/FileTreeListItems.js +149 -137
  351. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  352. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  353. package/es/components/shared/file-tree/context/FileTreeContext.d.ts +1 -1
  354. package/es/components/shared/file-tree/context/FileTreeContext.js +97 -79
  355. package/es/components/shared/file-tree/context/index.js +1 -0
  356. package/es/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +55 -54
  357. package/es/components/shared/file-tree/file-tree-toolbar/index.js +1 -0
  358. package/es/components/shared/file-tree/file-tree-toolbar/locales/index.js +4 -0
  359. package/es/components/shared/file-tree/index.js +1 -0
  360. package/es/components/shared/file-tree/locales/index.js +4 -0
  361. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -20
  362. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -146
  363. package/es/components/shared/file-tree/utils/fileTreeInput.js +11 -1
  364. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  365. package/es/components/shared/file-tree/utils/fileTreePath.js +5 -6
  366. package/es/components/shared/file-tree/utils/index.js +5 -0
  367. package/es/components/shared/file-viewer/FileViewer.js +69 -46
  368. package/es/components/shared/file-viewer/FileViewerCsv.js +257 -167
  369. package/es/components/shared/file-viewer/FileViewerImage.js +12 -12
  370. package/es/components/shared/file-viewer/FileViewerIpynb.js +21 -11
  371. package/es/components/shared/file-viewer/FileViewerNonViewable.js +60 -47
  372. package/es/components/shared/file-viewer/FileViewerText.js +19 -11
  373. package/es/components/shared/file-viewer/index.js +1 -0
  374. package/es/components/shared/file-viewer/locales/index.js +8 -0
  375. package/es/components/shared/material-modal/MaterialModal.js +20 -11
  376. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  377. package/es/components/shared/material-modal/index.js +1 -0
  378. package/es/components/shared/monaco-editor/MonacoEditor.js +95 -72
  379. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +11 -7
  380. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +43 -32
  381. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +244 -194
  382. package/es/components/shared/monaco-editor/constants/grammars/index.js +82 -28
  383. package/es/components/shared/monaco-editor/constants/index.js +2 -0
  384. package/es/components/shared/monaco-editor/constants/monaco/index.js +1 -0
  385. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
  386. package/es/components/shared/monaco-editor/constants/themes/index.js +49 -17
  387. package/es/components/shared/monaco-editor/editor-hooks/index.js +6 -0
  388. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +11 -10
  389. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +15 -14
  390. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +9 -8
  391. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +34 -30
  392. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +9 -7
  393. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
  394. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -10
  395. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -10
  396. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  397. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/index.js +3 -0
  398. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +37 -10
  399. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +3 -3
  400. package/es/components/shared/monaco-editor/hooks/index.js +1 -0
  401. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +11 -5
  402. package/es/components/shared/monaco-editor/index.js +6 -0
  403. package/es/components/shared/monaco-editor/locales/index.js +4 -0
  404. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +10 -12
  405. package/es/components/shared/monaco-editor/utils/emmet/index.js +1 -0
  406. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -6
  407. package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -24
  408. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -6
  409. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -35
  410. package/es/components/shared/monaco-editor/utils/index.js +2 -0
  411. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +5 -5
  412. package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -4
  413. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -2
  414. package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -7
  415. package/es/components/shared/monaco-editor/utils/theme/convert.js +19 -13
  416. package/es/components/shared/monaco-editor/utils/theme/index.js +22 -3
  417. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -56
  418. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -68
  419. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +120 -93
  420. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +152 -130
  421. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -92
  422. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/index.js +3 -0
  423. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  424. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -6
  425. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
  426. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +171 -156
  427. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/index.js +2 -0
  428. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
  429. package/es/components/shared/no-vnc/NoVnc.js +99 -71
  430. package/es/components/shared/no-vnc/NoVncLazy.js +11 -7
  431. package/es/components/shared/no-vnc/index.js +1 -0
  432. package/es/components/shared/preview-container/PreviewContainer.js +15 -14
  433. package/es/components/shared/preview-container/index.js +1 -0
  434. package/es/components/shared/web-browser/WebBrowser.js +69 -52
  435. package/es/components/shared/web-browser/index.js +1 -0
  436. package/es/components/shared/xterm/Xterm.js +77 -57
  437. package/es/components/shared/xterm/XtermLazy.js +11 -7
  438. package/es/components/shared/xterm/index.js +1 -0
  439. package/es/components/shared/xterm/locales/index.js +4 -0
  440. package/es/constants/arduino.js +10 -10
  441. package/es/constants/color.js +1 -1
  442. package/es/constants/index.js +1 -0
  443. package/es/constants/shortcutKeyMap.js +3 -1
  444. package/es/constants/stylesheets.js +7 -5
  445. package/es/hooks/index.js +7 -0
  446. package/es/hooks/useArduino.js +278 -141
  447. package/es/hooks/useExerciseFile.js +24 -22
  448. package/es/hooks/useExericseShortcut.js +6 -4
  449. package/es/hooks/useMaterialExerciseFileUrl.js +52 -34
  450. package/es/hooks/useRunnerRoomWebSocket.js +51 -27
  451. package/es/hooks/useStdioTextConcator.js +11 -11
  452. package/es/hooks/useStdioWebSocket.js +32 -28
  453. package/es/hooks/useUsercodeEditWebSocket.js +232 -157
  454. package/es/hooks/useUsercodeHistory.js +115 -63
  455. package/es/utils/arduino.js +24 -12
  456. package/es/utils/exerciseFile.js +8 -10
  457. package/es/utils/index.js +2 -0
  458. package/es/utils/runner.js +33 -17
  459. package/package.json +11 -15
@@ -10,32 +10,34 @@ import { checkExerciseFileEditable, checkExerciseFileResettable } from '../utils
10
10
  /**
11
11
  * Check whether the exercise file is editable.
12
12
  */
13
- const useExerciseFileEditable = filename => {
14
- const {
15
- materialExerciseId,
16
- exerciseRoomId
17
- } = useContext(ExerciseContext);
18
- const exercise = useRecoilValue(exerciseState(materialExerciseId));
19
- const exerciseRoom = useRecoilValue(exerciseRoomState(exerciseRoomId));
20
- return useMemo(() => checkExerciseFileEditable(filename, {
21
- exercise,
22
- exerciseRoom
23
- }), [filename, exercise, exerciseRoom]);
13
+ var useExerciseFileEditable = function useExerciseFileEditable(filename) {
14
+ var _useContext = useContext(ExerciseContext),
15
+ materialExerciseId = _useContext.materialExerciseId,
16
+ exerciseRoomId = _useContext.exerciseRoomId;
17
+ var exercise = useRecoilValue(exerciseState(materialExerciseId));
18
+ var exerciseRoom = useRecoilValue(exerciseRoomState(exerciseRoomId));
19
+ return useMemo(function () {
20
+ return checkExerciseFileEditable(filename, {
21
+ exercise: exercise,
22
+ exerciseRoom: exerciseRoom
23
+ });
24
+ }, [filename, exercise, exerciseRoom]);
24
25
  };
25
26
  /**
26
27
  * Check whether the exercise file is resettable.
27
28
  */
28
- const useExerciseFileResettable = filename => {
29
- const {
30
- materialExerciseId,
31
- exerciseRoomId
32
- } = useContext(ExerciseContext);
33
- const exercise = useRecoilValue(exerciseState(materialExerciseId));
34
- const exerciseRoom = useRecoilValue(exerciseRoomState(exerciseRoomId));
35
- return useMemo(() => checkExerciseFileResettable(filename, {
36
- exercise,
37
- exerciseRoom
38
- }), [filename, exercise, exerciseRoom]);
29
+ var useExerciseFileResettable = function useExerciseFileResettable(filename) {
30
+ var _useContext2 = useContext(ExerciseContext),
31
+ materialExerciseId = _useContext2.materialExerciseId,
32
+ exerciseRoomId = _useContext2.exerciseRoomId;
33
+ var exercise = useRecoilValue(exerciseState(materialExerciseId));
34
+ var exerciseRoom = useRecoilValue(exerciseRoomState(exerciseRoomId));
35
+ return useMemo(function () {
36
+ return checkExerciseFileResettable(filename, {
37
+ exercise: exercise,
38
+ exerciseRoom: exerciseRoom
39
+ });
40
+ }, [filename, exercise, exerciseRoom]);
39
41
  };
40
42
 
41
43
  export { useExerciseFileEditable, useExerciseFileResettable };
@@ -1,10 +1,12 @@
1
1
  import { useKey } from 'react-use';
2
2
  import EXERCISE_SHORTCUT_KEY_MAP from '../constants/shortcutKeyMap.js';
3
3
 
4
- const useExericseShortcut = (name, fn) => {
5
- const keys = EXERCISE_SHORTCUT_KEY_MAP[name];
6
- useKey(e => {
7
- if (keys && keys.some(key => key.key === e.key && key.metaKey === e.metaKey && key.ctrlKey === e.ctrlKey && key.shiftKey === e.shiftKey && key.altKey === e.altKey)) {
4
+ var useExericseShortcut = function useExericseShortcut(name, fn) {
5
+ var keys = EXERCISE_SHORTCUT_KEY_MAP[name];
6
+ useKey(function (e) {
7
+ if (keys && keys.some(function (key) {
8
+ return key.key === e.key && key.metaKey === e.metaKey && key.ctrlKey === e.ctrlKey && key.shiftKey === e.shiftKey && key.altKey === e.altKey;
9
+ })) {
8
10
  // console.log(e);
9
11
  e.preventDefault();
10
12
  e.stopPropagation();
@@ -1,45 +1,63 @@
1
+ import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import React from 'react';
2
- import { getOrgMaterialExerciseExerciseImageExerciseFileGet, getOrgMaterialExerciseExerciseRoomUserFileGet } from '@elice/api-client';
3
+ import { getOrgMaterialExerciseExerciseRoomUserFileGet, getOrgMaterialExerciseExerciseImageExerciseFileGet } from '@elice/api-client';
3
4
 
4
- const useMaterialExerciseFileUrl = ({
5
- filename,
6
- exercise,
7
- exerciseRoomId,
8
- onError
9
- }) => {
10
- const [fileUrl, setFileUrl] = React.useState(null);
5
+ var useMaterialExerciseFileUrl = function useMaterialExerciseFileUrl(_ref) {
6
+ var filename = _ref.filename,
7
+ exercise = _ref.exercise,
8
+ exerciseRoomId = _ref.exerciseRoomId,
9
+ onError = _ref.onError;
10
+ var _React$useState = React.useState(null),
11
+ _React$useState2 = _slicedToArray(_React$useState, 2),
12
+ fileUrl = _React$useState2[0],
13
+ setFileUrl = _React$useState2[1];
11
14
  //
12
15
  // Fetch file url.
13
16
  //
14
- React.useEffect(() => {
15
- const abortCtrl = new AbortController();
16
- const exerciseImage = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage;
17
+ React.useEffect(function () {
18
+ var abortCtrl = new AbortController();
19
+ var exerciseImage = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage;
17
20
  if (!exerciseImage || !filename) {
18
21
  return;
19
22
  }
20
- (async () => {
21
- var _a;
22
- const exerciseImageFileList = (_a = exerciseImage.filelist) !== null && _a !== void 0 ? _a : [];
23
- // origin from exercise image
24
- if (exerciseImageFileList.includes(filename)) {
25
- return getOrgMaterialExerciseExerciseImageExerciseFileGet({
26
- exerciseImageId: exerciseImage.id,
27
- filename
28
- }, {
29
- signal: abortCtrl.signal
30
- }).then(res => res.exerciseFile.url).catch(() => null);
31
- }
32
- // origin from exercise room
33
- else {
34
- return getOrgMaterialExerciseExerciseRoomUserFileGet({
35
- exerciseRoomId,
36
- filename
37
- }, {
38
- signal: abortCtrl.signal
39
- }).then(res => res.userFile.url).catch(() => null);
40
- }
41
- })().then(setFileUrl).catch(onError);
42
- return () => {
23
+ _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
24
+ var _a, exerciseImageFileList;
25
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
26
+ while (1) switch (_context.prev = _context.next) {
27
+ case 0:
28
+ exerciseImageFileList = (_a = exerciseImage.filelist) !== null && _a !== void 0 ? _a : []; // origin from exercise image
29
+ if (!exerciseImageFileList.includes(filename)) {
30
+ _context.next = 5;
31
+ break;
32
+ }
33
+ return _context.abrupt("return", getOrgMaterialExerciseExerciseImageExerciseFileGet({
34
+ exerciseImageId: exerciseImage.id,
35
+ filename: filename
36
+ }, {
37
+ signal: abortCtrl.signal
38
+ }).then(function (res) {
39
+ return res.exerciseFile.url;
40
+ }).catch(function () {
41
+ return null;
42
+ }));
43
+ case 5:
44
+ return _context.abrupt("return", getOrgMaterialExerciseExerciseRoomUserFileGet({
45
+ exerciseRoomId: exerciseRoomId,
46
+ filename: filename
47
+ }, {
48
+ signal: abortCtrl.signal
49
+ }).then(function (res) {
50
+ return res.userFile.url;
51
+ }).catch(function () {
52
+ return null;
53
+ }));
54
+ case 6:
55
+ case "end":
56
+ return _context.stop();
57
+ }
58
+ }, _callee);
59
+ }))().then(setFileUrl).catch(onError);
60
+ return function () {
43
61
  abortCtrl.abort();
44
62
  setFileUrl(null);
45
63
  };
@@ -1,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import { useRef, useState, useCallback, useEffect } from 'react';
2
3
  import { config, postOrgRunnerRoomExerciseRoomJoin } from '@elice/api-client';
3
4
  import { useMaterialConfig, useMaterialConfigApiClientUpdate } from '@elice/material-shared-utils';
@@ -7,36 +8,43 @@ import { camelizeKeys } from 'humps';
7
8
  //
8
9
  //
9
10
  //
10
- const MAX_WEBSOCKET_RETRY_COUNT = 5;
11
+ var MAX_WEBSOCKET_RETRY_COUNT = 5;
11
12
  /**
12
13
  *
13
14
  */
14
- const useRunnerRoomWebSocket = ({
15
- exerciseRoomId
16
- }) => {
17
- const _return = useRef({});
18
- const {
19
- apiWsOriginUrl
20
- } = useMaterialConfig();
21
- const isReady = useMaterialConfigApiClientUpdate(config.init);
22
- const websocket = useRef(null);
23
- const [websocketReadyState, setWebSocketReadyState] = useState(EliceWebSocket.CLOSED);
24
- const [isRunning, setRunning] = useState(false);
25
- const [roomConnectionInfo, setRoomConnectionInfo] = useState(null);
15
+ var useRunnerRoomWebSocket = function useRunnerRoomWebSocket(_ref) {
16
+ var exerciseRoomId = _ref.exerciseRoomId;
17
+ var _return = useRef({});
18
+ var _useMaterialConfig = useMaterialConfig(),
19
+ apiWsOriginUrl = _useMaterialConfig.apiWsOriginUrl;
20
+ var isReady = useMaterialConfigApiClientUpdate(config.init);
21
+ var websocket = useRef(null);
22
+ var _useState = useState(EliceWebSocket.CLOSED),
23
+ _useState2 = _slicedToArray(_useState, 2),
24
+ websocketReadyState = _useState2[0],
25
+ setWebSocketReadyState = _useState2[1];
26
+ var _useState3 = useState(false),
27
+ _useState4 = _slicedToArray(_useState3, 2),
28
+ isRunning = _useState4[0],
29
+ setRunning = _useState4[1];
30
+ var _useState5 = useState(null),
31
+ _useState6 = _slicedToArray(_useState5, 2),
32
+ roomConnectionInfo = _useState6[0],
33
+ setRoomConnectionInfo = _useState6[1];
26
34
  //
27
35
  // =============== websocket ===============
28
36
  //
29
37
  /**
30
38
  * Reconnect websocket.
31
39
  */
32
- const reconnect = useCallback(() => {
40
+ var reconnect = useCallback(function () {
33
41
  var _a;
34
42
  (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.reconnect();
35
43
  }, []);
36
44
  /**
37
45
  * Websocket on open.
38
46
  */
39
- const wsOpen = () => {
47
+ var wsOpen = function wsOpen() {
40
48
  if (websocket.current) {
41
49
  setWebSocketReadyState(websocket.current.readyState);
42
50
  }
@@ -44,7 +52,7 @@ const useRunnerRoomWebSocket = ({
44
52
  /**
45
53
  * Websocket on close.
46
54
  */
47
- const wsClose = () => {
55
+ var wsClose = function wsClose() {
48
56
  if (websocket.current) {
49
57
  setWebSocketReadyState(websocket.current.readyState);
50
58
  }
@@ -52,7 +60,7 @@ const useRunnerRoomWebSocket = ({
52
60
  /**
53
61
  * Websocket on error.
54
62
  */
55
- const wsError = () => {
63
+ var wsError = function wsError() {
56
64
  if (websocket.current) {
57
65
  setWebSocketReadyState(websocket.current.readyState);
58
66
  }
@@ -60,8 +68,8 @@ const useRunnerRoomWebSocket = ({
60
68
  /**
61
69
  * Websocket on message.
62
70
  */
63
- const wsMessage = e => {
64
- const msg = camelizeKeys(e.data);
71
+ var wsMessage = function wsMessage(e) {
72
+ var msg = camelizeKeys(e.data);
65
73
  switch (msg.type) {
66
74
  case 'ROOM_PREPARED':
67
75
  wsMessageRoomPrepared(msg);
@@ -77,7 +85,7 @@ const useRunnerRoomWebSocket = ({
77
85
  /**
78
86
  * Websocket on `ROOM_PREPARED` message.
79
87
  */
80
- const wsMessageRoomPrepared = msg => {
88
+ var wsMessageRoomPrepared = function wsMessageRoomPrepared(msg) {
81
89
  setRoomConnectionInfo(Object.assign(Object.assign({}, msg.data.forwarder), {
82
90
  roomToken: msg.data.roomToken
83
91
  }));
@@ -85,25 +93,41 @@ const useRunnerRoomWebSocket = ({
85
93
  /**
86
94
  * Websocket on `EXECUTE_CONTAINER` message.
87
95
  */
88
- const wsMessageExecuteContainer = msg => {
96
+ var wsMessageExecuteContainer = function wsMessageExecuteContainer(msg) {
89
97
  setRunning(true);
90
98
  };
91
99
  /**
92
100
  * Websocket on `EXECUTE_DONE` message.
93
101
  */
94
- const wsMessageExecuteDone = msg => {
102
+ var wsMessageExecuteDone = function wsMessageExecuteDone(msg) {
95
103
  setRunning(false);
96
104
  };
97
105
  /**
98
106
  * Create usercode websocket url.
99
107
  */
100
- const createUsercodeUrl = useCallback(async () => Promise.resolve(`${apiWsOriginUrl}/runner_room`).then(url => postOrgRunnerRoomExerciseRoomJoin({
101
- exerciseRoomId
102
- }).then(data => `${url}/${data.roomToken}`).catch(() => `${url}/`)), [apiWsOriginUrl, exerciseRoomId]);
108
+ var createUsercodeUrl = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
109
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
110
+ while (1) switch (_context.prev = _context.next) {
111
+ case 0:
112
+ return _context.abrupt("return", Promise.resolve("".concat(apiWsOriginUrl, "/runner_room")).then(function (url) {
113
+ return postOrgRunnerRoomExerciseRoomJoin({
114
+ exerciseRoomId: exerciseRoomId
115
+ }).then(function (data) {
116
+ return "".concat(url, "/").concat(data.roomToken);
117
+ }).catch(function () {
118
+ return "".concat(url, "/");
119
+ });
120
+ }));
121
+ case 1:
122
+ case "end":
123
+ return _context.stop();
124
+ }
125
+ }, _callee);
126
+ })), [apiWsOriginUrl, exerciseRoomId]);
103
127
  //
104
128
  // Initialize websocket.
105
129
  //
106
- useEffect(() => {
130
+ useEffect(function () {
107
131
  if (!isReady) {
108
132
  return;
109
133
  }
@@ -114,7 +138,7 @@ const useRunnerRoomWebSocket = ({
114
138
  websocket.current.onclose = wsClose;
115
139
  websocket.current.onmessage = wsMessage;
116
140
  websocket.current.onerror = wsError;
117
- return () => {
141
+ return function () {
118
142
  if (websocket.current) {
119
143
  websocket.current.close();
120
144
  }
@@ -9,26 +9,26 @@ import '../components/material-exercise/context/ExerciseProvider.js';
9
9
  //
10
10
  //
11
11
  //
12
- const MAX_TEXT_LENGTH = Math.pow(2, 14); // Limited length of text which regex performance is acceptable below 1s.
12
+ var MAX_TEXT_LENGTH = Math.pow(2, 14); // Limited length of text which regex performance is acceptable below 1s.
13
13
  //
14
14
  //
15
15
  //
16
- const useStdioTextConcator = done => {
17
- const RUNNER_AND_STDIO_DELAY_SAFETY_FACTOR = 1000;
18
- const textRef = React.useRef('');
19
- const isRunning = useRecoilValue(exerciseRunnerRunningState);
20
- React.useEffect(() => {
16
+ var useStdioTextConcator = function useStdioTextConcator(done) {
17
+ var RUNNER_AND_STDIO_DELAY_SAFETY_FACTOR = 1000;
18
+ var textRef = React.useRef('');
19
+ var isRunning = useRecoilValue(exerciseRunnerRunningState);
20
+ React.useEffect(function () {
21
21
  if (isRunning) {
22
22
  textRef.current = '';
23
23
  } else {
24
- setTimeout(() => {
24
+ setTimeout(function () {
25
25
  done(textRef.current);
26
26
  }, RUNNER_AND_STDIO_DELAY_SAFETY_FACTOR);
27
27
  }
28
28
  // eslint-disable-next-line react-hooks/exhaustive-deps
29
29
  }, [isRunning]);
30
- const updateStdioTextConcator = React.useCallback(text => {
31
- const currentText = textRef.current;
30
+ var updateStdioTextConcator = React.useCallback(function (text) {
31
+ var currentText = textRef.current;
32
32
  if (currentText.length + text.length > MAX_TEXT_LENGTH) {
33
33
  textRef.current = currentText.slice(0, MAX_TEXT_LENGTH - text.length) + text;
34
34
  } else {
@@ -36,8 +36,8 @@ const useStdioTextConcator = done => {
36
36
  }
37
37
  }, []);
38
38
  return {
39
- updateStdioTextConcator,
40
- done
39
+ updateStdioTextConcator: updateStdioTextConcator,
40
+ done: done
41
41
  };
42
42
  };
43
43
 
@@ -1,27 +1,31 @@
1
+ import { slicedToArray as _slicedToArray } from '../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import { useRef, useState, useCallback, useEffect } from 'react';
2
3
  import { EliceWebSocket } from '@elice/websocket';
3
4
 
4
5
  //
5
6
  //
6
7
  //
7
- const MAX_WEBSOCKET_RETRY_COUNT = 5;
8
+ var MAX_WEBSOCKET_RETRY_COUNT = 5;
8
9
  /**
9
10
  *
10
11
  */
11
- const useStdioWebSocket = ({
12
- wsUri,
13
- roomToken,
14
- isTty = false,
15
- onTextReceive,
16
- onFileReceive
17
- }) => {
18
- const _return = useRef({});
19
- const websocket = useRef(null);
20
- const [websocketReadyState, setWebSocketReadyState] = useState(EliceWebSocket.CLOSED);
12
+ var useStdioWebSocket = function useStdioWebSocket(_ref) {
13
+ var wsUri = _ref.wsUri,
14
+ roomToken = _ref.roomToken,
15
+ _ref$isTty = _ref.isTty,
16
+ isTty = _ref$isTty === void 0 ? false : _ref$isTty,
17
+ onTextReceive = _ref.onTextReceive,
18
+ onFileReceive = _ref.onFileReceive;
19
+ var _return = useRef({});
20
+ var websocket = useRef(null);
21
+ var _useState = useState(EliceWebSocket.CLOSED),
22
+ _useState2 = _slicedToArray(_useState, 2),
23
+ websocketReadyState = _useState2[0],
24
+ setWebSocketReadyState = _useState2[1];
21
25
  /**
22
26
  * Handle stdio text received.
23
27
  */
24
- const handleTextReceive = (type, text) => {
28
+ var handleTextReceive = function handleTextReceive(type, text) {
25
29
  if (typeof onTextReceive === 'function') {
26
30
  onTextReceive(type, text);
27
31
  }
@@ -29,7 +33,7 @@ const useStdioWebSocket = ({
29
33
  /**
30
34
  * Handle stdio file received.
31
35
  */
32
- const handleFileReceive = file => {
36
+ var handleFileReceive = function handleFileReceive(file) {
33
37
  if (typeof onFileReceive === 'function') {
34
38
  onFileReceive(file);
35
39
  }
@@ -37,7 +41,7 @@ const useStdioWebSocket = ({
37
41
  /**
38
42
  * Provide a utf-8 encoded string to `/dev/stdin` in the container.
39
43
  */
40
- const sendText = useCallback(data => {
44
+ var sendText = useCallback(function (data) {
41
45
  var _a;
42
46
  (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.sendJson({
43
47
  type: 'text',
@@ -47,28 +51,28 @@ const useStdioWebSocket = ({
47
51
  /**
48
52
  * Send a signal (e.g. SIGINT, SIGQUIT, etc.) to the process with PID 1 in the container.
49
53
  */
50
- const sendSignal = useCallback(data => {
54
+ var sendSignal = useCallback(function (data) {
51
55
  var _a;
52
56
  (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.sendJson({
53
57
  type: 'signal',
54
- data
58
+ data: data
55
59
  });
56
60
  }, []);
57
61
  /**
58
62
  * Resize TTY of the container.
59
63
  */
60
- const sendTtyResize = useCallback(data => {
64
+ var sendTtyResize = useCallback(function (data) {
61
65
  var _a;
62
66
  (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.sendJson({
63
67
  type: 'tty-resize',
64
- data
68
+ data: data
65
69
  });
66
70
  }, []);
67
71
  /**
68
72
  * Update the content of usercodes (which are edited by `usercode.edit` API)
69
73
  * and user files (which are added or deleted by `user_file.(add|delete)` API) in the container.
70
74
  */
71
- const sendSync = useCallback(() => {
75
+ var sendSync = useCallback(function () {
72
76
  var _a;
73
77
  (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.sendJson({
74
78
  type: 'sync'
@@ -80,14 +84,14 @@ const useStdioWebSocket = ({
80
84
  /**
81
85
  * Reconnect websocket.
82
86
  */
83
- const reconnect = useCallback(() => {
87
+ var reconnect = useCallback(function () {
84
88
  var _a;
85
89
  (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.reconnect();
86
90
  }, []);
87
91
  /**
88
92
  * Websocket on open.
89
93
  */
90
- const wsOpen = () => {
94
+ var wsOpen = function wsOpen() {
91
95
  if (websocket.current) {
92
96
  setWebSocketReadyState(websocket.current.readyState);
93
97
  }
@@ -95,7 +99,7 @@ const useStdioWebSocket = ({
95
99
  /**
96
100
  * Websocket on close.
97
101
  */
98
- const wsClose = () => {
102
+ var wsClose = function wsClose() {
99
103
  if (websocket.current) {
100
104
  setWebSocketReadyState(websocket.current.readyState);
101
105
  }
@@ -103,7 +107,7 @@ const useStdioWebSocket = ({
103
107
  /**
104
108
  * Websocket on error.
105
109
  */
106
- const wsError = () => {
110
+ var wsError = function wsError() {
107
111
  if (websocket.current) {
108
112
  setWebSocketReadyState(websocket.current.readyState);
109
113
  }
@@ -111,8 +115,8 @@ const useStdioWebSocket = ({
111
115
  /**
112
116
  * Websocket on message.
113
117
  */
114
- const wsMessage = e => {
115
- const msg = e.data;
118
+ var wsMessage = function wsMessage(e) {
119
+ var msg = e.data;
116
120
  switch (msg.type) {
117
121
  case 'text':
118
122
  handleTextReceive(msg.type, msg.data);
@@ -148,11 +152,11 @@ const useStdioWebSocket = ({
148
152
  //
149
153
  // Initialize websocket.
150
154
  //
151
- useEffect(() => {
155
+ useEffect(function () {
152
156
  if (!wsUri || !roomToken) {
153
157
  return;
154
158
  }
155
- websocket.current = new EliceWebSocket(`${wsUri}/client/stdio/${roomToken}`, undefined, {
159
+ websocket.current = new EliceWebSocket("".concat(wsUri, "/client/stdio/").concat(roomToken), undefined, {
156
160
  maxRetries: MAX_WEBSOCKET_RETRY_COUNT,
157
161
  heartAttack: true
158
162
  });
@@ -160,7 +164,7 @@ const useStdioWebSocket = ({
160
164
  websocket.current.onclose = wsClose;
161
165
  websocket.current.onmessage = wsMessage;
162
166
  websocket.current.onerror = wsError;
163
- return () => {
167
+ return function () {
164
168
  if (websocket.current) {
165
169
  websocket.current.close();
166
170
  }