@elice/material-exercise 1.230325.0 → 1.230418.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/cjs/_virtual/_rollupPluginBabelHelpers.js +526 -0
  2. package/cjs/components/material-exercise/MaterialExercise.js +44 -63
  3. package/cjs/components/material-exercise/MaterialExercise.styled.js +20 -23
  4. package/cjs/components/material-exercise/MaterialExerciseMobile.js +19 -15
  5. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  6. package/cjs/components/material-exercise/context/ExerciseProvider.js +83 -81
  7. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +16 -16
  8. package/cjs/components/material-exercise/context/context.js +1 -1
  9. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +3 -1
  10. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +3 -1
  11. package/cjs/components/material-exercise/context/recoil.d.ts +2 -1
  12. package/cjs/components/material-exercise/context/recoil.js +562 -373
  13. package/cjs/components/material-exercise/context/recoilTypes.js +0 -5
  14. package/cjs/components/material-exercise/context/subjects.js +3 -6
  15. package/cjs/components/material-exercise/context/types.d.ts +8 -1
  16. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  17. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -65
  18. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  19. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +7 -0
  20. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +7 -0
  21. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +20 -21
  22. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +228 -199
  23. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -10
  24. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +35 -32
  25. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +57 -48
  26. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
  27. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -1
  28. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -1
  29. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +327 -231
  30. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
  31. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +3 -1
  32. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +3 -1
  33. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +17 -17
  34. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -14
  35. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -6
  36. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +47 -38
  37. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +60 -42
  38. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +29 -22
  39. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +45 -56
  40. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  41. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +3 -1
  42. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +3 -1
  43. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -20
  44. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +5 -3
  45. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +30 -41
  46. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +17 -12
  47. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +3 -1
  48. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +3 -1
  49. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +24 -33
  50. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +13 -8
  51. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +84 -83
  52. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +3 -1
  53. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +3 -1
  54. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +20 -12
  55. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  56. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +239 -147
  57. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +92 -63
  58. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  59. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +3 -1
  60. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +3 -1
  61. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +224 -223
  62. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  63. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -13
  64. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +30 -26
  65. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +26 -26
  66. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +79 -95
  67. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +27 -27
  68. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +54 -60
  69. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +5 -5
  70. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -13
  71. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +29 -26
  72. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +3 -1
  73. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +3 -1
  74. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  75. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +290 -180
  76. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  77. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -45
  78. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +7 -0
  79. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +7 -0
  80. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +19 -17
  81. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +5 -4
  82. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +15 -14
  83. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +7 -6
  84. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +17 -16
  85. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +18 -11
  86. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -4
  87. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  88. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -7
  89. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  90. package/cjs/components/shared/file-icon/FileIcon.js +23 -23
  91. package/cjs/components/shared/file-tabs/FileTab.js +32 -43
  92. package/cjs/components/shared/file-tabs/FileTab.styled.js +26 -22
  93. package/cjs/components/shared/file-tabs/FileTabs.js +55 -49
  94. package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -2
  95. package/cjs/components/shared/file-tabs/util.js +29 -18
  96. package/cjs/components/shared/file-tree/FileTree.js +11 -11
  97. package/cjs/components/shared/file-tree/FileTreeConfig.js +24 -23
  98. package/cjs/components/shared/file-tree/FileTreeList.js +35 -41
  99. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +75 -91
  100. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  101. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +77 -101
  102. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  103. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +51 -86
  104. package/cjs/components/shared/file-tree/FileTreeListItems.js +150 -153
  105. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  106. package/cjs/components/shared/file-tree/FileTreeToolbar.js +30 -41
  107. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  108. package/cjs/components/shared/file-tree/context/FileTreeContext.js +91 -97
  109. package/cjs/components/shared/file-tree/locales/en.json.js +3 -1
  110. package/cjs/components/shared/file-tree/locales/ko.json.js +3 -1
  111. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  112. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  113. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  114. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  115. package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -7
  116. package/cjs/components/shared/file-viewer/FileViewer.js +59 -60
  117. package/cjs/components/shared/file-viewer/FileViewerCsv.js +145 -101
  118. package/cjs/components/shared/file-viewer/FileViewerImage.js +7 -8
  119. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +20 -14
  120. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +28 -34
  121. package/cjs/components/shared/file-viewer/FileViewerText.js +23 -16
  122. package/cjs/components/shared/file-viewer/locales/en.json.js +3 -1
  123. package/cjs/components/shared/file-viewer/locales/ko.json.js +3 -1
  124. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +3 -1
  125. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +3 -1
  126. package/cjs/components/shared/material-modal/MaterialModal.js +10 -12
  127. package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -5
  128. package/cjs/components/shared/monaco-editor/MonacoEditor.js +123 -149
  129. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +10 -8
  130. package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -58
  131. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +78 -85
  132. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  133. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  134. package/cjs/components/shared/monaco-editor/constants/themes/index.js +80 -32
  135. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  136. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  137. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  138. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  139. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  140. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  141. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +36 -12
  142. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +5 -8
  143. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +36 -12
  144. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -6
  145. package/cjs/components/shared/monaco-editor/editor-languages/index.js +3 -1
  146. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  147. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +3 -2
  148. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +3 -2
  149. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +3 -2
  150. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +36 -12
  151. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +18 -24
  152. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  153. package/cjs/components/shared/monaco-editor/locales/en.json.js +3 -1
  154. package/cjs/components/shared/monaco-editor/locales/ko.json.js +3 -1
  155. package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  156. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  157. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  158. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +70 -32
  159. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  160. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  161. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  162. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  163. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  164. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +30 -9
  165. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  166. package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -5
  167. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  168. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  169. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  170. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  171. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  172. package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  173. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  174. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  175. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +218 -329
  176. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  177. package/cjs/components/shared/no-vnc/NoVnc.js +93 -90
  178. package/cjs/components/shared/no-vnc/NoVncLazy.js +7 -5
  179. package/cjs/components/shared/preview-container/PreviewContainer.js +7 -10
  180. package/cjs/components/shared/web-browser/WebBrowser.js +54 -59
  181. package/cjs/components/shared/xterm/Xterm.js +112 -105
  182. package/cjs/components/shared/xterm/XtermLazy.js +7 -5
  183. package/cjs/components/shared/xterm/locales/en.json.js +3 -1
  184. package/cjs/components/shared/xterm/locales/ko.json.js +3 -1
  185. package/cjs/constants/arduino.js +10 -10
  186. package/cjs/constants/shortcutKeyMap.js +5 -5
  187. package/cjs/constants/stylesheets.js +7 -10
  188. package/cjs/hooks/useArduino.js +327 -255
  189. package/cjs/hooks/useExerciseFile.js +24 -24
  190. package/cjs/hooks/useExericseShortcut.js +6 -5
  191. package/cjs/hooks/useMaterialExerciseFileUrl.js +54 -37
  192. package/cjs/hooks/useRunnerRoomWebSocket.js +58 -56
  193. package/cjs/hooks/useStdioTextConcator.js +18 -12
  194. package/cjs/hooks/useStdioWebSocket.js +41 -67
  195. package/cjs/hooks/useUsercodeEditWebSocket.js +230 -252
  196. package/cjs/hooks/useUsercodeHistory.js +121 -82
  197. package/cjs/index.js +4 -4
  198. package/cjs/utils/arduino.js +23 -25
  199. package/cjs/utils/exerciseFile.js +8 -16
  200. package/cjs/utils/runner.js +29 -25
  201. package/es/_virtual/_rollupPluginBabelHelpers.js +504 -0
  202. package/es/components/material-exercise/MaterialExercise.js +33 -54
  203. package/es/components/material-exercise/MaterialExercise.styled.js +20 -23
  204. package/es/components/material-exercise/MaterialExerciseMobile.js +15 -13
  205. package/es/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
  206. package/es/components/material-exercise/context/ExerciseProvider.js +79 -79
  207. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +11 -13
  208. package/es/components/material-exercise/context/context.js +1 -1
  209. package/es/components/material-exercise/context/recoil.d.ts +2 -1
  210. package/es/components/material-exercise/context/recoil.js +563 -374
  211. package/es/components/material-exercise/context/recoilTypes.js +0 -5
  212. package/es/components/material-exercise/context/subjects.js +3 -6
  213. package/es/components/material-exercise/context/types.d.ts +8 -1
  214. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
  215. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +73 -62
  216. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
  217. package/es/components/material-exercise/exercise-code-history/locales/en.json.js +3 -0
  218. package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +3 -0
  219. package/es/components/material-exercise/exercise-file/ExerciseFile.js +15 -18
  220. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +222 -195
  221. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -9
  222. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +31 -28
  223. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +52 -45
  224. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
  225. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +321 -225
  226. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
  227. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +12 -14
  228. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -10
  229. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -5
  230. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +43 -36
  231. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +53 -37
  232. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +25 -20
  233. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +41 -54
  234. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
  235. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +25 -19
  236. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
  237. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +21 -34
  238. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -10
  239. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +17 -28
  240. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +9 -6
  241. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +81 -82
  242. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +13 -7
  243. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
  244. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +236 -146
  245. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +90 -63
  246. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
  247. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +218 -219
  248. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
  249. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +7 -9
  250. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +27 -25
  251. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +22 -24
  252. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +76 -94
  253. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +24 -26
  254. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +51 -59
  255. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -4
  256. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +6 -11
  257. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +26 -25
  258. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
  259. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +284 -174
  260. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
  261. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +38 -44
  262. package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +3 -0
  263. package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +3 -0
  264. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +16 -16
  265. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -3
  266. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -13
  267. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -3
  268. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -15
  269. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +15 -10
  270. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +2 -3
  271. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
  272. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +5 -6
  273. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
  274. package/es/components/shared/file-icon/FileIcon.js +20 -22
  275. package/es/components/shared/file-tabs/FileTab.js +28 -41
  276. package/es/components/shared/file-tabs/FileTab.styled.js +26 -22
  277. package/es/components/shared/file-tabs/FileTabs.js +52 -48
  278. package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
  279. package/es/components/shared/file-tabs/util.js +29 -18
  280. package/es/components/shared/file-tree/FileTree.js +3 -5
  281. package/es/components/shared/file-tree/FileTreeConfig.js +21 -22
  282. package/es/components/shared/file-tree/FileTreeList.js +31 -39
  283. package/es/components/shared/file-tree/FileTreeListItemContent.js +67 -85
  284. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
  285. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +74 -100
  286. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
  287. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +48 -85
  288. package/es/components/shared/file-tree/FileTreeListItems.js +147 -152
  289. package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
  290. package/es/components/shared/file-tree/FileTreeToolbar.js +24 -37
  291. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
  292. package/es/components/shared/file-tree/context/FileTreeContext.js +91 -97
  293. package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
  294. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
  295. package/es/components/shared/file-tree/utils/fileTreeInput.js +0 -1
  296. package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
  297. package/es/components/shared/file-tree/utils/fileTreePath.js +5 -7
  298. package/es/components/shared/file-viewer/FileViewer.js +52 -53
  299. package/es/components/shared/file-viewer/FileViewerCsv.js +141 -99
  300. package/es/components/shared/file-viewer/FileViewerImage.js +3 -6
  301. package/es/components/shared/file-viewer/FileViewerIpynb.js +16 -12
  302. package/es/components/shared/file-viewer/FileViewerNonViewable.js +22 -30
  303. package/es/components/shared/file-viewer/FileViewerText.js +18 -13
  304. package/es/components/shared/material-modal/MaterialModal.js +7 -11
  305. package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
  306. package/es/components/shared/monaco-editor/MonacoEditor.js +119 -147
  307. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +6 -4
  308. package/es/components/shared/monaco-editor/MonacoEditorMobile.js +45 -56
  309. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +73 -82
  310. package/es/components/shared/monaco-editor/constants/grammars/index.js +131 -52
  311. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
  312. package/es/components/shared/monaco-editor/constants/themes/index.js +80 -32
  313. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
  314. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
  315. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
  316. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
  317. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
  318. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
  319. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -11
  320. package/es/components/shared/monaco-editor/editor-languages/css/index.js +2 -5
  321. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -11
  322. package/es/components/shared/monaco-editor/editor-languages/html/index.js +2 -5
  323. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
  324. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +0 -1
  325. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +0 -1
  326. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +0 -1
  327. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +33 -11
  328. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -16
  329. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
  330. package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
  331. package/es/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
  332. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
  333. package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -31
  334. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
  335. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
  336. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
  337. package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
  338. package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -3
  339. package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -8
  340. package/es/components/shared/monaco-editor/utils/theme/convert.js +20 -26
  341. package/es/components/shared/monaco-editor/utils/theme/index.js +22 -5
  342. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
  343. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
  344. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
  345. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
  346. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
  347. package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
  348. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
  349. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
  350. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +219 -330
  351. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
  352. package/es/components/shared/no-vnc/NoVnc.js +89 -88
  353. package/es/components/shared/no-vnc/NoVncLazy.js +4 -2
  354. package/es/components/shared/preview-container/PreviewContainer.js +7 -10
  355. package/es/components/shared/web-browser/WebBrowser.js +49 -56
  356. package/es/components/shared/xterm/Xterm.js +107 -102
  357. package/es/components/shared/xterm/XtermLazy.js +4 -2
  358. package/es/constants/arduino.js +10 -10
  359. package/es/constants/shortcutKeyMap.js +3 -5
  360. package/es/constants/stylesheets.js +7 -10
  361. package/es/hooks/useArduino.js +327 -255
  362. package/es/hooks/useExerciseFile.js +24 -24
  363. package/es/hooks/useExericseShortcut.js +6 -5
  364. package/es/hooks/useMaterialExerciseFileUrl.js +55 -38
  365. package/es/hooks/useRunnerRoomWebSocket.js +58 -56
  366. package/es/hooks/useStdioTextConcator.js +18 -12
  367. package/es/hooks/useStdioWebSocket.js +41 -67
  368. package/es/hooks/useUsercodeEditWebSocket.js +230 -252
  369. package/es/hooks/useUsercodeHistory.js +122 -83
  370. package/es/utils/arduino.js +23 -25
  371. package/es/utils/exerciseFile.js +8 -16
  372. package/es/utils/runner.js +29 -25
  373. package/package.json +8 -8
@@ -1,5 +1,8 @@
1
1
  'use strict';
2
2
 
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
3
6
  var React = require('react');
4
7
  var reactIntl = require('react-intl');
5
8
  var blocks = require('@elice/blocks');
@@ -20,82 +23,86 @@ var FileViewerNonViewable = require('./FileViewerNonViewable.js');
20
23
 
21
24
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
25
 
23
- function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, 'default': e }); }
24
-
25
26
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
26
27
  var FileSaver__default = /*#__PURE__*/_interopDefaultLegacy(FileSaver);
27
28
  var mime__default = /*#__PURE__*/_interopDefaultLegacy(mime);
28
29
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
29
30
 
30
- const AsyncFileViewerCsv = React__default["default"].lazy(() => Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./FileViewerCsv.js')); }));
31
- const AsyncFileViewerImage = React__default["default"].lazy(() => Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./FileViewerImage.js')); }));
32
- const AsyncFileViewerIpynb = React__default["default"].lazy(() => Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./FileViewerIpynb.js')); }));
33
- const AsyncFileViewerText = React__default["default"].lazy(() => Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./FileViewerText.js')); }));
34
- const StyledFileWrapper = styled__default["default"].div.withConfig({
31
+ var AsyncFileViewerCsv = React__default["default"].lazy(function () {
32
+ return Promise.resolve().then(function () { return require('./FileViewerCsv.js'); });
33
+ });
34
+ var AsyncFileViewerImage = React__default["default"].lazy(function () {
35
+ return Promise.resolve().then(function () { return require('./FileViewerImage.js'); });
36
+ });
37
+ var AsyncFileViewerIpynb = React__default["default"].lazy(function () {
38
+ return Promise.resolve().then(function () { return require('./FileViewerIpynb.js'); });
39
+ });
40
+ var AsyncFileViewerText = React__default["default"].lazy(function () {
41
+ return Promise.resolve().then(function () { return require('./FileViewerText.js'); });
42
+ });
43
+ var StyledFileWrapper = styled__default["default"].div.withConfig({
35
44
  componentId: "sc-197v06u-0"
36
45
  })(["display:flex;justify-content:center;align-items:center;background-color:", ";width:100%;height:100%;"], designTokens.base.color.navy9);
37
- const StyledReadonlyBanner = styled__default["default"].div.withConfig({
46
+ var StyledReadonlyBanner = styled__default["default"].div.withConfig({
38
47
  componentId: "sc-197v06u-1"
39
48
  })(["width:100%;padding:0.7rem;color:white;font-size:0.7rem;a{color:", ";font-weight:bold;text-decoration:underline;.eb-icon{margin-right:0.25rem;}}"], designTokens.base.color.primary5);
40
-
41
- const FileViewer = ({
42
- filename,
43
- fileurl,
44
- locale
45
- }) => {
46
- const [showInTextViewer, setShowInTextViewer] = React.useState(false);
49
+ var FileViewer = function FileViewer(_ref) {
50
+ var filename = _ref.filename,
51
+ fileurl = _ref.fileurl,
52
+ locale = _ref.locale;
53
+ var _useState = React.useState(false),
54
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
55
+ showInTextViewer = _useState2[0],
56
+ setShowInTextViewer = _useState2[1];
47
57
  /**
48
58
  * Mime type of file.
49
59
  */
50
-
51
- const mimeType = React__default["default"].useMemo(() => mime__default["default"].getType(filename || '') || filename.split('.').pop() || '', [filename]);
60
+ var mimeType = React__default["default"].useMemo(function () {
61
+ return mime__default["default"].getType(filename || '') || filename.split('.').pop() || '';
62
+ }, [filename]);
52
63
  /**
53
64
  * Preview component.
54
65
  */
55
-
56
- const PreviewComponent = React__default["default"].useMemo(() => {
66
+ var PreviewComponent = React__default["default"].useMemo(function () {
57
67
  // Binary file which shows as text
58
68
  if (showInTextViewer) {
59
69
  return AsyncFileViewerText;
60
- } // Text file
61
-
62
-
70
+ }
71
+ // Text file
63
72
  if (mimeType.startsWith('text/')) {
64
73
  // csv
65
74
  if (mimeType === 'text/csv') {
66
75
  return AsyncFileViewerCsv;
67
- } // other text file
76
+ }
77
+ // other text file
68
78
  else {
69
79
  return AsyncFileViewerText;
70
80
  }
71
- } // Image file
72
-
73
-
81
+ }
82
+ // Image file
74
83
  if (mimeType.startsWith('image/')) {
75
84
  return AsyncFileViewerImage;
76
- } // ipynb (Jupyter Notebook)
77
-
78
-
85
+ }
86
+ // ipynb (Jupyter Notebook)
79
87
  if (mimeType === 'ipynb') {
80
88
  return AsyncFileViewerIpynb;
81
89
  }
82
-
83
90
  return null;
84
91
  }, [mimeType, showInTextViewer]);
85
92
  /**
86
93
  * Handle download button click.
87
94
  */
88
-
89
- const handleDownloadClick = e => {
95
+ var handleDownloadClick = function handleDownloadClick(e) {
90
96
  e.preventDefault();
91
-
92
97
  if (!fileurl) {
93
98
  return;
94
99
  }
95
-
96
- fetch(fileurl).then(res => res.blob()).then(blob => FileSaver__default["default"].saveAs(blob, filename)).catch(() => {
97
- const win = window.open(fileurl, '_blank');
98
-
100
+ fetch(fileurl).then(function (res) {
101
+ return res.blob();
102
+ }).then(function (blob) {
103
+ return FileSaver__default["default"].saveAs(blob, filename);
104
+ }).catch(function () {
105
+ var win = window.open(fileurl, '_blank');
99
106
  if (win) {
100
107
  win.focus();
101
108
  }
@@ -104,13 +111,10 @@ const FileViewer = ({
104
111
  /**
105
112
  * Readonly banner.
106
113
  */
107
-
108
-
109
- const renderReadonlyBanner = () => {
114
+ var renderReadonlyBanner = function renderReadonlyBanner() {
110
115
  if (!fileurl) {
111
116
  return null;
112
117
  }
113
-
114
118
  return React__default["default"].createElement(StyledReadonlyBanner, null, React__default["default"].createElement(reactIntl.FormattedMessage, {
115
119
  id: "fileViewer.readOnlyBanner.content"
116
120
  }), React__default["default"].createElement(blocks.Hspace, {
@@ -128,13 +132,11 @@ const FileViewer = ({
128
132
  /**
129
133
  * File viewer.
130
134
  */
131
-
132
-
133
- const renderFileViewer = () => {
135
+ var renderFileViewer = function renderFileViewer() {
134
136
  // preview-able file
135
137
  if (PreviewComponent) {
136
138
  return React__default["default"].createElement(React__default["default"].Suspense, {
137
- fallback: React__default["default"].createElement(ExerciseFileShimmer, null)
139
+ fallback: React__default["default"].createElement(ExerciseFileShimmer["default"], null)
138
140
  }, React__default["default"].createElement(blocks.Flex, {
139
141
  column: true,
140
142
  width: "100%",
@@ -143,38 +145,35 @@ const FileViewer = ({
143
145
  filename: filename,
144
146
  fileurl: fileurl
145
147
  })));
146
- } // binary file
147
-
148
-
149
- return React__default["default"].createElement(FileViewerNonViewable, {
148
+ }
149
+ // binary file
150
+ return React__default["default"].createElement(FileViewerNonViewable["default"], {
150
151
  fileurl: fileurl,
151
152
  filename: filename,
152
153
  locale: locale,
153
- onTextViewerClick: () => {
154
+ onTextViewerClick: function onTextViewerClick() {
154
155
  setShowInTextViewer(true);
155
156
  }
156
157
  });
157
- }; //
158
+ };
159
+ //
158
160
  //
159
161
  //
160
-
161
-
162
162
  return React__default["default"].createElement(StyledFileWrapper, {
163
163
  children: renderFileViewer()
164
164
  });
165
- }; //
165
+ };
166
166
  //
167
167
  //
168
-
169
-
170
- var FileViewer$1 = (props => {
168
+ //
169
+ var FileViewer$1 = (function (props) {
171
170
  return React__default["default"].createElement(materialSharedUtils.MaterialIntlProvider, {
172
171
  locale: props.locale,
173
172
  phrases: {
174
- en: en,
175
- ko: ko
173
+ en: en["default"],
174
+ ko: ko["default"]
176
175
  }
177
176
  }, React__default["default"].createElement(FileViewer, Object.assign({}, props)));
178
177
  });
179
178
 
180
- module.exports = FileViewer$1;
179
+ exports["default"] = FileViewer$1;
@@ -1,5 +1,8 @@
1
1
  'use strict';
2
2
 
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
3
6
  var React = require('react');
4
7
  var reactIntl = require('react-intl');
5
8
  var blocks = require('@elice/blocks');
@@ -19,9 +22,9 @@ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
19
22
 
20
23
  //
21
24
  //
22
-
23
- const OPTIONS_PER_PAGE = [10, 25, 50];
24
- const OPTIONS_DELIMITER = [{
25
+ //
26
+ var OPTIONS_PER_PAGE = [10, 25, 50];
27
+ var OPTIONS_DELIMITER = [{
25
28
  char: ',',
26
29
  label: 'Comma [,]'
27
30
  }, {
@@ -36,130 +39,161 @@ const OPTIONS_DELIMITER = [{
36
39
  }, {
37
40
  char: '|',
38
41
  label: 'Vertical Bar [|]'
39
- }]; //
42
+ }];
40
43
  //
41
44
  //
42
-
43
- const StyledViewer = styled__default["default"].div.withConfig({
45
+ //
46
+ var StyledViewer = styled__default["default"].div.withConfig({
44
47
  componentId: "sc-pyv7uu-0"
45
48
  })(["flex:1;display:flex;flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;background-color:", ";"], designTokens.base.color.navy9);
46
- const StyledViewerTableWrap = styled__default["default"].div.withConfig({
49
+ var StyledViewerTableWrap = styled__default["default"].div.withConfig({
47
50
  componentId: "sc-pyv7uu-1"
48
51
  })(["flex:1;overflow:auto;"]);
49
- const StyledViewerTable = styled__default["default"].table.withConfig({
52
+ var StyledViewerTable = styled__default["default"].table.withConfig({
50
53
  componentId: "sc-pyv7uu-2"
51
54
  })(["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:", ";}}"], designTokens.base.color.white, designTokens.base.color.navy5, designTokens.base.color.gray5, designTokens.base.color.navy8, designTokens.base.color.navy6);
52
- const StyledViewerFooter = styled__default["default"].div.withConfig({
55
+ var StyledViewerFooter = styled__default["default"].div.withConfig({
53
56
  componentId: "sc-pyv7uu-3"
54
57
  })(["flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:0.5rem;"]);
55
- const StyledViewerFooterSelect = styled__default["default"].select.withConfig({
58
+ var StyledViewerFooterSelect = styled__default["default"].select.withConfig({
56
59
  componentId: "sc-pyv7uu-4"
57
- })(["width:", "rem;border-radius:0.25rem;"], props => props.width);
58
- const StyledViewerFooterHr = styled__default["default"](blocks.Hr).withConfig({
60
+ })(["width:", "rem;border-radius:0.25rem;"], function (props) {
61
+ return props.width;
62
+ });
63
+ var StyledViewerFooterHr = styled__default["default"](blocks.Hr).withConfig({
59
64
  componentId: "sc-pyv7uu-5"
60
- })(["height:1rem;"]); //
65
+ })(["height:1rem;"]);
61
66
  //
62
67
  //
63
-
64
- const FileViewerCsv = ({
65
- fileurl
66
- }) => {
67
- const [csv, setCsv] = React__default["default"].useState('');
68
- const [csvHeader, setCsvHeader] = React__default["default"].useState(null);
69
- const [csvRecords, setCsvRecords] = React__default["default"].useState([]);
70
- const [csvStatus, setCsvStatus] = React__default["default"].useState('idle');
71
- const [page, setPage] = React__default["default"].useState(1);
72
- const [perPage, setPerPage] = React__default["default"].useState(OPTIONS_PER_PAGE[0]);
73
- const [delimiter, setDelimiter] = React__default["default"].useState(OPTIONS_DELIMITER[0].char);
74
- const [isUsingHeader, setUsingHeader] = React__default["default"].useState(true);
75
- const csvRecordCount = csvRecords.length + (csvHeader ? -1 : 0);
76
- const maxPage = Math.ceil(csvRecordCount / perPage);
77
- const tableWrapElRef = React__default["default"].useRef(null); //
68
+ //
69
+ var FileViewerCsv = function FileViewerCsv(_ref) {
70
+ var fileurl = _ref.fileurl;
71
+ var _React$useState = React__default["default"].useState(''),
72
+ _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
73
+ csv = _React$useState2[0],
74
+ setCsv = _React$useState2[1];
75
+ var _React$useState3 = React__default["default"].useState(null),
76
+ _React$useState4 = _rollupPluginBabelHelpers.slicedToArray(_React$useState3, 2),
77
+ csvHeader = _React$useState4[0],
78
+ setCsvHeader = _React$useState4[1];
79
+ var _React$useState5 = React__default["default"].useState([]),
80
+ _React$useState6 = _rollupPluginBabelHelpers.slicedToArray(_React$useState5, 2),
81
+ csvRecords = _React$useState6[0],
82
+ setCsvRecords = _React$useState6[1];
83
+ var _React$useState7 = React__default["default"].useState('idle'),
84
+ _React$useState8 = _rollupPluginBabelHelpers.slicedToArray(_React$useState7, 2),
85
+ csvStatus = _React$useState8[0],
86
+ setCsvStatus = _React$useState8[1];
87
+ var _React$useState9 = React__default["default"].useState(1),
88
+ _React$useState10 = _rollupPluginBabelHelpers.slicedToArray(_React$useState9, 2),
89
+ page = _React$useState10[0],
90
+ setPage = _React$useState10[1];
91
+ var _React$useState11 = React__default["default"].useState(OPTIONS_PER_PAGE[0]),
92
+ _React$useState12 = _rollupPluginBabelHelpers.slicedToArray(_React$useState11, 2),
93
+ perPage = _React$useState12[0],
94
+ setPerPage = _React$useState12[1];
95
+ var _React$useState13 = React__default["default"].useState(OPTIONS_DELIMITER[0].char),
96
+ _React$useState14 = _rollupPluginBabelHelpers.slicedToArray(_React$useState13, 2),
97
+ delimiter = _React$useState14[0],
98
+ setDelimiter = _React$useState14[1];
99
+ var _React$useState15 = React__default["default"].useState(true),
100
+ _React$useState16 = _rollupPluginBabelHelpers.slicedToArray(_React$useState15, 2),
101
+ isUsingHeader = _React$useState16[0],
102
+ setUsingHeader = _React$useState16[1];
103
+ var csvRecordCount = csvRecords.length + (csvHeader ? -1 : 0);
104
+ var maxPage = Math.ceil(csvRecordCount / perPage);
105
+ var tableWrapElRef = React__default["default"].useRef(null);
106
+ //
78
107
  // Fetch csv file
79
108
  //
80
-
81
- React__default["default"].useEffect(() => {
109
+ React__default["default"].useEffect(function () {
82
110
  if (!fileurl) {
83
111
  setCsvRecords([]);
84
112
  return;
85
113
  }
86
-
87
- const abortCtrl = new AbortController();
114
+ var abortCtrl = new AbortController();
88
115
  setCsvStatus('pending');
89
116
  fetch(fileurl, {
90
117
  signal: abortCtrl.signal
91
- }).then(res => res.text()).then(setCsv).then(() => setCsvStatus('resolved')).catch(err => {
118
+ }).then(function (res) {
119
+ return res.text();
120
+ }).then(setCsv).then(function () {
121
+ return setCsvStatus('resolved');
122
+ }).catch(function (err) {
92
123
  if (err.name === 'AbortError') {
93
124
  return;
94
125
  }
95
-
96
126
  setCsvRecords([]);
97
127
  setCsvStatus('rejected');
98
128
  });
99
- return () => {
129
+ return function () {
100
130
  abortCtrl.abort();
101
131
  };
102
- }, [fileurl]); //
132
+ }, [fileurl]);
133
+ //
103
134
  // Parse csv file and save as records
104
135
  //
105
-
106
- React__default["default"].useEffect(() => setCsvRecords(csv.split('\n').filter(Boolean).map(row => row.split(delimiter))), [csv, delimiter]); //
136
+ React__default["default"].useEffect(function () {
137
+ return setCsvRecords(csv.split('\n').filter(Boolean).map(function (row) {
138
+ return row.split(delimiter);
139
+ }));
140
+ }, [csv, delimiter]);
141
+ //
107
142
  // Set CSV header.
108
143
  //
109
-
110
- React__default["default"].useEffect(() => setCsvHeader(isUsingHeader ? csvRecords[0] : null), [csvRecords, isUsingHeader]); //
144
+ React__default["default"].useEffect(function () {
145
+ return setCsvHeader(isUsingHeader ? csvRecords[0] : null);
146
+ }, [csvRecords, isUsingHeader]);
147
+ //
111
148
  // Scroll to top when page changes.
112
149
  //
113
-
114
- React__default["default"].useEffect(() => {
150
+ React__default["default"].useEffect(function () {
115
151
  var _a;
116
-
117
152
  return (_a = tableWrapElRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo(0, 0);
118
153
  }, [page]);
119
154
  /**
120
155
  *
121
156
  */
122
-
123
- const renderViewerTableThead = () => {
157
+ var renderViewerTableThead = function renderViewerTableThead() {
124
158
  if (!csvHeader) {
125
159
  return null;
126
160
  }
127
-
128
- const colunms = ['', ...csvHeader];
129
- return React__default["default"].createElement("thead", null, React__default["default"].createElement("tr", null, colunms.map((col, colIdx) => React__default["default"].createElement("th", {
130
- key: colIdx
131
- }, col))));
161
+ var colunms = [''].concat(_rollupPluginBabelHelpers.toConsumableArray(csvHeader));
162
+ return React__default["default"].createElement("thead", null, React__default["default"].createElement("tr", null, colunms.map(function (col, colIdx) {
163
+ return React__default["default"].createElement("th", {
164
+ key: colIdx
165
+ }, col);
166
+ })));
132
167
  };
133
168
  /**
134
169
  *
135
170
  */
136
-
137
-
138
- const renderViewerTableTbody = () => {
139
- const start = (page - 1) * perPage;
140
- const end = page * perPage;
141
- const records = csvRecords.slice(csvHeader ? 1 : 0).slice(start, end);
142
- return React__default["default"].createElement("tbody", null, records.map((row, rowIdx) => {
143
- const curRecordNo = start + rowIdx + 1;
144
- const curRow = [curRecordNo, ...row];
171
+ var renderViewerTableTbody = function renderViewerTableTbody() {
172
+ var start = (page - 1) * perPage;
173
+ var end = page * perPage;
174
+ var records = csvRecords.slice(csvHeader ? 1 : 0).slice(start, end);
175
+ return React__default["default"].createElement("tbody", null, records.map(function (row, rowIdx) {
176
+ var curRecordNo = start + rowIdx + 1;
177
+ var curRow = [curRecordNo].concat(_rollupPluginBabelHelpers.toConsumableArray(row));
145
178
  return React__default["default"].createElement("tr", {
146
179
  key: curRecordNo
147
- }, curRow.map((col, colIdx) => React__default["default"].createElement("td", {
148
- key: colIdx,
149
- style: {
150
- // test whether the column is number, and align right
151
- textAlign: // eslint-disable-next-line no-self-compare
152
- +col === +col ? 'right' : 'left'
153
- }
154
- }, col)));
180
+ }, curRow.map(function (col, colIdx) {
181
+ return React__default["default"].createElement("td", {
182
+ key: colIdx,
183
+ style: {
184
+ // test whether the column is number, and align right
185
+ textAlign:
186
+ // eslint-disable-next-line no-self-compare
187
+ +col === +col ? 'right' : 'left'
188
+ }
189
+ }, col);
190
+ }));
155
191
  }));
156
192
  };
157
193
  /**
158
194
  *
159
195
  */
160
-
161
-
162
- const renderViewerTable = () => {
196
+ var renderViewerTable = function renderViewerTable() {
163
197
  return React__default["default"].createElement(StyledViewerTableWrap, {
164
198
  ref: tableWrapElRef
165
199
  }, React__default["default"].createElement(StyledViewerTable, null, renderViewerTableThead(), renderViewerTableTbody()));
@@ -167,9 +201,7 @@ const FileViewerCsv = ({
167
201
  /**
168
202
  *
169
203
  */
170
-
171
-
172
- const renderViewerFooterPagination = () => {
204
+ var renderViewerFooterPagination = function renderViewerFooterPagination() {
173
205
  return React__default["default"].createElement(blocks.Flex, {
174
206
  align: "center"
175
207
  }, React__default["default"].createElement(blocks.Text, {
@@ -185,7 +217,9 @@ const FileViewerCsv = ({
185
217
  role: "navy3",
186
218
  size: "nano",
187
219
  disabled: page <= 1,
188
- onClick: () => setPage(1)
220
+ onClick: function onClick() {
221
+ return setPage(1);
222
+ }
189
223
  }), React__default["default"].createElement(blocks.Hspace, {
190
224
  width: 0.25
191
225
  }), React__default["default"].createElement(blocks.IconButton, {
@@ -193,7 +227,11 @@ const FileViewerCsv = ({
193
227
  role: "navy3",
194
228
  size: "nano",
195
229
  disabled: page <= 1,
196
- onClick: () => setPage(prevPage => prevPage - 1)
230
+ onClick: function onClick() {
231
+ return setPage(function (prevPage) {
232
+ return prevPage - 1;
233
+ });
234
+ }
197
235
  }), React__default["default"].createElement(blocks.Hspace, {
198
236
  width: 0.5
199
237
  }), React__default["default"].createElement(blocks.Text, {
@@ -206,7 +244,11 @@ const FileViewerCsv = ({
206
244
  role: "navy3",
207
245
  size: "nano",
208
246
  disabled: page >= maxPage,
209
- onClick: () => setPage(prevPage => prevPage + 1)
247
+ onClick: function onClick() {
248
+ return setPage(function (prevPage) {
249
+ return prevPage + 1;
250
+ });
251
+ }
210
252
  }), React__default["default"].createElement(blocks.Hspace, {
211
253
  width: 0.25
212
254
  }), React__default["default"].createElement(blocks.IconButton, {
@@ -214,15 +256,15 @@ const FileViewerCsv = ({
214
256
  role: "navy3",
215
257
  size: "nano",
216
258
  disabled: page >= maxPage,
217
- onClick: () => setPage(maxPage)
259
+ onClick: function onClick() {
260
+ return setPage(maxPage);
261
+ }
218
262
  })));
219
263
  };
220
264
  /**
221
265
  *
222
266
  */
223
-
224
-
225
- const renderViewerFooterSettings = () => {
267
+ var renderViewerFooterSettings = function renderViewerFooterSettings() {
226
268
  return React__default["default"].createElement(blocks.Flex, {
227
269
  align: "center"
228
270
  }, React__default["default"].createElement(blocks.Flex, {
@@ -253,13 +295,16 @@ const FileViewerCsv = ({
253
295
  }), React__default["default"].createElement(StyledViewerFooterSelect, {
254
296
  width: 7.5,
255
297
  value: delimiter,
256
- onChange: e => setDelimiter(e.target.value)
257
- }, OPTIONS_DELIMITER.map(({
258
- char,
259
- label
260
- }) => React__default["default"].createElement("option", {
261
- value: char
262
- }, label)))), React__default["default"].createElement(StyledViewerFooterHr, {
298
+ onChange: function onChange(e) {
299
+ return setDelimiter(e.target.value);
300
+ }
301
+ }, OPTIONS_DELIMITER.map(function (_ref2) {
302
+ var char = _ref2.char,
303
+ label = _ref2.label;
304
+ return React__default["default"].createElement("option", {
305
+ value: char
306
+ }, label);
307
+ }))), React__default["default"].createElement(StyledViewerFooterHr, {
263
308
  vertical: true,
264
309
  color: designTokens.base.color.navy5
265
310
  }), React__default["default"].createElement(blocks.Flex, {
@@ -274,32 +319,31 @@ const FileViewerCsv = ({
274
319
  }), React__default["default"].createElement(StyledViewerFooterSelect, {
275
320
  width: 3,
276
321
  value: perPage,
277
- onChange: e => setPerPage(Number(e.target.value))
278
- }, OPTIONS_PER_PAGE.map(perPage => React__default["default"].createElement("option", {
279
- value: perPage
280
- }, perPage)))));
322
+ onChange: function onChange(e) {
323
+ return setPerPage(Number(e.target.value));
324
+ }
325
+ }, OPTIONS_PER_PAGE.map(function (perPage) {
326
+ return React__default["default"].createElement("option", {
327
+ value: perPage
328
+ }, perPage);
329
+ }))));
281
330
  };
282
331
  /**
283
332
  *
284
333
  */
285
-
286
-
287
- const renderViewerFooter = () => {
334
+ var renderViewerFooter = function renderViewerFooter() {
288
335
  return React__default["default"].createElement(StyledViewerFooter, null, renderViewerFooterPagination(), renderViewerFooterSettings());
289
- }; //
336
+ };
337
+ //
290
338
  //
291
339
  //
292
-
293
-
294
340
  if (csvStatus === 'idle' || csvStatus === 'pending') {
295
- return React__default["default"].createElement(ExerciseFileShimmer, null);
341
+ return React__default["default"].createElement(ExerciseFileShimmer["default"], null);
296
342
  }
297
-
298
343
  if (csvStatus === 'rejected') {
299
344
  return React__default["default"].createElement("div", null, "error");
300
345
  }
301
-
302
346
  return React__default["default"].createElement(StyledViewer, null, renderViewerTable(), renderViewerFooter());
303
347
  };
304
348
 
305
- module.exports = FileViewerCsv;
349
+ exports["default"] = FileViewerCsv;
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
3
5
  var React = require('react');
4
6
  var blocks = require('@elice/blocks');
5
7
  var styled = require('styled-components');
@@ -14,17 +16,14 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
14
16
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
17
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
16
18
 
17
- const StyledImage = styled__default["default"].img.withConfig({
19
+ var StyledImage = styled__default["default"].img.withConfig({
18
20
  componentId: "sc-1bnx7lz-0"
19
21
  })(["max-width:100%;max-height:100%;height:auto;width:auto;"]);
20
-
21
- const FileViewerImage = ({
22
- fileurl
23
- }) => {
22
+ var FileViewerImage = function FileViewerImage(_ref) {
23
+ var fileurl = _ref.fileurl;
24
24
  if (!fileurl) {
25
- return React__default["default"].createElement(ExerciseFileShimmer, null);
25
+ return React__default["default"].createElement(ExerciseFileShimmer["default"], null);
26
26
  }
27
-
28
27
  return React__default["default"].createElement(blocks.Flex, {
29
28
  align: "center",
30
29
  justify: "center",
@@ -36,4 +35,4 @@ const FileViewerImage = ({
36
35
  }));
37
36
  };
38
37
 
39
- module.exports = FileViewerImage;
38
+ exports["default"] = FileViewerImage;