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