@elice/material-exercise 1.231212.0 → 1.231228.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/cjs/components/material-exercise/MaterialExercise.i18n.js +2 -4
  2. package/cjs/components/material-exercise/MaterialExercise.js +54 -59
  3. package/cjs/components/material-exercise/MaterialExercise.styled.js +14 -20
  4. package/cjs/components/material-exercise/MaterialExerciseMobile.js +8 -15
  5. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +14 -18
  6. package/cjs/components/material-exercise/context/ExerciseProvider.js +58 -66
  7. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +19 -24
  8. package/cjs/components/material-exercise/context/context.js +1 -7
  9. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +1 -1
  10. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +1 -1
  11. package/cjs/components/material-exercise/context/recoil.js +293 -544
  12. package/cjs/components/material-exercise/context/recoilTypes.js +0 -2
  13. package/cjs/components/material-exercise/context/subjects.js +3 -5
  14. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +60 -67
  15. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -14
  16. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +1 -1
  17. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +1 -1
  18. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +17 -21
  19. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +133 -203
  20. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -12
  21. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +24 -40
  22. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +38 -52
  23. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +5 -9
  24. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +1 -1
  25. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +1 -1
  26. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +189 -328
  27. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +5 -9
  28. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +1 -1
  29. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +1 -1
  30. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +14 -17
  31. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +11 -15
  32. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +7 -11
  33. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +44 -65
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +32 -61
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +19 -35
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +48 -62
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -18
  38. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
  39. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
  40. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +21 -32
  41. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +4 -8
  42. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +23 -27
  43. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +7 -17
  44. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +1 -1
  45. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +1 -1
  46. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +23 -32
  47. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +7 -15
  48. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +79 -86
  49. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +1 -1
  50. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +1 -1
  51. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +11 -22
  52. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -20
  53. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +180 -288
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +82 -116
  55. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -4
  56. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +1 -1
  57. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +1 -1
  58. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +125 -181
  59. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -7
  60. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -17
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +43 -58
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +15 -27
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +65 -68
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +23 -32
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +58 -92
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +3 -7
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +11 -16
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +18 -29
  69. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
  70. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
  71. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +162 -282
  72. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -14
  73. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -54
  74. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +1 -1
  75. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +1 -1
  76. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +15 -21
  77. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +14 -19
  78. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +16 -21
  79. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +5 -10
  80. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +18 -23
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +10 -21
  82. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -8
  83. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -7
  84. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -11
  85. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -15
  86. package/cjs/components/shared/file-icon/FileIcon.js +17 -23
  87. package/cjs/components/shared/file-tabs/FileTab.js +30 -36
  88. package/cjs/components/shared/file-tabs/FileTab.styled.js +15 -25
  89. package/cjs/components/shared/file-tabs/FileTabs.js +38 -63
  90. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -8
  91. package/cjs/components/shared/file-tabs/util.js +14 -29
  92. package/cjs/components/shared/file-tree/FileTree.js +12 -17
  93. package/cjs/components/shared/file-tree/FileTreeConfig.js +22 -25
  94. package/cjs/components/shared/file-tree/FileTreeList.js +37 -39
  95. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +61 -75
  96. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -31
  97. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +64 -72
  98. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -12
  99. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +63 -74
  100. package/cjs/components/shared/file-tree/FileTreeListItems.js +136 -151
  101. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -8
  102. package/cjs/components/shared/file-tree/FileTreeToolbar.js +31 -32
  103. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -7
  104. package/cjs/components/shared/file-tree/context/FileTreeContext.js +76 -97
  105. package/cjs/components/shared/file-tree/locales/en.json.js +1 -1
  106. package/cjs/components/shared/file-tree/locales/ko.json.js +1 -1
  107. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -26
  108. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +146 -195
  109. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -2
  110. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -3
  111. package/cjs/components/shared/file-tree/utils/fileTreePath.js +6 -7
  112. package/cjs/components/shared/file-viewer/FileViewer.js +37 -61
  113. package/cjs/components/shared/file-viewer/FileViewerCsv.js +108 -172
  114. package/cjs/components/shared/file-viewer/FileViewerImage.js +8 -12
  115. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +10 -23
  116. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +33 -42
  117. package/cjs/components/shared/file-viewer/FileViewerText.js +12 -24
  118. package/cjs/components/shared/file-viewer/locales/en.json.js +1 -1
  119. package/cjs/components/shared/file-viewer/locales/ko.json.js +1 -1
  120. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +1 -1
  121. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +1 -1
  122. package/cjs/components/shared/material-modal/MaterialModal.js +11 -14
  123. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -11
  124. package/cjs/components/shared/monaco-editor/MonacoEditor.js +74 -99
  125. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +6 -12
  126. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +36 -50
  127. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +91 -110
  128. package/cjs/components/shared/monaco-editor/constants/grammars/JSON.tmLanguage.json.js +1 -1
  129. package/cjs/components/shared/monaco-editor/constants/grammars/MagicPython.tmLanguage.json.js +1 -1
  130. package/cjs/components/shared/monaco-editor/constants/grammars/TypeScriptReact.tmLanguage.json.js +1 -1
  131. package/cjs/components/shared/monaco-editor/constants/grammars/asp-vb-net.tmlanguage.json.js +1 -1
  132. package/cjs/components/shared/monaco-editor/constants/grammars/c.tmLanguage.json.js +1 -1
  133. package/cjs/components/shared/monaco-editor/constants/grammars/cpp.tmLanguage.json.js +1 -1
  134. package/cjs/components/shared/monaco-editor/constants/grammars/csharp.tmLanguage.json.js +1 -1
  135. package/cjs/components/shared/monaco-editor/constants/grammars/css.tmLanguage.json.js +1 -1
  136. package/cjs/components/shared/monaco-editor/constants/grammars/dart.tmLanguage.json.js +1 -1
  137. package/cjs/components/shared/monaco-editor/constants/grammars/fsharp.tmLanguage.json.js +1 -1
  138. package/cjs/components/shared/monaco-editor/constants/grammars/go.tmLanguage.json.js +1 -1
  139. package/cjs/components/shared/monaco-editor/constants/grammars/html.tmLanguage.json.js +1 -1
  140. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +28 -84
  141. package/cjs/components/shared/monaco-editor/constants/grammars/java.tmLanguage.json.js +1 -1
  142. package/cjs/components/shared/monaco-editor/constants/grammars/lua.tmLanguage.json.js +1 -1
  143. package/cjs/components/shared/monaco-editor/constants/grammars/objective-c.tmLanguage.json.js +1 -1
  144. package/cjs/components/shared/monaco-editor/constants/grammars/php.tmLanguage.json.js +1 -1
  145. package/cjs/components/shared/monaco-editor/constants/grammars/r.tmLanguage.json.js +1 -1
  146. package/cjs/components/shared/monaco-editor/constants/grammars/ruby.tmLanguage.json.js +1 -1
  147. package/cjs/components/shared/monaco-editor/constants/grammars/rust.tmLanguage.json.js +1 -1
  148. package/cjs/components/shared/monaco-editor/constants/grammars/scss.tmLanguage.json.js +1 -1
  149. package/cjs/components/shared/monaco-editor/constants/grammars/sql.tmLanguage.json.js +1 -1
  150. package/cjs/components/shared/monaco-editor/constants/grammars/swift.tmLanguage.json.js +1 -1
  151. package/cjs/components/shared/monaco-editor/constants/grammars/xml.tmLanguage.json.js +1 -1
  152. package/cjs/components/shared/monaco-editor/constants/grammars/yaml.tmLanguage.json.js +1 -1
  153. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -7
  154. package/cjs/components/shared/monaco-editor/constants/themes/abyss.json.js +1 -1
  155. package/cjs/components/shared/monaco-editor/constants/themes/elice.json.js +1 -1
  156. package/cjs/components/shared/monaco-editor/constants/themes/index.js +17 -51
  157. package/cjs/components/shared/monaco-editor/constants/themes/kimbie-dark.json.js +1 -1
  158. package/cjs/components/shared/monaco-editor/constants/themes/monokai.json.js +1 -1
  159. package/cjs/components/shared/monaco-editor/constants/themes/quietlight.json.js +1 -1
  160. package/cjs/components/shared/monaco-editor/constants/themes/red.json.js +1 -1
  161. package/cjs/components/shared/monaco-editor/constants/themes/solarized-dark.json.js +1 -1
  162. package/cjs/components/shared/monaco-editor/constants/themes/solarized-light.json.js +1 -1
  163. package/cjs/components/shared/monaco-editor/constants/themes/tomorrow-night-blue.json.js +1 -1
  164. package/cjs/components/shared/monaco-editor/constants/themes/vs-dark-plus.json.js +1 -1
  165. package/cjs/components/shared/monaco-editor/constants/themes/vs-dark.json.js +1 -1
  166. package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-black.json.js +1 -1
  167. package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-light.json.js +1 -1
  168. package/cjs/components/shared/monaco-editor/constants/themes/vs-light-plus.json.js +1 -1
  169. package/cjs/components/shared/monaco-editor/constants/themes/vs-light.json.js +1 -1
  170. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  171. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -17
  172. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -11
  173. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -36
  174. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -11
  175. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -8
  176. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +11 -52
  177. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +7 -8
  178. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +11 -52
  179. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +5 -6
  180. package/cjs/components/shared/monaco-editor/editor-languages/index.js +4 -4
  181. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -3
  182. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +1 -1
  183. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +1 -1
  184. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +1 -1
  185. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +11 -56
  186. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +17 -18
  187. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -13
  188. package/cjs/components/shared/monaco-editor/locales/en.json.js +1 -1
  189. package/cjs/components/shared/monaco-editor/locales/ko.json.js +1 -1
  190. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -12
  191. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -2
  192. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -14
  193. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +25 -69
  194. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -27
  195. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +38 -73
  196. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +8 -11
  197. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +4 -8
  198. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -4
  199. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +8 -46
  200. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +14 -26
  201. package/cjs/components/shared/monaco-editor/utils/theme/index.js +3 -24
  202. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -79
  203. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -84
  204. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -122
  205. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +133 -158
  206. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -106
  207. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -4
  208. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -3
  209. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -4
  210. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +158 -179
  211. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -5
  212. package/cjs/components/shared/no-vnc/NoVnc.js +57 -86
  213. package/cjs/components/shared/no-vnc/NoVncLazy.js +5 -11
  214. package/cjs/components/shared/preview-container/PreviewContainer.js +11 -15
  215. package/cjs/components/shared/web-browser/WebBrowser.js +37 -53
  216. package/cjs/components/shared/xterm/Xterm.js +58 -81
  217. package/cjs/components/shared/xterm/XtermLazy.js +5 -11
  218. package/cjs/components/shared/xterm/locales/en.json.js +1 -1
  219. package/cjs/components/shared/xterm/locales/ko.json.js +1 -1
  220. package/cjs/components/shared/xterm/utils/index.js +0 -2
  221. package/cjs/constants/arduino.js +10 -12
  222. package/cjs/constants/shortcutKeyMap.js +2 -4
  223. package/cjs/constants/stylesheets.js +5 -9
  224. package/cjs/hooks/useArduino.js +141 -284
  225. package/cjs/hooks/useExerciseFile.js +22 -26
  226. package/cjs/hooks/useExericseShortcut.js +4 -8
  227. package/cjs/hooks/useMaterialExerciseFileUrl.js +33 -57
  228. package/cjs/hooks/useRunnerRoomWebSocket.js +27 -53
  229. package/cjs/hooks/useStdioTextConcator.js +10 -22
  230. package/cjs/hooks/useStdioWebSocket.js +28 -34
  231. package/cjs/hooks/useUsercodeEditWebSocket.js +158 -240
  232. package/cjs/hooks/useUsercodeHistory.js +63 -117
  233. package/cjs/index.js +4 -6
  234. package/cjs/utils/arduino.js +11 -25
  235. package/cjs/utils/exerciseFile.js +10 -10
  236. package/cjs/utils/runner.js +15 -31
  237. package/es/components/material-exercise/MaterialExercise.i18n.js +2 -2
  238. package/es/components/material-exercise/MaterialExercise.js +34 -35
  239. package/es/components/material-exercise/MaterialExercise.styled.js +14 -14
  240. package/es/components/material-exercise/MaterialExerciseMobile.js +6 -9
  241. package/es/components/material-exercise/context/ExerciseIntlProvider.js +10 -8
  242. package/es/components/material-exercise/context/ExerciseProvider.js +52 -55
  243. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +10 -10
  244. package/es/components/material-exercise/context/context.js +1 -1
  245. package/es/components/material-exercise/context/recoil.js +290 -535
  246. package/es/components/material-exercise/context/subjects.js +3 -3
  247. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +51 -53
  248. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  249. package/es/components/material-exercise/exercise-file/ExerciseFile.js +9 -8
  250. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +127 -193
  251. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -4
  252. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +20 -31
  253. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +35 -44
  254. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  255. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +181 -315
  256. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  257. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +11 -10
  258. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -6
  259. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -3
  260. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +25 -42
  261. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +26 -51
  262. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +11 -23
  263. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +21 -31
  264. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  265. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +19 -26
  266. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  267. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +15 -14
  268. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +5 -11
  269. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +11 -15
  270. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +5 -9
  271. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +78 -80
  272. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +6 -13
  273. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -14
  274. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +134 -236
  275. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +65 -94
  276. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
  277. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +116 -167
  278. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  279. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +8 -7
  280. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +17 -27
  281. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +11 -18
  282. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +52 -50
  283. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +10 -14
  284. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +46 -75
  285. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -2
  286. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +4 -4
  287. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +15 -21
  288. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +138 -253
  289. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  290. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +29 -37
  291. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +12 -13
  292. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -2
  293. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -12
  294. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -2
  295. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -14
  296. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +9 -15
  297. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +3 -2
  298. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  299. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +6 -5
  300. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -9
  301. package/es/components/shared/file-icon/FileIcon.js +15 -17
  302. package/es/components/shared/file-tabs/FileTab.js +22 -24
  303. package/es/components/shared/file-tabs/FileTab.styled.js +15 -19
  304. package/es/components/shared/file-tabs/FileTabs.js +35 -55
  305. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  306. package/es/components/shared/file-tabs/util.js +14 -27
  307. package/es/components/shared/file-tree/FileTree.js +3 -3
  308. package/es/components/shared/file-tree/FileTreeConfig.js +18 -15
  309. package/es/components/shared/file-tree/FileTreeList.js +33 -29
  310. package/es/components/shared/file-tree/FileTreeListItemContent.js +45 -55
  311. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -25
  312. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +60 -64
  313. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  314. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +39 -46
  315. package/es/components/shared/file-tree/FileTreeListItems.js +134 -145
  316. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  317. package/es/components/shared/file-tree/FileTreeToolbar.js +25 -22
  318. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  319. package/es/components/shared/file-tree/context/FileTreeContext.js +74 -89
  320. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -20
  321. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +146 -193
  322. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  323. package/es/components/shared/file-tree/utils/fileTreePath.js +6 -5
  324. package/es/components/shared/file-viewer/FileViewer.js +21 -38
  325. package/es/components/shared/file-viewer/FileViewerCsv.js +70 -129
  326. package/es/components/shared/file-viewer/FileViewerImage.js +4 -3
  327. package/es/components/shared/file-viewer/FileViewerIpynb.js +7 -14
  328. package/es/components/shared/file-viewer/FileViewerNonViewable.js +15 -18
  329. package/es/components/shared/file-viewer/FileViewerText.js +9 -17
  330. package/es/components/shared/material-modal/MaterialModal.js +8 -7
  331. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  332. package/es/components/shared/monaco-editor/MonacoEditor.js +67 -87
  333. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +2 -4
  334. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +31 -41
  335. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +52 -66
  336. package/es/components/shared/monaco-editor/constants/grammars/index.js +28 -82
  337. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
  338. package/es/components/shared/monaco-editor/constants/themes/index.js +17 -49
  339. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -11
  340. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -15
  341. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  342. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -34
  343. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -9
  344. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
  345. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +10 -33
  346. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +10 -33
  347. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  348. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +10 -37
  349. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +3 -3
  350. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -11
  351. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -10
  352. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -12
  353. package/es/components/shared/monaco-editor/utils/grammar/index.js +24 -68
  354. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -25
  355. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +35 -67
  356. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +5 -5
  357. package/es/components/shared/monaco-editor/utils/monacoPreference.js +4 -6
  358. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -2
  359. package/es/components/shared/monaco-editor/utils/prettier/index.js +7 -27
  360. package/es/components/shared/monaco-editor/utils/theme/convert.js +13 -19
  361. package/es/components/shared/monaco-editor/utils/theme/index.js +3 -22
  362. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -77
  363. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -82
  364. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -120
  365. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +130 -152
  366. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -104
  367. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  368. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -1
  369. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
  370. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +157 -172
  371. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
  372. package/es/components/shared/no-vnc/NoVnc.js +42 -59
  373. package/es/components/shared/no-vnc/NoVncLazy.js +2 -4
  374. package/es/components/shared/preview-container/PreviewContainer.js +8 -7
  375. package/es/components/shared/web-browser/WebBrowser.js +29 -40
  376. package/es/components/shared/xterm/Xterm.js +51 -69
  377. package/es/components/shared/xterm/XtermLazy.js +2 -4
  378. package/es/constants/arduino.js +10 -10
  379. package/es/constants/shortcutKeyMap.js +1 -3
  380. package/es/constants/stylesheets.js +5 -7
  381. package/es/hooks/useArduino.js +141 -278
  382. package/es/hooks/useExerciseFile.js +22 -24
  383. package/es/hooks/useExericseShortcut.js +4 -6
  384. package/es/hooks/useMaterialExerciseFileUrl.js +34 -52
  385. package/es/hooks/useRunnerRoomWebSocket.js +27 -51
  386. package/es/hooks/useStdioTextConcator.js +10 -16
  387. package/es/hooks/useStdioWebSocket.js +28 -32
  388. package/es/hooks/useUsercodeEditWebSocket.js +157 -232
  389. package/es/hooks/useUsercodeHistory.js +63 -115
  390. package/es/utils/arduino.js +11 -23
  391. package/es/utils/exerciseFile.js +10 -8
  392. package/es/utils/runner.js +15 -29
  393. package/package.json +11 -7
  394. package/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -521
  395. package/es/_virtual/_rollupPluginBabelHelpers.js +0 -499
@@ -2,7 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
6
5
  var React = require('react');
7
6
  var reactIntl = require('react-intl');
8
7
  var apiClient = require('@elice/api-client');
@@ -26,21 +25,10 @@ var ExerciseIntlProvider = require('../context/ExerciseIntlProvider.js');
26
25
  var en = require('./locales/en.json.js');
27
26
  var ko = require('./locales/ko.json.js');
28
27
 
29
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
30
-
31
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
32
- var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
33
-
34
- var AsyncFileTree = React__default["default"].lazy(function () {
35
- return Promise.resolve().then(function () { return require('../../shared/file-tree/FileTree.js'); });
36
- });
37
- var AsyncFileTreeList = React__default["default"].lazy(function () {
38
- return Promise.resolve().then(function () { return require('../../shared/file-tree/FileTreeList.js'); });
39
- });
40
- var AsyncFileTreeToolbar = React__default["default"].lazy(function () {
41
- return Promise.resolve().then(function () { return require('../../shared/file-tree/FileTreeToolbar.js'); });
42
- });
43
- var StyledFileTreeDivider = styled__default["default"].hr.withConfig({
28
+ const AsyncFileTree = React.lazy(() => Promise.resolve().then(function () { return require('../../shared/file-tree/FileTree.js'); }));
29
+ const AsyncFileTreeList = React.lazy(() => Promise.resolve().then(function () { return require('../../shared/file-tree/FileTreeList.js'); }));
30
+ const AsyncFileTreeToolbar = React.lazy(() => Promise.resolve().then(function () { return require('../../shared/file-tree/FileTreeToolbar.js'); }));
31
+ const StyledFileTreeDivider = styled.hr.withConfig({
44
32
  componentId: "sc-107xvf5-0"
45
33
  })(["margin:0;width:100%;height:1px;border:0;border-bottom:", ";"], stylesheets.MATERIAL_DIVIDER_BORDER_VALUE);
46
34
  var MaterialExerciseFileError;
@@ -56,62 +44,48 @@ var MaterialExerciseFileError;
56
44
  MaterialExerciseFileError["UsableSizeExceed"] = "usable_size_exceed";
57
45
  MaterialExerciseFileError["SubFileOrPathExist"] = "sub_file_or_path_exist";
58
46
  })(MaterialExerciseFileError || (MaterialExerciseFileError = {}));
59
- var ExerciseFileTree = function ExerciseFileTree() {
47
+ const ExerciseFileTree = () => {
60
48
  var _a, _b, _c, _d;
61
- var intl = reactIntl.useIntl();
62
- var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
63
- exerciseRoomId = _React$useContext.exerciseRoomId,
64
- materialExerciseId = _React$useContext.materialExerciseId,
65
- locale = _React$useContext.locale,
66
- onError = _React$useContext.onError;
49
+ const intl = reactIntl.useIntl();
50
+ const {
51
+ exerciseRoomId,
52
+ materialExerciseId,
53
+ locale,
54
+ onError
55
+ } = React.useContext(context.ExerciseContext);
67
56
  // exercise state
68
- var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
69
- var _useRecoilState = recoil.useRecoilState(recoil$1.exerciseRoomState(exerciseRoomId)),
70
- _useRecoilState2 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState, 2),
71
- exerciseRoom = _useRecoilState2[0],
72
- setExerciseRoom = _useRecoilState2[1];
57
+ const exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
58
+ const [exerciseRoom, setExerciseRoom] = recoil.useRecoilState(recoil$1.exerciseRoomState(exerciseRoomId));
73
59
  // multi lang states
74
- var multilangLanguages = recoil.useRecoilValue(recoil$1.exerciseMultilangLanguagesState(materialExerciseId));
75
- var multilangEnvironment = recoil.useRecoilValue(recoil$1.exerciseMultilangEnvironmentState({
76
- materialExerciseId: materialExerciseId,
77
- exerciseRoomId: exerciseRoomId
60
+ const multilangLanguages = recoil.useRecoilValue(recoil$1.exerciseMultilangLanguagesState(materialExerciseId));
61
+ const multilangEnvironment = recoil.useRecoilValue(recoil$1.exerciseMultilangEnvironmentState({
62
+ materialExerciseId,
63
+ exerciseRoomId
64
+ }));
65
+ const [openedTabs, setOpenedTabs] = recoil.useRecoilState(recoil$1.exerciseFileTabsOpenedState({
66
+ materialExerciseId,
67
+ exerciseRoomId
78
68
  }));
79
- var _useRecoilState3 = recoil.useRecoilState(recoil$1.exerciseFileTabsOpenedState({
80
- materialExerciseId: materialExerciseId,
81
- exerciseRoomId: exerciseRoomId
82
- })),
83
- _useRecoilState4 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState3, 2),
84
- openedTabs = _useRecoilState4[0],
85
- setOpenedTabs = _useRecoilState4[1];
86
- var _useRecoilState5 = recoil.useRecoilState(recoil$1.exerciseActiveFilenameState),
87
- _useRecoilState6 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState5, 2),
88
- activeFilename = _useRecoilState6[0],
89
- setActiveFilename = _useRecoilState6[1];
90
- var _React$useState = React__default["default"].useState(activeFilename || ''),
91
- _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
92
- activePath = _React$useState2[0],
93
- setActivePath = _React$useState2[1];
94
- var _React$useState3 = React__default["default"].useState('idle'),
95
- _React$useState4 = _rollupPluginBabelHelpers.slicedToArray(_React$useState3, 2),
96
- apiStatus = _React$useState4[0],
97
- setApiStatus = _React$useState4[1];
69
+ const [activeFilename, setActiveFilename] = recoil.useRecoilState(recoil$1.exerciseActiveFilenameState);
70
+ const [activePath, setActivePath] = React.useState(activeFilename || '');
71
+ const [apiStatus, setApiStatus] = React.useState('idle');
98
72
  // activeFilename update effect
99
- React__default["default"].useEffect(function () {
73
+ React.useEffect(() => {
100
74
  var _a, _b, _c;
101
75
  if ((exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.MultiLanguage && multilangLanguages && multilangEnvironment && multilangLanguages[multilangEnvironment['language']]) {
102
- var filename = (_a = multilangLanguages[multilangEnvironment['language']].initialOpenFilelist[0]) !== null && _a !== void 0 ? _a : null;
76
+ const filename = (_a = multilangLanguages[multilangEnvironment['language']].initialOpenFilelist[0]) !== null && _a !== void 0 ? _a : null;
103
77
  setActiveFilename(filename);
104
78
  } else {
105
- var _filename = (_c = (_b = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _b === void 0 ? void 0 : _b.initialOpenFilelist[0]) !== null && _c !== void 0 ? _c : null;
106
- setActiveFilename(_filename);
79
+ const filename = (_c = (_b = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _b === void 0 ? void 0 : _b.initialOpenFilelist[0]) !== null && _c !== void 0 ? _c : null;
80
+ setActiveFilename(filename);
107
81
  }
108
82
  }, [exercise, multilangLanguages, multilangEnvironment, setActiveFilename]);
109
- React__default["default"].useEffect(function () {
83
+ React.useEffect(() => {
110
84
  if (activeFilename) {
111
85
  setActivePath(activeFilename);
112
86
  }
113
87
  }, [activeFilename]);
114
- var multilanguageFilelistFilter = function multilanguageFilelistFilter(filelist) {
88
+ const multilanguageFilelistFilter = filelist => {
115
89
  if (!filelist || !exercise) {
116
90
  return [];
117
91
  }
@@ -122,61 +96,39 @@ var ExerciseFileTree = function ExerciseFileTree() {
122
96
  if (!multilangLanguages[multilangEnvironment.language]) {
123
97
  return [];
124
98
  }
125
- return filelist.filter(function (filepath) {
126
- return filepath.startsWith(multilangLanguages[multilangEnvironment.language].rootDir);
127
- });
99
+ return filelist.filter(filepath => filepath.startsWith(multilangLanguages[multilangEnvironment.language].rootDir));
128
100
  } else {
129
101
  return filelist;
130
102
  }
131
103
  };
132
- var handleActivePathChange = function handleActivePathChange(path) {
133
- var isDirectory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
104
+ const handleActivePathChange = (path, isDirectory = false) => {
134
105
  if (!isDirectory) {
135
106
  if (!openedTabs.includes(path)) {
136
- setOpenedTabs([].concat(_rollupPluginBabelHelpers.toConsumableArray(openedTabs), [path]));
107
+ setOpenedTabs([...openedTabs, path]);
137
108
  }
138
109
  setActiveFilename(path);
139
110
  }
140
111
  setActivePath(path);
141
112
  };
142
- var doGetOrgMaterialExerciseExerciseRoomGet = /*#__PURE__*/function () {
143
- var _ref = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
144
- var _yield$getOrgMaterial, _exerciseRoom;
145
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
146
- while (1) switch (_context.prev = _context.next) {
147
- case 0:
148
- _context.prev = 0;
149
- _context.next = 3;
150
- return apiClient.getOrgMaterialExerciseExerciseRoomGet({
151
- exerciseRoomId: exerciseRoomId
152
- });
153
- case 3:
154
- _yield$getOrgMaterial = _context.sent;
155
- _exerciseRoom = _yield$getOrgMaterial.exerciseRoom;
156
- setExerciseRoom(_exerciseRoom);
157
- _context.next = 12;
158
- break;
159
- case 8:
160
- _context.prev = 8;
161
- _context.t0 = _context["catch"](0);
162
- console.error(_context.t0);
163
- blocks.Notification.error(intl.formatMessage({
164
- id: 'materialExercise.exerciseFileTree.fetchRoom.failure'
165
- }));
166
- case 12:
167
- case "end":
168
- return _context.stop();
169
- }
170
- }, _callee, null, [[0, 8]]);
171
- }));
172
- return function doGetOrgMaterialExerciseExerciseRoomGet() {
173
- return _ref.apply(this, arguments);
174
- };
175
- }();
176
- var handleError = function handleError(error) {
113
+ const doGetOrgMaterialExerciseExerciseRoomGet = async () => {
114
+ try {
115
+ const {
116
+ exerciseRoom
117
+ } = await apiClient.getOrgMaterialExerciseExerciseRoomGet({
118
+ exerciseRoomId
119
+ });
120
+ setExerciseRoom(exerciseRoom);
121
+ } catch (error) {
122
+ console.error(error);
123
+ blocks.Notification.error(intl.formatMessage({
124
+ id: 'materialExercise.exerciseFileTree.fetchRoom.failure'
125
+ }));
126
+ }
127
+ };
128
+ const handleError = error => {
177
129
  var _a, _b, _c;
178
- var message;
179
- var failMessage;
130
+ let message;
131
+ let failMessage;
180
132
  switch ((_a = error.detail) === null || _a === void 0 ? void 0 : _a.failCode) {
181
133
  case MaterialExerciseFileError.InsufficientPermission:
182
134
  case MaterialExerciseFileError.NotFoundExerciseRoom:
@@ -188,241 +140,150 @@ var ExerciseFileTree = function ExerciseFileTree() {
188
140
  case MaterialExerciseFileError.ResultingFilenameUnderCurrentFilename:
189
141
  case MaterialExerciseFileError.UsableSizeExceed:
190
142
  case MaterialExerciseFileError.SubFileOrPathExist:
191
- message = error.detail.failCode ? "materialExercise.exerciseFileTree.errorCode.".concat(humps.camelize(error.detail.failCode)) : 'materialExercise.exerciseFileTree.errorCode.unknown';
143
+ message = error.detail.failCode ? `materialExercise.exerciseFileTree.errorCode.${humps.camelize(error.detail.failCode)}` : 'materialExercise.exerciseFileTree.errorCode.unknown';
192
144
  failMessage = error.detail.failMessage;
193
145
  break;
194
146
  default:
195
- message = ((_b = error.detail) === null || _b === void 0 ? void 0 : _b.failCode) ? error.detail.failCode : "materialExercise.exerciseFileTree.errorCode.unknown";
147
+ message = ((_b = error.detail) === null || _b === void 0 ? void 0 : _b.failCode) ? error.detail.failCode : `materialExercise.exerciseFileTree.errorCode.unknown`;
196
148
  failMessage = (_c = error.detail) === null || _c === void 0 ? void 0 : _c.failMessage;
197
149
  }
198
150
  blocks.Notification.error(intl.formatMessage({
199
151
  id: message
200
- }) + "".concat(failMessage ? " (".concat(failMessage, ")") : ''));
152
+ }) + `${failMessage ? ` (${failMessage})` : ''}`);
201
153
  if (typeof onError === 'function') {
202
154
  onError(error);
203
155
  }
204
156
  };
205
- var handleFileAdd = /*#__PURE__*/function () {
206
- var _ref3 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee2(_ref2) {
207
- var path, emptyFileWithName, userFile;
208
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee2$(_context2) {
209
- while (1) switch (_context2.prev = _context2.next) {
210
- case 0:
211
- path = _ref2.path, emptyFileWithName = _ref2.emptyFileWithName, userFile = _ref2.userFile;
212
- setApiStatus('pending');
213
- return _context2.abrupt("return", apiClient.postOrgMaterialExerciseExerciseRoomUserFileAdd({
214
- exerciseRoomId: exerciseRoomId,
215
- path: path,
216
- emptyFileWithName: emptyFileWithName,
217
- userFile: userFile
218
- }).then(doGetOrgMaterialExerciseExerciseRoomGet).then(function () {
219
- return setApiStatus('resolved');
220
- }).catch(function (error) {
221
- setApiStatus('rejected');
222
- handleError(error);
223
- if (typeof onError === 'function') {
224
- onError(error);
225
- }
226
- }));
227
- case 3:
228
- case "end":
229
- return _context2.stop();
230
- }
231
- }, _callee2);
232
- }));
233
- return function handleFileAdd(_x) {
234
- return _ref3.apply(this, arguments);
235
- };
236
- }();
237
- var handleDirectoryAdd = /*#__PURE__*/function () {
238
- var _ref5 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee3(_ref4) {
239
- var name, path;
240
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee3$(_context3) {
241
- while (1) switch (_context3.prev = _context3.next) {
242
- case 0:
243
- name = _ref4.name, path = _ref4.path, _ref4.overwrite;
244
- setApiStatus('pending');
245
- return _context3.abrupt("return", apiClient.postOrgMaterialExerciseExerciseRoomUserFileDirectoryAdd({
246
- exerciseRoomId: exerciseRoomId,
247
- path: path,
248
- name: name
249
- }).then(doGetOrgMaterialExerciseExerciseRoomGet).then(function () {
250
- return setApiStatus('resolved');
251
- }).catch(function (error) {
252
- setApiStatus('rejected');
253
- handleError(error);
254
- if (typeof onError === 'function') {
255
- onError(error);
256
- }
257
- }));
258
- case 3:
259
- case "end":
260
- return _context3.stop();
261
- }
262
- }, _callee3);
263
- }));
264
- return function handleDirectoryAdd(_x2) {
265
- return _ref5.apply(this, arguments);
266
- };
267
- }();
268
- var handleFileDelete = /*#__PURE__*/function () {
269
- var _ref6 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee4(path) {
270
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee4$(_context4) {
271
- while (1) switch (_context4.prev = _context4.next) {
272
- case 0:
273
- setApiStatus('pending');
274
- return _context4.abrupt("return", apiClient.postOrgMaterialExerciseExerciseRoomUserFileDelete({
275
- exerciseRoomId: exerciseRoomId,
276
- filename: path
277
- }).then(doGetOrgMaterialExerciseExerciseRoomGet).then(function () {
278
- setApiStatus('resolved');
279
- setActiveFilename(openedTabs[0]);
280
- setOpenedTabs(function (openedTabs) {
281
- return openedTabs.filter(function (openTab) {
282
- return openTab !== path;
283
- });
284
- });
285
- }).catch(function (error) {
286
- setApiStatus('rejected');
287
- handleError(error);
288
- if (typeof onError === 'function') {
289
- onError(error);
290
- }
291
- }));
292
- case 2:
293
- case "end":
294
- return _context4.stop();
295
- }
296
- }, _callee4);
297
- }));
298
- return function handleFileDelete(_x3) {
299
- return _ref6.apply(this, arguments);
300
- };
301
- }();
302
- var handleDirectoryDelete = /*#__PURE__*/function () {
303
- var _ref7 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee5(path) {
304
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee5$(_context5) {
305
- while (1) switch (_context5.prev = _context5.next) {
306
- case 0:
307
- setApiStatus('pending');
308
- return _context5.abrupt("return", apiClient.postOrgMaterialExerciseExerciseRoomUserFileDirectoryDelete({
309
- exerciseRoomId: exerciseRoomId,
310
- filename: path
311
- }).then(doGetOrgMaterialExerciseExerciseRoomGet).then(function () {
312
- return setApiStatus('resolved');
313
- }).catch(function (error) {
314
- setApiStatus('rejected');
315
- handleError(error);
316
- if (typeof onError === 'function') {
317
- onError(error);
318
- }
319
- }));
320
- case 2:
321
- case "end":
322
- return _context5.stop();
323
- }
324
- }, _callee5);
325
- }));
326
- return function handleDirectoryDelete(_x4) {
327
- return _ref7.apply(this, arguments);
328
- };
329
- }();
330
- var handleFileMove = /*#__PURE__*/function () {
331
- var _ref9 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee6(_ref8) {
332
- var currentFilename, newName, newPath;
333
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee6$(_context6) {
334
- while (1) switch (_context6.prev = _context6.next) {
335
- case 0:
336
- currentFilename = _ref8.currentFilename, newName = _ref8.newName, newPath = _ref8.newPath;
337
- setApiStatus('pending');
338
- apiClient.postOrgMaterialExerciseExerciseRoomUserFileMove({
339
- exerciseRoomId: exerciseRoomId,
340
- currentFilename: currentFilename,
341
- newName: newName,
342
- newPath: newPath
343
- }).then(function () {
344
- // eslint-disable-next-line @typescript-eslint/restrict-plus-operands
345
- var parsedPath = (newPath ? newPath + '/' : '') + newName;
346
- // set activeFilename
347
- setActiveFilename(parsedPath);
348
- // set openedTabs
349
- if (openedTabs.includes(currentFilename)) {
350
- // replace
351
- setOpenedTabs(function (openedTabs) {
352
- return openedTabs.map(function (openedTab) {
353
- return openedTab === currentFilename ? parsedPath : openedTab;
354
- });
355
- });
356
- } else {
357
- // add new
358
- setOpenedTabs(function (openedTabs) {
359
- return [].concat(_rollupPluginBabelHelpers.toConsumableArray(openedTabs), [parsedPath]);
360
- });
361
- }
362
- }).then(doGetOrgMaterialExerciseExerciseRoomGet).then(function () {
363
- return setApiStatus('resolved');
364
- }).catch(function (error) {
365
- setApiStatus('rejected');
366
- handleError(error);
367
- if (typeof onError === 'function') {
368
- onError(error);
369
- }
370
- });
371
- case 3:
372
- case "end":
373
- return _context6.stop();
374
- }
375
- }, _callee6);
376
- }));
377
- return function handleFileMove(_x5) {
378
- return _ref9.apply(this, arguments);
379
- };
380
- }();
381
- var handleDirectoryMove = /*#__PURE__*/function () {
382
- var _ref11 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee7(_ref10) {
383
- var currentFilename, newName, newPath;
384
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee7$(_context7) {
385
- while (1) switch (_context7.prev = _context7.next) {
386
- case 0:
387
- currentFilename = _ref10.currentFilename, newName = _ref10.newName, newPath = _ref10.newPath;
388
- setApiStatus('pending');
389
- apiClient.postOrgMaterialExerciseExerciseRoomUserFileDirectoryMove({
390
- exerciseRoomId: exerciseRoomId,
391
- currentFilename: currentFilename,
392
- newName: newName,
393
- newPath: newPath
394
- }).then(doGetOrgMaterialExerciseExerciseRoomGet).then(function () {
395
- return setApiStatus('resolved');
396
- }).catch(function (error) {
397
- setApiStatus('rejected');
398
- handleError(error);
399
- if (typeof onError === 'function') {
400
- onError(error);
401
- }
402
- });
403
- case 3:
404
- case "end":
405
- return _context7.stop();
406
- }
407
- }, _callee7);
408
- }));
409
- return function handleDirectoryMove(_x6) {
410
- return _ref11.apply(this, arguments);
411
- };
412
- }();
413
- var handleFilesUpload = function handleFilesUpload(_ref12) {
414
- var files = _ref12.files,
415
- path = _ref12.path;
157
+ const handleFileAdd = async ({
158
+ path,
159
+ emptyFileWithName,
160
+ userFile
161
+ }) => {
162
+ setApiStatus('pending');
163
+ return apiClient.postOrgMaterialExerciseExerciseRoomUserFileAdd({
164
+ exerciseRoomId,
165
+ path,
166
+ emptyFileWithName,
167
+ userFile
168
+ }).then(doGetOrgMaterialExerciseExerciseRoomGet).then(() => setApiStatus('resolved')).catch(error => {
169
+ setApiStatus('rejected');
170
+ handleError(error);
171
+ if (typeof onError === 'function') {
172
+ onError(error);
173
+ }
174
+ });
175
+ };
176
+ const handleDirectoryAdd = async ({
177
+ name,
178
+ path,
179
+ overwrite
180
+ }) => {
181
+ setApiStatus('pending');
182
+ return apiClient.postOrgMaterialExerciseExerciseRoomUserFileDirectoryAdd({
183
+ exerciseRoomId,
184
+ path,
185
+ name
186
+ }).then(doGetOrgMaterialExerciseExerciseRoomGet).then(() => setApiStatus('resolved')).catch(error => {
187
+ setApiStatus('rejected');
188
+ handleError(error);
189
+ if (typeof onError === 'function') {
190
+ onError(error);
191
+ }
192
+ });
193
+ };
194
+ const handleFileDelete = async path => {
195
+ setApiStatus('pending');
196
+ return apiClient.postOrgMaterialExerciseExerciseRoomUserFileDelete({
197
+ exerciseRoomId,
198
+ filename: path
199
+ }).then(doGetOrgMaterialExerciseExerciseRoomGet).then(() => {
200
+ setApiStatus('resolved');
201
+ setActiveFilename(openedTabs[0]);
202
+ setOpenedTabs(openedTabs => openedTabs.filter(openTab => openTab !== path));
203
+ }).catch(error => {
204
+ setApiStatus('rejected');
205
+ handleError(error);
206
+ if (typeof onError === 'function') {
207
+ onError(error);
208
+ }
209
+ });
210
+ };
211
+ const handleDirectoryDelete = async path => {
212
+ setApiStatus('pending');
213
+ return apiClient.postOrgMaterialExerciseExerciseRoomUserFileDirectoryDelete({
214
+ exerciseRoomId,
215
+ filename: path
216
+ }).then(doGetOrgMaterialExerciseExerciseRoomGet).then(() => setApiStatus('resolved')).catch(error => {
217
+ setApiStatus('rejected');
218
+ handleError(error);
219
+ if (typeof onError === 'function') {
220
+ onError(error);
221
+ }
222
+ });
223
+ };
224
+ const handleFileMove = async ({
225
+ currentFilename,
226
+ newName,
227
+ newPath
228
+ }) => {
229
+ setApiStatus('pending');
230
+ apiClient.postOrgMaterialExerciseExerciseRoomUserFileMove({
231
+ exerciseRoomId,
232
+ currentFilename,
233
+ newName,
234
+ newPath
235
+ }).then(() => {
236
+ // eslint-disable-next-line @typescript-eslint/restrict-plus-operands
237
+ const parsedPath = (newPath ? newPath + '/' : '') + newName;
238
+ // set activeFilename
239
+ setActiveFilename(parsedPath);
240
+ // set openedTabs
241
+ if (openedTabs.includes(currentFilename)) {
242
+ // replace
243
+ setOpenedTabs(openedTabs => openedTabs.map(openedTab => openedTab === currentFilename ? parsedPath : openedTab));
244
+ } else {
245
+ // add new
246
+ setOpenedTabs(openedTabs => [...openedTabs, parsedPath]);
247
+ }
248
+ }).then(doGetOrgMaterialExerciseExerciseRoomGet).then(() => setApiStatus('resolved')).catch(error => {
249
+ setApiStatus('rejected');
250
+ handleError(error);
251
+ if (typeof onError === 'function') {
252
+ onError(error);
253
+ }
254
+ });
255
+ };
256
+ const handleDirectoryMove = async ({
257
+ currentFilename,
258
+ newName,
259
+ newPath
260
+ }) => {
261
+ setApiStatus('pending');
262
+ apiClient.postOrgMaterialExerciseExerciseRoomUserFileDirectoryMove({
263
+ exerciseRoomId,
264
+ currentFilename,
265
+ newName,
266
+ newPath
267
+ }).then(doGetOrgMaterialExerciseExerciseRoomGet).then(() => setApiStatus('resolved')).catch(error => {
268
+ setApiStatus('rejected');
269
+ handleError(error);
270
+ if (typeof onError === 'function') {
271
+ onError(error);
272
+ }
273
+ });
274
+ };
275
+ const handleFilesUpload = ({
276
+ files,
277
+ path
278
+ }) => {
416
279
  setApiStatus('pending');
417
- Promise.all(Array.from(files).map(function (file) {
280
+ Promise.all(Array.from(files).map(file => {
418
281
  return apiClient.postOrgMaterialExerciseExerciseRoomUserFileAdd({
419
- exerciseRoomId: exerciseRoomId,
420
- path: path,
282
+ exerciseRoomId,
283
+ path,
421
284
  userFile: file
422
285
  });
423
- })).then(doGetOrgMaterialExerciseExerciseRoomGet).then(function () {
424
- return setApiStatus('resolved');
425
- }).catch(function (error) {
286
+ })).then(doGetOrgMaterialExerciseExerciseRoomGet).then(() => setApiStatus('resolved')).catch(error => {
426
287
  setApiStatus('rejected');
427
288
  handleError(error);
428
289
  if (typeof onError === 'function') {
@@ -436,14 +297,14 @@ var ExerciseFileTree = function ExerciseFileTree() {
436
297
  if (!exercise || !exerciseRoom) {
437
298
  return null;
438
299
  }
439
- return React__default["default"].createElement(blocks.Flex, {
300
+ return React.createElement(blocks.Flex, {
440
301
  column: true,
441
302
  height: "100%",
442
303
  auto: true,
443
304
  overflowy: "auto"
444
- }, React__default["default"].createElement(React__default["default"].Suspense, {
445
- fallback: React__default["default"].createElement(ExerciseFileTreeListShimmer["default"], null)
446
- }, React__default["default"].createElement(AsyncFileTree
305
+ }, React.createElement(React.Suspense, {
306
+ fallback: React.createElement(ExerciseFileTreeListShimmer.default, null)
307
+ }, React.createElement(AsyncFileTree
447
308
  /** custom styles */, {
448
309
  /** custom styles */
449
310
  style: {
@@ -467,11 +328,11 @@ var ExerciseFileTree = function ExerciseFileTree() {
467
328
  onFilesUpload: handleFilesUpload,
468
329
  loading: apiStatus === 'pending',
469
330
  locale: locale
470
- }, React__default["default"].createElement(AsyncFileTreeToolbar, null), React__default["default"].createElement(StyledFileTreeDivider, null), React__default["default"].createElement(AsyncFileTreeList, null))));
331
+ }, React.createElement(AsyncFileTreeToolbar, null), React.createElement(StyledFileTreeDivider, null), React.createElement(AsyncFileTreeList, null))));
471
332
  };
472
333
  var ExerciseFileTree$1 = ExerciseIntlProvider.withExerciseIntlProvider(ExerciseFileTree, {
473
- en: en["default"],
474
- ko: ko["default"]
334
+ en: en.default,
335
+ ko: ko.default
475
336
  });
476
337
 
477
- exports["default"] = ExerciseFileTree$1;
338
+ exports.default = ExerciseFileTree$1;
@@ -10,14 +10,10 @@ var ExerciseFileTreeListShimmer = require('../../shared/exercise-shimmer/Exercis
10
10
  require('../../shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js');
11
11
  var ExerciseFileTree = require('./ExerciseFileTree.js');
12
12
 
13
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
-
15
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
-
17
- var ExerciseFileTreeLazy = function ExerciseFileTreeLazy() {
18
- return React__default["default"].createElement(React__default["default"].Suspense, {
19
- fallback: React__default["default"].createElement(ExerciseFileTreeListShimmer["default"], null)
20
- }, React__default["default"].createElement(ExerciseFileTree["default"], null));
13
+ const ExerciseFileTreeLazy = () => {
14
+ return React.createElement(React.Suspense, {
15
+ fallback: React.createElement(ExerciseFileTreeListShimmer.default, null)
16
+ }, React.createElement(ExerciseFileTree.default, null));
21
17
  };
22
18
 
23
- exports["default"] = ExerciseFileTreeLazy;
19
+ exports.default = ExerciseFileTreeLazy;
@@ -4,4 +4,4 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var phrasesEn = {"exerciseFileTree.errorCode.insufficientPermission":"[Error] Insufficient Permission","exerciseFileTree.errorCode.invalidParameter":"[Error] Invalid Parameter","exerciseFileTree.errorCode.invalidParameterCombination":"[Error] Invalid Parameter Combination","exerciseFileTree.errorCode.notFoundCurrentFilename":"[Error] Not Found Current Filename","exerciseFileTree.errorCode.notFoundExerciseRoom":"[Error] Not Found ExerciseRoom","exerciseFileTree.errorCode.notFoundPath":"[Error] Not Found Path","exerciseFileTree.errorCode.overwriteExistingOne":"[Error] Overwrite Existing One","exerciseFileTree.errorCode.resultingFilenameUnderCurrentFilename":"[Error] Resulting Filename Under Current Filename","exerciseFileTree.errorCode.subFileOrPathExist":"[Error] Sub File Or Path Exist","exerciseFileTree.errorCode.unknown":"[Error] An unkown error has occurred.","exerciseFileTree.errorCode.usableSizeExceed":"[Error] Usable Size Exceed","exerciseFileTree.fetchRoom.failure":"Failed to fetch exercise room."};
6
6
 
7
- exports["default"] = phrasesEn;
7
+ exports.default = phrasesEn;