@elice/material-exercise 1.231212.0 → 1.231228.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/cjs/components/material-exercise/MaterialExercise.i18n.js +2 -4
  2. package/cjs/components/material-exercise/MaterialExercise.js +54 -59
  3. package/cjs/components/material-exercise/MaterialExercise.styled.js +14 -20
  4. package/cjs/components/material-exercise/MaterialExerciseMobile.js +8 -15
  5. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +14 -18
  6. package/cjs/components/material-exercise/context/ExerciseProvider.js +58 -66
  7. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +19 -24
  8. package/cjs/components/material-exercise/context/context.js +1 -7
  9. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +1 -1
  10. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +1 -1
  11. package/cjs/components/material-exercise/context/recoil.js +293 -544
  12. package/cjs/components/material-exercise/context/recoilTypes.js +0 -2
  13. package/cjs/components/material-exercise/context/subjects.js +3 -5
  14. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +60 -67
  15. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -14
  16. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +1 -1
  17. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +1 -1
  18. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +17 -21
  19. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +133 -203
  20. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -12
  21. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +24 -40
  22. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +38 -52
  23. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +5 -9
  24. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +1 -1
  25. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +1 -1
  26. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +189 -328
  27. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +5 -9
  28. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +1 -1
  29. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +1 -1
  30. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +14 -17
  31. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +11 -15
  32. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +7 -11
  33. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +44 -65
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +32 -61
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +19 -35
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +48 -62
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -18
  38. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
  39. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
  40. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +21 -32
  41. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +4 -8
  42. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +23 -27
  43. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +7 -17
  44. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +1 -1
  45. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +1 -1
  46. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +23 -32
  47. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +7 -15
  48. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +79 -86
  49. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +1 -1
  50. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +1 -1
  51. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +11 -22
  52. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -20
  53. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +180 -288
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +82 -116
  55. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -4
  56. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +1 -1
  57. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +1 -1
  58. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +125 -181
  59. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -7
  60. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -17
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +43 -58
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +15 -27
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +65 -68
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +23 -32
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +58 -92
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +3 -7
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +11 -16
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +18 -29
  69. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
  70. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
  71. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +162 -282
  72. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -14
  73. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -54
  74. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +1 -1
  75. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +1 -1
  76. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +15 -21
  77. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +14 -19
  78. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +16 -21
  79. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +5 -10
  80. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +18 -23
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +10 -21
  82. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -8
  83. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -7
  84. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -11
  85. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -15
  86. package/cjs/components/shared/file-icon/FileIcon.js +17 -23
  87. package/cjs/components/shared/file-tabs/FileTab.js +30 -36
  88. package/cjs/components/shared/file-tabs/FileTab.styled.js +15 -25
  89. package/cjs/components/shared/file-tabs/FileTabs.js +38 -63
  90. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -8
  91. package/cjs/components/shared/file-tabs/util.js +14 -29
  92. package/cjs/components/shared/file-tree/FileTree.js +12 -17
  93. package/cjs/components/shared/file-tree/FileTreeConfig.js +22 -25
  94. package/cjs/components/shared/file-tree/FileTreeList.js +37 -39
  95. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +61 -75
  96. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -31
  97. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +64 -72
  98. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -12
  99. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +63 -74
  100. package/cjs/components/shared/file-tree/FileTreeListItems.js +136 -151
  101. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -8
  102. package/cjs/components/shared/file-tree/FileTreeToolbar.js +31 -32
  103. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -7
  104. package/cjs/components/shared/file-tree/context/FileTreeContext.js +76 -97
  105. package/cjs/components/shared/file-tree/locales/en.json.js +1 -1
  106. package/cjs/components/shared/file-tree/locales/ko.json.js +1 -1
  107. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -26
  108. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +146 -195
  109. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -2
  110. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -3
  111. package/cjs/components/shared/file-tree/utils/fileTreePath.js +6 -7
  112. package/cjs/components/shared/file-viewer/FileViewer.js +37 -61
  113. package/cjs/components/shared/file-viewer/FileViewerCsv.js +108 -172
  114. package/cjs/components/shared/file-viewer/FileViewerImage.js +8 -12
  115. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +10 -23
  116. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +33 -42
  117. package/cjs/components/shared/file-viewer/FileViewerText.js +12 -24
  118. package/cjs/components/shared/file-viewer/locales/en.json.js +1 -1
  119. package/cjs/components/shared/file-viewer/locales/ko.json.js +1 -1
  120. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +1 -1
  121. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +1 -1
  122. package/cjs/components/shared/material-modal/MaterialModal.js +11 -14
  123. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -11
  124. package/cjs/components/shared/monaco-editor/MonacoEditor.js +74 -99
  125. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +6 -12
  126. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +36 -50
  127. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +91 -110
  128. package/cjs/components/shared/monaco-editor/constants/grammars/JSON.tmLanguage.json.js +1 -1
  129. package/cjs/components/shared/monaco-editor/constants/grammars/MagicPython.tmLanguage.json.js +1 -1
  130. package/cjs/components/shared/monaco-editor/constants/grammars/TypeScriptReact.tmLanguage.json.js +1 -1
  131. package/cjs/components/shared/monaco-editor/constants/grammars/asp-vb-net.tmlanguage.json.js +1 -1
  132. package/cjs/components/shared/monaco-editor/constants/grammars/c.tmLanguage.json.js +1 -1
  133. package/cjs/components/shared/monaco-editor/constants/grammars/cpp.tmLanguage.json.js +1 -1
  134. package/cjs/components/shared/monaco-editor/constants/grammars/csharp.tmLanguage.json.js +1 -1
  135. package/cjs/components/shared/monaco-editor/constants/grammars/css.tmLanguage.json.js +1 -1
  136. package/cjs/components/shared/monaco-editor/constants/grammars/dart.tmLanguage.json.js +1 -1
  137. package/cjs/components/shared/monaco-editor/constants/grammars/fsharp.tmLanguage.json.js +1 -1
  138. package/cjs/components/shared/monaco-editor/constants/grammars/go.tmLanguage.json.js +1 -1
  139. package/cjs/components/shared/monaco-editor/constants/grammars/html.tmLanguage.json.js +1 -1
  140. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +28 -84
  141. package/cjs/components/shared/monaco-editor/constants/grammars/java.tmLanguage.json.js +1 -1
  142. package/cjs/components/shared/monaco-editor/constants/grammars/lua.tmLanguage.json.js +1 -1
  143. package/cjs/components/shared/monaco-editor/constants/grammars/objective-c.tmLanguage.json.js +1 -1
  144. package/cjs/components/shared/monaco-editor/constants/grammars/php.tmLanguage.json.js +1 -1
  145. package/cjs/components/shared/monaco-editor/constants/grammars/r.tmLanguage.json.js +1 -1
  146. package/cjs/components/shared/monaco-editor/constants/grammars/ruby.tmLanguage.json.js +1 -1
  147. package/cjs/components/shared/monaco-editor/constants/grammars/rust.tmLanguage.json.js +1 -1
  148. package/cjs/components/shared/monaco-editor/constants/grammars/scss.tmLanguage.json.js +1 -1
  149. package/cjs/components/shared/monaco-editor/constants/grammars/sql.tmLanguage.json.js +1 -1
  150. package/cjs/components/shared/monaco-editor/constants/grammars/swift.tmLanguage.json.js +1 -1
  151. package/cjs/components/shared/monaco-editor/constants/grammars/xml.tmLanguage.json.js +1 -1
  152. package/cjs/components/shared/monaco-editor/constants/grammars/yaml.tmLanguage.json.js +1 -1
  153. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -7
  154. package/cjs/components/shared/monaco-editor/constants/themes/abyss.json.js +1 -1
  155. package/cjs/components/shared/monaco-editor/constants/themes/elice.json.js +1 -1
  156. package/cjs/components/shared/monaco-editor/constants/themes/index.js +17 -51
  157. package/cjs/components/shared/monaco-editor/constants/themes/kimbie-dark.json.js +1 -1
  158. package/cjs/components/shared/monaco-editor/constants/themes/monokai.json.js +1 -1
  159. package/cjs/components/shared/monaco-editor/constants/themes/quietlight.json.js +1 -1
  160. package/cjs/components/shared/monaco-editor/constants/themes/red.json.js +1 -1
  161. package/cjs/components/shared/monaco-editor/constants/themes/solarized-dark.json.js +1 -1
  162. package/cjs/components/shared/monaco-editor/constants/themes/solarized-light.json.js +1 -1
  163. package/cjs/components/shared/monaco-editor/constants/themes/tomorrow-night-blue.json.js +1 -1
  164. package/cjs/components/shared/monaco-editor/constants/themes/vs-dark-plus.json.js +1 -1
  165. package/cjs/components/shared/monaco-editor/constants/themes/vs-dark.json.js +1 -1
  166. package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-black.json.js +1 -1
  167. package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-light.json.js +1 -1
  168. package/cjs/components/shared/monaco-editor/constants/themes/vs-light-plus.json.js +1 -1
  169. package/cjs/components/shared/monaco-editor/constants/themes/vs-light.json.js +1 -1
  170. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  171. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -17
  172. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -11
  173. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -36
  174. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -11
  175. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -8
  176. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +11 -52
  177. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +7 -8
  178. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +11 -52
  179. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +5 -6
  180. package/cjs/components/shared/monaco-editor/editor-languages/index.js +4 -4
  181. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -3
  182. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +1 -1
  183. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +1 -1
  184. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +1 -1
  185. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +11 -56
  186. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +17 -18
  187. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -13
  188. package/cjs/components/shared/monaco-editor/locales/en.json.js +1 -1
  189. package/cjs/components/shared/monaco-editor/locales/ko.json.js +1 -1
  190. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -12
  191. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -2
  192. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -14
  193. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +25 -69
  194. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -27
  195. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +38 -73
  196. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +8 -11
  197. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +4 -8
  198. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -4
  199. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +8 -46
  200. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +14 -26
  201. package/cjs/components/shared/monaco-editor/utils/theme/index.js +3 -24
  202. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -79
  203. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -84
  204. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -122
  205. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +133 -158
  206. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -106
  207. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -4
  208. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -3
  209. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -4
  210. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +158 -179
  211. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -5
  212. package/cjs/components/shared/no-vnc/NoVnc.js +57 -86
  213. package/cjs/components/shared/no-vnc/NoVncLazy.js +5 -11
  214. package/cjs/components/shared/preview-container/PreviewContainer.js +11 -15
  215. package/cjs/components/shared/web-browser/WebBrowser.js +37 -53
  216. package/cjs/components/shared/xterm/Xterm.js +58 -81
  217. package/cjs/components/shared/xterm/XtermLazy.js +5 -11
  218. package/cjs/components/shared/xterm/locales/en.json.js +1 -1
  219. package/cjs/components/shared/xterm/locales/ko.json.js +1 -1
  220. package/cjs/components/shared/xterm/utils/index.js +0 -2
  221. package/cjs/constants/arduino.js +10 -12
  222. package/cjs/constants/shortcutKeyMap.js +2 -4
  223. package/cjs/constants/stylesheets.js +5 -9
  224. package/cjs/hooks/useArduino.js +141 -284
  225. package/cjs/hooks/useExerciseFile.js +22 -26
  226. package/cjs/hooks/useExericseShortcut.js +4 -8
  227. package/cjs/hooks/useMaterialExerciseFileUrl.js +33 -57
  228. package/cjs/hooks/useRunnerRoomWebSocket.js +27 -53
  229. package/cjs/hooks/useStdioTextConcator.js +10 -22
  230. package/cjs/hooks/useStdioWebSocket.js +28 -34
  231. package/cjs/hooks/useUsercodeEditWebSocket.js +158 -240
  232. package/cjs/hooks/useUsercodeHistory.js +63 -117
  233. package/cjs/index.js +4 -6
  234. package/cjs/utils/arduino.js +11 -25
  235. package/cjs/utils/exerciseFile.js +10 -10
  236. package/cjs/utils/runner.js +15 -31
  237. package/es/components/material-exercise/MaterialExercise.i18n.js +2 -2
  238. package/es/components/material-exercise/MaterialExercise.js +34 -35
  239. package/es/components/material-exercise/MaterialExercise.styled.js +14 -14
  240. package/es/components/material-exercise/MaterialExerciseMobile.js +6 -9
  241. package/es/components/material-exercise/context/ExerciseIntlProvider.js +10 -8
  242. package/es/components/material-exercise/context/ExerciseProvider.js +52 -55
  243. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +10 -10
  244. package/es/components/material-exercise/context/context.js +1 -1
  245. package/es/components/material-exercise/context/recoil.js +290 -535
  246. package/es/components/material-exercise/context/subjects.js +3 -3
  247. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +51 -53
  248. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  249. package/es/components/material-exercise/exercise-file/ExerciseFile.js +9 -8
  250. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +127 -193
  251. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -4
  252. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +20 -31
  253. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +35 -44
  254. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  255. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +181 -315
  256. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  257. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +11 -10
  258. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -6
  259. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -3
  260. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +25 -42
  261. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +26 -51
  262. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +11 -23
  263. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +21 -31
  264. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  265. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +19 -26
  266. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  267. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +15 -14
  268. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +5 -11
  269. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +11 -15
  270. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +5 -9
  271. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +78 -80
  272. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +6 -13
  273. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -14
  274. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +134 -236
  275. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +65 -94
  276. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
  277. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +116 -167
  278. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  279. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +8 -7
  280. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +17 -27
  281. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +11 -18
  282. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +52 -50
  283. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +10 -14
  284. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +46 -75
  285. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -2
  286. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +4 -4
  287. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +15 -21
  288. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +138 -253
  289. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  290. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +29 -37
  291. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +12 -13
  292. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -2
  293. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -12
  294. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -2
  295. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -14
  296. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +9 -15
  297. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +3 -2
  298. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  299. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +6 -5
  300. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -9
  301. package/es/components/shared/file-icon/FileIcon.js +15 -17
  302. package/es/components/shared/file-tabs/FileTab.js +22 -24
  303. package/es/components/shared/file-tabs/FileTab.styled.js +15 -19
  304. package/es/components/shared/file-tabs/FileTabs.js +35 -55
  305. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  306. package/es/components/shared/file-tabs/util.js +14 -27
  307. package/es/components/shared/file-tree/FileTree.js +3 -3
  308. package/es/components/shared/file-tree/FileTreeConfig.js +18 -15
  309. package/es/components/shared/file-tree/FileTreeList.js +33 -29
  310. package/es/components/shared/file-tree/FileTreeListItemContent.js +45 -55
  311. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -25
  312. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +60 -64
  313. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  314. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +39 -46
  315. package/es/components/shared/file-tree/FileTreeListItems.js +134 -145
  316. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  317. package/es/components/shared/file-tree/FileTreeToolbar.js +25 -22
  318. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  319. package/es/components/shared/file-tree/context/FileTreeContext.js +74 -89
  320. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -20
  321. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +146 -193
  322. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  323. package/es/components/shared/file-tree/utils/fileTreePath.js +6 -5
  324. package/es/components/shared/file-viewer/FileViewer.js +21 -38
  325. package/es/components/shared/file-viewer/FileViewerCsv.js +70 -129
  326. package/es/components/shared/file-viewer/FileViewerImage.js +4 -3
  327. package/es/components/shared/file-viewer/FileViewerIpynb.js +7 -14
  328. package/es/components/shared/file-viewer/FileViewerNonViewable.js +15 -18
  329. package/es/components/shared/file-viewer/FileViewerText.js +9 -17
  330. package/es/components/shared/material-modal/MaterialModal.js +8 -7
  331. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  332. package/es/components/shared/monaco-editor/MonacoEditor.js +67 -87
  333. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +2 -4
  334. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +31 -41
  335. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +52 -66
  336. package/es/components/shared/monaco-editor/constants/grammars/index.js +28 -82
  337. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
  338. package/es/components/shared/monaco-editor/constants/themes/index.js +17 -49
  339. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -11
  340. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -15
  341. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  342. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -34
  343. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -9
  344. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
  345. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +10 -33
  346. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +10 -33
  347. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  348. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +10 -37
  349. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +3 -3
  350. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -11
  351. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -10
  352. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -12
  353. package/es/components/shared/monaco-editor/utils/grammar/index.js +24 -68
  354. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -25
  355. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +35 -67
  356. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +5 -5
  357. package/es/components/shared/monaco-editor/utils/monacoPreference.js +4 -6
  358. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -2
  359. package/es/components/shared/monaco-editor/utils/prettier/index.js +7 -27
  360. package/es/components/shared/monaco-editor/utils/theme/convert.js +13 -19
  361. package/es/components/shared/monaco-editor/utils/theme/index.js +3 -22
  362. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -77
  363. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -82
  364. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -120
  365. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +130 -152
  366. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -104
  367. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  368. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -1
  369. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
  370. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +157 -172
  371. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
  372. package/es/components/shared/no-vnc/NoVnc.js +42 -59
  373. package/es/components/shared/no-vnc/NoVncLazy.js +2 -4
  374. package/es/components/shared/preview-container/PreviewContainer.js +8 -7
  375. package/es/components/shared/web-browser/WebBrowser.js +29 -40
  376. package/es/components/shared/xterm/Xterm.js +51 -69
  377. package/es/components/shared/xterm/XtermLazy.js +2 -4
  378. package/es/constants/arduino.js +10 -10
  379. package/es/constants/shortcutKeyMap.js +1 -3
  380. package/es/constants/stylesheets.js +5 -7
  381. package/es/hooks/useArduino.js +141 -278
  382. package/es/hooks/useExerciseFile.js +22 -24
  383. package/es/hooks/useExericseShortcut.js +4 -6
  384. package/es/hooks/useMaterialExerciseFileUrl.js +34 -52
  385. package/es/hooks/useRunnerRoomWebSocket.js +27 -51
  386. package/es/hooks/useStdioTextConcator.js +10 -16
  387. package/es/hooks/useStdioWebSocket.js +28 -32
  388. package/es/hooks/useUsercodeEditWebSocket.js +157 -232
  389. package/es/hooks/useUsercodeHistory.js +63 -115
  390. package/es/utils/arduino.js +11 -23
  391. package/es/utils/exerciseFile.js +10 -8
  392. package/es/utils/runner.js +15 -29
  393. package/package.json +11 -7
  394. package/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -521
  395. package/es/_virtual/_rollupPluginBabelHelpers.js +0 -499
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React, { forwardRef } from 'react';
3
2
  import { base } from '@elice/design-tokens';
4
3
  import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
@@ -25,68 +24,59 @@ initMonacoGrammars().catch(console.warn);
25
24
  //
26
25
  //
27
26
  //
28
- var StyledMonacoEditorWrapper = styled.div.withConfig({
27
+ const StyledMonacoEditorWrapper = styled.div.withConfig({
29
28
  componentId: "sc-1j3uyex-0"
30
29
  })(["width:100%;height:100%;"]);
31
- var StyledMonacoEditor = styled.div.withConfig({
30
+ const StyledMonacoEditor = styled.div.withConfig({
32
31
  componentId: "sc-1j3uyex-1"
33
32
  })(["width:100%;height:100%;background-color:", ";", ""], base.color.navy9, cssRemoteMarker);
34
33
  /**
35
34
  *
36
35
  */
37
- var MonacoEditor = forwardRef(function (_ref, ref) {
38
- var _ref$defaultValue = _ref.defaultValue,
39
- defaultValue = _ref$defaultValue === void 0 ? '' : _ref$defaultValue,
40
- _ref$filename = _ref.filename,
41
- filename = _ref$filename === void 0 ? '/noname.txt' : _ref$filename,
42
- _ref$preference = _ref.preference,
43
- preference = _ref$preference === void 0 ? DEFAULT_MONACO_EDITOR_PREFERENCE : _ref$preference,
44
- _ref$markers = _ref.markers,
45
- markers = _ref$markers === void 0 ? [] : _ref$markers,
46
- _ref$width = _ref.width,
47
- width = _ref$width === void 0 ? '100%' : _ref$width,
48
- _ref$height = _ref.height,
49
- height = _ref$height === void 0 ? '100%' : _ref$height,
50
- _ref$noLanguageIntell = _ref.noLanguageIntellisense,
51
- noLanguageIntellisense = _ref$noLanguageIntell === void 0 ? false : _ref$noLanguageIntell,
52
- onLoad = _ref.onLoad,
53
- onChange = _ref.onChange,
54
- onSave = _ref.onSave,
55
- onCursor = _ref.onCursor,
56
- onScroll = _ref.onScroll,
57
- onThemeChange = _ref.onThemeChange;
36
+ const MonacoEditor = forwardRef(({
37
+ defaultValue = '',
38
+ filename = '/noname.txt',
39
+ preference = DEFAULT_MONACO_EDITOR_PREFERENCE,
40
+ markers = [],
41
+ width = '100%',
42
+ height = '100%',
43
+ noLanguageIntellisense = false,
44
+ onLoad,
45
+ onChange,
46
+ onSave,
47
+ onCursor,
48
+ onScroll,
49
+ onThemeChange
50
+ }, ref) => {
58
51
  /** Ref of element which wraps editor. */
59
- var editorElRef = React.useRef(null);
52
+ const editorElRef = React.useRef(null);
60
53
  /** Ref of editor exposed APIs. */
61
- var editorApis = React.useRef({});
54
+ const editorApis = React.useRef({});
62
55
  /** Ref of monaco editor. */
63
- var editor = React.useRef(null);
56
+ const editor = React.useRef(null);
64
57
  /** Editor options. */
65
- var editorOptions = useEditorOptions({
66
- width: width,
67
- height: height,
68
- preference: preference,
69
- noLanguageIntellisense: noLanguageIntellisense
58
+ const editorOptions = useEditorOptions({
59
+ width,
60
+ height,
61
+ preference,
62
+ noLanguageIntellisense
70
63
  });
71
64
  /** Ref for preventing change event. */
72
- var suppress = React.useRef(false);
65
+ const suppress = React.useRef(false);
73
66
  /** Is editor ready? */
74
- var _React$useState = React.useState(false),
75
- _React$useState2 = _slicedToArray(_React$useState, 2),
76
- isReady = _React$useState2[0],
77
- setReady = _React$useState2[1];
67
+ const [isReady, setReady] = React.useState(false);
78
68
  /**
79
69
  * Get model of editor.
80
70
  */
81
- var getMonacoModel = function getMonacoModel() {
82
- var uri = monaco.Uri.file(filename || '/noname.txt');
71
+ const getMonacoModel = () => {
72
+ const uri = monaco.Uri.file(filename || '/noname.txt');
83
73
  return monaco.editor.getModel(uri);
84
74
  };
85
75
  /**
86
76
  * Has editor undo/redo history?
87
77
  * @public
88
78
  */
89
- var hasHistory = function hasHistory() {
79
+ const hasHistory = () => {
90
80
  var _a;
91
81
  return (((_a = getMonacoModel()) === null || _a === void 0 ? void 0 : _a.getAlternativeVersionId()) || 0) > 1;
92
82
  };
@@ -94,14 +84,14 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
94
84
  * Clear editor undo/redo history.
95
85
  * @public
96
86
  */
97
- var clearHistory = function clearHistory() {
87
+ const clearHistory = () => {
98
88
  getMonacoModel();
99
89
  };
100
90
  /**
101
91
  * Get current value of editor.
102
92
  * @public
103
93
  */
104
- var getValue = function getValue() {
94
+ const getValue = () => {
105
95
  var _a;
106
96
  return ((_a = getMonacoModel()) === null || _a === void 0 ? void 0 : _a.getValue()) || '';
107
97
  };
@@ -109,16 +99,16 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
109
99
  * Get value in range of editor.
110
100
  * @public
111
101
  */
112
- var getValueInRange = function getValueInRange(from, to) {
113
- var model = getMonacoModel();
102
+ const getValueInRange = (from, to) => {
103
+ const model = getMonacoModel();
114
104
  if (!model) {
115
105
  return '';
116
106
  }
117
107
  if (from === to) {
118
108
  return '';
119
109
  }
120
- var startPosition = model.getPositionAt(from);
121
- var endPosition = model.getPositionAt(to);
110
+ const startPosition = model.getPositionAt(from);
111
+ const endPosition = model.getPositionAt(to);
122
112
  return model.getValueInRange({
123
113
  startLineNumber: startPosition.lineNumber,
124
114
  startColumn: startPosition.column,
@@ -130,14 +120,14 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
130
120
  * Set (overwrite) value to editor.
131
121
  * @public
132
122
  */
133
- var setValue = function setValue(newValue) {
123
+ const setValue = newValue => {
134
124
  if (!editor.current) {
135
125
  return;
136
126
  }
137
127
  // Replace value EOL as LF.
138
128
  newValue = newValue.replace(/\r\n/g, '\n');
139
- var uri = monaco.Uri.file(filename || '/noname.txt');
140
- var model = monaco.editor.getModel(uri);
129
+ const uri = monaco.Uri.file(filename || '/noname.txt');
130
+ const model = monaco.editor.getModel(uri);
141
131
  if (model && !model.isDisposed()) {
142
132
  // Override EOL as LF to prevent error at Windows env.
143
133
  model.setEOL(monaco.editor.EndOfLineSequence.LF);
@@ -149,9 +139,7 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
149
139
  range: model.getFullModelRange(),
150
140
  text: newValue,
151
141
  forceMoveMarkers: true
152
- }], function () {
153
- return null;
154
- });
142
+ }], () => null);
155
143
  editor.current.pushUndoStop();
156
144
  suppress.current = false;
157
145
  editor.current.setModel(model);
@@ -161,8 +149,8 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
161
149
  // If model has not created yet for this file,
162
150
  // create new model.
163
151
  else {
164
- var lang = getLanguageFromFilename(filename);
165
- var newModel = monaco.editor.createModel(newValue, lang, uri);
152
+ const lang = getLanguageFromFilename(filename);
153
+ const newModel = monaco.editor.createModel(newValue, lang, uri);
166
154
  newModel.setEOL(monaco.editor.EndOfLineSequence.LF);
167
155
  editor.current.setModel(newModel);
168
156
  }
@@ -171,24 +159,22 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
171
159
  * Insert value at specific position.
172
160
  * @public
173
161
  */
174
- var insertValue = function insertValue(offset, newValue) {
162
+ const insertValue = (offset, newValue) => {
175
163
  if (!editor.current) {
176
164
  return;
177
165
  }
178
166
  // Replace value EOL as LF.
179
167
  newValue = newValue.replace(/\r\n/g, '\n');
180
- var model = getMonacoModel();
168
+ const model = getMonacoModel();
181
169
  if (model) {
182
- var position = model.getPositionAt(offset);
170
+ const position = model.getPositionAt(offset);
183
171
  suppress.current = true;
184
172
  editor.current.pushUndoStop();
185
173
  model.pushEditOperations([], [{
186
174
  range: new monaco.Range(position.lineNumber, position.column, position.lineNumber, position.column),
187
175
  text: newValue,
188
176
  forceMoveMarkers: true
189
- }], function () {
190
- return null;
191
- });
177
+ }], () => null);
192
178
  editor.current.pushUndoStop();
193
179
  suppress.current = false;
194
180
  }
@@ -197,23 +183,21 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
197
183
  * Remove value at specific range.
198
184
  * @public
199
185
  */
200
- var removeValue = function removeValue(from, to) {
186
+ const removeValue = (from, to) => {
201
187
  if (!editor.current) {
202
188
  return;
203
189
  }
204
- var model = getMonacoModel();
190
+ const model = getMonacoModel();
205
191
  if (model) {
206
- var startPosition = model.getPositionAt(from);
207
- var endPosition = model.getPositionAt(to);
192
+ const startPosition = model.getPositionAt(from);
193
+ const endPosition = model.getPositionAt(to);
208
194
  suppress.current = true;
209
195
  editor.current.pushUndoStop();
210
196
  model.pushEditOperations([], [{
211
197
  range: new monaco.Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column),
212
198
  text: '',
213
199
  forceMoveMarkers: true
214
- }], function () {
215
- return null;
216
- });
200
+ }], () => null);
217
201
  editor.current.pushUndoStop();
218
202
  suppress.current = false;
219
203
  }
@@ -222,9 +206,9 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
222
206
  * Get offset of current cursor position.
223
207
  * @public
224
208
  */
225
- var getPositionOffset = function getPositionOffset() {
209
+ const getPositionOffset = () => {
226
210
  var _a;
227
- var model = getMonacoModel();
211
+ const model = getMonacoModel();
228
212
  if (!editor.current || !model) {
229
213
  return 0;
230
214
  }
@@ -234,12 +218,12 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
234
218
  * Set selection of editor with specific range.
235
219
  * @public
236
220
  */
237
- var setSelection = function setSelection(from, to) {
221
+ const setSelection = (from, to) => {
238
222
  var _a;
239
- var model = getMonacoModel();
223
+ const model = getMonacoModel();
240
224
  if (model) {
241
- var markerStartPosition = model.getPositionAt(from);
242
- var markerEndPosition = model.getPositionAt(to);
225
+ const markerStartPosition = model.getPositionAt(from);
226
+ const markerEndPosition = model.getPositionAt(to);
243
227
  (_a = editor.current) === null || _a === void 0 ? void 0 : _a.setSelection(new monaco.Range(markerStartPosition.lineNumber, markerStartPosition.column, markerEndPosition.lineNumber, markerEndPosition.column));
244
228
  }
245
229
  };
@@ -247,7 +231,7 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
247
231
  * Scroll editor to specific `scrollTop`.
248
232
  * @public
249
233
  */
250
- var scrollTo = function scrollTo(scrollTop) {
234
+ const scrollTo = scrollTop => {
251
235
  var _a;
252
236
  (_a = editor.current) === null || _a === void 0 ? void 0 : _a.setScrollTop(scrollTop);
253
237
  };
@@ -259,11 +243,11 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
259
243
  useMonacoEventChange(editor, onChange, suppress, [isReady]);
260
244
  useMonacoEventCursor(editor, onCursor, [isReady]);
261
245
  useMonacoEventScroll(editor, onScroll, [isReady]);
262
- var remoteMarker = useMonacoMarkers(editor, markers);
246
+ const remoteMarker = useMonacoMarkers(editor, markers);
263
247
  //
264
248
  // Init and dispose editor.
265
249
  //
266
- React.useEffect(function () {
250
+ React.useEffect(() => {
267
251
  try {
268
252
  if (!editorElRef.current) {
269
253
  return;
@@ -274,11 +258,11 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
274
258
  language: getLanguageFromFilename(filename)
275
259
  }));
276
260
  // add keyboard shortcut.
277
- editor.current.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS, function () {
261
+ editor.current.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS, () => {
278
262
  var _a, _b, _c;
279
263
  void ((_b = (_a = editor.current) === null || _a === void 0 ? void 0 : _a.getAction('editor.action.formatDocument')) === null || _b === void 0 ? void 0 : _b.run());
280
264
  if (typeof onSave === 'function') {
281
- var content = ((_c = getMonacoModel()) === null || _c === void 0 ? void 0 : _c.getValue()) || '';
265
+ const content = ((_c = getMonacoModel()) === null || _c === void 0 ? void 0 : _c.getValue()) || '';
282
266
  onSave(content);
283
267
  }
284
268
  });
@@ -291,7 +275,7 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
291
275
  } catch (_) {
292
276
  setReady(false);
293
277
  }
294
- return function () {
278
+ return () => {
295
279
  var _a;
296
280
  setReady(false);
297
281
  // dispose remote marker
@@ -307,9 +291,7 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
307
291
  //
308
292
  // Set value whenevet filename or value changed.
309
293
  //
310
- React.useEffect(function () {
311
- return setValue(defaultValue);
312
- },
294
+ React.useEffect(() => setValue(defaultValue),
313
295
  // eslint-disable-next-line react-hooks/exhaustive-deps
314
296
  [filename, defaultValue]);
315
297
  //
@@ -327,16 +309,14 @@ var MonacoEditor = forwardRef(function (_ref, ref) {
327
309
  editorApis.current.getPositionOffset = getPositionOffset;
328
310
  editorApis.current.setSelection = setSelection;
329
311
  editorApis.current.scrollTo = scrollTo;
330
- React.useImperativeHandle(ref, function () {
331
- return editorApis.current;
332
- }, [editorApis]);
312
+ React.useImperativeHandle(ref, () => editorApis.current, [editorApis]);
333
313
  //
334
314
  //
335
315
  //
336
316
  return React.createElement(StyledMonacoEditorWrapper, null, React.createElement(StyledMonacoEditor, {
337
317
  style: {
338
- width: width,
339
- height: height
318
+ width,
319
+ height
340
320
  },
341
321
  ref: editorElRef
342
322
  }));
@@ -9,13 +9,11 @@ import '../exercise-shimmer/ExerciseFileTreeListItemShimmer.js';
9
9
  //
10
10
  //
11
11
  //
12
- var AsyncMonacoEditor = React.lazy(function () {
13
- return FlutterApp.checkWebview() ? import('./MonacoEditorMobile.js') : import('./MonacoEditor.js');
14
- });
12
+ const AsyncMonacoEditor = React.lazy(() => FlutterApp.checkWebview() ? import('./MonacoEditorMobile.js') : import('./MonacoEditor.js'));
15
13
  //
16
14
  //
17
15
  //
18
- var MonacoEditorLazy = forwardRef(function (props, ref) {
16
+ const MonacoEditorLazy = forwardRef((props, ref) => {
19
17
  return React.createElement(React.Suspense, {
20
18
  fallback: React.createElement(ExerciseFileShimmer, null)
21
19
  }, React.createElement(AsyncMonacoEditor, Object.assign({}, props, {
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React, { forwardRef } from 'react';
3
2
  import { useEnsuredForwardedRef } from 'react-use';
4
3
  import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
@@ -7,7 +6,7 @@ import MonacoEditor from './MonacoEditor.js';
7
6
  //
8
7
  //
9
8
  //
10
- var MOBILE_EDITOR_PREFERENCE = Object.freeze({
9
+ const MOBILE_EDITOR_PREFERENCE = Object.freeze({
11
10
  autoClosingBrackets: 'always',
12
11
  cursorSmoothCaretAnimation: false,
13
12
  detectIndentation: true,
@@ -20,39 +19,32 @@ var MOBILE_EDITOR_PREFERENCE = Object.freeze({
20
19
  theme: 'elice',
21
20
  wordWrap: 'on'
22
21
  });
23
- var IS_IOS = ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) || navigator.userAgent.includes('Mac') && 'ontouchend' in document;
22
+ const IS_IOS = ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) || navigator.userAgent.includes('Mac') && 'ontouchend' in document;
24
23
  //
25
24
  //
26
25
  //
27
- var MonacoEditorMobile = forwardRef(function (props, ref) {
28
- var editorApiRef = useEnsuredForwardedRef(ref);
29
- var _React$useState = React.useState(MOBILE_EDITOR_PREFERENCE),
30
- _React$useState2 = _slicedToArray(_React$useState, 2),
31
- preference = _React$useState2[0],
32
- setPreference = _React$useState2[1];
26
+ const MonacoEditorMobile = forwardRef((props, ref) => {
27
+ const editorApiRef = useEnsuredForwardedRef(ref);
28
+ const [preference, setPreference] = React.useState(MOBILE_EDITOR_PREFERENCE);
33
29
  /**
34
30
  * Add a button to show keyboard on non-Apple devices.
35
31
  */
36
- var addKeyboardButtonOverlayWidget = function addKeyboardButtonOverlayWidget(editor) {
32
+ const addKeyboardButtonOverlayWidget = editor => {
37
33
  if (IS_IOS) {
38
34
  return;
39
35
  }
40
36
  editor.addOverlayWidget({
41
- getId: function getId() {
37
+ getId: () => {
42
38
  return 'editor.contrib.ShowKeyboardWidget';
43
39
  },
44
- getDomNode: function getDomNode() {
45
- var domNode = document.createElement('textarea');
40
+ getDomNode: () => {
41
+ const domNode = document.createElement('textarea');
46
42
  domNode.className = 'iPadShowKeyboard';
47
- domNode.addEventListener('touchstart', function () {
48
- return editor.focus();
49
- });
50
- domNode.addEventListener('focus', function () {
51
- return editor.focus();
52
- });
43
+ domNode.addEventListener('touchstart', () => editor.focus());
44
+ domNode.addEventListener('focus', () => editor.focus());
53
45
  return domNode;
54
46
  },
55
- getPosition: function getPosition() {
47
+ getPosition: () => {
56
48
  return {
57
49
  preference: monaco.editor.OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER
58
50
  };
@@ -62,45 +54,43 @@ var MonacoEditorMobile = forwardRef(function (props, ref) {
62
54
  /**
63
55
  * Export window-level event functions for mobile app.
64
56
  */
65
- var exposeWindowGlobalEvents = function exposeWindowGlobalEvents(editor) {
66
- var editorApi = editorApiRef.current;
57
+ const exposeWindowGlobalEvents = editor => {
58
+ const editorApi = editorApiRef.current;
67
59
  if (!editorApi) {
68
60
  return;
69
61
  }
70
- window.cursorCharLeft = function () {
62
+ window.cursorCharLeft = () => {
71
63
  var _a;
72
- var pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco.Position(0, 0);
64
+ const pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco.Position(0, 0);
73
65
  editor.setPosition(new monaco.Position(pos.lineNumber, pos.column - 1));
74
66
  };
75
- window.cursorCharRight = function () {
67
+ window.cursorCharRight = () => {
76
68
  var _a;
77
- var pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco.Position(0, 0);
69
+ const pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco.Position(0, 0);
78
70
  editor.setPosition(new monaco.Position(pos.lineNumber, pos.column + 1));
79
71
  };
80
- window.cursorLineUp = function () {
72
+ window.cursorLineUp = () => {
81
73
  var _a;
82
- var pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco.Position(0, 0);
74
+ const pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco.Position(0, 0);
83
75
  editor.setPosition(new monaco.Position(pos.lineNumber - 1, pos.column));
84
76
  };
85
- window.cursorLineDown = function () {
77
+ window.cursorLineDown = () => {
86
78
  var _a;
87
- var pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco.Position(0, 0);
79
+ const pos = (_a = editor.getPosition()) !== null && _a !== void 0 ? _a : new monaco.Position(0, 0);
88
80
  editor.setPosition(new monaco.Position(pos.lineNumber + 1, pos.column));
89
81
  };
90
- window.dispatchReconfigureFontSize = function (fontSize) {
91
- setPreference(function (prev) {
92
- return Object.assign(Object.assign({}, prev), {
93
- fontSize: fontSize
94
- });
95
- });
82
+ window.dispatchReconfigureFontSize = fontSize => {
83
+ setPreference(prev => Object.assign(Object.assign({}, prev), {
84
+ fontSize
85
+ }));
96
86
  };
97
- window.dispatchChangeInsert = function (insert) {
87
+ window.dispatchChangeInsert = insert => {
98
88
  editorApi.insertValue(editorApi.getPositionOffset(), insert);
99
89
  };
100
- window.insertTab = function () {
101
- var model = editorApi.getMonacoModel();
90
+ window.insertTab = () => {
91
+ const model = editorApi.getMonacoModel();
102
92
  if (model) {
103
- var modelOptions = model.getOptions();
93
+ const modelOptions = model.getOptions();
104
94
  editorApi.insertValue(editorApi.getPositionOffset(), modelOptions.insertSpaces ? ' '.repeat(modelOptions.tabSize) : '\t');
105
95
  }
106
96
  };
@@ -108,7 +98,7 @@ var MonacoEditorMobile = forwardRef(function (props, ref) {
108
98
  /**
109
99
  *
110
100
  */
111
- var handleLoad = function handleLoad(editor) {
101
+ const handleLoad = editor => {
112
102
  if (typeof props.onLoad === 'function') {
113
103
  props.onLoad(editor);
114
104
  }