@elice/material-exercise 1.230328.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 (369) 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.js +559 -371
  12. package/cjs/components/material-exercise/context/recoilTypes.js +0 -5
  13. package/cjs/components/material-exercise/context/subjects.js +3 -6
  14. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  15. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -65
  16. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  17. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +7 -0
  18. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +7 -0
  19. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +20 -21
  20. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +225 -198
  21. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -10
  22. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +35 -32
  23. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +57 -48
  24. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
  25. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -1
  26. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -1
  27. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +327 -231
  28. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
  29. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +3 -1
  30. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +3 -1
  31. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +17 -17
  32. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -14
  33. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -6
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +47 -38
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +60 -42
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +29 -22
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +45 -56
  38. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  39. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +3 -1
  40. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +3 -1
  41. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -20
  42. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +5 -3
  43. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +30 -41
  44. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +17 -12
  45. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +3 -1
  46. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +3 -1
  47. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +24 -33
  48. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +13 -8
  49. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +84 -83
  50. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +3 -1
  51. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +3 -1
  52. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +20 -12
  53. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +239 -147
  55. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +92 -63
  56. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  57. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +3 -1
  58. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +3 -1
  59. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +219 -220
  60. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -13
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +30 -26
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +26 -26
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +70 -95
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +27 -27
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +54 -60
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +5 -5
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -13
  69. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +29 -26
  70. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +3 -1
  71. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +3 -1
  72. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  73. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +290 -180
  74. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  75. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -45
  76. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +7 -0
  77. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +7 -0
  78. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +19 -17
  79. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +5 -4
  80. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +15 -14
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +7 -6
  82. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +17 -16
  83. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +18 -11
  84. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -4
  85. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  86. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -7
  87. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  88. package/cjs/components/shared/file-icon/FileIcon.js +23 -23
  89. package/cjs/components/shared/file-tabs/FileTab.js +32 -43
  90. package/cjs/components/shared/file-tabs/FileTab.styled.js +26 -22
  91. package/cjs/components/shared/file-tabs/FileTabs.js +55 -49
  92. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -2
  93. package/cjs/components/shared/file-tabs/util.js +29 -18
  94. package/cjs/components/shared/file-tree/FileTree.js +11 -11
  95. package/cjs/components/shared/file-tree/FileTreeConfig.js +24 -23
  96. package/cjs/components/shared/file-tree/FileTreeList.js +35 -41
  97. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +75 -91
  98. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  99. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +77 -101
  100. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  101. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +51 -86
  102. package/cjs/components/shared/file-tree/FileTreeListItems.js +150 -153
  103. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  104. package/cjs/components/shared/file-tree/FileTreeToolbar.js +30 -41
  105. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  106. package/cjs/components/shared/file-tree/context/FileTreeContext.js +91 -97
  107. package/cjs/components/shared/file-tree/locales/en.json.js +3 -1
  108. package/cjs/components/shared/file-tree/locales/ko.json.js +3 -1
  109. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  110. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  111. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  112. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  113. package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -7
  114. package/cjs/components/shared/file-viewer/FileViewer.js +59 -60
  115. package/cjs/components/shared/file-viewer/FileViewerCsv.js +145 -101
  116. package/cjs/components/shared/file-viewer/FileViewerImage.js +7 -8
  117. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +20 -14
  118. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +28 -34
  119. package/cjs/components/shared/file-viewer/FileViewerText.js +23 -16
  120. package/cjs/components/shared/file-viewer/locales/en.json.js +3 -1
  121. package/cjs/components/shared/file-viewer/locales/ko.json.js +3 -1
  122. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +3 -1
  123. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +3 -1
  124. package/cjs/components/shared/material-modal/MaterialModal.js +10 -12
  125. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -5
  126. package/cjs/components/shared/monaco-editor/MonacoEditor.js +123 -149
  127. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +10 -8
  128. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -58
  129. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +78 -85
  130. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  131. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  132. package/cjs/components/shared/monaco-editor/constants/themes/index.js +80 -32
  133. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  134. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  135. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  136. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  137. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  138. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  139. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +36 -12
  140. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +5 -8
  141. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +36 -12
  142. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -6
  143. package/cjs/components/shared/monaco-editor/editor-languages/index.js +3 -1
  144. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  145. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +3 -2
  146. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +3 -2
  147. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +3 -2
  148. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +36 -12
  149. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +18 -24
  150. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  151. package/cjs/components/shared/monaco-editor/locales/en.json.js +3 -1
  152. package/cjs/components/shared/monaco-editor/locales/ko.json.js +3 -1
  153. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  154. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  155. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  156. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +70 -32
  157. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  158. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  159. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  160. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  161. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  162. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +30 -9
  163. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  164. package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -5
  165. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  166. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  167. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  168. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  169. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  170. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  171. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  172. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  173. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +218 -329
  174. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  175. package/cjs/components/shared/no-vnc/NoVnc.js +93 -90
  176. package/cjs/components/shared/no-vnc/NoVncLazy.js +7 -5
  177. package/cjs/components/shared/preview-container/PreviewContainer.js +7 -10
  178. package/cjs/components/shared/web-browser/WebBrowser.js +54 -59
  179. package/cjs/components/shared/xterm/Xterm.js +112 -105
  180. package/cjs/components/shared/xterm/XtermLazy.js +7 -5
  181. package/cjs/components/shared/xterm/locales/en.json.js +3 -1
  182. package/cjs/components/shared/xterm/locales/ko.json.js +3 -1
  183. package/cjs/constants/arduino.js +10 -10
  184. package/cjs/constants/shortcutKeyMap.js +5 -5
  185. package/cjs/constants/stylesheets.js +7 -10
  186. package/cjs/hooks/useArduino.js +327 -255
  187. package/cjs/hooks/useExerciseFile.js +24 -24
  188. package/cjs/hooks/useExericseShortcut.js +6 -5
  189. package/cjs/hooks/useMaterialExerciseFileUrl.js +54 -37
  190. package/cjs/hooks/useRunnerRoomWebSocket.js +58 -56
  191. package/cjs/hooks/useStdioTextConcator.js +18 -12
  192. package/cjs/hooks/useStdioWebSocket.js +41 -67
  193. package/cjs/hooks/useUsercodeEditWebSocket.js +230 -252
  194. package/cjs/hooks/useUsercodeHistory.js +121 -82
  195. package/cjs/index.js +4 -4
  196. package/cjs/utils/arduino.js +23 -25
  197. package/cjs/utils/exerciseFile.js +8 -16
  198. package/cjs/utils/runner.js +29 -25
  199. package/es/_virtual/_rollupPluginBabelHelpers.js +504 -0
  200. package/es/components/material-exercise/MaterialExercise.js +33 -54
  201. package/es/components/material-exercise/MaterialExercise.styled.js +20 -23
  202. package/es/components/material-exercise/MaterialExerciseMobile.js +15 -13
  203. package/es/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  204. package/es/components/material-exercise/context/ExerciseProvider.js +79 -79
  205. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +11 -13
  206. package/es/components/material-exercise/context/context.js +1 -1
  207. package/es/components/material-exercise/context/recoil.js +560 -372
  208. package/es/components/material-exercise/context/recoilTypes.js +0 -5
  209. package/es/components/material-exercise/context/subjects.js +3 -6
  210. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  211. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +73 -62
  212. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  213. package/es/components/material-exercise/exercise-code-history/locales/en.json.js +3 -0
  214. package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +3 -0
  215. package/es/components/material-exercise/exercise-file/ExerciseFile.js +15 -18
  216. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +218 -193
  217. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -9
  218. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +31 -28
  219. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +52 -45
  220. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  221. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +321 -225
  222. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  223. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +12 -14
  224. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -10
  225. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -5
  226. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +43 -36
  227. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +53 -37
  228. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +25 -20
  229. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +41 -54
  230. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  231. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +25 -19
  232. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  233. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +21 -34
  234. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -10
  235. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +17 -28
  236. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +9 -6
  237. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +81 -82
  238. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +13 -7
  239. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  240. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +236 -146
  241. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +90 -63
  242. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  243. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +212 -215
  244. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  245. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +7 -9
  246. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +27 -25
  247. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +22 -24
  248. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +66 -93
  249. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +24 -26
  250. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +51 -59
  251. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -4
  252. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +6 -11
  253. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +26 -25
  254. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  255. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +284 -174
  256. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  257. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +38 -44
  258. package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +3 -0
  259. package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +3 -0
  260. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +16 -16
  261. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -3
  262. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -13
  263. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -3
  264. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -15
  265. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +15 -10
  266. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +2 -3
  267. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  268. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +5 -6
  269. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  270. package/es/components/shared/file-icon/FileIcon.js +20 -22
  271. package/es/components/shared/file-tabs/FileTab.js +28 -41
  272. package/es/components/shared/file-tabs/FileTab.styled.js +26 -22
  273. package/es/components/shared/file-tabs/FileTabs.js +52 -48
  274. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  275. package/es/components/shared/file-tabs/util.js +29 -18
  276. package/es/components/shared/file-tree/FileTree.js +3 -5
  277. package/es/components/shared/file-tree/FileTreeConfig.js +21 -22
  278. package/es/components/shared/file-tree/FileTreeList.js +31 -39
  279. package/es/components/shared/file-tree/FileTreeListItemContent.js +67 -85
  280. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  281. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +74 -100
  282. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  283. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +48 -85
  284. package/es/components/shared/file-tree/FileTreeListItems.js +147 -152
  285. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  286. package/es/components/shared/file-tree/FileTreeToolbar.js +24 -37
  287. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  288. package/es/components/shared/file-tree/context/FileTreeContext.js +91 -97
  289. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  290. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  291. package/es/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  292. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  293. package/es/components/shared/file-tree/utils/fileTreePath.js +5 -7
  294. package/es/components/shared/file-viewer/FileViewer.js +52 -53
  295. package/es/components/shared/file-viewer/FileViewerCsv.js +141 -99
  296. package/es/components/shared/file-viewer/FileViewerImage.js +3 -6
  297. package/es/components/shared/file-viewer/FileViewerIpynb.js +16 -12
  298. package/es/components/shared/file-viewer/FileViewerNonViewable.js +22 -30
  299. package/es/components/shared/file-viewer/FileViewerText.js +18 -13
  300. package/es/components/shared/material-modal/MaterialModal.js +7 -11
  301. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  302. package/es/components/shared/monaco-editor/MonacoEditor.js +119 -147
  303. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +6 -4
  304. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +45 -56
  305. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +73 -82
  306. package/es/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  307. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  308. package/es/components/shared/monaco-editor/constants/themes/index.js +80 -32
  309. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  310. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  311. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  312. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  313. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  314. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  315. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -11
  316. package/es/components/shared/monaco-editor/editor-languages/css/index.js +2 -5
  317. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -11
  318. package/es/components/shared/monaco-editor/editor-languages/html/index.js +2 -5
  319. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  320. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +0 -1
  321. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +0 -1
  322. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +0 -1
  323. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +33 -11
  324. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -16
  325. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  326. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  327. package/es/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  328. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  329. package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -31
  330. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  331. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  332. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  333. package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  334. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  335. package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -8
  336. package/es/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  337. package/es/components/shared/monaco-editor/utils/theme/index.js +22 -5
  338. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  339. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  340. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  341. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  342. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  343. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  344. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  345. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  346. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +219 -330
  347. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  348. package/es/components/shared/no-vnc/NoVnc.js +89 -88
  349. package/es/components/shared/no-vnc/NoVncLazy.js +4 -2
  350. package/es/components/shared/preview-container/PreviewContainer.js +7 -10
  351. package/es/components/shared/web-browser/WebBrowser.js +49 -56
  352. package/es/components/shared/xterm/Xterm.js +107 -102
  353. package/es/components/shared/xterm/XtermLazy.js +4 -2
  354. package/es/constants/arduino.js +10 -10
  355. package/es/constants/shortcutKeyMap.js +3 -5
  356. package/es/constants/stylesheets.js +7 -10
  357. package/es/hooks/useArduino.js +327 -255
  358. package/es/hooks/useExerciseFile.js +24 -24
  359. package/es/hooks/useExericseShortcut.js +6 -5
  360. package/es/hooks/useMaterialExerciseFileUrl.js +55 -38
  361. package/es/hooks/useRunnerRoomWebSocket.js +58 -56
  362. package/es/hooks/useStdioTextConcator.js +18 -12
  363. package/es/hooks/useStdioWebSocket.js +41 -67
  364. package/es/hooks/useUsercodeEditWebSocket.js +230 -252
  365. package/es/hooks/useUsercodeHistory.js +122 -83
  366. package/es/utils/arduino.js +23 -25
  367. package/es/utils/exerciseFile.js +8 -16
  368. package/es/utils/runner.js +29 -25
  369. package/package.json +8 -8
@@ -1,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import React from 'react';
2
3
  import { useIntl, FormattedMessage } from 'react-intl';
3
4
  import { Popover, Flex, Text, Hspace, NotificationCount, IconButton, Icon, Vspace } from '@elice/blocks';
@@ -12,47 +13,45 @@ import '../context/subjects.js';
12
13
  import '../context/ExerciseProvider.js';
13
14
  import { StyledFilePopoverContent, StyledFilePopoverHeader, StyledFilePopoverBody, StyledMenuButtonFileCount, StyledFilePopoverBodyList, StyledFilePopoverBodyListItem, StyledFilePopoverBodyListItemContentFile, StyledFilePopoverBodyListItemDownloadButton, StyledFilePopoverBodyListItemContentImageWrap, StyledFilePopoverBodyListItemContentImage } from './ExerciseMenuStdioFileBrowser.styled.js';
14
15
 
15
- const IMAGE_NEW_WIN_IFRAME_STYLE = 'border:0; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%;';
16
-
17
- const ExerciseMenuStdioFileBrowser = () => {
18
- const intl = useIntl();
19
- const [open, setOpen] = React.useState(false);
20
- const anchorRef = React.useRef(null);
21
- const stdioFiles = useRecoilValue(exerciseRunnerStdioFilesState);
16
+ var IMAGE_NEW_WIN_IFRAME_STYLE = 'border:0; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%;';
17
+ var ExerciseMenuStdioFileBrowser = function ExerciseMenuStdioFileBrowser() {
18
+ var intl = useIntl();
19
+ var _React$useState = React.useState(false),
20
+ _React$useState2 = _slicedToArray(_React$useState, 2),
21
+ open = _React$useState2[0],
22
+ setOpen = _React$useState2[1];
23
+ var anchorRef = React.useRef(null);
24
+ var stdioFiles = useRecoilValue(exerciseRunnerStdioFilesState);
22
25
  /**
23
26
  * Open image as new window.
24
27
  */
25
-
26
- const handleImageFileClick = e => {
28
+ var handleImageFileClick = function handleImageFileClick(e) {
27
29
  e.preventDefault();
28
- const win = window.open('about:blank', e.currentTarget.target);
29
-
30
+ var win = window.open('about:blank', e.currentTarget.target);
30
31
  if (win) {
31
32
  // since `Not allowed to navigate top frame to data URL:` error thrown by browser,
32
33
  // use iframe to display image at new window.
33
- win.document.write(`<iframe src="${e.currentTarget.href}" frameborder="0" style="${IMAGE_NEW_WIN_IFRAME_STYLE}" allowfullscreen></iframe>`);
34
+ win.document.write("<iframe src=\"".concat(e.currentTarget.href, "\" frameborder=\"0\" style=\"").concat(IMAGE_NEW_WIN_IFRAME_STYLE, "\" allowfullscreen></iframe>"));
34
35
  win.focus();
35
36
  }
36
- }; //
37
+ };
38
+ //
37
39
  // Open stdio file browser, on file changes.
38
40
  //
39
-
40
-
41
- React.useEffect(() => {
41
+ React.useEffect(function () {
42
42
  if (stdioFiles && stdioFiles.length > 0) {
43
43
  setOpen(true);
44
44
  }
45
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
45
+ },
46
+ // eslint-disable-next-line react-hooks/exhaustive-deps
46
47
  [stdioFiles]);
47
48
  /**
48
49
  * Image type stdio file.
49
50
  */
50
-
51
- const renderStdioFileListItemImage = (key, f) => {
51
+ var renderStdioFileListItemImage = function renderStdioFileListItemImage(key, f) {
52
52
  var _a;
53
-
54
- const ext = (_a = f.mime) === null || _a === void 0 ? void 0 : _a.split('/').pop();
55
- const filename = ext ? `image_output.${ext}` : 'image_output';
53
+ var ext = (_a = f.mime) === null || _a === void 0 ? void 0 : _a.split('/').pop();
54
+ var filename = ext ? "image_output.".concat(ext) : 'image_output';
56
55
  return React.createElement(StyledFilePopoverBodyListItem, {
57
56
  key: key
58
57
  }, React.createElement(StyledFilePopoverBodyListItemContentImageWrap, {
@@ -73,10 +72,8 @@ const ExerciseMenuStdioFileBrowser = () => {
73
72
  /**
74
73
  * File type stdio file.
75
74
  */
76
-
77
-
78
- const renderStdioFileListFile = (key, f) => {
79
- const size = (f.data.length / 1024).toFixed(2);
75
+ var renderStdioFileListFile = function renderStdioFileListFile(key, f) {
76
+ var size = (f.data.length / 1024).toFixed(2);
80
77
  return React.createElement(StyledFilePopoverBodyListItem, {
81
78
  key: key
82
79
  }, React.createElement(StyledFilePopoverBodyListItemContentFile, null, React.createElement(Text, {
@@ -84,7 +81,7 @@ const ExerciseMenuStdioFileBrowser = () => {
84
81
  role: "white",
85
82
  size: "small"
86
83
  }), React.createElement(Text, {
87
- children: `${size} KB`,
84
+ children: "".concat(size, " KB"),
88
85
  role: "gray4",
89
86
  size: "tiny"
90
87
  })), React.createElement(StyledFilePopoverBodyListItemDownloadButton, {
@@ -97,9 +94,7 @@ const ExerciseMenuStdioFileBrowser = () => {
97
94
  /**
98
95
  * Empty list of stdio files.
99
96
  */
100
-
101
-
102
- const renderStdioFileListEmpty = () => {
97
+ var renderStdioFileListEmpty = function renderStdioFileListEmpty() {
103
98
  return React.createElement(Flex, {
104
99
  column: true,
105
100
  align: "center",
@@ -123,21 +118,16 @@ const ExerciseMenuStdioFileBrowser = () => {
123
118
  /**
124
119
  * List of stdio files.
125
120
  */
126
-
127
-
128
- const renderStdioFileList = () => {
121
+ var renderStdioFileList = function renderStdioFileList() {
129
122
  if (!stdioFiles || !stdioFiles.length) {
130
123
  return renderStdioFileListEmpty();
131
124
  }
132
-
133
- return React.createElement(StyledFilePopoverBodyList, null, stdioFiles.map((f, index) => {
125
+ return React.createElement(StyledFilePopoverBodyList, null, stdioFiles.map(function (f, index) {
134
126
  switch (f.type) {
135
127
  case 'image':
136
128
  return renderStdioFileListItemImage(index, f);
137
-
138
129
  case 'file':
139
130
  return renderStdioFileListFile(index, f);
140
-
141
131
  default:
142
132
  return null;
143
133
  }
@@ -146,9 +136,7 @@ const ExerciseMenuStdioFileBrowser = () => {
146
136
  /**
147
137
  * Popover header.
148
138
  */
149
-
150
-
151
- const renderStdioFilePopoverHeader = () => {
139
+ var renderStdioFilePopoverHeader = function renderStdioFilePopoverHeader() {
152
140
  return React.createElement(StyledFilePopoverHeader, null, React.createElement(Flex, {
153
141
  align: "center"
154
142
  }, React.createElement(Text, {
@@ -168,15 +156,15 @@ const ExerciseMenuStdioFileBrowser = () => {
168
156
  size: "micro",
169
157
  border: false,
170
158
  transparent: true,
171
- onClick: () => setOpen(false)
159
+ onClick: function onClick() {
160
+ return setOpen(false);
161
+ }
172
162
  }));
173
163
  };
174
164
  /**
175
165
  * Popover body.
176
166
  */
177
-
178
-
179
- const renderStdioFilePopoverBody = () => {
167
+ var renderStdioFilePopoverBody = function renderStdioFilePopoverBody() {
180
168
  return React.createElement(StyledFilePopoverBody, {
181
169
  children: renderStdioFileList()
182
170
  });
@@ -184,9 +172,7 @@ const ExerciseMenuStdioFileBrowser = () => {
184
172
  /**
185
173
  * Popover.
186
174
  */
187
-
188
-
189
- const renderStdioFilePopover = () => {
175
+ var renderStdioFilePopover = function renderStdioFilePopover() {
190
176
  return React.createElement(Popover, {
191
177
  open: open,
192
178
  anchorEl: anchorRef.current,
@@ -199,26 +185,27 @@ const ExerciseMenuStdioFileBrowser = () => {
199
185
  /**
200
186
  * Popover toggle button.
201
187
  */
202
-
203
-
204
- const renderStdioFilePopoverToggleButton = () => {
188
+ var renderStdioFilePopoverToggleButton = function renderStdioFilePopoverToggleButton() {
205
189
  return React.createElement(ExerciseMenuButton, {
206
190
  icon: eilAttachment,
207
191
  active: open,
208
192
  title: intl.formatMessage({
209
193
  id: 'exerciseMenu.stdioFileBrowser.button.tooltip'
210
194
  }),
211
- onClick: () => setOpen(prev => !prev),
195
+ onClick: function onClick() {
196
+ return setOpen(function (prev) {
197
+ return !prev;
198
+ });
199
+ },
212
200
  ref: anchorRef
213
201
  }, React.createElement(StyledMenuButtonFileCount, {
214
202
  role: "white",
215
203
  value: stdioFiles.length
216
204
  }));
217
- }; //
205
+ };
206
+ //
218
207
  //
219
208
  //
220
-
221
-
222
209
  return React.createElement(React.Fragment, null, renderStdioFilePopover(), renderStdioFilePopoverToggleButton());
223
210
  };
224
211
 
@@ -2,40 +2,40 @@ import { NotificationCount, Select } from '@elice/blocks';
2
2
  import { base } from '@elice/design-tokens';
3
3
  import styled from 'styled-components';
4
4
 
5
- const StyledMenuButtonFileCount = styled(NotificationCount).withConfig({
5
+ var StyledMenuButtonFileCount = styled(NotificationCount).withConfig({
6
6
  componentId: "sc-9mtuee-0"
7
7
  })(["position:absolute;top:0.2rem;right:0.2rem;padding:0;min-width:0.625rem;height:0.625rem;font-size:0.5rem;"]);
8
- const StyledFilePopoverContent = styled.div.withConfig({
8
+ var StyledFilePopoverContent = styled.div.withConfig({
9
9
  componentId: "sc-9mtuee-1"
10
10
  })(["display:flex;flex-direction:column;padding:0;width:252px;min-height:178px;max-height:383px;border-radius:8px;background-color:", ";overflow:hidden;"], base.color.navy6);
11
- const StyledFilePopoverHeader = styled.div.withConfig({
11
+ var StyledFilePopoverHeader = styled.div.withConfig({
12
12
  componentId: "sc-9mtuee-2"
13
13
  })(["flex:0 0 2.5rem;display:flex;justify-content:space-between;align-items:center;padding:0 1rem;color:white;background-color:", ";"], base.color.navy7);
14
- const StyledFilePopoverBody = styled.div.withConfig({
14
+ var StyledFilePopoverBody = styled.div.withConfig({
15
15
  componentId: "sc-9mtuee-3"
16
16
  })(["flex:1;overflow-x:hidden;overflow-y:auto;"]);
17
- const StyledFilePopoverBodyList = styled.ul.withConfig({
17
+ var StyledFilePopoverBodyList = styled.ul.withConfig({
18
18
  componentId: "sc-9mtuee-4"
19
19
  })(["margin:0;padding:0.5rem;width:100%;height:100%;"]);
20
- const StyledFilePopoverBodyListItem = styled.li.withConfig({
20
+ var StyledFilePopoverBodyListItem = styled.li.withConfig({
21
21
  componentId: "sc-9mtuee-5"
22
22
  })(["display:flex;margin-bottom:0.5rem;border-radius:0.5rem;background-color:", ";overflow:hidden;&:last-of-type{margin-bottom:0;}"], base.color.navy5);
23
- const StyledFilePopoverBodyListItemDownloadButton = styled.a.withConfig({
23
+ var StyledFilePopoverBodyListItemDownloadButton = styled.a.withConfig({
24
24
  componentId: "sc-9mtuee-6"
25
25
  })(["display:flex;align-items:center;justify-content:center;padding:0.75rem;color:", ";font-size:1rem;background-color:", ";"], base.color.white, base.color.primary5);
26
- const StyledFilePopoverBodyListItemContentFile = styled.div.withConfig({
26
+ var StyledFilePopoverBodyListItemContentFile = styled.div.withConfig({
27
27
  componentId: "sc-9mtuee-7"
28
28
  })(["flex:1;display:flex;align-items:center;justify-content:space-between;padding:0 0.5rem;"]);
29
- const StyledFilePopoverBodyListItemContentImageWrap = styled.a.withConfig({
29
+ var StyledFilePopoverBodyListItemContentImageWrap = styled.a.withConfig({
30
30
  componentId: "sc-9mtuee-8"
31
31
  })(["display:flex;padding:0.5rem;flex:1 1 0;background:", ";"], base.color.white);
32
- const StyledFilePopoverBodyListItemContentImage = styled.img.withConfig({
32
+ var StyledFilePopoverBodyListItemContentImage = styled.img.withConfig({
33
33
  componentId: "sc-9mtuee-9"
34
34
  })(["width:100%;max-height:128px;object-fit:contain;"]);
35
- const StyledPreferenceBodyItem = styled.div.withConfig({
35
+ var StyledPreferenceBodyItem = styled.div.withConfig({
36
36
  componentId: "sc-9mtuee-10"
37
37
  })(["display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;min-height:2rem;color:white;&:last-child{margin-bottom:0;}"]);
38
- const StyledSelect = styled(Select).withConfig({
38
+ var StyledSelect = styled(Select).withConfig({
39
39
  componentId: "sc-9mtuee-11"
40
40
  })(["> div{background:", " !important;border-color:", " !important;}select{padding:0 !important;height:2rem !important;color:#fff !important;> option{background:", " !important;}}"], base.color.navy8, base.color.navy7, base.color.navy8);
41
41
 
@@ -1,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import React from 'react';
2
3
  import { Dropdown } from '@elice/blocks';
3
4
  import { useRecoilValue, useRecoilState } from 'recoil';
@@ -7,36 +8,41 @@ import '../context/recoilTypes.js';
7
8
  import '../context/subjects.js';
8
9
  import '../context/ExerciseProvider.js';
9
10
 
10
- const ExerciseMultilangDropdown = () => {
11
- const {
12
- materialExerciseId,
13
- exerciseRoomId
14
- } = React.useContext(ExerciseContext);
15
- const multilangLanguages = useRecoilValue(exerciseMultilangLanguagesState(materialExerciseId));
16
- const [multilangEnvironment, setMultilangEnvironment] = useRecoilState(exerciseMultilangEnvironmentState({
17
- materialExerciseId,
18
- exerciseRoomId
19
- })); //
11
+ var ExerciseMultilangDropdown = function ExerciseMultilangDropdown() {
12
+ var _React$useContext = React.useContext(ExerciseContext),
13
+ materialExerciseId = _React$useContext.materialExerciseId,
14
+ exerciseRoomId = _React$useContext.exerciseRoomId;
15
+ var multilangLanguages = useRecoilValue(exerciseMultilangLanguagesState(materialExerciseId));
16
+ var _useRecoilState = useRecoilState(exerciseMultilangEnvironmentState({
17
+ materialExerciseId: materialExerciseId,
18
+ exerciseRoomId: exerciseRoomId
19
+ })),
20
+ _useRecoilState2 = _slicedToArray(_useRecoilState, 2),
21
+ multilangEnvironment = _useRecoilState2[0],
22
+ setMultilangEnvironment = _useRecoilState2[1];
23
+ //
20
24
  //
21
25
  //
22
-
23
26
  if (!multilangLanguages || !Object.keys(multilangLanguages !== null && multilangLanguages !== void 0 ? multilangLanguages : {}).length || !multilangEnvironment) {
24
27
  return null;
25
28
  }
26
-
27
29
  return React.createElement(Dropdown, {
28
30
  type: "dark",
29
31
  size: "tiny",
30
32
  border: true,
31
33
  placement: "bottom-end",
32
34
  value: multilangEnvironment.language,
33
- onChange: language => setMultilangEnvironment({
34
- language
35
- })
36
- }, Object.keys(multilangLanguages).map(lang => React.createElement("option", {
37
- key: lang,
38
- value: lang
39
- }, multilangLanguages[lang].label)));
35
+ onChange: function onChange(language) {
36
+ return setMultilangEnvironment({
37
+ language: language
38
+ });
39
+ }
40
+ }, Object.keys(multilangLanguages).map(function (lang) {
41
+ return React.createElement("option", {
42
+ key: lang,
43
+ value: lang
44
+ }, multilangLanguages[lang].label);
45
+ }));
40
46
  };
41
47
 
42
48
  export { ExerciseMultilangDropdown as default };
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import ExerciseMultilangDropdown from './ExerciseMultilangDropdown.js';
3
3
 
4
- const ExerciseMultilangDropdownLazy = () => {
4
+ var ExerciseMultilangDropdownLazy = function ExerciseMultilangDropdownLazy() {
5
5
  return React.createElement(React.Suspense, {
6
6
  fallback: null
7
7
  }, React.createElement(ExerciseMultilangDropdown, null));
@@ -14,7 +14,7 @@ import phrasesEn from './locales/en.json.js';
14
14
  import phrasesKo from './locales/ko.json.js';
15
15
  import ExercisePreviewDisplayModeButton from './ExercisePreviewDisplayModeButton.js';
16
16
 
17
- const StyledExercisePreview = styled.div.withConfig({
17
+ var StyledExercisePreview = styled.div.withConfig({
18
18
  componentId: "sc-i6d1i5-0"
19
19
  })(["width:100%;height:100%;background-color:", ";"], base.color.navy7);
20
20
  /**
@@ -22,54 +22,47 @@ const StyledExercisePreview = styled.div.withConfig({
22
22
  * - NoVnc
23
23
  * - Web browser
24
24
  */
25
-
26
- const ExercisePreview = () => {
27
- const {
28
- materialExerciseId
29
- } = React.useContext(ExerciseContext);
30
- const exercise = useRecoilValue(exerciseState(materialExerciseId));
31
- const exercisePreviewType = useRecoilValue(exercisePreviewTypeState(materialExerciseId)); // runner states
32
-
33
- const isSubmitting = useRecoilValue(exerciseRunnerSubmittingState);
34
- const isRunning = useRecoilValue(exerciseRunnerRunningState);
35
- const exerciseRunnerRoomConnectionInfo = useRecoilValue(exerciseRunnerRoomConnectionInfoState); // preview refs
36
-
37
- const noVnc = React.useRef(null);
38
- const webBrowser = React.useRef(null); //
25
+ var ExercisePreview = function ExercisePreview() {
26
+ var _React$useContext = React.useContext(ExerciseContext),
27
+ materialExerciseId = _React$useContext.materialExerciseId;
28
+ var exercise = useRecoilValue(exerciseState(materialExerciseId));
29
+ var exercisePreviewType = useRecoilValue(exercisePreviewTypeState(materialExerciseId));
30
+ // runner states
31
+ var isSubmitting = useRecoilValue(exerciseRunnerSubmittingState);
32
+ var isRunning = useRecoilValue(exerciseRunnerRunningState);
33
+ var exerciseRunnerRoomConnectionInfo = useRecoilValue(exerciseRunnerRoomConnectionInfoState);
34
+ // preview refs
35
+ var noVnc = React.useRef(null);
36
+ var webBrowser = React.useRef(null);
37
+ //
39
38
  // Action when exercise submitted.
40
39
  //
41
-
42
- React.useEffect(() => {
40
+ React.useEffect(function () {
43
41
  var _a, _b;
44
-
45
42
  if (!isSubmitting) {
46
43
  return;
47
44
  }
48
-
49
45
  switch (exercisePreviewType) {
50
46
  case ExercisePreviewType.NoVnc:
51
47
  (_a = noVnc.current) === null || _a === void 0 ? void 0 : _a.reset();
52
48
  break;
53
-
54
49
  case ExercisePreviewType.WebBrowser:
55
50
  (_b = webBrowser.current) === null || _b === void 0 ? void 0 : _b.reload();
56
51
  break;
57
52
  }
58
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
53
+ },
54
+ // eslint-disable-next-line react-hooks/exhaustive-deps
59
55
  [isSubmitting]);
60
56
  /**
61
57
  * NoVnc
62
58
  */
63
-
64
- const renderNoVnc = () => {
59
+ var renderNoVnc = function renderNoVnc() {
65
60
  if (exercisePreviewType !== ExercisePreviewType.NoVnc) {
66
61
  return null;
67
62
  }
68
-
69
63
  if (!(exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) || !exerciseRunnerRoomConnectionInfo) {
70
64
  return null;
71
65
  }
72
-
73
66
  return React.createElement(NoVncLazy, Object.assign({}, exerciseRunnerRoomConnectionInfo, {
74
67
  isRunning: isRunning,
75
68
  readyExerciseImage: exercise.readyExerciseImage,
@@ -80,29 +73,23 @@ const ExercisePreview = () => {
80
73
  /**
81
74
  * Web browser
82
75
  */
83
-
84
-
85
- const renderWebBrowser = () => {
76
+ var renderWebBrowser = function renderWebBrowser() {
86
77
  if (exercisePreviewType !== ExercisePreviewType.WebBrowser) {
87
78
  return null;
88
79
  }
89
-
90
80
  if (!exerciseRunnerRoomConnectionInfo) {
91
81
  return null;
92
82
  }
93
-
94
83
  return React.createElement(WebBrowser, Object.assign({}, exerciseRunnerRoomConnectionInfo, {
95
84
  menuButtons: React.createElement(ExercisePreviewDisplayModeButton, null),
96
85
  ref: webBrowser
97
86
  }));
98
- }; //
87
+ };
88
+ //
99
89
  //
100
90
  //
101
-
102
-
103
91
  return React.createElement(StyledExercisePreview, null, renderNoVnc(), renderWebBrowser());
104
92
  };
105
-
106
93
  var ExercisePreview$1 = withExerciseIntlProvider(ExercisePreview, {
107
94
  en: phrasesEn,
108
95
  ko: phrasesKo
@@ -1,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import React, { forwardRef } from 'react';
2
3
  import { useIntl } from 'react-intl';
3
4
  import { eilScreenHalf, eilPanelRight } from '@elice/icons';
@@ -9,22 +10,24 @@ import { ExercisePreviewDisplayMode } from '../context/recoilTypes.js';
9
10
  import '../context/subjects.js';
10
11
  import '../context/ExerciseProvider.js';
11
12
 
12
- const ExercisePreviewDisplayModeButton = forwardRef((props, ref) => {
13
+ var ExercisePreviewDisplayModeButton = forwardRef(function (props, ref) {
13
14
  var _a;
14
-
15
- const intl = useIntl();
16
- const [exercisePreviewDisplayMode, setExercisePreviewDisplayMode] = useRecoilState(exercisePreviewDisplayModeState);
15
+ var intl = useIntl();
16
+ var _useRecoilState = useRecoilState(exercisePreviewDisplayModeState),
17
+ _useRecoilState2 = _slicedToArray(_useRecoilState, 2),
18
+ exercisePreviewDisplayMode = _useRecoilState2[0],
19
+ setExercisePreviewDisplayMode = _useRecoilState2[1];
17
20
  /**
18
21
  * Handle click.
19
22
  */
20
-
21
- const handleClick = () => {
22
- setExercisePreviewDisplayMode(prevDisplayMode => prevDisplayMode === ExercisePreviewDisplayMode.Mini ? ExercisePreviewDisplayMode.SideBySide : ExercisePreviewDisplayMode.Mini);
23
- }; //
23
+ var handleClick = function handleClick() {
24
+ setExercisePreviewDisplayMode(function (prevDisplayMode) {
25
+ return prevDisplayMode === ExercisePreviewDisplayMode.Mini ? ExercisePreviewDisplayMode.SideBySide : ExercisePreviewDisplayMode.Mini;
26
+ });
27
+ };
28
+ //
24
29
  //
25
30
  //
26
-
27
-
28
31
  return React.createElement(ExerciseMenuButton, Object.assign({}, props, {
29
32
  icon: exercisePreviewDisplayMode === ExercisePreviewDisplayMode.Mini ? eilScreenHalf : eilPanelRight,
30
33
  title: ((_a = props.title) !== null && _a !== void 0 ? _a : exercisePreviewDisplayMode === ExercisePreviewDisplayMode.Mini) ? intl.formatMessage({
@@ -1,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import React from 'react';
2
3
  import { FormattedMessage } from 'react-intl';
3
4
  import { IconButton, Flex, Text, Hr } from '@elice/blocks';
@@ -17,49 +18,46 @@ import phrasesKo from './locales/ko.json.js';
17
18
  import ExerciseRightpaneEditorPerference from './ExerciseRightpaneEditorPerference.js';
18
19
  import ExerciseRightpaneEnvironment from './ExerciseRightpaneEnvironment.js';
19
20
 
20
- const HEADER_CLOSE_BUTTON_SIZE = '1.75rem';
21
- const StyledRightpaneWrap = styled.div.withConfig({
21
+ var HEADER_CLOSE_BUTTON_SIZE = '1.75rem';
22
+ var StyledRightpaneWrap = styled.div.withConfig({
22
23
  componentId: "sc-1tj3x49-0"
23
24
  })(["position:relative;display:flex;flex-direction:column;width:20rem;border-left:", ";color:white;background-color:", ";"], MATERIAL_DIVIDER_BORDER_VALUE, base.color.navy9);
24
- const StyledPreferenceHeader = styled.div.withConfig({
25
+ var StyledPreferenceHeader = styled.div.withConfig({
25
26
  componentId: "sc-1tj3x49-1"
26
27
  })(["display:flex;flex-direction:column;padding:0.25rem 1rem;"]);
27
- const StyledPreferenceHeaderCloseButton = styled(IconButton).withConfig({
28
+ var StyledPreferenceHeaderCloseButton = styled(IconButton).withConfig({
28
29
  componentId: "sc-1tj3x49-2"
29
30
  })(["flex:0 0 ", ";height:", " !important;"], HEADER_CLOSE_BUTTON_SIZE, HEADER_CLOSE_BUTTON_SIZE);
30
- const StyledRightpaneBodyWrap = styled.div.withConfig({
31
+ var StyledRightpaneBodyWrap = styled.div.withConfig({
31
32
  componentId: "sc-1tj3x49-3"
32
33
  })(["flex:1;padding:1rem;overflow-x:hidden;overflow-y:auto;", ""], getMaterialScrollBarCss({
33
34
  width: '0.375rem',
34
35
  borderRadius: '2px'
35
36
  }));
36
-
37
- const ExerciseRightpane = () => {
38
- const [activeState, setActiveState] = useRecoilState(exerciseRightpaneActiveState);
37
+ var ExerciseRightpane = function ExerciseRightpane() {
38
+ var _useRecoilState = useRecoilState(exerciseRightpaneActiveState),
39
+ _useRecoilState2 = _slicedToArray(_useRecoilState, 2),
40
+ activeState = _useRecoilState2[0],
41
+ setActiveState = _useRecoilState2[1];
39
42
  /**
40
43
  *
41
44
  */
42
-
43
- const handleClose = () => {
45
+ var handleClose = function handleClose() {
44
46
  setActiveState(null);
45
47
  };
46
48
  /**
47
49
  * Title of pane header.
48
50
  */
49
-
50
-
51
- const renderRightpaneHeaderTitle = () => {
51
+ var renderRightpaneHeaderTitle = function renderRightpaneHeaderTitle() {
52
52
  switch (activeState) {
53
53
  case 'environment':
54
54
  return React.createElement(FormattedMessage, {
55
55
  id: "exerciseRightpane.environment.title"
56
56
  });
57
-
58
57
  case 'preference':
59
58
  return React.createElement(FormattedMessage, {
60
59
  id: "exerciseRightpane.preference.title"
61
60
  });
62
-
63
61
  default:
64
62
  return '';
65
63
  }
@@ -67,9 +65,7 @@ const ExerciseRightpane = () => {
67
65
  /**
68
66
  * Pane header.
69
67
  */
70
-
71
-
72
- const renderRightpaneHeader = () => {
68
+ var renderRightpaneHeader = function renderRightpaneHeader() {
73
69
  return React.createElement(StyledPreferenceHeader, null, React.createElement(Flex, {
74
70
  align: "center"
75
71
  }, React.createElement(Text, {
@@ -86,35 +82,28 @@ const ExerciseRightpane = () => {
86
82
  /**
87
83
  * Pane content.
88
84
  */
89
-
90
-
91
- const renderRightpaneBodyContent = () => {
85
+ var renderRightpaneBodyContent = function renderRightpaneBodyContent() {
92
86
  switch (activeState) {
93
87
  case 'environment':
94
88
  return React.createElement(ExerciseRightpaneEnvironment, null);
95
-
96
89
  case 'preference':
97
90
  return React.createElement(ExerciseRightpaneEditorPerference, null);
98
-
99
91
  default:
100
92
  return null;
101
93
  }
102
- }; //
94
+ };
95
+ //
103
96
  //
104
97
  //
105
-
106
-
107
98
  if (!activeState) {
108
99
  return null;
109
100
  }
110
-
111
101
  return React.createElement(StyledRightpaneWrap, null, renderRightpaneHeader(), React.createElement(Hr, {
112
102
  marginStart: 0,
113
103
  marginEnd: 0,
114
104
  color: base.color.navy6
115
105
  }), React.createElement(StyledRightpaneBodyWrap, null, renderRightpaneBodyContent()));
116
106
  };
117
-
118
107
  var ExerciseRightpane$1 = withExerciseIntlProvider(ExerciseRightpane, {
119
108
  en: phrasesEn,
120
109
  ko: phrasesKo
@@ -1,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import React from 'react';
2
3
  import { useRecoilState } from 'recoil';
3
4
  import '../../shared/monaco-editor/MonacoEditorLazy.js';
@@ -10,16 +11,18 @@ import '../context/recoilTypes.js';
10
11
  import '../context/subjects.js';
11
12
  import '../context/ExerciseProvider.js';
12
13
 
13
- const ExerciseRightpaneEditorPerference = () => {
14
- const {
15
- locale
16
- } = React.useContext(ExerciseContext);
17
- const [preference, setPreference] = useRecoilState(exerciseEditorPreferenceState);
14
+ var ExerciseRightpaneEditorPerference = function ExerciseRightpaneEditorPerference() {
15
+ var _React$useContext = React.useContext(ExerciseContext),
16
+ locale = _React$useContext.locale;
17
+ var _useRecoilState = useRecoilState(exerciseEditorPreferenceState),
18
+ _useRecoilState2 = _slicedToArray(_useRecoilState, 2),
19
+ preference = _useRecoilState2[0],
20
+ setPreference = _useRecoilState2[1];
18
21
  return React.createElement(MonacoEditorPerference, {
19
22
  value: preference,
20
23
  locale: locale,
21
24
  onChange: setPreference
22
25
  });
23
- }; //
26
+ };
24
27
 
25
28
  export { ExerciseRightpaneEditorPerference as default };