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