@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,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray, defineProperty as _defineProperty, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import { useRef, useState, useMemo, useCallback, useEffect } from 'react';
2
3
  import { useDeepCompareEffect } from 'react-use';
3
4
  import { config, getOrgUserGet, postOrgMaterialExerciseUsercodeEdit } from '@elice/api-client';
@@ -12,74 +13,100 @@ import { uniCount, uniToStrPos } from 'unicount';
12
13
  //
13
14
  //
14
15
  //
15
- const MAX_WRITE_FAIL_COUNT = 5;
16
+ var MAX_WRITE_FAIL_COUNT = 5;
16
17
  /**
17
18
  *
18
19
  */
19
- const useUsercodeEditWebSocket = ({
20
- exerciseRoomId,
21
- filename,
22
- onInit,
23
- onWriteNoti
24
- }) => {
25
- const _return = useRef({});
26
- const {
27
- apiWsOriginUrl
28
- } = useMaterialConfig();
29
- const isReady = useMaterialConfigApiClientUpdate(config.init);
30
- const websocket = useRef(null);
31
- const [websocketReadyState, setWebSocketReadyState] = useState(EliceWebSocket.CLOSED);
32
- const [doc, setDoc] = useState('');
33
- const [docEditable, setDocEditable] = useState(true);
34
- const _doc = useRef('');
35
- const [clients, setClients] = useState({});
36
- const [cursors, setCursors] = useState({});
37
- const myself = useRef(null);
38
- const version = useRef(-1);
39
- const otsBuffer = useRef([]);
40
- const writeIndex = useRef(0);
41
- const writeFailCount = useRef(0);
42
- const [_monkeyAgent, _setMonkeyAgent] = useState(0);
43
- const [_numMonkeyJumped, setNumMonkeyJumped] = useState(0);
20
+ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
21
+ var exerciseRoomId = _ref.exerciseRoomId,
22
+ filename = _ref.filename,
23
+ onInit = _ref.onInit,
24
+ onWriteNoti = _ref.onWriteNoti;
25
+ var _return = useRef({});
26
+ var _useMaterialConfig = useMaterialConfig(),
27
+ apiWsOriginUrl = _useMaterialConfig.apiWsOriginUrl;
28
+ var isReady = useMaterialConfigApiClientUpdate(config.init);
29
+ var websocket = useRef(null);
30
+ var _useState = useState(EliceWebSocket.CLOSED),
31
+ _useState2 = _slicedToArray(_useState, 2),
32
+ websocketReadyState = _useState2[0],
33
+ setWebSocketReadyState = _useState2[1];
34
+ var _useState3 = useState(''),
35
+ _useState4 = _slicedToArray(_useState3, 2),
36
+ doc = _useState4[0],
37
+ setDoc = _useState4[1];
38
+ var _useState5 = useState(true),
39
+ _useState6 = _slicedToArray(_useState5, 2),
40
+ docEditable = _useState6[0],
41
+ setDocEditable = _useState6[1];
42
+ var _doc = useRef('');
43
+ var _useState7 = useState({}),
44
+ _useState8 = _slicedToArray(_useState7, 2),
45
+ clients = _useState8[0],
46
+ setClients = _useState8[1];
47
+ var _useState9 = useState({}),
48
+ _useState10 = _slicedToArray(_useState9, 2),
49
+ cursors = _useState10[0],
50
+ setCursors = _useState10[1];
51
+ var myself = useRef(null);
52
+ var version = useRef(-1);
53
+ var otsBuffer = useRef([]);
54
+ var writeIndex = useRef(0);
55
+ var writeFailCount = useRef(0);
56
+ var _useState11 = useState(0),
57
+ _useState12 = _slicedToArray(_useState11, 2),
58
+ _monkeyAgent = _useState12[0],
59
+ _setMonkeyAgent = _useState12[1];
60
+ var _useState13 = useState(0),
61
+ _useState14 = _slicedToArray(_useState13, 2),
62
+ _numMonkeyJumped = _useState14[0],
63
+ setNumMonkeyJumped = _useState14[1];
44
64
  //
45
65
  // =============== clients and markers ===============
46
66
  //
47
67
  /**
48
68
  * Markers.
49
69
  */
50
- const markers = useMemo(() => Object.entries(cursors).filter(([userAccesskey]) => Boolean(clients[userAccesskey])).map(([userAccesskey, cursor]) => {
51
- const client = clients[userAccesskey];
52
- return Object.assign(Object.assign(Object.assign({}, client), cursor), {
53
- fullname: client.fullname || `User ${client.id}`,
54
- email: client.email || 'none'
70
+ var markers = useMemo(function () {
71
+ return Object.entries(cursors).filter(function (_ref2) {
72
+ var _ref3 = _slicedToArray(_ref2, 1),
73
+ userAccesskey = _ref3[0];
74
+ return Boolean(clients[userAccesskey]);
75
+ }).map(function (_ref4) {
76
+ var _ref5 = _slicedToArray(_ref4, 2),
77
+ userAccesskey = _ref5[0],
78
+ cursor = _ref5[1];
79
+ var client = clients[userAccesskey];
80
+ return Object.assign(Object.assign(Object.assign({}, client), cursor), {
81
+ fullname: client.fullname || "User ".concat(client.id),
82
+ email: client.email || 'none'
83
+ });
55
84
  });
56
- }), [clients, cursors]);
85
+ }, [clients, cursors]);
57
86
  /**
58
87
  * Update client to list.
59
88
  */
60
- const updateClient = (userAccesskey, userId) => {
89
+ var updateClient = function updateClient(userAccesskey, userId) {
61
90
  var _a;
62
91
  if (userAccesskey === ((_a = myself.current) === null || _a === void 0 ? void 0 : _a.accesskey)) {
63
92
  return;
64
93
  }
65
- setClients(prev => {
94
+ setClients(function (prev) {
66
95
  if (prev[userAccesskey]) {
67
96
  return prev;
68
97
  }
69
- return Object.assign(Object.assign({}, prev), {
70
- [userAccesskey]: {
71
- id: userId,
72
- accesskey: userAccesskey
73
- }
74
- });
98
+ return Object.assign(Object.assign({}, prev), _defineProperty({}, userAccesskey, {
99
+ id: userId,
100
+ accesskey: userAccesskey
101
+ }));
75
102
  });
76
103
  };
77
104
  /**
78
105
  * Remove client from list.
79
106
  */
80
- const removeClient = userAccesskey => {
81
- setClients(prev => {
82
- const next = Object.assign({}, prev);
107
+ var removeClient = function removeClient(userAccesskey) {
108
+ setClients(function (prev) {
109
+ var next = Object.assign({}, prev);
83
110
  delete next[userAccesskey];
84
111
  return next;
85
112
  });
@@ -87,32 +114,37 @@ const useUsercodeEditWebSocket = ({
87
114
  /**
88
115
  *
89
116
  */
90
- const updateCursor = (userAccesskey, cursor) => {
117
+ var updateCursor = function updateCursor(userAccesskey, cursor) {
91
118
  var _a;
92
119
  if (userAccesskey === ((_a = myself.current) === null || _a === void 0 ? void 0 : _a.accesskey)) {
93
120
  return;
94
121
  }
95
- setCursors(prev => Object.assign(Object.assign({}, prev), {
96
- [userAccesskey]: cursor
97
- }));
122
+ setCursors(function (prev) {
123
+ return Object.assign(Object.assign({}, prev), _defineProperty({}, userAccesskey, cursor));
124
+ });
98
125
  };
99
126
  /**
100
127
  *
101
128
  */
102
- const updateCursorFromOts = ots => {
103
- setCursors(Object.entries(cursors).map(([userAccesskey, cursor]) => ({
104
- [userAccesskey]: {
129
+ var updateCursorFromOts = function updateCursorFromOts(ots) {
130
+ setCursors(Object.entries(cursors).map(function (_ref6) {
131
+ var _ref7 = _slicedToArray(_ref6, 2),
132
+ userAccesskey = _ref7[0],
133
+ cursor = _ref7[1];
134
+ return _defineProperty({}, userAccesskey, {
105
135
  from: type.transformSelection(cursor.from, ots),
106
136
  to: type.transformSelection(cursor.to, ots)
107
- }
108
- })).reduce((prev, next) => Object.assign(Object.assign({}, prev), next), {}));
137
+ });
138
+ }).reduce(function (prev, next) {
139
+ return Object.assign(Object.assign({}, prev), next);
140
+ }, {}));
109
141
  };
110
142
  /**
111
143
  *
112
144
  */
113
- const removeCursor = userAccesskey => {
114
- setCursors(prev => {
115
- const next = Object.assign({}, prev);
145
+ var removeCursor = function removeCursor(userAccesskey) {
146
+ setCursors(function (prev) {
147
+ var next = Object.assign({}, prev);
116
148
  delete next[userAccesskey];
117
149
  return next;
118
150
  });
@@ -120,22 +152,39 @@ const useUsercodeEditWebSocket = ({
120
152
  //
121
153
  // Fetch client user info, whenever client list changed.
122
154
  //
123
- useDeepCompareEffect(() => {
155
+ useDeepCompareEffect(function () {
124
156
  void Promise.all(Object.entries(Object.assign({}, clients))
125
157
  // only user info not fetched...
126
- .filter(([, client]) => !client.fullname).map(([userAccesskey, client]) => getOrgUserGet({
127
- userId: client.id
128
- }).then(res => res.user).then(user => ({
129
- [userAccesskey]: Object.assign(Object.assign({}, client), {
130
- fullname: user.fullname,
131
- email: user.displayEmail
132
- })
133
- })).catch(() => ({
134
- [userAccesskey]: Object.assign(Object.assign({}, client), {
135
- fullname: `User ${client.id}`
136
- })
137
- })))).then(nextClientArr => nextClientArr.reduce((nextClients, client) => Object.assign(Object.assign({}, nextClients), client), {})).then(nextClients => {
138
- setClients(prev => Object.assign(Object.assign({}, prev), nextClients));
158
+ .filter(function (_ref9) {
159
+ var _ref10 = _slicedToArray(_ref9, 2),
160
+ client = _ref10[1];
161
+ return !client.fullname;
162
+ }).map(function (_ref11) {
163
+ var _ref12 = _slicedToArray(_ref11, 2),
164
+ userAccesskey = _ref12[0],
165
+ client = _ref12[1];
166
+ return getOrgUserGet({
167
+ userId: client.id
168
+ }).then(function (res) {
169
+ return res.user;
170
+ }).then(function (user) {
171
+ return _defineProperty({}, userAccesskey, Object.assign(Object.assign({}, client), {
172
+ fullname: user.fullname,
173
+ email: user.displayEmail
174
+ }));
175
+ }).catch(function () {
176
+ return _defineProperty({}, userAccesskey, Object.assign(Object.assign({}, client), {
177
+ fullname: "User ".concat(client.id)
178
+ }));
179
+ });
180
+ })).then(function (nextClientArr) {
181
+ return nextClientArr.reduce(function (nextClients, client) {
182
+ return Object.assign(Object.assign({}, nextClients), client);
183
+ }, {});
184
+ }).then(function (nextClients) {
185
+ setClients(function (prev) {
186
+ return Object.assign(Object.assign({}, prev), nextClients);
187
+ });
139
188
  });
140
189
  }, [clients]);
141
190
  //
@@ -144,7 +193,7 @@ const useUsercodeEditWebSocket = ({
144
193
  /**
145
194
  * Send `RESET`.
146
195
  */
147
- const sendReset = () => {
196
+ var sendReset = function sendReset() {
148
197
  var _a;
149
198
  (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.sendJson({
150
199
  type: 'RESET'
@@ -153,50 +202,55 @@ const useUsercodeEditWebSocket = ({
153
202
  /**
154
203
  * Send `FETCH`.
155
204
  */
156
- const sendFetch = useMemo(() => debounce(() => {
157
- var _a;
158
- (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.sendJson({
159
- type: 'FETCH',
160
- from: version.current
161
- });
162
- }, 1000), []);
205
+ var sendFetch = useMemo(function () {
206
+ return debounce(function () {
207
+ var _a;
208
+ (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.sendJson({
209
+ type: 'FETCH',
210
+ from: version.current
211
+ });
212
+ }, 1000);
213
+ }, []);
163
214
  /**
164
215
  * Send `WRITE`.
165
216
  */
166
- const sendWrite = useMemo(() => debounce(() => {
167
- var _a;
168
- if (otsBuffer.current.length === 0 || writeIndex.current !== 0) {
169
- return;
170
- }
171
- writeIndex.current = otsBuffer.current.length;
172
- let ots = otsBuffer.current[0];
173
- for (let i = 1; i < writeIndex.current; i++) {
174
- ots = type.compose(ots, otsBuffer.current[i]);
175
- }
176
- (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.sendJson({
177
- type: 'WRITE',
178
- to: version.current + 1,
179
- ots: ots
180
- });
181
- }, 100), []);
217
+ var sendWrite = useMemo(function () {
218
+ return debounce(function () {
219
+ var _a;
220
+ if (otsBuffer.current.length === 0 || writeIndex.current !== 0) {
221
+ return;
222
+ }
223
+ writeIndex.current = otsBuffer.current.length;
224
+ var ots = otsBuffer.current[0];
225
+ for (var i = 1; i < writeIndex.current; i++) {
226
+ ots = type.compose(ots, otsBuffer.current[i]);
227
+ }
228
+ (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.sendJson({
229
+ type: 'WRITE',
230
+ to: version.current + 1,
231
+ ots: ots
232
+ });
233
+ }, 100);
234
+ }, []);
182
235
  /**
183
236
  * Send `CURSOR`.
184
237
  */
185
- const sendCursor = useMemo(() => debounce(({
186
- from,
187
- to
188
- }) => {
189
- var _a;
190
- (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.sendJson({
191
- type: 'CURSOR',
192
- cursor_start: from,
193
- cursor_end: to
194
- });
195
- }, 500), []);
238
+ var sendCursor = useMemo(function () {
239
+ return debounce(function (_ref15) {
240
+ var from = _ref15.from,
241
+ to = _ref15.to;
242
+ var _a;
243
+ (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.sendJson({
244
+ type: 'CURSOR',
245
+ cursor_start: from,
246
+ cursor_end: to
247
+ });
248
+ }, 500);
249
+ }, []);
196
250
  /**
197
251
  * Send OTs.
198
252
  */
199
- const sendOTs = useCallback(ots => {
253
+ var sendOTs = useCallback(function (ots) {
200
254
  setDoc(type.apply(_doc.current, ots));
201
255
  _doc.current = type.apply(_doc.current, ots);
202
256
  otsBuffer.current.push(ots);
@@ -208,20 +262,20 @@ const useUsercodeEditWebSocket = ({
208
262
  /**
209
263
  *
210
264
  */
211
- const usercodeApply = (newVersion, ots) => {
265
+ var usercodeApply = function usercodeApply(newVersion, ots) {
212
266
  version.current = newVersion;
213
- let conflictOts = [];
214
- for (let i = 0; i < otsBuffer.current.length; i++) {
267
+ var conflictOts = [];
268
+ for (var i = 0; i < otsBuffer.current.length; i++) {
215
269
  conflictOts = type.compose(conflictOts, otsBuffer.current[i]);
216
270
  }
217
- const localOts = conflictOts.length > 0 ? type.transform(ots, conflictOts, 'left') : ots;
271
+ var localOts = conflictOts.length > 0 ? type.transform(ots, conflictOts, 'left') : ots;
218
272
  onWriteNoti(localOts, false);
219
273
  setDoc(type.apply(_doc.current, localOts));
220
274
  _doc.current = type.apply(_doc.current, localOts);
221
275
  if (conflictOts.length > 0) {
222
276
  // update ots buffer
223
- for (let i = 0; i < otsBuffer.current.length - 1; i++) {
224
- otsBuffer.current[i] = [];
277
+ for (var _i = 0; _i < otsBuffer.current.length - 1; _i++) {
278
+ otsBuffer.current[_i] = [];
225
279
  }
226
280
  otsBuffer.current[otsBuffer.current.length - 1] = type.transform(conflictOts, ots, 'right');
227
281
  }
@@ -235,7 +289,7 @@ const useUsercodeEditWebSocket = ({
235
289
  /**
236
290
  * Websocket on open.
237
291
  */
238
- const wsOpen = () => {
292
+ var wsOpen = function wsOpen() {
239
293
  if (websocket.current) {
240
294
  setWebSocketReadyState(websocket.current.readyState);
241
295
  }
@@ -243,7 +297,7 @@ const useUsercodeEditWebSocket = ({
243
297
  /**
244
298
  * Websocket on close.
245
299
  */
246
- const wsClose = () => {
300
+ var wsClose = function wsClose() {
247
301
  _stopMonkey();
248
302
  if (websocket.current) {
249
303
  setWebSocketReadyState(websocket.current.readyState);
@@ -252,7 +306,7 @@ const useUsercodeEditWebSocket = ({
252
306
  /**
253
307
  * Websocket on error.
254
308
  */
255
- const wsError = () => {
309
+ var wsError = function wsError() {
256
310
  if (websocket.current) {
257
311
  setWebSocketReadyState(websocket.current.readyState);
258
312
  }
@@ -260,8 +314,8 @@ const useUsercodeEditWebSocket = ({
260
314
  /**
261
315
  * Websocket on message.
262
316
  */
263
- const wsMessage = e => {
264
- const msg = camelizeKeys(e.data);
317
+ var wsMessage = function wsMessage(e) {
318
+ var msg = camelizeKeys(e.data);
265
319
  switch (msg.type) {
266
320
  case 'INIT':
267
321
  wsMessageInit(msg);
@@ -292,7 +346,7 @@ const useUsercodeEditWebSocket = ({
292
346
  /**
293
347
  * Websocket on `INIT` message.
294
348
  */
295
- const wsMessageInit = msg => {
349
+ var wsMessageInit = function wsMessageInit(msg) {
296
350
  setDocEditable(true);
297
351
  myself.current = {
298
352
  userId: msg.userId,
@@ -304,7 +358,7 @@ const useUsercodeEditWebSocket = ({
304
358
  writeFailCount.current = 0;
305
359
  // TODO: set unix mode on both editors.
306
360
  // editor.getSession().getDocument().setNewLineMode('unix');
307
- const convertedContent = msg.content.replace(/\r\n/g, '\n');
361
+ var convertedContent = msg.content.replace(/\r\n/g, '\n');
308
362
  setDoc(convertedContent);
309
363
  _doc.current = convertedContent;
310
364
  onInit(convertedContent);
@@ -319,22 +373,25 @@ const useUsercodeEditWebSocket = ({
319
373
  /**
320
374
  * Websocket on `ENTER` message.
321
375
  */
322
- const wsMessageEnter = msg => {
323
- const [userId, userAccesskey] = msg.client;
376
+ var wsMessageEnter = function wsMessageEnter(msg) {
377
+ var _msg$client = _slicedToArray(msg.client, 2),
378
+ userId = _msg$client[0],
379
+ userAccesskey = _msg$client[1];
324
380
  updateClient(userAccesskey, userId);
325
381
  };
326
382
  /**
327
383
  * Websocket on `LEAVE` message.
328
384
  */
329
- const wsMessageLeave = msg => {
330
- const [, userAccesskey] = msg.client;
385
+ var wsMessageLeave = function wsMessageLeave(msg) {
386
+ var _msg$client2 = _slicedToArray(msg.client, 2),
387
+ userAccesskey = _msg$client2[1];
331
388
  removeClient(userAccesskey);
332
389
  removeCursor(userAccesskey);
333
390
  };
334
391
  /**
335
392
  * Websocket on `UPDATE` message.
336
393
  */
337
- const wsMessageUpdate = msg => {
394
+ var wsMessageUpdate = function wsMessageUpdate(msg) {
338
395
  if (msg.from === version.current) {
339
396
  usercodeApply(msg.version, msg.ots);
340
397
  } else if (msg.from < version.current) {
@@ -344,7 +401,7 @@ const useUsercodeEditWebSocket = ({
344
401
  /**
345
402
  * Websocket on `WRITE_FAILED` message.
346
403
  */
347
- const wsMessageWriteFailed = msg => {
404
+ var wsMessageWriteFailed = function wsMessageWriteFailed(msg) {
348
405
  writeIndex.current = 0;
349
406
  writeFailCount.current += 1;
350
407
  if (MAX_WRITE_FAIL_COUNT < writeFailCount.current) {
@@ -356,7 +413,7 @@ const useUsercodeEditWebSocket = ({
356
413
  /**
357
414
  * Websocket on `WRITE_SUCCEED` message.
358
415
  */
359
- const wsMessageWriteSucceed = msg => {
416
+ var wsMessageWriteSucceed = function wsMessageWriteSucceed(msg) {
360
417
  version.current = msg.version;
361
418
  otsBuffer.current.splice(0, writeIndex.current);
362
419
  writeIndex.current = 0;
@@ -366,7 +423,7 @@ const useUsercodeEditWebSocket = ({
366
423
  /**
367
424
  * Websocket on `WRITE_NOTI` message.
368
425
  */
369
- const wsMessageWriteNoti = msg => {
426
+ var wsMessageWriteNoti = function wsMessageWriteNoti(msg) {
370
427
  if (version.current + 1 === msg.version) {
371
428
  usercodeApply(msg.version, msg.ots);
372
429
  } else if (version.current < msg.version) {
@@ -376,8 +433,10 @@ const useUsercodeEditWebSocket = ({
376
433
  /**
377
434
  * Websocket on `CURSOR_NOTI` message.
378
435
  */
379
- const wsMessageCursorNoti = msg => {
380
- const [userId, userAccesskey] = msg.client;
436
+ var wsMessageCursorNoti = function wsMessageCursorNoti(msg) {
437
+ var _msg$client3 = _slicedToArray(msg.client, 2),
438
+ userId = _msg$client3[0],
439
+ userAccesskey = _msg$client3[1];
381
440
  updateClient(userAccesskey, userId);
382
441
  updateCursor(userAccesskey, {
383
442
  from: msg.cursorStart,
@@ -387,26 +446,40 @@ const useUsercodeEditWebSocket = ({
387
446
  /**
388
447
  * Create usercode websocket url.
389
448
  */
390
- const createUsercodeUrl = useCallback(async () => {
391
- if (!filename) {
392
- throw new Error('filename is not defined');
393
- }
394
- const url = `${apiWsOriginUrl}/usercode_edit`;
395
- return postOrgMaterialExerciseUsercodeEdit({
396
- exerciseRoomId,
397
- filename
398
- }).then(data => `${url}/${data.accesskey}`).catch(err => {
399
- var _a, _b;
400
- if (((_a = err.detail) === null || _a === void 0 ? void 0 : _a.failCode) === 'non_editable_file') {
401
- setDocEditable(false);
449
+ var createUsercodeUrl = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
450
+ var url;
451
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
452
+ while (1) switch (_context.prev = _context.next) {
453
+ case 0:
454
+ if (filename) {
455
+ _context.next = 2;
456
+ break;
457
+ }
458
+ throw new Error('filename is not defined');
459
+ case 2:
460
+ url = "".concat(apiWsOriginUrl, "/usercode_edit");
461
+ return _context.abrupt("return", postOrgMaterialExerciseUsercodeEdit({
462
+ exerciseRoomId: exerciseRoomId,
463
+ filename: filename
464
+ }).then(function (data) {
465
+ return "".concat(url, "/").concat(data.accesskey);
466
+ }).catch(function (err) {
467
+ var _a, _b;
468
+ if (((_a = err.detail) === null || _a === void 0 ? void 0 : _a.failCode) === 'non_editable_file') {
469
+ setDocEditable(false);
470
+ }
471
+ throw new Error(((_b = err.detail) === null || _b === void 0 ? void 0 : _b.failMessage) || err.message);
472
+ }));
473
+ case 4:
474
+ case "end":
475
+ return _context.stop();
402
476
  }
403
- throw new Error(((_b = err.detail) === null || _b === void 0 ? void 0 : _b.failMessage) || err.message);
404
- });
405
- }, [apiWsOriginUrl, exerciseRoomId, filename]);
477
+ }, _callee);
478
+ })), [apiWsOriginUrl, exerciseRoomId, filename]);
406
479
  //
407
480
  // Initialize websocket.
408
481
  //
409
- useEffect(() => {
482
+ useEffect(function () {
410
483
  if (!isReady) {
411
484
  return;
412
485
  }
@@ -415,7 +488,7 @@ const useUsercodeEditWebSocket = ({
415
488
  websocket.current.onclose = wsClose;
416
489
  websocket.current.onmessage = wsMessage;
417
490
  websocket.current.onerror = wsError;
418
- return () => {
491
+ return function () {
419
492
  if (websocket.current) {
420
493
  websocket.current.close();
421
494
  }
@@ -430,20 +503,20 @@ const useUsercodeEditWebSocket = ({
430
503
  * Make monkey jump.
431
504
  * @note only for testing
432
505
  */
433
- const _monkeyAgentDoJump = useCallback(() => {
434
- const getRandomInt = function (max) {
506
+ var _monkeyAgentDoJump = useCallback(function () {
507
+ var getRandomInt = function getRandomInt(max) {
435
508
  return Math.floor(Math.random() * max);
436
509
  };
437
- const emojis = ['๐Ÿฆ', '๐Ÿ™ˆ', '๐Ÿ™‰', '๐Ÿ™Š', '๐Ÿต', '๐Ÿ’', '๐Ÿฆน๐Ÿผ', '๐Ÿง›๐Ÿพ', '๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ'];
438
- const getRandomEmoji = () => {
510
+ var emojis = ['๐Ÿฆ', '๐Ÿ™ˆ', '๐Ÿ™‰', '๐Ÿ™Š', '๐Ÿต', '๐Ÿ’', '๐Ÿฆน๐Ÿผ', '๐Ÿง›๐Ÿพ', '๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ'];
511
+ var getRandomEmoji = function getRandomEmoji() {
439
512
  return emojis[getRandomInt(emojis.length)];
440
513
  };
441
- const uniTextLength = uniCount(_doc.current);
442
- const uniPos = Math.floor(Math.random() * uniTextLength);
514
+ var uniTextLength = uniCount(_doc.current);
515
+ var uniPos = Math.floor(Math.random() * uniTextLength);
443
516
  // add text
444
517
  if (Math.random() < 0.5) {
445
- const randomNumber = Math.random();
446
- let text = '';
518
+ var randomNumber = Math.random();
519
+ var text = '';
447
520
  if (randomNumber < 1 / 3) {
448
521
  text = getRandomEmoji();
449
522
  } else if (randomNumber < 2 / 3) {
@@ -455,7 +528,7 @@ const useUsercodeEditWebSocket = ({
455
528
  }
456
529
  // delete text
457
530
  else {
458
- let uniTextTo = uniPos + getRandomInt(10);
531
+ var uniTextTo = uniPos + getRandomInt(10);
459
532
  if (uniTextTo >= uniTextLength) {
460
533
  uniTextTo = uniTextLength - 1;
461
534
  }
@@ -463,7 +536,9 @@ const useUsercodeEditWebSocket = ({
463
536
  d: _doc.current.slice(uniToStrPos(_doc.current, uniPos), uniToStrPos(_doc.current, uniTextTo))
464
537
  }], true);
465
538
  }
466
- setNumMonkeyJumped(mj => mj + 1);
539
+ setNumMonkeyJumped(function (mj) {
540
+ return mj + 1;
541
+ });
467
542
  },
468
543
  // eslint-disable-next-line react-hooks/exhaustive-deps
469
544
  []);
@@ -471,7 +546,7 @@ const useUsercodeEditWebSocket = ({
471
546
  * Make monkey jump.
472
547
  * @note only for testing
473
548
  */
474
- const _startMonkey = useCallback(() => {
549
+ var _startMonkey = useCallback(function () {
475
550
  setNumMonkeyJumped(0);
476
551
  _setMonkeyAgent(window.setInterval(_monkeyAgentDoJump, 500));
477
552
  },
@@ -481,7 +556,7 @@ const useUsercodeEditWebSocket = ({
481
556
  * Stop monkey jump.
482
557
  * @note only for testing
483
558
  */
484
- const _stopMonkey = useCallback(() => {
559
+ var _stopMonkey = useCallback(function () {
485
560
  if (_monkeyAgent) {
486
561
  window.clearInterval(_monkeyAgent);
487
562
  _setMonkeyAgent(0);