@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,37 +1,24 @@
1
- import { createForOfIteratorHelper as _createForOfIteratorHelper } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
-
3
1
  /**
4
2
  * Get file tab props.
5
3
  */
6
4
  function getTabProps(paths) {
7
- var tabs = [];
5
+ const tabs = [];
8
6
  // parse file paths
9
- var _iterator = _createForOfIteratorHelper(paths),
10
- _step;
11
- try {
12
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
13
- var path = _step.value;
14
- var chunks = path.split('/');
15
- var filename = chunks.pop();
16
- if (filename) {
17
- tabs.push({
18
- fullname: path,
19
- chunks: chunks,
20
- filename: filename,
21
- isFilenameDuplicated: false
22
- });
23
- }
7
+ for (const path of paths) {
8
+ const chunks = path.split('/');
9
+ const filename = chunks.pop();
10
+ if (filename) {
11
+ tabs.push({
12
+ fullname: path,
13
+ chunks,
14
+ filename,
15
+ isFilenameDuplicated: false
16
+ });
24
17
  }
25
- // check filename duplication
26
- } catch (err) {
27
- _iterator.e(err);
28
- } finally {
29
- _iterator.f();
30
18
  }
31
- tabs.forEach(function (thisTab) {
32
- thisTab.isFilenameDuplicated = tabs.filter(function (thatTab) {
33
- return thisTab.filename === thatTab.filename;
34
- }).length > 1;
19
+ // check filename duplication
20
+ tabs.forEach(thisTab => {
21
+ thisTab.isFilenameDuplicated = tabs.filter(thatTab => thisTab.filename === thatTab.filename).length > 1;
35
22
  });
36
23
  return tabs;
37
24
  }
@@ -10,13 +10,13 @@ import FileTreeConfig from './FileTreeConfig.js';
10
10
  import FileTreeList from './FileTreeList.js';
11
11
  import FileTreeToolbar from './FileTreeToolbar.js';
12
12
 
13
- var StyledFileTreeWrapper = styled.div.withConfig({
13
+ const StyledFileTreeWrapper = styled.div.withConfig({
14
14
  componentId: "sc-6ext2i-0"
15
15
  })(["display:flex;flex-direction:column;user-select:none;overflow:hidden;"]);
16
- var StyledLoading = styled.div.withConfig({
16
+ const StyledLoading = styled.div.withConfig({
17
17
  componentId: "sc-6ext2i-1"
18
18
  })(["position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:", ";opacity:0.5;width:100%;height:100%;display:flex;align-items:center;justify-content:center;z-index:100;"], base.color.navy7);
19
- var FileTree = function FileTree(props) {
19
+ const FileTree = props => {
20
20
  return React.createElement(MaterialIntlProvider, {
21
21
  locale: props.locale,
22
22
  phrases: {
@@ -5,23 +5,26 @@ import classnames from 'classnames';
5
5
  import styled from 'styled-components';
6
6
  import { useFileTreeState, useFileTreeDispatch } from './context/FileTreeContext.js';
7
7
 
8
- var StyledFileTreeConfig = styled.div.withConfig({
8
+ const StyledFileTreeConfig = styled.div.withConfig({
9
9
  componentId: "sc-1dxe3z0-0"
10
10
  })(["background-color:", ";padding:1rem;"], base.color.navy8);
11
- var FileTreeConfig = forwardRef(function (_ref, ref) {
12
- var className = _ref.className,
13
- style = _ref.style,
14
- onInitialOpenFileListChange = _ref.onInitialOpenFileListChange,
15
- initialOpenFilelist = _ref.initialOpenFilelist;
16
- var _useFileTreeState = useFileTreeState(),
17
- mode = _useFileTreeState.mode,
18
- initialOpenFileListTemp = _useFileTreeState.initialOpenFileListTemp;
19
- var _useFileTreeDispatch = useFileTreeDispatch(),
20
- dispatch = _useFileTreeDispatch.dispatch;
21
- React.useEffect(function () {
11
+ const FileTreeConfig = forwardRef(({
12
+ className,
13
+ style,
14
+ onInitialOpenFileListChange,
15
+ initialOpenFilelist
16
+ }, ref) => {
17
+ const {
18
+ mode,
19
+ initialOpenFileListTemp
20
+ } = useFileTreeState();
21
+ const {
22
+ dispatch
23
+ } = useFileTreeDispatch();
24
+ React.useEffect(() => {
22
25
  dispatch({
23
26
  type: 'INITIAL_OPEN_FILELIST_UPDATE',
24
- initialOpenFilelist: initialOpenFilelist
27
+ initialOpenFilelist
25
28
  });
26
29
  }, [dispatch, initialOpenFilelist]);
27
30
  return React.createElement(StyledFileTreeConfig, {
@@ -33,7 +36,7 @@ var FileTreeConfig = forwardRef(function (_ref, ref) {
33
36
  size: "small",
34
37
  role: "white",
35
38
  transparent: true,
36
- onClick: function onClick() {
39
+ onClick: () => {
37
40
  if ([
38
41
  // when mode changes from 'checkbox' to 'default'
39
42
  mode === 'checkbox',
@@ -48,7 +51,7 @@ var FileTreeConfig = forwardRef(function (_ref, ref) {
48
51
  mode: mode === 'checkbox' ? 'default' : 'checkbox'
49
52
  });
50
53
  }
51
- }, mode === 'default' ? "Initial Open Files(".concat(initialOpenFileListTemp.length, ")") : "Settings (".concat(initialOpenFileListTemp.length, ")")));
54
+ }, mode === 'default' ? `Initial Open Files(${initialOpenFileListTemp.length})` : `Settings (${initialOpenFileListTemp.length})`));
52
55
  });
53
56
  var FileTreeConfig$1 = FileTreeConfig;
54
57
 
@@ -8,35 +8,39 @@ import FileTreeListItems from './FileTreeListItems.js';
8
8
  import { validateFilesSize } from './utils/fileTreeFiles.js';
9
9
  import { isMovingTheSamePath } from './utils/fileTreePath.js';
10
10
 
11
- var StyledFileTreeList = styled.div.withConfig({
11
+ const StyledFileTreeList = styled.div.withConfig({
12
12
  componentId: "sc-5ddw80-0"
13
13
  })(["flex:auto;background-color:", ";overflow-x:hidden;overflow-y:overlay;", ""], base.color.navy9, getMaterialScrollBarCss({
14
14
  width: '0.375rem',
15
15
  borderRadius: '2px',
16
16
  hideable: true
17
17
  }));
18
- var FileTreeList = forwardRef(function (_ref, ref) {
19
- var className = _ref.className,
20
- style = _ref.style,
21
- options = _ref.options;
22
- var _useFileTreeState = useFileTreeState(),
23
- fileTree = _useFileTreeState.fileTree,
24
- dropzonePath = _useFileTreeState.dropzonePath,
25
- draggedPath = _useFileTreeState.draggedPath,
26
- maxFileUploadSize = _useFileTreeState.maxFileUploadSize;
27
- var _useFileTreeDispatch = useFileTreeDispatch(),
28
- dispatch = _useFileTreeDispatch.dispatch,
29
- onDirectoryMove = _useFileTreeDispatch.onDirectoryMove,
30
- onFileMove = _useFileTreeDispatch.onFileMove,
31
- onFilesUpload = _useFileTreeDispatch.onFilesUpload;
32
- var handleFilesUpload = function handleFilesUpload(_ref2) {
33
- var files = _ref2.files,
34
- path = _ref2.path;
18
+ const FileTreeList = forwardRef(({
19
+ className,
20
+ style,
21
+ options
22
+ }, ref) => {
23
+ const {
24
+ fileTree,
25
+ dropzonePath,
26
+ draggedPath,
27
+ maxFileUploadSize
28
+ } = useFileTreeState();
29
+ const {
30
+ dispatch,
31
+ onDirectoryMove,
32
+ onFileMove,
33
+ onFilesUpload
34
+ } = useFileTreeDispatch();
35
+ const handleFilesUpload = ({
36
+ files,
37
+ path
38
+ }) => {
35
39
  if (validateFilesSize(files, maxFileUploadSize)) {
36
40
  if (typeof onFilesUpload === 'function') {
37
41
  onFilesUpload({
38
- files: files,
39
- path: path
42
+ files,
43
+ path
40
44
  });
41
45
  }
42
46
  }
@@ -48,10 +52,10 @@ var FileTreeList = forwardRef(function (_ref, ref) {
48
52
  style: Object.assign({
49
53
  backgroundColor: dropzonePath === '' ? base.color.primary7 : ''
50
54
  }, style),
51
- onDragEnter: function onDragEnter(e) {
55
+ onDragEnter: e => {
52
56
  e.preventDefault();
53
57
  e.stopPropagation();
54
- var isFiles = e.dataTransfer.types[0] === 'Files';
58
+ const isFiles = e.dataTransfer.types[0] === 'Files';
55
59
  if (draggedPath !== null || isFiles) {
56
60
  dispatch({
57
61
  type: 'UPDATE_DROPZONE_PATH',
@@ -59,14 +63,14 @@ var FileTreeList = forwardRef(function (_ref, ref) {
59
63
  });
60
64
  }
61
65
  },
62
- onDragOver: function onDragOver(e) {
66
+ onDragOver: e => {
63
67
  e.preventDefault();
64
68
  e.stopPropagation();
65
69
  },
66
- onDrop: function onDrop(e) {
70
+ onDrop: e => {
67
71
  e.stopPropagation();
68
72
  e.preventDefault();
69
- var draggedPath = e.dataTransfer.getData('text');
73
+ const draggedPath = e.dataTransfer.getData('text');
70
74
  // file drop
71
75
  if (e.dataTransfer.files.length > 0) {
72
76
  handleFilesUpload({
@@ -83,12 +87,12 @@ var FileTreeList = forwardRef(function (_ref, ref) {
83
87
  });
84
88
  } else {
85
89
  // file move
86
- var dragFileTreeNode = fileTree.findTreeNode(draggedPath);
90
+ const dragFileTreeNode = fileTree.findTreeNode(draggedPath);
87
91
  // file does not move. from a to a (the same path).
88
92
  if (isMovingTheSamePath({
89
- draggedPath: draggedPath,
90
- dropzonePath: dropzonePath,
91
- dragFileTreeNode: dragFileTreeNode
93
+ draggedPath,
94
+ dropzonePath,
95
+ dragFileTreeNode
92
96
  })) {
93
97
  return;
94
98
  }
@@ -1,4 +1,3 @@
1
- import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React from 'react';
3
2
  import { Icon, Checkbox } from '@elice/blocks';
4
3
  import { base } from '@elice/design-tokens';
@@ -9,48 +8,45 @@ import FileTreeListItemContentInput from './FileTreeListItemContentInput.js';
9
8
  import FileTreeListItemContentMenu from './FileTreeListItemContentMenu.js';
10
9
  import { StyledContentIndents, StyledContentIndentGuide, StyledContent, StyledContentLabel, StyledContentLabelDirArrowWrap, StyledContentLabelIconWrap, StyledContentLabelFilename, StyledContentLabelStatusIcon, StyledContentLabelMenuButton } from './FileTreeListItemContent.styled.js';
11
10
 
12
- var ITEM_IDENT_WIDTH = 8; // 0.5rem
13
- var FileTreeListItemContent = function FileTreeListItemContent(_ref) {
14
- var node = _ref.node,
15
- parentNode = _ref.parentNode,
16
- _ref$indent = _ref.indent,
17
- indent = _ref$indent === void 0 ? 1 : _ref$indent;
18
- var _useFileTreeState = useFileTreeState(),
19
- mode = _useFileTreeState.mode,
20
- activePath = _useFileTreeState.activePath,
21
- dropzonePath = _useFileTreeState.dropzonePath,
22
- newInput = _useFileTreeState.newInput;
23
- var _useFileTreeDispatch = useFileTreeDispatch(),
24
- dispatch = _useFileTreeDispatch.dispatch,
25
- onActivePathChange = _useFileTreeDispatch.onActivePathChange;
26
- var _React$useState = React.useState(),
27
- _React$useState2 = _slicedToArray(_React$useState, 2),
28
- menuAnchorEl = _React$useState2[0],
29
- setMenuAnchorEl = _React$useState2[1];
30
- var isNewItem = newInput && node.isEdit;
11
+ const ITEM_IDENT_WIDTH = 8; // 0.5rem
12
+ const FileTreeListItemContent = ({
13
+ node,
14
+ parentNode,
15
+ indent = 1
16
+ }) => {
17
+ const {
18
+ mode,
19
+ activePath,
20
+ dropzonePath,
21
+ newInput
22
+ } = useFileTreeState();
23
+ const {
24
+ dispatch,
25
+ onActivePathChange
26
+ } = useFileTreeDispatch();
27
+ const [menuAnchorEl, setMenuAnchorEl] = React.useState();
28
+ const isNewItem = newInput && node.isEdit;
31
29
  /**
32
30
  * Indent.
33
31
  */
34
- var contentIndents = React.useMemo(function () {
35
- var depth = (node.path.match(/\//g) || []).length;
36
- var counts = depth === 0 ? 0 : indent * depth;
32
+ const contentIndents = React.useMemo(() => {
33
+ const depth = (node.path.match(/\//g) || []).length;
34
+ const counts = depth === 0 ? 0 : indent * depth;
37
35
  return React.createElement(StyledContentIndents, {
38
36
  style: {
39
- flex: "0 0 ".concat(ITEM_IDENT_WIDTH * counts, "px")
37
+ flex: `0 0 ${ITEM_IDENT_WIDTH * counts}px`
40
38
  }
41
- }, Array(counts).fill(0).map(function (_, index) {
42
- return React.createElement(StyledContentIndentGuide, {
43
- key: index,
44
- style: {
45
- width: "".concat(ITEM_IDENT_WIDTH, "px")
46
- }
47
- });
48
- }));
39
+ }, Array(counts).fill(0).map((_, index) => React.createElement(StyledContentIndentGuide, {
40
+ key: index,
41
+ style: {
42
+ width: `${ITEM_IDENT_WIDTH}px`
43
+ }
44
+ })));
49
45
  }, [node, indent]);
50
46
  /**
51
47
  * Handle item click.
52
48
  */
53
- var handleClick = function handleClick() {
49
+ const handleClick = () => {
54
50
  if (node.isEdit) {
55
51
  return;
56
52
  }
@@ -65,7 +61,7 @@ var FileTreeListItemContent = function FileTreeListItemContent(_ref) {
65
61
  /**
66
62
  * Handle item right-click.
67
63
  */
68
- var handleContextMenu = function handleContextMenu(e) {
64
+ const handleContextMenu = e => {
69
65
  e.preventDefault();
70
66
  setMenuAnchorEl({
71
67
  x: e.clientX,
@@ -75,7 +71,7 @@ var FileTreeListItemContent = function FileTreeListItemContent(_ref) {
75
71
  /**
76
72
  * Directory expand arrow.
77
73
  */
78
- var renderContentDirectoryExpandArrow = function renderContentDirectoryExpandArrow() {
74
+ const renderContentDirectoryExpandArrow = () => {
79
75
  // new or directory
80
76
  if (isNewItem || !node.isDirectory) {
81
77
  return React.createElement(StyledContentLabelDirArrowWrap, null);
@@ -90,7 +86,7 @@ var FileTreeListItemContent = function FileTreeListItemContent(_ref) {
90
86
  /**
91
87
  * Icon.
92
88
  */
93
- var renderContentIcon = function renderContentIcon() {
89
+ const renderContentIcon = () => {
94
90
  // new
95
91
  if (isNewItem) {
96
92
  return React.createElement(StyledContentLabelIconWrap, null, React.createElement(FileIcon, {
@@ -105,7 +101,7 @@ var FileTreeListItemContent = function FileTreeListItemContent(_ref) {
105
101
  return React.createElement(StyledContentLabelIconWrap, null, React.createElement(Checkbox, {
106
102
  value: node.isInitialOpen,
107
103
  dark: true,
108
- onChange: function onChange(checked) {
104
+ onChange: checked => {
109
105
  dispatch({
110
106
  type: checked ? 'INITIAL_OPEN_FILELIST_ADD' : 'INITIAL_OPEN_FILELIST_REMOVE',
111
107
  path: node.path
@@ -124,7 +120,7 @@ var FileTreeListItemContent = function FileTreeListItemContent(_ref) {
124
120
  /**
125
121
  * Filename.
126
122
  */
127
- var renderContentFilename = function renderContentFilename() {
123
+ const renderContentFilename = () => {
128
124
  var _a;
129
125
  // new
130
126
  if (isNewItem) {
@@ -132,10 +128,9 @@ var FileTreeListItemContent = function FileTreeListItemContent(_ref) {
132
128
  type: "new",
133
129
  newInputType: (_a = newInput === null || newInput === void 0 ? void 0 : newInput.type) !== null && _a !== void 0 ? _a : 'file',
134
130
  currentPath: node.path,
135
- currentDirTitleList: parentNode.children.map(function (_ref2) {
136
- var title = _ref2.title;
137
- return title;
138
- })
131
+ currentDirTitleList: parentNode.children.map(({
132
+ title
133
+ }) => title)
139
134
  });
140
135
  }
141
136
  // rename
@@ -145,12 +140,9 @@ var FileTreeListItemContent = function FileTreeListItemContent(_ref) {
145
140
  initialValue: node.title,
146
141
  newInputType: node.isDirectory ? 'directory' : 'file',
147
142
  currentPath: node.path,
148
- currentDirTitleList: parentNode.children.map(function (_ref3) {
149
- var title = _ref3.title;
150
- return title;
151
- }).filter(function (title) {
152
- return title !== node.title;
153
- })
143
+ currentDirTitleList: parentNode.children.map(({
144
+ title
145
+ }) => title).filter(title => title !== node.title)
154
146
  });
155
147
  }
156
148
  return React.createElement(StyledContentLabelFilename, {
@@ -162,7 +154,7 @@ var FileTreeListItemContent = function FileTreeListItemContent(_ref) {
162
154
  /**
163
155
  * Status icon.
164
156
  */
165
- var renderContentStatusIcon = function renderContentStatusIcon() {
157
+ const renderContentStatusIcon = () => {
166
158
  // new or rename
167
159
  if (isNewItem || node.isRenaming) {
168
160
  return null;
@@ -188,7 +180,7 @@ var FileTreeListItemContent = function FileTreeListItemContent(_ref) {
188
180
  /**
189
181
  * Menu button.
190
182
  */
191
- var renderContentMenuButton = function renderContentMenuButton() {
183
+ const renderContentMenuButton = () => {
192
184
  // new or rename
193
185
  if (isNewItem || node.isRenaming) {
194
186
  return null;
@@ -199,23 +191,21 @@ var FileTreeListItemContent = function FileTreeListItemContent(_ref) {
199
191
  role: "white",
200
192
  transparent: true,
201
193
  border: false,
202
- onClick: function onClick(e) {
194
+ onClick: e => {
203
195
  e.stopPropagation();
204
196
  setMenuAnchorEl(e.currentTarget);
205
197
  }
206
198
  }), React.createElement(FileTreeListItemContentMenu, {
207
199
  node: node,
208
200
  anchorEl: menuAnchorEl,
209
- onClose: function onClose() {
210
- return setMenuAnchorEl(undefined);
211
- }
201
+ onClose: () => setMenuAnchorEl(undefined)
212
202
  }));
213
203
  };
214
204
  //
215
205
  //
216
206
  //
217
207
  return React.createElement(StyledContent, {
218
- title: "~/".concat(node.path),
208
+ title: `~/${node.path}`,
219
209
  active: activePath === node.path,
220
210
  isDragging: dropzonePath !== null,
221
211
  onClick: handleClick,
@@ -5,74 +5,70 @@ import styled, { css } from 'styled-components';
5
5
  //
6
6
  //
7
7
  //
8
- var CONTENT_MIN_HEIGHT = 28; // 1.75rem
9
- var CONTENT_LEFT_BORDER_WIDTH = 3; // 0.1875rem
10
- var CONTENT_RIGHT_PADDING = 12; // 0.75rem
11
- var CONTENT_LABEL_VERTICAL_PADDING = 4; // 0.25rem
12
- var CONTENT_LABEL_ICON_SIZE = 16; // 1rem
13
- var CONTENT_LABEL_ICON_AFTER_MARGIN = 4; // 1rem
14
- var CONTENT_LABEL_DIR_ARROW_PADDING = 4; // 0.25rem
15
- var CONTENT_LABEL_DIR_ARROW_SIZE = 12; // 0.75rem
16
- var CONTENT_LABEL_MENU_BUTTON_SIZE = CONTENT_MIN_HEIGHT - CONTENT_LABEL_VERTICAL_PADDING * 2;
8
+ const CONTENT_MIN_HEIGHT = 28; // 1.75rem
9
+ const CONTENT_LEFT_BORDER_WIDTH = 3; // 0.1875rem
10
+ const CONTENT_RIGHT_PADDING = 12; // 0.75rem
11
+ const CONTENT_LABEL_VERTICAL_PADDING = 4; // 0.25rem
12
+ const CONTENT_LABEL_ICON_SIZE = 16; // 1rem
13
+ const CONTENT_LABEL_ICON_AFTER_MARGIN = 4; // 1rem
14
+ const CONTENT_LABEL_DIR_ARROW_PADDING = 4; // 0.25rem
15
+ const CONTENT_LABEL_DIR_ARROW_SIZE = 12; // 0.75rem
16
+ const CONTENT_LABEL_MENU_BUTTON_SIZE = CONTENT_MIN_HEIGHT - CONTENT_LABEL_VERTICAL_PADDING * 2;
17
17
  //
18
18
  //
19
19
  //
20
20
  /**
21
21
  * indent
22
22
  */
23
- var StyledContentIndents = styled.div.withConfig({
23
+ const StyledContentIndents = styled.div.withConfig({
24
24
  componentId: "sc-3wfxns-0"
25
25
  })([""]);
26
- var StyledContentIndentGuide = styled.div.withConfig({
26
+ const StyledContentIndentGuide = styled.div.withConfig({
27
27
  componentId: "sc-3wfxns-1"
28
28
  })(["display:inline-block;height:100%;border-right:0.5px solid ", ";"], base.color.gray7);
29
29
  /**
30
30
  * label
31
31
  */
32
- var StyledContentLabel = styled.div.withConfig({
32
+ const StyledContentLabel = styled.div.withConfig({
33
33
  componentId: "sc-3wfxns-2"
34
34
  })(["flex:1;display:flex;align-items:center;padding-top:", "px;padding-bottom:", "px;overflow:hidden;"], CONTENT_LABEL_VERTICAL_PADDING, CONTENT_LABEL_VERTICAL_PADDING);
35
35
  /**
36
36
  * label > dir arrow
37
37
  */
38
- var StyledContentLabelDirArrowWrap = styled.div.withConfig({
38
+ const StyledContentLabelDirArrowWrap = styled.div.withConfig({
39
39
  componentId: "sc-3wfxns-3"
40
40
  })(["flex:0 0 ", "px;display:flex;justify-content:center;align-items:center;padding:", ";height:", "px;"], CONTENT_LABEL_DIR_ARROW_SIZE + CONTENT_LABEL_DIR_ARROW_PADDING * 2, CONTENT_LABEL_DIR_ARROW_PADDING, CONTENT_LABEL_DIR_ARROW_SIZE);
41
41
  /**
42
42
  * label > icon
43
43
  */
44
- var StyledContentLabelIconWrap = styled.div.withConfig({
44
+ const StyledContentLabelIconWrap = styled.div.withConfig({
45
45
  componentId: "sc-3wfxns-4"
46
46
  })(["flex:0 0 ", "px;display:flex;margin-right:", "px;height:", "px;"], CONTENT_LABEL_ICON_SIZE + CONTENT_LABEL_ICON_AFTER_MARGIN, CONTENT_LABEL_ICON_AFTER_MARGIN, CONTENT_LABEL_ICON_SIZE);
47
47
  /**
48
48
  * label > filename
49
49
  */
50
- var StyledContentLabelFilename = styled(Text).withConfig({
50
+ const StyledContentLabelFilename = styled(Text).withConfig({
51
51
  componentId: "sc-3wfxns-5"
52
52
  })(["flex:1;margin-right:0.125rem;color:", ";font-weight:500;"], base.color.gray4);
53
53
  /**
54
54
  * label > status icon
55
55
  */
56
- var StyledContentLabelStatusIcon = styled(Icon).withConfig({
56
+ const StyledContentLabelStatusIcon = styled(Icon).withConfig({
57
57
  componentId: "sc-3wfxns-6"
58
58
  })(["margin-left:0.25rem;margin-right:0;&:last-of-type{margin-right:0.25rem;}"]);
59
59
  /**
60
60
  * label > menu button
61
61
  */
62
- var StyledContentLabelMenuButton = styled(IconButton).withConfig({
62
+ const StyledContentLabelMenuButton = styled(IconButton).withConfig({
63
63
  componentId: "sc-3wfxns-7"
64
64
  })(["flex:0 0 ", "px;width:", "px !important;height:", "px !important;opacity:0;transition:opacity 150ms ease-in-out;"], CONTENT_LABEL_MENU_BUTTON_SIZE, CONTENT_LABEL_MENU_BUTTON_SIZE, CONTENT_LABEL_MENU_BUTTON_SIZE);
65
65
  //
66
66
  //
67
67
  //
68
- var cssStyledContentActive = css(["border-left-color:", ";background-color:", ";", "{color:", ";}"], base.color.primary4, base.color.navy7, StyledContentLabelFilename, base.color.gray3);
69
- var cssStyledContentDragging = css(["border-left-color:transparent !important;background-color:transparent !important;"]);
70
- var StyledContent = styled.div.withConfig({
68
+ const cssStyledContentActive = css(["border-left-color:", ";background-color:", ";", "{color:", ";}"], base.color.primary4, base.color.navy7, StyledContentLabelFilename, base.color.gray3);
69
+ const cssStyledContentDragging = css(["border-left-color:transparent !important;background-color:transparent !important;"]);
70
+ const StyledContent = styled.div.withConfig({
71
71
  componentId: "sc-3wfxns-8"
72
- })(["display:flex;padding-right:", "px;width:100%;min-width:0;min-height:", "px;border-left-width:", "px;border-left-style:solid;border-left-color:transparent;user-select:none;", " ", " &:hover{background-color:", ";", "{color:", ";}", "{opacity:1;}}"], CONTENT_RIGHT_PADDING, CONTENT_MIN_HEIGHT, CONTENT_LEFT_BORDER_WIDTH, function (props) {
73
- return props.active && cssStyledContentActive;
74
- }, function (props) {
75
- return props.isDragging && cssStyledContentDragging;
76
- }, base.color.navy8, StyledContentLabelFilename, base.color.gray3, StyledContentLabelMenuButton);
72
+ })(["display:flex;padding-right:", "px;width:100%;min-width:0;min-height:", "px;border-left-width:", "px;border-left-style:solid;border-left-color:transparent;user-select:none;", " ", " &:hover{background-color:", ";", "{color:", ";}", "{opacity:1;}}"], CONTENT_RIGHT_PADDING, CONTENT_MIN_HEIGHT, CONTENT_LEFT_BORDER_WIDTH, props => props.active && cssStyledContentActive, props => props.isDragging && cssStyledContentDragging, base.color.navy8, StyledContentLabelFilename, base.color.gray3, StyledContentLabelMenuButton);
77
73
 
78
74
  export { StyledContent, StyledContentIndentGuide, StyledContentIndents, StyledContentLabel, StyledContentLabelDirArrowWrap, StyledContentLabelFilename, StyledContentLabelIconWrap, StyledContentLabelMenuButton, StyledContentLabelStatusIcon };