@elice/material-exercise 1.230328.0 → 1.230418.1

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 (369) 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.js +559 -371
  12. package/cjs/components/material-exercise/context/recoilTypes.js +0 -5
  13. package/cjs/components/material-exercise/context/subjects.js +3 -6
  14. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  15. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -65
  16. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  17. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +7 -0
  18. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +7 -0
  19. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +20 -21
  20. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +225 -198
  21. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -10
  22. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +35 -32
  23. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +57 -48
  24. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
  25. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -1
  26. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -1
  27. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +327 -231
  28. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
  29. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +3 -1
  30. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +3 -1
  31. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +17 -17
  32. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -14
  33. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -6
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +47 -38
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +60 -42
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +29 -22
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +45 -56
  38. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  39. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +3 -1
  40. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +3 -1
  41. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -20
  42. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +5 -3
  43. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +30 -41
  44. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +17 -12
  45. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +3 -1
  46. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +3 -1
  47. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +24 -33
  48. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +13 -8
  49. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +84 -83
  50. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +3 -1
  51. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +3 -1
  52. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +20 -12
  53. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +239 -147
  55. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +92 -63
  56. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  57. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +3 -1
  58. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +3 -1
  59. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +219 -220
  60. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -13
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +30 -26
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +26 -26
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +70 -95
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +27 -27
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +54 -60
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +5 -5
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -13
  69. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +29 -26
  70. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +3 -1
  71. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +3 -1
  72. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  73. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +290 -180
  74. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  75. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -45
  76. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +7 -0
  77. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +7 -0
  78. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +19 -17
  79. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +5 -4
  80. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +15 -14
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +7 -6
  82. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +17 -16
  83. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +18 -11
  84. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -4
  85. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  86. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -7
  87. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  88. package/cjs/components/shared/file-icon/FileIcon.js +23 -23
  89. package/cjs/components/shared/file-tabs/FileTab.js +32 -43
  90. package/cjs/components/shared/file-tabs/FileTab.styled.js +26 -22
  91. package/cjs/components/shared/file-tabs/FileTabs.js +55 -49
  92. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -2
  93. package/cjs/components/shared/file-tabs/util.js +29 -18
  94. package/cjs/components/shared/file-tree/FileTree.js +11 -11
  95. package/cjs/components/shared/file-tree/FileTreeConfig.js +24 -23
  96. package/cjs/components/shared/file-tree/FileTreeList.js +35 -41
  97. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +75 -91
  98. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  99. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +77 -101
  100. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  101. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +51 -86
  102. package/cjs/components/shared/file-tree/FileTreeListItems.js +150 -153
  103. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  104. package/cjs/components/shared/file-tree/FileTreeToolbar.js +30 -41
  105. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  106. package/cjs/components/shared/file-tree/context/FileTreeContext.js +91 -97
  107. package/cjs/components/shared/file-tree/locales/en.json.js +3 -1
  108. package/cjs/components/shared/file-tree/locales/ko.json.js +3 -1
  109. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  110. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  111. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  112. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  113. package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -7
  114. package/cjs/components/shared/file-viewer/FileViewer.js +59 -60
  115. package/cjs/components/shared/file-viewer/FileViewerCsv.js +145 -101
  116. package/cjs/components/shared/file-viewer/FileViewerImage.js +7 -8
  117. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +20 -14
  118. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +28 -34
  119. package/cjs/components/shared/file-viewer/FileViewerText.js +23 -16
  120. package/cjs/components/shared/file-viewer/locales/en.json.js +3 -1
  121. package/cjs/components/shared/file-viewer/locales/ko.json.js +3 -1
  122. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +3 -1
  123. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +3 -1
  124. package/cjs/components/shared/material-modal/MaterialModal.js +10 -12
  125. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -5
  126. package/cjs/components/shared/monaco-editor/MonacoEditor.js +123 -149
  127. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +10 -8
  128. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -58
  129. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +78 -85
  130. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  131. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  132. package/cjs/components/shared/monaco-editor/constants/themes/index.js +80 -32
  133. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  134. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  135. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  136. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  137. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  138. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  139. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +36 -12
  140. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +5 -8
  141. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +36 -12
  142. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -6
  143. package/cjs/components/shared/monaco-editor/editor-languages/index.js +3 -1
  144. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  145. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +3 -2
  146. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +3 -2
  147. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +3 -2
  148. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +36 -12
  149. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +18 -24
  150. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  151. package/cjs/components/shared/monaco-editor/locales/en.json.js +3 -1
  152. package/cjs/components/shared/monaco-editor/locales/ko.json.js +3 -1
  153. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  154. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  155. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  156. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +70 -32
  157. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  158. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  159. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  160. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  161. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  162. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +30 -9
  163. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  164. package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -5
  165. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  166. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  167. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  168. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  169. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  170. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  171. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  172. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  173. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +218 -329
  174. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  175. package/cjs/components/shared/no-vnc/NoVnc.js +93 -90
  176. package/cjs/components/shared/no-vnc/NoVncLazy.js +7 -5
  177. package/cjs/components/shared/preview-container/PreviewContainer.js +7 -10
  178. package/cjs/components/shared/web-browser/WebBrowser.js +54 -59
  179. package/cjs/components/shared/xterm/Xterm.js +112 -105
  180. package/cjs/components/shared/xterm/XtermLazy.js +7 -5
  181. package/cjs/components/shared/xterm/locales/en.json.js +3 -1
  182. package/cjs/components/shared/xterm/locales/ko.json.js +3 -1
  183. package/cjs/constants/arduino.js +10 -10
  184. package/cjs/constants/shortcutKeyMap.js +5 -5
  185. package/cjs/constants/stylesheets.js +7 -10
  186. package/cjs/hooks/useArduino.js +327 -255
  187. package/cjs/hooks/useExerciseFile.js +24 -24
  188. package/cjs/hooks/useExericseShortcut.js +6 -5
  189. package/cjs/hooks/useMaterialExerciseFileUrl.js +54 -37
  190. package/cjs/hooks/useRunnerRoomWebSocket.js +58 -56
  191. package/cjs/hooks/useStdioTextConcator.js +18 -12
  192. package/cjs/hooks/useStdioWebSocket.js +41 -67
  193. package/cjs/hooks/useUsercodeEditWebSocket.js +230 -252
  194. package/cjs/hooks/useUsercodeHistory.js +121 -82
  195. package/cjs/index.js +4 -4
  196. package/cjs/utils/arduino.js +23 -25
  197. package/cjs/utils/exerciseFile.js +8 -16
  198. package/cjs/utils/runner.js +29 -25
  199. package/es/_virtual/_rollupPluginBabelHelpers.js +504 -0
  200. package/es/components/material-exercise/MaterialExercise.js +33 -54
  201. package/es/components/material-exercise/MaterialExercise.styled.js +20 -23
  202. package/es/components/material-exercise/MaterialExerciseMobile.js +15 -13
  203. package/es/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  204. package/es/components/material-exercise/context/ExerciseProvider.js +79 -79
  205. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +11 -13
  206. package/es/components/material-exercise/context/context.js +1 -1
  207. package/es/components/material-exercise/context/recoil.js +560 -372
  208. package/es/components/material-exercise/context/recoilTypes.js +0 -5
  209. package/es/components/material-exercise/context/subjects.js +3 -6
  210. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  211. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +73 -62
  212. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  213. package/es/components/material-exercise/exercise-code-history/locales/en.json.js +3 -0
  214. package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +3 -0
  215. package/es/components/material-exercise/exercise-file/ExerciseFile.js +15 -18
  216. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +218 -193
  217. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -9
  218. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +31 -28
  219. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +52 -45
  220. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  221. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +321 -225
  222. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  223. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +12 -14
  224. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -10
  225. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -5
  226. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +43 -36
  227. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +53 -37
  228. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +25 -20
  229. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +41 -54
  230. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  231. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +25 -19
  232. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  233. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +21 -34
  234. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -10
  235. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +17 -28
  236. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +9 -6
  237. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +81 -82
  238. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +13 -7
  239. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  240. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +236 -146
  241. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +90 -63
  242. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  243. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +212 -215
  244. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  245. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +7 -9
  246. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +27 -25
  247. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +22 -24
  248. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +66 -93
  249. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +24 -26
  250. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +51 -59
  251. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -4
  252. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +6 -11
  253. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +26 -25
  254. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  255. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +284 -174
  256. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  257. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +38 -44
  258. package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +3 -0
  259. package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +3 -0
  260. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +16 -16
  261. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -3
  262. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -13
  263. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -3
  264. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -15
  265. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +15 -10
  266. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +2 -3
  267. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  268. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +5 -6
  269. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  270. package/es/components/shared/file-icon/FileIcon.js +20 -22
  271. package/es/components/shared/file-tabs/FileTab.js +28 -41
  272. package/es/components/shared/file-tabs/FileTab.styled.js +26 -22
  273. package/es/components/shared/file-tabs/FileTabs.js +52 -48
  274. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  275. package/es/components/shared/file-tabs/util.js +29 -18
  276. package/es/components/shared/file-tree/FileTree.js +3 -5
  277. package/es/components/shared/file-tree/FileTreeConfig.js +21 -22
  278. package/es/components/shared/file-tree/FileTreeList.js +31 -39
  279. package/es/components/shared/file-tree/FileTreeListItemContent.js +67 -85
  280. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  281. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +74 -100
  282. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  283. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +48 -85
  284. package/es/components/shared/file-tree/FileTreeListItems.js +147 -152
  285. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  286. package/es/components/shared/file-tree/FileTreeToolbar.js +24 -37
  287. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  288. package/es/components/shared/file-tree/context/FileTreeContext.js +91 -97
  289. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  290. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  291. package/es/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  292. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  293. package/es/components/shared/file-tree/utils/fileTreePath.js +5 -7
  294. package/es/components/shared/file-viewer/FileViewer.js +52 -53
  295. package/es/components/shared/file-viewer/FileViewerCsv.js +141 -99
  296. package/es/components/shared/file-viewer/FileViewerImage.js +3 -6
  297. package/es/components/shared/file-viewer/FileViewerIpynb.js +16 -12
  298. package/es/components/shared/file-viewer/FileViewerNonViewable.js +22 -30
  299. package/es/components/shared/file-viewer/FileViewerText.js +18 -13
  300. package/es/components/shared/material-modal/MaterialModal.js +7 -11
  301. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  302. package/es/components/shared/monaco-editor/MonacoEditor.js +119 -147
  303. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +6 -4
  304. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +45 -56
  305. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +73 -82
  306. package/es/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  307. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  308. package/es/components/shared/monaco-editor/constants/themes/index.js +80 -32
  309. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  310. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  311. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  312. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  313. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  314. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  315. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -11
  316. package/es/components/shared/monaco-editor/editor-languages/css/index.js +2 -5
  317. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -11
  318. package/es/components/shared/monaco-editor/editor-languages/html/index.js +2 -5
  319. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  320. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +0 -1
  321. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +0 -1
  322. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +0 -1
  323. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +33 -11
  324. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -16
  325. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  326. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  327. package/es/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  328. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  329. package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -31
  330. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  331. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  332. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  333. package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  334. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  335. package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -8
  336. package/es/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  337. package/es/components/shared/monaco-editor/utils/theme/index.js +22 -5
  338. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  339. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  340. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  341. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  342. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  343. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  344. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  345. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  346. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +219 -330
  347. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  348. package/es/components/shared/no-vnc/NoVnc.js +89 -88
  349. package/es/components/shared/no-vnc/NoVncLazy.js +4 -2
  350. package/es/components/shared/preview-container/PreviewContainer.js +7 -10
  351. package/es/components/shared/web-browser/WebBrowser.js +49 -56
  352. package/es/components/shared/xterm/Xterm.js +107 -102
  353. package/es/components/shared/xterm/XtermLazy.js +4 -2
  354. package/es/constants/arduino.js +10 -10
  355. package/es/constants/shortcutKeyMap.js +3 -5
  356. package/es/constants/stylesheets.js +7 -10
  357. package/es/hooks/useArduino.js +327 -255
  358. package/es/hooks/useExerciseFile.js +24 -24
  359. package/es/hooks/useExericseShortcut.js +6 -5
  360. package/es/hooks/useMaterialExerciseFileUrl.js +55 -38
  361. package/es/hooks/useRunnerRoomWebSocket.js +58 -56
  362. package/es/hooks/useStdioTextConcator.js +18 -12
  363. package/es/hooks/useStdioWebSocket.js +41 -67
  364. package/es/hooks/useUsercodeEditWebSocket.js +230 -252
  365. package/es/hooks/useUsercodeHistory.js +122 -83
  366. package/es/utils/arduino.js +23 -25
  367. package/es/utils/exerciseFile.js +8 -16
  368. package/es/utils/runner.js +29 -25
  369. 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