@elice/material-exercise 1.230325.0 → 1.230418.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/cjs/_virtual/_rollupPluginBabelHelpers.js +526 -0
  2. package/cjs/components/material-exercise/MaterialExercise.js +44 -63
  3. package/cjs/components/material-exercise/MaterialExercise.styled.js +20 -23
  4. package/cjs/components/material-exercise/MaterialExerciseMobile.js +19 -15
  5. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  6. package/cjs/components/material-exercise/context/ExerciseProvider.js +83 -81
  7. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +16 -16
  8. package/cjs/components/material-exercise/context/context.js +1 -1
  9. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +3 -1
  10. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +3 -1
  11. package/cjs/components/material-exercise/context/recoil.d.ts +2 -1
  12. package/cjs/components/material-exercise/context/recoil.js +562 -373
  13. package/cjs/components/material-exercise/context/recoilTypes.js +0 -5
  14. package/cjs/components/material-exercise/context/subjects.js +3 -6
  15. package/cjs/components/material-exercise/context/types.d.ts +8 -1
  16. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  17. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -65
  18. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  19. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +7 -0
  20. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +7 -0
  21. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +20 -21
  22. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +228 -199
  23. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -10
  24. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +35 -32
  25. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +57 -48
  26. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
  27. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -1
  28. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -1
  29. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +327 -231
  30. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
  31. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +3 -1
  32. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +3 -1
  33. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +17 -17
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -14
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -6
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +47 -38
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +60 -42
  38. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +29 -22
  39. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +45 -56
  40. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  41. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +3 -1
  42. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +3 -1
  43. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -20
  44. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +5 -3
  45. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +30 -41
  46. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +17 -12
  47. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +3 -1
  48. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +3 -1
  49. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +24 -33
  50. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +13 -8
  51. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +84 -83
  52. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +3 -1
  53. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +3 -1
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +20 -12
  55. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  56. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +239 -147
  57. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +92 -63
  58. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  59. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +3 -1
  60. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +3 -1
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +224 -223
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -13
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +30 -26
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +26 -26
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +79 -95
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +27 -27
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +54 -60
  69. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +5 -5
  70. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -13
  71. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +29 -26
  72. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +3 -1
  73. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +3 -1
  74. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  75. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +290 -180
  76. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  77. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -45
  78. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +7 -0
  79. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +7 -0
  80. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +19 -17
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +5 -4
  82. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +15 -14
  83. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +7 -6
  84. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +17 -16
  85. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +18 -11
  86. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -4
  87. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  88. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -7
  89. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  90. package/cjs/components/shared/file-icon/FileIcon.js +23 -23
  91. package/cjs/components/shared/file-tabs/FileTab.js +32 -43
  92. package/cjs/components/shared/file-tabs/FileTab.styled.js +26 -22
  93. package/cjs/components/shared/file-tabs/FileTabs.js +55 -49
  94. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -2
  95. package/cjs/components/shared/file-tabs/util.js +29 -18
  96. package/cjs/components/shared/file-tree/FileTree.js +11 -11
  97. package/cjs/components/shared/file-tree/FileTreeConfig.js +24 -23
  98. package/cjs/components/shared/file-tree/FileTreeList.js +35 -41
  99. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +75 -91
  100. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  101. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +77 -101
  102. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  103. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +51 -86
  104. package/cjs/components/shared/file-tree/FileTreeListItems.js +150 -153
  105. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  106. package/cjs/components/shared/file-tree/FileTreeToolbar.js +30 -41
  107. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  108. package/cjs/components/shared/file-tree/context/FileTreeContext.js +91 -97
  109. package/cjs/components/shared/file-tree/locales/en.json.js +3 -1
  110. package/cjs/components/shared/file-tree/locales/ko.json.js +3 -1
  111. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  112. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  113. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  114. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  115. package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -7
  116. package/cjs/components/shared/file-viewer/FileViewer.js +59 -60
  117. package/cjs/components/shared/file-viewer/FileViewerCsv.js +145 -101
  118. package/cjs/components/shared/file-viewer/FileViewerImage.js +7 -8
  119. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +20 -14
  120. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +28 -34
  121. package/cjs/components/shared/file-viewer/FileViewerText.js +23 -16
  122. package/cjs/components/shared/file-viewer/locales/en.json.js +3 -1
  123. package/cjs/components/shared/file-viewer/locales/ko.json.js +3 -1
  124. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +3 -1
  125. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +3 -1
  126. package/cjs/components/shared/material-modal/MaterialModal.js +10 -12
  127. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -5
  128. package/cjs/components/shared/monaco-editor/MonacoEditor.js +123 -149
  129. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +10 -8
  130. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -58
  131. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +78 -85
  132. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  133. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  134. package/cjs/components/shared/monaco-editor/constants/themes/index.js +80 -32
  135. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  136. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  137. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  138. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  139. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  140. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  141. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +36 -12
  142. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +5 -8
  143. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +36 -12
  144. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -6
  145. package/cjs/components/shared/monaco-editor/editor-languages/index.js +3 -1
  146. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  147. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +3 -2
  148. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +3 -2
  149. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +3 -2
  150. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +36 -12
  151. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +18 -24
  152. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  153. package/cjs/components/shared/monaco-editor/locales/en.json.js +3 -1
  154. package/cjs/components/shared/monaco-editor/locales/ko.json.js +3 -1
  155. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  156. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  157. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  158. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +70 -32
  159. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  160. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  161. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  162. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  163. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  164. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +30 -9
  165. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  166. package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -5
  167. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  168. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  169. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  170. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  171. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  172. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  173. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  174. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  175. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +218 -329
  176. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  177. package/cjs/components/shared/no-vnc/NoVnc.js +93 -90
  178. package/cjs/components/shared/no-vnc/NoVncLazy.js +7 -5
  179. package/cjs/components/shared/preview-container/PreviewContainer.js +7 -10
  180. package/cjs/components/shared/web-browser/WebBrowser.js +54 -59
  181. package/cjs/components/shared/xterm/Xterm.js +112 -105
  182. package/cjs/components/shared/xterm/XtermLazy.js +7 -5
  183. package/cjs/components/shared/xterm/locales/en.json.js +3 -1
  184. package/cjs/components/shared/xterm/locales/ko.json.js +3 -1
  185. package/cjs/constants/arduino.js +10 -10
  186. package/cjs/constants/shortcutKeyMap.js +5 -5
  187. package/cjs/constants/stylesheets.js +7 -10
  188. package/cjs/hooks/useArduino.js +327 -255
  189. package/cjs/hooks/useExerciseFile.js +24 -24
  190. package/cjs/hooks/useExericseShortcut.js +6 -5
  191. package/cjs/hooks/useMaterialExerciseFileUrl.js +54 -37
  192. package/cjs/hooks/useRunnerRoomWebSocket.js +58 -56
  193. package/cjs/hooks/useStdioTextConcator.js +18 -12
  194. package/cjs/hooks/useStdioWebSocket.js +41 -67
  195. package/cjs/hooks/useUsercodeEditWebSocket.js +230 -252
  196. package/cjs/hooks/useUsercodeHistory.js +121 -82
  197. package/cjs/index.js +4 -4
  198. package/cjs/utils/arduino.js +23 -25
  199. package/cjs/utils/exerciseFile.js +8 -16
  200. package/cjs/utils/runner.js +29 -25
  201. package/es/_virtual/_rollupPluginBabelHelpers.js +504 -0
  202. package/es/components/material-exercise/MaterialExercise.js +33 -54
  203. package/es/components/material-exercise/MaterialExercise.styled.js +20 -23
  204. package/es/components/material-exercise/MaterialExerciseMobile.js +15 -13
  205. package/es/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  206. package/es/components/material-exercise/context/ExerciseProvider.js +79 -79
  207. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +11 -13
  208. package/es/components/material-exercise/context/context.js +1 -1
  209. package/es/components/material-exercise/context/recoil.d.ts +2 -1
  210. package/es/components/material-exercise/context/recoil.js +563 -374
  211. package/es/components/material-exercise/context/recoilTypes.js +0 -5
  212. package/es/components/material-exercise/context/subjects.js +3 -6
  213. package/es/components/material-exercise/context/types.d.ts +8 -1
  214. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  215. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +73 -62
  216. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  217. package/es/components/material-exercise/exercise-code-history/locales/en.json.js +3 -0
  218. package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +3 -0
  219. package/es/components/material-exercise/exercise-file/ExerciseFile.js +15 -18
  220. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +222 -195
  221. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -9
  222. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +31 -28
  223. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +52 -45
  224. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  225. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +321 -225
  226. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  227. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +12 -14
  228. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -10
  229. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -5
  230. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +43 -36
  231. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +53 -37
  232. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +25 -20
  233. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +41 -54
  234. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  235. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +25 -19
  236. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  237. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +21 -34
  238. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -10
  239. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +17 -28
  240. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +9 -6
  241. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +81 -82
  242. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +13 -7
  243. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  244. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +236 -146
  245. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +90 -63
  246. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  247. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +218 -219
  248. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  249. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +7 -9
  250. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +27 -25
  251. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +22 -24
  252. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +76 -94
  253. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +24 -26
  254. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +51 -59
  255. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -4
  256. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +6 -11
  257. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +26 -25
  258. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  259. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +284 -174
  260. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  261. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +38 -44
  262. package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +3 -0
  263. package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +3 -0
  264. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +16 -16
  265. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -3
  266. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -13
  267. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -3
  268. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -15
  269. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +15 -10
  270. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +2 -3
  271. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  272. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +5 -6
  273. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  274. package/es/components/shared/file-icon/FileIcon.js +20 -22
  275. package/es/components/shared/file-tabs/FileTab.js +28 -41
  276. package/es/components/shared/file-tabs/FileTab.styled.js +26 -22
  277. package/es/components/shared/file-tabs/FileTabs.js +52 -48
  278. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  279. package/es/components/shared/file-tabs/util.js +29 -18
  280. package/es/components/shared/file-tree/FileTree.js +3 -5
  281. package/es/components/shared/file-tree/FileTreeConfig.js +21 -22
  282. package/es/components/shared/file-tree/FileTreeList.js +31 -39
  283. package/es/components/shared/file-tree/FileTreeListItemContent.js +67 -85
  284. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  285. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +74 -100
  286. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  287. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +48 -85
  288. package/es/components/shared/file-tree/FileTreeListItems.js +147 -152
  289. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  290. package/es/components/shared/file-tree/FileTreeToolbar.js +24 -37
  291. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  292. package/es/components/shared/file-tree/context/FileTreeContext.js +91 -97
  293. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  294. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  295. package/es/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  296. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  297. package/es/components/shared/file-tree/utils/fileTreePath.js +5 -7
  298. package/es/components/shared/file-viewer/FileViewer.js +52 -53
  299. package/es/components/shared/file-viewer/FileViewerCsv.js +141 -99
  300. package/es/components/shared/file-viewer/FileViewerImage.js +3 -6
  301. package/es/components/shared/file-viewer/FileViewerIpynb.js +16 -12
  302. package/es/components/shared/file-viewer/FileViewerNonViewable.js +22 -30
  303. package/es/components/shared/file-viewer/FileViewerText.js +18 -13
  304. package/es/components/shared/material-modal/MaterialModal.js +7 -11
  305. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  306. package/es/components/shared/monaco-editor/MonacoEditor.js +119 -147
  307. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +6 -4
  308. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +45 -56
  309. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +73 -82
  310. package/es/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  311. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  312. package/es/components/shared/monaco-editor/constants/themes/index.js +80 -32
  313. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  314. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  315. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  316. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  317. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  318. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  319. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -11
  320. package/es/components/shared/monaco-editor/editor-languages/css/index.js +2 -5
  321. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -11
  322. package/es/components/shared/monaco-editor/editor-languages/html/index.js +2 -5
  323. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  324. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +0 -1
  325. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +0 -1
  326. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +0 -1
  327. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +33 -11
  328. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -16
  329. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  330. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  331. package/es/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  332. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  333. package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -31
  334. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  335. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  336. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  337. package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  338. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  339. package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -8
  340. package/es/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  341. package/es/components/shared/monaco-editor/utils/theme/index.js +22 -5
  342. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  343. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  344. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  345. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  346. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  347. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  348. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  349. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  350. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +219 -330
  351. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  352. package/es/components/shared/no-vnc/NoVnc.js +89 -88
  353. package/es/components/shared/no-vnc/NoVncLazy.js +4 -2
  354. package/es/components/shared/preview-container/PreviewContainer.js +7 -10
  355. package/es/components/shared/web-browser/WebBrowser.js +49 -56
  356. package/es/components/shared/xterm/Xterm.js +107 -102
  357. package/es/components/shared/xterm/XtermLazy.js +4 -2
  358. package/es/constants/arduino.js +10 -10
  359. package/es/constants/shortcutKeyMap.js +3 -5
  360. package/es/constants/stylesheets.js +7 -10
  361. package/es/hooks/useArduino.js +327 -255
  362. package/es/hooks/useExerciseFile.js +24 -24
  363. package/es/hooks/useExericseShortcut.js +6 -5
  364. package/es/hooks/useMaterialExerciseFileUrl.js +55 -38
  365. package/es/hooks/useRunnerRoomWebSocket.js +58 -56
  366. package/es/hooks/useStdioTextConcator.js +18 -12
  367. package/es/hooks/useStdioWebSocket.js +41 -67
  368. package/es/hooks/useUsercodeEditWebSocket.js +230 -252
  369. package/es/hooks/useUsercodeHistory.js +122 -83
  370. package/es/utils/arduino.js +23 -25
  371. package/es/utils/exerciseFile.js +8 -16
  372. package/es/utils/runner.js +29 -25
  373. package/package.json +8 -8
@@ -1,9 +1,8 @@
1
1
  /* eslint-disable */
2
-
3
2
  /**
4
3
  * Default emmet configuration.
5
4
  */
6
- const DEFAULT_CONFIG = {
5
+ var DEFAULT_CONFIG = {
7
6
  showExpandedAbbreviation: 'always',
8
7
  showAbbreviationSuggestions: true,
9
8
  showSuggestionsAsSnippets: false
@@ -12,8 +11,7 @@ const DEFAULT_CONFIG = {
12
11
  * Mapping between languages that support Emmet and completion trigger characters.
13
12
  * - ref: https://github.com/microsoft/vscode/blob/50140a53cc2088f478a5560683ccd354f2d5f431/extensions/emmet/src/util.ts#L86
14
13
  */
15
-
16
- const LANGUAGE_MODES = {
14
+ var LANGUAGE_MODES = {
17
15
  html: ['!', '.', '}', ':', '*', '$', ']', '/', '>', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
18
16
  jade: ['!', '.', '}', ':', '*', '$', ']', '/', '>', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
19
17
  slim: ['!', '.', '}', ':', '*', '$', ']', '/', '>', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
@@ -32,8 +30,7 @@ const LANGUAGE_MODES = {
32
30
  * Language specific extensions can provide emmet completion support.
33
31
  * - ref: https://github.com/microsoft/vscode/blob/50140a53cc2088f478a5560683ccd354f2d5f431/extensions/emmet/src/util.ts#L124
34
32
  */
35
-
36
- const MAPPED_MODES = {
33
+ var MAPPED_MODES = {
37
34
  handlebars: 'html',
38
35
  php: 'html',
39
36
  twig: 'html'
@@ -1,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import React, { forwardRef } from 'react';
2
3
  import { useMeasure, useMount, useUnmount, useUpdateEffect } from 'react-use';
3
4
  import { Text } from '@elice/blocks';
@@ -17,49 +18,53 @@ import PreviewContainer from '../preview-container/PreviewContainer.js';
17
18
 
18
19
  //
19
20
  //
20
-
21
- const VNC_BACKGROUND_COLOR = base.color.navy7;
22
- const StyledHeaderTitle = styled.div.withConfig({
21
+ //
22
+ var VNC_BACKGROUND_COLOR = base.color.navy7;
23
+ var StyledHeaderTitle = styled.div.withConfig({
23
24
  componentId: "sc-1duy62f-0"
24
25
  })(["flex:1;"]);
25
- const StyledHeaderButtonGroup = styled.div.withConfig({
26
+ var StyledHeaderButtonGroup = styled.div.withConfig({
26
27
  componentId: "sc-1duy62f-1"
27
28
  })(["flex:0 0 auto;display:flex;align-items:center;"]);
28
- const StyledVncWrap = styled.div.withConfig({
29
+ var StyledVncWrap = styled.div.withConfig({
29
30
  componentId: "sc-1duy62f-2"
30
31
  })(["display:flex;align-items:center;justify-content:center;width:100%;height:100%;background-color:", ";overflow:hidden;"], VNC_BACKGROUND_COLOR);
31
- const StyledNoVncContainer = styled.div.withConfig({
32
+ var StyledNoVncContainer = styled.div.withConfig({
32
33
  componentId: "sc-1duy62f-3"
33
34
  })([""]);
34
- const StyledNoVnc = styled.div.withConfig({
35
+ var StyledNoVnc = styled.div.withConfig({
35
36
  componentId: "sc-1duy62f-4"
36
- })(["position:relative;left:50%;top:50%;transform-origin:center center;transform:translate(-50%,-50%);"]); //
37
+ })(["position:relative;left:50%;top:50%;transform-origin:center center;transform:translate(-50%,-50%);"]);
37
38
  //
38
39
  //
39
-
40
- const NoVnc = forwardRef(({
41
- isRunning = false,
42
- wsUri,
43
- roomToken,
44
- readyExerciseImage,
45
- exercisePreviewDisplayModeButton = null,
46
- onConnect,
47
- onDisconnect
48
- }, ref) => {
49
- const vncRfb = React.useRef(null);
50
- const vncElRef = React.useRef(null);
51
- const [vncWrapRef, {
52
- width,
53
- height
54
- }] = useMeasure();
55
- const [isVncScaledFromLocal, setVncScaledFromLocal] = React.useState(true);
40
+ //
41
+ var NoVnc = forwardRef(function (_ref, ref) {
42
+ var _ref$isRunning = _ref.isRunning,
43
+ isRunning = _ref$isRunning === void 0 ? false : _ref$isRunning,
44
+ wsUri = _ref.wsUri,
45
+ roomToken = _ref.roomToken,
46
+ readyExerciseImage = _ref.readyExerciseImage,
47
+ _ref$exercisePreviewD = _ref.exercisePreviewDisplayModeButton,
48
+ exercisePreviewDisplayModeButton = _ref$exercisePreviewD === void 0 ? null : _ref$exercisePreviewD,
49
+ onConnect = _ref.onConnect,
50
+ onDisconnect = _ref.onDisconnect;
51
+ var vncRfb = React.useRef(null);
52
+ var vncElRef = React.useRef(null);
53
+ var _useMeasure = useMeasure(),
54
+ _useMeasure2 = _slicedToArray(_useMeasure, 2),
55
+ vncWrapRef = _useMeasure2[0],
56
+ _useMeasure2$ = _useMeasure2[1],
57
+ width = _useMeasure2$.width,
58
+ height = _useMeasure2$.height;
59
+ var _React$useState = React.useState(true),
60
+ _React$useState2 = _slicedToArray(_React$useState, 2),
61
+ isVncScaledFromLocal = _React$useState2[0],
62
+ setVncScaledFromLocal = _React$useState2[1];
56
63
  /**
57
64
  * Default size of VNC from exericse image.
58
65
  */
59
-
60
- const vncDefaultSize = React.useMemo(() => {
66
+ var vncDefaultSize = React.useMemo(function () {
61
67
  var _a, _b;
62
-
63
68
  return {
64
69
  width: (_a = readyExerciseImage === null || readyExerciseImage === void 0 ? void 0 : readyExerciseImage.defaultVncWidth) !== null && _a !== void 0 ? _a : 300,
65
70
  height: (_b = readyExerciseImage === null || readyExerciseImage === void 0 ? void 0 : readyExerciseImage.defaultVncHeight) !== null && _b !== void 0 ? _b : 300
@@ -68,86 +73,82 @@ const NoVnc = forwardRef(({
68
73
  /**
69
74
  * Transform scale to fit VNC to VNC wrap.
70
75
  */
71
-
72
- const vncTransformScale = React.useMemo(() => Math.min(width / vncDefaultSize.width, height / vncDefaultSize.height), [width, height, vncDefaultSize.width, vncDefaultSize.height]);
76
+ var vncTransformScale = React.useMemo(function () {
77
+ return Math.min(width / vncDefaultSize.width, height / vncDefaultSize.height);
78
+ }, [width, height, vncDefaultSize.width, vncDefaultSize.height]);
73
79
  /**
74
80
  * Element style of VNC and VNC wrap.
75
81
  */
76
-
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]);
82
+ var vncElementStyle = React.useMemo(function () {
83
+ return {
84
+ width: "".concat((vncDefaultSize.width * vncTransformScale).toFixed(3), "px"),
85
+ height: "".concat((vncDefaultSize.height * vncTransformScale).toFixed(3), "px")
86
+ };
87
+ }, [vncDefaultSize.width, vncDefaultSize.height, vncTransformScale]);
81
88
  /**
82
89
  * Connect VNC.
83
90
  */
84
-
85
- const connect = React.useCallback(() => {
91
+ var connect = React.useCallback(function () {
86
92
  if (!vncElRef.current || !wsUri || !roomToken) {
87
93
  return;
88
94
  }
89
-
90
- const vncUrl = `${wsUri}/client/vnc/${roomToken}`; // The RFB object represents a single connection to a VNC server.
95
+ var vncUrl = "".concat(wsUri, "/client/vnc/").concat(roomToken);
96
+ // The RFB object represents a single connection to a VNC server.
91
97
  // It communicates using a WebSocket that must provide a standard RFB protocol stream.
92
98
  // -ref: https://github.com/novnc/noVNC/blob/master/docs/API.md#rfb-1
93
-
94
99
  vncRfb.current = new RFB(vncElRef.current, vncUrl, {
95
100
  wsProtocols: ['binary']
96
- }); // ==============================
101
+ });
102
+ // ==============================
97
103
  // VNC options
98
104
  // ref: https://github.com/novnc/noVNC/blob/master/docs/API.md#properties
99
105
  // ==============================
100
106
  // Is a boolean indicating if the remote session should be clipped to its container.
101
107
  // When disabled scrollbars will be shown to handle the resulting overflow.
102
-
103
- vncRfb.current.clipViewport = false; // Is a boolean indicating if the remote session should be scaled locally so it fits its container.
108
+ vncRfb.current.clipViewport = false;
109
+ // Is a boolean indicating if the remote session should be scaled locally so it fits its container.
104
110
  // When disabled it will be centered if the remote session is smaller than its container,
105
111
  // or handled according to `clipViewport` if it is larger.
106
-
107
112
  vncRfb.current.scaleViewport = isVncScaledFromLocal; // NOTE: select one of `scaleViewport` or `resizeSession`, not both
108
113
  // Is a boolean indicating if a request to resize the remote session should be sent
109
114
  // whenever the container changes dimensions.
110
-
111
115
  vncRfb.current.resizeSession = !isVncScaledFromLocal; // NOTE: select one of `scaleViewport` or `resizeSession`, not both
112
116
  // Is a boolean indicating whether a dot cursor should be shown instead of a zero-sized
113
117
  // or fully-transparent cursor if the server sets such invisible cursor.
114
-
115
- vncRfb.current.showDotCursor = true; // Is a valid CSS background style value indicating
118
+ vncRfb.current.showDotCursor = true;
119
+ // Is a valid CSS background style value indicating
116
120
  // which background style should be applied to the element containing the remote session screen.
117
-
118
- vncRfb.current.background = VNC_BACKGROUND_COLOR; // ==============================
121
+ vncRfb.current.background = VNC_BACKGROUND_COLOR;
122
+ // ==============================
119
123
  // VNC events
120
124
  // ref: https://github.com/novnc/noVNC/blob/master/docs/API.md#events
121
125
  // ==============================
122
126
  // The connect event is fired when the RFB object has completed the connection and handshaking with the server.
123
127
  // - ref: https://github.com/novnc/noVNC/blob/master/docs/API.md#connect
124
-
125
- vncRfb.current.addEventListener('connect', () => {
128
+ vncRfb.current.addEventListener('connect', function () {
126
129
  if (typeof onConnect === 'function') {
127
130
  onConnect();
128
131
  }
129
- }); // The disconnect event is fired when the RFB object disconnects.
132
+ });
133
+ // The disconnect event is fired when the RFB object disconnects.
130
134
  // - ref: https://github.com/novnc/noVNC/blob/master/docs/API.md#disconnect
131
-
132
- vncRfb.current.addEventListener('disconnect', () => {
135
+ vncRfb.current.addEventListener('disconnect', function () {
133
136
  if (typeof onDisconnect === 'function') {
134
137
  onDisconnect();
135
138
  }
136
139
  });
137
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
140
+ },
141
+ // eslint-disable-next-line react-hooks/exhaustive-deps
138
142
  [wsUri, roomToken, isVncScaledFromLocal]);
139
143
  /**
140
144
  * Disconnect VNC.
141
145
  */
142
-
143
- const disconnect = React.useCallback(() => {
146
+ var disconnect = React.useCallback(function () {
144
147
  var _a;
145
-
146
148
  if (typeof ((_a = vncRfb.current) === null || _a === void 0 ? void 0 : _a.disconnect) === 'function') {
147
149
  vncRfb.current.disconnect();
148
150
  vncRfb.current = null;
149
151
  }
150
-
151
152
  if (vncElRef.current) {
152
153
  vncElRef.current.innerHTML = '';
153
154
  }
@@ -156,15 +157,13 @@ const NoVnc = forwardRef(({
156
157
  * Reset VNC.
157
158
  * - note: https://www.notion.so/elice/elice-runner-v3-forwarder-4907ba8546274956b2f55c586df1641a#d61df659d91644db85a52fc148a69e13
158
159
  */
159
-
160
- const reset = React.useCallback(() => {
160
+ var reset = React.useCallback(function () {
161
161
  if (!vncRfb.current) {
162
162
  return;
163
- } //
163
+ }
164
+ //
164
165
  // FIXME: This code accesses to the internal of noVNC
165
166
  //
166
-
167
-
168
167
  vncRfb.current._rfbConnectionState = 'connecting';
169
168
  vncRfb.current._rfbInitState = 'ProtocolVersion';
170
169
  vncRfb.current._rfbTightVNC = false;
@@ -194,46 +193,45 @@ const NoVnc = forwardRef(({
194
193
  vncRfb.current._decoders[encodings.encodingHextile] = new RFB_decoders_hextile();
195
194
  vncRfb.current._decoders[encodings.encodingTight] = new RFB_decoders_tight();
196
195
  vncRfb.current._decoders[encodings.encodingTightPNG] = new RFB_decoders_tight_png();
197
-
198
196
  vncRfb.current._sock.flush();
199
-
200
197
  vncRfb.current._sock._allocateBuffers();
201
-
202
198
  vncRfb.current._sock._rQi = 0;
203
- vncRfb.current._sock._rQlen = 0; //
199
+ vncRfb.current._sock._rQlen = 0;
200
+ //
204
201
  // FIXME: This code accesses to the internal of noVNC
205
202
  //
206
- }, []); //
203
+ }, []);
204
+ //
207
205
  // Connect or disconnect VNC.
208
206
  //
209
-
210
207
  useMount(connect);
211
- useUnmount(disconnect); //
208
+ useUnmount(disconnect);
209
+ //
212
210
  // Update VNC scale config.
213
211
  //
214
-
215
- useUpdateEffect(() => {
212
+ useUpdateEffect(function () {
216
213
  if (!vncRfb.current) {
217
214
  return;
218
215
  }
219
-
220
216
  vncRfb.current.scaleViewport = isVncScaledFromLocal;
221
217
  vncRfb.current.resizeSession = !isVncScaledFromLocal;
222
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
223
- [isVncScaledFromLocal]); //
218
+ },
219
+ // eslint-disable-next-line react-hooks/exhaustive-deps
220
+ [isVncScaledFromLocal]);
224
221
  //
225
222
  //
226
-
227
- React.useImperativeHandle(ref, () => ({
228
- connect,
229
- disconnect,
230
- reset
231
- }), [connect, disconnect, reset]);
223
+ //
224
+ React.useImperativeHandle(ref, function () {
225
+ return {
226
+ connect: connect,
227
+ disconnect: disconnect,
228
+ reset: reset
229
+ };
230
+ }, [connect, disconnect, reset]);
232
231
  /**
233
232
  * Header.
234
233
  */
235
-
236
- const renderVncHeader = () => {
234
+ var renderVncHeader = function renderVncHeader() {
237
235
  return React.createElement(React.Fragment, null, React.createElement(StyledHeaderTitle, null, React.createElement(Text, {
238
236
  role: "white",
239
237
  size: "tiny"
@@ -241,15 +239,18 @@ const NoVnc = forwardRef(({
241
239
  icon: isVncScaledFromLocal ? eilViewMaximize : eilViewMinimize,
242
240
  title: isRunning ? '실행 중에는 비율을 변경할 수 없습니다' : isVncScaledFromLocal ? '확대하여 보기' : '원본 비율로 보기',
243
241
  disabled: isRunning,
244
- onClick: () => setVncScaledFromLocal(prev => !prev)
242
+ onClick: function onClick() {
243
+ return setVncScaledFromLocal(function (prev) {
244
+ return !prev;
245
+ });
246
+ }
245
247
  }), React.isValidElement(exercisePreviewDisplayModeButton) ? React.cloneElement(exercisePreviewDisplayModeButton, {
246
248
  disabled: isRunning
247
249
  }) : null));
248
- }; //
250
+ };
251
+ //
249
252
  //
250
253
  //
251
-
252
-
253
254
  return React.createElement(PreviewContainer, {
254
255
  header: renderVncHeader()
255
256
  }, React.createElement(StyledVncWrap, {
@@ -1,7 +1,9 @@
1
1
  import React, { forwardRef } from 'react';
2
2
 
3
- const AsyncNoVnc = React.lazy(() => import('./NoVnc.js'));
4
- const NoVncLazy = forwardRef((props, ref) => {
3
+ var AsyncNoVnc = React.lazy(function () {
4
+ return import('./NoVnc.js');
5
+ });
6
+ var NoVncLazy = forwardRef(function (props, ref) {
5
7
  return React.createElement(React.Suspense, {
6
8
  fallback: null
7
9
  }, React.createElement(AsyncNoVnc, Object.assign({}, props, {
@@ -2,20 +2,17 @@ import React, { forwardRef } from 'react';
2
2
  import { base } from '@elice/design-tokens';
3
3
  import styled from 'styled-components';
4
4
 
5
- const PREVIEW_CONTAINER_HEADER_HEIGHT = 36; // 2.25rem
6
-
7
- const PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM = 4; // 0.25rem
8
-
9
- const StyledPreviewContainer = styled.div.withConfig({
5
+ var PREVIEW_CONTAINER_HEADER_HEIGHT = 36; // 2.25rem
6
+ var PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM = 4; // 0.25rem
7
+ var StyledPreviewContainer = styled.div.withConfig({
10
8
  componentId: "sc-1oi07w2-0"
11
9
  })(["display:flex;flex-direction:column;width:100%;height:100%;background-color:", ";overflow:hidden;"], base.color.white);
12
- const StyledPreviewHeader = styled.div.withConfig({
10
+ var StyledPreviewHeader = styled.div.withConfig({
13
11
  componentId: "sc-1oi07w2-1"
14
12
  })(["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, base.color.navy7, base.color.navy8);
15
- const PreviewContainer = forwardRef(({
16
- children,
17
- header
18
- }, ref) => {
13
+ var PreviewContainer = forwardRef(function (_ref, ref) {
14
+ var children = _ref.children,
15
+ header = _ref.header;
19
16
  return React.createElement(StyledPreviewContainer, {
20
17
  ref: ref
21
18
  }, React.createElement(StyledPreviewHeader, {
@@ -1,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import React, { forwardRef } from 'react';
2
3
  import { Flex } from '@elice/blocks';
3
4
  import { base } from '@elice/design-tokens';
@@ -6,40 +7,45 @@ import styled from 'styled-components';
6
7
  import ExerciseMenuButton from '../exercise-menu-button/ExerciseMenuButton.js';
7
8
  import PreviewContainer, { PREVIEW_CONTAINER_HEADER_HEIGHT, PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM } from '../preview-container/PreviewContainer.js';
8
9
 
9
- const WEB_BROWSER_URL_INPUT_HEIGHT = PREVIEW_CONTAINER_HEADER_HEIGHT - PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM * 2;
10
- const StyledHeaderUrlInput = styled.input.withConfig({
10
+ var WEB_BROWSER_URL_INPUT_HEIGHT = PREVIEW_CONTAINER_HEADER_HEIGHT - PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM * 2;
11
+ var StyledHeaderUrlInput = styled.input.withConfig({
11
12
  componentId: "sc-1c55yq-0"
12
13
  })(["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, base.color.white, base.color.navy6);
13
- const StyledIframe = styled.iframe.withConfig({
14
+ var StyledIframe = styled.iframe.withConfig({
14
15
  componentId: "sc-1c55yq-1"
15
16
  })(["flex:1;width:100%;height:100%;min-height:0;border:0;"]);
16
17
  /**
17
18
  * Attach `_cachebust` search parameter to the URL to prevent caching.
18
19
  */
19
-
20
- const createCacheBustedUrl = url => {
20
+ var createCacheBustedUrl = function createCacheBustedUrl(url) {
21
21
  try {
22
- const urlObject = new URL(url);
22
+ var urlObject = new URL(url);
23
23
  urlObject.searchParams.set('_cachebust', Date.now().toString());
24
24
  return urlObject.href;
25
25
  } catch (_) {
26
26
  return url;
27
27
  }
28
28
  };
29
-
30
- const WebBrowser = forwardRef(({
31
- httpUri,
32
- menuButtons = null
33
- }, ref) => {
34
- const [url, setUrl] = React.useState('');
35
- const [inputUrl, setInputUrl] = React.useState('');
36
- const iframeRef = React.useRef(null);
37
- const iframeSrc = React.useMemo(() => createCacheBustedUrl(url), [url]);
29
+ var WebBrowser = forwardRef(function (_ref, ref) {
30
+ var httpUri = _ref.httpUri,
31
+ _ref$menuButtons = _ref.menuButtons,
32
+ menuButtons = _ref$menuButtons === void 0 ? null : _ref$menuButtons;
33
+ var _React$useState = React.useState(''),
34
+ _React$useState2 = _slicedToArray(_React$useState, 2),
35
+ url = _React$useState2[0],
36
+ setUrl = _React$useState2[1];
37
+ var _React$useState3 = React.useState(''),
38
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
39
+ inputUrl = _React$useState4[0],
40
+ setInputUrl = _React$useState4[1];
41
+ var iframeRef = React.useRef(null);
42
+ var iframeSrc = React.useMemo(function () {
43
+ return createCacheBustedUrl(url);
44
+ }, [url]);
38
45
  /**
39
46
  * Navigate browser.
40
47
  */
41
-
42
- const navigate = React.useCallback(newUrl => {
48
+ var navigate = React.useCallback(function (newUrl) {
43
49
  if (newUrl) {
44
50
  setUrl(newUrl);
45
51
  }
@@ -47,8 +53,7 @@ const WebBrowser = forwardRef(({
47
53
  /**
48
54
  * Reload browser.
49
55
  */
50
-
51
- const reload = React.useCallback(() => {
56
+ var reload = React.useCallback(function () {
52
57
  if (iframeRef.current) {
53
58
  iframeRef.current.src = createCacheBustedUrl(iframeRef.current.src);
54
59
  }
@@ -56,10 +61,8 @@ const WebBrowser = forwardRef(({
56
61
  /**
57
62
  * New window open click.
58
63
  */
59
-
60
- const handleNewWindowClick = () => {
61
- const win = window.open(url, '_blank');
62
-
64
+ var handleNewWindowClick = function handleNewWindowClick() {
65
+ var win = window.open(url, '_blank');
63
66
  if (win) {
64
67
  win.focus();
65
68
  }
@@ -67,19 +70,15 @@ const WebBrowser = forwardRef(({
67
70
  /**
68
71
  * Handle url input change.
69
72
  */
70
-
71
-
72
- const handleUrlInputChange = e => {
73
- const value = e.target.value; // prevent removal of origin url (props.httpUri)
74
-
73
+ var handleUrlInputChange = function handleUrlInputChange(e) {
74
+ var value = e.target.value;
75
+ // prevent removal of origin url (props.httpUri)
75
76
  setInputUrl(value.startsWith(httpUri) ? value : httpUri);
76
77
  };
77
78
  /**
78
79
  * Handle url input Enter key down.
79
80
  */
80
-
81
-
82
- const handleUrlInputKeyDown = e => {
81
+ var handleUrlInputKeyDown = function handleUrlInputKeyDown(e) {
83
82
  if (e.key === 'Enter') {
84
83
  e.preventDefault();
85
84
  navigate(inputUrl);
@@ -88,41 +87,38 @@ const WebBrowser = forwardRef(({
88
87
  /**
89
88
  * Handle iframe load.
90
89
  */
91
-
92
-
93
- const handleIframeLoad = () => {
90
+ var handleIframeLoad = function handleIframeLoad() {
94
91
  var _a, _b, _c;
95
-
96
92
  try {
97
- 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;
98
-
93
+ 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;
99
94
  if (iframeUrl) {
100
95
  setInputUrl(iframeUrl);
101
96
  }
102
- } catch (err) {// SecurityError : can be raised on the cross-origin environment!
97
+ } catch (err) {
98
+ // SecurityError : can be raised on the cross-origin environment!
103
99
  // do nothing.
104
100
  }
105
- }; //
101
+ };
102
+ //
106
103
  // Change url on new httpUri provided.
107
104
  //
108
-
109
-
110
- React.useEffect(() => {
105
+ React.useEffect(function () {
111
106
  setUrl(httpUri);
112
107
  setInputUrl(httpUri);
113
- }, [httpUri]); //
108
+ }, [httpUri]);
114
109
  //
115
110
  //
116
-
117
- React.useImperativeHandle(ref, () => ({
118
- navigate,
119
- reload
120
- }), [navigate, reload]);
111
+ //
112
+ React.useImperativeHandle(ref, function () {
113
+ return {
114
+ navigate: navigate,
115
+ reload: reload
116
+ };
117
+ }, [navigate, reload]);
121
118
  /**
122
119
  * Browser header.
123
120
  */
124
-
125
- const renderBrowserHeader = () => {
121
+ var renderBrowserHeader = function renderBrowserHeader() {
126
122
  return React.createElement(React.Fragment, null, React.createElement(Flex, {
127
123
  marginright: "0.25rem"
128
124
  }, React.createElement(ExerciseMenuButton, {
@@ -146,20 +142,17 @@ const WebBrowser = forwardRef(({
146
142
  /**
147
143
  * Browser content.
148
144
  */
149
-
150
-
151
- const renderBrowserBody = () => {
145
+ var renderBrowserBody = function renderBrowserBody() {
152
146
  return React.createElement(StyledIframe, {
153
147
  src: iframeSrc,
154
148
  title: url,
155
149
  onLoad: handleIframeLoad,
156
150
  ref: iframeRef
157
151
  });
158
- }; //
152
+ };
153
+ //
159
154
  //
160
155
  //
161
-
162
-
163
156
  return React.createElement(PreviewContainer, {
164
157
  header: renderBrowserHeader()
165
158
  }, renderBrowserBody());