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

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