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

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