@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
@@ -22,7 +22,7 @@ function setDocumentFormattingEditProvider() {
22
22
  * Set TypeScript compiler options.
23
23
  */
24
24
  function setCompilerOptions() {
25
- var compilerOptions = {
25
+ const compilerOptions = {
26
26
  allowNonTsExtensions: true,
27
27
  allowSyntheticDefaultImports: true,
28
28
  target: monaco.languages.typescript.ScriptTarget.ES2016,
@@ -31,7 +31,7 @@ function setCompilerOptions() {
31
31
  lib: ['dom', 'dom.iterable', 'es2020'],
32
32
  noEmit: true
33
33
  };
34
- var compilerOptionsReact = Object.assign(Object.assign({}, compilerOptions), {
34
+ const compilerOptionsReact = Object.assign(Object.assign({}, compilerOptions), {
35
35
  jsx: monaco.languages.typescript.JsxEmit.React,
36
36
  jsxFactory: 'React.createElement',
37
37
  esModuleInterop: true
@@ -43,7 +43,7 @@ function setCompilerOptions() {
43
43
  * Set TypeScript diagnostics options.
44
44
  */
45
45
  function setDiagnosticsOptions() {
46
- var diagnosticsOptions = {
46
+ const diagnosticsOptions = {
47
47
  noSuggestionDiagnostics: false,
48
48
  noSemanticValidation: true,
49
49
  noSyntaxValidation: true
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { useState } from 'react';
3
2
  import { useDeepCompareEffect } from 'react-use';
4
3
  import { MONACO_EDITOR_FONT_FAMILY } from '../constants/monaco/preferences.js';
@@ -11,8 +10,8 @@ import { normalizeMonacoPreference } from '../utils/monacoPreference.js';
11
10
  /**
12
11
  * Get editor options from props and preferences.
13
12
  */
14
- var getEditorOptions = function getEditorOptions(props) {
15
- var normalized = normalizeMonacoPreference(props.preference);
13
+ const getEditorOptions = props => {
14
+ const normalized = normalizeMonacoPreference(props.preference);
16
15
  return Object.assign(Object.assign({}, normalized), {
17
16
  tabSize: normalized.detectIndentation ? undefined : normalized.tabSize,
18
17
  // font
@@ -71,14 +70,9 @@ var getEditorOptions = function getEditorOptions(props) {
71
70
  /**
72
71
  * Hook to get editor options from props.
73
72
  */
74
- var useEditorOptions = function useEditorOptions(props) {
75
- var _useState = useState(getEditorOptions(props)),
76
- _useState2 = _slicedToArray(_useState, 2),
77
- editorOptions = _useState2[0],
78
- setEditorOptions = _useState2[1];
79
- useDeepCompareEffect(function () {
80
- return setEditorOptions(getEditorOptions(props));
81
- }, [props]);
73
+ const useEditorOptions = props => {
74
+ const [editorOptions, setEditorOptions] = useState(getEditorOptions(props));
75
+ useDeepCompareEffect(() => setEditorOptions(getEditorOptions(props)), [props]);
82
76
  return editorOptions;
83
77
  };
84
78
 
@@ -2,7 +2,7 @@
2
2
  * Validate if the given position is valid for emmet abbreviation.
3
3
  */
4
4
  function isValidEmmetToken(tokens, index, syntax, language) {
5
- var currentTokenType = tokens[index].type;
5
+ const currentTokenType = tokens[index].type;
6
6
  switch (syntax) {
7
7
  case 'html':
8
8
  return currentTokenType === 'text.html.basic';
@@ -19,25 +19,27 @@ function isValidEmmetToken(tokens, index, syntax, language) {
19
19
  * @see https://github.com/microsoft/vscode/blob/50140a53cc2088f478a5560683ccd354f2d5f431/extensions/emmet/src/abbreviationActions.ts#L438
20
20
  */
21
21
  function isValidLocationForEmmetAbbreviation(model, position, syntax, language) {
22
- var column = position.column,
23
- lineNumber = position.lineNumber;
22
+ const {
23
+ column,
24
+ lineNumber
25
+ } = position;
24
26
  // get current line's tokens
25
- var _tokenization =
27
+ const _tokenization =
26
28
  // monaco-editor < 0.34.0
27
29
  model._tokenization ||
28
30
  // monaco-editor >= 0.34.0
29
31
  model.tokenization._tokenization;
30
- var _tokenizationStateStore = _tokenization._tokenizationStateStore;
31
- var _tokenizationSupport =
32
+ const _tokenizationStateStore = _tokenization._tokenizationStateStore;
33
+ const _tokenizationSupport =
32
34
  // monaco-editor >= 0.32.0
33
35
  _tokenizationStateStore.tokenizationSupport ||
34
36
  // monaco-editor < 0.32.0
35
37
  _tokenization._tokenizationSupport;
36
- var state = _tokenizationStateStore.getBeginState(lineNumber - 1).clone();
37
- var tokenizationResult = _tokenizationSupport.tokenize(model.getLineContent(lineNumber), true, state, 0);
38
- var tokens = tokenizationResult.tokens;
38
+ const state = _tokenizationStateStore.getBeginState(lineNumber - 1).clone();
39
+ const tokenizationResult = _tokenizationSupport.tokenize(model.getLineContent(lineNumber), true, state, 0);
40
+ const tokens = tokenizationResult.tokens;
39
41
  // get token type at current column
40
- for (var i = tokens.length - 1; i >= 0; i--) {
42
+ for (let i = tokens.length - 1; i >= 0; i--) {
41
43
  if (column - 1 > tokens[i].offset) {
42
44
  // return true if current token is valid for emmet
43
45
  if (isValidEmmetToken(tokens, i, syntax)) {
@@ -9,18 +9,12 @@ function registerProvider(_monaco, languages, syntax) {
9
9
  if (!_monaco) {
10
10
  return;
11
11
  }
12
- var providers = languages.map(function (language) {
13
- return _monaco.languages.registerCompletionItemProvider(language, {
14
- triggerCharacters: LANGUAGE_MODES[MAPPED_MODES[language] || language],
15
- provideCompletionItems: function provideCompletionItems(model, position) {
16
- return isValidLocationForEmmetAbbreviation(model, position, syntax) ? doComplete(_monaco, model, position, syntax, DEFAULT_CONFIG) : undefined;
17
- }
18
- });
19
- });
20
- return function () {
21
- providers.forEach(function (provider) {
22
- return provider.dispose();
23
- });
12
+ const providers = languages.map(language => _monaco.languages.registerCompletionItemProvider(language, {
13
+ triggerCharacters: LANGUAGE_MODES[MAPPED_MODES[language] || language],
14
+ provideCompletionItems: (model, position) => isValidLocationForEmmetAbbreviation(model, position, syntax) ? doComplete(_monaco, model, position, syntax, DEFAULT_CONFIG) : undefined
15
+ }));
16
+ return () => {
17
+ providers.forEach(provider => provider.dispose());
24
18
  };
25
19
  }
26
20
 
@@ -1,7 +1,5 @@
1
- import { asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { Registry } from 'monaco-textmate';
3
2
  import { TM_LANGUAGES } from '../../constants/grammars/index.js';
4
- import '../../constants/monaco/preferences.js';
5
3
  import { initOnigasm } from './onigasm.js';
6
4
  import { wireTmGrammars } from './textmate.js';
7
5
 
@@ -10,8 +8,8 @@ import { wireTmGrammars } from './textmate.js';
10
8
  */
11
9
  function createGrammarMap() {
12
10
  // {language => scopeName}
13
- var grammars = new Map();
14
- TM_LANGUAGES.forEach(function (tm) {
11
+ const grammars = new Map();
12
+ TM_LANGUAGES.forEach(tm => {
15
13
  grammars.set(tm.language, tm.scopeName);
16
14
  });
17
15
  return grammars;
@@ -21,76 +19,34 @@ function createGrammarMap() {
21
19
  */
22
20
  function createGrammarRegistry() {
23
21
  return new Registry({
24
- getGrammarDefinition: function () {
25
- var _getGrammarDefinition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(scopeName) {
26
- var lang, definition;
27
- return _regeneratorRuntime().wrap(function _callee$(_context) {
28
- while (1) switch (_context.prev = _context.next) {
29
- case 0:
30
- _context.prev = 0;
31
- lang = TM_LANGUAGES.find(function (l) {
32
- return l.scopeName === scopeName;
33
- });
34
- if (lang) {
35
- _context.next = 4;
36
- break;
37
- }
38
- throw Error("no language found for scopeName: ".concat(scopeName));
39
- case 4:
40
- _context.next = 6;
41
- return lang.getDefinition();
42
- case 6:
43
- definition = _context.sent;
44
- return _context.abrupt("return", {
45
- format: 'json',
46
- content: JSON.stringify(definition)
47
- });
48
- case 10:
49
- _context.prev = 10;
50
- _context.t0 = _context["catch"](0);
51
- return _context.abrupt("return", {
52
- format: 'json',
53
- content: '{}'
54
- });
55
- case 13:
56
- case "end":
57
- return _context.stop();
58
- }
59
- }, _callee, null, [[0, 10]]);
60
- }));
61
- function getGrammarDefinition(_x) {
62
- return _getGrammarDefinition.apply(this, arguments);
22
+ getGrammarDefinition: async scopeName => {
23
+ try {
24
+ const lang = TM_LANGUAGES.find(l => l.scopeName === scopeName);
25
+ if (!lang) {
26
+ throw Error(`no language found for scopeName: ${scopeName}`);
27
+ }
28
+ const definition = await lang.getDefinition();
29
+ return {
30
+ format: 'json',
31
+ content: JSON.stringify(definition)
32
+ };
33
+ } catch (_) {
34
+ return {
35
+ format: 'json',
36
+ content: '{}'
37
+ };
63
38
  }
64
- return getGrammarDefinition;
65
- }()
39
+ }
66
40
  });
67
41
  }
68
42
  /**
69
43
  *
70
44
  */
71
- function initMonacoGrammars () {
72
- return _ref.apply(this, arguments);
73
- }
74
- function _ref() {
75
- _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
76
- var grammars, registry;
77
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
78
- while (1) switch (_context2.prev = _context2.next) {
79
- case 0:
80
- _context2.next = 2;
81
- return initOnigasm();
82
- case 2:
83
- grammars = createGrammarMap();
84
- registry = createGrammarRegistry();
85
- _context2.next = 6;
86
- return wireTmGrammars(registry, grammars);
87
- case 6:
88
- case "end":
89
- return _context2.stop();
90
- }
91
- }, _callee2);
92
- }));
93
- return _ref.apply(this, arguments);
45
+ async function initMonacoGrammars () {
46
+ await initOnigasm();
47
+ const grammars = createGrammarMap();
48
+ const registry = createGrammarRegistry();
49
+ await wireTmGrammars(registry, grammars);
94
50
  }
95
51
 
96
52
  export { initMonacoGrammars as default };
@@ -1,33 +1,14 @@
1
- import { asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { loadWASM } from 'onigasm';
3
2
 
4
- var ONIGASM_WASM = 'https://static.elice.io/vendors/onigasm@2.2.5/onigasm.wasm';
3
+ const ONIGASM_WASM = 'https://static.elice.io/vendors/onigasm@2.2.5/onigasm.wasm';
5
4
  /**
6
5
  * Init onigasm wasm.
7
6
  */
8
- function initOnigasm() {
9
- return _initOnigasm.apply(this, arguments);
10
- }
11
- function _initOnigasm() {
12
- _initOnigasm = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
13
- return _regeneratorRuntime().wrap(function _callee$(_context) {
14
- while (1) switch (_context.prev = _context.next) {
15
- case 0:
16
- if (window.__elice_monaco_editor_tm_init__) {
17
- _context.next = 4;
18
- break;
19
- }
20
- _context.next = 3;
21
- return loadWASM(ONIGASM_WASM);
22
- case 3:
23
- window.__elice_monaco_editor_tm_init__ = true;
24
- case 4:
25
- case "end":
26
- return _context.stop();
27
- }
28
- }, _callee);
29
- }));
30
- return _initOnigasm.apply(this, arguments);
7
+ async function initOnigasm() {
8
+ if (!window.__elice_monaco_editor_tm_init__) {
9
+ await loadWASM(ONIGASM_WASM);
10
+ window.__elice_monaco_editor_tm_init__ = true;
11
+ }
31
12
  }
32
13
 
33
14
  export { initOnigasm };
@@ -1,4 +1,3 @@
1
- import { asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime, createClass as _createClass, classCallCheck as _classCallCheck } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
3
2
  import { INITIAL } from 'monaco-textmate';
4
3
 
@@ -6,32 +5,23 @@ import { INITIAL } from 'monaco-textmate';
6
5
  * TokenizerState
7
6
  * -ref: https://github.com/codesandbox/codesandbox-client/blob/389073613e06eee944231f4aeef9dfa746c1b947/packages/app/src/embed/components/Content/Monaco/grammars/set-grammars.js#L3-L27
8
7
  */
9
- var TokenizerState = /*#__PURE__*/function () {
10
- function TokenizerState(_ruleStack) {
11
- _classCallCheck(this, TokenizerState);
8
+ class TokenizerState {
9
+ constructor(_ruleStack) {
12
10
  this._ruleStack = _ruleStack;
13
11
  }
14
- _createClass(TokenizerState, [{
15
- key: "ruleStack",
16
- get: function get() {
17
- return this._ruleStack;
18
- }
19
- }, {
20
- key: "clone",
21
- value: function clone() {
22
- return new TokenizerState(this._ruleStack);
23
- }
24
- }, {
25
- key: "equals",
26
- value: function equals(other) {
27
- if (!other || !(other instanceof TokenizerState) || other !== this || other._ruleStack !== this._ruleStack) {
28
- return false;
29
- }
30
- return true;
12
+ get ruleStack() {
13
+ return this._ruleStack;
14
+ }
15
+ clone() {
16
+ return new TokenizerState(this._ruleStack);
17
+ }
18
+ equals(other) {
19
+ if (!other || !(other instanceof TokenizerState) || other !== this || other._ruleStack !== this._ruleStack) {
20
+ return false;
31
21
  }
32
- }]);
33
- return TokenizerState;
34
- }();
22
+ return true;
23
+ }
24
+ }
35
25
  /**
36
26
  * Wires up monaco-editor with monaco-textmate
37
27
  *
@@ -40,50 +30,28 @@ var TokenizerState = /*#__PURE__*/function () {
40
30
  * @param languages `Map` of language ids (string) to TM names (string)
41
31
  */
42
32
  function wireTmGrammars(registry, languages) {
43
- return Promise.all(Array.from(languages.keys()).map( /*#__PURE__*/function () {
44
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(languageId) {
45
- var _a, grammarScopeName, grammar;
46
- return _regeneratorRuntime().wrap(function _callee$(_context) {
47
- while (1) switch (_context.prev = _context.next) {
48
- case 0:
49
- _context.prev = 0;
50
- grammarScopeName = (_a = languages.get(languageId)) !== null && _a !== void 0 ? _a : 'plaintext';
51
- _context.next = 4;
52
- return registry.loadGrammar(grammarScopeName);
53
- case 4:
54
- grammar = _context.sent;
55
- monaco.languages.setTokensProvider(languageId, {
56
- getInitialState: function getInitialState() {
57
- return new TokenizerState(INITIAL);
58
- },
59
- tokenize: function tokenize(line, state) {
60
- var res = grammar.tokenizeLine(line, state.ruleStack);
61
- return {
62
- endState: new TokenizerState(res.ruleStack),
63
- tokens: res.tokens.map(function (token) {
64
- return Object.assign(Object.assign({}, token), {
65
- // TODO: At the moment, monaco-editor doesn't seem to accept array of scopes
66
- scopes: token.scopes[token.scopes.length - 1]
67
- });
68
- })
69
- };
70
- }
71
- });
72
- _context.next = 10;
73
- break;
74
- case 8:
75
- _context.prev = 8;
76
- _context.t0 = _context["catch"](0);
77
- case 10:
78
- case "end":
79
- return _context.stop();
33
+ return Promise.all(Array.from(languages.keys()).map(async languageId => {
34
+ var _a;
35
+ try {
36
+ const grammarScopeName = (_a = languages.get(languageId)) !== null && _a !== void 0 ? _a : 'plaintext';
37
+ const grammar = await registry.loadGrammar(grammarScopeName);
38
+ monaco.languages.setTokensProvider(languageId, {
39
+ getInitialState: () => new TokenizerState(INITIAL),
40
+ tokenize: (line, state) => {
41
+ const res = grammar.tokenizeLine(line, state.ruleStack);
42
+ return {
43
+ endState: new TokenizerState(res.ruleStack),
44
+ tokens: res.tokens.map(token => Object.assign(Object.assign({}, token), {
45
+ // TODO: At the moment, monaco-editor doesn't seem to accept array of scopes
46
+ scopes: token.scopes[token.scopes.length - 1]
47
+ }))
48
+ };
80
49
  }
81
- }, _callee, null, [[0, 8]]);
82
- }));
83
- return function (_x) {
84
- return _ref.apply(this, arguments);
85
- };
86
- }()));
50
+ });
51
+ } catch (_) {
52
+ // console.warn(_);
53
+ }
54
+ }));
87
55
  }
88
56
 
89
57
  export { wireTmGrammars };
@@ -5,7 +5,7 @@ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
5
5
  *
6
6
  * keyvalue: {extension -> language id}
7
7
  */
8
- var monacoLanguageMap = new Map();
8
+ const monacoLanguageMap = new Map();
9
9
  /**
10
10
  * Initialize monaco language map.
11
11
  */
@@ -14,9 +14,9 @@ function initLanguageMap() {
14
14
  return;
15
15
  }
16
16
  // get languages from `monaco.languages`.
17
- monaco.languages.getLanguages().forEach(function (supportLang) {
17
+ monaco.languages.getLanguages().forEach(supportLang => {
18
18
  var _a;
19
- (_a = supportLang.extensions) === null || _a === void 0 ? void 0 : _a.forEach(function (ext) {
19
+ (_a = supportLang.extensions) === null || _a === void 0 ? void 0 : _a.forEach(ext => {
20
20
  monacoLanguageMap.set(ext.slice(1), supportLang.id);
21
21
  });
22
22
  });
@@ -31,8 +31,8 @@ function getLanguageFromFilename(filename) {
31
31
  var _a;
32
32
  initLanguageMap();
33
33
  if (filename) {
34
- var extension = ((_a = filename.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || '';
35
- var monacoLang = monacoLanguageMap.get(extension);
34
+ const extension = ((_a = filename.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || '';
35
+ const monacoLang = monacoLanguageMap.get(extension);
36
36
  if (monacoLang) {
37
37
  return monacoLang;
38
38
  }
@@ -1,16 +1,14 @@
1
- import { typeof as _typeof } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { DEFAULT_MONACO_EDITOR_PREFERENCE } from '../constants/monaco/preferences.js';
3
2
 
4
3
  /**
5
4
  * Normalize monaco editor preferences for elice exercise.
6
5
  */
7
- function normalizeMonacoPreference() {
8
- var raw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ function normalizeMonacoPreference(raw = {}) {
9
7
  try {
10
8
  // deep copy normalized preference.
11
- var normalized = JSON.parse(JSON.stringify(DEFAULT_MONACO_EDITOR_PREFERENCE));
12
- Object.keys(DEFAULT_MONACO_EDITOR_PREFERENCE).forEach(function (key) {
13
- if (raw[key] !== null && raw[key] !== undefined && _typeof(normalized[key]) === _typeof(raw[key])) {
9
+ const normalized = JSON.parse(JSON.stringify(DEFAULT_MONACO_EDITOR_PREFERENCE));
10
+ Object.keys(DEFAULT_MONACO_EDITOR_PREFERENCE).forEach(key => {
11
+ if (raw[key] !== null && raw[key] !== undefined && typeof normalized[key] === typeof raw[key]) {
14
12
  normalized[key] = raw[key];
15
13
  }
16
14
  });
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Default prettier config.
3
3
  */
4
- var DEFAULT_PRETTIER_CONFIG = Object.freeze({
4
+ const DEFAULT_PRETTIER_CONFIG = Object.freeze({
5
5
  arrowParens: 'avoid',
6
6
  bracketSpacing: true,
7
7
  endOfLine: 'auto',
@@ -14,7 +14,7 @@ var DEFAULT_PRETTIER_CONFIG = Object.freeze({
14
14
  /**
15
15
  * Global prettier config source.
16
16
  */
17
- var prettierConfigSource = {
17
+ const prettierConfigSource = {
18
18
  config: Object.assign({}, DEFAULT_PRETTIER_CONFIG)
19
19
  };
20
20
 
@@ -1,35 +1,15 @@
1
- import { asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { prettierConfigSource } from './config.js';
3
2
 
4
3
  /**
5
4
  * Run prettier on the given text.
6
5
  */
7
- function prettier (_x, _x2) {
8
- return _ref.apply(this, arguments);
9
- }
10
- function _ref() {
11
- _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(value, options) {
12
- var prettier;
13
- return _regeneratorRuntime().wrap(function _callee$(_context) {
14
- while (1) switch (_context.prev = _context.next) {
15
- case 0:
16
- _context.prev = 0;
17
- _context.next = 3;
18
- return import('prettier/standalone');
19
- case 3:
20
- prettier = _context.sent;
21
- return _context.abrupt("return", prettier.format(value, Object.assign(Object.assign({}, options), prettierConfigSource.config)));
22
- case 7:
23
- _context.prev = 7;
24
- _context.t0 = _context["catch"](0);
25
- return _context.abrupt("return", value);
26
- case 10:
27
- case "end":
28
- return _context.stop();
29
- }
30
- }, _callee, null, [[0, 7]]);
31
- }));
32
- return _ref.apply(this, arguments);
6
+ async function prettier (value, options) {
7
+ try {
8
+ const prettier = await import('prettier/standalone');
9
+ return prettier.format(value, Object.assign(Object.assign({}, options), prettierConfigSource.config));
10
+ } catch (_) {
11
+ return value;
12
+ }
33
13
  }
34
14
 
35
15
  export { prettier as default };
@@ -32,19 +32,17 @@ function getBase(type) {
32
32
  *
33
33
  */
34
34
  function convertToMonacoTheme(theme) {
35
- var _theme$tokenColors = theme.tokenColors,
36
- tokenColors = _theme$tokenColors === void 0 ? [] : _theme$tokenColors,
37
- _theme$colors = theme.colors,
38
- colors = _theme$colors === void 0 ? {} : _theme$colors;
39
- Object.keys(colors).forEach(function (c) {
35
+ const {
36
+ tokenColors = [],
37
+ colors = {}
38
+ } = theme;
39
+ Object.keys(colors).forEach(c => {
40
40
  if (!colors[c]) {
41
41
  delete colors[c];
42
42
  }
43
43
  });
44
- var rules = tokenColors.filter(function (t) {
45
- return t.scope && t.settings && t.settings.foreground !== 'inherit' && t.settings.background !== 'inherit';
46
- }).reduce(function (acc, token) {
47
- var settings = {};
44
+ const rules = tokenColors.filter(t => t.scope && t.settings && t.settings.foreground !== 'inherit' && t.settings.background !== 'inherit').reduce((acc, token) => {
45
+ const settings = {};
48
46
  if (token.settings.foreground) {
49
47
  settings.foreground = sanitizeColor(token.settings.foreground);
50
48
  }
@@ -54,21 +52,17 @@ function convertToMonacoTheme(theme) {
54
52
  if (token.settings.fontStyle) {
55
53
  settings.fontStyle = token.settings.fontStyle;
56
54
  }
57
- var scope = typeof token.scope === 'string' ? token.scope.split(',').map(function (a) {
58
- return a.trim();
59
- }) : token.scope;
60
- scope.forEach(function (s) {
61
- return acc.push(Object.assign({
62
- token: s
63
- }, settings));
64
- });
55
+ const scope = typeof token.scope === 'string' ? token.scope.split(',').map(a => a.trim()) : token.scope;
56
+ scope.forEach(s => acc.push(Object.assign({
57
+ token: s
58
+ }, settings)));
65
59
  return acc;
66
60
  }, []);
67
61
  return {
68
62
  base: getBase(theme.type),
69
63
  inherit: true,
70
- colors: colors,
71
- rules: rules
64
+ colors,
65
+ rules
72
66
  };
73
67
  }
74
68
 
@@ -1,31 +1,12 @@
1
- import { asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { VSCODE_THEMES } from '../../constants/themes/index.js';
3
2
  import { convertToMonacoTheme } from './convert.js';
4
3
 
5
4
  /**
6
5
  * Import theme of vscode.
7
6
  */
8
- function importTheme(_x) {
9
- return _importTheme.apply(this, arguments);
10
- }
11
- function _importTheme() {
12
- _importTheme = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(theme) {
13
- var _a;
14
- return _regeneratorRuntime().wrap(function _callee$(_context) {
15
- while (1) switch (_context.prev = _context.next) {
16
- case 0:
17
- return _context.abrupt("return", ((_a = VSCODE_THEMES.find(function (t) {
18
- return t.id === theme;
19
- })) !== null && _a !== void 0 ? _a : VSCODE_THEMES[0]).getTheme().then(function (themeData) {
20
- return convertToMonacoTheme(themeData);
21
- }));
22
- case 1:
23
- case "end":
24
- return _context.stop();
25
- }
26
- }, _callee);
27
- }));
28
- return _importTheme.apply(this, arguments);
7
+ async function importTheme(theme) {
8
+ var _a;
9
+ return ((_a = VSCODE_THEMES.find(t => t.id === theme)) !== null && _a !== void 0 ? _a : VSCODE_THEMES[0]).getTheme().then(themeData => convertToMonacoTheme(themeData));
29
10
  }
30
11
 
31
12
  export { importTheme };