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