@elice/material-exercise 1.240718.0-trasncript.1 → 1.240718.0-trasncript.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/_virtual/_rollupPluginBabelHelpers.js +519 -0
  2. package/cjs/assets/empty.png.js +1 -2
  3. package/cjs/components/index.js +25 -0
  4. package/cjs/components/locales/index.js +13 -0
  5. package/cjs/components/material-exercise/MaterialExercise.d.ts +1 -1
  6. package/cjs/components/material-exercise/MaterialExercise.js +111 -75
  7. package/cjs/components/material-exercise/MaterialExercise.styled.js +18 -14
  8. package/cjs/components/material-exercise/MaterialExerciseMobile.d.ts +1 -1
  9. package/cjs/components/material-exercise/MaterialExerciseMobile.js +17 -7
  10. package/cjs/components/material-exercise/context/ExerciseProvider.js +68 -58
  11. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +39 -30
  12. package/cjs/components/material-exercise/context/context.js +5 -1
  13. package/cjs/components/material-exercise/context/index.js +57 -0
  14. package/cjs/components/material-exercise/context/recoil.js +542 -293
  15. package/cjs/components/material-exercise/context/subjects.js +4 -4
  16. package/cjs/components/material-exercise/context/types.d.ts +2 -2
  17. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +100 -78
  18. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +12 -8
  19. package/cjs/components/material-exercise/exercise-code-history/index.js +7 -0
  20. package/cjs/components/material-exercise/exercise-code-history/locales/index.js +13 -0
  21. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +30 -27
  22. package/cjs/components/material-exercise/exercise-file/index.js +7 -0
  23. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +225 -149
  24. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +20 -13
  25. package/cjs/components/material-exercise/exercise-file-editor/index.js +7 -0
  26. package/cjs/components/material-exercise/exercise-file-editor/locales/index.js +13 -0
  27. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +49 -29
  28. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.d.ts +1 -2
  29. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +10 -4
  30. package/cjs/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/ExerciseFileTabsFileTreeButton.js +53 -36
  31. package/cjs/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/index.js +7 -0
  32. package/cjs/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/locales/index.js +13 -0
  33. package/cjs/components/material-exercise/exercise-file-tabs/index.js +9 -0
  34. package/cjs/components/material-exercise/exercise-file-tabs/locales/index.js +13 -0
  35. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +353 -211
  36. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.d.ts +1 -2
  37. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +10 -4
  38. package/cjs/components/material-exercise/exercise-file-tree/index.js +9 -0
  39. package/cjs/components/material-exercise/exercise-file-tree/locales/index.js +13 -0
  40. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +18 -15
  41. package/cjs/components/material-exercise/exercise-file-viewer/index.js +7 -0
  42. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +21 -12
  43. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +12 -11
  44. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +123 -80
  45. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +100 -67
  46. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +40 -22
  47. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +144 -119
  48. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +17 -13
  49. package/cjs/components/material-exercise/exercise-menu/index.js +7 -0
  50. package/cjs/components/material-exercise/exercise-menu/locales/index.js +13 -0
  51. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +32 -19
  52. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.d.ts +1 -2
  53. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +10 -4
  54. package/cjs/components/material-exercise/exercise-multilang-dropdown/index.js +9 -0
  55. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +31 -24
  56. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -6
  57. package/cjs/components/material-exercise/exercise-preview/index.js +7 -0
  58. package/cjs/components/material-exercise/exercise-preview/locales/index.js +13 -0
  59. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +51 -35
  60. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +14 -6
  61. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +90 -78
  62. package/cjs/components/material-exercise/exercise-rightpane/index.js +7 -0
  63. package/cjs/components/material-exercise/exercise-rightpane/locales/index.js +13 -0
  64. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +25 -12
  65. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +18 -12
  66. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +504 -349
  67. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +197 -132
  68. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
  69. package/cjs/components/material-exercise/exercise-room/helpers/index.js +7 -0
  70. package/cjs/components/material-exercise/exercise-room/index.js +7 -0
  71. package/cjs/components/material-exercise/exercise-room/locales/index.js +13 -0
  72. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +205 -142
  73. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +5 -1
  74. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +25 -16
  75. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +118 -86
  76. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +33 -19
  77. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +95 -82
  78. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +68 -52
  79. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +136 -87
  80. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +6 -2
  81. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +21 -15
  82. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +36 -23
  83. package/cjs/components/material-exercise/exercise-runner/index.js +7 -0
  84. package/cjs/components/material-exercise/exercise-runner/locales/index.js +13 -0
  85. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +402 -248
  86. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +12 -8
  87. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +74 -50
  88. package/cjs/components/material-exercise/exercise-submit-history/index.js +7 -0
  89. package/cjs/components/material-exercise/exercise-submit-history/locales/index.js +13 -0
  90. package/cjs/components/material-exercise/index.js +9 -0
  91. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +32 -23
  92. package/cjs/components/shared/exercise-menu-button/index.js +7 -0
  93. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +44 -38
  94. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +26 -20
  95. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +14 -8
  96. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +28 -22
  97. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +24 -9
  98. package/cjs/components/shared/exercise-shimmer/index.js +15 -0
  99. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +6 -5
  100. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +5 -1
  101. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +10 -10
  102. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +13 -5
  103. package/cjs/components/shared/exercise-version-list/index.js +9 -0
  104. package/cjs/components/shared/file-icon/FileIcon.js +23 -16
  105. package/cjs/components/shared/file-icon/index.js +7 -0
  106. package/cjs/components/shared/file-tabs/FileTab.js +47 -33
  107. package/cjs/components/shared/file-tabs/FileTab.styled.js +23 -15
  108. package/cjs/components/shared/file-tabs/FileTabs.js +66 -39
  109. package/cjs/components/shared/file-tabs/FileTabs.styled.js +6 -2
  110. package/cjs/components/shared/file-tabs/index.js +7 -0
  111. package/cjs/components/shared/file-tabs/util.js +27 -14
  112. package/cjs/components/shared/file-tree/FileTree.js +20 -10
  113. package/cjs/components/shared/file-tree/FileTreeConfig.js +46 -40
  114. package/cjs/components/shared/file-tree/FileTreeList.js +43 -40
  115. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +128 -99
  116. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -21
  117. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +106 -96
  118. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +10 -6
  119. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +133 -91
  120. package/cjs/components/shared/file-tree/FileTreeListItems.js +149 -137
  121. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +6 -2
  122. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +5 -1
  123. package/cjs/components/shared/file-tree/context/FileTreeContext.d.ts +1 -1
  124. package/cjs/components/shared/file-tree/context/FileTreeContext.js +101 -79
  125. package/cjs/components/shared/file-tree/context/index.js +9 -0
  126. package/cjs/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +59 -54
  127. package/cjs/components/shared/file-tree/file-tree-toolbar/index.js +7 -0
  128. package/cjs/components/shared/file-tree/file-tree-toolbar/locales/index.js +13 -0
  129. package/cjs/components/shared/file-tree/index.js +7 -0
  130. package/cjs/components/shared/file-tree/locales/index.js +13 -0
  131. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +24 -20
  132. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -146
  133. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +11 -0
  134. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  135. package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -6
  136. package/cjs/components/shared/file-tree/utils/index.js +20 -0
  137. package/cjs/components/shared/file-viewer/FileViewer.js +76 -46
  138. package/cjs/components/shared/file-viewer/FileViewerCsv.js +262 -167
  139. package/cjs/components/shared/file-viewer/FileViewerImage.js +16 -12
  140. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +27 -11
  141. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +65 -47
  142. package/cjs/components/shared/file-viewer/FileViewerText.js +23 -11
  143. package/cjs/components/shared/file-viewer/index.js +7 -0
  144. package/cjs/components/shared/file-viewer/locales/index.js +21 -0
  145. package/cjs/components/shared/material-modal/MaterialModal.js +20 -11
  146. package/cjs/components/shared/material-modal/MaterialModal.styled.js +9 -5
  147. package/cjs/components/shared/material-modal/index.js +7 -0
  148. package/cjs/components/shared/monaco-editor/MonacoEditor.js +102 -74
  149. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +15 -7
  150. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -34
  151. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +249 -194
  152. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +82 -28
  153. package/cjs/components/shared/monaco-editor/constants/index.js +13 -0
  154. package/cjs/components/shared/monaco-editor/constants/monaco/index.js +11 -0
  155. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
  156. package/cjs/components/shared/monaco-editor/constants/themes/index.js +49 -17
  157. package/cjs/components/shared/monaco-editor/editor-hooks/index.js +17 -0
  158. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +11 -10
  159. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +15 -14
  160. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +9 -8
  161. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +34 -30
  162. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +9 -7
  163. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
  164. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -10
  165. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +3 -2
  166. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -10
  167. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -2
  168. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  169. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/index.js +11 -0
  170. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +37 -10
  171. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +6 -5
  172. package/cjs/components/shared/monaco-editor/hooks/index.js +7 -0
  173. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +11 -5
  174. package/cjs/components/shared/monaco-editor/index.js +21 -0
  175. package/cjs/components/shared/monaco-editor/locales/index.js +13 -0
  176. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +10 -12
  177. package/cjs/components/shared/monaco-editor/utils/emmet/index.js +9 -0
  178. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -6
  179. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +67 -24
  180. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -6
  181. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +70 -37
  182. package/cjs/components/shared/monaco-editor/utils/index.js +9 -0
  183. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +8 -7
  184. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -4
  185. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -2
  186. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +27 -7
  187. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +24 -14
  188. package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -3
  189. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -56
  190. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -68
  191. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +120 -93
  192. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +155 -132
  193. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -92
  194. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/index.js +12 -0
  195. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  196. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -6
  197. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
  198. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +177 -158
  199. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/index.js +11 -0
  200. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
  201. package/cjs/components/shared/no-vnc/NoVnc.js +118 -78
  202. package/cjs/components/shared/no-vnc/NoVncLazy.js +15 -7
  203. package/cjs/components/shared/no-vnc/index.js +7 -0
  204. package/cjs/components/shared/preview-container/PreviewContainer.js +18 -13
  205. package/cjs/components/shared/preview-container/index.js +9 -0
  206. package/cjs/components/shared/web-browser/WebBrowser.js +74 -52
  207. package/cjs/components/shared/web-browser/index.js +7 -0
  208. package/cjs/components/shared/xterm/Xterm.js +82 -57
  209. package/cjs/components/shared/xterm/XtermLazy.js +15 -7
  210. package/cjs/components/shared/xterm/index.js +7 -0
  211. package/cjs/components/shared/xterm/locales/index.js +13 -0
  212. package/cjs/constants/arduino.js +10 -10
  213. package/cjs/constants/color.js +1 -1
  214. package/cjs/constants/index.js +7 -0
  215. package/cjs/constants/shortcutKeyMap.js +3 -1
  216. package/cjs/constants/stylesheets.js +7 -5
  217. package/cjs/hooks/index.js +20 -0
  218. package/cjs/hooks/useArduino.js +282 -141
  219. package/cjs/hooks/useExerciseFile.js +24 -22
  220. package/cjs/hooks/useExericseShortcut.js +6 -4
  221. package/cjs/hooks/useMaterialExerciseFileUrl.js +55 -33
  222. package/cjs/hooks/useRunnerRoomWebSocket.js +51 -27
  223. package/cjs/hooks/useStdioTextConcator.js +15 -11
  224. package/cjs/hooks/useStdioWebSocket.js +32 -28
  225. package/cjs/hooks/useUsercodeEditWebSocket.js +238 -158
  226. package/cjs/hooks/useUsercodeHistory.js +115 -63
  227. package/cjs/utils/arduino.js +23 -11
  228. package/cjs/utils/exerciseFile.js +8 -10
  229. package/cjs/utils/index.js +10 -0
  230. package/cjs/utils/runner.js +33 -17
  231. package/es/_virtual/_rollupPluginBabelHelpers.js +499 -0
  232. package/es/assets/empty.png.js +1 -2
  233. package/es/components/index.js +8 -0
  234. package/es/components/locales/index.js +4 -0
  235. package/es/components/material-exercise/MaterialExercise.d.ts +1 -1
  236. package/es/components/material-exercise/MaterialExercise.js +107 -75
  237. package/es/components/material-exercise/MaterialExercise.styled.js +14 -14
  238. package/es/components/material-exercise/MaterialExerciseMobile.d.ts +1 -1
  239. package/es/components/material-exercise/MaterialExerciseMobile.js +13 -7
  240. package/es/components/material-exercise/context/ExerciseProvider.js +63 -58
  241. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +35 -30
  242. package/es/components/material-exercise/context/context.js +1 -1
  243. package/es/components/material-exercise/context/index.js +5 -0
  244. package/es/components/material-exercise/context/recoil.js +535 -290
  245. package/es/components/material-exercise/context/subjects.js +4 -4
  246. package/es/components/material-exercise/context/types.d.ts +2 -2
  247. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +95 -78
  248. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  249. package/es/components/material-exercise/exercise-code-history/index.js +1 -0
  250. package/es/components/material-exercise/exercise-code-history/locales/index.js +4 -0
  251. package/es/components/material-exercise/exercise-file/ExerciseFile.js +25 -27
  252. package/es/components/material-exercise/exercise-file/index.js +1 -0
  253. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +221 -149
  254. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +15 -13
  255. package/es/components/material-exercise/exercise-file-editor/index.js +1 -0
  256. package/es/components/material-exercise/exercise-file-editor/locales/index.js +4 -0
  257. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +44 -29
  258. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.d.ts +1 -2
  259. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
  260. package/es/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/ExerciseFileTabsFileTreeButton.js +48 -36
  261. package/es/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/index.js +1 -0
  262. package/es/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/locales/index.js +4 -0
  263. package/es/components/material-exercise/exercise-file-tabs/index.js +2 -0
  264. package/es/components/material-exercise/exercise-file-tabs/locales/index.js +4 -0
  265. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +348 -211
  266. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.d.ts +1 -2
  267. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
  268. package/es/components/material-exercise/exercise-file-tree/index.js +2 -0
  269. package/es/components/material-exercise/exercise-file-tree/locales/index.js +4 -0
  270. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +14 -15
  271. package/es/components/material-exercise/exercise-file-viewer/index.js +1 -0
  272. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +16 -12
  273. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +12 -11
  274. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +119 -80
  275. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +96 -67
  276. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +41 -23
  277. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +143 -122
  278. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +13 -13
  279. package/es/components/material-exercise/exercise-menu/index.js +1 -0
  280. package/es/components/material-exercise/exercise-menu/locales/index.js +4 -0
  281. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -19
  282. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.d.ts +1 -2
  283. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +6 -4
  284. package/es/components/material-exercise/exercise-multilang-dropdown/index.js +2 -0
  285. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +26 -24
  286. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +14 -7
  287. package/es/components/material-exercise/exercise-preview/index.js +1 -0
  288. package/es/components/material-exercise/exercise-preview/locales/index.js +4 -0
  289. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +47 -35
  290. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +10 -6
  291. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +85 -78
  292. package/es/components/material-exercise/exercise-rightpane/index.js +1 -0
  293. package/es/components/material-exercise/exercise-rightpane/locales/index.js +4 -0
  294. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +21 -12
  295. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  296. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +498 -349
  297. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +193 -133
  298. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
  299. package/es/components/material-exercise/exercise-room/helpers/index.js +1 -0
  300. package/es/components/material-exercise/exercise-room/index.js +1 -0
  301. package/es/components/material-exercise/exercise-room/locales/index.js +4 -0
  302. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +200 -142
  303. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  304. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +20 -16
  305. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +112 -85
  306. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +30 -20
  307. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +90 -82
  308. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +63 -52
  309. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +131 -87
  310. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -2
  311. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +17 -15
  312. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +31 -23
  313. package/es/components/material-exercise/exercise-runner/index.js +1 -0
  314. package/es/components/material-exercise/exercise-runner/locales/index.js +4 -0
  315. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +399 -250
  316. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  317. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +68 -49
  318. package/es/components/material-exercise/exercise-submit-history/index.js +1 -0
  319. package/es/components/material-exercise/exercise-submit-history/locales/index.js +4 -0
  320. package/es/components/material-exercise/index.js +2 -0
  321. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +29 -24
  322. package/es/components/shared/exercise-menu-button/index.js +1 -0
  323. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +40 -38
  324. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +22 -20
  325. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +10 -8
  326. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +24 -22
  327. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +19 -9
  328. package/es/components/shared/exercise-shimmer/index.js +5 -0
  329. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +6 -5
  330. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  331. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +10 -10
  332. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  333. package/es/components/shared/exercise-version-list/index.js +2 -0
  334. package/es/components/shared/file-icon/FileIcon.js +19 -16
  335. package/es/components/shared/file-icon/index.js +1 -0
  336. package/es/components/shared/file-tabs/FileTab.js +43 -33
  337. package/es/components/shared/file-tabs/FileTab.styled.js +19 -15
  338. package/es/components/shared/file-tabs/FileTabs.js +62 -40
  339. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  340. package/es/components/shared/file-tabs/index.js +1 -0
  341. package/es/components/shared/file-tabs/util.js +27 -14
  342. package/es/components/shared/file-tree/FileTree.js +16 -10
  343. package/es/components/shared/file-tree/FileTreeConfig.js +39 -39
  344. package/es/components/shared/file-tree/FileTreeList.js +38 -40
  345. package/es/components/shared/file-tree/FileTreeListItemContent.js +124 -99
  346. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +25 -21
  347. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +102 -96
  348. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  349. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +129 -91
  350. package/es/components/shared/file-tree/FileTreeListItems.js +149 -137
  351. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  352. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  353. package/es/components/shared/file-tree/context/FileTreeContext.d.ts +1 -1
  354. package/es/components/shared/file-tree/context/FileTreeContext.js +97 -79
  355. package/es/components/shared/file-tree/context/index.js +1 -0
  356. package/es/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +55 -54
  357. package/es/components/shared/file-tree/file-tree-toolbar/index.js +1 -0
  358. package/es/components/shared/file-tree/file-tree-toolbar/locales/index.js +4 -0
  359. package/es/components/shared/file-tree/index.js +1 -0
  360. package/es/components/shared/file-tree/locales/index.js +4 -0
  361. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -20
  362. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -146
  363. package/es/components/shared/file-tree/utils/fileTreeInput.js +11 -1
  364. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  365. package/es/components/shared/file-tree/utils/fileTreePath.js +5 -6
  366. package/es/components/shared/file-tree/utils/index.js +5 -0
  367. package/es/components/shared/file-viewer/FileViewer.js +69 -46
  368. package/es/components/shared/file-viewer/FileViewerCsv.js +257 -167
  369. package/es/components/shared/file-viewer/FileViewerImage.js +12 -12
  370. package/es/components/shared/file-viewer/FileViewerIpynb.js +21 -11
  371. package/es/components/shared/file-viewer/FileViewerNonViewable.js +60 -47
  372. package/es/components/shared/file-viewer/FileViewerText.js +19 -11
  373. package/es/components/shared/file-viewer/index.js +1 -0
  374. package/es/components/shared/file-viewer/locales/index.js +8 -0
  375. package/es/components/shared/material-modal/MaterialModal.js +20 -11
  376. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  377. package/es/components/shared/material-modal/index.js +1 -0
  378. package/es/components/shared/monaco-editor/MonacoEditor.js +95 -72
  379. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +11 -7
  380. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +43 -32
  381. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +244 -194
  382. package/es/components/shared/monaco-editor/constants/grammars/index.js +82 -28
  383. package/es/components/shared/monaco-editor/constants/index.js +2 -0
  384. package/es/components/shared/monaco-editor/constants/monaco/index.js +1 -0
  385. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
  386. package/es/components/shared/monaco-editor/constants/themes/index.js +49 -17
  387. package/es/components/shared/monaco-editor/editor-hooks/index.js +6 -0
  388. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +11 -10
  389. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +15 -14
  390. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +9 -8
  391. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +34 -30
  392. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +9 -7
  393. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
  394. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -10
  395. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -10
  396. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  397. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/index.js +3 -0
  398. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +37 -10
  399. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +3 -3
  400. package/es/components/shared/monaco-editor/hooks/index.js +1 -0
  401. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +11 -5
  402. package/es/components/shared/monaco-editor/index.js +6 -0
  403. package/es/components/shared/monaco-editor/locales/index.js +4 -0
  404. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +10 -12
  405. package/es/components/shared/monaco-editor/utils/emmet/index.js +1 -0
  406. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -6
  407. package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -24
  408. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -6
  409. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -35
  410. package/es/components/shared/monaco-editor/utils/index.js +2 -0
  411. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +5 -5
  412. package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -4
  413. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -2
  414. package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -7
  415. package/es/components/shared/monaco-editor/utils/theme/convert.js +19 -13
  416. package/es/components/shared/monaco-editor/utils/theme/index.js +22 -3
  417. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -56
  418. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -68
  419. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +120 -93
  420. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +152 -130
  421. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -92
  422. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/index.js +3 -0
  423. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  424. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -6
  425. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
  426. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +171 -156
  427. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/index.js +2 -0
  428. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
  429. package/es/components/shared/no-vnc/NoVnc.js +99 -71
  430. package/es/components/shared/no-vnc/NoVncLazy.js +11 -7
  431. package/es/components/shared/no-vnc/index.js +1 -0
  432. package/es/components/shared/preview-container/PreviewContainer.js +15 -14
  433. package/es/components/shared/preview-container/index.js +1 -0
  434. package/es/components/shared/web-browser/WebBrowser.js +69 -52
  435. package/es/components/shared/web-browser/index.js +1 -0
  436. package/es/components/shared/xterm/Xterm.js +77 -57
  437. package/es/components/shared/xterm/XtermLazy.js +11 -7
  438. package/es/components/shared/xterm/index.js +1 -0
  439. package/es/components/shared/xterm/locales/index.js +4 -0
  440. package/es/constants/arduino.js +10 -10
  441. package/es/constants/color.js +1 -1
  442. package/es/constants/index.js +1 -0
  443. package/es/constants/shortcutKeyMap.js +3 -1
  444. package/es/constants/stylesheets.js +7 -5
  445. package/es/hooks/index.js +7 -0
  446. package/es/hooks/useArduino.js +278 -141
  447. package/es/hooks/useExerciseFile.js +24 -22
  448. package/es/hooks/useExericseShortcut.js +6 -4
  449. package/es/hooks/useMaterialExerciseFileUrl.js +52 -34
  450. package/es/hooks/useRunnerRoomWebSocket.js +51 -27
  451. package/es/hooks/useStdioTextConcator.js +11 -11
  452. package/es/hooks/useStdioWebSocket.js +32 -28
  453. package/es/hooks/useUsercodeEditWebSocket.js +232 -157
  454. package/es/hooks/useUsercodeHistory.js +115 -63
  455. package/es/utils/arduino.js +24 -12
  456. package/es/utils/exerciseFile.js +8 -10
  457. package/es/utils/index.js +2 -0
  458. package/es/utils/runner.js +33 -17
  459. package/package.json +11 -15
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
3
4
  var apiClient = require('@elice/api-client');
4
5
  var types = require('@elice/types');
5
6
  var websocket = require('@elice/websocket');
@@ -13,109 +14,218 @@ var monacoPreference = require('../../shared/monaco-editor/utils/monacoPreferenc
13
14
  var preferences = require('../../shared/monaco-editor/constants/monaco/preferences.js');
14
15
  var recoilTypes = require('./recoilTypes.js');
15
16
 
17
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
18
+
19
+ var isEqual__default = /*#__PURE__*/_interopDefaultCompat(isEqual);
20
+
16
21
  //
17
22
  //
18
23
  //
19
- const KEY_PREFIX = 'MaterialExercise/Exercise/Global';
24
+ var KEY_PREFIX = 'MaterialExercise/Exercise/Global';
20
25
  //
21
26
  // =============== entities ===============
22
27
  //
23
28
  /**
24
29
  * Lecture.
25
30
  */
26
- const exerciseLectureState = recoil.atomFamily({
27
- key: `${KEY_PREFIX}/Lecture`,
31
+ var exerciseLectureState = recoil.atomFamily({
32
+ key: "".concat(KEY_PREFIX, "/Lecture"),
28
33
  default: null,
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) {
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') {
48
74
  void get();
49
75
  }
50
- });
51
- }]
76
+ onSet(function (_prevValue, _newValue, isReset) {
77
+ if (isReset) {
78
+ void get();
79
+ }
80
+ });
81
+ }];
82
+ }
52
83
  });
53
84
  /**
54
85
  * Material exercise.
55
86
  */
56
- const exerciseState = recoil.atomFamily({
57
- key: `${KEY_PREFIX}/Exercise`,
87
+ var exerciseState = recoil.atomFamily({
88
+ key: "".concat(KEY_PREFIX, "/Exercise"),
58
89
  default: null,
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
- }]
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
+ }
82
145
  });
83
146
  /**
84
147
  * Material exercise room.
85
148
  */
86
- const exerciseRoomState = recoil.atomFamily({
87
- key: `${KEY_PREFIX}/ExerciseRoom`,
149
+ var exerciseRoomState = recoil.atomFamily({
150
+ key: "".concat(KEY_PREFIX, "/ExerciseRoom"),
88
151
  default: null,
89
- effects: exerciseRoomId => [({
90
- setSelf,
91
- trigger
92
- }) => {
93
- const get = async () => {
94
- if (!exerciseRoomId) {
95
- return 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();
96
191
  }
97
- setSelf(await apiClient.getOrgMaterialExerciseExerciseRoomGet({
98
- exerciseRoomId
99
- }).then(res => res.exerciseRoom).catch(() => null));
100
- };
101
- if (trigger === 'get') {
102
- void get();
103
- }
104
- }]
192
+ }];
193
+ }
105
194
  });
106
195
  /**
107
196
  * User.
108
197
  */
109
- const exerciseUserState = recoil.atom({
110
- key: `${KEY_PREFIX}/User`,
198
+ var exerciseUserState = recoil.atom({
199
+ key: "".concat(KEY_PREFIX, "/User"),
111
200
  default: null,
112
- effects: [({
113
- setSelf,
114
- trigger
115
- }) => {
116
- const get = async () => {
117
- setSelf(await apiClient.getOrgUserGet().then(res => res.user).catch(() => null));
118
- };
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
+ }();
119
229
  if (trigger === 'get') {
120
230
  void get();
121
231
  }
@@ -127,29 +237,44 @@ const exerciseUserState = recoil.atom({
127
237
  /**
128
238
  *
129
239
  */
130
- const exerciseFileTabsOpenedState = recoil.atomFamily({
131
- key: `${KEY_PREFIX}/FileTabs/Opened`,
240
+ var exerciseFileTabsOpenedState = recoil.atomFamily({
241
+ key: "".concat(KEY_PREFIX, "/FileTabs/Opened"),
132
242
  default: recoil.selectorFamily({
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
- }
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
+ }();
153
278
  }
154
279
  })
155
280
  });
@@ -159,35 +284,56 @@ const exerciseFileTabsOpenedState = recoil.atomFamily({
159
284
  /**
160
285
  *
161
286
  */
162
- const exerciseFileTreeOpenedState = recoil.atom({
163
- key: `${KEY_PREFIX}/FileTree/Opened`,
287
+ var exerciseFileTreeOpenedState = recoil.atom({
288
+ key: "".concat(KEY_PREFIX, "/FileTree/Opened"),
164
289
  default: false
165
290
  });
166
291
  //
167
292
  // =============== preference ===============
168
293
  //
169
- const EDITOR_ACCOUNT_PREFERENCE_PKEY_MONACO = 'material.exercise.editor.preference';
294
+ var EDITOR_ACCOUNT_PREFERENCE_PKEY_MONACO = 'material.exercise.editor.preference';
170
295
  /**
171
296
  * Editor preference.
172
297
  */
173
- const exerciseEditorPreferenceState = recoil.atom({
174
- key: `${KEY_PREFIX}/EditorPreference`,
298
+ var exerciseEditorPreferenceState = recoil.atom({
299
+ key: "".concat(KEY_PREFIX, "/EditorPreference"),
175
300
  default: preferences.DEFAULT_MONACO_EDITOR_PREFERENCE,
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
- };
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
+ }();
186
332
  if (trigger === 'get') {
187
333
  void get();
188
334
  }
189
- onSet((newPreference, prevPreference, isReset) => {
190
- if (!isEqual(newPreference, prevPreference) && !isReset) {
335
+ onSet(function (newPreference, prevPreference, isReset) {
336
+ if (!isEqual__default.default(newPreference, prevPreference) && !isReset) {
191
337
  void apiClient.postGlobalAccountPreferenceEdit({
192
338
  pkey: EDITOR_ACCOUNT_PREFERENCE_PKEY_MONACO,
193
339
  pvalue: monacoPreference.normalizeMonacoPreference(newPreference)
@@ -199,48 +345,70 @@ const exerciseEditorPreferenceState = recoil.atom({
199
345
  //
200
346
  // =============== preview ===============
201
347
  //
202
- const EDITOR_ACCOUNT_PREFERENCE_PKEY_PREVIEW_MODE = 'material.exercise.preview.mode';
348
+ var EDITOR_ACCOUNT_PREFERENCE_PKEY_PREVIEW_MODE = 'material.exercise.preview.mode';
203
349
  /**
204
350
  *
205
351
  */
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
- }
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
+ };
221
368
  }
222
369
  });
223
370
  /**
224
371
  *
225
372
  */
226
- const exercisePreviewDisplayModeState = recoil.atom({
227
- key: `${KEY_PREFIX}/Preview/DisplayMode`,
373
+ var exercisePreviewDisplayModeState = recoil.atom({
374
+ key: "".concat(KEY_PREFIX, "/Preview/DisplayMode"),
228
375
  default: recoilTypes.ExercisePreviewDisplayMode.Mini,
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
- };
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
+ }();
239
407
  if (trigger === 'get') {
240
408
  void get();
241
409
  }
242
- onSet((newDisplayMode, prevDisplayMode, isReset) => {
243
- if (!isEqual(newDisplayMode, prevDisplayMode) && !isReset) {
410
+ onSet(function (newDisplayMode, prevDisplayMode, isReset) {
411
+ if (!isEqual__default.default(newDisplayMode, prevDisplayMode) && !isReset) {
244
412
  void apiClient.postGlobalAccountPreferenceEdit({
245
413
  pkey: EDITOR_ACCOUNT_PREFERENCE_PKEY_PREVIEW_MODE,
246
414
  pvalue: newDisplayMode
@@ -255,53 +423,54 @@ const exercisePreviewDisplayModeState = recoil.atom({
255
423
  /**
256
424
  *
257
425
  */
258
- const exerciseRunnerSubmittingState = recoil.atom({
259
- key: `${KEY_PREFIX}/Runner/Submitting`,
426
+ var exerciseRunnerSubmittingState = recoil.atom({
427
+ key: "".concat(KEY_PREFIX, "/Runner/Submitting"),
260
428
  default: false
261
429
  });
262
430
  /**
263
431
  *
264
432
  */
265
- const exerciseRunnerRunningState = recoil.atom({
266
- key: `${KEY_PREFIX}/Runner/Running`,
433
+ var exerciseRunnerRunningState = recoil.atom({
434
+ key: "".concat(KEY_PREFIX, "/Runner/Running"),
267
435
  default: false
268
436
  });
269
437
  /**
270
438
  *
271
439
  */
272
- const exerciseRunnerRunTypeState = recoil.atom({
273
- key: `${KEY_PREFIX}/Runner/RunType`,
440
+ var exerciseRunnerRunTypeState = recoil.atom({
441
+ key: "".concat(KEY_PREFIX, "/Runner/RunType"),
274
442
  default: null
275
443
  });
276
444
  /**
277
445
  *
278
446
  */
279
- const exerciseRunnerRoomConnectionInfoState = recoil.atom({
280
- key: `${KEY_PREFIX}/Runner/RoomConnectionInfoState`,
447
+ var exerciseRunnerRoomConnectionInfoState = recoil.atom({
448
+ key: "".concat(KEY_PREFIX, "/Runner/RoomConnectionInfoState"),
281
449
  default: null
282
450
  });
283
451
  /**
284
452
  *
285
453
  */
286
- const exerciseRunnerStdioFilesState = recoil.atom({
287
- key: `${KEY_PREFIX}/Runner/StdioFiles`,
454
+ var exerciseRunnerStdioFilesState = recoil.atom({
455
+ key: "".concat(KEY_PREFIX, "/Runner/StdioFiles"),
288
456
  default: []
289
457
  });
290
458
  /**
291
459
  *
292
460
  */
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]);
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]);
299
466
  // connecting
300
467
  if (states.includes(websocket.EliceWebSocket.CLOSED) || states.includes(websocket.EliceWebSocket.CONNECTING)) {
301
468
  return websocket.EliceWebSocket.CONNECTING;
302
469
  }
303
470
  // connected
304
- else if (states.every(state => state === WebSocket.OPEN)) {
471
+ else if (states.every(function (state) {
472
+ return state === WebSocket.OPEN;
473
+ })) {
305
474
  return websocket.EliceWebSocket.OPEN;
306
475
  }
307
476
  // reconnecting
@@ -316,8 +485,8 @@ const exerciseRunnerWebSocketStatusQuery = recoil.selector({
316
485
  /**
317
486
  *
318
487
  */
319
- const exerciseWebsocketStates = recoil.atom({
320
- key: `${KEY_PREFIX}/Websocket/States`,
488
+ var exerciseWebsocketStates = recoil.atom({
489
+ key: "".concat(KEY_PREFIX, "/Websocket/States"),
321
490
  default: {
322
491
  runnerRoom: websocket.EliceWebSocket.CLOSED,
323
492
  stdio: websocket.EliceWebSocket.CLOSED,
@@ -327,143 +496,223 @@ const exerciseWebsocketStates = recoil.atom({
327
496
  /**
328
497
  *
329
498
  */
330
- const exerciseWebsocketQuery = recoil.selectorFamily({
331
- key: `${KEY_PREFIX}/Websocket/State`,
332
- get: key => ({
333
- get
334
- }) => {
335
- return get(exerciseWebsocketStates)[key];
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
+ };
336
506
  },
337
- set: key => ({
338
- get,
339
- set
340
- }, newWebSocketState) => {
341
- set(exerciseWebsocketStates, Object.assign(Object.assign({}, get(exerciseWebsocketStates)), {
342
- [key]: newWebSocketState
343
- }));
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
+ };
344
513
  }
345
514
  });
346
515
  //
347
516
  // =============== multi language ===============
348
517
  //
349
- const MULTILANG_ENVIRONMENT_FILENAME = '.environment.json';
350
- const MULTILANG_LANGUAGES_FILENAME = '.languages.json';
518
+ var MULTILANG_ENVIRONMENT_FILENAME = '.environment.json';
519
+ var MULTILANG_LANGUAGES_FILENAME = '.languages.json';
351
520
  /**
352
521
  *
353
522
  */
354
- const exerciseMultilangLanguagesState = recoil.atomFamily({
355
- key: `${KEY_PREFIX}/Multilang/Languages`,
523
+ var exerciseMultilangLanguagesState = recoil.atomFamily({
524
+ key: "".concat(KEY_PREFIX, "/Multilang/Languages"),
356
525
  default: undefined,
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) {
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') {
384
582
  void get();
385
583
  }
386
- });
387
- }]
584
+ onSet(function (_prevValue, _newValue, isReset) {
585
+ if (isReset) {
586
+ void get();
587
+ }
588
+ });
589
+ }];
590
+ }
388
591
  });
389
592
  /**
390
593
  *
391
594
  */
392
- const exerciseMultilangEnvironmentState = recoil.atomFamily({
393
- key: `${KEY_PREFIX}/Multilang/Environment`,
595
+ var exerciseMultilangEnvironmentState = recoil.atomFamily({
596
+ key: "".concat(KEY_PREFIX, "/Multilang/Environment"),
394
597
  default: null,
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
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);
415
645
  };
416
- }).catch(() => null)));
417
- };
418
- if (trigger === 'get') {
419
- void get();
420
- }
421
- onSet((newEnvJson, _, isReset) => {
422
- if (isReset) {
423
- return;
646
+ }();
647
+ if (trigger === 'get') {
648
+ void get();
424
649
  }
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
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
+ });
432
662
  });
433
- });
434
- }]
663
+ }];
664
+ }
435
665
  });
436
666
  //
437
667
  // =============== arduino ===============
438
668
  //
439
- const ARDUINO_ACCOUNT_PREFERENCE_KEY = 'material.exercise.arduino.preference';
440
- const DEFAULT_ARDUINO_PREFERENCE = {
669
+ var ARDUINO_ACCOUNT_PREFERENCE_KEY = 'material.exercise.arduino.preference';
670
+ var DEFAULT_ARDUINO_PREFERENCE = {
441
671
  baudRate: 9600,
442
672
  port: ''
443
673
  };
444
674
  /**
445
675
  * Arduino preference.
446
676
  */
447
- const exerciseArduinoPreferenceState = recoil.atom({
448
- key: `${KEY_PREFIX}/Arduino/Preference`,
677
+ var exerciseArduinoPreferenceState = recoil.atom({
678
+ key: "".concat(KEY_PREFIX, "/Arduino/Preference"),
449
679
  default: DEFAULT_ARDUINO_PREFERENCE,
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
- };
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
+ }();
462
711
  if (trigger === 'get') {
463
712
  void get();
464
713
  }
465
- onSet((newPreference, prevPreference, isReset) => {
466
- if (!isEqual(newPreference, prevPreference) && !isReset) {
714
+ onSet(function (newPreference, prevPreference, isReset) {
715
+ if (!isEqual__default.default(newPreference, prevPreference) && !isReset) {
467
716
  void apiClient.postGlobalAccountPreferenceEdit({
468
717
  pkey: ARDUINO_ACCOUNT_PREFERENCE_KEY,
469
718
  pvalue: Object.assign(Object.assign({}, DEFAULT_ARDUINO_PREFERENCE), newPreference)
@@ -475,45 +724,45 @@ const exerciseArduinoPreferenceState = recoil.atom({
475
724
  /**
476
725
  * Arduino ports.
477
726
  */
478
- const exerciseArduinoPortsState = recoil.atom({
479
- key: `${KEY_PREFIX}/Arduino/Ports`,
727
+ var exerciseArduinoPortsState = recoil.atom({
728
+ key: "".concat(KEY_PREFIX, "/Arduino/Ports"),
480
729
  default: []
481
730
  });
482
731
  /**
483
732
  * Opened arduino port.
484
733
  */
485
- const exerciseArduinoOpenedPortNameState = recoil.atom({
486
- key: `${KEY_PREFIX}/Arduino/OpenedPortName`,
734
+ var exerciseArduinoOpenedPortNameState = recoil.atom({
735
+ key: "".concat(KEY_PREFIX, "/Arduino/OpenedPortName"),
487
736
  default: null
488
737
  });
489
738
  /**
490
739
  * Arduino port open handler.
491
740
  */
492
- const exerciseArduinoOnSelectPortState = recoil.atom({
493
- key: `${KEY_PREFIX}/Arduino/OnSelectPort`,
494
- default: name => {
741
+ var exerciseArduinoOnSelectPortState = recoil.atom({
742
+ key: "".concat(KEY_PREFIX, "/Arduino/OnSelectPort"),
743
+ default: function _default(name) {
495
744
  // do nothing.
496
745
  }
497
746
  });
498
747
  /**
499
748
  * Arduino agent connection status.
500
749
  */
501
- const exerciseArduinoAgentConnectionState = recoil.atom({
502
- key: `${KEY_PREFIX}/Arduino/AgentConnection`,
750
+ var exerciseArduinoAgentConnectionState = recoil.atom({
751
+ key: "".concat(KEY_PREFIX, "/Arduino/AgentConnection"),
503
752
  default: 'disconnected'
504
753
  });
505
754
  /**
506
755
  * Arduino upload progress.
507
756
  */
508
- const exerciseArduinoUploadProgressState = recoil.atom({
509
- key: `${KEY_PREFIX}/Arduino/UploadProgressState`,
757
+ var exerciseArduinoUploadProgressState = recoil.atom({
758
+ key: "".concat(KEY_PREFIX, "/Arduino/UploadProgressState"),
510
759
  default: 'ready'
511
760
  });
512
761
  /**
513
762
  * Arduino agent modal open status.
514
763
  */
515
- const exerciseArduinoAgentModalState = recoil.atom({
516
- key: `${KEY_PREFIX}/Arduino/AgentModalState`,
764
+ var exerciseArduinoAgentModalState = recoil.atom({
765
+ key: "".concat(KEY_PREFIX, "/Arduino/AgentModalState"),
517
766
  default: false
518
767
  });
519
768
  //
@@ -522,22 +771,22 @@ const exerciseArduinoAgentModalState = recoil.atom({
522
771
  /**
523
772
  *
524
773
  */
525
- const exerciseActiveFilenameState = recoil.atom({
526
- key: `${KEY_PREFIX}/ActiveFilename`,
774
+ var exerciseActiveFilenameState = recoil.atom({
775
+ key: "".concat(KEY_PREFIX, "/ActiveFilename"),
527
776
  default: null
528
777
  });
529
778
  /**
530
779
  *
531
780
  */
532
- const exerciseRightpaneActiveState = recoil.atom({
533
- key: `${KEY_PREFIX}/RightpaneActive`,
781
+ var exerciseRightpaneActiveState = recoil.atom({
782
+ key: "".concat(KEY_PREFIX, "/RightpaneActive"),
534
783
  default: null
535
784
  });
536
785
  /**
537
786
  *
538
787
  */
539
- const exerciseContainerSizeState = recoil.atom({
540
- key: `${KEY_PREFIX}/ContainerSize`,
788
+ var exerciseContainerSizeState = recoil.atom({
789
+ key: "".concat(KEY_PREFIX, "/ContainerSize"),
541
790
  default: {
542
791
  width: 0,
543
792
  height: 0
@@ -546,15 +795,15 @@ const exerciseContainerSizeState = recoil.atom({
546
795
  /**
547
796
  *
548
797
  */
549
- const exerciseAibotInfoEnableState = recoil.atom({
550
- key: `${KEY_PREFIX}/AibotInfoEnable`,
798
+ var exerciseAibotInfoEnableState = recoil.atom({
799
+ key: "".concat(KEY_PREFIX, "/AibotInfoEnable"),
551
800
  default: false
552
801
  });
553
802
  /**
554
803
  *
555
804
  */
556
- const exerciseFileEditorCursorState = recoil.atom({
557
- key: `${KEY_PREFIX}/FileEditorCursor`,
805
+ var exerciseFileEditorCursorState = recoil.atom({
806
+ key: "".concat(KEY_PREFIX, "/FileEditorCursor"),
558
807
  default: {
559
808
  from: 0,
560
809
  to: 0
@@ -563,15 +812,15 @@ const exerciseFileEditorCursorState = recoil.atom({
563
812
  /**
564
813
  *
565
814
  */
566
- const exerciseFileEditorCursorSelectionValueState = recoil.atom({
567
- key: `${KEY_PREFIX}/FileEditorCursorSelectionValue`,
815
+ var exerciseFileEditorCursorSelectionValueState = recoil.atom({
816
+ key: "".concat(KEY_PREFIX, "/FileEditorCursorSelectionValue"),
568
817
  default: null
569
818
  });
570
819
  /**
571
820
  *
572
821
  */
573
- const exerciseMonacoEditorApisState = recoil.atom({
574
- key: `${KEY_PREFIX}/MonacoEditorApisState`,
822
+ var exerciseMonacoEditorApisState = recoil.atom({
823
+ key: "".concat(KEY_PREFIX, "/MonacoEditorApisState"),
575
824
  default: null,
576
825
  dangerouslyAllowMutability: true
577
826
  });