@elice/material-exercise 1.240718.0-trasncript.0 → 1.240718.0-trasncript.2
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 +519 -0
- package/cjs/assets/empty.png.js +1 -2
- package/cjs/components/index.js +25 -0
- package/cjs/components/locales/index.js +13 -0
- package/cjs/components/material-exercise/MaterialExercise.d.ts +1 -1
- package/cjs/components/material-exercise/MaterialExercise.js +111 -75
- package/cjs/components/material-exercise/MaterialExercise.styled.js +18 -14
- package/cjs/components/material-exercise/MaterialExerciseMobile.d.ts +1 -1
- package/cjs/components/material-exercise/MaterialExerciseMobile.js +17 -7
- package/cjs/components/material-exercise/context/ExerciseProvider.js +68 -58
- package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +39 -30
- package/cjs/components/material-exercise/context/context.js +5 -1
- package/cjs/components/material-exercise/context/index.js +57 -0
- package/cjs/components/material-exercise/context/recoil.js +542 -293
- package/cjs/components/material-exercise/context/subjects.js +4 -4
- package/cjs/components/material-exercise/context/types.d.ts +2 -2
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +100 -78
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +12 -8
- package/cjs/components/material-exercise/exercise-code-history/index.js +7 -0
- package/cjs/components/material-exercise/exercise-code-history/locales/index.js +13 -0
- package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +30 -27
- package/cjs/components/material-exercise/exercise-file/index.js +7 -0
- package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +225 -149
- package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +20 -13
- package/cjs/components/material-exercise/exercise-file-editor/index.js +7 -0
- package/cjs/components/material-exercise/exercise-file-editor/locales/index.js +13 -0
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +49 -29
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.d.ts +1 -2
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +10 -4
- package/cjs/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/ExerciseFileTabsFileTreeButton.js +53 -36
- package/cjs/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/index.js +7 -0
- package/cjs/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/locales/index.js +13 -0
- package/cjs/components/material-exercise/exercise-file-tabs/index.js +9 -0
- package/cjs/components/material-exercise/exercise-file-tabs/locales/index.js +13 -0
- package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +353 -211
- package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.d.ts +1 -2
- package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +10 -4
- package/cjs/components/material-exercise/exercise-file-tree/index.js +9 -0
- package/cjs/components/material-exercise/exercise-file-tree/locales/index.js +13 -0
- package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +18 -15
- package/cjs/components/material-exercise/exercise-file-viewer/index.js +7 -0
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +21 -12
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +12 -11
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +123 -80
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +100 -67
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +40 -22
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +144 -117
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +17 -13
- package/cjs/components/material-exercise/exercise-menu/index.js +7 -0
- package/cjs/components/material-exercise/exercise-menu/locales/index.js +13 -0
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +32 -19
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.d.ts +1 -2
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +10 -4
- package/cjs/components/material-exercise/exercise-multilang-dropdown/index.js +9 -0
- package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +31 -24
- package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -6
- package/cjs/components/material-exercise/exercise-preview/index.js +7 -0
- package/cjs/components/material-exercise/exercise-preview/locales/index.js +13 -0
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +51 -35
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +14 -6
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +90 -78
- package/cjs/components/material-exercise/exercise-rightpane/index.js +7 -0
- package/cjs/components/material-exercise/exercise-rightpane/locales/index.js +13 -0
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +25 -12
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +18 -12
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +504 -349
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +197 -132
- package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
- package/cjs/components/material-exercise/exercise-room/helpers/index.js +7 -0
- package/cjs/components/material-exercise/exercise-room/index.js +7 -0
- package/cjs/components/material-exercise/exercise-room/locales/index.js +13 -0
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +205 -142
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +5 -1
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +25 -16
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +118 -86
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +33 -19
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +95 -82
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +68 -52
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +136 -87
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +6 -2
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +21 -15
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +36 -23
- package/cjs/components/material-exercise/exercise-runner/index.js +7 -0
- package/cjs/components/material-exercise/exercise-runner/locales/index.js +13 -0
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +402 -248
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +12 -8
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +74 -50
- package/cjs/components/material-exercise/exercise-submit-history/index.js +7 -0
- package/cjs/components/material-exercise/exercise-submit-history/locales/index.js +13 -0
- package/cjs/components/material-exercise/index.js +9 -0
- package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +32 -23
- package/cjs/components/shared/exercise-menu-button/index.js +7 -0
- package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +44 -38
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +26 -20
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +14 -8
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +28 -22
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +24 -9
- package/cjs/components/shared/exercise-shimmer/index.js +15 -0
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +6 -5
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +5 -1
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +10 -10
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +13 -5
- package/cjs/components/shared/exercise-version-list/index.js +9 -0
- package/cjs/components/shared/file-icon/FileIcon.js +23 -16
- package/cjs/components/shared/file-icon/index.js +7 -0
- package/cjs/components/shared/file-tabs/FileTab.js +47 -33
- package/cjs/components/shared/file-tabs/FileTab.styled.js +23 -15
- package/cjs/components/shared/file-tabs/FileTabs.js +66 -39
- package/cjs/components/shared/file-tabs/FileTabs.styled.js +6 -2
- package/cjs/components/shared/file-tabs/index.js +7 -0
- package/cjs/components/shared/file-tabs/util.js +27 -14
- package/cjs/components/shared/file-tree/FileTree.js +20 -10
- package/cjs/components/shared/file-tree/FileTreeConfig.js +46 -40
- package/cjs/components/shared/file-tree/FileTreeList.js +43 -40
- package/cjs/components/shared/file-tree/FileTreeListItemContent.js +128 -99
- package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -21
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +106 -96
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +10 -6
- package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +133 -91
- package/cjs/components/shared/file-tree/FileTreeListItems.js +149 -137
- package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +6 -2
- package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +5 -1
- package/cjs/components/shared/file-tree/context/FileTreeContext.d.ts +1 -1
- package/cjs/components/shared/file-tree/context/FileTreeContext.js +101 -79
- package/cjs/components/shared/file-tree/context/index.js +9 -0
- package/cjs/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +59 -54
- package/cjs/components/shared/file-tree/file-tree-toolbar/index.js +7 -0
- package/cjs/components/shared/file-tree/file-tree-toolbar/locales/index.js +13 -0
- package/cjs/components/shared/file-tree/index.js +7 -0
- package/cjs/components/shared/file-tree/locales/index.js +13 -0
- package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +24 -20
- package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -146
- package/cjs/components/shared/file-tree/utils/fileTreeInput.js +11 -0
- package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
- package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -6
- package/cjs/components/shared/file-tree/utils/index.js +20 -0
- package/cjs/components/shared/file-viewer/FileViewer.js +76 -46
- package/cjs/components/shared/file-viewer/FileViewerCsv.js +262 -167
- package/cjs/components/shared/file-viewer/FileViewerImage.js +16 -12
- package/cjs/components/shared/file-viewer/FileViewerIpynb.js +27 -11
- package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +65 -47
- package/cjs/components/shared/file-viewer/FileViewerText.js +23 -11
- package/cjs/components/shared/file-viewer/index.js +7 -0
- package/cjs/components/shared/file-viewer/locales/index.js +21 -0
- package/cjs/components/shared/material-modal/MaterialModal.js +20 -11
- package/cjs/components/shared/material-modal/MaterialModal.styled.js +9 -5
- package/cjs/components/shared/material-modal/index.js +7 -0
- package/cjs/components/shared/monaco-editor/MonacoEditor.js +102 -74
- package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +15 -7
- package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -34
- package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +249 -194
- package/cjs/components/shared/monaco-editor/constants/grammars/index.js +82 -28
- package/cjs/components/shared/monaco-editor/constants/index.js +13 -0
- package/cjs/components/shared/monaco-editor/constants/monaco/index.js +11 -0
- package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
- package/cjs/components/shared/monaco-editor/constants/themes/index.js +49 -17
- package/cjs/components/shared/monaco-editor/editor-hooks/index.js +17 -0
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +11 -10
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +15 -14
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +9 -8
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +34 -30
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +9 -7
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
- package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -10
- package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +3 -2
- package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -10
- package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -2
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/index.js +11 -0
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +37 -10
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +6 -5
- package/cjs/components/shared/monaco-editor/hooks/index.js +7 -0
- package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +11 -5
- package/cjs/components/shared/monaco-editor/index.js +21 -0
- package/cjs/components/shared/monaco-editor/locales/index.js +13 -0
- package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +10 -12
- package/cjs/components/shared/monaco-editor/utils/emmet/index.js +9 -0
- package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -6
- package/cjs/components/shared/monaco-editor/utils/grammar/index.js +67 -24
- package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -6
- package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +70 -37
- package/cjs/components/shared/monaco-editor/utils/index.js +9 -0
- package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +8 -7
- package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -4
- package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -2
- package/cjs/components/shared/monaco-editor/utils/prettier/index.js +27 -7
- package/cjs/components/shared/monaco-editor/utils/theme/convert.js +24 -14
- package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -3
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -56
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -68
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +120 -93
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +155 -132
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -92
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/index.js +12 -0
- 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 -6
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +177 -158
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/index.js +11 -0
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
- package/cjs/components/shared/no-vnc/NoVnc.js +118 -78
- package/cjs/components/shared/no-vnc/NoVncLazy.js +15 -7
- package/cjs/components/shared/no-vnc/index.js +7 -0
- package/cjs/components/shared/preview-container/PreviewContainer.js +18 -13
- package/cjs/components/shared/preview-container/index.js +9 -0
- package/cjs/components/shared/web-browser/WebBrowser.js +74 -52
- package/cjs/components/shared/web-browser/index.js +7 -0
- package/cjs/components/shared/xterm/Xterm.js +82 -57
- package/cjs/components/shared/xterm/XtermLazy.js +15 -7
- package/cjs/components/shared/xterm/index.js +7 -0
- package/cjs/components/shared/xterm/locales/index.js +13 -0
- package/cjs/constants/arduino.js +10 -10
- package/cjs/constants/color.js +1 -1
- package/cjs/constants/index.js +7 -0
- package/cjs/constants/shortcutKeyMap.js +3 -1
- package/cjs/constants/stylesheets.js +7 -5
- package/cjs/hooks/index.js +20 -0
- package/cjs/hooks/useArduino.js +282 -141
- package/cjs/hooks/useExerciseFile.js +24 -22
- package/cjs/hooks/useExericseShortcut.js +6 -4
- package/cjs/hooks/useMaterialExerciseFileUrl.js +55 -33
- package/cjs/hooks/useRunnerRoomWebSocket.js +51 -27
- package/cjs/hooks/useStdioTextConcator.js +15 -11
- package/cjs/hooks/useStdioWebSocket.js +32 -28
- package/cjs/hooks/useUsercodeEditWebSocket.js +238 -158
- package/cjs/hooks/useUsercodeHistory.js +115 -63
- package/cjs/utils/arduino.js +23 -11
- package/cjs/utils/exerciseFile.js +8 -10
- package/cjs/utils/index.js +10 -0
- package/cjs/utils/runner.js +33 -17
- package/es/_virtual/_rollupPluginBabelHelpers.js +499 -0
- package/es/assets/empty.png.js +1 -2
- package/es/components/index.js +8 -0
- package/es/components/locales/index.js +4 -0
- package/es/components/material-exercise/MaterialExercise.d.ts +1 -1
- package/es/components/material-exercise/MaterialExercise.js +107 -75
- package/es/components/material-exercise/MaterialExercise.styled.js +14 -14
- package/es/components/material-exercise/MaterialExerciseMobile.d.ts +1 -1
- package/es/components/material-exercise/MaterialExerciseMobile.js +13 -7
- package/es/components/material-exercise/context/ExerciseProvider.js +63 -58
- package/es/components/material-exercise/context/ExerciseProviderNoImage.js +35 -30
- package/es/components/material-exercise/context/context.js +1 -1
- package/es/components/material-exercise/context/index.js +5 -0
- package/es/components/material-exercise/context/recoil.js +535 -290
- package/es/components/material-exercise/context/subjects.js +4 -4
- package/es/components/material-exercise/context/types.d.ts +2 -2
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +95 -78
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
- package/es/components/material-exercise/exercise-code-history/index.js +1 -0
- package/es/components/material-exercise/exercise-code-history/locales/index.js +4 -0
- package/es/components/material-exercise/exercise-file/ExerciseFile.js +25 -27
- package/es/components/material-exercise/exercise-file/index.js +1 -0
- package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +221 -149
- package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +15 -13
- package/es/components/material-exercise/exercise-file-editor/index.js +1 -0
- package/es/components/material-exercise/exercise-file-editor/locales/index.js +4 -0
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +44 -29
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.d.ts +1 -2
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
- package/es/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/ExerciseFileTabsFileTreeButton.js +48 -36
- package/es/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/index.js +1 -0
- package/es/components/material-exercise/exercise-file-tabs/exercise-file-tabs-file-tree-button/locales/index.js +4 -0
- package/es/components/material-exercise/exercise-file-tabs/index.js +2 -0
- package/es/components/material-exercise/exercise-file-tabs/locales/index.js +4 -0
- package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +348 -211
- package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.d.ts +1 -2
- package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
- package/es/components/material-exercise/exercise-file-tree/index.js +2 -0
- package/es/components/material-exercise/exercise-file-tree/locales/index.js +4 -0
- package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +14 -15
- package/es/components/material-exercise/exercise-file-viewer/index.js +1 -0
- package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +16 -12
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +12 -11
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +119 -80
- package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +96 -67
- package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +41 -23
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +143 -120
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +13 -13
- package/es/components/material-exercise/exercise-menu/index.js +1 -0
- package/es/components/material-exercise/exercise-menu/locales/index.js +4 -0
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -19
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.d.ts +1 -2
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +6 -4
- package/es/components/material-exercise/exercise-multilang-dropdown/index.js +2 -0
- package/es/components/material-exercise/exercise-preview/ExercisePreview.js +26 -24
- package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +14 -7
- package/es/components/material-exercise/exercise-preview/index.js +1 -0
- package/es/components/material-exercise/exercise-preview/locales/index.js +4 -0
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +47 -35
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +10 -6
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +85 -78
- package/es/components/material-exercise/exercise-rightpane/index.js +1 -0
- package/es/components/material-exercise/exercise-rightpane/locales/index.js +4 -0
- package/es/components/material-exercise/exercise-room/ExerciseRoom.js +21 -12
- package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
- package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +498 -349
- package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +193 -133
- package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
- package/es/components/material-exercise/exercise-room/helpers/index.js +1 -0
- package/es/components/material-exercise/exercise-room/index.js +1 -0
- package/es/components/material-exercise/exercise-room/locales/index.js +4 -0
- package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +200 -142
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +20 -16
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +112 -85
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +30 -20
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +90 -82
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +63 -52
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +131 -87
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -2
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +17 -15
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +31 -23
- package/es/components/material-exercise/exercise-runner/index.js +1 -0
- package/es/components/material-exercise/exercise-runner/locales/index.js +4 -0
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +399 -250
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +68 -49
- package/es/components/material-exercise/exercise-submit-history/index.js +1 -0
- package/es/components/material-exercise/exercise-submit-history/locales/index.js +4 -0
- package/es/components/material-exercise/index.js +2 -0
- package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +29 -24
- package/es/components/shared/exercise-menu-button/index.js +1 -0
- package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +40 -38
- package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +22 -20
- package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +10 -8
- package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +24 -22
- package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +19 -9
- package/es/components/shared/exercise-shimmer/index.js +5 -0
- package/es/components/shared/exercise-version-list/ExerciseVersionList.js +6 -5
- package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +10 -10
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
- package/es/components/shared/exercise-version-list/index.js +2 -0
- package/es/components/shared/file-icon/FileIcon.js +19 -16
- package/es/components/shared/file-icon/index.js +1 -0
- package/es/components/shared/file-tabs/FileTab.js +43 -33
- package/es/components/shared/file-tabs/FileTab.styled.js +19 -15
- package/es/components/shared/file-tabs/FileTabs.js +62 -40
- package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
- package/es/components/shared/file-tabs/index.js +1 -0
- package/es/components/shared/file-tabs/util.js +27 -14
- package/es/components/shared/file-tree/FileTree.js +16 -10
- package/es/components/shared/file-tree/FileTreeConfig.js +39 -39
- package/es/components/shared/file-tree/FileTreeList.js +38 -40
- package/es/components/shared/file-tree/FileTreeListItemContent.js +124 -99
- package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +25 -21
- package/es/components/shared/file-tree/FileTreeListItemContentInput.js +102 -96
- package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
- package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +129 -91
- package/es/components/shared/file-tree/FileTreeListItems.js +149 -137
- package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
- package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
- package/es/components/shared/file-tree/context/FileTreeContext.d.ts +1 -1
- package/es/components/shared/file-tree/context/FileTreeContext.js +97 -79
- package/es/components/shared/file-tree/context/index.js +1 -0
- package/es/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +55 -54
- package/es/components/shared/file-tree/file-tree-toolbar/index.js +1 -0
- package/es/components/shared/file-tree/file-tree-toolbar/locales/index.js +4 -0
- package/es/components/shared/file-tree/index.js +1 -0
- package/es/components/shared/file-tree/locales/index.js +4 -0
- package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -20
- package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -146
- package/es/components/shared/file-tree/utils/fileTreeInput.js +11 -1
- package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
- package/es/components/shared/file-tree/utils/fileTreePath.js +5 -6
- package/es/components/shared/file-tree/utils/index.js +5 -0
- package/es/components/shared/file-viewer/FileViewer.js +69 -46
- package/es/components/shared/file-viewer/FileViewerCsv.js +257 -167
- package/es/components/shared/file-viewer/FileViewerImage.js +12 -12
- package/es/components/shared/file-viewer/FileViewerIpynb.js +21 -11
- package/es/components/shared/file-viewer/FileViewerNonViewable.js +60 -47
- package/es/components/shared/file-viewer/FileViewerText.js +19 -11
- package/es/components/shared/file-viewer/index.js +1 -0
- package/es/components/shared/file-viewer/locales/index.js +8 -0
- package/es/components/shared/material-modal/MaterialModal.js +20 -11
- package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
- package/es/components/shared/material-modal/index.js +1 -0
- package/es/components/shared/monaco-editor/MonacoEditor.js +95 -72
- package/es/components/shared/monaco-editor/MonacoEditorLazy.js +11 -7
- package/es/components/shared/monaco-editor/MonacoEditorMobile.js +43 -32
- package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +244 -194
- package/es/components/shared/monaco-editor/constants/grammars/index.js +82 -28
- package/es/components/shared/monaco-editor/constants/index.js +2 -0
- package/es/components/shared/monaco-editor/constants/monaco/index.js +1 -0
- package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
- package/es/components/shared/monaco-editor/constants/themes/index.js +49 -17
- package/es/components/shared/monaco-editor/editor-hooks/index.js +6 -0
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +11 -10
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +15 -14
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +9 -8
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +34 -30
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +9 -7
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
- package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -10
- package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -10
- package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
- package/es/components/shared/monaco-editor/editor-languages/typescript/dts/index.js +3 -0
- package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +37 -10
- package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +3 -3
- package/es/components/shared/monaco-editor/hooks/index.js +1 -0
- package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +11 -5
- package/es/components/shared/monaco-editor/index.js +6 -0
- package/es/components/shared/monaco-editor/locales/index.js +4 -0
- package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +10 -12
- package/es/components/shared/monaco-editor/utils/emmet/index.js +1 -0
- package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -6
- package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -24
- package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -6
- package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -35
- package/es/components/shared/monaco-editor/utils/index.js +2 -0
- package/es/components/shared/monaco-editor/utils/monacoLanguage.js +5 -5
- package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -4
- package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -2
- package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -7
- package/es/components/shared/monaco-editor/utils/theme/convert.js +19 -13
- package/es/components/shared/monaco-editor/utils/theme/index.js +22 -3
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -56
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -68
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +120 -93
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +152 -130
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -92
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/index.js +3 -0
- 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 -6
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +171 -156
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/index.js +2 -0
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
- package/es/components/shared/no-vnc/NoVnc.js +99 -71
- package/es/components/shared/no-vnc/NoVncLazy.js +11 -7
- package/es/components/shared/no-vnc/index.js +1 -0
- package/es/components/shared/preview-container/PreviewContainer.js +15 -14
- package/es/components/shared/preview-container/index.js +1 -0
- package/es/components/shared/web-browser/WebBrowser.js +69 -52
- package/es/components/shared/web-browser/index.js +1 -0
- package/es/components/shared/xterm/Xterm.js +77 -57
- package/es/components/shared/xterm/XtermLazy.js +11 -7
- package/es/components/shared/xterm/index.js +1 -0
- package/es/components/shared/xterm/locales/index.js +4 -0
- package/es/constants/arduino.js +10 -10
- package/es/constants/color.js +1 -1
- package/es/constants/index.js +1 -0
- package/es/constants/shortcutKeyMap.js +3 -1
- package/es/constants/stylesheets.js +7 -5
- package/es/hooks/index.js +7 -0
- package/es/hooks/useArduino.js +278 -141
- package/es/hooks/useExerciseFile.js +24 -22
- package/es/hooks/useExericseShortcut.js +6 -4
- package/es/hooks/useMaterialExerciseFileUrl.js +52 -34
- package/es/hooks/useRunnerRoomWebSocket.js +51 -27
- package/es/hooks/useStdioTextConcator.js +11 -11
- package/es/hooks/useStdioWebSocket.js +32 -28
- package/es/hooks/useUsercodeEditWebSocket.js +232 -157
- package/es/hooks/useUsercodeHistory.js +115 -63
- package/es/utils/arduino.js +24 -12
- package/es/utils/exerciseFile.js +8 -10
- package/es/utils/index.js +2 -0
- package/es/utils/runner.js +33 -17
- package/package.json +11 -15
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
7
|
var React = require('react');
|
|
6
8
|
var reactUse = require('react-use');
|
|
7
9
|
var apiClient = require('@elice/api-client');
|
|
@@ -35,57 +37,61 @@ var ExerciseRunnerController = require('./ExerciseRunnerController.js');
|
|
|
35
37
|
var en = require('./locales/en.json.js');
|
|
36
38
|
var ko = require('./locales/ko.json.js');
|
|
37
39
|
|
|
38
|
-
|
|
40
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
41
|
+
|
|
42
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
43
|
+
var styled__default = /*#__PURE__*/_interopDefaultCompat(styled);
|
|
44
|
+
|
|
45
|
+
var EXERCISE_RUNNER_HORIZONTAL_RATIO = {
|
|
39
46
|
PREVIEW: 0.3,
|
|
40
47
|
XTERM: 0.7
|
|
41
48
|
};
|
|
42
|
-
|
|
49
|
+
var StyledExerciseRunner = styled__default.default.div.withConfig({
|
|
43
50
|
componentId: "sc-mp78g-0"
|
|
44
51
|
})(["display:flex;flex-direction:column;width:100%;height:100%;background-color:", ";min-height:0;"], designTokens.base.color.navy8);
|
|
45
52
|
/**
|
|
46
53
|
*
|
|
47
54
|
*/
|
|
48
|
-
|
|
49
|
-
exercisePreview,
|
|
50
|
-
|
|
51
|
-
}) => {
|
|
55
|
+
var ExerciseRunner = function ExerciseRunner(_ref) {
|
|
56
|
+
var exercisePreview = _ref.exercisePreview,
|
|
57
|
+
__intl = _ref.__intl;
|
|
52
58
|
var _a, _b, _c;
|
|
53
|
-
|
|
54
|
-
onCodeHelpRequest,
|
|
55
|
-
onStdioError
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const {
|
|
66
|
-
fontSize: editorPreferenceFontSize
|
|
67
|
-
} = recoil.useRecoilValue(recoil$1.exerciseEditorPreferenceState);
|
|
59
|
+
var _React$useContext = React__default.default.useContext(context.ExerciseContext),
|
|
60
|
+
onCodeHelpRequest = _React$useContext.onCodeHelpRequest,
|
|
61
|
+
onStdioError = _React$useContext.onStdioError;
|
|
62
|
+
var _React$useContext2 = React__default.default.useContext(context.ExerciseContext),
|
|
63
|
+
materialExerciseId = _React$useContext2.materialExerciseId,
|
|
64
|
+
exerciseRoomId = _React$useContext2.exerciseRoomId,
|
|
65
|
+
locale = _React$useContext2.locale,
|
|
66
|
+
onSubmit = _React$useContext2.onSubmit,
|
|
67
|
+
onError = _React$useContext2.onError;
|
|
68
|
+
var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
|
|
69
|
+
var _useRecoilValue = recoil.useRecoilValue(recoil$1.exerciseEditorPreferenceState),
|
|
70
|
+
editorPreferenceFontSize = _useRecoilValue.fontSize;
|
|
68
71
|
// runner states
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
var setRunnerSubmitting = recoil.useSetRecoilState(recoil$1.exerciseRunnerSubmittingState);
|
|
73
|
+
var setRunnerRunning = recoil.useSetRecoilState(recoil$1.exerciseRunnerRunningState);
|
|
74
|
+
var _useRecoilState = recoil.useRecoilState(recoil$1.exerciseRunnerRunTypeState),
|
|
75
|
+
_useRecoilState2 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState, 2),
|
|
76
|
+
runnerRunTypeState = _useRecoilState2[0],
|
|
77
|
+
setRunnerRunTypeState = _useRecoilState2[1];
|
|
78
|
+
var setExerciseRunnerRoomConnectionInfo = recoil.useSetRecoilState(recoil$1.exerciseRunnerRoomConnectionInfoState);
|
|
79
|
+
var setRunnerStdioFilesState = recoil.useSetRecoilState(recoil$1.exerciseRunnerStdioFilesState);
|
|
74
80
|
// preview states
|
|
75
|
-
|
|
76
|
-
|
|
81
|
+
var exercisePreviewType = recoil.useRecoilValue(recoil$1.exercisePreviewTypeState(materialExerciseId));
|
|
82
|
+
var exercisePreviewDisplayMode = recoil.useRecoilValue(recoil$1.exercisePreviewDisplayModeState);
|
|
77
83
|
// monaco editor value
|
|
78
|
-
|
|
84
|
+
var exerciseMonacoEditorApis = recoil.useRecoilValue(recoil$1.exerciseMonacoEditorApisState);
|
|
79
85
|
// websockets
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
86
|
+
var setRunnerRoomWebSocketState = recoil.useSetRecoilState(recoil$1.exerciseWebsocketQuery('runnerRoom'));
|
|
87
|
+
var setStdioWebSocketState = recoil.useSetRecoilState(recoil$1.exerciseWebsocketQuery('stdio'));
|
|
88
|
+
var handleAiHelpibotError = function handleAiHelpibotError(text) {
|
|
83
89
|
var _a, _b, _c;
|
|
84
90
|
// check whether error callback prop is defined
|
|
85
91
|
if (!onStdioError && !onCodeHelpRequest) {
|
|
86
92
|
return;
|
|
87
93
|
}
|
|
88
|
-
|
|
94
|
+
var error = runner.getProgrammingErrorResult(text);
|
|
89
95
|
if (!!error && typeof onStdioError === 'function') {
|
|
90
96
|
onStdioError(error);
|
|
91
97
|
}
|
|
@@ -99,31 +105,33 @@ const ExerciseRunner = ({
|
|
|
99
105
|
});
|
|
100
106
|
}
|
|
101
107
|
};
|
|
102
|
-
|
|
103
|
-
updateStdioTextConcator
|
|
104
|
-
} = useStdioTextConcator.useStdioTextConcator(handleAiHelpibotError);
|
|
108
|
+
var _useStdioTextConcator = useStdioTextConcator.useStdioTextConcator(handleAiHelpibotError),
|
|
109
|
+
updateStdioTextConcator = _useStdioTextConcator.updateStdioTextConcator;
|
|
105
110
|
// etc
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
+
var exerciseContainerSize = recoil.useRecoilValue(recoil$1.exerciseContainerSizeState);
|
|
112
|
+
var _React$useState = React__default.default.useState(null),
|
|
113
|
+
_React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
|
|
114
|
+
runnerSubmitErrorDialog = _React$useState2[0],
|
|
115
|
+
setRunnerSubmitErrorDialog = _React$useState2[1];
|
|
116
|
+
var arduinoTextBuffer = React__default.default.useRef('');
|
|
117
|
+
var runnerRunTypeRef = React__default.default.useRef(runnerRunTypeState);
|
|
118
|
+
var xterm = React__default.default.useRef(null);
|
|
111
119
|
/**
|
|
112
120
|
* Handle text received from arduino serial output.
|
|
113
121
|
*/
|
|
114
|
-
|
|
122
|
+
var handleArduinoDigitalOutput = function handleArduinoDigitalOutput(text) {
|
|
115
123
|
var _a;
|
|
116
124
|
(_a = xterm.current) === null || _a === void 0 ? void 0 : _a.write(text);
|
|
117
125
|
};
|
|
118
126
|
// Arduino
|
|
119
|
-
|
|
127
|
+
var arduino = useArduino.useArduino({
|
|
120
128
|
writeTerminal: handleArduinoDigitalOutput
|
|
121
129
|
});
|
|
122
|
-
|
|
130
|
+
var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
|
|
123
131
|
/**
|
|
124
132
|
* Handle destroy arduino client.
|
|
125
133
|
*/
|
|
126
|
-
|
|
134
|
+
var handleArduinoDistroy = React__default.default.useCallback(function () {
|
|
127
135
|
if (isArduinoExercise) {
|
|
128
136
|
arduino.destroy();
|
|
129
137
|
}
|
|
@@ -131,7 +139,7 @@ const ExerciseRunner = ({
|
|
|
131
139
|
/**
|
|
132
140
|
* Handle text received from stdio websocket.
|
|
133
141
|
*/
|
|
134
|
-
|
|
142
|
+
var handleWsStdioTextReceive = function handleWsStdioTextReceive(type, text) {
|
|
135
143
|
var _a, _b, _c;
|
|
136
144
|
switch (type) {
|
|
137
145
|
case 'text':
|
|
@@ -149,7 +157,7 @@ const ExerciseRunner = ({
|
|
|
149
157
|
/**
|
|
150
158
|
* Handle file received from stdio websocket.
|
|
151
159
|
*/
|
|
152
|
-
|
|
160
|
+
var handleWsStdioFileReceive = function handleWsStdioFileReceive(stdioFile) {
|
|
153
161
|
// arduino exercise
|
|
154
162
|
if (isArduinoExercise) {
|
|
155
163
|
if ('filename' in stdioFile && stdioFile.filename.startsWith('firmware') && stdioFile.filename.endsWith('hex')) {
|
|
@@ -158,18 +166,20 @@ const ExerciseRunner = ({
|
|
|
158
166
|
return;
|
|
159
167
|
}
|
|
160
168
|
// normal exercise
|
|
161
|
-
setRunnerStdioFilesState(
|
|
169
|
+
setRunnerStdioFilesState(function (prevFiles) {
|
|
170
|
+
return [].concat(_rollupPluginBabelHelpers.toConsumableArray(prevFiles), [stdioFile]);
|
|
171
|
+
});
|
|
162
172
|
};
|
|
163
173
|
/**
|
|
164
174
|
* Runner room websocket
|
|
165
175
|
*/
|
|
166
|
-
|
|
167
|
-
exerciseRoomId
|
|
176
|
+
var wsRunnerRoom = useRunnerRoomWebSocket.useRunnerRoomWebSocket({
|
|
177
|
+
exerciseRoomId: exerciseRoomId
|
|
168
178
|
});
|
|
169
179
|
/**
|
|
170
180
|
* Stdio websocket
|
|
171
181
|
*/
|
|
172
|
-
|
|
182
|
+
var wsStdio = useStdioWebSocket.useStdioWebSocket({
|
|
173
183
|
wsUri: (_a = wsRunnerRoom.roomConnectionInfo) === null || _a === void 0 ? void 0 : _a.wsUri,
|
|
174
184
|
roomToken: (_b = wsRunnerRoom.roomConnectionInfo) === null || _b === void 0 ? void 0 : _b.roomToken,
|
|
175
185
|
isTty: (_c = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _c === void 0 ? void 0 : _c.isTty,
|
|
@@ -179,7 +189,7 @@ const ExerciseRunner = ({
|
|
|
179
189
|
/**
|
|
180
190
|
* Handle submit code error.
|
|
181
191
|
*/
|
|
182
|
-
|
|
192
|
+
var handleRunnerSubmitError = function handleRunnerSubmitError(err) {
|
|
183
193
|
var _a, _b;
|
|
184
194
|
switch ((_a = err.detail) === null || _a === void 0 ? void 0 : _a.failCode) {
|
|
185
195
|
case 'room_type_mismatch':
|
|
@@ -195,7 +205,9 @@ const ExerciseRunner = ({
|
|
|
195
205
|
action: __intl.formatMessage({
|
|
196
206
|
id: 'exerciseRunner.submitErrorDialog.action.reload'
|
|
197
207
|
}),
|
|
198
|
-
onAction: ()
|
|
208
|
+
onAction: function onAction() {
|
|
209
|
+
return window.location.reload();
|
|
210
|
+
}
|
|
199
211
|
});
|
|
200
212
|
break;
|
|
201
213
|
case 'invalid_room_token':
|
|
@@ -207,7 +219,9 @@ const ExerciseRunner = ({
|
|
|
207
219
|
action: __intl.formatMessage({
|
|
208
220
|
id: 'exerciseRunner.submitErrorDialog.action.reload'
|
|
209
221
|
}),
|
|
210
|
-
onAction: ()
|
|
222
|
+
onAction: function onAction() {
|
|
223
|
+
return window.location.reload();
|
|
224
|
+
}
|
|
211
225
|
});
|
|
212
226
|
break;
|
|
213
227
|
case 'not_for_submit_grade':
|
|
@@ -230,7 +244,9 @@ const ExerciseRunner = ({
|
|
|
230
244
|
action: __intl.formatMessage({
|
|
231
245
|
id: 'exerciseRunner.submitErrorDialog.action.reload'
|
|
232
246
|
}),
|
|
233
|
-
onAction: ()
|
|
247
|
+
onAction: function onAction() {
|
|
248
|
+
return window.location.reload();
|
|
249
|
+
}
|
|
234
250
|
});
|
|
235
251
|
break;
|
|
236
252
|
case 'not_prepared_room_forwarder':
|
|
@@ -283,60 +299,89 @@ const ExerciseRunner = ({
|
|
|
283
299
|
/**
|
|
284
300
|
* Handle submit code to runner and run / grade.
|
|
285
301
|
*/
|
|
286
|
-
|
|
287
|
-
var
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
302
|
+
var handleRunnerSubmit = /*#__PURE__*/function () {
|
|
303
|
+
var _ref2 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee(runType) {
|
|
304
|
+
var _a, _b, _c, readyExerciseImage, roomToken;
|
|
305
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
|
|
306
|
+
while (1) switch (_context.prev = _context.next) {
|
|
307
|
+
case 0:
|
|
308
|
+
readyExerciseImage = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage;
|
|
309
|
+
roomToken = (_a = wsRunnerRoom.roomConnectionInfo) === null || _a === void 0 ? void 0 : _a.roomToken;
|
|
310
|
+
if (!(!readyExerciseImage || !roomToken)) {
|
|
311
|
+
_context.next = 4;
|
|
312
|
+
break;
|
|
313
|
+
}
|
|
314
|
+
return _context.abrupt("return");
|
|
315
|
+
case 4:
|
|
316
|
+
setRunnerStdioFilesState([]);
|
|
317
|
+
setRunnerRunTypeState(runType);
|
|
318
|
+
setRunnerSubmitting(true);
|
|
319
|
+
return _context.abrupt("return", apiClient.postOrgMaterialExerciseExerciseRunningSubmit({
|
|
320
|
+
roomToken: roomToken,
|
|
321
|
+
runType: runType,
|
|
322
|
+
exerciseImageId: readyExerciseImage.id,
|
|
323
|
+
vncWidth: readyExerciseImage.isVnc ? Math.max((_b = readyExerciseImage.defaultVncWidth) !== null && _b !== void 0 ? _b : 0, 640) : undefined,
|
|
324
|
+
vncHeight: readyExerciseImage.isVnc ? Math.max((_c = readyExerciseImage.defaultVncHeight) !== null && _c !== void 0 ? _c : 0, 480) : undefined
|
|
325
|
+
}).then(function (res) {
|
|
326
|
+
if (typeof onSubmit === 'function') {
|
|
327
|
+
onSubmit(res);
|
|
328
|
+
}
|
|
329
|
+
}).catch(function (err) {
|
|
330
|
+
setRunnerSubmitting(false);
|
|
331
|
+
handleRunnerSubmitError(err);
|
|
332
|
+
if (typeof onError === 'function') {
|
|
333
|
+
onError(err);
|
|
334
|
+
}
|
|
335
|
+
}));
|
|
336
|
+
case 8:
|
|
337
|
+
case "end":
|
|
338
|
+
return _context.stop();
|
|
339
|
+
}
|
|
340
|
+
}, _callee);
|
|
341
|
+
}));
|
|
342
|
+
return function handleRunnerSubmit(_x) {
|
|
343
|
+
return _ref2.apply(this, arguments);
|
|
344
|
+
};
|
|
345
|
+
}();
|
|
314
346
|
/**
|
|
315
347
|
* Handle runner to cancel running.
|
|
316
348
|
*/
|
|
317
|
-
|
|
318
|
-
var
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
349
|
+
var handleRunnerCancel = /*#__PURE__*/function () {
|
|
350
|
+
var _ref3 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee2() {
|
|
351
|
+
var _a, roomToken;
|
|
352
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
353
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
354
|
+
case 0:
|
|
355
|
+
roomToken = (_a = wsRunnerRoom.roomConnectionInfo) === null || _a === void 0 ? void 0 : _a.roomToken;
|
|
356
|
+
if (roomToken) {
|
|
357
|
+
void apiClient.postOrgMaterialExerciseExerciseRunningCancel({
|
|
358
|
+
roomToken: roomToken
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
case 2:
|
|
362
|
+
case "end":
|
|
363
|
+
return _context2.stop();
|
|
364
|
+
}
|
|
365
|
+
}, _callee2);
|
|
366
|
+
}));
|
|
367
|
+
return function handleRunnerCancel() {
|
|
368
|
+
return _ref3.apply(this, arguments);
|
|
369
|
+
};
|
|
370
|
+
}();
|
|
326
371
|
/**
|
|
327
372
|
* Handle runner to request code sync.
|
|
328
373
|
*/
|
|
329
|
-
|
|
374
|
+
var handleRunnerSyncRequest = function handleRunnerSyncRequest() {
|
|
330
375
|
wsStdio.sendSync();
|
|
331
376
|
};
|
|
332
377
|
/**
|
|
333
378
|
* Handle input requests for arduino.
|
|
334
379
|
*/
|
|
335
|
-
|
|
380
|
+
var handleXtermArduinoInputRequest = function handleXtermArduinoInputRequest(char) {
|
|
336
381
|
var _a, _b, _c;
|
|
337
382
|
switch (char) {
|
|
338
383
|
// backspace
|
|
339
|
-
case
|
|
384
|
+
case "\x7F":
|
|
340
385
|
(_a = xterm.current) === null || _a === void 0 ? void 0 : _a.write(' ');
|
|
341
386
|
arduinoTextBuffer.current = arduinoTextBuffer.current.slice(0, -1);
|
|
342
387
|
break;
|
|
@@ -351,14 +396,14 @@ const ExerciseRunner = ({
|
|
|
351
396
|
// any char
|
|
352
397
|
default:
|
|
353
398
|
(_c = xterm.current) === null || _c === void 0 ? void 0 : _c.write(char);
|
|
354
|
-
arduinoTextBuffer.current =
|
|
399
|
+
arduinoTextBuffer.current = "".concat(arduinoTextBuffer.current).concat(char);
|
|
355
400
|
break;
|
|
356
401
|
}
|
|
357
402
|
};
|
|
358
403
|
/**
|
|
359
404
|
* Handle input requests.
|
|
360
405
|
*/
|
|
361
|
-
|
|
406
|
+
var handleXtermInputRequest = function handleXtermInputRequest(text) {
|
|
362
407
|
if (isArduinoExercise) {
|
|
363
408
|
handleXtermArduinoInputRequest(text);
|
|
364
409
|
} else {
|
|
@@ -368,12 +413,12 @@ const ExerciseRunner = ({
|
|
|
368
413
|
//
|
|
369
414
|
// Initialize Arduino devices.
|
|
370
415
|
//
|
|
371
|
-
|
|
416
|
+
React__default.default.useEffect(function () {
|
|
372
417
|
if (!isArduinoExercise) {
|
|
373
418
|
return;
|
|
374
419
|
}
|
|
375
420
|
void arduino.init();
|
|
376
|
-
return ()
|
|
421
|
+
return function () {
|
|
377
422
|
void arduino.destroy();
|
|
378
423
|
};
|
|
379
424
|
},
|
|
@@ -386,13 +431,17 @@ const ExerciseRunner = ({
|
|
|
386
431
|
//
|
|
387
432
|
// Update runner room websocket state.
|
|
388
433
|
//
|
|
389
|
-
|
|
434
|
+
React__default.default.useEffect(function () {
|
|
435
|
+
return setRunnerRoomWebSocketState(wsRunnerRoom.readyState);
|
|
436
|
+
},
|
|
390
437
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
391
438
|
[wsRunnerRoom.readyState]);
|
|
392
439
|
//
|
|
393
440
|
// Update stdio websocket state.
|
|
394
441
|
//
|
|
395
|
-
|
|
442
|
+
React__default.default.useEffect(function () {
|
|
443
|
+
return setStdioWebSocketState(wsStdio.readyState);
|
|
444
|
+
},
|
|
396
445
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
397
446
|
[wsStdio.readyState]);
|
|
398
447
|
//
|
|
@@ -400,15 +449,17 @@ const ExerciseRunner = ({
|
|
|
400
449
|
// whenever runner room's running status is changed.
|
|
401
450
|
// (assume that sumbitting done when running status is changed)
|
|
402
451
|
//
|
|
403
|
-
|
|
452
|
+
React__default.default.useEffect(function () {
|
|
453
|
+
return setRunnerSubmitting(false);
|
|
454
|
+
},
|
|
404
455
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
405
456
|
[wsRunnerRoom.isRunning]);
|
|
406
457
|
//
|
|
407
458
|
// Auto focus terminal when running.
|
|
408
459
|
//
|
|
409
|
-
|
|
460
|
+
React__default.default.useEffect(function () {
|
|
410
461
|
if (wsRunnerRoom.isRunning) {
|
|
411
|
-
setTimeout(()
|
|
462
|
+
setTimeout(function () {
|
|
412
463
|
var _a;
|
|
413
464
|
return (_a = xterm.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
414
465
|
}, 100);
|
|
@@ -419,27 +470,31 @@ const ExerciseRunner = ({
|
|
|
419
470
|
//
|
|
420
471
|
// Bind runner run type to ref.
|
|
421
472
|
//
|
|
422
|
-
|
|
473
|
+
React__default.default.useEffect(function () {
|
|
423
474
|
runnerRunTypeRef.current = runnerRunTypeState;
|
|
424
475
|
}, [runnerRunTypeState]);
|
|
425
476
|
//
|
|
426
477
|
// Update room connection info.
|
|
427
478
|
//
|
|
428
|
-
|
|
479
|
+
React__default.default.useEffect(function () {
|
|
480
|
+
return setRunnerRunning(wsRunnerRoom.isRunning);
|
|
481
|
+
},
|
|
429
482
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
430
483
|
[wsRunnerRoom.isRunning]);
|
|
431
484
|
//
|
|
432
485
|
// Update room connection info.
|
|
433
486
|
//
|
|
434
|
-
|
|
487
|
+
React__default.default.useEffect(function () {
|
|
488
|
+
return setExerciseRunnerRoomConnectionInfo(wsRunnerRoom.roomConnectionInfo);
|
|
489
|
+
},
|
|
435
490
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
436
491
|
[wsRunnerRoom.roomConnectionInfo]);
|
|
437
492
|
//
|
|
438
493
|
// handle send text request to runner stdio.
|
|
439
494
|
//
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
return ()
|
|
495
|
+
React__default.default.useEffect(function () {
|
|
496
|
+
var textSendSub = subjects.exerciseRunnerTextSend$.subscribe(wsStdio.sendText);
|
|
497
|
+
return function () {
|
|
443
498
|
textSendSub.unsubscribe();
|
|
444
499
|
};
|
|
445
500
|
},
|
|
@@ -448,14 +503,14 @@ const ExerciseRunner = ({
|
|
|
448
503
|
/**
|
|
449
504
|
* Preview.
|
|
450
505
|
*/
|
|
451
|
-
|
|
506
|
+
var renderPreview = function renderPreview() {
|
|
452
507
|
if (exercisePreviewType === recoilTypes.ExercisePreviewType.None) {
|
|
453
508
|
return null;
|
|
454
509
|
}
|
|
455
510
|
if (exercisePreviewDisplayMode !== recoilTypes.ExercisePreviewDisplayMode.Mini) {
|
|
456
511
|
return null;
|
|
457
512
|
}
|
|
458
|
-
return
|
|
513
|
+
return jsxRuntime.jsx(blocks.ResizableNext, Object.assign({}, stylesheets.MATERIAL_RESIZABLE_COMMON_PROPS, {
|
|
459
514
|
children: exercisePreview,
|
|
460
515
|
initialWidth: exerciseContainerSize.width * EXERCISE_RUNNER_HORIZONTAL_RATIO.PREVIEW,
|
|
461
516
|
resizeHandles: ['e'],
|
|
@@ -465,14 +520,14 @@ const ExerciseRunner = ({
|
|
|
465
520
|
/**
|
|
466
521
|
* Xterm
|
|
467
522
|
*/
|
|
468
|
-
|
|
523
|
+
var renderXterm = function renderXterm() {
|
|
469
524
|
// show system message when...
|
|
470
|
-
|
|
525
|
+
var showSystemMessage =
|
|
471
526
|
// - run type is grade
|
|
472
527
|
runnerRunTypeState === types.enums.ExerciseRunType.Grade ||
|
|
473
528
|
// - not an arduino exercise
|
|
474
529
|
!isArduinoExercise;
|
|
475
|
-
return
|
|
530
|
+
return jsxRuntime.jsx(XtermLazy.default, {
|
|
476
531
|
isRunning: wsRunnerRoom.isRunning,
|
|
477
532
|
fontSize: editorPreferenceFontSize,
|
|
478
533
|
suppressSystemMessage: !showSystemMessage,
|
|
@@ -485,45 +540,53 @@ const ExerciseRunner = ({
|
|
|
485
540
|
/**
|
|
486
541
|
* Runner submit error dialog.
|
|
487
542
|
*/
|
|
488
|
-
|
|
543
|
+
var renderRunnerSubmitErrorDialog = function renderRunnerSubmitErrorDialog() {
|
|
489
544
|
if (!runnerSubmitErrorDialog) {
|
|
490
545
|
return null;
|
|
491
546
|
}
|
|
492
|
-
return
|
|
547
|
+
return jsxRuntime.jsx(blocks.Dialog, {
|
|
493
548
|
type: "error",
|
|
494
549
|
title: __intl.formatMessage({
|
|
495
550
|
id: 'exerciseRunner.submitErrorDialog.title'
|
|
496
551
|
}),
|
|
497
|
-
body:
|
|
498
|
-
onHide: ()
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
552
|
+
body: "".concat(runnerSubmitErrorDialog.message, "\n(error code: ").concat(runnerSubmitErrorDialog.code, ")"),
|
|
553
|
+
onHide: function onHide() {
|
|
554
|
+
return setRunnerSubmitErrorDialog(null);
|
|
555
|
+
},
|
|
556
|
+
children: jsxRuntime.jsx(blocks.Dialog.ActionButton, {
|
|
557
|
+
children: runnerSubmitErrorDialog.action,
|
|
558
|
+
onClick: function onClick() {
|
|
559
|
+
if (typeof runnerSubmitErrorDialog.onAction === 'function') {
|
|
560
|
+
runnerSubmitErrorDialog.onAction();
|
|
561
|
+
}
|
|
562
|
+
setRunnerSubmitErrorDialog(null);
|
|
504
563
|
}
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
}));
|
|
564
|
+
})
|
|
565
|
+
});
|
|
508
566
|
};
|
|
509
567
|
//
|
|
510
568
|
//
|
|
511
569
|
//
|
|
512
|
-
return
|
|
513
|
-
value: __intl
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
570
|
+
return jsxRuntime.jsx(intl.RawEliceIntlProvider, {
|
|
571
|
+
value: __intl,
|
|
572
|
+
children: jsxRuntime.jsx(StyledExerciseRunner, {
|
|
573
|
+
children: jsxRuntime.jsxs(ExerciseRunnerContext.ExerciseRunnerContext.Provider, {
|
|
574
|
+
value: {
|
|
575
|
+
onSubmit: handleRunnerSubmit,
|
|
576
|
+
onCancel: handleRunnerCancel,
|
|
577
|
+
onSyncRequest: handleRunnerSyncRequest
|
|
578
|
+
},
|
|
579
|
+
children: [jsxRuntime.jsx(ExerciseRunnerController.default, {}), jsxRuntime.jsxs(blocks.Flex, {
|
|
580
|
+
auto: true,
|
|
581
|
+
style: {
|
|
582
|
+
minHeight: 0
|
|
583
|
+
},
|
|
584
|
+
overflow: "hidden",
|
|
585
|
+
children: [renderPreview(), renderXterm(), renderRunnerSubmitErrorDialog()]
|
|
586
|
+
})]
|
|
587
|
+
})
|
|
588
|
+
})
|
|
589
|
+
});
|
|
527
590
|
};
|
|
528
591
|
var ExerciseRunner$1 = new intl.IntlComponentBuilder(ExerciseRunner).add('en', en.default).add('ko', ko.default).addAsync('th', Promise.resolve().then(function () { return require('./locales/th.json.js'); })).addAsync('ja', Promise.resolve().then(function () { return require('./locales/ja.json.js'); })).build();
|
|
529
592
|
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
8
|
+
|
|
9
|
+
var ExerciseRunnerContext = React__default.default.createContext(null);
|
|
6
10
|
|
|
7
11
|
exports.ExerciseRunnerContext = ExerciseRunnerContext;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
6
|
var React = require('react');
|
|
6
7
|
var blocks = require('@elice/blocks');
|
|
7
8
|
var types = require('@elice/types');
|
|
@@ -20,24 +21,32 @@ var ExerciseRunnerControllerRunningInfo = require('./ExerciseRunnerControllerRun
|
|
|
20
21
|
var ExerciseRunnerControllerStatusMessage = require('./ExerciseRunnerControllerStatusMessage.js');
|
|
21
22
|
var ExerciseRunnerControllerTimer = require('./ExerciseRunnerControllerTimer.js');
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
25
|
+
|
|
26
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
27
|
+
var styled__default = /*#__PURE__*/_interopDefaultCompat(styled);
|
|
28
|
+
|
|
29
|
+
var RUNNER_CONTROLLER_HEIGHT = 50;
|
|
30
|
+
var StyledController = styled__default.default.div.withConfig({
|
|
25
31
|
componentId: "sc-1fvokag-0"
|
|
26
32
|
})(["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);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
materialExerciseId
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
33
|
+
var ExerciseRunnerController = function ExerciseRunnerController() {
|
|
34
|
+
var _React$useContext = React__default.default.useContext(context.ExerciseContext),
|
|
35
|
+
materialExerciseId = _React$useContext.materialExerciseId;
|
|
36
|
+
var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
|
|
37
|
+
var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
|
|
38
|
+
return jsxRuntime.jsxs(StyledController, {
|
|
39
|
+
children: [jsxRuntime.jsxs(blocks.Flex, {
|
|
40
|
+
align: "center",
|
|
41
|
+
children: [jsxRuntime.jsx(ExerciseRunnerControllerButtonGroup.default, {}), jsxRuntime.jsx(blocks.Hspace, {
|
|
42
|
+
width: 1
|
|
43
|
+
}), jsxRuntime.jsx(ExerciseRunnerControllerRunningInfo.default, {}), jsxRuntime.jsx(ExerciseRunnerControllerTimer.default, {})]
|
|
44
|
+
}), jsxRuntime.jsxs(blocks.Flex, {
|
|
45
|
+
column: true,
|
|
46
|
+
align: "flex-end",
|
|
47
|
+
children: [jsxRuntime.jsx(ExerciseRunnerControllerStatusMessage.default, {}), isArduinoExercise ? jsxRuntime.jsx(ExerciseRunnerControllerArduinoStatusMessage.default, {}) : null]
|
|
48
|
+
}), isArduinoExercise ? jsxRuntime.jsx(ExerciseRunnerControllerArduinoAgentModal.default, {}) : null]
|
|
49
|
+
});
|
|
41
50
|
};
|
|
42
51
|
|
|
43
52
|
exports.default = ExerciseRunnerController;
|