@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.
- package/cjs/_virtual/_rollupPluginBabelHelpers.js +526 -0
- package/cjs/components/material-exercise/MaterialExercise.js +44 -63
- package/cjs/components/material-exercise/MaterialExercise.styled.js +20 -23
- package/cjs/components/material-exercise/MaterialExerciseMobile.js +19 -15
- package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
- package/cjs/components/material-exercise/context/ExerciseProvider.js +83 -81
- package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +16 -16
- package/cjs/components/material-exercise/context/context.js +1 -1
- package/cjs/components/material-exercise/context/locales/noImage.en.json.js +3 -1
- package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +3 -1
- package/cjs/components/material-exercise/context/recoil.d.ts +2 -1
- package/cjs/components/material-exercise/context/recoil.js +562 -373
- package/cjs/components/material-exercise/context/recoilTypes.js +0 -5
- package/cjs/components/material-exercise/context/subjects.js +3 -6
- package/cjs/components/material-exercise/context/types.d.ts +8 -1
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -65
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
- package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +7 -0
- package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +7 -0
- package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +20 -21
- package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +228 -199
- package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -10
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +35 -32
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +57 -48
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +327 -231
- package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
- package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +17 -17
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -14
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -6
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +47 -38
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +60 -42
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +29 -22
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +45 -56
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
- package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -20
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +5 -3
- package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +30 -41
- package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +17 -12
- package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +24 -33
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +13 -8
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +84 -83
- package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +20 -12
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +239 -147
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +92 -63
- package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
- package/cjs/components/material-exercise/exercise-room/locales/en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +224 -223
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -13
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +30 -26
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +26 -26
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +79 -95
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +27 -27
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +54 -60
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +5 -5
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -13
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +29 -26
- package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +290 -180
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -45
- package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +7 -0
- package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +7 -0
- package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +19 -17
- package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +5 -4
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +15 -14
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +7 -6
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +17 -16
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +18 -11
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -4
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -7
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
- package/cjs/components/shared/file-icon/FileIcon.js +23 -23
- package/cjs/components/shared/file-tabs/FileTab.js +32 -43
- package/cjs/components/shared/file-tabs/FileTab.styled.js +26 -22
- package/cjs/components/shared/file-tabs/FileTabs.js +55 -49
- package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -2
- package/cjs/components/shared/file-tabs/util.js +29 -18
- package/cjs/components/shared/file-tree/FileTree.js +11 -11
- package/cjs/components/shared/file-tree/FileTreeConfig.js +24 -23
- package/cjs/components/shared/file-tree/FileTreeList.js +35 -41
- package/cjs/components/shared/file-tree/FileTreeListItemContent.js +75 -91
- package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +77 -101
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
- package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +51 -86
- package/cjs/components/shared/file-tree/FileTreeListItems.js +150 -153
- package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
- package/cjs/components/shared/file-tree/FileTreeToolbar.js +30 -41
- package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
- package/cjs/components/shared/file-tree/context/FileTreeContext.js +91 -97
- package/cjs/components/shared/file-tree/locales/en.json.js +3 -1
- package/cjs/components/shared/file-tree/locales/ko.json.js +3 -1
- package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
- package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
- package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -1
- package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
- package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -7
- package/cjs/components/shared/file-viewer/FileViewer.js +59 -60
- package/cjs/components/shared/file-viewer/FileViewerCsv.js +145 -101
- package/cjs/components/shared/file-viewer/FileViewerImage.js +7 -8
- package/cjs/components/shared/file-viewer/FileViewerIpynb.js +20 -14
- package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +28 -34
- package/cjs/components/shared/file-viewer/FileViewerText.js +23 -16
- package/cjs/components/shared/file-viewer/locales/en.json.js +3 -1
- package/cjs/components/shared/file-viewer/locales/ko.json.js +3 -1
- package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +3 -1
- package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +3 -1
- package/cjs/components/shared/material-modal/MaterialModal.js +10 -12
- package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -5
- package/cjs/components/shared/monaco-editor/MonacoEditor.js +123 -149
- package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +10 -8
- package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -58
- package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +78 -85
- package/cjs/components/shared/monaco-editor/constants/grammars/index.js +131 -52
- package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
- package/cjs/components/shared/monaco-editor/constants/themes/index.js +80 -32
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
- package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +36 -12
- package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +5 -8
- package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +36 -12
- package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -6
- package/cjs/components/shared/monaco-editor/editor-languages/index.js +3 -1
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +3 -2
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +3 -2
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +3 -2
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +36 -12
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +18 -24
- package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
- package/cjs/components/shared/monaco-editor/locales/en.json.js +3 -1
- package/cjs/components/shared/monaco-editor/locales/ko.json.js +3 -1
- package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
- package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
- package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
- package/cjs/components/shared/monaco-editor/utils/grammar/index.js +70 -32
- package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
- package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
- package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
- package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
- package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -3
- package/cjs/components/shared/monaco-editor/utils/prettier/index.js +30 -9
- package/cjs/components/shared/monaco-editor/utils/theme/convert.js +20 -26
- package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -5
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +218 -329
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
- package/cjs/components/shared/no-vnc/NoVnc.js +93 -90
- package/cjs/components/shared/no-vnc/NoVncLazy.js +7 -5
- package/cjs/components/shared/preview-container/PreviewContainer.js +7 -10
- package/cjs/components/shared/web-browser/WebBrowser.js +54 -59
- package/cjs/components/shared/xterm/Xterm.js +112 -105
- package/cjs/components/shared/xterm/XtermLazy.js +7 -5
- package/cjs/components/shared/xterm/locales/en.json.js +3 -1
- package/cjs/components/shared/xterm/locales/ko.json.js +3 -1
- package/cjs/constants/arduino.js +10 -10
- package/cjs/constants/shortcutKeyMap.js +5 -5
- package/cjs/constants/stylesheets.js +7 -10
- package/cjs/hooks/useArduino.js +327 -255
- package/cjs/hooks/useExerciseFile.js +24 -24
- package/cjs/hooks/useExericseShortcut.js +6 -5
- package/cjs/hooks/useMaterialExerciseFileUrl.js +54 -37
- package/cjs/hooks/useRunnerRoomWebSocket.js +58 -56
- package/cjs/hooks/useStdioTextConcator.js +18 -12
- package/cjs/hooks/useStdioWebSocket.js +41 -67
- package/cjs/hooks/useUsercodeEditWebSocket.js +230 -252
- package/cjs/hooks/useUsercodeHistory.js +121 -82
- package/cjs/index.js +4 -4
- package/cjs/utils/arduino.js +23 -25
- package/cjs/utils/exerciseFile.js +8 -16
- package/cjs/utils/runner.js +29 -25
- package/es/_virtual/_rollupPluginBabelHelpers.js +504 -0
- package/es/components/material-exercise/MaterialExercise.js +33 -54
- package/es/components/material-exercise/MaterialExercise.styled.js +20 -23
- package/es/components/material-exercise/MaterialExerciseMobile.js +15 -13
- package/es/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
- package/es/components/material-exercise/context/ExerciseProvider.js +79 -79
- package/es/components/material-exercise/context/ExerciseProviderNoImage.js +11 -13
- package/es/components/material-exercise/context/context.js +1 -1
- package/es/components/material-exercise/context/recoil.d.ts +2 -1
- package/es/components/material-exercise/context/recoil.js +563 -374
- package/es/components/material-exercise/context/recoilTypes.js +0 -5
- package/es/components/material-exercise/context/subjects.js +3 -6
- package/es/components/material-exercise/context/types.d.ts +8 -1
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +73 -62
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
- package/es/components/material-exercise/exercise-code-history/locales/en.json.js +3 -0
- package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +3 -0
- package/es/components/material-exercise/exercise-file/ExerciseFile.js +15 -18
- package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +222 -195
- package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -9
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +31 -28
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +52 -45
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
- package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +321 -225
- package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
- package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +12 -14
- package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -10
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -5
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +43 -36
- package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +53 -37
- package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +25 -20
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +41 -54
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +25 -19
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
- package/es/components/material-exercise/exercise-preview/ExercisePreview.js +21 -34
- package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -10
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +17 -28
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +9 -6
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +81 -82
- package/es/components/material-exercise/exercise-room/ExerciseRoom.js +13 -7
- package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
- package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +236 -146
- package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +90 -63
- package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
- package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +218 -219
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +7 -9
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +27 -25
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +22 -24
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +76 -94
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +24 -26
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +51 -59
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -4
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +6 -11
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +26 -25
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +284 -174
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +38 -44
- package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +3 -0
- package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +3 -0
- package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +16 -16
- package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -3
- package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -13
- package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -3
- package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -15
- package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +15 -10
- package/es/components/shared/exercise-version-list/ExerciseVersionList.js +2 -3
- package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +5 -6
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
- package/es/components/shared/file-icon/FileIcon.js +20 -22
- package/es/components/shared/file-tabs/FileTab.js +28 -41
- package/es/components/shared/file-tabs/FileTab.styled.js +26 -22
- package/es/components/shared/file-tabs/FileTabs.js +52 -48
- package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
- package/es/components/shared/file-tabs/util.js +29 -18
- package/es/components/shared/file-tree/FileTree.js +3 -5
- package/es/components/shared/file-tree/FileTreeConfig.js +21 -22
- package/es/components/shared/file-tree/FileTreeList.js +31 -39
- package/es/components/shared/file-tree/FileTreeListItemContent.js +67 -85
- package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
- package/es/components/shared/file-tree/FileTreeListItemContentInput.js +74 -100
- package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
- package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +48 -85
- package/es/components/shared/file-tree/FileTreeListItems.js +147 -152
- package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
- package/es/components/shared/file-tree/FileTreeToolbar.js +24 -37
- package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
- package/es/components/shared/file-tree/context/FileTreeContext.js +91 -97
- package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
- package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
- package/es/components/shared/file-tree/utils/fileTreeInput.js +0 -1
- package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
- package/es/components/shared/file-tree/utils/fileTreePath.js +5 -7
- package/es/components/shared/file-viewer/FileViewer.js +52 -53
- package/es/components/shared/file-viewer/FileViewerCsv.js +141 -99
- package/es/components/shared/file-viewer/FileViewerImage.js +3 -6
- package/es/components/shared/file-viewer/FileViewerIpynb.js +16 -12
- package/es/components/shared/file-viewer/FileViewerNonViewable.js +22 -30
- package/es/components/shared/file-viewer/FileViewerText.js +18 -13
- package/es/components/shared/material-modal/MaterialModal.js +7 -11
- package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
- package/es/components/shared/monaco-editor/MonacoEditor.js +119 -147
- package/es/components/shared/monaco-editor/MonacoEditorLazy.js +6 -4
- package/es/components/shared/monaco-editor/MonacoEditorMobile.js +45 -56
- package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +73 -82
- package/es/components/shared/monaco-editor/constants/grammars/index.js +131 -52
- package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
- package/es/components/shared/monaco-editor/constants/themes/index.js +80 -32
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
- package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -11
- package/es/components/shared/monaco-editor/editor-languages/css/index.js +2 -5
- package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -11
- package/es/components/shared/monaco-editor/editor-languages/html/index.js +2 -5
- package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
- package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +0 -1
- package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +0 -1
- package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +0 -1
- package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +33 -11
- package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -16
- package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
- package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
- package/es/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
- package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
- package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -31
- package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
- package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
- package/es/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
- package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
- package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -3
- package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -8
- package/es/components/shared/monaco-editor/utils/theme/convert.js +20 -26
- package/es/components/shared/monaco-editor/utils/theme/index.js +22 -5
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +219 -330
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
- package/es/components/shared/no-vnc/NoVnc.js +89 -88
- package/es/components/shared/no-vnc/NoVncLazy.js +4 -2
- package/es/components/shared/preview-container/PreviewContainer.js +7 -10
- package/es/components/shared/web-browser/WebBrowser.js +49 -56
- package/es/components/shared/xterm/Xterm.js +107 -102
- package/es/components/shared/xterm/XtermLazy.js +4 -2
- package/es/constants/arduino.js +10 -10
- package/es/constants/shortcutKeyMap.js +3 -5
- package/es/constants/stylesheets.js +7 -10
- package/es/hooks/useArduino.js +327 -255
- package/es/hooks/useExerciseFile.js +24 -24
- package/es/hooks/useExericseShortcut.js +6 -5
- package/es/hooks/useMaterialExerciseFileUrl.js +55 -38
- package/es/hooks/useRunnerRoomWebSocket.js +58 -56
- package/es/hooks/useStdioTextConcator.js +18 -12
- package/es/hooks/useStdioWebSocket.js +41 -67
- package/es/hooks/useUsercodeEditWebSocket.js +230 -252
- package/es/hooks/useUsercodeHistory.js +122 -83
- package/es/utils/arduino.js +23 -25
- package/es/utils/exerciseFile.js +8 -16
- package/es/utils/runner.js +29 -25
- package/package.json +8 -8
|
@@ -8,6 +8,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
8
8
|
|
|
9
9
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
var ExerciseRunnerContext = React__default["default"].createContext(null);
|
|
12
12
|
|
|
13
13
|
exports.ExerciseRunnerContext = ExerciseRunnerContext;
|
|
@@ -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 types = require('@elice/types');
|
|
@@ -23,25 +25,23 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
23
25
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
24
26
|
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
var RUNNER_CONTROLLER_HEIGHT = 50;
|
|
29
|
+
var StyledController = styled__default["default"].div.withConfig({
|
|
28
30
|
componentId: "sc-1fvokag-0"
|
|
29
31
|
})(["display:flex;justify-content:space-between;align-items:center;padding:0.5rem 1rem;height:", "px;border-bottom:", ";"], RUNNER_CONTROLLER_HEIGHT, stylesheets.MATERIAL_DIVIDER_BORDER_VALUE);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
|
|
36
|
-
const isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
|
|
32
|
+
var ExerciseRunnerController = function ExerciseRunnerController() {
|
|
33
|
+
var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
|
|
34
|
+
materialExerciseId = _React$useContext.materialExerciseId;
|
|
35
|
+
var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
|
|
36
|
+
var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
|
|
37
37
|
return React__default["default"].createElement(StyledController, null, React__default["default"].createElement(blocks.Flex, {
|
|
38
38
|
align: "center"
|
|
39
|
-
}, React__default["default"].createElement(ExerciseRunnerControllerButtonGroup, null), React__default["default"].createElement(blocks.Hspace, {
|
|
39
|
+
}, React__default["default"].createElement(ExerciseRunnerControllerButtonGroup["default"], null), React__default["default"].createElement(blocks.Hspace, {
|
|
40
40
|
width: 1
|
|
41
|
-
}), React__default["default"].createElement(ExerciseRunnerControllerRunningInfo, null), React__default["default"].createElement(ExerciseRunnerControllerTimer, null)), React__default["default"].createElement(blocks.Flex, {
|
|
41
|
+
}), React__default["default"].createElement(ExerciseRunnerControllerRunningInfo["default"], null), React__default["default"].createElement(ExerciseRunnerControllerTimer["default"], null)), React__default["default"].createElement(blocks.Flex, {
|
|
42
42
|
column: true,
|
|
43
43
|
align: "flex-end"
|
|
44
|
-
}, React__default["default"].createElement(ExerciseRunnerControllerStatusMessage, null), isArduinoExercise ? React__default["default"].createElement(ExerciseRunnerControllerArduinoStatusMessage, null) : null), isArduinoExercise ? React__default["default"].createElement(ExerciseRunnerControllerArduinoAgentModal, null) : null);
|
|
44
|
+
}, React__default["default"].createElement(ExerciseRunnerControllerStatusMessage["default"], null), isArduinoExercise ? React__default["default"].createElement(ExerciseRunnerControllerArduinoStatusMessage["default"], null) : null), isArduinoExercise ? React__default["default"].createElement(ExerciseRunnerControllerArduinoAgentModal["default"], null) : null);
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
exports["default"] = ExerciseRunnerController;
|
|
@@ -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');
|
|
@@ -17,33 +20,31 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
17
20
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
18
21
|
var FileSaver__default = /*#__PURE__*/_interopDefaultLegacy(FileSaver);
|
|
19
22
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
var ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_KEY = 'elice-material-exercise-arduino-agent-modal-closed';
|
|
24
|
+
var ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_VALUE = 'true';
|
|
25
|
+
var ARDUINO_AGENT_MAC_DOWNLOAD_URL = 'https://eli.so/arduino-agent-mac';
|
|
26
|
+
var ARDUINO_AGENT_WIN_DOWNLOAD_URL = 'https://eli.so/arduino-agent-win';
|
|
27
|
+
var ARDUINO_AGENT_MANUAL_URL = 'https://eli.so/arduino-faq';
|
|
28
|
+
var ExerciseRunnerControllerArduinoAgentModal = function ExerciseRunnerControllerArduinoAgentModal() {
|
|
29
|
+
var intl = reactIntl.useIntl();
|
|
30
|
+
var _useRecoilState = recoil.useRecoilState(recoil$1.exerciseArduinoAgentModalState),
|
|
31
|
+
_useRecoilState2 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState, 2),
|
|
32
|
+
open = _useRecoilState2[0],
|
|
33
|
+
setOpen = _useRecoilState2[1];
|
|
34
|
+
React__default["default"].useEffect(function () {
|
|
35
|
+
var isConfirmed = localStorage.getItem(ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_KEY) === ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_VALUE;
|
|
32
36
|
if (!isConfirmed) {
|
|
33
37
|
setOpen(true);
|
|
34
38
|
}
|
|
35
39
|
}, [setOpen]);
|
|
36
|
-
|
|
37
|
-
const handleClose = () => {
|
|
40
|
+
var handleClose = function handleClose() {
|
|
38
41
|
setOpen(false);
|
|
39
42
|
localStorage.setItem(ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_KEY, ELICE_MATERIAL_EXERCISE_ARDUINO_AGENT_MODAL_VALUE);
|
|
40
43
|
};
|
|
41
|
-
|
|
42
|
-
const handleDownload = fileUrl => {
|
|
44
|
+
var handleDownload = function handleDownload(fileUrl) {
|
|
43
45
|
FileSaver__default["default"].saveAs(fileUrl);
|
|
44
46
|
};
|
|
45
|
-
|
|
46
|
-
const renderAgentInstallInstruction = () => {
|
|
47
|
+
var renderAgentInstallInstruction = function renderAgentInstallInstruction() {
|
|
47
48
|
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(blocks.Text, {
|
|
48
49
|
bold: true,
|
|
49
50
|
role: "gray0"
|
|
@@ -66,7 +67,9 @@ const ExerciseRunnerControllerArduinoAgentModal = () => {
|
|
|
66
67
|
size: "huge"
|
|
67
68
|
}),
|
|
68
69
|
iconAlign: "left",
|
|
69
|
-
onClick: ()
|
|
70
|
+
onClick: function onClick() {
|
|
71
|
+
return handleDownload(ARDUINO_AGENT_WIN_DOWNLOAD_URL);
|
|
72
|
+
}
|
|
70
73
|
}, React__default["default"].createElement(reactIntl.FormattedMessage, {
|
|
71
74
|
id: "exerciseRunner.controller.arduino.agent.instruction.install.window"
|
|
72
75
|
})), React__default["default"].createElement(blocks.Hspace, {
|
|
@@ -78,13 +81,14 @@ const ExerciseRunnerControllerArduinoAgentModal = () => {
|
|
|
78
81
|
icon: icons.eisMac
|
|
79
82
|
}),
|
|
80
83
|
iconAlign: "left",
|
|
81
|
-
onClick: ()
|
|
84
|
+
onClick: function onClick() {
|
|
85
|
+
return handleDownload(ARDUINO_AGENT_MAC_DOWNLOAD_URL);
|
|
86
|
+
}
|
|
82
87
|
}, React__default["default"].createElement(reactIntl.FormattedMessage, {
|
|
83
88
|
id: "exerciseRunner.controller.arduino.agent.instruction.install.mac"
|
|
84
89
|
}))));
|
|
85
90
|
};
|
|
86
|
-
|
|
87
|
-
const renderAgentConnectionInstruction = () => {
|
|
91
|
+
var renderAgentConnectionInstruction = function renderAgentConnectionInstruction() {
|
|
88
92
|
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(blocks.Text, {
|
|
89
93
|
role: "gray0",
|
|
90
94
|
bold: true
|
|
@@ -107,16 +111,16 @@ const ExerciseRunnerControllerArduinoAgentModal = () => {
|
|
|
107
111
|
iconAlign: "right",
|
|
108
112
|
size: "tiny",
|
|
109
113
|
role: "secondary",
|
|
110
|
-
onClick: ()
|
|
114
|
+
onClick: function onClick() {
|
|
115
|
+
return window.open(ARDUINO_AGENT_MANUAL_URL);
|
|
116
|
+
}
|
|
111
117
|
}, React__default["default"].createElement(reactIntl.FormattedMessage, {
|
|
112
118
|
id: "exerciseRunner.controller.arduino.agent.instruction.connect.button"
|
|
113
119
|
})));
|
|
114
120
|
};
|
|
115
|
-
|
|
116
121
|
if (!open) {
|
|
117
122
|
return null;
|
|
118
123
|
}
|
|
119
|
-
|
|
120
124
|
return React__default["default"].createElement(blocks.Modal, {
|
|
121
125
|
theme: "dark",
|
|
122
126
|
title: intl.formatMessage({
|
|
@@ -134,4 +138,4 @@ const ExerciseRunnerControllerArduinoAgentModal = () => {
|
|
|
134
138
|
}), renderAgentConnectionInstruction()));
|
|
135
139
|
};
|
|
136
140
|
|
|
137
|
-
|
|
141
|
+
exports["default"] = ExerciseRunnerControllerArduinoAgentModal;
|
|
@@ -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');
|
|
@@ -18,19 +21,24 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
18
21
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
19
22
|
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
20
23
|
|
|
21
|
-
|
|
24
|
+
var StyledMessageWrapper = styled__default["default"](blocks.Flex).withConfig({
|
|
22
25
|
componentId: "sc-19z7lun-0"
|
|
23
26
|
})(["height:1rem;"]);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
var ExerciseRunnerControllerArduinoStatusMessage = function ExerciseRunnerControllerArduinoStatusMessage() {
|
|
28
|
+
var intl = reactIntl.useIntl();
|
|
29
|
+
var ports = recoil.useRecoilValue(recoil$1.exerciseArduinoPortsState);
|
|
30
|
+
var _useState = React.useState(''),
|
|
31
|
+
_useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
|
|
32
|
+
message = _useState2[0],
|
|
33
|
+
setMessage = _useState2[1];
|
|
34
|
+
var _useState3 = React.useState('error'),
|
|
35
|
+
_useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
|
|
36
|
+
status = _useState4[0],
|
|
37
|
+
setStatus = _useState4[1];
|
|
38
|
+
var arduinoOpenedPort = recoil.useRecoilValue(recoil$1.exerciseArduinoOpenedPortNameState);
|
|
39
|
+
var arduinoUploadProgress = recoil.useRecoilValue(recoil$1.exerciseArduinoUploadProgressState);
|
|
40
|
+
var arduinoAgentConnectionStatus = recoil.useRecoilValue(recoil$1.exerciseArduinoAgentConnectionState);
|
|
41
|
+
React.useEffect(function () {
|
|
34
42
|
if (arduinoAgentConnectionStatus === 'disconnected') {
|
|
35
43
|
setStatus('error');
|
|
36
44
|
setMessage(intl.formatMessage({
|
|
@@ -38,7 +46,6 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
|
|
|
38
46
|
}));
|
|
39
47
|
return;
|
|
40
48
|
}
|
|
41
|
-
|
|
42
49
|
if (arduinoAgentConnectionStatus === 'connecting') {
|
|
43
50
|
setStatus('warning');
|
|
44
51
|
setMessage(intl.formatMessage({
|
|
@@ -46,16 +53,14 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
|
|
|
46
53
|
}));
|
|
47
54
|
return;
|
|
48
55
|
}
|
|
49
|
-
|
|
50
56
|
if (arduinoAgentConnectionStatus === 'reconnecting') {
|
|
51
57
|
setStatus('warning');
|
|
52
58
|
setMessage(intl.formatMessage({
|
|
53
59
|
id: 'exerciseRunner.controller.arduino.connectionStatus.reconnecting'
|
|
54
60
|
}));
|
|
55
61
|
return;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
62
|
+
}
|
|
63
|
+
// Arduino agent is connected.
|
|
59
64
|
if (arduinoOpenedPort === '' && arduinoUploadProgress === 'ready') {
|
|
60
65
|
setStatus('error');
|
|
61
66
|
setMessage(intl.formatMessage({
|
|
@@ -63,9 +68,7 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
|
|
|
63
68
|
}));
|
|
64
69
|
return;
|
|
65
70
|
}
|
|
66
|
-
|
|
67
71
|
setStatus('success');
|
|
68
|
-
|
|
69
72
|
switch (arduinoUploadProgress) {
|
|
70
73
|
case 'receivedHex':
|
|
71
74
|
case 'starting':
|
|
@@ -74,13 +77,11 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
|
|
|
74
77
|
id: 'exerciseRunner.controller.arduino.connectionStatus.uploading'
|
|
75
78
|
}));
|
|
76
79
|
return;
|
|
77
|
-
|
|
78
80
|
case 'ready':
|
|
79
81
|
case 'error':
|
|
80
82
|
case 'done':
|
|
81
83
|
default:
|
|
82
|
-
|
|
83
|
-
|
|
84
|
+
var device = arduino.getPortFromName(ports, arduinoOpenedPort);
|
|
84
85
|
if (device) {
|
|
85
86
|
setMessage(intl.formatMessage({
|
|
86
87
|
id: 'exerciseRunner.controller.arduino.connectionStatus.connectedDevice'
|
|
@@ -92,16 +93,15 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
|
|
|
92
93
|
id: 'exerciseRunner.controller.arduino.connectionStatus.connected'
|
|
93
94
|
}));
|
|
94
95
|
}
|
|
95
|
-
|
|
96
96
|
return;
|
|
97
97
|
}
|
|
98
|
-
}, [intl, arduinoOpenedPort, arduinoUploadProgress, arduinoAgentConnectionStatus, ports]);
|
|
98
|
+
}, [intl, arduinoOpenedPort, arduinoUploadProgress, arduinoAgentConnectionStatus, ports]);
|
|
99
|
+
//
|
|
99
100
|
//
|
|
100
101
|
//
|
|
101
|
-
|
|
102
102
|
return React__default["default"].createElement(StyledMessageWrapper, {
|
|
103
103
|
align: "center"
|
|
104
|
-
}, React__default["default"].createElement(ExerciseRunnerControllerStatusIndicator, {
|
|
104
|
+
}, React__default["default"].createElement(ExerciseRunnerControllerStatusIndicator["default"], {
|
|
105
105
|
status: status
|
|
106
106
|
}), React__default["default"].createElement(blocks.Text, {
|
|
107
107
|
role: "gray3",
|
|
@@ -109,4 +109,4 @@ const ExerciseRunnerControllerArduinoStatusMessage = () => {
|
|
|
109
109
|
}, message));
|
|
110
110
|
};
|
|
111
111
|
|
|
112
|
-
|
|
112
|
+
exports["default"] = ExerciseRunnerControllerArduinoStatusMessage;
|
package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js
CHANGED
|
@@ -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 reactIntl = require('react-intl');
|
|
5
7
|
var blocks = require('@elice/blocks');
|
|
@@ -31,72 +33,67 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
31
33
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
32
34
|
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
var StyledControllerButton = styled__default["default"](blocks.Button).withConfig({
|
|
35
37
|
componentId: "sc-d9xhed-0"
|
|
36
38
|
})(["position:relative;transition:none;"]);
|
|
37
|
-
|
|
39
|
+
var StyledControllerButtonWrap = styled__default["default"].div.withConfig({
|
|
38
40
|
componentId: "sc-d9xhed-1"
|
|
39
41
|
})(["display:flex;"]);
|
|
40
|
-
|
|
42
|
+
var StyledControllerButtonGroup = styled__default["default"].div.withConfig({
|
|
41
43
|
componentId: "sc-d9xhed-2"
|
|
42
44
|
})(["display:flex;flex-direction:row;align-items:center;> ", ",> ", "{margin-right:0.5rem;&:last-child{margin-right:0;}}"], StyledControllerButtonWrap, StyledControllerButton);
|
|
43
|
-
|
|
44
|
-
const ExerciseRunnerControllerButtonGroup = () => {
|
|
45
|
+
var ExerciseRunnerControllerButtonGroup = function ExerciseRunnerControllerButtonGroup() {
|
|
45
46
|
var _a;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
47
|
+
var intl = reactIntl.useIntl();
|
|
48
|
+
var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
|
|
49
|
+
materialExerciseId = _React$useContext.materialExerciseId,
|
|
50
|
+
onCodeHelpRequest = _React$useContext.onCodeHelpRequest;
|
|
51
|
+
var _React$useContext2 = React__default["default"].useContext(ExerciseRunnerContext.ExerciseRunnerContext),
|
|
52
|
+
onSubmit = _React$useContext2.onSubmit,
|
|
53
|
+
onSyncRequest = _React$useContext2.onSyncRequest,
|
|
54
|
+
onCancel = _React$useContext2.onCancel;
|
|
55
|
+
var runnerWebsocketStatus = recoil.useRecoilValue(recoil$1.exerciseRunnerWebSocketStatusQuery);
|
|
56
|
+
var editorCursorSelectionValue = recoil.useRecoilValue(recoil$1.exerciseFileEditorCursorSelectionValueState);
|
|
57
|
+
var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
|
|
58
|
+
var exerciseRunType = recoil.useRecoilValue(recoil$1.exerciseRunnerRunTypeState);
|
|
59
|
+
var exerciseWithNoGrade = Boolean(exercise === null || exercise === void 0 ? void 0 : exercise.isNoSubmitGrade);
|
|
60
|
+
var lecture = recoil.useRecoilValue(recoil$1.exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
|
|
61
|
+
var isTestLecture = (lecture === null || lecture === void 0 ? void 0 : lecture.lectureType) === types.enums.LectureType.Test;
|
|
62
|
+
var isTestLectureCompleted = (lecture === null || lecture === void 0 ? void 0 : lecture.testAdmissionStatus) === types.enums.TestAdmissionStatus.Completed;
|
|
63
|
+
// runner states
|
|
64
|
+
var isSubmitting = recoil.useRecoilValue(recoil$1.exerciseRunnerSubmittingState);
|
|
65
|
+
var isRunning = recoil.useRecoilValue(recoil$1.exerciseRunnerRunningState);
|
|
66
|
+
var isConnecting = runnerWebsocketStatus === websocket.EliceWebSocket.CONNECTING;
|
|
67
|
+
var isNotReady = runnerWebsocketStatus !== websocket.EliceWebSocket.OPEN;
|
|
68
|
+
// arduino
|
|
69
|
+
var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
|
|
70
|
+
var arduinoUploadProgress = recoil.useRecoilValue(recoil$1.exerciseArduinoUploadProgressState);
|
|
71
|
+
var arduinoOpenedPortName = recoil.useRecoilValue(recoil$1.exerciseArduinoOpenedPortNameState);
|
|
72
|
+
// monaco editor apis
|
|
73
|
+
var exerciseMonacoEditorApis = recoil.useRecoilValue(recoil$1.exerciseMonacoEditorApisState);
|
|
74
|
+
//
|
|
74
75
|
// ========= ui states =========
|
|
75
76
|
//
|
|
76
77
|
// submit run
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const isCodeHelpHidden = isRunning || isTestLecture && !isTestLectureCompleted; //
|
|
78
|
+
var isSubmitRunHidden = isRunning;
|
|
79
|
+
var isSubmitRunArduinoDisabled = isArduinoExercise ? arduinoUploadProgress !== 'ready' && arduinoUploadProgress !== 'error' || !arduinoOpenedPortName : false;
|
|
80
|
+
var isSubmitRunDisabled = isSubmitRunHidden || isSubmitRunArduinoDisabled || isNotReady || isConnecting || isSubmitting;
|
|
81
|
+
// submit grade
|
|
82
|
+
var isSubmitGradeHidden = isRunning;
|
|
83
|
+
var isSubmitGradeDisabled = isSubmitGradeHidden || exerciseWithNoGrade || isTestLecture && isTestLectureCompleted || isNotReady || isConnecting || isSubmitting;
|
|
84
|
+
// cancel
|
|
85
|
+
var isCancelHidden = !isRunning;
|
|
86
|
+
var isCancelDisabled = isCancelHidden || isNotReady || isConnecting;
|
|
87
|
+
// sync request
|
|
88
|
+
var isSyncRequestHidden = !isRunning || !((_a = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _a === void 0 ? void 0 : _a.httpPort);
|
|
89
|
+
var isSyncRequestDisabled = isSyncRequestHidden || isNotReady || isConnecting;
|
|
90
|
+
//
|
|
92
91
|
//
|
|
93
92
|
//
|
|
94
|
-
|
|
95
93
|
/**
|
|
96
94
|
* Submit to run
|
|
97
95
|
*/
|
|
98
|
-
|
|
99
|
-
const handleSubmitRun = () => {
|
|
96
|
+
var handleSubmitRun = function handleSubmitRun() {
|
|
100
97
|
if (!isSubmitRunDisabled) {
|
|
101
98
|
void onSubmit(types.enums.ExerciseRunType.Run);
|
|
102
99
|
}
|
|
@@ -104,9 +101,7 @@ const ExerciseRunnerControllerButtonGroup = () => {
|
|
|
104
101
|
/**
|
|
105
102
|
* Submit to grade
|
|
106
103
|
*/
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
const handleSubmitGrade = () => {
|
|
104
|
+
var handleSubmitGrade = function handleSubmitGrade() {
|
|
110
105
|
if (!isSubmitGradeDisabled) {
|
|
111
106
|
void onSubmit(types.enums.ExerciseRunType.Grade);
|
|
112
107
|
}
|
|
@@ -114,9 +109,7 @@ const ExerciseRunnerControllerButtonGroup = () => {
|
|
|
114
109
|
/**
|
|
115
110
|
* Cancel
|
|
116
111
|
*/
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const handleCancel = () => {
|
|
112
|
+
var handleCancel = function handleCancel() {
|
|
120
113
|
if (!isCancelDisabled) {
|
|
121
114
|
onCancel();
|
|
122
115
|
}
|
|
@@ -124,40 +117,36 @@ const ExerciseRunnerControllerButtonGroup = () => {
|
|
|
124
117
|
/**
|
|
125
118
|
* Sync request
|
|
126
119
|
*/
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
const handleSyncRequest = () => {
|
|
120
|
+
var handleSyncRequest = function handleSyncRequest() {
|
|
130
121
|
if (!isSyncRequestDisabled) {
|
|
131
122
|
onSyncRequest();
|
|
132
123
|
}
|
|
133
|
-
};
|
|
124
|
+
};
|
|
125
|
+
//
|
|
134
126
|
// keyboard shortcuts to control runner
|
|
135
127
|
//
|
|
136
|
-
|
|
137
|
-
|
|
138
128
|
useExericseShortcut.useExericseShortcut('RUNNER_SUBMIT_RUN', handleSubmitRun);
|
|
139
129
|
useExericseShortcut.useExericseShortcut('RUNNER_SUBMIT_GRADE', handleSubmitGrade);
|
|
140
130
|
useExericseShortcut.useExericseShortcut('RUNNER_CANCEL', handleCancel);
|
|
141
|
-
useExericseShortcut.useExericseShortcut('RUNNER_SYNC_REQUEST', handleSyncRequest);
|
|
131
|
+
useExericseShortcut.useExericseShortcut('RUNNER_SYNC_REQUEST', handleSyncRequest);
|
|
132
|
+
//
|
|
142
133
|
// handle save action emitted by file editor
|
|
143
134
|
//
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
return () => {
|
|
135
|
+
React__default["default"].useEffect(function () {
|
|
136
|
+
var saveActionSub = subjects.exerciseFileEditorSaveAction$.subscribe(handleSyncRequest);
|
|
137
|
+
return function () {
|
|
148
138
|
saveActionSub.unsubscribe();
|
|
149
139
|
};
|
|
150
|
-
},
|
|
140
|
+
},
|
|
141
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
151
142
|
[isSyncRequestDisabled]);
|
|
152
143
|
/**
|
|
153
144
|
* Submit to run button
|
|
154
145
|
*/
|
|
155
|
-
|
|
156
|
-
const renderSubmitRunButton = () => {
|
|
146
|
+
var renderSubmitRunButton = function renderSubmitRunButton() {
|
|
157
147
|
if (isSubmitRunHidden) {
|
|
158
148
|
return null;
|
|
159
149
|
}
|
|
160
|
-
|
|
161
150
|
return React__default["default"].createElement(StyledControllerButton, {
|
|
162
151
|
size: "tiny",
|
|
163
152
|
loading: isConnecting || isSubmitting && exerciseRunType === types.enums.ExerciseRunType.Run,
|
|
@@ -172,13 +161,10 @@ const ExerciseRunnerControllerButtonGroup = () => {
|
|
|
172
161
|
/**
|
|
173
162
|
* Submit to grade button
|
|
174
163
|
*/
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
const renderSubmitGradeButton = () => {
|
|
164
|
+
var renderSubmitGradeButton = function renderSubmitGradeButton() {
|
|
178
165
|
if (isSubmitGradeHidden) {
|
|
179
166
|
return null;
|
|
180
167
|
}
|
|
181
|
-
|
|
182
168
|
return React__default["default"].createElement(blocks.Tooltip, {
|
|
183
169
|
title: exerciseWithNoGrade ? intl.formatMessage({
|
|
184
170
|
id: 'exerciseRunner.controller.buttonGroup.button.submit.tooltip.noSubmit'
|
|
@@ -198,13 +184,10 @@ const ExerciseRunnerControllerButtonGroup = () => {
|
|
|
198
184
|
/**
|
|
199
185
|
* Cancel button
|
|
200
186
|
*/
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
const renderCancelButton = () => {
|
|
187
|
+
var renderCancelButton = function renderCancelButton() {
|
|
204
188
|
if (isCancelHidden) {
|
|
205
189
|
return null;
|
|
206
190
|
}
|
|
207
|
-
|
|
208
191
|
return React__default["default"].createElement(StyledControllerButton, {
|
|
209
192
|
size: "tiny",
|
|
210
193
|
role: "danger",
|
|
@@ -218,13 +201,10 @@ const ExerciseRunnerControllerButtonGroup = () => {
|
|
|
218
201
|
/**
|
|
219
202
|
* Sync request button
|
|
220
203
|
*/
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
const renderSyncRequestButton = () => {
|
|
204
|
+
var renderSyncRequestButton = function renderSyncRequestButton() {
|
|
224
205
|
if (isSyncRequestHidden) {
|
|
225
206
|
return null;
|
|
226
207
|
}
|
|
227
|
-
|
|
228
208
|
return React__default["default"].createElement(StyledControllerButton, {
|
|
229
209
|
size: "tiny",
|
|
230
210
|
role: "secondary",
|
|
@@ -238,22 +218,26 @@ const ExerciseRunnerControllerButtonGroup = () => {
|
|
|
238
218
|
/**
|
|
239
219
|
* Code help button
|
|
240
220
|
*/
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
const renderCodeHelpRequestButton = () => {
|
|
244
|
-
if (isCodeHelpHidden || !editorCursorSelectionValue || typeof onCodeHelpRequest !== 'function') {
|
|
221
|
+
var renderCodeHelpRequestButton = function renderCodeHelpRequestButton() {
|
|
222
|
+
if (isRunning || !editorCursorSelectionValue || typeof onCodeHelpRequest !== 'function') {
|
|
245
223
|
return null;
|
|
246
224
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
225
|
+
return React__default["default"].createElement(ExerciseRunnerControllerCodeHelpRequestButton["default"], {
|
|
226
|
+
onClick: function onClick() {
|
|
227
|
+
var _a, _b, _c;
|
|
228
|
+
onCodeHelpRequest({
|
|
229
|
+
code: editorCursorSelectionValue,
|
|
230
|
+
readme: (_a = exercise === null || exercise === void 0 ? void 0 : exercise.description) !== null && _a !== void 0 ? _a : '',
|
|
231
|
+
instruction: (_b = exercise === null || exercise === void 0 ? void 0 : exercise.instructionContent) !== null && _b !== void 0 ? _b : '',
|
|
232
|
+
openFileContent: (_c = exerciseMonacoEditorApis === null || exerciseMonacoEditorApis === void 0 ? void 0 : exerciseMonacoEditorApis.getValue()) !== null && _c !== void 0 ? _c : ''
|
|
233
|
+
});
|
|
234
|
+
}
|
|
250
235
|
});
|
|
251
|
-
};
|
|
236
|
+
};
|
|
237
|
+
//
|
|
252
238
|
//
|
|
253
239
|
//
|
|
254
|
-
|
|
255
|
-
|
|
256
240
|
return React__default["default"].createElement(StyledControllerButtonGroup, null, renderSubmitRunButton(), renderSubmitGradeButton(), renderCancelButton(), renderSyncRequestButton(), renderCodeHelpRequestButton());
|
|
257
241
|
};
|
|
258
242
|
|
|
259
|
-
|
|
243
|
+
exports["default"] = ExerciseRunnerControllerButtonGroup;
|