@elice/material-exercise 1.240718.0-trasncript.2 → 1.240718.2

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