@elice/material-exercise 1.240718.0-trasncript.0 → 1.240718.0-trasncript.2

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 -117
  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 -120
  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
@@ -12,32 +12,34 @@ var exerciseFile = require('../utils/exerciseFile.js');
12
12
  /**
13
13
  * Check whether the exercise file is editable.
14
14
  */
15
- const useExerciseFileEditable = filename => {
16
- const {
17
- materialExerciseId,
18
- exerciseRoomId
19
- } = React.useContext(context.ExerciseContext);
20
- const exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
21
- const exerciseRoom = recoil.useRecoilValue(recoil$1.exerciseRoomState(exerciseRoomId));
22
- return React.useMemo(() => exerciseFile.checkExerciseFileEditable(filename, {
23
- exercise,
24
- exerciseRoom
25
- }), [filename, exercise, exerciseRoom]);
15
+ var useExerciseFileEditable = function useExerciseFileEditable(filename) {
16
+ var _useContext = React.useContext(context.ExerciseContext),
17
+ materialExerciseId = _useContext.materialExerciseId,
18
+ exerciseRoomId = _useContext.exerciseRoomId;
19
+ var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
20
+ var exerciseRoom = recoil.useRecoilValue(recoil$1.exerciseRoomState(exerciseRoomId));
21
+ return React.useMemo(function () {
22
+ return exerciseFile.checkExerciseFileEditable(filename, {
23
+ exercise: exercise,
24
+ exerciseRoom: exerciseRoom
25
+ });
26
+ }, [filename, exercise, exerciseRoom]);
26
27
  };
27
28
  /**
28
29
  * Check whether the exercise file is resettable.
29
30
  */
30
- const useExerciseFileResettable = filename => {
31
- const {
32
- materialExerciseId,
33
- exerciseRoomId
34
- } = React.useContext(context.ExerciseContext);
35
- const exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
36
- const exerciseRoom = recoil.useRecoilValue(recoil$1.exerciseRoomState(exerciseRoomId));
37
- return React.useMemo(() => exerciseFile.checkExerciseFileResettable(filename, {
38
- exercise,
39
- exerciseRoom
40
- }), [filename, exercise, exerciseRoom]);
31
+ var useExerciseFileResettable = function useExerciseFileResettable(filename) {
32
+ var _useContext2 = React.useContext(context.ExerciseContext),
33
+ materialExerciseId = _useContext2.materialExerciseId,
34
+ exerciseRoomId = _useContext2.exerciseRoomId;
35
+ var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
36
+ var exerciseRoom = recoil.useRecoilValue(recoil$1.exerciseRoomState(exerciseRoomId));
37
+ return React.useMemo(function () {
38
+ return exerciseFile.checkExerciseFileResettable(filename, {
39
+ exercise: exercise,
40
+ exerciseRoom: exerciseRoom
41
+ });
42
+ }, [filename, exercise, exerciseRoom]);
41
43
  };
42
44
 
43
45
  exports.useExerciseFileEditable = useExerciseFileEditable;
@@ -3,10 +3,12 @@
3
3
  var reactUse = require('react-use');
4
4
  var shortcutKeyMap = require('../constants/shortcutKeyMap.js');
5
5
 
6
- const useExericseShortcut = (name, fn) => {
7
- const keys = shortcutKeyMap.default[name];
8
- reactUse.useKey(e => {
9
- 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)) {
6
+ var useExericseShortcut = function useExericseShortcut(name, fn) {
7
+ var keys = shortcutKeyMap.default[name];
8
+ reactUse.useKey(function (e) {
9
+ if (keys && keys.some(function (key) {
10
+ return key.key === e.key && key.metaKey === e.metaKey && key.ctrlKey === e.ctrlKey && key.shiftKey === e.shiftKey && key.altKey === e.altKey;
11
+ })) {
10
12
  // console.log(e);
11
13
  e.preventDefault();
12
14
  e.stopPropagation();
@@ -1,47 +1,69 @@
1
1
  'use strict';
2
2
 
3
+ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
3
4
  var React = require('react');
4
5
  var apiClient = require('@elice/api-client');
5
6
 
6
- const useMaterialExerciseFileUrl = ({
7
- filename,
8
- exercise,
9
- exerciseRoomId,
10
- onError
11
- }) => {
12
- const [fileUrl, setFileUrl] = React.useState(null);
7
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
10
+
11
+ var useMaterialExerciseFileUrl = function useMaterialExerciseFileUrl(_ref) {
12
+ var filename = _ref.filename,
13
+ exercise = _ref.exercise,
14
+ exerciseRoomId = _ref.exerciseRoomId,
15
+ onError = _ref.onError;
16
+ var _React$useState = React__default.default.useState(null),
17
+ _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
18
+ fileUrl = _React$useState2[0],
19
+ setFileUrl = _React$useState2[1];
13
20
  //
14
21
  // Fetch file url.
15
22
  //
16
- React.useEffect(() => {
17
- const abortCtrl = new AbortController();
18
- const exerciseImage = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage;
23
+ React__default.default.useEffect(function () {
24
+ var abortCtrl = new AbortController();
25
+ var exerciseImage = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage;
19
26
  if (!exerciseImage || !filename) {
20
27
  return;
21
28
  }
22
- (async () => {
23
- var _a;
24
- const exerciseImageFileList = (_a = exerciseImage.filelist) !== null && _a !== void 0 ? _a : [];
25
- // origin from exercise image
26
- if (exerciseImageFileList.includes(filename)) {
27
- return apiClient.getOrgMaterialExerciseExerciseImageExerciseFileGet({
28
- exerciseImageId: exerciseImage.id,
29
- filename
30
- }, {
31
- signal: abortCtrl.signal
32
- }).then(res => res.exerciseFile.url).catch(() => null);
33
- }
34
- // origin from exercise room
35
- else {
36
- return apiClient.getOrgMaterialExerciseExerciseRoomUserFileGet({
37
- exerciseRoomId,
38
- filename
39
- }, {
40
- signal: abortCtrl.signal
41
- }).then(res => res.userFile.url).catch(() => null);
42
- }
43
- })().then(setFileUrl).catch(onError);
44
- return () => {
29
+ _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
30
+ var _a, exerciseImageFileList;
31
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
32
+ while (1) switch (_context.prev = _context.next) {
33
+ case 0:
34
+ exerciseImageFileList = (_a = exerciseImage.filelist) !== null && _a !== void 0 ? _a : []; // origin from exercise image
35
+ if (!exerciseImageFileList.includes(filename)) {
36
+ _context.next = 5;
37
+ break;
38
+ }
39
+ return _context.abrupt("return", apiClient.getOrgMaterialExerciseExerciseImageExerciseFileGet({
40
+ exerciseImageId: exerciseImage.id,
41
+ filename: filename
42
+ }, {
43
+ signal: abortCtrl.signal
44
+ }).then(function (res) {
45
+ return res.exerciseFile.url;
46
+ }).catch(function () {
47
+ return null;
48
+ }));
49
+ case 5:
50
+ return _context.abrupt("return", apiClient.getOrgMaterialExerciseExerciseRoomUserFileGet({
51
+ exerciseRoomId: exerciseRoomId,
52
+ filename: filename
53
+ }, {
54
+ signal: abortCtrl.signal
55
+ }).then(function (res) {
56
+ return res.userFile.url;
57
+ }).catch(function () {
58
+ return null;
59
+ }));
60
+ case 6:
61
+ case "end":
62
+ return _context.stop();
63
+ }
64
+ }, _callee);
65
+ }))().then(setFileUrl).catch(onError);
66
+ return function () {
45
67
  abortCtrl.abort();
46
68
  setFileUrl(null);
47
69
  };
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
3
4
  var React = require('react');
4
5
  var apiClient = require('@elice/api-client');
5
6
  var materialSharedUtils = require('@elice/material-shared-utils');
@@ -9,36 +10,43 @@ var humps = require('humps');
9
10
  //
10
11
  //
11
12
  //
12
- const MAX_WEBSOCKET_RETRY_COUNT = 5;
13
+ var MAX_WEBSOCKET_RETRY_COUNT = 5;
13
14
  /**
14
15
  *
15
16
  */
16
- const useRunnerRoomWebSocket = ({
17
- exerciseRoomId
18
- }) => {
19
- const _return = React.useRef({});
20
- const {
21
- apiWsOriginUrl
22
- } = materialSharedUtils.useMaterialConfig();
23
- const isReady = materialSharedUtils.useMaterialConfigApiClientUpdate(apiClient.config.init);
24
- const websocket$1 = React.useRef(null);
25
- const [websocketReadyState, setWebSocketReadyState] = React.useState(websocket.EliceWebSocket.CLOSED);
26
- const [isRunning, setRunning] = React.useState(false);
27
- const [roomConnectionInfo, setRoomConnectionInfo] = React.useState(null);
17
+ var useRunnerRoomWebSocket = function useRunnerRoomWebSocket(_ref) {
18
+ var exerciseRoomId = _ref.exerciseRoomId;
19
+ var _return = React.useRef({});
20
+ var _useMaterialConfig = materialSharedUtils.useMaterialConfig(),
21
+ apiWsOriginUrl = _useMaterialConfig.apiWsOriginUrl;
22
+ var isReady = materialSharedUtils.useMaterialConfigApiClientUpdate(apiClient.config.init);
23
+ var websocket$1 = React.useRef(null);
24
+ var _useState = React.useState(websocket.EliceWebSocket.CLOSED),
25
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
26
+ websocketReadyState = _useState2[0],
27
+ setWebSocketReadyState = _useState2[1];
28
+ var _useState3 = React.useState(false),
29
+ _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
30
+ isRunning = _useState4[0],
31
+ setRunning = _useState4[1];
32
+ var _useState5 = React.useState(null),
33
+ _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
34
+ roomConnectionInfo = _useState6[0],
35
+ setRoomConnectionInfo = _useState6[1];
28
36
  //
29
37
  // =============== websocket ===============
30
38
  //
31
39
  /**
32
40
  * Reconnect websocket.
33
41
  */
34
- const reconnect = React.useCallback(() => {
42
+ var reconnect = React.useCallback(function () {
35
43
  var _a;
36
44
  (_a = websocket$1.current) === null || _a === void 0 ? void 0 : _a.reconnect();
37
45
  }, []);
38
46
  /**
39
47
  * Websocket on open.
40
48
  */
41
- const wsOpen = () => {
49
+ var wsOpen = function wsOpen() {
42
50
  if (websocket$1.current) {
43
51
  setWebSocketReadyState(websocket$1.current.readyState);
44
52
  }
@@ -46,7 +54,7 @@ const useRunnerRoomWebSocket = ({
46
54
  /**
47
55
  * Websocket on close.
48
56
  */
49
- const wsClose = () => {
57
+ var wsClose = function wsClose() {
50
58
  if (websocket$1.current) {
51
59
  setWebSocketReadyState(websocket$1.current.readyState);
52
60
  }
@@ -54,7 +62,7 @@ const useRunnerRoomWebSocket = ({
54
62
  /**
55
63
  * Websocket on error.
56
64
  */
57
- const wsError = () => {
65
+ var wsError = function wsError() {
58
66
  if (websocket$1.current) {
59
67
  setWebSocketReadyState(websocket$1.current.readyState);
60
68
  }
@@ -62,8 +70,8 @@ const useRunnerRoomWebSocket = ({
62
70
  /**
63
71
  * Websocket on message.
64
72
  */
65
- const wsMessage = e => {
66
- const msg = humps.camelizeKeys(e.data);
73
+ var wsMessage = function wsMessage(e) {
74
+ var msg = humps.camelizeKeys(e.data);
67
75
  switch (msg.type) {
68
76
  case 'ROOM_PREPARED':
69
77
  wsMessageRoomPrepared(msg);
@@ -79,7 +87,7 @@ const useRunnerRoomWebSocket = ({
79
87
  /**
80
88
  * Websocket on `ROOM_PREPARED` message.
81
89
  */
82
- const wsMessageRoomPrepared = msg => {
90
+ var wsMessageRoomPrepared = function wsMessageRoomPrepared(msg) {
83
91
  setRoomConnectionInfo(Object.assign(Object.assign({}, msg.data.forwarder), {
84
92
  roomToken: msg.data.roomToken
85
93
  }));
@@ -87,25 +95,41 @@ const useRunnerRoomWebSocket = ({
87
95
  /**
88
96
  * Websocket on `EXECUTE_CONTAINER` message.
89
97
  */
90
- const wsMessageExecuteContainer = msg => {
98
+ var wsMessageExecuteContainer = function wsMessageExecuteContainer(msg) {
91
99
  setRunning(true);
92
100
  };
93
101
  /**
94
102
  * Websocket on `EXECUTE_DONE` message.
95
103
  */
96
- const wsMessageExecuteDone = msg => {
104
+ var wsMessageExecuteDone = function wsMessageExecuteDone(msg) {
97
105
  setRunning(false);
98
106
  };
99
107
  /**
100
108
  * Create usercode websocket url.
101
109
  */
102
- const createUsercodeUrl = React.useCallback(async () => Promise.resolve(`${apiWsOriginUrl}/runner_room`).then(url => apiClient.postOrgRunnerRoomExerciseRoomJoin({
103
- exerciseRoomId
104
- }).then(data => `${url}/${data.roomToken}`).catch(() => `${url}/`)), [apiWsOriginUrl, exerciseRoomId]);
110
+ var createUsercodeUrl = React.useCallback( /*#__PURE__*/_rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
111
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
112
+ while (1) switch (_context.prev = _context.next) {
113
+ case 0:
114
+ return _context.abrupt("return", Promise.resolve("".concat(apiWsOriginUrl, "/runner_room")).then(function (url) {
115
+ return apiClient.postOrgRunnerRoomExerciseRoomJoin({
116
+ exerciseRoomId: exerciseRoomId
117
+ }).then(function (data) {
118
+ return "".concat(url, "/").concat(data.roomToken);
119
+ }).catch(function () {
120
+ return "".concat(url, "/");
121
+ });
122
+ }));
123
+ case 1:
124
+ case "end":
125
+ return _context.stop();
126
+ }
127
+ }, _callee);
128
+ })), [apiWsOriginUrl, exerciseRoomId]);
105
129
  //
106
130
  // Initialize websocket.
107
131
  //
108
- React.useEffect(() => {
132
+ React.useEffect(function () {
109
133
  if (!isReady) {
110
134
  return;
111
135
  }
@@ -116,7 +140,7 @@ const useRunnerRoomWebSocket = ({
116
140
  websocket$1.current.onclose = wsClose;
117
141
  websocket$1.current.onmessage = wsMessage;
118
142
  websocket$1.current.onerror = wsError;
119
- return () => {
143
+ return function () {
120
144
  if (websocket$1.current) {
121
145
  websocket$1.current.close();
122
146
  }
@@ -8,29 +8,33 @@ require('../components/material-exercise/context/recoilTypes.js');
8
8
  require('../components/material-exercise/context/subjects.js');
9
9
  require('../components/material-exercise/context/ExerciseProvider.js');
10
10
 
11
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
12
+
13
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
14
+
11
15
  //
12
16
  //
13
17
  //
14
- const MAX_TEXT_LENGTH = Math.pow(2, 14); // Limited length of text which regex performance is acceptable below 1s.
18
+ var MAX_TEXT_LENGTH = Math.pow(2, 14); // Limited length of text which regex performance is acceptable below 1s.
15
19
  //
16
20
  //
17
21
  //
18
- const useStdioTextConcator = done => {
19
- const RUNNER_AND_STDIO_DELAY_SAFETY_FACTOR = 1000;
20
- const textRef = React.useRef('');
21
- const isRunning = recoil.useRecoilValue(recoil$1.exerciseRunnerRunningState);
22
- React.useEffect(() => {
22
+ var useStdioTextConcator = function useStdioTextConcator(done) {
23
+ var RUNNER_AND_STDIO_DELAY_SAFETY_FACTOR = 1000;
24
+ var textRef = React__default.default.useRef('');
25
+ var isRunning = recoil.useRecoilValue(recoil$1.exerciseRunnerRunningState);
26
+ React__default.default.useEffect(function () {
23
27
  if (isRunning) {
24
28
  textRef.current = '';
25
29
  } else {
26
- setTimeout(() => {
30
+ setTimeout(function () {
27
31
  done(textRef.current);
28
32
  }, RUNNER_AND_STDIO_DELAY_SAFETY_FACTOR);
29
33
  }
30
34
  // eslint-disable-next-line react-hooks/exhaustive-deps
31
35
  }, [isRunning]);
32
- const updateStdioTextConcator = React.useCallback(text => {
33
- const currentText = textRef.current;
36
+ var updateStdioTextConcator = React__default.default.useCallback(function (text) {
37
+ var currentText = textRef.current;
34
38
  if (currentText.length + text.length > MAX_TEXT_LENGTH) {
35
39
  textRef.current = currentText.slice(0, MAX_TEXT_LENGTH - text.length) + text;
36
40
  } else {
@@ -38,8 +42,8 @@ const useStdioTextConcator = done => {
38
42
  }
39
43
  }, []);
40
44
  return {
41
- updateStdioTextConcator,
42
- done
45
+ updateStdioTextConcator: updateStdioTextConcator,
46
+ done: done
43
47
  };
44
48
  };
45
49
 
@@ -1,29 +1,33 @@
1
1
  'use strict';
2
2
 
3
+ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
3
4
  var React = require('react');
4
5
  var websocket = require('@elice/websocket');
5
6
 
6
7
  //
7
8
  //
8
9
  //
9
- const MAX_WEBSOCKET_RETRY_COUNT = 5;
10
+ var MAX_WEBSOCKET_RETRY_COUNT = 5;
10
11
  /**
11
12
  *
12
13
  */
13
- const useStdioWebSocket = ({
14
- wsUri,
15
- roomToken,
16
- isTty = false,
17
- onTextReceive,
18
- onFileReceive
19
- }) => {
20
- const _return = React.useRef({});
21
- const websocket$1 = React.useRef(null);
22
- const [websocketReadyState, setWebSocketReadyState] = React.useState(websocket.EliceWebSocket.CLOSED);
14
+ var useStdioWebSocket = function useStdioWebSocket(_ref) {
15
+ var wsUri = _ref.wsUri,
16
+ roomToken = _ref.roomToken,
17
+ _ref$isTty = _ref.isTty,
18
+ isTty = _ref$isTty === void 0 ? false : _ref$isTty,
19
+ onTextReceive = _ref.onTextReceive,
20
+ onFileReceive = _ref.onFileReceive;
21
+ var _return = React.useRef({});
22
+ var websocket$1 = React.useRef(null);
23
+ var _useState = React.useState(websocket.EliceWebSocket.CLOSED),
24
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
25
+ websocketReadyState = _useState2[0],
26
+ setWebSocketReadyState = _useState2[1];
23
27
  /**
24
28
  * Handle stdio text received.
25
29
  */
26
- const handleTextReceive = (type, text) => {
30
+ var handleTextReceive = function handleTextReceive(type, text) {
27
31
  if (typeof onTextReceive === 'function') {
28
32
  onTextReceive(type, text);
29
33
  }
@@ -31,7 +35,7 @@ const useStdioWebSocket = ({
31
35
  /**
32
36
  * Handle stdio file received.
33
37
  */
34
- const handleFileReceive = file => {
38
+ var handleFileReceive = function handleFileReceive(file) {
35
39
  if (typeof onFileReceive === 'function') {
36
40
  onFileReceive(file);
37
41
  }
@@ -39,7 +43,7 @@ const useStdioWebSocket = ({
39
43
  /**
40
44
  * Provide a utf-8 encoded string to `/dev/stdin` in the container.
41
45
  */
42
- const sendText = React.useCallback(data => {
46
+ var sendText = React.useCallback(function (data) {
43
47
  var _a;
44
48
  (_a = websocket$1.current) === null || _a === void 0 ? void 0 : _a.sendJson({
45
49
  type: 'text',
@@ -49,28 +53,28 @@ const useStdioWebSocket = ({
49
53
  /**
50
54
  * Send a signal (e.g. SIGINT, SIGQUIT, etc.) to the process with PID 1 in the container.
51
55
  */
52
- const sendSignal = React.useCallback(data => {
56
+ var sendSignal = React.useCallback(function (data) {
53
57
  var _a;
54
58
  (_a = websocket$1.current) === null || _a === void 0 ? void 0 : _a.sendJson({
55
59
  type: 'signal',
56
- data
60
+ data: data
57
61
  });
58
62
  }, []);
59
63
  /**
60
64
  * Resize TTY of the container.
61
65
  */
62
- const sendTtyResize = React.useCallback(data => {
66
+ var sendTtyResize = React.useCallback(function (data) {
63
67
  var _a;
64
68
  (_a = websocket$1.current) === null || _a === void 0 ? void 0 : _a.sendJson({
65
69
  type: 'tty-resize',
66
- data
70
+ data: data
67
71
  });
68
72
  }, []);
69
73
  /**
70
74
  * Update the content of usercodes (which are edited by `usercode.edit` API)
71
75
  * and user files (which are added or deleted by `user_file.(add|delete)` API) in the container.
72
76
  */
73
- const sendSync = React.useCallback(() => {
77
+ var sendSync = React.useCallback(function () {
74
78
  var _a;
75
79
  (_a = websocket$1.current) === null || _a === void 0 ? void 0 : _a.sendJson({
76
80
  type: 'sync'
@@ -82,14 +86,14 @@ const useStdioWebSocket = ({
82
86
  /**
83
87
  * Reconnect websocket.
84
88
  */
85
- const reconnect = React.useCallback(() => {
89
+ var reconnect = React.useCallback(function () {
86
90
  var _a;
87
91
  (_a = websocket$1.current) === null || _a === void 0 ? void 0 : _a.reconnect();
88
92
  }, []);
89
93
  /**
90
94
  * Websocket on open.
91
95
  */
92
- const wsOpen = () => {
96
+ var wsOpen = function wsOpen() {
93
97
  if (websocket$1.current) {
94
98
  setWebSocketReadyState(websocket$1.current.readyState);
95
99
  }
@@ -97,7 +101,7 @@ const useStdioWebSocket = ({
97
101
  /**
98
102
  * Websocket on close.
99
103
  */
100
- const wsClose = () => {
104
+ var wsClose = function wsClose() {
101
105
  if (websocket$1.current) {
102
106
  setWebSocketReadyState(websocket$1.current.readyState);
103
107
  }
@@ -105,7 +109,7 @@ const useStdioWebSocket = ({
105
109
  /**
106
110
  * Websocket on error.
107
111
  */
108
- const wsError = () => {
112
+ var wsError = function wsError() {
109
113
  if (websocket$1.current) {
110
114
  setWebSocketReadyState(websocket$1.current.readyState);
111
115
  }
@@ -113,8 +117,8 @@ const useStdioWebSocket = ({
113
117
  /**
114
118
  * Websocket on message.
115
119
  */
116
- const wsMessage = e => {
117
- const msg = e.data;
120
+ var wsMessage = function wsMessage(e) {
121
+ var msg = e.data;
118
122
  switch (msg.type) {
119
123
  case 'text':
120
124
  handleTextReceive(msg.type, msg.data);
@@ -150,11 +154,11 @@ const useStdioWebSocket = ({
150
154
  //
151
155
  // Initialize websocket.
152
156
  //
153
- React.useEffect(() => {
157
+ React.useEffect(function () {
154
158
  if (!wsUri || !roomToken) {
155
159
  return;
156
160
  }
157
- websocket$1.current = new websocket.EliceWebSocket(`${wsUri}/client/stdio/${roomToken}`, undefined, {
161
+ websocket$1.current = new websocket.EliceWebSocket("".concat(wsUri, "/client/stdio/").concat(roomToken), undefined, {
158
162
  maxRetries: MAX_WEBSOCKET_RETRY_COUNT,
159
163
  heartAttack: true
160
164
  });
@@ -162,7 +166,7 @@ const useStdioWebSocket = ({
162
166
  websocket$1.current.onclose = wsClose;
163
167
  websocket$1.current.onmessage = wsMessage;
164
168
  websocket$1.current.onerror = wsError;
165
- return () => {
169
+ return function () {
166
170
  if (websocket$1.current) {
167
171
  websocket$1.current.close();
168
172
  }