@elice/material-exercise 1.240718.0-trasncript.2 โ†’ 1.240718.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/cjs/assets/empty.png.js +2 -1
  2. package/cjs/components/material-exercise/MaterialExercise.d.ts +1 -1
  3. package/cjs/components/material-exercise/MaterialExercise.js +75 -111
  4. package/cjs/components/material-exercise/MaterialExercise.styled.js +14 -18
  5. package/cjs/components/material-exercise/MaterialExerciseMobile.d.ts +1 -1
  6. package/cjs/components/material-exercise/MaterialExerciseMobile.js +7 -17
  7. package/cjs/components/material-exercise/context/ExerciseProvider.js +58 -68
  8. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +30 -39
  9. package/cjs/components/material-exercise/context/context.js +1 -5
  10. package/cjs/components/material-exercise/context/recoil.js +293 -542
  11. package/cjs/components/material-exercise/context/subjects.js +4 -4
  12. package/cjs/components/material-exercise/context/types.d.ts +2 -2
  13. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -100
  14. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -12
  15. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +27 -30
  16. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +149 -225
  17. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +13 -20
  18. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +29 -49
  19. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.d.ts +2 -1
  20. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +4 -10
  21. package/cjs/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/ExerciseFileTabsFileTreeButton.js +36 -53
  22. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +211 -353
  23. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.d.ts +2 -1
  24. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +4 -10
  25. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +15 -18
  26. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +12 -21
  27. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +11 -12
  28. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +80 -123
  29. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +67 -100
  30. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +22 -40
  31. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +119 -144
  32. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +13 -17
  33. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +19 -32
  34. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.d.ts +2 -1
  35. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +4 -10
  36. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +24 -31
  37. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +6 -13
  38. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +35 -51
  39. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +6 -14
  40. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +78 -90
  41. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +12 -25
  42. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -18
  43. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +349 -504
  44. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +132 -197
  45. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
  46. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +142 -205
  47. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -5
  48. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +16 -25
  49. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +86 -118
  50. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +19 -33
  51. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +82 -95
  52. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +52 -68
  53. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +87 -136
  54. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -6
  55. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +15 -21
  56. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +23 -36
  57. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +248 -402
  58. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -12
  59. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +50 -74
  60. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +23 -32
  61. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +38 -44
  62. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +20 -26
  63. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +8 -14
  64. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +22 -28
  65. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +9 -24
  66. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -6
  67. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -5
  68. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +10 -10
  69. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -13
  70. package/cjs/components/shared/file-icon/FileIcon.js +16 -23
  71. package/cjs/components/shared/file-tabs/FileTab.js +33 -47
  72. package/cjs/components/shared/file-tabs/FileTab.styled.js +15 -23
  73. package/cjs/components/shared/file-tabs/FileTabs.js +39 -66
  74. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -6
  75. package/cjs/components/shared/file-tabs/util.js +14 -27
  76. package/cjs/components/shared/file-tree/FileTree.js +10 -20
  77. package/cjs/components/shared/file-tree/FileTreeConfig.js +40 -46
  78. package/cjs/components/shared/file-tree/FileTreeList.js +40 -43
  79. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +99 -128
  80. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -29
  81. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +96 -106
  82. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -10
  83. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +91 -133
  84. package/cjs/components/shared/file-tree/FileTreeListItems.js +137 -149
  85. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -6
  86. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -5
  87. package/cjs/components/shared/file-tree/context/FileTreeContext.d.ts +1 -1
  88. package/cjs/components/shared/file-tree/context/FileTreeContext.js +79 -101
  89. package/cjs/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +54 -59
  90. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -24
  91. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +146 -193
  92. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -11
  93. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  94. package/cjs/components/shared/file-tree/utils/fileTreePath.js +6 -5
  95. package/cjs/components/shared/file-viewer/FileViewer.js +46 -76
  96. package/cjs/components/shared/file-viewer/FileViewerCsv.js +167 -262
  97. package/cjs/components/shared/file-viewer/FileViewerImage.js +12 -16
  98. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +11 -27
  99. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +47 -65
  100. package/cjs/components/shared/file-viewer/FileViewerText.js +11 -23
  101. package/cjs/components/shared/material-modal/MaterialModal.js +11 -20
  102. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -9
  103. package/cjs/components/shared/monaco-editor/MonacoEditor.js +74 -102
  104. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +7 -15
  105. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +34 -49
  106. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +194 -249
  107. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +28 -82
  108. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
  109. package/cjs/components/shared/monaco-editor/constants/themes/index.js +17 -49
  110. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -11
  111. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -15
  112. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  113. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -34
  114. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -9
  115. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
  116. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +10 -33
  117. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +2 -3
  118. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +10 -33
  119. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +2 -3
  120. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  121. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +10 -37
  122. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +5 -6
  123. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -11
  124. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -10
  125. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -12
  126. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +24 -67
  127. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -25
  128. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +37 -70
  129. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +7 -8
  130. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +4 -6
  131. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -2
  132. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +7 -27
  133. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +14 -24
  134. package/cjs/components/shared/monaco-editor/utils/theme/index.js +3 -22
  135. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -77
  136. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -82
  137. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -120
  138. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +132 -155
  139. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -104
  140. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  141. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -1
  142. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
  143. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +158 -177
  144. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
  145. package/cjs/components/shared/no-vnc/NoVnc.js +78 -118
  146. package/cjs/components/shared/no-vnc/NoVncLazy.js +7 -15
  147. package/cjs/components/shared/preview-container/PreviewContainer.js +13 -18
  148. package/cjs/components/shared/web-browser/WebBrowser.js +52 -74
  149. package/cjs/components/shared/xterm/Xterm.js +57 -82
  150. package/cjs/components/shared/xterm/XtermLazy.js +7 -15
  151. package/cjs/constants/arduino.js +10 -10
  152. package/cjs/constants/color.js +1 -1
  153. package/cjs/constants/shortcutKeyMap.js +1 -3
  154. package/cjs/constants/stylesheets.js +5 -7
  155. package/cjs/hooks/useArduino.js +141 -282
  156. package/cjs/hooks/useExerciseFile.js +22 -24
  157. package/cjs/hooks/useExericseShortcut.js +4 -6
  158. package/cjs/hooks/useMaterialExerciseFileUrl.js +33 -55
  159. package/cjs/hooks/useRunnerRoomWebSocket.js +27 -51
  160. package/cjs/hooks/useStdioTextConcator.js +11 -15
  161. package/cjs/hooks/useStdioWebSocket.js +28 -32
  162. package/cjs/hooks/useUsercodeEditWebSocket.js +158 -238
  163. package/cjs/hooks/useUsercodeHistory.js +63 -115
  164. package/cjs/utils/arduino.js +11 -23
  165. package/cjs/utils/exerciseFile.js +10 -8
  166. package/cjs/utils/runner.js +17 -33
  167. package/es/assets/empty.png.js +2 -1
  168. package/es/components/material-exercise/MaterialExercise.d.ts +1 -1
  169. package/es/components/material-exercise/MaterialExercise.js +75 -107
  170. package/es/components/material-exercise/MaterialExercise.styled.js +14 -14
  171. package/es/components/material-exercise/MaterialExerciseMobile.d.ts +1 -1
  172. package/es/components/material-exercise/MaterialExerciseMobile.js +7 -13
  173. package/es/components/material-exercise/context/ExerciseProvider.js +58 -63
  174. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +30 -35
  175. package/es/components/material-exercise/context/context.js +1 -1
  176. package/es/components/material-exercise/context/recoil.js +290 -535
  177. package/es/components/material-exercise/context/subjects.js +4 -4
  178. package/es/components/material-exercise/context/types.d.ts +2 -2
  179. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -95
  180. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  181. package/es/components/material-exercise/exercise-file/ExerciseFile.js +27 -25
  182. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +149 -221
  183. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +13 -15
  184. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +29 -44
  185. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.d.ts +2 -1
  186. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +4 -6
  187. package/es/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/ExerciseFileTabsFileTreeButton.js +36 -48
  188. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +211 -348
  189. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.d.ts +2 -1
  190. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +4 -6
  191. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +15 -14
  192. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +12 -16
  193. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +11 -12
  194. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +80 -119
  195. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +67 -96
  196. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +23 -41
  197. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +122 -143
  198. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +13 -13
  199. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +19 -28
  200. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.d.ts +2 -1
  201. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +4 -6
  202. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +24 -26
  203. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +7 -14
  204. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +35 -47
  205. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +6 -10
  206. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +78 -85
  207. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +12 -21
  208. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -14
  209. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +349 -498
  210. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +133 -193
  211. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
  212. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +142 -200
  213. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  214. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +16 -20
  215. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +85 -112
  216. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +20 -30
  217. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +82 -90
  218. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +52 -63
  219. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +87 -131
  220. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -2
  221. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +15 -17
  222. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +23 -31
  223. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +250 -399
  224. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  225. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +49 -68
  226. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +24 -29
  227. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +38 -40
  228. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +20 -22
  229. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +8 -10
  230. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +22 -24
  231. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +9 -19
  232. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +5 -6
  233. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  234. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +10 -10
  235. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -9
  236. package/es/components/shared/file-icon/FileIcon.js +16 -19
  237. package/es/components/shared/file-tabs/FileTab.js +33 -43
  238. package/es/components/shared/file-tabs/FileTab.styled.js +15 -19
  239. package/es/components/shared/file-tabs/FileTabs.js +40 -62
  240. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  241. package/es/components/shared/file-tabs/util.js +14 -27
  242. package/es/components/shared/file-tree/FileTree.js +10 -16
  243. package/es/components/shared/file-tree/FileTreeConfig.js +39 -39
  244. package/es/components/shared/file-tree/FileTreeList.js +40 -38
  245. package/es/components/shared/file-tree/FileTreeListItemContent.js +99 -124
  246. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -25
  247. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +96 -102
  248. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  249. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +91 -129
  250. package/es/components/shared/file-tree/FileTreeListItems.js +137 -149
  251. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  252. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  253. package/es/components/shared/file-tree/context/FileTreeContext.d.ts +1 -1
  254. package/es/components/shared/file-tree/context/FileTreeContext.js +79 -97
  255. package/es/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +54 -55
  256. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -20
  257. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +146 -193
  258. package/es/components/shared/file-tree/utils/fileTreeInput.js +1 -11
  259. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  260. package/es/components/shared/file-tree/utils/fileTreePath.js +6 -5
  261. package/es/components/shared/file-viewer/FileViewer.js +46 -69
  262. package/es/components/shared/file-viewer/FileViewerCsv.js +167 -257
  263. package/es/components/shared/file-viewer/FileViewerImage.js +12 -12
  264. package/es/components/shared/file-viewer/FileViewerIpynb.js +11 -21
  265. package/es/components/shared/file-viewer/FileViewerNonViewable.js +47 -60
  266. package/es/components/shared/file-viewer/FileViewerText.js +11 -19
  267. package/es/components/shared/material-modal/MaterialModal.js +11 -20
  268. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  269. package/es/components/shared/monaco-editor/MonacoEditor.js +72 -95
  270. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +7 -11
  271. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +32 -43
  272. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +194 -244
  273. package/es/components/shared/monaco-editor/constants/grammars/index.js +28 -82
  274. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
  275. package/es/components/shared/monaco-editor/constants/themes/index.js +17 -49
  276. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -11
  277. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -15
  278. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  279. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -34
  280. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -9
  281. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
  282. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +10 -33
  283. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +10 -33
  284. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  285. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +10 -37
  286. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +3 -3
  287. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -11
  288. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -10
  289. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -12
  290. package/es/components/shared/monaco-editor/utils/grammar/index.js +24 -67
  291. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -25
  292. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +35 -67
  293. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +5 -5
  294. package/es/components/shared/monaco-editor/utils/monacoPreference.js +4 -6
  295. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -2
  296. package/es/components/shared/monaco-editor/utils/prettier/index.js +7 -27
  297. package/es/components/shared/monaco-editor/utils/theme/convert.js +13 -19
  298. package/es/components/shared/monaco-editor/utils/theme/index.js +3 -22
  299. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -77
  300. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -82
  301. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -120
  302. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +130 -152
  303. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -104
  304. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  305. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -1
  306. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
  307. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +156 -171
  308. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
  309. package/es/components/shared/no-vnc/NoVnc.js +71 -99
  310. package/es/components/shared/no-vnc/NoVncLazy.js +7 -11
  311. package/es/components/shared/preview-container/PreviewContainer.js +14 -15
  312. package/es/components/shared/web-browser/WebBrowser.js +52 -69
  313. package/es/components/shared/xterm/Xterm.js +57 -77
  314. package/es/components/shared/xterm/XtermLazy.js +7 -11
  315. package/es/constants/arduino.js +10 -10
  316. package/es/constants/color.js +1 -1
  317. package/es/constants/shortcutKeyMap.js +1 -3
  318. package/es/constants/stylesheets.js +5 -7
  319. package/es/hooks/useArduino.js +141 -278
  320. package/es/hooks/useExerciseFile.js +22 -24
  321. package/es/hooks/useExericseShortcut.js +4 -6
  322. package/es/hooks/useMaterialExerciseFileUrl.js +34 -52
  323. package/es/hooks/useRunnerRoomWebSocket.js +27 -51
  324. package/es/hooks/useStdioTextConcator.js +11 -11
  325. package/es/hooks/useStdioWebSocket.js +28 -32
  326. package/es/hooks/useUsercodeEditWebSocket.js +157 -232
  327. package/es/hooks/useUsercodeHistory.js +63 -115
  328. package/es/utils/arduino.js +12 -24
  329. package/es/utils/exerciseFile.js +10 -8
  330. package/es/utils/runner.js +17 -33
  331. package/package.json +15 -11
  332. package/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -519
  333. package/cjs/components/index.js +0 -25
  334. package/cjs/components/locales/index.js +0 -13
  335. package/cjs/components/material-exercise/context/index.js +0 -57
  336. package/cjs/components/material-exercise/exercise-code-history/index.js +0 -7
  337. package/cjs/components/material-exercise/exercise-code-history/locales/index.js +0 -13
  338. package/cjs/components/material-exercise/exercise-file/index.js +0 -7
  339. package/cjs/components/material-exercise/exercise-file-editor/index.js +0 -7
  340. package/cjs/components/material-exercise/exercise-file-editor/locales/index.js +0 -13
  341. package/cjs/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/index.js +0 -7
  342. package/cjs/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/locales/index.js +0 -13
  343. package/cjs/components/material-exercise/exercise-file-tabs/index.js +0 -9
  344. package/cjs/components/material-exercise/exercise-file-tabs/locales/index.js +0 -13
  345. package/cjs/components/material-exercise/exercise-file-tree/index.js +0 -9
  346. package/cjs/components/material-exercise/exercise-file-tree/locales/index.js +0 -13
  347. package/cjs/components/material-exercise/exercise-file-viewer/index.js +0 -7
  348. package/cjs/components/material-exercise/exercise-menu/index.js +0 -7
  349. package/cjs/components/material-exercise/exercise-menu/locales/index.js +0 -13
  350. package/cjs/components/material-exercise/exercise-multilang-dropdown/index.js +0 -9
  351. package/cjs/components/material-exercise/exercise-preview/index.js +0 -7
  352. package/cjs/components/material-exercise/exercise-preview/locales/index.js +0 -13
  353. package/cjs/components/material-exercise/exercise-rightpane/index.js +0 -7
  354. package/cjs/components/material-exercise/exercise-rightpane/locales/index.js +0 -13
  355. package/cjs/components/material-exercise/exercise-room/helpers/index.js +0 -7
  356. package/cjs/components/material-exercise/exercise-room/index.js +0 -7
  357. package/cjs/components/material-exercise/exercise-room/locales/index.js +0 -13
  358. package/cjs/components/material-exercise/exercise-runner/index.js +0 -7
  359. package/cjs/components/material-exercise/exercise-runner/locales/index.js +0 -13
  360. package/cjs/components/material-exercise/exercise-submit-history/index.js +0 -7
  361. package/cjs/components/material-exercise/exercise-submit-history/locales/index.js +0 -13
  362. package/cjs/components/material-exercise/index.js +0 -9
  363. package/cjs/components/shared/exercise-menu-button/index.js +0 -7
  364. package/cjs/components/shared/exercise-shimmer/index.js +0 -15
  365. package/cjs/components/shared/exercise-version-list/index.js +0 -9
  366. package/cjs/components/shared/file-icon/index.js +0 -7
  367. package/cjs/components/shared/file-tabs/index.js +0 -7
  368. package/cjs/components/shared/file-tree/context/index.js +0 -9
  369. package/cjs/components/shared/file-tree/file-tree-toolbar/index.js +0 -7
  370. package/cjs/components/shared/file-tree/file-tree-toolbar/locales/index.js +0 -13
  371. package/cjs/components/shared/file-tree/index.js +0 -7
  372. package/cjs/components/shared/file-tree/locales/index.js +0 -13
  373. package/cjs/components/shared/file-tree/utils/index.js +0 -20
  374. package/cjs/components/shared/file-viewer/index.js +0 -7
  375. package/cjs/components/shared/file-viewer/locales/index.js +0 -21
  376. package/cjs/components/shared/material-modal/index.js +0 -7
  377. package/cjs/components/shared/monaco-editor/constants/index.js +0 -13
  378. package/cjs/components/shared/monaco-editor/constants/monaco/index.js +0 -11
  379. package/cjs/components/shared/monaco-editor/editor-hooks/index.js +0 -17
  380. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/index.js +0 -11
  381. package/cjs/components/shared/monaco-editor/hooks/index.js +0 -7
  382. package/cjs/components/shared/monaco-editor/index.js +0 -21
  383. package/cjs/components/shared/monaco-editor/locales/index.js +0 -13
  384. package/cjs/components/shared/monaco-editor/utils/emmet/index.js +0 -9
  385. package/cjs/components/shared/monaco-editor/utils/index.js +0 -9
  386. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/index.js +0 -12
  387. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/index.js +0 -11
  388. package/cjs/components/shared/no-vnc/index.js +0 -7
  389. package/cjs/components/shared/preview-container/index.js +0 -9
  390. package/cjs/components/shared/web-browser/index.js +0 -7
  391. package/cjs/components/shared/xterm/index.js +0 -7
  392. package/cjs/components/shared/xterm/locales/index.js +0 -13
  393. package/cjs/constants/index.js +0 -7
  394. package/cjs/hooks/index.js +0 -20
  395. package/cjs/utils/index.js +0 -10
  396. package/es/_virtual/_rollupPluginBabelHelpers.js +0 -499
  397. package/es/components/index.js +0 -8
  398. package/es/components/locales/index.js +0 -4
  399. package/es/components/material-exercise/context/index.js +0 -5
  400. package/es/components/material-exercise/exercise-code-history/index.js +0 -1
  401. package/es/components/material-exercise/exercise-code-history/locales/index.js +0 -4
  402. package/es/components/material-exercise/exercise-file/index.js +0 -1
  403. package/es/components/material-exercise/exercise-file-editor/index.js +0 -1
  404. package/es/components/material-exercise/exercise-file-editor/locales/index.js +0 -4
  405. package/es/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/index.js +0 -1
  406. package/es/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/locales/index.js +0 -4
  407. package/es/components/material-exercise/exercise-file-tabs/index.js +0 -2
  408. package/es/components/material-exercise/exercise-file-tabs/locales/index.js +0 -4
  409. package/es/components/material-exercise/exercise-file-tree/index.js +0 -2
  410. package/es/components/material-exercise/exercise-file-tree/locales/index.js +0 -4
  411. package/es/components/material-exercise/exercise-file-viewer/index.js +0 -1
  412. package/es/components/material-exercise/exercise-menu/index.js +0 -1
  413. package/es/components/material-exercise/exercise-menu/locales/index.js +0 -4
  414. package/es/components/material-exercise/exercise-multilang-dropdown/index.js +0 -2
  415. package/es/components/material-exercise/exercise-preview/index.js +0 -1
  416. package/es/components/material-exercise/exercise-preview/locales/index.js +0 -4
  417. package/es/components/material-exercise/exercise-rightpane/index.js +0 -1
  418. package/es/components/material-exercise/exercise-rightpane/locales/index.js +0 -4
  419. package/es/components/material-exercise/exercise-room/helpers/index.js +0 -1
  420. package/es/components/material-exercise/exercise-room/index.js +0 -1
  421. package/es/components/material-exercise/exercise-room/locales/index.js +0 -4
  422. package/es/components/material-exercise/exercise-runner/index.js +0 -1
  423. package/es/components/material-exercise/exercise-runner/locales/index.js +0 -4
  424. package/es/components/material-exercise/exercise-submit-history/index.js +0 -1
  425. package/es/components/material-exercise/exercise-submit-history/locales/index.js +0 -4
  426. package/es/components/material-exercise/index.js +0 -2
  427. package/es/components/shared/exercise-menu-button/index.js +0 -1
  428. package/es/components/shared/exercise-shimmer/index.js +0 -5
  429. package/es/components/shared/exercise-version-list/index.js +0 -2
  430. package/es/components/shared/file-icon/index.js +0 -1
  431. package/es/components/shared/file-tabs/index.js +0 -1
  432. package/es/components/shared/file-tree/context/index.js +0 -1
  433. package/es/components/shared/file-tree/file-tree-toolbar/index.js +0 -1
  434. package/es/components/shared/file-tree/file-tree-toolbar/locales/index.js +0 -4
  435. package/es/components/shared/file-tree/index.js +0 -1
  436. package/es/components/shared/file-tree/locales/index.js +0 -4
  437. package/es/components/shared/file-tree/utils/index.js +0 -5
  438. package/es/components/shared/file-viewer/index.js +0 -1
  439. package/es/components/shared/file-viewer/locales/index.js +0 -8
  440. package/es/components/shared/material-modal/index.js +0 -1
  441. package/es/components/shared/monaco-editor/constants/index.js +0 -2
  442. package/es/components/shared/monaco-editor/constants/monaco/index.js +0 -1
  443. package/es/components/shared/monaco-editor/editor-hooks/index.js +0 -6
  444. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/index.js +0 -3
  445. package/es/components/shared/monaco-editor/hooks/index.js +0 -1
  446. package/es/components/shared/monaco-editor/index.js +0 -6
  447. package/es/components/shared/monaco-editor/locales/index.js +0 -4
  448. package/es/components/shared/monaco-editor/utils/emmet/index.js +0 -1
  449. package/es/components/shared/monaco-editor/utils/index.js +0 -2
  450. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/index.js +0 -3
  451. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/index.js +0 -2
  452. package/es/components/shared/no-vnc/index.js +0 -1
  453. package/es/components/shared/preview-container/index.js +0 -1
  454. package/es/components/shared/web-browser/index.js +0 -1
  455. package/es/components/shared/xterm/index.js +0 -1
  456. package/es/components/shared/xterm/locales/index.js +0 -4
  457. package/es/constants/index.js +0 -1
  458. package/es/hooks/index.js +0 -7
  459. package/es/utils/index.js +0 -2
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray, defineProperty as _defineProperty, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { useRef, useState, useMemo, useCallback, useEffect } from 'react';
3
2
  import { useDeepCompareEffect } from 'react-use';
4
3
  import { config, getOrgUserGet, postOrgMaterialExerciseUsercodeEdit } from '@elice/api-client';
@@ -13,100 +12,74 @@ import { uniCount, uniToStrPos } from 'unicount';
13
12
  //
14
13
  //
15
14
  //
16
- var MAX_WRITE_FAIL_COUNT = 5;
15
+ const MAX_WRITE_FAIL_COUNT = 5;
17
16
  /**
18
17
  *
19
18
  */
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];
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);
64
44
  //
65
45
  // =============== clients and markers ===============
66
46
  //
67
47
  /**
68
48
  * Markers.
69
49
  */
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
- });
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'
84
55
  });
85
- }, [clients, cursors]);
56
+ }), [clients, cursors]);
86
57
  /**
87
58
  * Update client to list.
88
59
  */
89
- var updateClient = function updateClient(userAccesskey, userId) {
60
+ const updateClient = (userAccesskey, userId) => {
90
61
  var _a;
91
62
  if (userAccesskey === ((_a = myself.current) === null || _a === void 0 ? void 0 : _a.accesskey)) {
92
63
  return;
93
64
  }
94
- setClients(function (prev) {
65
+ setClients(prev => {
95
66
  if (prev[userAccesskey]) {
96
67
  return prev;
97
68
  }
98
- return Object.assign(Object.assign({}, prev), _defineProperty({}, userAccesskey, {
99
- id: userId,
100
- accesskey: userAccesskey
101
- }));
69
+ return Object.assign(Object.assign({}, prev), {
70
+ [userAccesskey]: {
71
+ id: userId,
72
+ accesskey: userAccesskey
73
+ }
74
+ });
102
75
  });
103
76
  };
104
77
  /**
105
78
  * Remove client from list.
106
79
  */
107
- var removeClient = function removeClient(userAccesskey) {
108
- setClients(function (prev) {
109
- var next = Object.assign({}, prev);
80
+ const removeClient = userAccesskey => {
81
+ setClients(prev => {
82
+ const next = Object.assign({}, prev);
110
83
  delete next[userAccesskey];
111
84
  return next;
112
85
  });
@@ -114,37 +87,32 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
114
87
  /**
115
88
  *
116
89
  */
117
- var updateCursor = function updateCursor(userAccesskey, cursor) {
90
+ const updateCursor = (userAccesskey, cursor) => {
118
91
  var _a;
119
92
  if (userAccesskey === ((_a = myself.current) === null || _a === void 0 ? void 0 : _a.accesskey)) {
120
93
  return;
121
94
  }
122
- setCursors(function (prev) {
123
- return Object.assign(Object.assign({}, prev), _defineProperty({}, userAccesskey, cursor));
124
- });
95
+ setCursors(prev => Object.assign(Object.assign({}, prev), {
96
+ [userAccesskey]: cursor
97
+ }));
125
98
  };
126
99
  /**
127
100
  *
128
101
  */
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, {
102
+ const updateCursorFromOts = ots => {
103
+ setCursors(Object.entries(cursors).map(([userAccesskey, cursor]) => ({
104
+ [userAccesskey]: {
135
105
  from: type.transformSelection(cursor.from, ots),
136
106
  to: type.transformSelection(cursor.to, ots)
137
- });
138
- }).reduce(function (prev, next) {
139
- return Object.assign(Object.assign({}, prev), next);
140
- }, {}));
107
+ }
108
+ })).reduce((prev, next) => Object.assign(Object.assign({}, prev), next), {}));
141
109
  };
142
110
  /**
143
111
  *
144
112
  */
145
- var removeCursor = function removeCursor(userAccesskey) {
146
- setCursors(function (prev) {
147
- var next = Object.assign({}, prev);
113
+ const removeCursor = userAccesskey => {
114
+ setCursors(prev => {
115
+ const next = Object.assign({}, prev);
148
116
  delete next[userAccesskey];
149
117
  return next;
150
118
  });
@@ -152,39 +120,22 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
152
120
  //
153
121
  // Fetch client user info, whenever client list changed.
154
122
  //
155
- useDeepCompareEffect(function () {
123
+ useDeepCompareEffect(() => {
156
124
  void Promise.all(Object.entries(Object.assign({}, clients))
157
125
  // only user info not fetched...
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
- });
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));
188
139
  });
189
140
  }, [clients]);
190
141
  //
@@ -193,7 +144,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
193
144
  /**
194
145
  * Send `RESET`.
195
146
  */
196
- var sendReset = function sendReset() {
147
+ const sendReset = () => {
197
148
  var _a;
198
149
  (_a = websocket.current) === null || _a === void 0 ? void 0 : _a.sendJson({
199
150
  type: 'RESET'
@@ -202,55 +153,50 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
202
153
  /**
203
154
  * Send `FETCH`.
204
155
  */
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
- }, []);
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), []);
214
163
  /**
215
164
  * Send `WRITE`.
216
165
  */
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
- }, []);
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), []);
235
182
  /**
236
183
  * Send `CURSOR`.
237
184
  */
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
- }, []);
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), []);
250
196
  /**
251
197
  * Send OTs.
252
198
  */
253
- var sendOTs = useCallback(function (ots) {
199
+ const sendOTs = useCallback(ots => {
254
200
  setDoc(type.apply(_doc.current, ots));
255
201
  _doc.current = type.apply(_doc.current, ots);
256
202
  otsBuffer.current.push(ots);
@@ -262,20 +208,20 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
262
208
  /**
263
209
  *
264
210
  */
265
- var usercodeApply = function usercodeApply(newVersion, ots) {
211
+ const usercodeApply = (newVersion, ots) => {
266
212
  version.current = newVersion;
267
- var conflictOts = [];
268
- for (var i = 0; i < otsBuffer.current.length; i++) {
213
+ let conflictOts = [];
214
+ for (let i = 0; i < otsBuffer.current.length; i++) {
269
215
  conflictOts = type.compose(conflictOts, otsBuffer.current[i]);
270
216
  }
271
- var localOts = conflictOts.length > 0 ? type.transform(ots, conflictOts, 'left') : ots;
217
+ const localOts = conflictOts.length > 0 ? type.transform(ots, conflictOts, 'left') : ots;
272
218
  onWriteNoti(localOts, false);
273
219
  setDoc(type.apply(_doc.current, localOts));
274
220
  _doc.current = type.apply(_doc.current, localOts);
275
221
  if (conflictOts.length > 0) {
276
222
  // update ots buffer
277
- for (var _i = 0; _i < otsBuffer.current.length - 1; _i++) {
278
- otsBuffer.current[_i] = [];
223
+ for (let i = 0; i < otsBuffer.current.length - 1; i++) {
224
+ otsBuffer.current[i] = [];
279
225
  }
280
226
  otsBuffer.current[otsBuffer.current.length - 1] = type.transform(conflictOts, ots, 'right');
281
227
  }
@@ -289,7 +235,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
289
235
  /**
290
236
  * Websocket on open.
291
237
  */
292
- var wsOpen = function wsOpen() {
238
+ const wsOpen = () => {
293
239
  if (websocket.current) {
294
240
  setWebSocketReadyState(websocket.current.readyState);
295
241
  }
@@ -297,7 +243,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
297
243
  /**
298
244
  * Websocket on close.
299
245
  */
300
- var wsClose = function wsClose() {
246
+ const wsClose = () => {
301
247
  _stopMonkey();
302
248
  if (websocket.current) {
303
249
  setWebSocketReadyState(websocket.current.readyState);
@@ -306,7 +252,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
306
252
  /**
307
253
  * Websocket on error.
308
254
  */
309
- var wsError = function wsError() {
255
+ const wsError = () => {
310
256
  if (websocket.current) {
311
257
  setWebSocketReadyState(websocket.current.readyState);
312
258
  }
@@ -314,8 +260,8 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
314
260
  /**
315
261
  * Websocket on message.
316
262
  */
317
- var wsMessage = function wsMessage(e) {
318
- var msg = camelizeKeys(e.data);
263
+ const wsMessage = e => {
264
+ const msg = camelizeKeys(e.data);
319
265
  switch (msg.type) {
320
266
  case 'INIT':
321
267
  wsMessageInit(msg);
@@ -346,7 +292,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
346
292
  /**
347
293
  * Websocket on `INIT` message.
348
294
  */
349
- var wsMessageInit = function wsMessageInit(msg) {
295
+ const wsMessageInit = msg => {
350
296
  setDocEditable(true);
351
297
  myself.current = {
352
298
  userId: msg.userId,
@@ -358,7 +304,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
358
304
  writeFailCount.current = 0;
359
305
  // TODO: set unix mode on both editors.
360
306
  // editor.getSession().getDocument().setNewLineMode('unix');
361
- var convertedContent = msg.content.replace(/\r\n/g, '\n');
307
+ const convertedContent = msg.content.replace(/\r\n/g, '\n');
362
308
  setDoc(convertedContent);
363
309
  _doc.current = convertedContent;
364
310
  onInit(convertedContent);
@@ -373,25 +319,22 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
373
319
  /**
374
320
  * Websocket on `ENTER` message.
375
321
  */
376
- var wsMessageEnter = function wsMessageEnter(msg) {
377
- var _msg$client = _slicedToArray(msg.client, 2),
378
- userId = _msg$client[0],
379
- userAccesskey = _msg$client[1];
322
+ const wsMessageEnter = msg => {
323
+ const [userId, userAccesskey] = msg.client;
380
324
  updateClient(userAccesskey, userId);
381
325
  };
382
326
  /**
383
327
  * Websocket on `LEAVE` message.
384
328
  */
385
- var wsMessageLeave = function wsMessageLeave(msg) {
386
- var _msg$client2 = _slicedToArray(msg.client, 2),
387
- userAccesskey = _msg$client2[1];
329
+ const wsMessageLeave = msg => {
330
+ const [, userAccesskey] = msg.client;
388
331
  removeClient(userAccesskey);
389
332
  removeCursor(userAccesskey);
390
333
  };
391
334
  /**
392
335
  * Websocket on `UPDATE` message.
393
336
  */
394
- var wsMessageUpdate = function wsMessageUpdate(msg) {
337
+ const wsMessageUpdate = msg => {
395
338
  if (msg.from === version.current) {
396
339
  usercodeApply(msg.version, msg.ots);
397
340
  } else if (msg.from < version.current) {
@@ -401,7 +344,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
401
344
  /**
402
345
  * Websocket on `WRITE_FAILED` message.
403
346
  */
404
- var wsMessageWriteFailed = function wsMessageWriteFailed(msg) {
347
+ const wsMessageWriteFailed = msg => {
405
348
  writeIndex.current = 0;
406
349
  writeFailCount.current += 1;
407
350
  if (MAX_WRITE_FAIL_COUNT < writeFailCount.current) {
@@ -413,7 +356,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
413
356
  /**
414
357
  * Websocket on `WRITE_SUCCEED` message.
415
358
  */
416
- var wsMessageWriteSucceed = function wsMessageWriteSucceed(msg) {
359
+ const wsMessageWriteSucceed = msg => {
417
360
  version.current = msg.version;
418
361
  otsBuffer.current.splice(0, writeIndex.current);
419
362
  writeIndex.current = 0;
@@ -423,7 +366,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
423
366
  /**
424
367
  * Websocket on `WRITE_NOTI` message.
425
368
  */
426
- var wsMessageWriteNoti = function wsMessageWriteNoti(msg) {
369
+ const wsMessageWriteNoti = msg => {
427
370
  if (version.current + 1 === msg.version) {
428
371
  usercodeApply(msg.version, msg.ots);
429
372
  } else if (version.current < msg.version) {
@@ -433,10 +376,8 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
433
376
  /**
434
377
  * Websocket on `CURSOR_NOTI` message.
435
378
  */
436
- var wsMessageCursorNoti = function wsMessageCursorNoti(msg) {
437
- var _msg$client3 = _slicedToArray(msg.client, 2),
438
- userId = _msg$client3[0],
439
- userAccesskey = _msg$client3[1];
379
+ const wsMessageCursorNoti = msg => {
380
+ const [userId, userAccesskey] = msg.client;
440
381
  updateClient(userAccesskey, userId);
441
382
  updateCursor(userAccesskey, {
442
383
  from: msg.cursorStart,
@@ -446,40 +387,26 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
446
387
  /**
447
388
  * Create usercode websocket url.
448
389
  */
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();
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);
476
402
  }
477
- }, _callee);
478
- })), [apiWsOriginUrl, exerciseRoomId, filename]);
403
+ throw new Error(((_b = err.detail) === null || _b === void 0 ? void 0 : _b.failMessage) || err.message);
404
+ });
405
+ }, [apiWsOriginUrl, exerciseRoomId, filename]);
479
406
  //
480
407
  // Initialize websocket.
481
408
  //
482
- useEffect(function () {
409
+ useEffect(() => {
483
410
  if (!isReady) {
484
411
  return;
485
412
  }
@@ -488,7 +415,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
488
415
  websocket.current.onclose = wsClose;
489
416
  websocket.current.onmessage = wsMessage;
490
417
  websocket.current.onerror = wsError;
491
- return function () {
418
+ return () => {
492
419
  if (websocket.current) {
493
420
  websocket.current.close();
494
421
  }
@@ -503,20 +430,20 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
503
430
  * Make monkey jump.
504
431
  * @note only for testing
505
432
  */
506
- var _monkeyAgentDoJump = useCallback(function () {
507
- var getRandomInt = function getRandomInt(max) {
433
+ const _monkeyAgentDoJump = useCallback(() => {
434
+ const getRandomInt = function (max) {
508
435
  return Math.floor(Math.random() * max);
509
436
  };
510
- var emojis = ['๐Ÿฆ', '๐Ÿ™ˆ', '๐Ÿ™‰', '๐Ÿ™Š', '๐Ÿต', '๐Ÿ’', '๐Ÿฆน๐Ÿผ', '๐Ÿง›๐Ÿพ', '๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ'];
511
- var getRandomEmoji = function getRandomEmoji() {
437
+ const emojis = ['๐Ÿฆ', '๐Ÿ™ˆ', '๐Ÿ™‰', '๐Ÿ™Š', '๐Ÿต', '๐Ÿ’', '๐Ÿฆน๐Ÿผ', '๐Ÿง›๐Ÿพ', '๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ'];
438
+ const getRandomEmoji = () => {
512
439
  return emojis[getRandomInt(emojis.length)];
513
440
  };
514
- var uniTextLength = uniCount(_doc.current);
515
- var uniPos = Math.floor(Math.random() * uniTextLength);
441
+ const uniTextLength = uniCount(_doc.current);
442
+ const uniPos = Math.floor(Math.random() * uniTextLength);
516
443
  // add text
517
444
  if (Math.random() < 0.5) {
518
- var randomNumber = Math.random();
519
- var text = '';
445
+ const randomNumber = Math.random();
446
+ let text = '';
520
447
  if (randomNumber < 1 / 3) {
521
448
  text = getRandomEmoji();
522
449
  } else if (randomNumber < 2 / 3) {
@@ -528,7 +455,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
528
455
  }
529
456
  // delete text
530
457
  else {
531
- var uniTextTo = uniPos + getRandomInt(10);
458
+ let uniTextTo = uniPos + getRandomInt(10);
532
459
  if (uniTextTo >= uniTextLength) {
533
460
  uniTextTo = uniTextLength - 1;
534
461
  }
@@ -536,9 +463,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
536
463
  d: _doc.current.slice(uniToStrPos(_doc.current, uniPos), uniToStrPos(_doc.current, uniTextTo))
537
464
  }], true);
538
465
  }
539
- setNumMonkeyJumped(function (mj) {
540
- return mj + 1;
541
- });
466
+ setNumMonkeyJumped(mj => mj + 1);
542
467
  },
543
468
  // eslint-disable-next-line react-hooks/exhaustive-deps
544
469
  []);
@@ -546,7 +471,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
546
471
  * Make monkey jump.
547
472
  * @note only for testing
548
473
  */
549
- var _startMonkey = useCallback(function () {
474
+ const _startMonkey = useCallback(() => {
550
475
  setNumMonkeyJumped(0);
551
476
  _setMonkeyAgent(window.setInterval(_monkeyAgentDoJump, 500));
552
477
  },
@@ -556,7 +481,7 @@ var useUsercodeEditWebSocket = function useUsercodeEditWebSocket(_ref) {
556
481
  * Stop monkey jump.
557
482
  * @note only for testing
558
483
  */
559
- var _stopMonkey = useCallback(function () {
484
+ const _stopMonkey = useCallback(() => {
560
485
  if (_monkeyAgent) {
561
486
  window.clearInterval(_monkeyAgent);
562
487
  _setMonkeyAgent(0);