@elice/material-exercise 1.230328.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 (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
@@ -2,6 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
5
6
  var apiClient = require('@elice/api-client');
6
7
  var types = require('@elice/types');
7
8
  var websocket = require('@elice/websocket');
@@ -21,196 +22,319 @@ var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
21
22
 
22
23
  //
23
24
  //
24
-
25
- const KEY_PREFIX = 'MaterialExercise/Exercise/Global'; //
25
+ //
26
+ var KEY_PREFIX = 'MaterialExercise/Exercise/Global';
27
+ //
26
28
  // =============== entities ===============
27
29
  //
28
-
29
30
  /**
30
31
  * Lecture.
31
32
  */
32
-
33
- const exerciseLectureState = recoil.atomFamily({
34
- key: `${KEY_PREFIX}/Lecture`,
33
+ var exerciseLectureState = recoil.atomFamily({
34
+ key: "".concat(KEY_PREFIX, "/Lecture"),
35
35
  default: null,
36
- effects: lectureId => [({
37
- setSelf,
38
- trigger,
39
- onSet
40
- }) => {
41
- const get = async () => {
42
- if (!lectureId) {
43
- setSelf(null);
44
- return;
45
- }
46
-
47
- setSelf(await apiClient.getOrgLectureGet({
48
- lectureId: lectureId
49
- }).then(res => res.lecture).catch(() => null));
50
- };
51
-
52
- if (trigger === 'get') {
53
- void get();
54
- }
55
-
56
- onSet((_prevValue, _newValue, isReset) => {
57
- if (isReset) {
36
+ effects: function effects(lectureId) {
37
+ return [function (_ref) {
38
+ var setSelf = _ref.setSelf,
39
+ trigger = _ref.trigger,
40
+ onSet = _ref.onSet;
41
+ var get = /*#__PURE__*/function () {
42
+ var _ref2 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
43
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
44
+ while (1) switch (_context.prev = _context.next) {
45
+ case 0:
46
+ if (lectureId) {
47
+ _context.next = 3;
48
+ break;
49
+ }
50
+ setSelf(null);
51
+ return _context.abrupt("return");
52
+ case 3:
53
+ _context.t0 = setSelf;
54
+ _context.next = 6;
55
+ return apiClient.getOrgLectureGet({
56
+ lectureId: lectureId
57
+ }).then(function (res) {
58
+ return res.lecture;
59
+ }).catch(function () {
60
+ return null;
61
+ });
62
+ case 6:
63
+ _context.t1 = _context.sent;
64
+ (0, _context.t0)(_context.t1);
65
+ case 8:
66
+ case "end":
67
+ return _context.stop();
68
+ }
69
+ }, _callee);
70
+ }));
71
+ return function get() {
72
+ return _ref2.apply(this, arguments);
73
+ };
74
+ }();
75
+ if (trigger === 'get') {
58
76
  void get();
59
77
  }
60
- });
61
- }]
78
+ onSet(function (_prevValue, _newValue, isReset) {
79
+ if (isReset) {
80
+ void get();
81
+ }
82
+ });
83
+ }];
84
+ }
62
85
  });
63
86
  /**
64
87
  * Material exercise.
65
88
  */
66
-
67
- const exerciseState = recoil.atomFamily({
68
- key: `${KEY_PREFIX}/Exercise`,
89
+ var exerciseState = recoil.atomFamily({
90
+ key: "".concat(KEY_PREFIX, "/Exercise"),
69
91
  default: null,
70
- effects: materialExerciseId => [({
71
- setSelf,
72
- trigger
73
- }) => {
74
- const get = async () => {
75
- setSelf(await apiClient.getOrgMaterialExerciseGet({
76
- materialExerciseId
77
- }).then(res => res.materialExercise).then(materialExercise => Promise.all([materialExercise, apiClient.getOrgLecturePageResolve({
78
- materialId: materialExercise.id,
79
- materialType: types.enums.LectureMaterialType.Exercise
80
- }).then(res => ({
81
- _courseId: res.courseId,
82
- _lectureId: res.lectureId,
83
- _lecturePageId: res.lecturePageId,
84
- _orderNo: res.orderNo
85
- })).catch(err => {
86
- throw err;
87
- })])).then(([materialExercise, lecturePageResolve]) => Object.assign(Object.assign({}, materialExercise), lecturePageResolve)).catch(() => null));
88
- };
89
-
90
- if (trigger === 'get') {
91
- void get();
92
- }
93
- }]
92
+ effects: function effects(materialExerciseId) {
93
+ return [function (_ref3) {
94
+ var setSelf = _ref3.setSelf,
95
+ trigger = _ref3.trigger;
96
+ var get = /*#__PURE__*/function () {
97
+ var _ref4 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee2() {
98
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee2$(_context2) {
99
+ while (1) switch (_context2.prev = _context2.next) {
100
+ case 0:
101
+ _context2.t0 = setSelf;
102
+ _context2.next = 3;
103
+ return apiClient.getOrgMaterialExerciseGet({
104
+ materialExerciseId: materialExerciseId
105
+ }).then(function (res) {
106
+ return res.materialExercise;
107
+ }).then(function (materialExercise) {
108
+ return Promise.all([materialExercise, apiClient.getOrgLecturePageResolve({
109
+ materialId: materialExercise.id,
110
+ materialType: types.enums.LectureMaterialType.Exercise
111
+ }).then(function (res) {
112
+ return {
113
+ _courseId: res.courseId,
114
+ _lectureId: res.lectureId,
115
+ _lecturePageId: res.lecturePageId,
116
+ _orderNo: res.orderNo
117
+ };
118
+ }).catch(function (err) {
119
+ throw err;
120
+ })]);
121
+ }).then(function (_ref5) {
122
+ var _ref6 = _rollupPluginBabelHelpers.slicedToArray(_ref5, 2),
123
+ materialExercise = _ref6[0],
124
+ lecturePageResolve = _ref6[1];
125
+ return Object.assign(Object.assign({}, materialExercise), lecturePageResolve);
126
+ }).catch(function () {
127
+ return null;
128
+ });
129
+ case 3:
130
+ _context2.t1 = _context2.sent;
131
+ (0, _context2.t0)(_context2.t1);
132
+ case 5:
133
+ case "end":
134
+ return _context2.stop();
135
+ }
136
+ }, _callee2);
137
+ }));
138
+ return function get() {
139
+ return _ref4.apply(this, arguments);
140
+ };
141
+ }();
142
+ if (trigger === 'get') {
143
+ void get();
144
+ }
145
+ }];
146
+ }
94
147
  });
95
148
  /**
96
149
  * Material exercise room.
97
150
  */
98
-
99
- const exerciseRoomState = recoil.atomFamily({
100
- key: `${KEY_PREFIX}/ExerciseRoom`,
151
+ var exerciseRoomState = recoil.atomFamily({
152
+ key: "".concat(KEY_PREFIX, "/ExerciseRoom"),
101
153
  default: null,
102
- effects: exerciseRoomId => [({
103
- setSelf,
104
- trigger
105
- }) => {
106
- const get = async () => {
107
- if (!exerciseRoomId) {
108
- return null;
154
+ effects: function effects(exerciseRoomId) {
155
+ return [function (_ref7) {
156
+ var setSelf = _ref7.setSelf,
157
+ trigger = _ref7.trigger;
158
+ var get = /*#__PURE__*/function () {
159
+ var _ref8 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee3() {
160
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee3$(_context3) {
161
+ while (1) switch (_context3.prev = _context3.next) {
162
+ case 0:
163
+ if (exerciseRoomId) {
164
+ _context3.next = 2;
165
+ break;
166
+ }
167
+ return _context3.abrupt("return", null);
168
+ case 2:
169
+ _context3.t0 = setSelf;
170
+ _context3.next = 5;
171
+ return apiClient.getOrgMaterialExerciseExerciseRoomGet({
172
+ exerciseRoomId: exerciseRoomId
173
+ }).then(function (res) {
174
+ return res.exerciseRoom;
175
+ }).catch(function () {
176
+ return null;
177
+ });
178
+ case 5:
179
+ _context3.t1 = _context3.sent;
180
+ (0, _context3.t0)(_context3.t1);
181
+ case 7:
182
+ case "end":
183
+ return _context3.stop();
184
+ }
185
+ }, _callee3);
186
+ }));
187
+ return function get() {
188
+ return _ref8.apply(this, arguments);
189
+ };
190
+ }();
191
+ if (trigger === 'get') {
192
+ void get();
109
193
  }
110
-
111
- setSelf(await apiClient.getOrgMaterialExerciseExerciseRoomGet({
112
- exerciseRoomId
113
- }).then(res => res.exerciseRoom).catch(() => null));
114
- };
115
-
116
- if (trigger === 'get') {
117
- void get();
118
- }
119
- }]
194
+ }];
195
+ }
120
196
  });
121
197
  /**
122
198
  * User.
123
199
  */
124
-
125
- const exerciseUserState = recoil.atom({
126
- key: `${KEY_PREFIX}/User`,
200
+ var exerciseUserState = recoil.atom({
201
+ key: "".concat(KEY_PREFIX, "/User"),
127
202
  default: null,
128
- effects: [({
129
- setSelf,
130
- trigger
131
- }) => {
132
- const get = async () => {
133
- setSelf(await apiClient.getOrgUserGet().then(res => res.user).catch(() => null));
134
- };
135
-
203
+ effects: [function (_ref9) {
204
+ var setSelf = _ref9.setSelf,
205
+ trigger = _ref9.trigger;
206
+ var get = /*#__PURE__*/function () {
207
+ var _ref10 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee4() {
208
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee4$(_context4) {
209
+ while (1) switch (_context4.prev = _context4.next) {
210
+ case 0:
211
+ _context4.t0 = setSelf;
212
+ _context4.next = 3;
213
+ return apiClient.getOrgUserGet().then(function (res) {
214
+ return res.user;
215
+ }).catch(function () {
216
+ return null;
217
+ });
218
+ case 3:
219
+ _context4.t1 = _context4.sent;
220
+ (0, _context4.t0)(_context4.t1);
221
+ case 5:
222
+ case "end":
223
+ return _context4.stop();
224
+ }
225
+ }, _callee4);
226
+ }));
227
+ return function get() {
228
+ return _ref10.apply(this, arguments);
229
+ };
230
+ }();
136
231
  if (trigger === 'get') {
137
232
  void get();
138
233
  }
139
234
  }]
140
- }); //
235
+ });
236
+ //
141
237
  // =============== file tabs ===============
142
238
  //
143
-
144
239
  /**
145
240
  *
146
241
  */
147
-
148
- const exerciseFileTabsOpenedState = recoil.atomFamily({
149
- key: `${KEY_PREFIX}/FileTabs/Opened`,
242
+ var exerciseFileTabsOpenedState = recoil.atomFamily({
243
+ key: "".concat(KEY_PREFIX, "/FileTabs/Opened"),
150
244
  default: recoil.selectorFamily({
151
- key: `${KEY_PREFIX}}/FileTabs/Opened/Default`,
152
- get: ({
153
- materialExerciseId,
154
- exerciseRoomId
155
- }) => async ({
156
- get
157
- }) => {
158
- var _a, _b, _c, _d;
159
-
160
- const exercise = get(exerciseState(materialExerciseId));
161
- const mulLang = get(exerciseMultilangLanguagesState(materialExerciseId));
162
- const mulEnv = get(exerciseMultilangEnvironmentState({
163
- materialExerciseId,
164
- exerciseRoomId
165
- }));
166
-
167
- if ((exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.MultiLanguage && mulLang && mulEnv) {
168
- const openFilelist = (_b = (_a = mulLang === null || mulLang === void 0 ? void 0 : mulLang[mulEnv === null || mulEnv === void 0 ? void 0 : mulEnv.language]) === null || _a === void 0 ? void 0 : _a.initialOpenFilelist) !== null && _b !== void 0 ? _b : [];
169
- return openFilelist;
170
- } else {
171
- return (_d = (_c = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _c === void 0 ? void 0 : _c.initialOpenFilelist) !== null && _d !== void 0 ? _d : [];
172
- }
245
+ key: "".concat(KEY_PREFIX, "}/FileTabs/Opened/Default"),
246
+ get: function get(_ref11) {
247
+ var materialExerciseId = _ref11.materialExerciseId,
248
+ exerciseRoomId = _ref11.exerciseRoomId;
249
+ return /*#__PURE__*/function () {
250
+ var _ref13 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee5(_ref12) {
251
+ var get, _a, _b, _c, _d, exercise, mulLang, mulEnv, openFilelist;
252
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee5$(_context5) {
253
+ while (1) switch (_context5.prev = _context5.next) {
254
+ case 0:
255
+ get = _ref12.get;
256
+ exercise = get(exerciseState(materialExerciseId));
257
+ mulLang = get(exerciseMultilangLanguagesState(materialExerciseId));
258
+ mulEnv = get(exerciseMultilangEnvironmentState({
259
+ materialExerciseId: materialExerciseId,
260
+ exerciseRoomId: exerciseRoomId
261
+ }));
262
+ if (!((exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.MultiLanguage && mulLang && mulEnv)) {
263
+ _context5.next = 9;
264
+ break;
265
+ }
266
+ openFilelist = (_b = (_a = mulLang === null || mulLang === void 0 ? void 0 : mulLang[mulEnv === null || mulEnv === void 0 ? void 0 : mulEnv.language]) === null || _a === void 0 ? void 0 : _a.initialOpenFilelist) !== null && _b !== void 0 ? _b : [];
267
+ return _context5.abrupt("return", openFilelist);
268
+ case 9:
269
+ return _context5.abrupt("return", (_d = (_c = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _c === void 0 ? void 0 : _c.initialOpenFilelist) !== null && _d !== void 0 ? _d : []);
270
+ case 10:
271
+ case "end":
272
+ return _context5.stop();
273
+ }
274
+ }, _callee5);
275
+ }));
276
+ return function (_x) {
277
+ return _ref13.apply(this, arguments);
278
+ };
279
+ }();
173
280
  }
174
281
  })
175
- }); //
282
+ });
283
+ //
176
284
  // =============== file tree ===============
177
285
  //
178
-
179
286
  /**
180
287
  *
181
288
  */
182
-
183
- const exerciseFileTreeOpenedState = recoil.atom({
184
- key: `${KEY_PREFIX}/FileTree/Opened`,
289
+ var exerciseFileTreeOpenedState = recoil.atom({
290
+ key: "".concat(KEY_PREFIX, "/FileTree/Opened"),
185
291
  default: false
186
- }); //
292
+ });
293
+ //
187
294
  // =============== preference ===============
188
295
  //
189
-
190
- const EDITOR_ACCOUNT_PREFERENCE_PKEY_MONACO = 'material.exercise.editor.preference';
296
+ var EDITOR_ACCOUNT_PREFERENCE_PKEY_MONACO = 'material.exercise.editor.preference';
191
297
  /**
192
298
  * Editor preference.
193
299
  */
194
-
195
- const exerciseEditorPreferenceState = recoil.atom({
196
- key: `${KEY_PREFIX}/EditorPreference`,
300
+ var exerciseEditorPreferenceState = recoil.atom({
301
+ key: "".concat(KEY_PREFIX, "/EditorPreference"),
197
302
  default: preferences.DEFAULT_MONACO_EDITOR_PREFERENCE,
198
- effects: [({
199
- setSelf,
200
- trigger,
201
- onSet
202
- }) => {
203
- const get = async () => {
204
- setSelf(await apiClient.getGlobalAccountPreferenceGet({
205
- pkey: EDITOR_ACCOUNT_PREFERENCE_PKEY_MONACO
206
- }).then(res => monacoPreference.normalizeMonacoPreference(res.pvalue)).catch(() => preferences.DEFAULT_MONACO_EDITOR_PREFERENCE));
207
- };
208
-
303
+ effects: [function (_ref14) {
304
+ var setSelf = _ref14.setSelf,
305
+ trigger = _ref14.trigger,
306
+ onSet = _ref14.onSet;
307
+ var get = /*#__PURE__*/function () {
308
+ var _ref15 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee6() {
309
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee6$(_context6) {
310
+ while (1) switch (_context6.prev = _context6.next) {
311
+ case 0:
312
+ _context6.t0 = setSelf;
313
+ _context6.next = 3;
314
+ return apiClient.getGlobalAccountPreferenceGet({
315
+ pkey: EDITOR_ACCOUNT_PREFERENCE_PKEY_MONACO
316
+ }).then(function (res) {
317
+ return monacoPreference.normalizeMonacoPreference(res.pvalue);
318
+ }).catch(function () {
319
+ return preferences.DEFAULT_MONACO_EDITOR_PREFERENCE;
320
+ });
321
+ case 3:
322
+ _context6.t1 = _context6.sent;
323
+ (0, _context6.t0)(_context6.t1);
324
+ case 5:
325
+ case "end":
326
+ return _context6.stop();
327
+ }
328
+ }, _callee6);
329
+ }));
330
+ return function get() {
331
+ return _ref15.apply(this, arguments);
332
+ };
333
+ }();
209
334
  if (trigger === 'get') {
210
335
  void get();
211
336
  }
212
-
213
- onSet((newPreference, prevPreference, isReset) => {
337
+ onSet(function (newPreference, prevPreference, isReset) {
214
338
  if (!isEqual__default["default"](newPreference, prevPreference) && !isReset) {
215
339
  void apiClient.postGlobalAccountPreferenceEdit({
216
340
  pkey: EDITOR_ACCOUNT_PREFERENCE_PKEY_MONACO,
@@ -219,58 +343,73 @@ const exerciseEditorPreferenceState = recoil.atom({
219
343
  }
220
344
  });
221
345
  }]
222
- }); //
346
+ });
347
+ //
223
348
  // =============== preview ===============
224
349
  //
225
-
226
- const EDITOR_ACCOUNT_PREFERENCE_PKEY_PREVIEW_MODE = 'material.exercise.preview.mode';
350
+ var EDITOR_ACCOUNT_PREFERENCE_PKEY_PREVIEW_MODE = 'material.exercise.preview.mode';
227
351
  /**
228
352
  *
229
353
  */
230
-
231
- const exercisePreviewTypeState = recoil.selectorFamily({
232
- key: `${KEY_PREFIX}/Preview/Type`,
233
- get: materialExerciseId => ({
234
- get
235
- }) => {
236
- const exercise = get(exerciseState(materialExerciseId));
237
- const readyExerciseImage = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage;
238
-
239
- switch (true) {
240
- case Boolean(readyExerciseImage === null || readyExerciseImage === void 0 ? void 0 : readyExerciseImage.isVnc):
241
- return recoilTypes.ExercisePreviewType.NoVnc;
242
-
243
- case Boolean(readyExerciseImage === null || readyExerciseImage === void 0 ? void 0 : readyExerciseImage.httpPort):
244
- return recoilTypes.ExercisePreviewType.WebBrowser;
245
-
246
- default:
247
- return recoilTypes.ExercisePreviewType.None;
248
- }
354
+ var exercisePreviewTypeState = recoil.selectorFamily({
355
+ key: "".concat(KEY_PREFIX, "/Preview/Type"),
356
+ get: function get(materialExerciseId) {
357
+ return function (_ref16) {
358
+ var get = _ref16.get;
359
+ var exercise = get(exerciseState(materialExerciseId));
360
+ var readyExerciseImage = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage;
361
+ switch (true) {
362
+ case Boolean(readyExerciseImage === null || readyExerciseImage === void 0 ? void 0 : readyExerciseImage.isVnc):
363
+ return recoilTypes.ExercisePreviewType.NoVnc;
364
+ case Boolean(readyExerciseImage === null || readyExerciseImage === void 0 ? void 0 : readyExerciseImage.httpPort):
365
+ return recoilTypes.ExercisePreviewType.WebBrowser;
366
+ default:
367
+ return recoilTypes.ExercisePreviewType.None;
368
+ }
369
+ };
249
370
  }
250
371
  });
251
372
  /**
252
373
  *
253
374
  */
254
-
255
- const exercisePreviewDisplayModeState = recoil.atom({
256
- key: `${KEY_PREFIX}/Preview/DisplayMode`,
375
+ var exercisePreviewDisplayModeState = recoil.atom({
376
+ key: "".concat(KEY_PREFIX, "/Preview/DisplayMode"),
257
377
  default: recoilTypes.ExercisePreviewDisplayMode.Mini,
258
- effects: [({
259
- trigger,
260
- setSelf,
261
- onSet
262
- }) => {
263
- const get = async () => {
264
- setSelf(await apiClient.getGlobalAccountPreferenceGet({
265
- pkey: EDITOR_ACCOUNT_PREFERENCE_PKEY_PREVIEW_MODE
266
- }).then(res => Number(res.pvalue) || recoilTypes.ExercisePreviewDisplayMode.Mini).catch(() => recoilTypes.ExercisePreviewDisplayMode.Mini));
267
- };
268
-
378
+ effects: [function (_ref17) {
379
+ var trigger = _ref17.trigger,
380
+ setSelf = _ref17.setSelf,
381
+ onSet = _ref17.onSet;
382
+ var get = /*#__PURE__*/function () {
383
+ var _ref18 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee7() {
384
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee7$(_context7) {
385
+ while (1) switch (_context7.prev = _context7.next) {
386
+ case 0:
387
+ _context7.t0 = setSelf;
388
+ _context7.next = 3;
389
+ return apiClient.getGlobalAccountPreferenceGet({
390
+ pkey: EDITOR_ACCOUNT_PREFERENCE_PKEY_PREVIEW_MODE
391
+ }).then(function (res) {
392
+ return Number(res.pvalue) || recoilTypes.ExercisePreviewDisplayMode.Mini;
393
+ }).catch(function () {
394
+ return recoilTypes.ExercisePreviewDisplayMode.Mini;
395
+ });
396
+ case 3:
397
+ _context7.t1 = _context7.sent;
398
+ (0, _context7.t0)(_context7.t1);
399
+ case 5:
400
+ case "end":
401
+ return _context7.stop();
402
+ }
403
+ }, _callee7);
404
+ }));
405
+ return function get() {
406
+ return _ref18.apply(this, arguments);
407
+ };
408
+ }();
269
409
  if (trigger === 'get') {
270
410
  void get();
271
411
  }
272
-
273
- onSet((newDisplayMode, prevDisplayMode, isReset) => {
412
+ onSet(function (newDisplayMode, prevDisplayMode, isReset) {
274
413
  if (!isEqual__default["default"](newDisplayMode, prevDisplayMode) && !isReset) {
275
414
  void apiClient.postGlobalAccountPreferenceEdit({
276
415
  pkey: EDITOR_ACCOUNT_PREFERENCE_PKEY_PREVIEW_MODE,
@@ -279,81 +418,77 @@ const exercisePreviewDisplayModeState = recoil.atom({
279
418
  }
280
419
  });
281
420
  }]
282
- }); //
421
+ });
422
+ //
283
423
  // =============== runner ===============
284
424
  //
285
-
286
425
  /**
287
426
  *
288
427
  */
289
-
290
- const exerciseRunnerSubmittingState = recoil.atom({
291
- key: `${KEY_PREFIX}/Runner/Submitting`,
428
+ var exerciseRunnerSubmittingState = recoil.atom({
429
+ key: "".concat(KEY_PREFIX, "/Runner/Submitting"),
292
430
  default: false
293
431
  });
294
432
  /**
295
433
  *
296
434
  */
297
-
298
- const exerciseRunnerRunningState = recoil.atom({
299
- key: `${KEY_PREFIX}/Runner/Running`,
435
+ var exerciseRunnerRunningState = recoil.atom({
436
+ key: "".concat(KEY_PREFIX, "/Runner/Running"),
300
437
  default: false
301
438
  });
302
439
  /**
303
440
  *
304
441
  */
305
-
306
- const exerciseRunnerRunTypeState = recoil.atom({
307
- key: `${KEY_PREFIX}/Runner/RunType`,
442
+ var exerciseRunnerRunTypeState = recoil.atom({
443
+ key: "".concat(KEY_PREFIX, "/Runner/RunType"),
308
444
  default: null
309
445
  });
310
446
  /**
311
447
  *
312
448
  */
313
-
314
- const exerciseRunnerRoomConnectionInfoState = recoil.atom({
315
- key: `${KEY_PREFIX}/Runner/RoomConnectionInfoState`,
449
+ var exerciseRunnerRoomConnectionInfoState = recoil.atom({
450
+ key: "".concat(KEY_PREFIX, "/Runner/RoomConnectionInfoState"),
316
451
  default: null
317
452
  });
318
453
  /**
319
454
  *
320
455
  */
321
-
322
- const exerciseRunnerStdioFilesState = recoil.atom({
323
- key: `${KEY_PREFIX}/Runner/StdioFiles`,
456
+ var exerciseRunnerStdioFilesState = recoil.atom({
457
+ key: "".concat(KEY_PREFIX, "/Runner/StdioFiles"),
324
458
  default: []
325
459
  });
326
460
  /**
327
461
  *
328
462
  */
329
-
330
- const exerciseRunnerWebSocketStatusQuery = recoil.selector({
331
- key: `${KEY_PREFIX}/Runner/WebsocketState`,
332
- get: ({
333
- get
334
- }) => {
335
- const states = Object.freeze([get(exerciseWebsocketStates).runnerRoom, get(exerciseWebsocketStates).stdio]); // connecting
336
-
463
+ var exerciseRunnerWebSocketStatusQuery = recoil.selector({
464
+ key: "".concat(KEY_PREFIX, "/Runner/WebsocketState"),
465
+ get: function get(_ref19) {
466
+ var _get = _ref19.get;
467
+ var states = Object.freeze([_get(exerciseWebsocketStates).runnerRoom, _get(exerciseWebsocketStates).stdio]);
468
+ // connecting
337
469
  if (states.includes(websocket.EliceWebSocket.CLOSED) || states.includes(websocket.EliceWebSocket.CONNECTING)) {
338
470
  return websocket.EliceWebSocket.CONNECTING;
339
- } // connected
340
- else if (states.every(state => state === WebSocket.OPEN)) {
471
+ }
472
+ // connected
473
+ else if (states.every(function (state) {
474
+ return state === WebSocket.OPEN;
475
+ })) {
341
476
  return websocket.EliceWebSocket.OPEN;
342
- } // reconnecting
477
+ }
478
+ // reconnecting
343
479
  else {
344
480
  return websocket.EliceWebSocket.CONNECTING;
345
481
  }
346
482
  }
347
- }); //
483
+ });
484
+ //
348
485
  // =============== websocket ===============
349
486
  //
350
-
351
487
  /**
352
488
  *
353
489
  */
354
-
355
- const exerciseWebsocketStates = recoil.atom({
356
- key: `${KEY_PREFIX}/Websocket/States`,
490
+ var exerciseWebsocketStates = recoil.atom({
491
+ key: "".concat(KEY_PREFIX, "/Websocket/States"),
357
492
  default: {
358
493
  runnerRoom: websocket.EliceWebSocket.CLOSED,
359
494
  stdio: websocket.EliceWebSocket.CLOSED,
@@ -363,158 +498,222 @@ const exerciseWebsocketStates = recoil.atom({
363
498
  /**
364
499
  *
365
500
  */
366
-
367
- const exerciseWebsocketQuery = recoil.selectorFamily({
368
- key: `${KEY_PREFIX}/Websocket/State`,
369
- get: key => ({
370
- get
371
- }) => {
372
- return get(exerciseWebsocketStates)[key];
501
+ var exerciseWebsocketQuery = recoil.selectorFamily({
502
+ key: "".concat(KEY_PREFIX, "/Websocket/State"),
503
+ get: function get(key) {
504
+ return function (_ref20) {
505
+ var get = _ref20.get;
506
+ return get(exerciseWebsocketStates)[key];
507
+ };
373
508
  },
374
- set: key => ({
375
- get,
376
- set
377
- }, newWebSocketState) => {
378
- set(exerciseWebsocketStates, Object.assign(Object.assign({}, get(exerciseWebsocketStates)), {
379
- [key]: newWebSocketState
380
- }));
509
+ set: function set(key) {
510
+ return function (_ref21, newWebSocketState) {
511
+ var get = _ref21.get,
512
+ set = _ref21.set;
513
+ set(exerciseWebsocketStates, Object.assign(Object.assign({}, get(exerciseWebsocketStates)), _rollupPluginBabelHelpers.defineProperty({}, key, newWebSocketState)));
514
+ };
381
515
  }
382
- }); //
516
+ });
517
+ //
383
518
  // =============== multi language ===============
384
519
  //
385
-
386
- const MULTILANG_ENVIRONMENT_FILENAME = '.environment.json';
387
- const MULTILANG_LANGUAGES_FILENAME = '.languages.json';
520
+ var MULTILANG_ENVIRONMENT_FILENAME = '.environment.json';
521
+ var MULTILANG_LANGUAGES_FILENAME = '.languages.json';
388
522
  /**
389
523
  *
390
524
  */
391
-
392
- const exerciseMultilangLanguagesState = recoil.atomFamily({
393
- key: `${KEY_PREFIX}/Multilang/Languages`,
525
+ var exerciseMultilangLanguagesState = recoil.atomFamily({
526
+ key: "".concat(KEY_PREFIX, "/Multilang/Languages"),
394
527
  default: undefined,
395
- effects: materialExerciseId => [({
396
- getPromise,
397
- trigger,
398
- setSelf,
399
- onSet
400
- }) => {
401
- const get = async () => {
402
- var _a, _b;
403
-
404
- if (!materialExerciseId) {
405
- setSelf(undefined);
406
- return;
407
- }
408
-
409
- const exercise = await getPromise(exerciseState(materialExerciseId));
410
-
411
- if (!exercise) {
412
- setSelf(undefined);
413
- return;
414
- }
415
-
416
- setSelf(await apiClient.getOrgMaterialExerciseExerciseImageExerciseFileGet({
417
- exerciseImageId: (_b = (_a = exercise.readyExerciseImage) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : 0,
418
- filename: MULTILANG_LANGUAGES_FILENAME
419
- }).then(res => res.exerciseFile.content).then(content => humps.camelizeKeys(JSON.parse(content))).catch(() => null));
420
- };
421
-
422
- if (trigger === 'get') {
423
- void get();
424
- }
425
-
426
- onSet((_prevValue, _newValue, isReset) => {
427
- if (isReset) {
528
+ effects: function effects(materialExerciseId) {
529
+ return [function (_ref22) {
530
+ var getPromise = _ref22.getPromise,
531
+ trigger = _ref22.trigger,
532
+ setSelf = _ref22.setSelf,
533
+ onSet = _ref22.onSet;
534
+ var get = /*#__PURE__*/function () {
535
+ var _ref23 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee8() {
536
+ var _a, _b, exercise;
537
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee8$(_context8) {
538
+ while (1) switch (_context8.prev = _context8.next) {
539
+ case 0:
540
+ if (materialExerciseId) {
541
+ _context8.next = 3;
542
+ break;
543
+ }
544
+ setSelf(undefined);
545
+ return _context8.abrupt("return");
546
+ case 3:
547
+ _context8.next = 5;
548
+ return getPromise(exerciseState(materialExerciseId));
549
+ case 5:
550
+ exercise = _context8.sent;
551
+ if (exercise) {
552
+ _context8.next = 9;
553
+ break;
554
+ }
555
+ setSelf(undefined);
556
+ return _context8.abrupt("return");
557
+ case 9:
558
+ _context8.t0 = setSelf;
559
+ _context8.next = 12;
560
+ return apiClient.getOrgMaterialExerciseExerciseImageExerciseFileGet({
561
+ exerciseImageId: (_b = (_a = exercise.readyExerciseImage) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : 0,
562
+ filename: MULTILANG_LANGUAGES_FILENAME
563
+ }).then(function (res) {
564
+ return res.exerciseFile.content;
565
+ }).then(function (content) {
566
+ return humps.camelizeKeys(JSON.parse(content));
567
+ }).catch(function () {
568
+ return null;
569
+ });
570
+ case 12:
571
+ _context8.t1 = _context8.sent;
572
+ (0, _context8.t0)(_context8.t1);
573
+ case 14:
574
+ case "end":
575
+ return _context8.stop();
576
+ }
577
+ }, _callee8);
578
+ }));
579
+ return function get() {
580
+ return _ref23.apply(this, arguments);
581
+ };
582
+ }();
583
+ if (trigger === 'get') {
428
584
  void get();
429
585
  }
430
- });
431
- }]
586
+ onSet(function (_prevValue, _newValue, isReset) {
587
+ if (isReset) {
588
+ void get();
589
+ }
590
+ });
591
+ }];
592
+ }
432
593
  });
433
594
  /**
434
595
  *
435
596
  */
436
-
437
- const exerciseMultilangEnvironmentState = recoil.atomFamily({
438
- key: `${KEY_PREFIX}/Multilang/Environment`,
597
+ var exerciseMultilangEnvironmentState = recoil.atomFamily({
598
+ key: "".concat(KEY_PREFIX, "/Multilang/Environment"),
439
599
  default: null,
440
- effects: ({
441
- materialExerciseId,
442
- exerciseRoomId
443
- }) => [({
444
- trigger,
445
- getPromise,
446
- setSelf,
447
- onSet
448
- }) => {
449
- const get = async () => {
450
- setSelf(apiClient.getOrgMaterialExerciseExerciseRoomUserFileGet({
451
- exerciseRoomId,
452
- filename: MULTILANG_ENVIRONMENT_FILENAME
453
- }).then(res => humps.camelizeKeys(JSON.parse(res.userFile.content))).catch(async () => getPromise(exerciseMultilangLanguagesState(materialExerciseId)).then(languages => {
454
- if (!languages) {
455
- throw new Error('err_no_languages');
456
- }
457
-
458
- const language = Object.keys(languages)[0];
459
- return {
460
- language
600
+ effects: function effects(_ref24) {
601
+ var materialExerciseId = _ref24.materialExerciseId,
602
+ exerciseRoomId = _ref24.exerciseRoomId;
603
+ return [function (_ref25) {
604
+ var trigger = _ref25.trigger,
605
+ getPromise = _ref25.getPromise,
606
+ setSelf = _ref25.setSelf,
607
+ onSet = _ref25.onSet;
608
+ var get = /*#__PURE__*/function () {
609
+ var _ref26 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee10() {
610
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee10$(_context10) {
611
+ while (1) switch (_context10.prev = _context10.next) {
612
+ case 0:
613
+ setSelf(apiClient.getOrgMaterialExerciseExerciseRoomUserFileGet({
614
+ exerciseRoomId: exerciseRoomId,
615
+ filename: MULTILANG_ENVIRONMENT_FILENAME
616
+ }).then(function (res) {
617
+ return humps.camelizeKeys(JSON.parse(res.userFile.content));
618
+ }).catch( /*#__PURE__*/_rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee9() {
619
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee9$(_context9) {
620
+ while (1) switch (_context9.prev = _context9.next) {
621
+ case 0:
622
+ return _context9.abrupt("return", getPromise(exerciseMultilangLanguagesState(materialExerciseId)).then(function (languages) {
623
+ if (!languages) {
624
+ throw new Error('err_no_languages');
625
+ }
626
+ var language = Object.keys(languages)[0];
627
+ return {
628
+ language: language
629
+ };
630
+ }).catch(function () {
631
+ return null;
632
+ }));
633
+ case 1:
634
+ case "end":
635
+ return _context9.stop();
636
+ }
637
+ }, _callee9);
638
+ }))));
639
+ case 1:
640
+ case "end":
641
+ return _context10.stop();
642
+ }
643
+ }, _callee10);
644
+ }));
645
+ return function get() {
646
+ return _ref26.apply(this, arguments);
461
647
  };
462
- }).catch(() => null)));
463
- };
464
-
465
- if (trigger === 'get') {
466
- void get();
467
- }
468
-
469
- onSet((newEnvJson, _, isReset) => {
470
- if (isReset) {
471
- return;
648
+ }();
649
+ if (trigger === 'get') {
650
+ void get();
472
651
  }
473
-
474
- void apiClient.postOrgMaterialExerciseExerciseRoomUserFileAdd({
475
- exerciseRoomId,
476
- userFile: new File([JSON.stringify(newEnvJson)], MULTILANG_ENVIRONMENT_FILENAME, {
477
- type: 'application/json'
478
- }),
479
- path: '',
480
- overwrite: true
652
+ onSet(function (newEnvJson, _, isReset) {
653
+ if (isReset) {
654
+ return;
655
+ }
656
+ void apiClient.postOrgMaterialExerciseExerciseRoomUserFileAdd({
657
+ exerciseRoomId: exerciseRoomId,
658
+ userFile: new File([JSON.stringify(newEnvJson)], MULTILANG_ENVIRONMENT_FILENAME, {
659
+ type: 'application/json'
660
+ }),
661
+ path: '',
662
+ overwrite: true
663
+ });
481
664
  });
482
- });
483
- }]
484
- }); //
665
+ }];
666
+ }
667
+ });
668
+ //
485
669
  // =============== arduino ===============
486
670
  //
487
-
488
- const ARDUINO_ACCOUNT_PREFERENCE_KEY = 'material.exercise.arduino.preference';
489
- const DEFAULT_ARDUINO_PREFERENCE = {
671
+ var ARDUINO_ACCOUNT_PREFERENCE_KEY = 'material.exercise.arduino.preference';
672
+ var DEFAULT_ARDUINO_PREFERENCE = {
490
673
  baudRate: 9600,
491
674
  port: ''
492
675
  };
493
676
  /**
494
677
  * Arduino preference.
495
678
  */
496
-
497
- const exerciseArduinoPreferenceState = recoil.atom({
498
- key: `${KEY_PREFIX}/Arduino/Preference`,
679
+ var exerciseArduinoPreferenceState = recoil.atom({
680
+ key: "".concat(KEY_PREFIX, "/Arduino/Preference"),
499
681
  default: DEFAULT_ARDUINO_PREFERENCE,
500
- effects: [({
501
- trigger,
502
- setSelf,
503
- onSet
504
- }) => {
505
- const get = async () => {
506
- setSelf(await apiClient.getGlobalAccountPreferenceGet({
507
- pkey: ARDUINO_ACCOUNT_PREFERENCE_KEY
508
- }).then(res => {
509
- return Object.assign(Object.assign({}, DEFAULT_ARDUINO_PREFERENCE), res.pvalue);
510
- }).catch(() => DEFAULT_ARDUINO_PREFERENCE));
511
- };
512
-
682
+ effects: [function (_ref28) {
683
+ var trigger = _ref28.trigger,
684
+ setSelf = _ref28.setSelf,
685
+ onSet = _ref28.onSet;
686
+ var get = /*#__PURE__*/function () {
687
+ var _ref29 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee11() {
688
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee11$(_context11) {
689
+ while (1) switch (_context11.prev = _context11.next) {
690
+ case 0:
691
+ _context11.t0 = setSelf;
692
+ _context11.next = 3;
693
+ return apiClient.getGlobalAccountPreferenceGet({
694
+ pkey: ARDUINO_ACCOUNT_PREFERENCE_KEY
695
+ }).then(function (res) {
696
+ return Object.assign(Object.assign({}, DEFAULT_ARDUINO_PREFERENCE), res.pvalue);
697
+ }).catch(function () {
698
+ return DEFAULT_ARDUINO_PREFERENCE;
699
+ });
700
+ case 3:
701
+ _context11.t1 = _context11.sent;
702
+ (0, _context11.t0)(_context11.t1);
703
+ case 5:
704
+ case "end":
705
+ return _context11.stop();
706
+ }
707
+ }, _callee11);
708
+ }));
709
+ return function get() {
710
+ return _ref29.apply(this, arguments);
711
+ };
712
+ }();
513
713
  if (trigger === 'get') {
514
714
  void get();
515
715
  }
516
-
517
- onSet((newPreference, prevPreference, isReset) => {
716
+ onSet(function (newPreference, prevPreference, isReset) {
518
717
  if (!isEqual__default["default"](newPreference, prevPreference) && !isReset) {
519
718
  void apiClient.postGlobalAccountPreferenceEdit({
520
719
  pkey: ARDUINO_ACCOUNT_PREFERENCE_KEY,
@@ -527,77 +726,69 @@ const exerciseArduinoPreferenceState = recoil.atom({
527
726
  /**
528
727
  * Arduino ports.
529
728
  */
530
-
531
- const exerciseArduinoPortsState = recoil.atom({
532
- key: `${KEY_PREFIX}/Arduino/Ports`,
729
+ var exerciseArduinoPortsState = recoil.atom({
730
+ key: "".concat(KEY_PREFIX, "/Arduino/Ports"),
533
731
  default: []
534
732
  });
535
733
  /**
536
734
  * Opened arduino port.
537
735
  */
538
-
539
- const exerciseArduinoOpenedPortNameState = recoil.atom({
540
- key: `${KEY_PREFIX}/Arduino/OpenedPortName`,
736
+ var exerciseArduinoOpenedPortNameState = recoil.atom({
737
+ key: "".concat(KEY_PREFIX, "/Arduino/OpenedPortName"),
541
738
  default: null
542
739
  });
543
740
  /**
544
741
  * Arduino port open handler.
545
742
  */
546
-
547
- const exerciseArduinoOnSelectPortState = recoil.atom({
548
- key: `${KEY_PREFIX}/Arduino/OnSelectPort`,
549
- default: name => {// do nothing.
743
+ var exerciseArduinoOnSelectPortState = recoil.atom({
744
+ key: "".concat(KEY_PREFIX, "/Arduino/OnSelectPort"),
745
+ default: function _default(name) {
746
+ // do nothing.
550
747
  }
551
748
  });
552
749
  /**
553
750
  * Arduino agent connection status.
554
751
  */
555
-
556
- const exerciseArduinoAgentConnectionState = recoil.atom({
557
- key: `${KEY_PREFIX}/Arduino/AgentConnection`,
752
+ var exerciseArduinoAgentConnectionState = recoil.atom({
753
+ key: "".concat(KEY_PREFIX, "/Arduino/AgentConnection"),
558
754
  default: 'disconnected'
559
755
  });
560
756
  /**
561
757
  * Arduino upload progress.
562
758
  */
563
-
564
- const exerciseArduinoUploadProgressState = recoil.atom({
565
- key: `${KEY_PREFIX}/Arduino/UploadProgressState`,
759
+ var exerciseArduinoUploadProgressState = recoil.atom({
760
+ key: "".concat(KEY_PREFIX, "/Arduino/UploadProgressState"),
566
761
  default: 'ready'
567
762
  });
568
763
  /**
569
764
  * Arduino agent modal open status.
570
765
  */
571
-
572
- const exerciseArduinoAgentModalState = recoil.atom({
573
- key: `${KEY_PREFIX}/Arduino/AgentModalState`,
766
+ var exerciseArduinoAgentModalState = recoil.atom({
767
+ key: "".concat(KEY_PREFIX, "/Arduino/AgentModalState"),
574
768
  default: false
575
- }); //
769
+ });
770
+ //
576
771
  // =============== others ===============
577
772
  //
578
-
579
773
  /**
580
774
  *
581
775
  */
582
-
583
- const exerciseActiveFilenameState = recoil.atom({
584
- key: `${KEY_PREFIX}/ActiveFilename`,
776
+ var exerciseActiveFilenameState = recoil.atom({
777
+ key: "".concat(KEY_PREFIX, "/ActiveFilename"),
585
778
  default: null
586
779
  });
587
780
  /**
588
781
  *
589
782
  */
590
-
591
- const exerciseRightpaneActiveState = recoil.atom({
592
- key: `${KEY_PREFIX}/RightpaneActive`,
783
+ var exerciseRightpaneActiveState = recoil.atom({
784
+ key: "".concat(KEY_PREFIX, "/RightpaneActive"),
593
785
  default: null
594
786
  });
595
787
  /**
596
788
  *
597
789
  */
598
-
599
- const exerciseContainerSizeState = recoil.atom({
600
- key: `${KEY_PREFIX}/ContainerSize`,
790
+ var exerciseContainerSizeState = recoil.atom({
791
+ key: "".concat(KEY_PREFIX, "/ContainerSize"),
601
792
  default: {
602
793
  width: 0,
603
794
  height: 0
@@ -606,9 +797,8 @@ const exerciseContainerSizeState = recoil.atom({
606
797
  /**
607
798
  *
608
799
  */
609
-
610
- const exerciseFileEditorCursorState = recoil.atom({
611
- key: `${KEY_PREFIX}/FileEditorCursor`,
800
+ var exerciseFileEditorCursorState = recoil.atom({
801
+ key: "".concat(KEY_PREFIX, "/FileEditorCursor"),
612
802
  default: {
613
803
  from: 0,
614
804
  to: 0
@@ -617,17 +807,15 @@ const exerciseFileEditorCursorState = recoil.atom({
617
807
  /**
618
808
  *
619
809
  */
620
-
621
- const exerciseFileEditorCursorSelectionValueState = recoil.atom({
622
- key: `${KEY_PREFIX}/FileEditorCursorSelectionValue`,
810
+ var exerciseFileEditorCursorSelectionValueState = recoil.atom({
811
+ key: "".concat(KEY_PREFIX, "/FileEditorCursorSelectionValue"),
623
812
  default: null
624
813
  });
625
814
  /**
626
815
  *
627
816
  */
628
-
629
- const exerciseMonacoEditorApisState = recoil.atom({
630
- key: `${KEY_PREFIX}/MonacoEditorApisState`,
817
+ var exerciseMonacoEditorApisState = recoil.atom({
818
+ key: "".concat(KEY_PREFIX, "/MonacoEditorApisState"),
631
819
  default: null,
632
820
  dangerouslyAllowMutability: true
633
821
  });