@elice/material-exercise 1.230325.0 → 1.230418.0

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 (373) hide show
  1. package/cjs/_virtual/_rollupPluginBabelHelpers.js +526 -0
  2. package/cjs/components/material-exercise/MaterialExercise.js +44 -63
  3. package/cjs/components/material-exercise/MaterialExercise.styled.js +20 -23
  4. package/cjs/components/material-exercise/MaterialExerciseMobile.js +19 -15
  5. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  6. package/cjs/components/material-exercise/context/ExerciseProvider.js +83 -81
  7. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +16 -16
  8. package/cjs/components/material-exercise/context/context.js +1 -1
  9. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +3 -1
  10. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +3 -1
  11. package/cjs/components/material-exercise/context/recoil.d.ts +2 -1
  12. package/cjs/components/material-exercise/context/recoil.js +562 -373
  13. package/cjs/components/material-exercise/context/recoilTypes.js +0 -5
  14. package/cjs/components/material-exercise/context/subjects.js +3 -6
  15. package/cjs/components/material-exercise/context/types.d.ts +8 -1
  16. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  17. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -65
  18. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  19. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +7 -0
  20. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +7 -0
  21. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +20 -21
  22. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +228 -199
  23. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -10
  24. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +35 -32
  25. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +57 -48
  26. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
  27. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -1
  28. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -1
  29. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +327 -231
  30. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
  31. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +3 -1
  32. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +3 -1
  33. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +17 -17
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -14
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -6
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +47 -38
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +60 -42
  38. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +29 -22
  39. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +45 -56
  40. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  41. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +3 -1
  42. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +3 -1
  43. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -20
  44. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +5 -3
  45. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +30 -41
  46. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +17 -12
  47. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +3 -1
  48. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +3 -1
  49. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +24 -33
  50. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +13 -8
  51. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +84 -83
  52. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +3 -1
  53. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +3 -1
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +20 -12
  55. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  56. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +239 -147
  57. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +92 -63
  58. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  59. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +3 -1
  60. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +3 -1
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +224 -223
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -13
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +30 -26
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +26 -26
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +79 -95
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +27 -27
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +54 -60
  69. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +5 -5
  70. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -13
  71. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +29 -26
  72. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +3 -1
  73. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +3 -1
  74. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  75. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +290 -180
  76. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  77. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -45
  78. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +7 -0
  79. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +7 -0
  80. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +19 -17
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +5 -4
  82. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +15 -14
  83. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +7 -6
  84. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +17 -16
  85. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +18 -11
  86. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -4
  87. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  88. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -7
  89. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  90. package/cjs/components/shared/file-icon/FileIcon.js +23 -23
  91. package/cjs/components/shared/file-tabs/FileTab.js +32 -43
  92. package/cjs/components/shared/file-tabs/FileTab.styled.js +26 -22
  93. package/cjs/components/shared/file-tabs/FileTabs.js +55 -49
  94. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -2
  95. package/cjs/components/shared/file-tabs/util.js +29 -18
  96. package/cjs/components/shared/file-tree/FileTree.js +11 -11
  97. package/cjs/components/shared/file-tree/FileTreeConfig.js +24 -23
  98. package/cjs/components/shared/file-tree/FileTreeList.js +35 -41
  99. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +75 -91
  100. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  101. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +77 -101
  102. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  103. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +51 -86
  104. package/cjs/components/shared/file-tree/FileTreeListItems.js +150 -153
  105. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  106. package/cjs/components/shared/file-tree/FileTreeToolbar.js +30 -41
  107. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  108. package/cjs/components/shared/file-tree/context/FileTreeContext.js +91 -97
  109. package/cjs/components/shared/file-tree/locales/en.json.js +3 -1
  110. package/cjs/components/shared/file-tree/locales/ko.json.js +3 -1
  111. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  112. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  113. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  114. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  115. package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -7
  116. package/cjs/components/shared/file-viewer/FileViewer.js +59 -60
  117. package/cjs/components/shared/file-viewer/FileViewerCsv.js +145 -101
  118. package/cjs/components/shared/file-viewer/FileViewerImage.js +7 -8
  119. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +20 -14
  120. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +28 -34
  121. package/cjs/components/shared/file-viewer/FileViewerText.js +23 -16
  122. package/cjs/components/shared/file-viewer/locales/en.json.js +3 -1
  123. package/cjs/components/shared/file-viewer/locales/ko.json.js +3 -1
  124. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +3 -1
  125. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +3 -1
  126. package/cjs/components/shared/material-modal/MaterialModal.js +10 -12
  127. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -5
  128. package/cjs/components/shared/monaco-editor/MonacoEditor.js +123 -149
  129. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +10 -8
  130. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -58
  131. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +78 -85
  132. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  133. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  134. package/cjs/components/shared/monaco-editor/constants/themes/index.js +80 -32
  135. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  136. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  137. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  138. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  139. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  140. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  141. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +36 -12
  142. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +5 -8
  143. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +36 -12
  144. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -6
  145. package/cjs/components/shared/monaco-editor/editor-languages/index.js +3 -1
  146. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  147. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +3 -2
  148. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +3 -2
  149. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +3 -2
  150. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +36 -12
  151. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +18 -24
  152. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  153. package/cjs/components/shared/monaco-editor/locales/en.json.js +3 -1
  154. package/cjs/components/shared/monaco-editor/locales/ko.json.js +3 -1
  155. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  156. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  157. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  158. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +70 -32
  159. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  160. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  161. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  162. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  163. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  164. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +30 -9
  165. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  166. package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -5
  167. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  168. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  169. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  170. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  171. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  172. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  173. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  174. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  175. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +218 -329
  176. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  177. package/cjs/components/shared/no-vnc/NoVnc.js +93 -90
  178. package/cjs/components/shared/no-vnc/NoVncLazy.js +7 -5
  179. package/cjs/components/shared/preview-container/PreviewContainer.js +7 -10
  180. package/cjs/components/shared/web-browser/WebBrowser.js +54 -59
  181. package/cjs/components/shared/xterm/Xterm.js +112 -105
  182. package/cjs/components/shared/xterm/XtermLazy.js +7 -5
  183. package/cjs/components/shared/xterm/locales/en.json.js +3 -1
  184. package/cjs/components/shared/xterm/locales/ko.json.js +3 -1
  185. package/cjs/constants/arduino.js +10 -10
  186. package/cjs/constants/shortcutKeyMap.js +5 -5
  187. package/cjs/constants/stylesheets.js +7 -10
  188. package/cjs/hooks/useArduino.js +327 -255
  189. package/cjs/hooks/useExerciseFile.js +24 -24
  190. package/cjs/hooks/useExericseShortcut.js +6 -5
  191. package/cjs/hooks/useMaterialExerciseFileUrl.js +54 -37
  192. package/cjs/hooks/useRunnerRoomWebSocket.js +58 -56
  193. package/cjs/hooks/useStdioTextConcator.js +18 -12
  194. package/cjs/hooks/useStdioWebSocket.js +41 -67
  195. package/cjs/hooks/useUsercodeEditWebSocket.js +230 -252
  196. package/cjs/hooks/useUsercodeHistory.js +121 -82
  197. package/cjs/index.js +4 -4
  198. package/cjs/utils/arduino.js +23 -25
  199. package/cjs/utils/exerciseFile.js +8 -16
  200. package/cjs/utils/runner.js +29 -25
  201. package/es/_virtual/_rollupPluginBabelHelpers.js +504 -0
  202. package/es/components/material-exercise/MaterialExercise.js +33 -54
  203. package/es/components/material-exercise/MaterialExercise.styled.js +20 -23
  204. package/es/components/material-exercise/MaterialExerciseMobile.js +15 -13
  205. package/es/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  206. package/es/components/material-exercise/context/ExerciseProvider.js +79 -79
  207. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +11 -13
  208. package/es/components/material-exercise/context/context.js +1 -1
  209. package/es/components/material-exercise/context/recoil.d.ts +2 -1
  210. package/es/components/material-exercise/context/recoil.js +563 -374
  211. package/es/components/material-exercise/context/recoilTypes.js +0 -5
  212. package/es/components/material-exercise/context/subjects.js +3 -6
  213. package/es/components/material-exercise/context/types.d.ts +8 -1
  214. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  215. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +73 -62
  216. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  217. package/es/components/material-exercise/exercise-code-history/locales/en.json.js +3 -0
  218. package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +3 -0
  219. package/es/components/material-exercise/exercise-file/ExerciseFile.js +15 -18
  220. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +222 -195
  221. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -9
  222. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +31 -28
  223. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +52 -45
  224. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  225. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +321 -225
  226. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  227. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +12 -14
  228. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -10
  229. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -5
  230. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +43 -36
  231. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +53 -37
  232. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +25 -20
  233. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +41 -54
  234. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  235. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +25 -19
  236. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  237. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +21 -34
  238. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -10
  239. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +17 -28
  240. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +9 -6
  241. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +81 -82
  242. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +13 -7
  243. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  244. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +236 -146
  245. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +90 -63
  246. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  247. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +218 -219
  248. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  249. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +7 -9
  250. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +27 -25
  251. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +22 -24
  252. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +76 -94
  253. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +24 -26
  254. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +51 -59
  255. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -4
  256. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +6 -11
  257. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +26 -25
  258. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  259. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +284 -174
  260. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  261. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +38 -44
  262. package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +3 -0
  263. package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +3 -0
  264. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +16 -16
  265. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -3
  266. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -13
  267. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -3
  268. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -15
  269. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +15 -10
  270. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +2 -3
  271. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  272. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +5 -6
  273. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  274. package/es/components/shared/file-icon/FileIcon.js +20 -22
  275. package/es/components/shared/file-tabs/FileTab.js +28 -41
  276. package/es/components/shared/file-tabs/FileTab.styled.js +26 -22
  277. package/es/components/shared/file-tabs/FileTabs.js +52 -48
  278. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  279. package/es/components/shared/file-tabs/util.js +29 -18
  280. package/es/components/shared/file-tree/FileTree.js +3 -5
  281. package/es/components/shared/file-tree/FileTreeConfig.js +21 -22
  282. package/es/components/shared/file-tree/FileTreeList.js +31 -39
  283. package/es/components/shared/file-tree/FileTreeListItemContent.js +67 -85
  284. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  285. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +74 -100
  286. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  287. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +48 -85
  288. package/es/components/shared/file-tree/FileTreeListItems.js +147 -152
  289. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  290. package/es/components/shared/file-tree/FileTreeToolbar.js +24 -37
  291. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  292. package/es/components/shared/file-tree/context/FileTreeContext.js +91 -97
  293. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  294. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  295. package/es/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  296. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  297. package/es/components/shared/file-tree/utils/fileTreePath.js +5 -7
  298. package/es/components/shared/file-viewer/FileViewer.js +52 -53
  299. package/es/components/shared/file-viewer/FileViewerCsv.js +141 -99
  300. package/es/components/shared/file-viewer/FileViewerImage.js +3 -6
  301. package/es/components/shared/file-viewer/FileViewerIpynb.js +16 -12
  302. package/es/components/shared/file-viewer/FileViewerNonViewable.js +22 -30
  303. package/es/components/shared/file-viewer/FileViewerText.js +18 -13
  304. package/es/components/shared/material-modal/MaterialModal.js +7 -11
  305. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  306. package/es/components/shared/monaco-editor/MonacoEditor.js +119 -147
  307. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +6 -4
  308. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +45 -56
  309. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +73 -82
  310. package/es/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  311. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  312. package/es/components/shared/monaco-editor/constants/themes/index.js +80 -32
  313. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  314. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  315. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  316. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  317. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  318. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  319. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -11
  320. package/es/components/shared/monaco-editor/editor-languages/css/index.js +2 -5
  321. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -11
  322. package/es/components/shared/monaco-editor/editor-languages/html/index.js +2 -5
  323. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  324. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +0 -1
  325. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +0 -1
  326. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +0 -1
  327. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +33 -11
  328. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -16
  329. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  330. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  331. package/es/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  332. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  333. package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -31
  334. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  335. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  336. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  337. package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  338. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  339. package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -8
  340. package/es/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  341. package/es/components/shared/monaco-editor/utils/theme/index.js +22 -5
  342. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  343. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  344. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  345. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  346. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  347. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  348. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  349. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  350. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +219 -330
  351. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  352. package/es/components/shared/no-vnc/NoVnc.js +89 -88
  353. package/es/components/shared/no-vnc/NoVncLazy.js +4 -2
  354. package/es/components/shared/preview-container/PreviewContainer.js +7 -10
  355. package/es/components/shared/web-browser/WebBrowser.js +49 -56
  356. package/es/components/shared/xterm/Xterm.js +107 -102
  357. package/es/components/shared/xterm/XtermLazy.js +4 -2
  358. package/es/constants/arduino.js +10 -10
  359. package/es/constants/shortcutKeyMap.js +3 -5
  360. package/es/constants/stylesheets.js +7 -10
  361. package/es/hooks/useArduino.js +327 -255
  362. package/es/hooks/useExerciseFile.js +24 -24
  363. package/es/hooks/useExericseShortcut.js +6 -5
  364. package/es/hooks/useMaterialExerciseFileUrl.js +55 -38
  365. package/es/hooks/useRunnerRoomWebSocket.js +58 -56
  366. package/es/hooks/useStdioTextConcator.js +18 -12
  367. package/es/hooks/useStdioWebSocket.js +41 -67
  368. package/es/hooks/useUsercodeEditWebSocket.js +230 -252
  369. package/es/hooks/useUsercodeHistory.js +122 -83
  370. package/es/utils/arduino.js +23 -25
  371. package/es/utils/exerciseFile.js +8 -16
  372. package/es/utils/runner.js +29 -25
  373. package/package.json +8 -8
@@ -1,5 +1,8 @@
1
1
  'use strict';
2
2
 
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
3
6
  var React = require('react');
4
7
  var apiClient = require('@elice/api-client');
5
8
  var blocks = require('@elice/blocks');
@@ -38,99 +41,129 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
38
41
 
39
42
  //
40
43
  //
41
-
44
+ //
42
45
  /**
43
46
  * Exercise file (code) editor for editable files
44
47
  */
45
-
46
- const ExerciseFileEditor = () => {
47
- const {
48
- materialExerciseId,
49
- exerciseRoomId,
50
- readOnlyEditor,
51
- readOnlyActiveFile,
52
- locale
53
- } = React__default["default"].useContext(context.ExerciseContext);
54
- const exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
55
- const exerciseRoom = recoil.useRecoilValue(recoil$1.exerciseRoomState(exerciseRoomId));
56
- const lecture = recoil.useRecoilValue(recoil$1.exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
57
- const preference = recoil.useRecoilValue(recoil$1.exerciseEditorPreferenceState);
58
- const activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
59
- const readOnly = readOnlyEditor || readOnlyActiveFile;
60
- const setUsercodeWebSocketState = recoil.useSetRecoilState(recoil$1.exerciseWebsocketQuery('usercodeEdit'));
61
- const setFileEditorCursorState = recoil.useSetRecoilState(recoil$1.exerciseFileEditorCursorState);
62
- const setFileEditorCursorSelectionValueState = recoil.useSetRecoilState(recoil$1.exerciseFileEditorCursorSelectionValueState);
63
- const setExerciseMonacoEditorValueState = recoil.useSetRecoilState(recoil$1.exerciseMonacoEditorValueState); // editor
64
-
65
- const editorApis = React__default["default"].useRef(null);
66
- const editorDocHistories = React__default["default"].useRef({});
67
- const serverInitiatedVersions = React__default["default"].useRef([]); // ready state
68
-
69
- const [isEditorReady, setEditorReady] = React__default["default"].useState(false);
70
- const [isWebSocketReady, setWebSocketReady] = React__default["default"].useState(false);
71
- const isReady = isEditorReady && isWebSocketReady;
72
- const [isFileResettable, setFileResettable] = React__default["default"].useState(exerciseFile.checkExerciseFileResettable(activeFilename, {
73
- exercise,
74
- exerciseRoom
75
- }));
48
+ var ExerciseFileEditor = function ExerciseFileEditor() {
49
+ var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
50
+ materialExerciseId = _React$useContext.materialExerciseId,
51
+ exerciseRoomId = _React$useContext.exerciseRoomId,
52
+ readOnlyEditor = _React$useContext.readOnlyEditor,
53
+ readOnlyActiveFile = _React$useContext.readOnlyActiveFile,
54
+ locale = _React$useContext.locale;
55
+ var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
56
+ var exerciseRoom = recoil.useRecoilValue(recoil$1.exerciseRoomState(exerciseRoomId));
57
+ var lecture = recoil.useRecoilValue(recoil$1.exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
58
+ var preference = recoil.useRecoilValue(recoil$1.exerciseEditorPreferenceState);
59
+ var activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
60
+ var readOnly = readOnlyEditor || readOnlyActiveFile;
61
+ var setUsercodeWebSocketState = recoil.useSetRecoilState(recoil$1.exerciseWebsocketQuery('usercodeEdit'));
62
+ var setFileEditorCursorState = recoil.useSetRecoilState(recoil$1.exerciseFileEditorCursorState);
63
+ var setFileEditorCursorSelectionValueState = recoil.useSetRecoilState(recoil$1.exerciseFileEditorCursorSelectionValueState);
64
+ // editor
65
+ var editorApis = React__default["default"].useRef(null);
66
+ var editorDocHistories = React__default["default"].useRef({});
67
+ var serverInitiatedVersions = React__default["default"].useRef([]);
68
+ // ready state
69
+ var _React$useState = React__default["default"].useState(false),
70
+ _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
71
+ isEditorReady = _React$useState2[0],
72
+ setEditorReady = _React$useState2[1];
73
+ var _React$useState3 = React__default["default"].useState(false),
74
+ _React$useState4 = _rollupPluginBabelHelpers.slicedToArray(_React$useState3, 2),
75
+ isWebSocketReady = _React$useState4[0],
76
+ setWebSocketReady = _React$useState4[1];
77
+ var isReady = isEditorReady && isWebSocketReady;
78
+ var _React$useState5 = React__default["default"].useState(exerciseFile.checkExerciseFileResettable(activeFilename, {
79
+ exercise: exercise,
80
+ exerciseRoom: exerciseRoom
81
+ })),
82
+ _React$useState6 = _rollupPluginBabelHelpers.slicedToArray(_React$useState5, 2),
83
+ isFileResettable = _React$useState6[0],
84
+ setFileResettable = _React$useState6[1];
85
+ var setExerciseMonacoEditorApisState = recoil.useSetRecoilState(recoil$1.exerciseMonacoEditorApisState);
86
+ React__default["default"].useEffect(function () {
87
+ if (editorApis.current) {
88
+ setExerciseMonacoEditorApisState(editorApis.current);
89
+ }
90
+ // eslint-disable-next-line react-hooks/exhaustive-deps
91
+ }, [editorApis.current]);
76
92
  /**
77
93
  * Set value of current file.
78
94
  */
79
-
80
- const setValue = async content => {
81
- var _a;
82
-
83
- if (!isFileResettable) {
84
- console.warn('Cannot reset file since not resettable.');
85
- return;
86
- }
87
-
88
- if (!activeFilename) {
89
- console.warn('Cannot reset file since no file selected.');
90
- return;
91
- }
92
-
93
- if (content) {
94
- setExerciseMonacoEditorValueState(content);
95
- (_a = editorApis.current) === null || _a === void 0 ? void 0 : _a.setValue(content);
96
- } // reset as initial value on `null` received.
97
- else if (content === null) {
98
- const readyExerciseImage = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage;
99
-
100
- if (!editorApis.current || !readyExerciseImage) {
101
- return;
102
- }
103
-
104
- return apiClient.getOrgMaterialExerciseExerciseImageExerciseFileGet({
105
- exerciseImageId: readyExerciseImage.id,
106
- filename: activeFilename
107
- }).then(res => res.exerciseFile.content).then(content => {
108
- var _a;
109
-
110
- if (typeof content === 'string') {
111
- setExerciseMonacoEditorValueState(content);
112
- (_a = editorApis.current) === null || _a === void 0 ? void 0 : _a.setValue(content);
113
- } else {
114
- setFileResettable(false);
95
+ var setValue = /*#__PURE__*/function () {
96
+ var _ref = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee(content) {
97
+ var _a, readyExerciseImage;
98
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
99
+ while (1) switch (_context.prev = _context.next) {
100
+ case 0:
101
+ if (isFileResettable) {
102
+ _context.next = 3;
103
+ break;
104
+ }
105
+ console.warn('Cannot reset file since not resettable.');
106
+ return _context.abrupt("return");
107
+ case 3:
108
+ if (activeFilename) {
109
+ _context.next = 6;
110
+ break;
111
+ }
112
+ console.warn('Cannot reset file since no file selected.');
113
+ return _context.abrupt("return");
114
+ case 6:
115
+ if (!content) {
116
+ _context.next = 10;
117
+ break;
118
+ }
119
+ (_a = editorApis.current) === null || _a === void 0 ? void 0 : _a.setValue(content);
120
+ _context.next = 15;
121
+ break;
122
+ case 10:
123
+ if (!(content === null)) {
124
+ _context.next = 15;
125
+ break;
126
+ }
127
+ readyExerciseImage = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage;
128
+ if (!(!editorApis.current || !readyExerciseImage)) {
129
+ _context.next = 14;
130
+ break;
131
+ }
132
+ return _context.abrupt("return");
133
+ case 14:
134
+ return _context.abrupt("return", apiClient.getOrgMaterialExerciseExerciseImageExerciseFileGet({
135
+ exerciseImageId: readyExerciseImage.id,
136
+ filename: activeFilename
137
+ }).then(function (res) {
138
+ return res.exerciseFile.content;
139
+ }).then(function (content) {
140
+ var _a;
141
+ if (typeof content === 'string') {
142
+ (_a = editorApis.current) === null || _a === void 0 ? void 0 : _a.setValue(content);
143
+ } else {
144
+ setFileResettable(false);
145
+ }
146
+ }));
147
+ case 15:
148
+ case "end":
149
+ return _context.stop();
115
150
  }
116
- });
117
- }
118
- };
151
+ }, _callee);
152
+ }));
153
+ return function setValue(_x) {
154
+ return _ref.apply(this, arguments);
155
+ };
156
+ }();
119
157
  /**
120
158
  * Update editor document history.
121
159
  */
122
-
123
-
124
- const pushEditorDocHistories = () => {
125
- const _editorApis = editorApis.current;
126
-
160
+ var pushEditorDocHistories = function pushEditorDocHistories() {
161
+ var _editorApis = editorApis.current;
127
162
  if (!_editorApis) {
128
163
  return;
129
164
  }
130
-
131
165
  if (typeof _editorApis.getMonacoModel === 'function') {
132
- const model = _editorApis.getMonacoModel();
133
-
166
+ var model = _editorApis.getMonacoModel();
134
167
  if (model) {
135
168
  editorDocHistories.current[model.getVersionId()] = model.getValue();
136
169
  }
@@ -140,215 +173,211 @@ const ExerciseFileEditor = () => {
140
173
  * Handle usercode edit websocket received `WRITE_NOTI` message,
141
174
  * move cursor or insert / delete content.
142
175
  */
143
-
144
-
145
- const handleWebsocketUsercodeWriteNoti = ots => {
176
+ var handleWebsocketUsercodeWriteNoti = function handleWebsocketUsercodeWriteNoti(ots) {
146
177
  var _a, _b, _c;
147
-
148
- let cursor = 0;
149
-
150
- for (const ot of ots) {
151
- const model = (_a = editorApis.current) === null || _a === void 0 ? void 0 : _a.getMonacoModel();
152
-
153
- if (!model) {
154
- continue;
155
- } // remove previous versions.
156
-
157
-
158
- if (serverInitiatedVersions.current.length > 100) {
159
- serverInitiatedVersions.current.splice(0, 50);
160
- }
161
-
162
- switch (typeof ot) {
163
- // cursor changed...
164
- case 'number':
165
- cursor += ot;
166
- break;
167
- // insertion
168
-
169
- case 'string':
170
- serverInitiatedVersions.current.push(model.getVersionId());
171
- (_b = editorApis.current) === null || _b === void 0 ? void 0 : _b.insertValue(cursor, ot);
172
- cursor += ot.length;
173
- break;
174
- // deletion
175
-
176
- default:
177
- serverInitiatedVersions.current.push(model.getVersionId());
178
- (_c = editorApis.current) === null || _c === void 0 ? void 0 : _c.removeValue(cursor, cursor + (typeof ot.d === 'number' ? ot.d : ot.d.length));
179
- break;
178
+ var cursor = 0;
179
+ var _iterator = _rollupPluginBabelHelpers.createForOfIteratorHelper(ots),
180
+ _step;
181
+ try {
182
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
183
+ var ot = _step.value;
184
+ var model = (_a = editorApis.current) === null || _a === void 0 ? void 0 : _a.getMonacoModel();
185
+ if (!model) {
186
+ continue;
187
+ }
188
+ // remove previous versions.
189
+ if (serverInitiatedVersions.current.length > 100) {
190
+ serverInitiatedVersions.current.splice(0, 50);
191
+ }
192
+ switch (_rollupPluginBabelHelpers["typeof"](ot)) {
193
+ // cursor changed...
194
+ case 'number':
195
+ cursor += ot;
196
+ break;
197
+ // insertion
198
+ case 'string':
199
+ serverInitiatedVersions.current.push(model.getVersionId());
200
+ (_b = editorApis.current) === null || _b === void 0 ? void 0 : _b.insertValue(cursor, ot);
201
+ cursor += ot.length;
202
+ break;
203
+ // deletion
204
+ default:
205
+ serverInitiatedVersions.current.push(model.getVersionId());
206
+ (_c = editorApis.current) === null || _c === void 0 ? void 0 : _c.removeValue(cursor, cursor + (typeof ot.d === 'number' ? ot.d : ot.d.length));
207
+ break;
208
+ }
180
209
  }
210
+ } catch (err) {
211
+ _iterator.e(err);
212
+ } finally {
213
+ _iterator.f();
181
214
  }
182
215
  };
183
216
  /**
184
217
  * Usercode edit web socket.
185
218
  */
186
-
187
-
188
- const wsUsercode = useUsercodeEditWebSocket.useUsercodeEditWebSocket({
189
- exerciseRoomId,
219
+ var wsUsercode = useUsercodeEditWebSocket.useUsercodeEditWebSocket({
220
+ exerciseRoomId: exerciseRoomId,
190
221
  filename: activeFilename,
191
- onInit: () => setWebSocketReady(true),
222
+ onInit: function onInit() {
223
+ return setWebSocketReady(true);
224
+ },
192
225
  onWriteNoti: handleWebsocketUsercodeWriteNoti
193
226
  });
194
227
  /**
195
228
  *
196
229
  */
197
-
198
- const handleChange = e => {
199
- const index = serverInitiatedVersions.current.indexOf(e.versionId - 1);
200
-
230
+ var handleChange = function handleChange(e) {
231
+ var index = serverInitiatedVersions.current.indexOf(e.versionId - 1);
201
232
  if (index !== -1) {
202
233
  serverInitiatedVersions.current.splice(index, 1);
203
234
  return;
204
- } // get previous model doc
205
-
206
-
207
- const prevDoc = editorDocHistories.current[e.versionId - 1]; // send OTs to server
208
-
209
- for (const change of e.changes) {
210
- // insertion
211
- if (change.rangeLength === 0 && !readOnly) {
212
- wsUsercode.sendOTs(change.rangeOffset > 0 ? [change.rangeOffset, change.text] : [change.text]);
213
- } // deletion
214
- else {
215
- if (prevDoc && !readOnly) {
216
- wsUsercode.sendOTs([change.rangeOffset || null, {
217
- d: prevDoc.slice(change.rangeOffset, change.rangeOffset + change.rangeLength)
218
- }].filter(Boolean));
219
- } // replace
220
-
221
-
222
- if (change.text.length > 0 && !readOnly) {
235
+ }
236
+ // get previous model doc
237
+ var prevDoc = editorDocHistories.current[e.versionId - 1];
238
+ // send OTs to server
239
+ var _iterator2 = _rollupPluginBabelHelpers.createForOfIteratorHelper(e.changes),
240
+ _step2;
241
+ try {
242
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
243
+ var change = _step2.value;
244
+ // insertion
245
+ if (change.rangeLength === 0 && !readOnly) {
223
246
  wsUsercode.sendOTs(change.rangeOffset > 0 ? [change.rangeOffset, change.text] : [change.text]);
224
247
  }
248
+ // deletion
249
+ else {
250
+ if (prevDoc && !readOnly) {
251
+ wsUsercode.sendOTs([change.rangeOffset || null, {
252
+ d: prevDoc.slice(change.rangeOffset, change.rangeOffset + change.rangeLength)
253
+ }].filter(Boolean));
254
+ }
255
+ // replace
256
+ if (change.text.length > 0 && !readOnly) {
257
+ wsUsercode.sendOTs(change.rangeOffset > 0 ? [change.rangeOffset, change.text] : [change.text]);
258
+ }
259
+ }
225
260
  }
261
+ } catch (err) {
262
+ _iterator2.e(err);
263
+ } finally {
264
+ _iterator2.f();
226
265
  }
227
-
228
266
  delete editorDocHistories.current[e.versionId - 1];
229
267
  };
230
268
  /**
231
269
  * Handle editor cursor change.
232
270
  */
233
-
234
-
235
- const handleEditorCursor = range => {
271
+ var handleEditorCursor = function handleEditorCursor(range) {
236
272
  var _a, _b;
237
-
238
273
  if (!readOnly) {
239
274
  wsUsercode.sendCursor(range);
240
275
  }
241
-
242
276
  setFileEditorCursorState(range);
243
277
  setFileEditorCursorSelectionValueState((_b = (_a = editorApis.current) === null || _a === void 0 ? void 0 : _a.getValueInRange(range.from, range.to)) !== null && _b !== void 0 ? _b : '');
244
278
  };
245
279
  /**
246
280
  * Handle editor save shortcut emitted.
247
281
  */
248
-
249
-
250
- const handleSave = () => {
282
+ var handleSave = function handleSave() {
251
283
  subjects.exerciseFileEditorSaveAction$.next();
252
- }; //
284
+ };
285
+ //
253
286
  // Handle editor content change.
254
287
  //
255
-
256
-
257
- React__default["default"].useEffect(() => {
288
+ React__default["default"].useEffect(function () {
258
289
  var _a, _b;
259
-
260
- const _editorApis = editorApis.current;
261
-
290
+ var _editorApis = editorApis.current;
262
291
  if (!_editorApis || !isReady) {
263
292
  return;
264
293
  }
265
-
266
- setExerciseMonacoEditorValueState(wsUsercode.doc);
267
-
268
294
  _editorApis.setValue(wsUsercode.doc);
269
-
270
295
  pushEditorDocHistories();
271
- let subscription = undefined;
272
-
296
+ var subscription = undefined;
273
297
  if (utils.FlutterApp.checkWebview()) {
274
- subscription = (_a = _editorApis.editor) === null || _a === void 0 ? void 0 : _a.onDidChangeModelContent(e => {
298
+ subscription = (_a = _editorApis.editor) === null || _a === void 0 ? void 0 : _a.onDidChangeModelContent(function (e) {
275
299
  pushEditorDocHistories();
276
300
  handleChange(e);
277
301
  utils.FlutterApp.onDidChangeContent();
278
302
  });
279
303
  } else {
280
- subscription = (_b = _editorApis.editor) === null || _b === void 0 ? void 0 : _b.onDidChangeModelContent(e => {
304
+ subscription = (_b = _editorApis.editor) === null || _b === void 0 ? void 0 : _b.onDidChangeModelContent(function (e) {
281
305
  pushEditorDocHistories();
282
306
  handleChange(e);
283
307
  });
284
308
  }
285
-
286
- return () => {
309
+ return function () {
287
310
  if (subscription) {
288
311
  subscription.dispose();
289
312
  }
290
313
  };
291
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
292
- [isReady, readOnly]); //
314
+ },
315
+ // eslint-disable-next-line react-hooks/exhaustive-deps
316
+ [isReady, readOnly]);
317
+ //
293
318
  // Handle websocket status change.
294
319
  //
295
-
296
- React__default["default"].useEffect(() => setUsercodeWebSocketState(wsUsercode.readyState), // eslint-disable-next-line react-hooks/exhaustive-deps
297
- [wsUsercode.readyState]); //
320
+ React__default["default"].useEffect(function () {
321
+ return setUsercodeWebSocketState(wsUsercode.readyState);
322
+ },
323
+ // eslint-disable-next-line react-hooks/exhaustive-deps
324
+ [wsUsercode.readyState]);
325
+ //
298
326
  // handle content change request to code editor.
299
327
  //
300
-
301
- React__default["default"].useEffect(() => {
302
- const contentChangeSub = subjects.exerciseFileEditorContentChange$.subscribe(v => {
303
- setValue(v).catch(() => void 0);
328
+ React__default["default"].useEffect(function () {
329
+ var contentChangeSub = subjects.exerciseFileEditorContentChange$.subscribe(function (v) {
330
+ setValue(v).catch(function () {
331
+ return void 0;
332
+ });
304
333
  });
305
- return () => {
334
+ return function () {
306
335
  contentChangeSub.unsubscribe();
307
336
  };
308
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
309
- []); //
337
+ },
338
+ // eslint-disable-next-line react-hooks/exhaustive-deps
339
+ []);
340
+ //
310
341
  //
311
342
  //
312
343
  // empty file
313
-
314
344
  if (!activeFilename) {
315
- return React__default["default"].createElement(ExerciseFileShimmer, null);
316
- } // non-editable file
317
-
318
-
345
+ return React__default["default"].createElement(ExerciseFileShimmer["default"], null);
346
+ }
347
+ // non-editable file
319
348
  if (!wsUsercode.docEditable) {
320
- return React__default["default"].createElement(FileViewerNonViewable, {
349
+ return React__default["default"].createElement(FileViewerNonViewable["default"], {
321
350
  filename: activeFilename,
322
351
  locale: locale
323
352
  });
324
- } // websocket not ready
325
-
326
-
353
+ }
354
+ // websocket not ready
327
355
  if (!isWebSocketReady) {
328
- return React__default["default"].createElement(ExerciseFileShimmer, null);
356
+ return React__default["default"].createElement(ExerciseFileShimmer["default"], null);
329
357
  }
330
-
331
- const uniqueFilePath = `code/${exerciseRoomId}`;
332
- const editorFilename = `${uniqueFilePath}/${activeFilename}`;
358
+ var uniqueFilePath = "code/".concat(exerciseRoomId);
359
+ var editorFilename = "".concat(uniqueFilePath, "/").concat(activeFilename);
333
360
  return React__default["default"].createElement(blocks.Flex, {
334
361
  column: true,
335
362
  width: "100%",
336
363
  height: "100%"
337
- }, React__default["default"].createElement(ExerciseFileReadOnlyBanner, null), React__default["default"].createElement(MonacoEditorLazy, {
364
+ }, React__default["default"].createElement(ExerciseFileReadOnlyBanner["default"], null), React__default["default"].createElement(MonacoEditorLazy["default"], {
338
365
  key: editorFilename,
339
366
  defaultValue: "",
340
367
  filename: editorFilename,
341
368
  markers: wsUsercode.markers,
342
369
  preference: Object.assign(Object.assign({}, preference), {
343
- readOnly
370
+ readOnly: readOnly
344
371
  }),
345
372
  noLanguageIntellisense: (lecture === null || lecture === void 0 ? void 0 : lecture.lectureType) === types.enums.LectureType.Test,
346
373
  locale: locale,
347
- onLoad: () => setEditorReady(true),
374
+ onLoad: function onLoad() {
375
+ return setEditorReady(true);
376
+ },
348
377
  onCursor: handleEditorCursor,
349
378
  onSave: handleSave,
350
379
  ref: editorApis
351
380
  }));
352
- }; //
381
+ };
353
382
 
354
- module.exports = ExerciseFileEditor;
383
+ exports["default"] = ExerciseFileEditor;
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
3
5
  var React = require('react');
4
6
  var reactIntl = require('react-intl');
5
7
  var blocks = require('@elice/blocks');
@@ -16,28 +18,24 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
16
18
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
19
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
18
20
 
19
- const StyledEditorReadOnlyBanner = styled__default["default"].div.withConfig({
21
+ var StyledEditorReadOnlyBanner = styled__default["default"].div.withConfig({
20
22
  componentId: "sc-kh9iw2-0"
21
23
  })(["flex:0 0 auto;display:flex;align-items:center;margin:0.75rem;padding:0 1rem;height:2rem;border:1px solid ", ";border-radius:2px;"], designTokens.base.color.navy5);
22
24
  /**
23
25
  * Banner for readonly exercise file.
24
26
  */
25
-
26
- const ExerciseFileReadOnlyBanner = () => {
27
- const {
28
- readOnlyActiveFile
29
- } = React__default["default"].useContext(context.ExerciseContext);
30
-
27
+ var ExerciseFileReadOnlyBanner = function ExerciseFileReadOnlyBanner() {
28
+ var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
29
+ readOnlyActiveFile = _React$useContext.readOnlyActiveFile;
31
30
  if (!readOnlyActiveFile) {
32
31
  return null;
33
32
  }
34
-
35
33
  return React__default["default"].createElement(StyledEditorReadOnlyBanner, null, React__default["default"].createElement(blocks.Text, {
36
34
  size: "tiny",
37
35
  role: "gray3"
38
36
  }, React__default["default"].createElement(reactIntl.FormattedMessage, {
39
37
  id: "[\uC77D\uAE30\uC804\uC6A9] \uC774 \uD30C\uC77C\uC740 \uC77D\uAE30\uC804\uC6A9 \uC785\uB2C8\uB2E4."
40
38
  })));
41
- }; //
39
+ };
42
40
 
43
- module.exports = ExerciseFileReadOnlyBanner;
41
+ exports["default"] = ExerciseFileReadOnlyBanner;