@elice/material-exercise 1.230328.0 → 1.230418.0

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