@elice/material-exercise 1.231212.0 → 1.231228.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 (395) hide show
  1. package/cjs/components/material-exercise/MaterialExercise.i18n.js +2 -4
  2. package/cjs/components/material-exercise/MaterialExercise.js +54 -59
  3. package/cjs/components/material-exercise/MaterialExercise.styled.js +14 -20
  4. package/cjs/components/material-exercise/MaterialExerciseMobile.js +8 -15
  5. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +14 -18
  6. package/cjs/components/material-exercise/context/ExerciseProvider.js +58 -66
  7. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +19 -24
  8. package/cjs/components/material-exercise/context/context.js +1 -7
  9. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +1 -1
  10. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +1 -1
  11. package/cjs/components/material-exercise/context/recoil.js +293 -544
  12. package/cjs/components/material-exercise/context/recoilTypes.js +0 -2
  13. package/cjs/components/material-exercise/context/subjects.js +3 -5
  14. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +60 -67
  15. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -14
  16. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +1 -1
  17. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +1 -1
  18. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +17 -21
  19. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +133 -203
  20. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -12
  21. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +24 -40
  22. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +38 -52
  23. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +5 -9
  24. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +1 -1
  25. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +1 -1
  26. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +189 -328
  27. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +5 -9
  28. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +1 -1
  29. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +1 -1
  30. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +14 -17
  31. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +11 -15
  32. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +7 -11
  33. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +44 -65
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +32 -61
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +19 -35
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +48 -62
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -18
  38. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
  39. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
  40. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +21 -32
  41. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +4 -8
  42. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +23 -27
  43. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +7 -17
  44. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +1 -1
  45. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +1 -1
  46. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +23 -32
  47. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +7 -15
  48. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +79 -86
  49. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +1 -1
  50. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +1 -1
  51. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +11 -22
  52. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -20
  53. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +180 -288
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +82 -116
  55. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -4
  56. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +1 -1
  57. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +1 -1
  58. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +125 -181
  59. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -7
  60. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -17
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +43 -58
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +15 -27
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +65 -68
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +23 -32
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +58 -92
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +3 -7
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +11 -16
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +18 -29
  69. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
  70. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
  71. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +162 -282
  72. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -14
  73. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -54
  74. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +1 -1
  75. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +1 -1
  76. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +15 -21
  77. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +14 -19
  78. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +16 -21
  79. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +5 -10
  80. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +18 -23
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +10 -21
  82. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -8
  83. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -7
  84. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -11
  85. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -15
  86. package/cjs/components/shared/file-icon/FileIcon.js +17 -23
  87. package/cjs/components/shared/file-tabs/FileTab.js +30 -36
  88. package/cjs/components/shared/file-tabs/FileTab.styled.js +15 -25
  89. package/cjs/components/shared/file-tabs/FileTabs.js +38 -63
  90. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -8
  91. package/cjs/components/shared/file-tabs/util.js +14 -29
  92. package/cjs/components/shared/file-tree/FileTree.js +12 -17
  93. package/cjs/components/shared/file-tree/FileTreeConfig.js +22 -25
  94. package/cjs/components/shared/file-tree/FileTreeList.js +37 -39
  95. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +61 -75
  96. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -31
  97. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +64 -72
  98. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -12
  99. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +63 -74
  100. package/cjs/components/shared/file-tree/FileTreeListItems.js +136 -151
  101. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -8
  102. package/cjs/components/shared/file-tree/FileTreeToolbar.js +31 -32
  103. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -7
  104. package/cjs/components/shared/file-tree/context/FileTreeContext.js +76 -97
  105. package/cjs/components/shared/file-tree/locales/en.json.js +1 -1
  106. package/cjs/components/shared/file-tree/locales/ko.json.js +1 -1
  107. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -26
  108. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +146 -195
  109. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -2
  110. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -3
  111. package/cjs/components/shared/file-tree/utils/fileTreePath.js +6 -7
  112. package/cjs/components/shared/file-viewer/FileViewer.js +37 -61
  113. package/cjs/components/shared/file-viewer/FileViewerCsv.js +108 -172
  114. package/cjs/components/shared/file-viewer/FileViewerImage.js +8 -12
  115. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +10 -23
  116. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +33 -42
  117. package/cjs/components/shared/file-viewer/FileViewerText.js +12 -24
  118. package/cjs/components/shared/file-viewer/locales/en.json.js +1 -1
  119. package/cjs/components/shared/file-viewer/locales/ko.json.js +1 -1
  120. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +1 -1
  121. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +1 -1
  122. package/cjs/components/shared/material-modal/MaterialModal.js +11 -14
  123. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -11
  124. package/cjs/components/shared/monaco-editor/MonacoEditor.js +74 -99
  125. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +6 -12
  126. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +36 -50
  127. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +91 -110
  128. package/cjs/components/shared/monaco-editor/constants/grammars/JSON.tmLanguage.json.js +1 -1
  129. package/cjs/components/shared/monaco-editor/constants/grammars/MagicPython.tmLanguage.json.js +1 -1
  130. package/cjs/components/shared/monaco-editor/constants/grammars/TypeScriptReact.tmLanguage.json.js +1 -1
  131. package/cjs/components/shared/monaco-editor/constants/grammars/asp-vb-net.tmlanguage.json.js +1 -1
  132. package/cjs/components/shared/monaco-editor/constants/grammars/c.tmLanguage.json.js +1 -1
  133. package/cjs/components/shared/monaco-editor/constants/grammars/cpp.tmLanguage.json.js +1 -1
  134. package/cjs/components/shared/monaco-editor/constants/grammars/csharp.tmLanguage.json.js +1 -1
  135. package/cjs/components/shared/monaco-editor/constants/grammars/css.tmLanguage.json.js +1 -1
  136. package/cjs/components/shared/monaco-editor/constants/grammars/dart.tmLanguage.json.js +1 -1
  137. package/cjs/components/shared/monaco-editor/constants/grammars/fsharp.tmLanguage.json.js +1 -1
  138. package/cjs/components/shared/monaco-editor/constants/grammars/go.tmLanguage.json.js +1 -1
  139. package/cjs/components/shared/monaco-editor/constants/grammars/html.tmLanguage.json.js +1 -1
  140. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +28 -84
  141. package/cjs/components/shared/monaco-editor/constants/grammars/java.tmLanguage.json.js +1 -1
  142. package/cjs/components/shared/monaco-editor/constants/grammars/lua.tmLanguage.json.js +1 -1
  143. package/cjs/components/shared/monaco-editor/constants/grammars/objective-c.tmLanguage.json.js +1 -1
  144. package/cjs/components/shared/monaco-editor/constants/grammars/php.tmLanguage.json.js +1 -1
  145. package/cjs/components/shared/monaco-editor/constants/grammars/r.tmLanguage.json.js +1 -1
  146. package/cjs/components/shared/monaco-editor/constants/grammars/ruby.tmLanguage.json.js +1 -1
  147. package/cjs/components/shared/monaco-editor/constants/grammars/rust.tmLanguage.json.js +1 -1
  148. package/cjs/components/shared/monaco-editor/constants/grammars/scss.tmLanguage.json.js +1 -1
  149. package/cjs/components/shared/monaco-editor/constants/grammars/sql.tmLanguage.json.js +1 -1
  150. package/cjs/components/shared/monaco-editor/constants/grammars/swift.tmLanguage.json.js +1 -1
  151. package/cjs/components/shared/monaco-editor/constants/grammars/xml.tmLanguage.json.js +1 -1
  152. package/cjs/components/shared/monaco-editor/constants/grammars/yaml.tmLanguage.json.js +1 -1
  153. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -7
  154. package/cjs/components/shared/monaco-editor/constants/themes/abyss.json.js +1 -1
  155. package/cjs/components/shared/monaco-editor/constants/themes/elice.json.js +1 -1
  156. package/cjs/components/shared/monaco-editor/constants/themes/index.js +17 -51
  157. package/cjs/components/shared/monaco-editor/constants/themes/kimbie-dark.json.js +1 -1
  158. package/cjs/components/shared/monaco-editor/constants/themes/monokai.json.js +1 -1
  159. package/cjs/components/shared/monaco-editor/constants/themes/quietlight.json.js +1 -1
  160. package/cjs/components/shared/monaco-editor/constants/themes/red.json.js +1 -1
  161. package/cjs/components/shared/monaco-editor/constants/themes/solarized-dark.json.js +1 -1
  162. package/cjs/components/shared/monaco-editor/constants/themes/solarized-light.json.js +1 -1
  163. package/cjs/components/shared/monaco-editor/constants/themes/tomorrow-night-blue.json.js +1 -1
  164. package/cjs/components/shared/monaco-editor/constants/themes/vs-dark-plus.json.js +1 -1
  165. package/cjs/components/shared/monaco-editor/constants/themes/vs-dark.json.js +1 -1
  166. package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-black.json.js +1 -1
  167. package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-light.json.js +1 -1
  168. package/cjs/components/shared/monaco-editor/constants/themes/vs-light-plus.json.js +1 -1
  169. package/cjs/components/shared/monaco-editor/constants/themes/vs-light.json.js +1 -1
  170. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  171. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -17
  172. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -11
  173. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -36
  174. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -11
  175. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -8
  176. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +11 -52
  177. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +7 -8
  178. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +11 -52
  179. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +5 -6
  180. package/cjs/components/shared/monaco-editor/editor-languages/index.js +4 -4
  181. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -3
  182. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +1 -1
  183. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +1 -1
  184. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +1 -1
  185. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +11 -56
  186. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +17 -18
  187. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -13
  188. package/cjs/components/shared/monaco-editor/locales/en.json.js +1 -1
  189. package/cjs/components/shared/monaco-editor/locales/ko.json.js +1 -1
  190. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -12
  191. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -2
  192. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -14
  193. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +25 -69
  194. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -27
  195. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +38 -73
  196. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +8 -11
  197. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +4 -8
  198. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -4
  199. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +8 -46
  200. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +14 -26
  201. package/cjs/components/shared/monaco-editor/utils/theme/index.js +3 -24
  202. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -79
  203. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -84
  204. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -122
  205. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +133 -158
  206. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -106
  207. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -4
  208. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -3
  209. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -4
  210. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +158 -179
  211. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -5
  212. package/cjs/components/shared/no-vnc/NoVnc.js +57 -86
  213. package/cjs/components/shared/no-vnc/NoVncLazy.js +5 -11
  214. package/cjs/components/shared/preview-container/PreviewContainer.js +11 -15
  215. package/cjs/components/shared/web-browser/WebBrowser.js +37 -53
  216. package/cjs/components/shared/xterm/Xterm.js +58 -81
  217. package/cjs/components/shared/xterm/XtermLazy.js +5 -11
  218. package/cjs/components/shared/xterm/locales/en.json.js +1 -1
  219. package/cjs/components/shared/xterm/locales/ko.json.js +1 -1
  220. package/cjs/components/shared/xterm/utils/index.js +0 -2
  221. package/cjs/constants/arduino.js +10 -12
  222. package/cjs/constants/shortcutKeyMap.js +2 -4
  223. package/cjs/constants/stylesheets.js +5 -9
  224. package/cjs/hooks/useArduino.js +141 -284
  225. package/cjs/hooks/useExerciseFile.js +22 -26
  226. package/cjs/hooks/useExericseShortcut.js +4 -8
  227. package/cjs/hooks/useMaterialExerciseFileUrl.js +33 -57
  228. package/cjs/hooks/useRunnerRoomWebSocket.js +27 -53
  229. package/cjs/hooks/useStdioTextConcator.js +10 -22
  230. package/cjs/hooks/useStdioWebSocket.js +28 -34
  231. package/cjs/hooks/useUsercodeEditWebSocket.js +158 -240
  232. package/cjs/hooks/useUsercodeHistory.js +63 -117
  233. package/cjs/index.js +4 -6
  234. package/cjs/utils/arduino.js +11 -25
  235. package/cjs/utils/exerciseFile.js +10 -10
  236. package/cjs/utils/runner.js +15 -31
  237. package/es/components/material-exercise/MaterialExercise.i18n.js +2 -2
  238. package/es/components/material-exercise/MaterialExercise.js +34 -35
  239. package/es/components/material-exercise/MaterialExercise.styled.js +14 -14
  240. package/es/components/material-exercise/MaterialExerciseMobile.js +6 -9
  241. package/es/components/material-exercise/context/ExerciseIntlProvider.js +10 -8
  242. package/es/components/material-exercise/context/ExerciseProvider.js +52 -55
  243. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +10 -10
  244. package/es/components/material-exercise/context/context.js +1 -1
  245. package/es/components/material-exercise/context/recoil.js +290 -535
  246. package/es/components/material-exercise/context/subjects.js +3 -3
  247. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +51 -53
  248. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  249. package/es/components/material-exercise/exercise-file/ExerciseFile.js +9 -8
  250. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +127 -193
  251. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -4
  252. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +20 -31
  253. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +35 -44
  254. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  255. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +181 -315
  256. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  257. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +11 -10
  258. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -6
  259. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -3
  260. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +25 -42
  261. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +26 -51
  262. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +11 -23
  263. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +21 -31
  264. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  265. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +19 -26
  266. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  267. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +15 -14
  268. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +5 -11
  269. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +11 -15
  270. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +5 -9
  271. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +78 -80
  272. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +6 -13
  273. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -14
  274. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +134 -236
  275. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +65 -94
  276. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
  277. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +116 -167
  278. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  279. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +8 -7
  280. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +17 -27
  281. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +11 -18
  282. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +52 -50
  283. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +10 -14
  284. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +46 -75
  285. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -2
  286. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +4 -4
  287. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +15 -21
  288. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +138 -253
  289. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  290. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +29 -37
  291. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +12 -13
  292. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -2
  293. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -12
  294. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -2
  295. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -14
  296. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +9 -15
  297. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +3 -2
  298. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  299. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +6 -5
  300. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -9
  301. package/es/components/shared/file-icon/FileIcon.js +15 -17
  302. package/es/components/shared/file-tabs/FileTab.js +22 -24
  303. package/es/components/shared/file-tabs/FileTab.styled.js +15 -19
  304. package/es/components/shared/file-tabs/FileTabs.js +35 -55
  305. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  306. package/es/components/shared/file-tabs/util.js +14 -27
  307. package/es/components/shared/file-tree/FileTree.js +3 -3
  308. package/es/components/shared/file-tree/FileTreeConfig.js +18 -15
  309. package/es/components/shared/file-tree/FileTreeList.js +33 -29
  310. package/es/components/shared/file-tree/FileTreeListItemContent.js +45 -55
  311. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -25
  312. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +60 -64
  313. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  314. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +39 -46
  315. package/es/components/shared/file-tree/FileTreeListItems.js +134 -145
  316. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  317. package/es/components/shared/file-tree/FileTreeToolbar.js +25 -22
  318. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  319. package/es/components/shared/file-tree/context/FileTreeContext.js +74 -89
  320. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -20
  321. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +146 -193
  322. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  323. package/es/components/shared/file-tree/utils/fileTreePath.js +6 -5
  324. package/es/components/shared/file-viewer/FileViewer.js +21 -38
  325. package/es/components/shared/file-viewer/FileViewerCsv.js +70 -129
  326. package/es/components/shared/file-viewer/FileViewerImage.js +4 -3
  327. package/es/components/shared/file-viewer/FileViewerIpynb.js +7 -14
  328. package/es/components/shared/file-viewer/FileViewerNonViewable.js +15 -18
  329. package/es/components/shared/file-viewer/FileViewerText.js +9 -17
  330. package/es/components/shared/material-modal/MaterialModal.js +8 -7
  331. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  332. package/es/components/shared/monaco-editor/MonacoEditor.js +67 -87
  333. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +2 -4
  334. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +31 -41
  335. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +52 -66
  336. package/es/components/shared/monaco-editor/constants/grammars/index.js +28 -82
  337. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
  338. package/es/components/shared/monaco-editor/constants/themes/index.js +17 -49
  339. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -11
  340. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -15
  341. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  342. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -34
  343. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -9
  344. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
  345. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +10 -33
  346. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +10 -33
  347. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  348. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +10 -37
  349. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +3 -3
  350. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -11
  351. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -10
  352. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -12
  353. package/es/components/shared/monaco-editor/utils/grammar/index.js +24 -68
  354. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -25
  355. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +35 -67
  356. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +5 -5
  357. package/es/components/shared/monaco-editor/utils/monacoPreference.js +4 -6
  358. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -2
  359. package/es/components/shared/monaco-editor/utils/prettier/index.js +7 -27
  360. package/es/components/shared/monaco-editor/utils/theme/convert.js +13 -19
  361. package/es/components/shared/monaco-editor/utils/theme/index.js +3 -22
  362. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -77
  363. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -82
  364. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -120
  365. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +130 -152
  366. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -104
  367. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  368. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -1
  369. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
  370. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +157 -172
  371. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
  372. package/es/components/shared/no-vnc/NoVnc.js +42 -59
  373. package/es/components/shared/no-vnc/NoVncLazy.js +2 -4
  374. package/es/components/shared/preview-container/PreviewContainer.js +8 -7
  375. package/es/components/shared/web-browser/WebBrowser.js +29 -40
  376. package/es/components/shared/xterm/Xterm.js +51 -69
  377. package/es/components/shared/xterm/XtermLazy.js +2 -4
  378. package/es/constants/arduino.js +10 -10
  379. package/es/constants/shortcutKeyMap.js +1 -3
  380. package/es/constants/stylesheets.js +5 -7
  381. package/es/hooks/useArduino.js +141 -278
  382. package/es/hooks/useExerciseFile.js +22 -24
  383. package/es/hooks/useExericseShortcut.js +4 -6
  384. package/es/hooks/useMaterialExerciseFileUrl.js +34 -52
  385. package/es/hooks/useRunnerRoomWebSocket.js +27 -51
  386. package/es/hooks/useStdioTextConcator.js +10 -16
  387. package/es/hooks/useStdioWebSocket.js +28 -32
  388. package/es/hooks/useUsercodeEditWebSocket.js +157 -232
  389. package/es/hooks/useUsercodeHistory.js +63 -115
  390. package/es/utils/arduino.js +11 -23
  391. package/es/utils/exerciseFile.js +10 -8
  392. package/es/utils/runner.js +15 -29
  393. package/package.json +11 -7
  394. package/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -521
  395. package/es/_virtual/_rollupPluginBabelHelpers.js +0 -499
@@ -1,12 +1,10 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  /* eslint-disable */
6
4
  /**
7
5
  * Default emmet configuration.
8
6
  */
9
- var DEFAULT_CONFIG = {
7
+ const DEFAULT_CONFIG = {
10
8
  showExpandedAbbreviation: 'always',
11
9
  showAbbreviationSuggestions: true,
12
10
  showSuggestionsAsSnippets: false
@@ -15,7 +13,7 @@ var DEFAULT_CONFIG = {
15
13
  * Mapping between languages that support Emmet and completion trigger characters.
16
14
  * - ref: https://github.com/microsoft/vscode/blob/50140a53cc2088f478a5560683ccd354f2d5f431/extensions/emmet/src/util.ts#L86
17
15
  */
18
- var LANGUAGE_MODES = {
16
+ const LANGUAGE_MODES = {
19
17
  html: ['!', '.', '}', ':', '*', '$', ']', '/', '>', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
20
18
  jade: ['!', '.', '}', ':', '*', '$', ']', '/', '>', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
21
19
  slim: ['!', '.', '}', ':', '*', '$', ']', '/', '>', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
@@ -34,7 +32,7 @@ var LANGUAGE_MODES = {
34
32
  * Language specific extensions can provide emmet completion support.
35
33
  * - ref: https://github.com/microsoft/vscode/blob/50140a53cc2088f478a5560683ccd354f2d5f431/extensions/emmet/src/util.ts#L124
36
34
  */
37
- var MAPPED_MODES = {
35
+ const MAPPED_MODES = {
38
36
  handlebars: 'html',
39
37
  php: 'html',
40
38
  twig: 'html'
@@ -2,7 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
6
5
  var React = require('react');
7
6
  var reactUse = require('react-use');
8
7
  var blocks = require('@elice/blocks');
@@ -20,66 +19,48 @@ var styled = require('styled-components');
20
19
  var ExerciseMenuButton = require('../exercise-menu-button/ExerciseMenuButton.js');
21
20
  var PreviewContainer = require('../preview-container/PreviewContainer.js');
22
21
 
23
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
-
25
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
26
- var RFB_decoders_copy_rect__default = /*#__PURE__*/_interopDefaultLegacy(RFB_decoders_copy_rect);
27
- var RFB_decoders_hextile__default = /*#__PURE__*/_interopDefaultLegacy(RFB_decoders_hextile);
28
- var RFB_decoders_raw__default = /*#__PURE__*/_interopDefaultLegacy(RFB_decoders_raw);
29
- var RFB_decoders_rre__default = /*#__PURE__*/_interopDefaultLegacy(RFB_decoders_rre);
30
- var RFB_decoders_tight__default = /*#__PURE__*/_interopDefaultLegacy(RFB_decoders_tight);
31
- var RFB_decoders_tight_png__default = /*#__PURE__*/_interopDefaultLegacy(RFB_decoders_tight_png);
32
- var RFB__default = /*#__PURE__*/_interopDefaultLegacy(RFB);
33
- var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
34
-
35
22
  //
36
23
  //
37
24
  //
38
- var VNC_BACKGROUND_COLOR = designTokens.base.color.navy7;
39
- var StyledHeaderTitle = styled__default["default"].div.withConfig({
25
+ const VNC_BACKGROUND_COLOR = designTokens.base.color.navy7;
26
+ const StyledHeaderTitle = styled.div.withConfig({
40
27
  componentId: "sc-1duy62f-0"
41
28
  })(["flex:1;"]);
42
- var StyledHeaderButtonGroup = styled__default["default"].div.withConfig({
29
+ const StyledHeaderButtonGroup = styled.div.withConfig({
43
30
  componentId: "sc-1duy62f-1"
44
31
  })(["flex:0 0 auto;display:flex;align-items:center;"]);
45
- var StyledVncWrap = styled__default["default"].div.withConfig({
32
+ const StyledVncWrap = styled.div.withConfig({
46
33
  componentId: "sc-1duy62f-2"
47
34
  })(["display:flex;align-items:center;justify-content:center;width:100%;height:100%;background-color:", ";overflow:hidden;"], VNC_BACKGROUND_COLOR);
48
- var StyledNoVncContainer = styled__default["default"].div.withConfig({
35
+ const StyledNoVncContainer = styled.div.withConfig({
49
36
  componentId: "sc-1duy62f-3"
50
37
  })([""]);
51
- var StyledNoVnc = styled__default["default"].div.withConfig({
38
+ const StyledNoVnc = styled.div.withConfig({
52
39
  componentId: "sc-1duy62f-4"
53
40
  })(["position:relative;left:50%;top:50%;transform-origin:center center;transform:translate(-50%,-50%);"]);
54
41
  //
55
42
  //
56
43
  //
57
- var NoVnc = React.forwardRef(function (_ref, ref) {
58
- var _ref$isRunning = _ref.isRunning,
59
- isRunning = _ref$isRunning === void 0 ? false : _ref$isRunning,
60
- wsUri = _ref.wsUri,
61
- roomToken = _ref.roomToken,
62
- readyExerciseImage = _ref.readyExerciseImage,
63
- _ref$exercisePreviewD = _ref.exercisePreviewDisplayModeButton,
64
- exercisePreviewDisplayModeButton = _ref$exercisePreviewD === void 0 ? null : _ref$exercisePreviewD,
65
- onConnect = _ref.onConnect,
66
- onDisconnect = _ref.onDisconnect;
67
- var vncRfb = React__default["default"].useRef(null);
68
- var vncElRef = React__default["default"].useRef(null);
69
- var _useMeasure = reactUse.useMeasure(),
70
- _useMeasure2 = _rollupPluginBabelHelpers.slicedToArray(_useMeasure, 2),
71
- vncWrapRef = _useMeasure2[0],
72
- _useMeasure2$ = _useMeasure2[1],
73
- width = _useMeasure2$.width,
74
- height = _useMeasure2$.height;
75
- var _React$useState = React__default["default"].useState(true),
76
- _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
77
- isVncScaledFromLocal = _React$useState2[0],
78
- setVncScaledFromLocal = _React$useState2[1];
44
+ const NoVnc = React.forwardRef(({
45
+ isRunning = false,
46
+ wsUri,
47
+ roomToken,
48
+ readyExerciseImage,
49
+ exercisePreviewDisplayModeButton = null,
50
+ onConnect,
51
+ onDisconnect
52
+ }, ref) => {
53
+ const vncRfb = React.useRef(null);
54
+ const vncElRef = React.useRef(null);
55
+ const [vncWrapRef, {
56
+ width,
57
+ height
58
+ }] = reactUse.useMeasure();
59
+ const [isVncScaledFromLocal, setVncScaledFromLocal] = React.useState(true);
79
60
  /**
80
61
  * Default size of VNC from exericse image.
81
62
  */
82
- var vncDefaultSize = React__default["default"].useMemo(function () {
63
+ const vncDefaultSize = React.useMemo(() => {
83
64
  var _a, _b;
84
65
  return {
85
66
  width: (_a = readyExerciseImage === null || readyExerciseImage === void 0 ? void 0 : readyExerciseImage.defaultVncWidth) !== null && _a !== void 0 ? _a : 300,
@@ -89,30 +70,26 @@ var NoVnc = React.forwardRef(function (_ref, ref) {
89
70
  /**
90
71
  * Transform scale to fit VNC to VNC wrap.
91
72
  */
92
- var vncTransformScale = React__default["default"].useMemo(function () {
93
- return Math.min(width / vncDefaultSize.width, height / vncDefaultSize.height);
94
- }, [width, height, vncDefaultSize.width, vncDefaultSize.height]);
73
+ const vncTransformScale = React.useMemo(() => Math.min(width / vncDefaultSize.width, height / vncDefaultSize.height), [width, height, vncDefaultSize.width, vncDefaultSize.height]);
95
74
  /**
96
75
  * Element style of VNC and VNC wrap.
97
76
  */
98
- var vncElementStyle = React__default["default"].useMemo(function () {
99
- return {
100
- width: "".concat((vncDefaultSize.width * vncTransformScale).toFixed(3), "px"),
101
- height: "".concat((vncDefaultSize.height * vncTransformScale).toFixed(3), "px")
102
- };
103
- }, [vncDefaultSize.width, vncDefaultSize.height, vncTransformScale]);
77
+ const vncElementStyle = React.useMemo(() => ({
78
+ width: `${(vncDefaultSize.width * vncTransformScale).toFixed(3)}px`,
79
+ height: `${(vncDefaultSize.height * vncTransformScale).toFixed(3)}px`
80
+ }), [vncDefaultSize.width, vncDefaultSize.height, vncTransformScale]);
104
81
  /**
105
82
  * Connect VNC.
106
83
  */
107
- var connect = React__default["default"].useCallback(function () {
84
+ const connect = React.useCallback(() => {
108
85
  if (!vncElRef.current || !wsUri || !roomToken) {
109
86
  return;
110
87
  }
111
- var vncUrl = "".concat(wsUri, "/client/vnc/").concat(roomToken);
88
+ const vncUrl = `${wsUri}/client/vnc/${roomToken}`;
112
89
  // The RFB object represents a single connection to a VNC server.
113
90
  // It communicates using a WebSocket that must provide a standard RFB protocol stream.
114
91
  // -ref: https://github.com/novnc/noVNC/blob/master/docs/API.md#rfb-1
115
- vncRfb.current = new RFB__default["default"](vncElRef.current, vncUrl, {
92
+ vncRfb.current = new RFB(vncElRef.current, vncUrl, {
116
93
  wsProtocols: ['binary']
117
94
  });
118
95
  // ==============================
@@ -141,14 +118,14 @@ var NoVnc = React.forwardRef(function (_ref, ref) {
141
118
  // ==============================
142
119
  // The connect event is fired when the RFB object has completed the connection and handshaking with the server.
143
120
  // - ref: https://github.com/novnc/noVNC/blob/master/docs/API.md#connect
144
- vncRfb.current.addEventListener('connect', function () {
121
+ vncRfb.current.addEventListener('connect', () => {
145
122
  if (typeof onConnect === 'function') {
146
123
  onConnect();
147
124
  }
148
125
  });
149
126
  // The disconnect event is fired when the RFB object disconnects.
150
127
  // - ref: https://github.com/novnc/noVNC/blob/master/docs/API.md#disconnect
151
- vncRfb.current.addEventListener('disconnect', function () {
128
+ vncRfb.current.addEventListener('disconnect', () => {
152
129
  if (typeof onDisconnect === 'function') {
153
130
  onDisconnect();
154
131
  }
@@ -159,7 +136,7 @@ var NoVnc = React.forwardRef(function (_ref, ref) {
159
136
  /**
160
137
  * Disconnect VNC.
161
138
  */
162
- var disconnect = React__default["default"].useCallback(function () {
139
+ const disconnect = React.useCallback(() => {
163
140
  var _a;
164
141
  if (typeof ((_a = vncRfb.current) === null || _a === void 0 ? void 0 : _a.disconnect) === 'function') {
165
142
  vncRfb.current.disconnect();
@@ -173,7 +150,7 @@ var NoVnc = React.forwardRef(function (_ref, ref) {
173
150
  * Reset VNC.
174
151
  * - note: https://www.notion.so/elice/elice-runner-v3-forwarder-4907ba8546274956b2f55c586df1641a#d61df659d91644db85a52fc148a69e13
175
152
  */
176
- var reset = React__default["default"].useCallback(function () {
153
+ const reset = React.useCallback(() => {
177
154
  if (!vncRfb.current) {
178
155
  return;
179
156
  }
@@ -203,12 +180,12 @@ var NoVnc = React.forwardRef(function (_ref, ref) {
203
180
  encoding: null
204
181
  };
205
182
  vncRfb.current._decoders = {};
206
- vncRfb.current._decoders[encodings.encodings.encodingRaw] = new RFB_decoders_raw__default["default"]();
207
- vncRfb.current._decoders[encodings.encodings.encodingCopyRect] = new RFB_decoders_copy_rect__default["default"]();
208
- vncRfb.current._decoders[encodings.encodings.encodingRRE] = new RFB_decoders_rre__default["default"]();
209
- vncRfb.current._decoders[encodings.encodings.encodingHextile] = new RFB_decoders_hextile__default["default"]();
210
- vncRfb.current._decoders[encodings.encodings.encodingTight] = new RFB_decoders_tight__default["default"]();
211
- vncRfb.current._decoders[encodings.encodings.encodingTightPNG] = new RFB_decoders_tight_png__default["default"]();
183
+ vncRfb.current._decoders[encodings.encodings.encodingRaw] = new RFB_decoders_raw();
184
+ vncRfb.current._decoders[encodings.encodings.encodingCopyRect] = new RFB_decoders_copy_rect();
185
+ vncRfb.current._decoders[encodings.encodings.encodingRRE] = new RFB_decoders_rre();
186
+ vncRfb.current._decoders[encodings.encodings.encodingHextile] = new RFB_decoders_hextile();
187
+ vncRfb.current._decoders[encodings.encodings.encodingTight] = new RFB_decoders_tight();
188
+ vncRfb.current._decoders[encodings.encodings.encodingTightPNG] = new RFB_decoders_tight_png();
212
189
  vncRfb.current._sock.flush();
213
190
  vncRfb.current._sock._allocateBuffers();
214
191
  vncRfb.current._sock._rQi = 0;
@@ -225,7 +202,7 @@ var NoVnc = React.forwardRef(function (_ref, ref) {
225
202
  //
226
203
  // Update VNC scale config.
227
204
  //
228
- reactUse.useUpdateEffect(function () {
205
+ reactUse.useUpdateEffect(() => {
229
206
  if (!vncRfb.current) {
230
207
  return;
231
208
  }
@@ -237,46 +214,40 @@ var NoVnc = React.forwardRef(function (_ref, ref) {
237
214
  //
238
215
  //
239
216
  //
240
- React__default["default"].useImperativeHandle(ref, function () {
241
- return {
242
- connect: connect,
243
- disconnect: disconnect,
244
- reset: reset
245
- };
246
- }, [connect, disconnect, reset]);
217
+ React.useImperativeHandle(ref, () => ({
218
+ connect,
219
+ disconnect,
220
+ reset
221
+ }), [connect, disconnect, reset]);
247
222
  /**
248
223
  * Header.
249
224
  */
250
- var renderVncHeader = function renderVncHeader() {
251
- return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(StyledHeaderTitle, null, React__default["default"].createElement(blocks.Text, {
225
+ const renderVncHeader = () => {
226
+ return React.createElement(React.Fragment, null, React.createElement(StyledHeaderTitle, null, React.createElement(blocks.Text, {
252
227
  role: "white",
253
228
  size: "tiny"
254
- }, "\uC2E4\uD589 \uACB0\uACFC")), React__default["default"].createElement(StyledHeaderButtonGroup, null, React__default["default"].createElement(ExerciseMenuButton["default"], {
229
+ }, "\uC2E4\uD589 \uACB0\uACFC")), React.createElement(StyledHeaderButtonGroup, null, React.createElement(ExerciseMenuButton.default, {
255
230
  icon: isVncScaledFromLocal ? icons.eilViewMaximize : icons.eilViewMinimize,
256
231
  title: isRunning ? '실행 중에는 비율을 변경할 수 없습니다' : isVncScaledFromLocal ? '확대하여 보기' : '원본 비율로 보기',
257
232
  disabled: isRunning,
258
- onClick: function onClick() {
259
- return setVncScaledFromLocal(function (prev) {
260
- return !prev;
261
- });
262
- }
263
- }), React__default["default"].isValidElement(exercisePreviewDisplayModeButton) ? React__default["default"].cloneElement(exercisePreviewDisplayModeButton, {
233
+ onClick: () => setVncScaledFromLocal(prev => !prev)
234
+ }), React.isValidElement(exercisePreviewDisplayModeButton) ? React.cloneElement(exercisePreviewDisplayModeButton, {
264
235
  disabled: isRunning
265
236
  }) : null));
266
237
  };
267
238
  //
268
239
  //
269
240
  //
270
- return React__default["default"].createElement(PreviewContainer["default"], {
241
+ return React.createElement(PreviewContainer.default, {
271
242
  header: renderVncHeader()
272
- }, React__default["default"].createElement(StyledVncWrap, {
243
+ }, React.createElement(StyledVncWrap, {
273
244
  ref: vncWrapRef
274
- }, React__default["default"].createElement(StyledNoVncContainer, {
245
+ }, React.createElement(StyledNoVncContainer, {
275
246
  style: vncElementStyle
276
- }, React__default["default"].createElement(StyledNoVnc, {
247
+ }, React.createElement(StyledNoVnc, {
277
248
  style: vncElementStyle,
278
249
  ref: vncElRef
279
250
  }))));
280
251
  });
281
252
 
282
- exports["default"] = NoVnc;
253
+ exports.default = NoVnc;
@@ -4,19 +4,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
 
7
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
-
9
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
-
11
- var AsyncNoVnc = React__default["default"].lazy(function () {
12
- return Promise.resolve().then(function () { return require('./NoVnc.js'); });
13
- });
14
- var NoVncLazy = React.forwardRef(function (props, ref) {
15
- return React__default["default"].createElement(React__default["default"].Suspense, {
7
+ const AsyncNoVnc = React.lazy(() => Promise.resolve().then(function () { return require('./NoVnc.js'); }));
8
+ const NoVncLazy = React.forwardRef((props, ref) => {
9
+ return React.createElement(React.Suspense, {
16
10
  fallback: null
17
- }, React__default["default"].createElement(AsyncNoVnc, Object.assign({}, props, {
11
+ }, React.createElement(AsyncNoVnc, Object.assign({}, props, {
18
12
  ref: ref
19
13
  })));
20
14
  });
21
15
 
22
- exports["default"] = NoVncLazy;
16
+ exports.default = NoVncLazy;
@@ -6,29 +6,25 @@ var React = require('react');
6
6
  var designTokens = require('@elice/design-tokens');
7
7
  var styled = require('styled-components');
8
8
 
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
-
11
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
- var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
13
-
14
- var PREVIEW_CONTAINER_HEADER_HEIGHT = 36; // 2.25rem
15
- var PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM = 4; // 0.25rem
16
- var StyledPreviewContainer = styled__default["default"].div.withConfig({
9
+ const PREVIEW_CONTAINER_HEADER_HEIGHT = 36; // 2.25rem
10
+ const PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM = 4; // 0.25rem
11
+ const StyledPreviewContainer = styled.div.withConfig({
17
12
  componentId: "sc-1oi07w2-0"
18
13
  })(["display:flex;flex-direction:column;width:100%;height:100%;background-color:", ";overflow:hidden;"], designTokens.base.color.white);
19
- var StyledPreviewHeader = styled__default["default"].div.withConfig({
14
+ const StyledPreviewHeader = styled.div.withConfig({
20
15
  componentId: "sc-1oi07w2-1"
21
16
  })(["flex:0 0 ", "px;display:flex;align-items:center;padding:", "px 0.5rem;border-bottom:1px solid ", ";background-color:", ";"], PREVIEW_CONTAINER_HEADER_HEIGHT, PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM, designTokens.base.color.navy7, designTokens.base.color.navy8);
22
- var PreviewContainer = React.forwardRef(function (_ref, ref) {
23
- var children = _ref.children,
24
- header = _ref.header;
25
- return React__default["default"].createElement(StyledPreviewContainer, {
17
+ const PreviewContainer = React.forwardRef(({
18
+ children,
19
+ header
20
+ }, ref) => {
21
+ return React.createElement(StyledPreviewContainer, {
26
22
  ref: ref
27
- }, React__default["default"].createElement(StyledPreviewHeader, {
23
+ }, React.createElement(StyledPreviewHeader, {
28
24
  children: header
29
25
  }), children);
30
26
  });
31
27
 
32
28
  exports.PREVIEW_CONTAINER_HEADER_HEIGHT = PREVIEW_CONTAINER_HEADER_HEIGHT;
33
29
  exports.PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM = PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM;
34
- exports["default"] = PreviewContainer;
30
+ exports.default = PreviewContainer;
@@ -2,7 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
6
5
  var React = require('react');
7
6
  var blocks = require('@elice/blocks');
8
7
  var designTokens = require('@elice/design-tokens');
@@ -11,50 +10,37 @@ var styled = require('styled-components');
11
10
  var ExerciseMenuButton = require('../exercise-menu-button/ExerciseMenuButton.js');
12
11
  var PreviewContainer = require('../preview-container/PreviewContainer.js');
13
12
 
14
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
-
16
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
- var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
18
-
19
- var WEB_BROWSER_URL_INPUT_HEIGHT = PreviewContainer.PREVIEW_CONTAINER_HEADER_HEIGHT - PreviewContainer.PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM * 2;
20
- var StyledHeaderUrlInput = styled__default["default"].input.withConfig({
13
+ const WEB_BROWSER_URL_INPUT_HEIGHT = PreviewContainer.PREVIEW_CONTAINER_HEADER_HEIGHT - PreviewContainer.PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM * 2;
14
+ const StyledHeaderUrlInput = styled.input.withConfig({
21
15
  componentId: "sc-1c55yq-0"
22
16
  })(["flex:1;min-width:0;height:", "px;padding:0.25rem 0.5rem;color:", ";background:", ";border:0;border-radius:0.25rem;&:active,&:focus{outline:none;}"], WEB_BROWSER_URL_INPUT_HEIGHT, designTokens.base.color.white, designTokens.base.color.navy6);
23
- var StyledIframe = styled__default["default"].iframe.withConfig({
17
+ const StyledIframe = styled.iframe.withConfig({
24
18
  componentId: "sc-1c55yq-1"
25
19
  })(["flex:1;width:100%;height:100%;min-height:0;border:0;"]);
26
20
  /**
27
21
  * Attach `_cachebust` search parameter to the URL to prevent caching.
28
22
  */
29
- var createCacheBustedUrl = function createCacheBustedUrl(url) {
23
+ const createCacheBustedUrl = url => {
30
24
  try {
31
- var urlObject = new URL(url);
25
+ const urlObject = new URL(url);
32
26
  urlObject.searchParams.set('_cachebust', Date.now().toString());
33
27
  return urlObject.href;
34
28
  } catch (_) {
35
29
  return url;
36
30
  }
37
31
  };
38
- var WebBrowser = React.forwardRef(function (_ref, ref) {
39
- var httpUri = _ref.httpUri,
40
- _ref$menuButtons = _ref.menuButtons,
41
- menuButtons = _ref$menuButtons === void 0 ? null : _ref$menuButtons;
42
- var _React$useState = React__default["default"].useState(''),
43
- _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
44
- url = _React$useState2[0],
45
- setUrl = _React$useState2[1];
46
- var _React$useState3 = React__default["default"].useState(''),
47
- _React$useState4 = _rollupPluginBabelHelpers.slicedToArray(_React$useState3, 2),
48
- inputUrl = _React$useState4[0],
49
- setInputUrl = _React$useState4[1];
50
- var iframeRef = React__default["default"].useRef(null);
51
- var iframeSrc = React__default["default"].useMemo(function () {
52
- return createCacheBustedUrl(url);
53
- }, [url]);
32
+ const WebBrowser = React.forwardRef(({
33
+ httpUri,
34
+ menuButtons = null
35
+ }, ref) => {
36
+ const [url, setUrl] = React.useState('');
37
+ const [inputUrl, setInputUrl] = React.useState('');
38
+ const iframeRef = React.useRef(null);
39
+ const iframeSrc = React.useMemo(() => createCacheBustedUrl(url), [url]);
54
40
  /**
55
41
  * Navigate browser.
56
42
  */
57
- var navigate = React__default["default"].useCallback(function (newUrl) {
43
+ const navigate = React.useCallback(newUrl => {
58
44
  if (newUrl) {
59
45
  setUrl(newUrl);
60
46
  }
@@ -62,7 +48,7 @@ var WebBrowser = React.forwardRef(function (_ref, ref) {
62
48
  /**
63
49
  * Reload browser.
64
50
  */
65
- var reload = React__default["default"].useCallback(function () {
51
+ const reload = React.useCallback(() => {
66
52
  if (iframeRef.current) {
67
53
  iframeRef.current.src = createCacheBustedUrl(iframeRef.current.src);
68
54
  }
@@ -70,8 +56,8 @@ var WebBrowser = React.forwardRef(function (_ref, ref) {
70
56
  /**
71
57
  * New window open click.
72
58
  */
73
- var handleNewWindowClick = function handleNewWindowClick() {
74
- var win = window.open(url, '_blank');
59
+ const handleNewWindowClick = () => {
60
+ const win = window.open(url, '_blank');
75
61
  if (win) {
76
62
  win.focus();
77
63
  }
@@ -79,15 +65,15 @@ var WebBrowser = React.forwardRef(function (_ref, ref) {
79
65
  /**
80
66
  * Handle url input change.
81
67
  */
82
- var handleUrlInputChange = function handleUrlInputChange(e) {
83
- var value = e.target.value;
68
+ const handleUrlInputChange = e => {
69
+ const value = e.target.value;
84
70
  // prevent removal of origin url (props.httpUri)
85
71
  setInputUrl(value.startsWith(httpUri) ? value : httpUri);
86
72
  };
87
73
  /**
88
74
  * Handle url input Enter key down.
89
75
  */
90
- var handleUrlInputKeyDown = function handleUrlInputKeyDown(e) {
76
+ const handleUrlInputKeyDown = e => {
91
77
  if (e.key === 'Enter') {
92
78
  e.preventDefault();
93
79
  navigate(inputUrl);
@@ -96,10 +82,10 @@ var WebBrowser = React.forwardRef(function (_ref, ref) {
96
82
  /**
97
83
  * Handle iframe load.
98
84
  */
99
- var handleIframeLoad = function handleIframeLoad() {
85
+ const handleIframeLoad = () => {
100
86
  var _a, _b, _c;
101
87
  try {
102
- var iframeUrl = (_c = (_b = (_a = iframeRef.current) === null || _a === void 0 ? void 0 : _a.contentWindow) === null || _b === void 0 ? void 0 : _b.location) === null || _c === void 0 ? void 0 : _c.href;
88
+ const iframeUrl = (_c = (_b = (_a = iframeRef.current) === null || _a === void 0 ? void 0 : _a.contentWindow) === null || _b === void 0 ? void 0 : _b.location) === null || _c === void 0 ? void 0 : _c.href;
103
89
  if (iframeUrl) {
104
90
  setInputUrl(iframeUrl);
105
91
  }
@@ -111,37 +97,35 @@ var WebBrowser = React.forwardRef(function (_ref, ref) {
111
97
  //
112
98
  // Change url on new httpUri provided.
113
99
  //
114
- React__default["default"].useEffect(function () {
100
+ React.useEffect(() => {
115
101
  setUrl(httpUri);
116
102
  setInputUrl(httpUri);
117
103
  }, [httpUri]);
118
104
  //
119
105
  //
120
106
  //
121
- React__default["default"].useImperativeHandle(ref, function () {
122
- return {
123
- navigate: navigate,
124
- reload: reload
125
- };
126
- }, [navigate, reload]);
107
+ React.useImperativeHandle(ref, () => ({
108
+ navigate,
109
+ reload
110
+ }), [navigate, reload]);
127
111
  /**
128
112
  * Browser header.
129
113
  */
130
- var renderBrowserHeader = function renderBrowserHeader() {
131
- return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(blocks.Flex, {
114
+ const renderBrowserHeader = () => {
115
+ return React.createElement(React.Fragment, null, React.createElement(blocks.Flex, {
132
116
  marginright: "0.25rem"
133
- }, React__default["default"].createElement(ExerciseMenuButton["default"], {
117
+ }, React.createElement(ExerciseMenuButton.default, {
134
118
  icon: icons.eilRetry,
135
119
  title: "\uC0C8\uB85C\uACE0\uCE68",
136
120
  placement: "bottom-start",
137
121
  onClick: reload
138
- })), React__default["default"].createElement(StyledHeaderUrlInput, {
122
+ })), React.createElement(StyledHeaderUrlInput, {
139
123
  value: inputUrl,
140
124
  onChange: handleUrlInputChange,
141
125
  onKeyDown: handleUrlInputKeyDown
142
- }), React__default["default"].createElement(blocks.Flex, {
126
+ }), React.createElement(blocks.Flex, {
143
127
  marginleft: "0.25rem"
144
- }, React__default["default"].createElement(ExerciseMenuButton["default"], {
128
+ }, React.createElement(ExerciseMenuButton.default, {
145
129
  icon: icons.eilNewWindow,
146
130
  title: "\uC0C8\uCC3D\uC73C\uB85C \uC5F4\uAE30",
147
131
  placement: "bottom-end",
@@ -151,8 +135,8 @@ var WebBrowser = React.forwardRef(function (_ref, ref) {
151
135
  /**
152
136
  * Browser content.
153
137
  */
154
- var renderBrowserBody = function renderBrowserBody() {
155
- return React__default["default"].createElement(StyledIframe, {
138
+ const renderBrowserBody = () => {
139
+ return React.createElement(StyledIframe, {
156
140
  src: iframeSrc,
157
141
  title: url,
158
142
  onLoad: handleIframeLoad,
@@ -162,9 +146,9 @@ var WebBrowser = React.forwardRef(function (_ref, ref) {
162
146
  //
163
147
  //
164
148
  //
165
- return React__default["default"].createElement(PreviewContainer["default"], {
149
+ return React.createElement(PreviewContainer.default, {
166
150
  header: renderBrowserHeader()
167
151
  }, renderBrowserBody());
168
152
  });
169
153
 
170
- exports["default"] = WebBrowser;
154
+ exports.default = WebBrowser;