@elice/material-exercise 1.231227.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
@@ -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 designTokens = require('@elice/design-tokens');
8
7
  var monaco = require('monaco-editor/esm/vs/editor/editor.api');
@@ -20,10 +19,7 @@ var index = require('./editor-languages/index.js');
20
19
  var useEditorOptions = require('./hooks/useEditorOptions.js');
21
20
  var monacoLanguage = require('./utils/monacoLanguage.js');
22
21
 
23
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
-
25
- function _interopNamespace(e) {
26
- if (e && e.__esModule) return e;
22
+ function _interopNamespaceDefault(e) {
27
23
  var n = Object.create(null);
28
24
  if (e) {
29
25
  Object.keys(e).forEach(function (k) {
@@ -36,85 +32,74 @@ function _interopNamespace(e) {
36
32
  }
37
33
  });
38
34
  }
39
- n["default"] = e;
35
+ n.default = e;
40
36
  return Object.freeze(n);
41
37
  }
42
38
 
43
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
44
- var monaco__namespace = /*#__PURE__*/_interopNamespace(monaco);
45
- var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
39
+ var monaco__namespace = /*#__PURE__*/_interopNamespaceDefault(monaco);
46
40
 
47
41
  //
48
42
  //
49
43
  //
50
44
  // pre-init monaco editor
51
- index["default"]();
52
- index$1["default"]().catch(console.warn);
45
+ index.default();
46
+ index$1.default().catch(console.warn);
53
47
  //
54
48
  //
55
49
  //
56
- var StyledMonacoEditorWrapper = styled__default["default"].div.withConfig({
50
+ const StyledMonacoEditorWrapper = styled.div.withConfig({
57
51
  componentId: "sc-1j3uyex-0"
58
52
  })(["width:100%;height:100%;"]);
59
- var StyledMonacoEditor = styled__default["default"].div.withConfig({
53
+ const StyledMonacoEditor = styled.div.withConfig({
60
54
  componentId: "sc-1j3uyex-1"
61
55
  })(["width:100%;height:100%;background-color:", ";", ""], designTokens.base.color.navy9, styles.cssRemoteMarker);
62
56
  /**
63
57
  *
64
58
  */
65
- var MonacoEditor = React.forwardRef(function (_ref, ref) {
66
- var _ref$defaultValue = _ref.defaultValue,
67
- defaultValue = _ref$defaultValue === void 0 ? '' : _ref$defaultValue,
68
- _ref$filename = _ref.filename,
69
- filename = _ref$filename === void 0 ? '/noname.txt' : _ref$filename,
70
- _ref$preference = _ref.preference,
71
- preference = _ref$preference === void 0 ? preferences.DEFAULT_MONACO_EDITOR_PREFERENCE : _ref$preference,
72
- _ref$markers = _ref.markers,
73
- markers = _ref$markers === void 0 ? [] : _ref$markers,
74
- _ref$width = _ref.width,
75
- width = _ref$width === void 0 ? '100%' : _ref$width,
76
- _ref$height = _ref.height,
77
- height = _ref$height === void 0 ? '100%' : _ref$height,
78
- _ref$noLanguageIntell = _ref.noLanguageIntellisense,
79
- noLanguageIntellisense = _ref$noLanguageIntell === void 0 ? false : _ref$noLanguageIntell,
80
- onLoad = _ref.onLoad,
81
- onChange = _ref.onChange,
82
- onSave = _ref.onSave,
83
- onCursor = _ref.onCursor,
84
- onScroll = _ref.onScroll,
85
- onThemeChange = _ref.onThemeChange;
59
+ const MonacoEditor = React.forwardRef(({
60
+ defaultValue = '',
61
+ filename = '/noname.txt',
62
+ preference = preferences.DEFAULT_MONACO_EDITOR_PREFERENCE,
63
+ markers = [],
64
+ width = '100%',
65
+ height = '100%',
66
+ noLanguageIntellisense = false,
67
+ onLoad,
68
+ onChange,
69
+ onSave,
70
+ onCursor,
71
+ onScroll,
72
+ onThemeChange
73
+ }, ref) => {
86
74
  /** Ref of element which wraps editor. */
87
- var editorElRef = React__default["default"].useRef(null);
75
+ const editorElRef = React.useRef(null);
88
76
  /** Ref of editor exposed APIs. */
89
- var editorApis = React__default["default"].useRef({});
77
+ const editorApis = React.useRef({});
90
78
  /** Ref of monaco editor. */
91
- var editor = React__default["default"].useRef(null);
79
+ const editor = React.useRef(null);
92
80
  /** Editor options. */
93
- var editorOptions = useEditorOptions.useEditorOptions({
94
- width: width,
95
- height: height,
96
- preference: preference,
97
- noLanguageIntellisense: noLanguageIntellisense
81
+ const editorOptions = useEditorOptions.useEditorOptions({
82
+ width,
83
+ height,
84
+ preference,
85
+ noLanguageIntellisense
98
86
  });
99
87
  /** Ref for preventing change event. */
100
- var suppress = React__default["default"].useRef(false);
88
+ const suppress = React.useRef(false);
101
89
  /** Is editor ready? */
102
- var _React$useState = React__default["default"].useState(false),
103
- _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
104
- isReady = _React$useState2[0],
105
- setReady = _React$useState2[1];
90
+ const [isReady, setReady] = React.useState(false);
106
91
  /**
107
92
  * Get model of editor.
108
93
  */
109
- var getMonacoModel = function getMonacoModel() {
110
- var uri = monaco__namespace.Uri.file(filename || '/noname.txt');
94
+ const getMonacoModel = () => {
95
+ const uri = monaco__namespace.Uri.file(filename || '/noname.txt');
111
96
  return monaco__namespace.editor.getModel(uri);
112
97
  };
113
98
  /**
114
99
  * Has editor undo/redo history?
115
100
  * @public
116
101
  */
117
- var hasHistory = function hasHistory() {
102
+ const hasHistory = () => {
118
103
  var _a;
119
104
  return (((_a = getMonacoModel()) === null || _a === void 0 ? void 0 : _a.getAlternativeVersionId()) || 0) > 1;
120
105
  };
@@ -122,14 +107,14 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
122
107
  * Clear editor undo/redo history.
123
108
  * @public
124
109
  */
125
- var clearHistory = function clearHistory() {
110
+ const clearHistory = () => {
126
111
  getMonacoModel();
127
112
  };
128
113
  /**
129
114
  * Get current value of editor.
130
115
  * @public
131
116
  */
132
- var getValue = function getValue() {
117
+ const getValue = () => {
133
118
  var _a;
134
119
  return ((_a = getMonacoModel()) === null || _a === void 0 ? void 0 : _a.getValue()) || '';
135
120
  };
@@ -137,16 +122,16 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
137
122
  * Get value in range of editor.
138
123
  * @public
139
124
  */
140
- var getValueInRange = function getValueInRange(from, to) {
141
- var model = getMonacoModel();
125
+ const getValueInRange = (from, to) => {
126
+ const model = getMonacoModel();
142
127
  if (!model) {
143
128
  return '';
144
129
  }
145
130
  if (from === to) {
146
131
  return '';
147
132
  }
148
- var startPosition = model.getPositionAt(from);
149
- var endPosition = model.getPositionAt(to);
133
+ const startPosition = model.getPositionAt(from);
134
+ const endPosition = model.getPositionAt(to);
150
135
  return model.getValueInRange({
151
136
  startLineNumber: startPosition.lineNumber,
152
137
  startColumn: startPosition.column,
@@ -158,14 +143,14 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
158
143
  * Set (overwrite) value to editor.
159
144
  * @public
160
145
  */
161
- var setValue = function setValue(newValue) {
146
+ const setValue = newValue => {
162
147
  if (!editor.current) {
163
148
  return;
164
149
  }
165
150
  // Replace value EOL as LF.
166
151
  newValue = newValue.replace(/\r\n/g, '\n');
167
- var uri = monaco__namespace.Uri.file(filename || '/noname.txt');
168
- var model = monaco__namespace.editor.getModel(uri);
152
+ const uri = monaco__namespace.Uri.file(filename || '/noname.txt');
153
+ const model = monaco__namespace.editor.getModel(uri);
169
154
  if (model && !model.isDisposed()) {
170
155
  // Override EOL as LF to prevent error at Windows env.
171
156
  model.setEOL(monaco__namespace.editor.EndOfLineSequence.LF);
@@ -177,9 +162,7 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
177
162
  range: model.getFullModelRange(),
178
163
  text: newValue,
179
164
  forceMoveMarkers: true
180
- }], function () {
181
- return null;
182
- });
165
+ }], () => null);
183
166
  editor.current.pushUndoStop();
184
167
  suppress.current = false;
185
168
  editor.current.setModel(model);
@@ -189,8 +172,8 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
189
172
  // If model has not created yet for this file,
190
173
  // create new model.
191
174
  else {
192
- var lang = monacoLanguage.getLanguageFromFilename(filename);
193
- var newModel = monaco__namespace.editor.createModel(newValue, lang, uri);
175
+ const lang = monacoLanguage.getLanguageFromFilename(filename);
176
+ const newModel = monaco__namespace.editor.createModel(newValue, lang, uri);
194
177
  newModel.setEOL(monaco__namespace.editor.EndOfLineSequence.LF);
195
178
  editor.current.setModel(newModel);
196
179
  }
@@ -199,24 +182,22 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
199
182
  * Insert value at specific position.
200
183
  * @public
201
184
  */
202
- var insertValue = function insertValue(offset, newValue) {
185
+ const insertValue = (offset, newValue) => {
203
186
  if (!editor.current) {
204
187
  return;
205
188
  }
206
189
  // Replace value EOL as LF.
207
190
  newValue = newValue.replace(/\r\n/g, '\n');
208
- var model = getMonacoModel();
191
+ const model = getMonacoModel();
209
192
  if (model) {
210
- var position = model.getPositionAt(offset);
193
+ const position = model.getPositionAt(offset);
211
194
  suppress.current = true;
212
195
  editor.current.pushUndoStop();
213
196
  model.pushEditOperations([], [{
214
197
  range: new monaco__namespace.Range(position.lineNumber, position.column, position.lineNumber, position.column),
215
198
  text: newValue,
216
199
  forceMoveMarkers: true
217
- }], function () {
218
- return null;
219
- });
200
+ }], () => null);
220
201
  editor.current.pushUndoStop();
221
202
  suppress.current = false;
222
203
  }
@@ -225,23 +206,21 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
225
206
  * Remove value at specific range.
226
207
  * @public
227
208
  */
228
- var removeValue = function removeValue(from, to) {
209
+ const removeValue = (from, to) => {
229
210
  if (!editor.current) {
230
211
  return;
231
212
  }
232
- var model = getMonacoModel();
213
+ const model = getMonacoModel();
233
214
  if (model) {
234
- var startPosition = model.getPositionAt(from);
235
- var endPosition = model.getPositionAt(to);
215
+ const startPosition = model.getPositionAt(from);
216
+ const endPosition = model.getPositionAt(to);
236
217
  suppress.current = true;
237
218
  editor.current.pushUndoStop();
238
219
  model.pushEditOperations([], [{
239
220
  range: new monaco__namespace.Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column),
240
221
  text: '',
241
222
  forceMoveMarkers: true
242
- }], function () {
243
- return null;
244
- });
223
+ }], () => null);
245
224
  editor.current.pushUndoStop();
246
225
  suppress.current = false;
247
226
  }
@@ -250,9 +229,9 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
250
229
  * Get offset of current cursor position.
251
230
  * @public
252
231
  */
253
- var getPositionOffset = function getPositionOffset() {
232
+ const getPositionOffset = () => {
254
233
  var _a;
255
- var model = getMonacoModel();
234
+ const model = getMonacoModel();
256
235
  if (!editor.current || !model) {
257
236
  return 0;
258
237
  }
@@ -262,12 +241,12 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
262
241
  * Set selection of editor with specific range.
263
242
  * @public
264
243
  */
265
- var setSelection = function setSelection(from, to) {
244
+ const setSelection = (from, to) => {
266
245
  var _a;
267
- var model = getMonacoModel();
246
+ const model = getMonacoModel();
268
247
  if (model) {
269
- var markerStartPosition = model.getPositionAt(from);
270
- var markerEndPosition = model.getPositionAt(to);
248
+ const markerStartPosition = model.getPositionAt(from);
249
+ const markerEndPosition = model.getPositionAt(to);
271
250
  (_a = editor.current) === null || _a === void 0 ? void 0 : _a.setSelection(new monaco__namespace.Range(markerStartPosition.lineNumber, markerStartPosition.column, markerEndPosition.lineNumber, markerEndPosition.column));
272
251
  }
273
252
  };
@@ -275,7 +254,7 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
275
254
  * Scroll editor to specific `scrollTop`.
276
255
  * @public
277
256
  */
278
- var scrollTo = function scrollTo(scrollTop) {
257
+ const scrollTo = scrollTop => {
279
258
  var _a;
280
259
  (_a = editor.current) === null || _a === void 0 ? void 0 : _a.setScrollTop(scrollTop);
281
260
  };
@@ -287,11 +266,11 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
287
266
  useMonacoEventChange.useMonacoEventChange(editor, onChange, suppress, [isReady]);
288
267
  useMonacoEventCursor.useMonacoEventCursor(editor, onCursor, [isReady]);
289
268
  useMonacoEventScroll.useMonacoEventScroll(editor, onScroll, [isReady]);
290
- var remoteMarker = useMonacoMarkers.useMonacoMarkers(editor, markers);
269
+ const remoteMarker = useMonacoMarkers.useMonacoMarkers(editor, markers);
291
270
  //
292
271
  // Init and dispose editor.
293
272
  //
294
- React__default["default"].useEffect(function () {
273
+ React.useEffect(() => {
295
274
  try {
296
275
  if (!editorElRef.current) {
297
276
  return;
@@ -302,11 +281,11 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
302
281
  language: monacoLanguage.getLanguageFromFilename(filename)
303
282
  }));
304
283
  // add keyboard shortcut.
305
- editor.current.addCommand(monaco__namespace.KeyMod.CtrlCmd | monaco__namespace.KeyCode.KeyS, function () {
284
+ editor.current.addCommand(monaco__namespace.KeyMod.CtrlCmd | monaco__namespace.KeyCode.KeyS, () => {
306
285
  var _a, _b, _c;
307
286
  void ((_b = (_a = editor.current) === null || _a === void 0 ? void 0 : _a.getAction('editor.action.formatDocument')) === null || _b === void 0 ? void 0 : _b.run());
308
287
  if (typeof onSave === 'function') {
309
- var content = ((_c = getMonacoModel()) === null || _c === void 0 ? void 0 : _c.getValue()) || '';
288
+ const content = ((_c = getMonacoModel()) === null || _c === void 0 ? void 0 : _c.getValue()) || '';
310
289
  onSave(content);
311
290
  }
312
291
  });
@@ -319,7 +298,7 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
319
298
  } catch (_) {
320
299
  setReady(false);
321
300
  }
322
- return function () {
301
+ return () => {
323
302
  var _a;
324
303
  setReady(false);
325
304
  // dispose remote marker
@@ -335,9 +314,7 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
335
314
  //
336
315
  // Set value whenevet filename or value changed.
337
316
  //
338
- React__default["default"].useEffect(function () {
339
- return setValue(defaultValue);
340
- },
317
+ React.useEffect(() => setValue(defaultValue),
341
318
  // eslint-disable-next-line react-hooks/exhaustive-deps
342
319
  [filename, defaultValue]);
343
320
  //
@@ -355,19 +332,17 @@ var MonacoEditor = React.forwardRef(function (_ref, ref) {
355
332
  editorApis.current.getPositionOffset = getPositionOffset;
356
333
  editorApis.current.setSelection = setSelection;
357
334
  editorApis.current.scrollTo = scrollTo;
358
- React__default["default"].useImperativeHandle(ref, function () {
359
- return editorApis.current;
360
- }, [editorApis]);
335
+ React.useImperativeHandle(ref, () => editorApis.current, [editorApis]);
361
336
  //
362
337
  //
363
338
  //
364
- return React__default["default"].createElement(StyledMonacoEditorWrapper, null, React__default["default"].createElement(StyledMonacoEditor, {
339
+ return React.createElement(StyledMonacoEditorWrapper, null, React.createElement(StyledMonacoEditor, {
365
340
  style: {
366
- width: width,
367
- height: height
341
+ width,
342
+ height
368
343
  },
369
344
  ref: editorElRef
370
345
  }));
371
346
  });
372
347
 
373
- exports["default"] = MonacoEditor;
348
+ exports.default = MonacoEditor;
@@ -10,25 +10,19 @@ require('../exercise-shimmer/ExerciseFileTabShimmer.js');
10
10
  require('../exercise-shimmer/ExerciseFileTreeListShimmer.js');
11
11
  require('../exercise-shimmer/ExerciseFileTreeListItemShimmer.js');
12
12
 
13
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
-
15
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
-
17
13
  //
18
14
  //
19
15
  //
20
- var AsyncMonacoEditor = React__default["default"].lazy(function () {
21
- return utils.FlutterApp.checkWebview() ? Promise.resolve().then(function () { return require('./MonacoEditorMobile.js'); }) : Promise.resolve().then(function () { return require('./MonacoEditor.js'); });
22
- });
16
+ const AsyncMonacoEditor = React.lazy(() => utils.FlutterApp.checkWebview() ? Promise.resolve().then(function () { return require('./MonacoEditorMobile.js'); }) : Promise.resolve().then(function () { return require('./MonacoEditor.js'); }));
23
17
  //
24
18
  //
25
19
  //
26
- var MonacoEditorLazy = React.forwardRef(function (props, ref) {
27
- return React__default["default"].createElement(React__default["default"].Suspense, {
28
- fallback: React__default["default"].createElement(ExerciseFileShimmer["default"], null)
29
- }, React__default["default"].createElement(AsyncMonacoEditor, Object.assign({}, props, {
20
+ const MonacoEditorLazy = React.forwardRef((props, ref) => {
21
+ return React.createElement(React.Suspense, {
22
+ fallback: React.createElement(ExerciseFileShimmer.default, null)
23
+ }, React.createElement(AsyncMonacoEditor, Object.assign({}, props, {
30
24
  ref: ref
31
25
  })));
32
26
  });
33
27
 
34
- exports["default"] = MonacoEditorLazy;
28
+ exports.default = MonacoEditorLazy;
@@ -2,16 +2,12 @@
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 monaco = require('monaco-editor/esm/vs/editor/editor.api');
9
8
  var MonacoEditor = require('./MonacoEditor.js');
10
9
 
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
-
13
- function _interopNamespace(e) {
14
- if (e && e.__esModule) return e;
10
+ function _interopNamespaceDefault(e) {
15
11
  var n = Object.create(null);
16
12
  if (e) {
17
13
  Object.keys(e).forEach(function (k) {
@@ -24,17 +20,16 @@ function _interopNamespace(e) {
24
20
  }
25
21
  });
26
22
  }
27
- n["default"] = e;
23
+ n.default = e;
28
24
  return Object.freeze(n);
29
25
  }
30
26
 
31
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
32
- var monaco__namespace = /*#__PURE__*/_interopNamespace(monaco);
27
+ var monaco__namespace = /*#__PURE__*/_interopNamespaceDefault(monaco);
33
28
 
34
29
  //
35
30
  //
36
31
  //
37
- var MOBILE_EDITOR_PREFERENCE = Object.freeze({
32
+ const MOBILE_EDITOR_PREFERENCE = Object.freeze({
38
33
  autoClosingBrackets: 'always',
39
34
  cursorSmoothCaretAnimation: false,
40
35
  detectIndentation: true,
@@ -47,39 +42,32 @@ var MOBILE_EDITOR_PREFERENCE = Object.freeze({
47
42
  theme: 'elice',
48
43
  wordWrap: 'on'
49
44
  });
50
- var IS_IOS = ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) || navigator.userAgent.includes('Mac') && 'ontouchend' in document;
45
+ const IS_IOS = ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) || navigator.userAgent.includes('Mac') && 'ontouchend' in document;
51
46
  //
52
47
  //
53
48
  //
54
- var MonacoEditorMobile = React.forwardRef(function (props, ref) {
55
- var editorApiRef = reactUse.useEnsuredForwardedRef(ref);
56
- var _React$useState = React__default["default"].useState(MOBILE_EDITOR_PREFERENCE),
57
- _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
58
- preference = _React$useState2[0],
59
- setPreference = _React$useState2[1];
49
+ const MonacoEditorMobile = React.forwardRef((props, ref) => {
50
+ const editorApiRef = reactUse.useEnsuredForwardedRef(ref);
51
+ const [preference, setPreference] = React.useState(MOBILE_EDITOR_PREFERENCE);
60
52
  /**
61
53
  * Add a button to show keyboard on non-Apple devices.
62
54
  */
63
- var addKeyboardButtonOverlayWidget = function addKeyboardButtonOverlayWidget(editor) {
55
+ const addKeyboardButtonOverlayWidget = editor => {
64
56
  if (IS_IOS) {
65
57
  return;
66
58
  }
67
59
  editor.addOverlayWidget({
68
- getId: function getId() {
60
+ getId: () => {
69
61
  return 'editor.contrib.ShowKeyboardWidget';
70
62
  },
71
- getDomNode: function getDomNode() {
72
- var domNode = document.createElement('textarea');
63
+ getDomNode: () => {
64
+ const domNode = document.createElement('textarea');
73
65
  domNode.className = 'iPadShowKeyboard';
74
- domNode.addEventListener('touchstart', function () {
75
- return editor.focus();
76
- });
77
- domNode.addEventListener('focus', function () {
78
- return editor.focus();
79
- });
66
+ domNode.addEventListener('touchstart', () => editor.focus());
67
+ domNode.addEventListener('focus', () => editor.focus());
80
68
  return domNode;
81
69
  },
82
- getPosition: function getPosition() {
70
+ getPosition: () => {
83
71
  return {
84
72
  preference: monaco__namespace.editor.OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER
85
73
  };
@@ -89,45 +77,43 @@ var MonacoEditorMobile = React.forwardRef(function (props, ref) {
89
77
  /**
90
78
  * Export window-level event functions for mobile app.
91
79
  */
92
- var exposeWindowGlobalEvents = function exposeWindowGlobalEvents(editor) {
93
- var editorApi = editorApiRef.current;
80
+ const exposeWindowGlobalEvents = editor => {
81
+ const editorApi = editorApiRef.current;
94
82
  if (!editorApi) {
95
83
  return;
96
84
  }
97
- window.cursorCharLeft = function () {
85
+ window.cursorCharLeft = () => {
98
86
  var _a;
99
- var pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco__namespace.Position(0, 0);
87
+ const pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco__namespace.Position(0, 0);
100
88
  editor.setPosition(new monaco__namespace.Position(pos.lineNumber, pos.column - 1));
101
89
  };
102
- window.cursorCharRight = function () {
90
+ window.cursorCharRight = () => {
103
91
  var _a;
104
- var pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco__namespace.Position(0, 0);
92
+ const pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco__namespace.Position(0, 0);
105
93
  editor.setPosition(new monaco__namespace.Position(pos.lineNumber, pos.column + 1));
106
94
  };
107
- window.cursorLineUp = function () {
95
+ window.cursorLineUp = () => {
108
96
  var _a;
109
- var pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco__namespace.Position(0, 0);
97
+ const pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco__namespace.Position(0, 0);
110
98
  editor.setPosition(new monaco__namespace.Position(pos.lineNumber - 1, pos.column));
111
99
  };
112
- window.cursorLineDown = function () {
100
+ window.cursorLineDown = () => {
113
101
  var _a;
114
- var pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco__namespace.Position(0, 0);
102
+ const pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco__namespace.Position(0, 0);
115
103
  editor.setPosition(new monaco__namespace.Position(pos.lineNumber + 1, pos.column));
116
104
  };
117
- window.dispatchReconfigureFontSize = function (fontSize) {
118
- setPreference(function (prev) {
119
- return Object.assign(Object.assign({}, prev), {
120
- fontSize: fontSize
121
- });
122
- });
105
+ window.dispatchReconfigureFontSize = fontSize => {
106
+ setPreference(prev => Object.assign(Object.assign({}, prev), {
107
+ fontSize
108
+ }));
123
109
  };
124
- window.dispatchChangeInsert = function (insert) {
110
+ window.dispatchChangeInsert = insert => {
125
111
  editorApi.insertValue(editorApi.getPositionOffset(), insert);
126
112
  };
127
- window.insertTab = function () {
128
- var model = editorApi.getMonacoModel();
113
+ window.insertTab = () => {
114
+ const model = editorApi.getMonacoModel();
129
115
  if (model) {
130
- var modelOptions = model.getOptions();
116
+ const modelOptions = model.getOptions();
131
117
  editorApi.insertValue(editorApi.getPositionOffset(), modelOptions.insertSpaces ? ' '.repeat(modelOptions.tabSize) : '\t');
132
118
  }
133
119
  };
@@ -135,7 +121,7 @@ var MonacoEditorMobile = React.forwardRef(function (props, ref) {
135
121
  /**
136
122
  *
137
123
  */
138
- var handleLoad = function handleLoad(editor) {
124
+ const handleLoad = editor => {
139
125
  if (typeof props.onLoad === 'function') {
140
126
  props.onLoad(editor);
141
127
  }
@@ -145,7 +131,7 @@ var MonacoEditorMobile = React.forwardRef(function (props, ref) {
145
131
  //
146
132
  //
147
133
  //
148
- return React__default["default"].createElement(MonacoEditor["default"], Object.assign({}, props, {
134
+ return React.createElement(MonacoEditor.default, Object.assign({}, props, {
149
135
  noLanguageIntellisense: true,
150
136
  preference: preference,
151
137
  onLoad: handleLoad,
@@ -153,4 +139,4 @@ var MonacoEditorMobile = React.forwardRef(function (props, ref) {
153
139
  }));
154
140
  });
155
141
 
156
- exports["default"] = MonacoEditorMobile;
142
+ exports.default = MonacoEditorMobile;