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