@elice/material-exercise 1.231227.0 → 1.240112.0-cloud.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/cjs/components/material-exercise/MaterialExercise.i18n.js +2 -4
  2. package/cjs/components/material-exercise/MaterialExercise.js +54 -59
  3. package/cjs/components/material-exercise/MaterialExercise.styled.js +14 -20
  4. package/cjs/components/material-exercise/MaterialExerciseMobile.js +8 -15
  5. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +14 -18
  6. package/cjs/components/material-exercise/context/ExerciseProvider.js +58 -66
  7. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +19 -24
  8. package/cjs/components/material-exercise/context/context.js +1 -7
  9. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +1 -1
  10. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +1 -1
  11. package/cjs/components/material-exercise/context/recoil.js +293 -544
  12. package/cjs/components/material-exercise/context/recoilTypes.js +0 -2
  13. package/cjs/components/material-exercise/context/subjects.js +3 -5
  14. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +60 -67
  15. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -14
  16. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +1 -1
  17. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +1 -1
  18. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +17 -21
  19. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +133 -203
  20. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -12
  21. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +24 -40
  22. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +38 -52
  23. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +5 -9
  24. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +1 -1
  25. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +1 -1
  26. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +189 -328
  27. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +5 -9
  28. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +1 -1
  29. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +1 -1
  30. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +14 -17
  31. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +11 -15
  32. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +7 -11
  33. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +44 -65
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +32 -61
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +19 -35
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +48 -62
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -18
  38. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
  39. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
  40. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +21 -32
  41. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +4 -8
  42. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +23 -27
  43. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +7 -17
  44. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +1 -1
  45. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +1 -1
  46. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +23 -32
  47. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +7 -15
  48. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +79 -86
  49. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +1 -1
  50. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +1 -1
  51. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +11 -22
  52. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -20
  53. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +180 -288
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +82 -116
  55. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -4
  56. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +1 -1
  57. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +1 -1
  58. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +125 -181
  59. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -7
  60. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -17
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +43 -58
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +15 -27
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +65 -68
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +23 -32
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +58 -92
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +3 -7
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +11 -16
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +18 -29
  69. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
  70. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
  71. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +162 -282
  72. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -14
  73. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -54
  74. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +1 -1
  75. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +1 -1
  76. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +15 -21
  77. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +14 -19
  78. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +16 -21
  79. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +5 -10
  80. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +18 -23
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +10 -21
  82. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -8
  83. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -7
  84. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -11
  85. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -15
  86. package/cjs/components/shared/file-icon/FileIcon.js +17 -23
  87. package/cjs/components/shared/file-tabs/FileTab.js +30 -36
  88. package/cjs/components/shared/file-tabs/FileTab.styled.js +15 -25
  89. package/cjs/components/shared/file-tabs/FileTabs.js +38 -63
  90. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -8
  91. package/cjs/components/shared/file-tabs/util.js +14 -29
  92. package/cjs/components/shared/file-tree/FileTree.js +12 -17
  93. package/cjs/components/shared/file-tree/FileTreeConfig.js +22 -25
  94. package/cjs/components/shared/file-tree/FileTreeList.js +37 -39
  95. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +61 -75
  96. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -31
  97. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +64 -72
  98. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -12
  99. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +63 -74
  100. package/cjs/components/shared/file-tree/FileTreeListItems.js +136 -151
  101. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -8
  102. package/cjs/components/shared/file-tree/FileTreeToolbar.js +31 -32
  103. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -7
  104. package/cjs/components/shared/file-tree/context/FileTreeContext.js +76 -97
  105. package/cjs/components/shared/file-tree/locales/en.json.js +1 -1
  106. package/cjs/components/shared/file-tree/locales/ko.json.js +1 -1
  107. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -26
  108. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +146 -195
  109. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -2
  110. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -3
  111. package/cjs/components/shared/file-tree/utils/fileTreePath.js +6 -7
  112. package/cjs/components/shared/file-viewer/FileViewer.js +37 -61
  113. package/cjs/components/shared/file-viewer/FileViewerCsv.js +108 -172
  114. package/cjs/components/shared/file-viewer/FileViewerImage.js +8 -12
  115. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +10 -23
  116. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +33 -42
  117. package/cjs/components/shared/file-viewer/FileViewerText.js +12 -24
  118. package/cjs/components/shared/file-viewer/locales/en.json.js +1 -1
  119. package/cjs/components/shared/file-viewer/locales/ko.json.js +1 -1
  120. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +1 -1
  121. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +1 -1
  122. package/cjs/components/shared/material-modal/MaterialModal.js +11 -14
  123. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -11
  124. package/cjs/components/shared/monaco-editor/MonacoEditor.js +74 -99
  125. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +6 -12
  126. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +36 -50
  127. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +91 -110
  128. package/cjs/components/shared/monaco-editor/constants/grammars/JSON.tmLanguage.json.js +1 -1
  129. package/cjs/components/shared/monaco-editor/constants/grammars/MagicPython.tmLanguage.json.js +1 -1
  130. package/cjs/components/shared/monaco-editor/constants/grammars/TypeScriptReact.tmLanguage.json.js +1 -1
  131. package/cjs/components/shared/monaco-editor/constants/grammars/asp-vb-net.tmlanguage.json.js +1 -1
  132. package/cjs/components/shared/monaco-editor/constants/grammars/c.tmLanguage.json.js +1 -1
  133. package/cjs/components/shared/monaco-editor/constants/grammars/cpp.tmLanguage.json.js +1 -1
  134. package/cjs/components/shared/monaco-editor/constants/grammars/csharp.tmLanguage.json.js +1 -1
  135. package/cjs/components/shared/monaco-editor/constants/grammars/css.tmLanguage.json.js +1 -1
  136. package/cjs/components/shared/monaco-editor/constants/grammars/dart.tmLanguage.json.js +1 -1
  137. package/cjs/components/shared/monaco-editor/constants/grammars/fsharp.tmLanguage.json.js +1 -1
  138. package/cjs/components/shared/monaco-editor/constants/grammars/go.tmLanguage.json.js +1 -1
  139. package/cjs/components/shared/monaco-editor/constants/grammars/html.tmLanguage.json.js +1 -1
  140. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +28 -84
  141. package/cjs/components/shared/monaco-editor/constants/grammars/java.tmLanguage.json.js +1 -1
  142. package/cjs/components/shared/monaco-editor/constants/grammars/lua.tmLanguage.json.js +1 -1
  143. package/cjs/components/shared/monaco-editor/constants/grammars/objective-c.tmLanguage.json.js +1 -1
  144. package/cjs/components/shared/monaco-editor/constants/grammars/php.tmLanguage.json.js +1 -1
  145. package/cjs/components/shared/monaco-editor/constants/grammars/r.tmLanguage.json.js +1 -1
  146. package/cjs/components/shared/monaco-editor/constants/grammars/ruby.tmLanguage.json.js +1 -1
  147. package/cjs/components/shared/monaco-editor/constants/grammars/rust.tmLanguage.json.js +1 -1
  148. package/cjs/components/shared/monaco-editor/constants/grammars/scss.tmLanguage.json.js +1 -1
  149. package/cjs/components/shared/monaco-editor/constants/grammars/sql.tmLanguage.json.js +1 -1
  150. package/cjs/components/shared/monaco-editor/constants/grammars/swift.tmLanguage.json.js +1 -1
  151. package/cjs/components/shared/monaco-editor/constants/grammars/xml.tmLanguage.json.js +1 -1
  152. package/cjs/components/shared/monaco-editor/constants/grammars/yaml.tmLanguage.json.js +1 -1
  153. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -7
  154. package/cjs/components/shared/monaco-editor/constants/themes/abyss.json.js +1 -1
  155. package/cjs/components/shared/monaco-editor/constants/themes/elice.json.js +1 -1
  156. package/cjs/components/shared/monaco-editor/constants/themes/index.js +17 -51
  157. package/cjs/components/shared/monaco-editor/constants/themes/kimbie-dark.json.js +1 -1
  158. package/cjs/components/shared/monaco-editor/constants/themes/monokai.json.js +1 -1
  159. package/cjs/components/shared/monaco-editor/constants/themes/quietlight.json.js +1 -1
  160. package/cjs/components/shared/monaco-editor/constants/themes/red.json.js +1 -1
  161. package/cjs/components/shared/monaco-editor/constants/themes/solarized-dark.json.js +1 -1
  162. package/cjs/components/shared/monaco-editor/constants/themes/solarized-light.json.js +1 -1
  163. package/cjs/components/shared/monaco-editor/constants/themes/tomorrow-night-blue.json.js +1 -1
  164. package/cjs/components/shared/monaco-editor/constants/themes/vs-dark-plus.json.js +1 -1
  165. package/cjs/components/shared/monaco-editor/constants/themes/vs-dark.json.js +1 -1
  166. package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-black.json.js +1 -1
  167. package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-light.json.js +1 -1
  168. package/cjs/components/shared/monaco-editor/constants/themes/vs-light-plus.json.js +1 -1
  169. package/cjs/components/shared/monaco-editor/constants/themes/vs-light.json.js +1 -1
  170. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  171. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -17
  172. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -11
  173. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -36
  174. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -11
  175. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -8
  176. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +11 -52
  177. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +7 -8
  178. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +11 -52
  179. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +5 -6
  180. package/cjs/components/shared/monaco-editor/editor-languages/index.js +4 -4
  181. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -3
  182. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +1 -1
  183. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +1 -1
  184. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +1 -1
  185. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +11 -56
  186. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +17 -18
  187. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -13
  188. package/cjs/components/shared/monaco-editor/locales/en.json.js +1 -1
  189. package/cjs/components/shared/monaco-editor/locales/ko.json.js +1 -1
  190. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -12
  191. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -2
  192. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -14
  193. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +25 -69
  194. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -27
  195. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +38 -73
  196. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +8 -11
  197. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +4 -8
  198. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -4
  199. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +8 -46
  200. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +14 -26
  201. package/cjs/components/shared/monaco-editor/utils/theme/index.js +3 -24
  202. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -79
  203. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -84
  204. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -122
  205. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +133 -158
  206. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -106
  207. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -4
  208. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -3
  209. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -4
  210. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +158 -179
  211. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -5
  212. package/cjs/components/shared/no-vnc/NoVnc.js +57 -86
  213. package/cjs/components/shared/no-vnc/NoVncLazy.js +5 -11
  214. package/cjs/components/shared/preview-container/PreviewContainer.js +11 -15
  215. package/cjs/components/shared/web-browser/WebBrowser.js +37 -53
  216. package/cjs/components/shared/xterm/Xterm.js +58 -81
  217. package/cjs/components/shared/xterm/XtermLazy.js +5 -11
  218. package/cjs/components/shared/xterm/locales/en.json.js +1 -1
  219. package/cjs/components/shared/xterm/locales/ko.json.js +1 -1
  220. package/cjs/components/shared/xterm/utils/index.js +0 -2
  221. package/cjs/constants/arduino.js +10 -12
  222. package/cjs/constants/shortcutKeyMap.js +2 -4
  223. package/cjs/constants/stylesheets.js +5 -9
  224. package/cjs/hooks/useArduino.js +141 -284
  225. package/cjs/hooks/useExerciseFile.js +22 -26
  226. package/cjs/hooks/useExericseShortcut.js +4 -8
  227. package/cjs/hooks/useMaterialExerciseFileUrl.js +33 -57
  228. package/cjs/hooks/useRunnerRoomWebSocket.js +27 -53
  229. package/cjs/hooks/useStdioTextConcator.js +10 -22
  230. package/cjs/hooks/useStdioWebSocket.js +28 -34
  231. package/cjs/hooks/useUsercodeEditWebSocket.js +158 -240
  232. package/cjs/hooks/useUsercodeHistory.js +63 -117
  233. package/cjs/index.js +4 -6
  234. package/cjs/utils/arduino.js +11 -25
  235. package/cjs/utils/exerciseFile.js +10 -10
  236. package/cjs/utils/runner.js +15 -31
  237. package/es/components/material-exercise/MaterialExercise.i18n.js +2 -2
  238. package/es/components/material-exercise/MaterialExercise.js +34 -35
  239. package/es/components/material-exercise/MaterialExercise.styled.js +14 -14
  240. package/es/components/material-exercise/MaterialExerciseMobile.js +6 -9
  241. package/es/components/material-exercise/context/ExerciseIntlProvider.js +10 -8
  242. package/es/components/material-exercise/context/ExerciseProvider.js +52 -55
  243. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +10 -10
  244. package/es/components/material-exercise/context/context.js +1 -1
  245. package/es/components/material-exercise/context/recoil.js +290 -535
  246. package/es/components/material-exercise/context/subjects.js +3 -3
  247. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +51 -53
  248. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  249. package/es/components/material-exercise/exercise-file/ExerciseFile.js +9 -8
  250. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +127 -193
  251. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -4
  252. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +20 -31
  253. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +35 -44
  254. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  255. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +181 -315
  256. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  257. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +11 -10
  258. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -6
  259. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -3
  260. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +25 -42
  261. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +26 -51
  262. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +11 -23
  263. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +21 -31
  264. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  265. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +19 -26
  266. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  267. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +15 -14
  268. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +5 -11
  269. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +11 -15
  270. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +5 -9
  271. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +78 -80
  272. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +6 -13
  273. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -14
  274. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +134 -236
  275. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +65 -94
  276. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
  277. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +116 -167
  278. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  279. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +8 -7
  280. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +17 -27
  281. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +11 -18
  282. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +52 -50
  283. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +10 -14
  284. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +46 -75
  285. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -2
  286. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +4 -4
  287. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +15 -21
  288. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +138 -253
  289. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  290. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +29 -37
  291. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +12 -13
  292. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -2
  293. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -12
  294. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -2
  295. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -14
  296. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +9 -15
  297. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +3 -2
  298. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  299. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +6 -5
  300. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -9
  301. package/es/components/shared/file-icon/FileIcon.js +15 -17
  302. package/es/components/shared/file-tabs/FileTab.js +22 -24
  303. package/es/components/shared/file-tabs/FileTab.styled.js +15 -19
  304. package/es/components/shared/file-tabs/FileTabs.js +35 -55
  305. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  306. package/es/components/shared/file-tabs/util.js +14 -27
  307. package/es/components/shared/file-tree/FileTree.js +3 -3
  308. package/es/components/shared/file-tree/FileTreeConfig.js +18 -15
  309. package/es/components/shared/file-tree/FileTreeList.js +33 -29
  310. package/es/components/shared/file-tree/FileTreeListItemContent.js +45 -55
  311. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -25
  312. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +60 -64
  313. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  314. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +39 -46
  315. package/es/components/shared/file-tree/FileTreeListItems.js +134 -145
  316. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  317. package/es/components/shared/file-tree/FileTreeToolbar.js +25 -22
  318. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  319. package/es/components/shared/file-tree/context/FileTreeContext.js +74 -89
  320. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -20
  321. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +146 -193
  322. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  323. package/es/components/shared/file-tree/utils/fileTreePath.js +6 -5
  324. package/es/components/shared/file-viewer/FileViewer.js +21 -38
  325. package/es/components/shared/file-viewer/FileViewerCsv.js +70 -129
  326. package/es/components/shared/file-viewer/FileViewerImage.js +4 -3
  327. package/es/components/shared/file-viewer/FileViewerIpynb.js +7 -14
  328. package/es/components/shared/file-viewer/FileViewerNonViewable.js +15 -18
  329. package/es/components/shared/file-viewer/FileViewerText.js +9 -17
  330. package/es/components/shared/material-modal/MaterialModal.js +8 -7
  331. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  332. package/es/components/shared/monaco-editor/MonacoEditor.js +67 -87
  333. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +2 -4
  334. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +31 -41
  335. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +52 -66
  336. package/es/components/shared/monaco-editor/constants/grammars/index.js +28 -82
  337. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
  338. package/es/components/shared/monaco-editor/constants/themes/index.js +17 -49
  339. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -11
  340. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -15
  341. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  342. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -34
  343. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -9
  344. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
  345. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +10 -33
  346. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +10 -33
  347. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  348. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +10 -37
  349. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +3 -3
  350. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -11
  351. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -10
  352. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -12
  353. package/es/components/shared/monaco-editor/utils/grammar/index.js +24 -68
  354. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -25
  355. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +35 -67
  356. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +5 -5
  357. package/es/components/shared/monaco-editor/utils/monacoPreference.js +4 -6
  358. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -2
  359. package/es/components/shared/monaco-editor/utils/prettier/index.js +7 -27
  360. package/es/components/shared/monaco-editor/utils/theme/convert.js +13 -19
  361. package/es/components/shared/monaco-editor/utils/theme/index.js +3 -22
  362. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -77
  363. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -82
  364. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -120
  365. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +130 -152
  366. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -104
  367. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  368. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -1
  369. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
  370. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +157 -172
  371. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
  372. package/es/components/shared/no-vnc/NoVnc.js +42 -59
  373. package/es/components/shared/no-vnc/NoVncLazy.js +2 -4
  374. package/es/components/shared/preview-container/PreviewContainer.js +8 -7
  375. package/es/components/shared/web-browser/WebBrowser.js +29 -40
  376. package/es/components/shared/xterm/Xterm.js +51 -69
  377. package/es/components/shared/xterm/XtermLazy.js +2 -4
  378. package/es/constants/arduino.js +10 -10
  379. package/es/constants/shortcutKeyMap.js +1 -3
  380. package/es/constants/stylesheets.js +5 -7
  381. package/es/hooks/useArduino.js +141 -278
  382. package/es/hooks/useExerciseFile.js +22 -24
  383. package/es/hooks/useExericseShortcut.js +4 -6
  384. package/es/hooks/useMaterialExerciseFileUrl.js +34 -52
  385. package/es/hooks/useRunnerRoomWebSocket.js +27 -51
  386. package/es/hooks/useStdioTextConcator.js +10 -16
  387. package/es/hooks/useStdioWebSocket.js +28 -32
  388. package/es/hooks/useUsercodeEditWebSocket.js +157 -232
  389. package/es/hooks/useUsercodeHistory.js +63 -115
  390. package/es/utils/arduino.js +11 -23
  391. package/es/utils/exerciseFile.js +10 -8
  392. package/es/utils/runner.js +15 -29
  393. package/package.json +11 -7
  394. package/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -521
  395. package/es/_virtual/_rollupPluginBabelHelpers.js +0 -499
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray, toConsumableArray as _toConsumableArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React from 'react';
3
2
  import { FormattedMessage } from 'react-intl';
4
3
  import { Hr, Flex, Text, IconButton, Hspace, AntSwitch } from '@elice/blocks';
@@ -14,8 +13,8 @@ import '../exercise-shimmer/ExerciseFileTreeListItemShimmer.js';
14
13
  //
15
14
  //
16
15
  //
17
- var OPTIONS_PER_PAGE = [10, 25, 50];
18
- var OPTIONS_DELIMITER = [{
16
+ const OPTIONS_PER_PAGE = [10, 25, 50];
17
+ const OPTIONS_DELIMITER = [{
19
18
  char: ',',
20
19
  label: 'Comma [,]'
21
20
  }, {
@@ -34,157 +33,118 @@ var OPTIONS_DELIMITER = [{
34
33
  //
35
34
  //
36
35
  //
37
- var StyledViewer = styled.div.withConfig({
36
+ const StyledViewer = styled.div.withConfig({
38
37
  componentId: "sc-pyv7uu-0"
39
38
  })(["flex:1;display:flex;flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;background-color:", ";"], base.color.navy9);
40
- var StyledViewerTableWrap = styled.div.withConfig({
39
+ const StyledViewerTableWrap = styled.div.withConfig({
41
40
  componentId: "sc-pyv7uu-1"
42
41
  })(["flex:1;overflow:auto;"]);
43
- var StyledViewerTable = styled.table.withConfig({
42
+ const StyledViewerTable = styled.table.withConfig({
44
43
  componentId: "sc-pyv7uu-2"
45
44
  })(["border:none;border-collapse:collapse;color:", ";font-family:'Elice Digital Coding',monospace,fixed-width;th,td{border:1px solid ", ";padding:0.5rem;white-space:pre;&:first-of-type{color:", ";border-left:none;}&:last-of-type{border-right:none;}}tbody{tr:nth-child(odd){background:", ";}tr:hover{background:", ";}}"], base.color.white, base.color.navy5, base.color.gray5, base.color.navy8, base.color.navy6);
46
- var StyledViewerFooter = styled.div.withConfig({
45
+ const StyledViewerFooter = styled.div.withConfig({
47
46
  componentId: "sc-pyv7uu-3"
48
47
  })(["flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:0.5rem;"]);
49
- var StyledViewerFooterSelect = styled.select.withConfig({
48
+ const StyledViewerFooterSelect = styled.select.withConfig({
50
49
  componentId: "sc-pyv7uu-4"
51
- })(["width:", "rem;border-radius:0.25rem;"], function (props) {
52
- return props.width;
53
- });
54
- var StyledViewerFooterHr = styled(Hr).withConfig({
50
+ })(["width:", "rem;border-radius:0.25rem;"], props => props.width);
51
+ const StyledViewerFooterHr = styled(Hr).withConfig({
55
52
  componentId: "sc-pyv7uu-5"
56
53
  })(["height:1rem;"]);
57
54
  //
58
55
  //
59
56
  //
60
- var FileViewerCsv = function FileViewerCsv(_ref) {
61
- var fileurl = _ref.fileurl;
62
- var _React$useState = React.useState(''),
63
- _React$useState2 = _slicedToArray(_React$useState, 2),
64
- csv = _React$useState2[0],
65
- setCsv = _React$useState2[1];
66
- var _React$useState3 = React.useState(null),
67
- _React$useState4 = _slicedToArray(_React$useState3, 2),
68
- csvHeader = _React$useState4[0],
69
- setCsvHeader = _React$useState4[1];
70
- var _React$useState5 = React.useState([]),
71
- _React$useState6 = _slicedToArray(_React$useState5, 2),
72
- csvRecords = _React$useState6[0],
73
- setCsvRecords = _React$useState6[1];
74
- var _React$useState7 = React.useState('idle'),
75
- _React$useState8 = _slicedToArray(_React$useState7, 2),
76
- csvStatus = _React$useState8[0],
77
- setCsvStatus = _React$useState8[1];
78
- var _React$useState9 = React.useState(1),
79
- _React$useState10 = _slicedToArray(_React$useState9, 2),
80
- page = _React$useState10[0],
81
- setPage = _React$useState10[1];
82
- var _React$useState11 = React.useState(OPTIONS_PER_PAGE[0]),
83
- _React$useState12 = _slicedToArray(_React$useState11, 2),
84
- perPage = _React$useState12[0],
85
- setPerPage = _React$useState12[1];
86
- var _React$useState13 = React.useState(OPTIONS_DELIMITER[0].char),
87
- _React$useState14 = _slicedToArray(_React$useState13, 2),
88
- delimiter = _React$useState14[0],
89
- setDelimiter = _React$useState14[1];
90
- var _React$useState15 = React.useState(true),
91
- _React$useState16 = _slicedToArray(_React$useState15, 2),
92
- isUsingHeader = _React$useState16[0],
93
- setUsingHeader = _React$useState16[1];
94
- var csvRecordCount = csvRecords.length + (csvHeader ? -1 : 0);
95
- var maxPage = Math.ceil(csvRecordCount / perPage);
96
- var tableWrapElRef = React.useRef(null);
57
+ const FileViewerCsv = ({
58
+ fileurl
59
+ }) => {
60
+ const [csv, setCsv] = React.useState('');
61
+ const [csvHeader, setCsvHeader] = React.useState(null);
62
+ const [csvRecords, setCsvRecords] = React.useState([]);
63
+ const [csvStatus, setCsvStatus] = React.useState('idle');
64
+ const [page, setPage] = React.useState(1);
65
+ const [perPage, setPerPage] = React.useState(OPTIONS_PER_PAGE[0]);
66
+ const [delimiter, setDelimiter] = React.useState(OPTIONS_DELIMITER[0].char);
67
+ const [isUsingHeader, setUsingHeader] = React.useState(true);
68
+ const csvRecordCount = csvRecords.length + (csvHeader ? -1 : 0);
69
+ const maxPage = Math.ceil(csvRecordCount / perPage);
70
+ const tableWrapElRef = React.useRef(null);
97
71
  //
98
72
  // Fetch csv file
99
73
  //
100
- React.useEffect(function () {
74
+ React.useEffect(() => {
101
75
  if (!fileurl) {
102
76
  setCsvRecords([]);
103
77
  return;
104
78
  }
105
- var abortCtrl = new AbortController();
79
+ const abortCtrl = new AbortController();
106
80
  setCsvStatus('pending');
107
81
  fetch(fileurl, {
108
82
  signal: abortCtrl.signal
109
- }).then(function (res) {
110
- return res.text();
111
- }).then(setCsv).then(function () {
112
- return setCsvStatus('resolved');
113
- }).catch(function (err) {
83
+ }).then(res => res.text()).then(setCsv).then(() => setCsvStatus('resolved')).catch(err => {
114
84
  if (err.name === 'AbortError') {
115
85
  return;
116
86
  }
117
87
  setCsvRecords([]);
118
88
  setCsvStatus('rejected');
119
89
  });
120
- return function () {
90
+ return () => {
121
91
  abortCtrl.abort();
122
92
  };
123
93
  }, [fileurl]);
124
94
  //
125
95
  // Parse csv file and save as records
126
96
  //
127
- React.useEffect(function () {
128
- return setCsvRecords(csv.split('\n').filter(Boolean).map(function (row) {
129
- return row.split(delimiter);
130
- }));
131
- }, [csv, delimiter]);
97
+ React.useEffect(() => setCsvRecords(csv.split('\n').filter(Boolean).map(row => row.split(delimiter))), [csv, delimiter]);
132
98
  //
133
99
  // Set CSV header.
134
100
  //
135
- React.useEffect(function () {
136
- return setCsvHeader(isUsingHeader ? csvRecords[0] : null);
137
- }, [csvRecords, isUsingHeader]);
101
+ React.useEffect(() => setCsvHeader(isUsingHeader ? csvRecords[0] : null), [csvRecords, isUsingHeader]);
138
102
  //
139
103
  // Scroll to top when page changes.
140
104
  //
141
- React.useEffect(function () {
105
+ React.useEffect(() => {
142
106
  var _a;
143
107
  return (_a = tableWrapElRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo(0, 0);
144
108
  }, [page]);
145
109
  /**
146
110
  *
147
111
  */
148
- var renderViewerTableThead = function renderViewerTableThead() {
112
+ const renderViewerTableThead = () => {
149
113
  if (!csvHeader) {
150
114
  return null;
151
115
  }
152
- var colunms = [''].concat(_toConsumableArray(csvHeader));
153
- return React.createElement("thead", null, React.createElement("tr", null, colunms.map(function (col, colIdx) {
154
- return React.createElement("th", {
155
- key: colIdx
156
- }, col);
157
- })));
116
+ const colunms = ['', ...csvHeader];
117
+ return React.createElement("thead", null, React.createElement("tr", null, colunms.map((col, colIdx) => React.createElement("th", {
118
+ key: colIdx
119
+ }, col))));
158
120
  };
159
121
  /**
160
122
  *
161
123
  */
162
- var renderViewerTableTbody = function renderViewerTableTbody() {
163
- var start = (page - 1) * perPage;
164
- var end = page * perPage;
165
- var records = csvRecords.slice(csvHeader ? 1 : 0).slice(start, end);
166
- return React.createElement("tbody", null, records.map(function (row, rowIdx) {
167
- var curRecordNo = start + rowIdx + 1;
168
- var curRow = [curRecordNo].concat(_toConsumableArray(row));
124
+ const renderViewerTableTbody = () => {
125
+ const start = (page - 1) * perPage;
126
+ const end = page * perPage;
127
+ const records = csvRecords.slice(csvHeader ? 1 : 0).slice(start, end);
128
+ return React.createElement("tbody", null, records.map((row, rowIdx) => {
129
+ const curRecordNo = start + rowIdx + 1;
130
+ const curRow = [curRecordNo, ...row];
169
131
  return React.createElement("tr", {
170
132
  key: curRecordNo
171
- }, curRow.map(function (col, colIdx) {
172
- return React.createElement("td", {
173
- key: colIdx,
174
- style: {
175
- // test whether the column is number, and align right
176
- textAlign:
177
- // eslint-disable-next-line no-self-compare
178
- +col === +col ? 'right' : 'left'
179
- }
180
- }, col);
181
- }));
133
+ }, curRow.map((col, colIdx) => React.createElement("td", {
134
+ key: colIdx,
135
+ style: {
136
+ // test whether the column is number, and align right
137
+ textAlign:
138
+ // eslint-disable-next-line no-self-compare
139
+ +col === +col ? 'right' : 'left'
140
+ }
141
+ }, col)));
182
142
  }));
183
143
  };
184
144
  /**
185
145
  *
186
146
  */
187
- var renderViewerTable = function renderViewerTable() {
147
+ const renderViewerTable = () => {
188
148
  return React.createElement(StyledViewerTableWrap, {
189
149
  ref: tableWrapElRef
190
150
  }, React.createElement(StyledViewerTable, null, renderViewerTableThead(), renderViewerTableTbody()));
@@ -192,7 +152,7 @@ var FileViewerCsv = function FileViewerCsv(_ref) {
192
152
  /**
193
153
  *
194
154
  */
195
- var renderViewerFooterPagination = function renderViewerFooterPagination() {
155
+ const renderViewerFooterPagination = () => {
196
156
  return React.createElement(Flex, {
197
157
  align: "center"
198
158
  }, React.createElement(Text, {
@@ -208,9 +168,7 @@ var FileViewerCsv = function FileViewerCsv(_ref) {
208
168
  role: "navy3",
209
169
  size: "nano",
210
170
  disabled: page <= 1,
211
- onClick: function onClick() {
212
- return setPage(1);
213
- }
171
+ onClick: () => setPage(1)
214
172
  }), React.createElement(Hspace, {
215
173
  width: 0.25
216
174
  }), React.createElement(IconButton, {
@@ -218,11 +176,7 @@ var FileViewerCsv = function FileViewerCsv(_ref) {
218
176
  role: "navy3",
219
177
  size: "nano",
220
178
  disabled: page <= 1,
221
- onClick: function onClick() {
222
- return setPage(function (prevPage) {
223
- return prevPage - 1;
224
- });
225
- }
179
+ onClick: () => setPage(prevPage => prevPage - 1)
226
180
  }), React.createElement(Hspace, {
227
181
  width: 0.5
228
182
  }), React.createElement(Text, {
@@ -235,11 +189,7 @@ var FileViewerCsv = function FileViewerCsv(_ref) {
235
189
  role: "navy3",
236
190
  size: "nano",
237
191
  disabled: page >= maxPage,
238
- onClick: function onClick() {
239
- return setPage(function (prevPage) {
240
- return prevPage + 1;
241
- });
242
- }
192
+ onClick: () => setPage(prevPage => prevPage + 1)
243
193
  }), React.createElement(Hspace, {
244
194
  width: 0.25
245
195
  }), React.createElement(IconButton, {
@@ -247,15 +197,13 @@ var FileViewerCsv = function FileViewerCsv(_ref) {
247
197
  role: "navy3",
248
198
  size: "nano",
249
199
  disabled: page >= maxPage,
250
- onClick: function onClick() {
251
- return setPage(maxPage);
252
- }
200
+ onClick: () => setPage(maxPage)
253
201
  })));
254
202
  };
255
203
  /**
256
204
  *
257
205
  */
258
- var renderViewerFooterSettings = function renderViewerFooterSettings() {
206
+ const renderViewerFooterSettings = () => {
259
207
  return React.createElement(Flex, {
260
208
  align: "center"
261
209
  }, React.createElement(Flex, {
@@ -286,16 +234,13 @@ var FileViewerCsv = function FileViewerCsv(_ref) {
286
234
  }), React.createElement(StyledViewerFooterSelect, {
287
235
  width: 7.5,
288
236
  value: delimiter,
289
- onChange: function onChange(e) {
290
- return setDelimiter(e.target.value);
291
- }
292
- }, OPTIONS_DELIMITER.map(function (_ref2) {
293
- var char = _ref2.char,
294
- label = _ref2.label;
295
- return React.createElement("option", {
296
- value: char
297
- }, label);
298
- }))), React.createElement(StyledViewerFooterHr, {
237
+ onChange: e => setDelimiter(e.target.value)
238
+ }, OPTIONS_DELIMITER.map(({
239
+ char,
240
+ label
241
+ }) => React.createElement("option", {
242
+ value: char
243
+ }, label)))), React.createElement(StyledViewerFooterHr, {
299
244
  vertical: true,
300
245
  color: base.color.navy5
301
246
  }), React.createElement(Flex, {
@@ -310,19 +255,15 @@ var FileViewerCsv = function FileViewerCsv(_ref) {
310
255
  }), React.createElement(StyledViewerFooterSelect, {
311
256
  width: 3,
312
257
  value: perPage,
313
- onChange: function onChange(e) {
314
- return setPerPage(Number(e.target.value));
315
- }
316
- }, OPTIONS_PER_PAGE.map(function (perPage) {
317
- return React.createElement("option", {
318
- value: perPage
319
- }, perPage);
320
- }))));
258
+ onChange: e => setPerPage(Number(e.target.value))
259
+ }, OPTIONS_PER_PAGE.map(perPage => React.createElement("option", {
260
+ value: perPage
261
+ }, perPage)))));
321
262
  };
322
263
  /**
323
264
  *
324
265
  */
325
- var renderViewerFooter = function renderViewerFooter() {
266
+ const renderViewerFooter = () => {
326
267
  return React.createElement(StyledViewerFooter, null, renderViewerFooterPagination(), renderViewerFooterSettings());
327
268
  };
328
269
  //
@@ -7,11 +7,12 @@ import '../exercise-shimmer/ExerciseFileTabShimmer.js';
7
7
  import '../exercise-shimmer/ExerciseFileTreeListShimmer.js';
8
8
  import '../exercise-shimmer/ExerciseFileTreeListItemShimmer.js';
9
9
 
10
- var StyledImage = styled.img.withConfig({
10
+ const StyledImage = styled.img.withConfig({
11
11
  componentId: "sc-1bnx7lz-0"
12
12
  })(["max-width:100%;max-height:100%;height:auto;width:auto;"]);
13
- var FileViewerImage = function FileViewerImage(_ref) {
14
- var fileurl = _ref.fileurl;
13
+ const FileViewerImage = ({
14
+ fileurl
15
+ }) => {
15
16
  if (!fileurl) {
16
17
  return React.createElement(ExerciseFileShimmer, null);
17
18
  }
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React from 'react';
3
2
  import NotebookPreview from '@nteract/notebook-preview';
4
3
  import styled from 'styled-components';
@@ -8,24 +7,18 @@ import '../exercise-shimmer/ExerciseFileTabShimmer.js';
8
7
  import '../exercise-shimmer/ExerciseFileTreeListShimmer.js';
9
8
  import '../exercise-shimmer/ExerciseFileTreeListItemShimmer.js';
10
9
 
11
- var StyledNotebookWrapper = styled.div.withConfig({
10
+ const StyledNotebookWrapper = styled.div.withConfig({
12
11
  componentId: "sc-1fmae1h-0"
13
12
  })(["width:100%;height:100%;overflow:auto;background-color:white;padding:1rem;.notebook-preview{width:100%;height:100%;}"]);
14
- var FileViewerIpynb = function FileViewerIpynb(_ref) {
15
- var fileurl = _ref.fileurl;
16
- var _React$useState = React.useState(null),
17
- _React$useState2 = _slicedToArray(_React$useState, 2),
18
- content = _React$useState2[0],
19
- setContent = _React$useState2[1];
20
- React.useEffect(function () {
13
+ const FileViewerIpynb = ({
14
+ fileurl
15
+ }) => {
16
+ const [content, setContent] = React.useState(null);
17
+ React.useEffect(() => {
21
18
  if (!fileurl) {
22
19
  return;
23
20
  }
24
- fetch(fileurl).then(function (res) {
25
- return res.text();
26
- }).then(JSON.parse).then(setContent).catch(function (err) {
27
- return console.error(err);
28
- });
21
+ fetch(fileurl).then(res => res.text()).then(JSON.parse).then(setContent).catch(err => console.error(err));
29
22
  }, [fileurl]);
30
23
  //
31
24
  //
@@ -9,35 +9,32 @@ import FileIcon from '../file-icon/FileIcon.js';
9
9
  import phrasesEn from './locales/nonViewable.en.json.js';
10
10
  import phrasesKo from './locales/nonViewable.ko.json.js';
11
11
 
12
- var StyledContainer = styled.div.withConfig({
12
+ const StyledContainer = styled.div.withConfig({
13
13
  componentId: "sc-l8149y-0"
14
14
  })(["display:flex;justify-content:center;align-items:center;width:100%;height:100%;"]);
15
- var StyledContainerContent = styled.div.withConfig({
15
+ const StyledContainerContent = styled.div.withConfig({
16
16
  componentId: "sc-l8149y-1"
17
17
  })(["display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1rem 1.5rem;width:100%;max-width:20rem;height:100%;text-align:center;"]);
18
- var StyledButton = styled(Button).withConfig({
18
+ const StyledButton = styled(Button).withConfig({
19
19
  componentId: "sc-l8149y-2"
20
20
  })(["display:block;margin:0 auto;"]);
21
- var StyledButtonsWrap = styled.div.withConfig({
21
+ const StyledButtonsWrap = styled.div.withConfig({
22
22
  componentId: "sc-l8149y-3"
23
23
  })(["text-align:center;> *{margin-bottom:0.5rem;&:last-child{margin-bottom:0;}}"]);
24
- var FileViewerNonViewable = function FileViewerNonViewable(_ref) {
25
- var filename = _ref.filename,
26
- fileurl = _ref.fileurl,
27
- onTextViewerClick = _ref.onTextViewerClick;
24
+ const FileViewerNonViewable = ({
25
+ filename,
26
+ fileurl,
27
+ onTextViewerClick
28
+ }) => {
28
29
  /**
29
30
  * Handle download button click.
30
31
  */
31
- var handleDownloadClick = function handleDownloadClick() {
32
+ const handleDownloadClick = () => {
32
33
  if (!fileurl) {
33
34
  return;
34
35
  }
35
- fetch(fileurl).then(function (res) {
36
- return res.blob();
37
- }).then(function (blob) {
38
- return FileSaver.saveAs(blob, filename);
39
- }).catch(function () {
40
- var win = window.open(fileurl, '_blank');
36
+ fetch(fileurl).then(res => res.blob()).then(blob => FileSaver.saveAs(blob, filename)).catch(() => {
37
+ const win = window.open(fileurl, '_blank');
41
38
  if (win) {
42
39
  win.focus();
43
40
  }
@@ -46,7 +43,7 @@ var FileViewerNonViewable = function FileViewerNonViewable(_ref) {
46
43
  /**
47
44
  * Download button.
48
45
  */
49
- var renderFileViewerDownloadButton = function renderFileViewerDownloadButton() {
46
+ const renderFileViewerDownloadButton = () => {
50
47
  if (!fileurl) {
51
48
  return null;
52
49
  }
@@ -63,7 +60,7 @@ var FileViewerNonViewable = function FileViewerNonViewable(_ref) {
63
60
  /**
64
61
  * Link for enable text editor.
65
62
  */
66
- var renderFileViewerTextEditorLink = function renderFileViewerTextEditorLink() {
63
+ const renderFileViewerTextEditorLink = () => {
67
64
  if (!fileurl || typeof onTextViewerClick !== 'function') {
68
65
  return null;
69
66
  }
@@ -103,7 +100,7 @@ var FileViewerNonViewable = function FileViewerNonViewable(_ref) {
103
100
  //
104
101
  //
105
102
  //
106
- var FileViewerNonViewable$1 = (function (props) {
103
+ var FileViewerNonViewable$1 = (props => {
107
104
  return React.createElement(MaterialIntlProvider, {
108
105
  locale: props.locale,
109
106
  phrases: {
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React from 'react';
3
2
  import { useRecoilValue } from 'recoil';
4
3
  import { exerciseEditorPreferenceState } from '../../material-exercise/context/recoil.js';
@@ -14,26 +13,19 @@ import '../exercise-shimmer/ExerciseFileTreeListItemShimmer.js';
14
13
  import MonacoEditorLazy from '../monaco-editor/MonacoEditorLazy.js';
15
14
  import '../monaco-editor/MonacoEditorPerferenceForm.js';
16
15
  import 'monaco-editor/esm/vs/editor/editor.api';
17
- import '../monaco-editor/constants/monaco/preferences.js';
18
16
 
19
- var FileViewerText = function FileViewerText(_ref) {
20
- var filename = _ref.filename,
21
- fileurl = _ref.fileurl,
22
- locale = _ref.locale;
23
- var preference = useRecoilValue(exerciseEditorPreferenceState);
24
- var _React$useState = React.useState(null),
25
- _React$useState2 = _slicedToArray(_React$useState, 2),
26
- content = _React$useState2[0],
27
- setContent = _React$useState2[1];
28
- React.useEffect(function () {
17
+ const FileViewerText = ({
18
+ filename,
19
+ fileurl,
20
+ locale
21
+ }) => {
22
+ const preference = useRecoilValue(exerciseEditorPreferenceState);
23
+ const [content, setContent] = React.useState(null);
24
+ React.useEffect(() => {
29
25
  if (!fileurl) {
30
26
  return;
31
27
  }
32
- fetch(fileurl).then(function (res) {
33
- return res.text();
34
- }).then(setContent).catch(function (err) {
35
- return console.error(err);
36
- });
28
+ fetch(fileurl).then(res => res.text()).then(setContent).catch(err => console.error(err));
37
29
  }, [fileurl]);
38
30
  //
39
31
  //
@@ -4,17 +4,18 @@ import { BorderlessDialog } from '@elice/blocks';
4
4
  import { eilMathsignMultiplyBasic } from '@elice/icons';
5
5
  import { StyledModalWrapper, StyledModalHeader, StyledModalBody, StyledModalFooter, StyledCloseButton } from './MaterialModal.styled.js';
6
6
 
7
- var MaterialModal = function MaterialModal(_ref) {
8
- var children = _ref.children,
9
- title = _ref.title,
10
- footer = _ref.footer,
11
- onHide = _ref.onHide;
12
- useKeyPressEvent('Escape', function () {
7
+ const MaterialModal = ({
8
+ children,
9
+ title,
10
+ footer,
11
+ onHide
12
+ }) => {
13
+ useKeyPressEvent('Escape', () => {
13
14
  if (typeof onHide === 'function') {
14
15
  onHide();
15
16
  }
16
17
  });
17
- var renderCloseButton = function renderCloseButton() {
18
+ const renderCloseButton = () => {
18
19
  if (!onHide) {
19
20
  return null;
20
21
  }
@@ -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
- var StyledModalWrapper = styled.div.withConfig({
5
+ const 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
- var StyledModalHeader = styled(Text).withConfig({
8
+ const 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
- var StyledModalBody = styled.div.withConfig({
11
+ const StyledModalBody = styled.div.withConfig({
12
12
  componentId: "sc-1ej7kso-2"
13
13
  })(["position:relative;flex:1 1 auto;width:100%;height:80%;"]);
14
- var StyledModalFooter = styled(Flex).withConfig({
14
+ const 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
- var StyledCloseButton = styled(IconButton).withConfig({
17
+ const 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