@elice/material-exercise 1.230328.0 → 1.230418.1
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.js +559 -371
- 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/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 +225 -198
- 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 +219 -220
- 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 +70 -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.js +560 -372
- 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/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 +218 -193
- 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 +212 -215
- 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 +66 -93
- 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
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
5
6
|
var apiClient = require('@elice/api-client');
|
|
6
7
|
var types = require('@elice/types');
|
|
7
8
|
var websocket = require('@elice/websocket');
|
|
@@ -21,196 +22,319 @@ var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
|
|
|
21
22
|
|
|
22
23
|
//
|
|
23
24
|
//
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
//
|
|
26
|
+
var KEY_PREFIX = 'MaterialExercise/Exercise/Global';
|
|
27
|
+
//
|
|
26
28
|
// =============== entities ===============
|
|
27
29
|
//
|
|
28
|
-
|
|
29
30
|
/**
|
|
30
31
|
* Lecture.
|
|
31
32
|
*/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
key: `${KEY_PREFIX}/Lecture`,
|
|
33
|
+
var exerciseLectureState = recoil.atomFamily({
|
|
34
|
+
key: "".concat(KEY_PREFIX, "/Lecture"),
|
|
35
35
|
default: null,
|
|
36
|
-
effects: lectureId
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
36
|
+
effects: function effects(lectureId) {
|
|
37
|
+
return [function (_ref) {
|
|
38
|
+
var setSelf = _ref.setSelf,
|
|
39
|
+
trigger = _ref.trigger,
|
|
40
|
+
onSet = _ref.onSet;
|
|
41
|
+
var get = /*#__PURE__*/function () {
|
|
42
|
+
var _ref2 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
|
|
43
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
|
|
44
|
+
while (1) switch (_context.prev = _context.next) {
|
|
45
|
+
case 0:
|
|
46
|
+
if (lectureId) {
|
|
47
|
+
_context.next = 3;
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
setSelf(null);
|
|
51
|
+
return _context.abrupt("return");
|
|
52
|
+
case 3:
|
|
53
|
+
_context.t0 = setSelf;
|
|
54
|
+
_context.next = 6;
|
|
55
|
+
return apiClient.getOrgLectureGet({
|
|
56
|
+
lectureId: lectureId
|
|
57
|
+
}).then(function (res) {
|
|
58
|
+
return res.lecture;
|
|
59
|
+
}).catch(function () {
|
|
60
|
+
return null;
|
|
61
|
+
});
|
|
62
|
+
case 6:
|
|
63
|
+
_context.t1 = _context.sent;
|
|
64
|
+
(0, _context.t0)(_context.t1);
|
|
65
|
+
case 8:
|
|
66
|
+
case "end":
|
|
67
|
+
return _context.stop();
|
|
68
|
+
}
|
|
69
|
+
}, _callee);
|
|
70
|
+
}));
|
|
71
|
+
return function get() {
|
|
72
|
+
return _ref2.apply(this, arguments);
|
|
73
|
+
};
|
|
74
|
+
}();
|
|
75
|
+
if (trigger === 'get') {
|
|
58
76
|
void get();
|
|
59
77
|
}
|
|
60
|
-
|
|
61
|
-
|
|
78
|
+
onSet(function (_prevValue, _newValue, isReset) {
|
|
79
|
+
if (isReset) {
|
|
80
|
+
void get();
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}];
|
|
84
|
+
}
|
|
62
85
|
});
|
|
63
86
|
/**
|
|
64
87
|
* Material exercise.
|
|
65
88
|
*/
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
key: `${KEY_PREFIX}/Exercise`,
|
|
89
|
+
var exerciseState = recoil.atomFamily({
|
|
90
|
+
key: "".concat(KEY_PREFIX, "/Exercise"),
|
|
69
91
|
default: null,
|
|
70
|
-
effects: materialExerciseId
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
effects: function effects(materialExerciseId) {
|
|
93
|
+
return [function (_ref3) {
|
|
94
|
+
var setSelf = _ref3.setSelf,
|
|
95
|
+
trigger = _ref3.trigger;
|
|
96
|
+
var get = /*#__PURE__*/function () {
|
|
97
|
+
var _ref4 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee2() {
|
|
98
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
99
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
100
|
+
case 0:
|
|
101
|
+
_context2.t0 = setSelf;
|
|
102
|
+
_context2.next = 3;
|
|
103
|
+
return apiClient.getOrgMaterialExerciseGet({
|
|
104
|
+
materialExerciseId: materialExerciseId
|
|
105
|
+
}).then(function (res) {
|
|
106
|
+
return res.materialExercise;
|
|
107
|
+
}).then(function (materialExercise) {
|
|
108
|
+
return Promise.all([materialExercise, apiClient.getOrgLecturePageResolve({
|
|
109
|
+
materialId: materialExercise.id,
|
|
110
|
+
materialType: types.enums.LectureMaterialType.Exercise
|
|
111
|
+
}).then(function (res) {
|
|
112
|
+
return {
|
|
113
|
+
_courseId: res.courseId,
|
|
114
|
+
_lectureId: res.lectureId,
|
|
115
|
+
_lecturePageId: res.lecturePageId,
|
|
116
|
+
_orderNo: res.orderNo
|
|
117
|
+
};
|
|
118
|
+
}).catch(function (err) {
|
|
119
|
+
throw err;
|
|
120
|
+
})]);
|
|
121
|
+
}).then(function (_ref5) {
|
|
122
|
+
var _ref6 = _rollupPluginBabelHelpers.slicedToArray(_ref5, 2),
|
|
123
|
+
materialExercise = _ref6[0],
|
|
124
|
+
lecturePageResolve = _ref6[1];
|
|
125
|
+
return Object.assign(Object.assign({}, materialExercise), lecturePageResolve);
|
|
126
|
+
}).catch(function () {
|
|
127
|
+
return null;
|
|
128
|
+
});
|
|
129
|
+
case 3:
|
|
130
|
+
_context2.t1 = _context2.sent;
|
|
131
|
+
(0, _context2.t0)(_context2.t1);
|
|
132
|
+
case 5:
|
|
133
|
+
case "end":
|
|
134
|
+
return _context2.stop();
|
|
135
|
+
}
|
|
136
|
+
}, _callee2);
|
|
137
|
+
}));
|
|
138
|
+
return function get() {
|
|
139
|
+
return _ref4.apply(this, arguments);
|
|
140
|
+
};
|
|
141
|
+
}();
|
|
142
|
+
if (trigger === 'get') {
|
|
143
|
+
void get();
|
|
144
|
+
}
|
|
145
|
+
}];
|
|
146
|
+
}
|
|
94
147
|
});
|
|
95
148
|
/**
|
|
96
149
|
* Material exercise room.
|
|
97
150
|
*/
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
key: `${KEY_PREFIX}/ExerciseRoom`,
|
|
151
|
+
var exerciseRoomState = recoil.atomFamily({
|
|
152
|
+
key: "".concat(KEY_PREFIX, "/ExerciseRoom"),
|
|
101
153
|
default: null,
|
|
102
|
-
effects: exerciseRoomId
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
154
|
+
effects: function effects(exerciseRoomId) {
|
|
155
|
+
return [function (_ref7) {
|
|
156
|
+
var setSelf = _ref7.setSelf,
|
|
157
|
+
trigger = _ref7.trigger;
|
|
158
|
+
var get = /*#__PURE__*/function () {
|
|
159
|
+
var _ref8 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee3() {
|
|
160
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
161
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
162
|
+
case 0:
|
|
163
|
+
if (exerciseRoomId) {
|
|
164
|
+
_context3.next = 2;
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
return _context3.abrupt("return", null);
|
|
168
|
+
case 2:
|
|
169
|
+
_context3.t0 = setSelf;
|
|
170
|
+
_context3.next = 5;
|
|
171
|
+
return apiClient.getOrgMaterialExerciseExerciseRoomGet({
|
|
172
|
+
exerciseRoomId: exerciseRoomId
|
|
173
|
+
}).then(function (res) {
|
|
174
|
+
return res.exerciseRoom;
|
|
175
|
+
}).catch(function () {
|
|
176
|
+
return null;
|
|
177
|
+
});
|
|
178
|
+
case 5:
|
|
179
|
+
_context3.t1 = _context3.sent;
|
|
180
|
+
(0, _context3.t0)(_context3.t1);
|
|
181
|
+
case 7:
|
|
182
|
+
case "end":
|
|
183
|
+
return _context3.stop();
|
|
184
|
+
}
|
|
185
|
+
}, _callee3);
|
|
186
|
+
}));
|
|
187
|
+
return function get() {
|
|
188
|
+
return _ref8.apply(this, arguments);
|
|
189
|
+
};
|
|
190
|
+
}();
|
|
191
|
+
if (trigger === 'get') {
|
|
192
|
+
void get();
|
|
109
193
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
exerciseRoomId
|
|
113
|
-
}).then(res => res.exerciseRoom).catch(() => null));
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
if (trigger === 'get') {
|
|
117
|
-
void get();
|
|
118
|
-
}
|
|
119
|
-
}]
|
|
194
|
+
}];
|
|
195
|
+
}
|
|
120
196
|
});
|
|
121
197
|
/**
|
|
122
198
|
* User.
|
|
123
199
|
*/
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
key: `${KEY_PREFIX}/User`,
|
|
200
|
+
var exerciseUserState = recoil.atom({
|
|
201
|
+
key: "".concat(KEY_PREFIX, "/User"),
|
|
127
202
|
default: null,
|
|
128
|
-
effects: [({
|
|
129
|
-
setSelf,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
203
|
+
effects: [function (_ref9) {
|
|
204
|
+
var setSelf = _ref9.setSelf,
|
|
205
|
+
trigger = _ref9.trigger;
|
|
206
|
+
var get = /*#__PURE__*/function () {
|
|
207
|
+
var _ref10 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee4() {
|
|
208
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
209
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
210
|
+
case 0:
|
|
211
|
+
_context4.t0 = setSelf;
|
|
212
|
+
_context4.next = 3;
|
|
213
|
+
return apiClient.getOrgUserGet().then(function (res) {
|
|
214
|
+
return res.user;
|
|
215
|
+
}).catch(function () {
|
|
216
|
+
return null;
|
|
217
|
+
});
|
|
218
|
+
case 3:
|
|
219
|
+
_context4.t1 = _context4.sent;
|
|
220
|
+
(0, _context4.t0)(_context4.t1);
|
|
221
|
+
case 5:
|
|
222
|
+
case "end":
|
|
223
|
+
return _context4.stop();
|
|
224
|
+
}
|
|
225
|
+
}, _callee4);
|
|
226
|
+
}));
|
|
227
|
+
return function get() {
|
|
228
|
+
return _ref10.apply(this, arguments);
|
|
229
|
+
};
|
|
230
|
+
}();
|
|
136
231
|
if (trigger === 'get') {
|
|
137
232
|
void get();
|
|
138
233
|
}
|
|
139
234
|
}]
|
|
140
|
-
});
|
|
235
|
+
});
|
|
236
|
+
//
|
|
141
237
|
// =============== file tabs ===============
|
|
142
238
|
//
|
|
143
|
-
|
|
144
239
|
/**
|
|
145
240
|
*
|
|
146
241
|
*/
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
key: `${KEY_PREFIX}/FileTabs/Opened`,
|
|
242
|
+
var exerciseFileTabsOpenedState = recoil.atomFamily({
|
|
243
|
+
key: "".concat(KEY_PREFIX, "/FileTabs/Opened"),
|
|
150
244
|
default: recoil.selectorFamily({
|
|
151
|
-
key:
|
|
152
|
-
get: ({
|
|
153
|
-
materialExerciseId,
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
245
|
+
key: "".concat(KEY_PREFIX, "}/FileTabs/Opened/Default"),
|
|
246
|
+
get: function get(_ref11) {
|
|
247
|
+
var materialExerciseId = _ref11.materialExerciseId,
|
|
248
|
+
exerciseRoomId = _ref11.exerciseRoomId;
|
|
249
|
+
return /*#__PURE__*/function () {
|
|
250
|
+
var _ref13 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee5(_ref12) {
|
|
251
|
+
var get, _a, _b, _c, _d, exercise, mulLang, mulEnv, openFilelist;
|
|
252
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
253
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
254
|
+
case 0:
|
|
255
|
+
get = _ref12.get;
|
|
256
|
+
exercise = get(exerciseState(materialExerciseId));
|
|
257
|
+
mulLang = get(exerciseMultilangLanguagesState(materialExerciseId));
|
|
258
|
+
mulEnv = get(exerciseMultilangEnvironmentState({
|
|
259
|
+
materialExerciseId: materialExerciseId,
|
|
260
|
+
exerciseRoomId: exerciseRoomId
|
|
261
|
+
}));
|
|
262
|
+
if (!((exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.MultiLanguage && mulLang && mulEnv)) {
|
|
263
|
+
_context5.next = 9;
|
|
264
|
+
break;
|
|
265
|
+
}
|
|
266
|
+
openFilelist = (_b = (_a = mulLang === null || mulLang === void 0 ? void 0 : mulLang[mulEnv === null || mulEnv === void 0 ? void 0 : mulEnv.language]) === null || _a === void 0 ? void 0 : _a.initialOpenFilelist) !== null && _b !== void 0 ? _b : [];
|
|
267
|
+
return _context5.abrupt("return", openFilelist);
|
|
268
|
+
case 9:
|
|
269
|
+
return _context5.abrupt("return", (_d = (_c = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _c === void 0 ? void 0 : _c.initialOpenFilelist) !== null && _d !== void 0 ? _d : []);
|
|
270
|
+
case 10:
|
|
271
|
+
case "end":
|
|
272
|
+
return _context5.stop();
|
|
273
|
+
}
|
|
274
|
+
}, _callee5);
|
|
275
|
+
}));
|
|
276
|
+
return function (_x) {
|
|
277
|
+
return _ref13.apply(this, arguments);
|
|
278
|
+
};
|
|
279
|
+
}();
|
|
173
280
|
}
|
|
174
281
|
})
|
|
175
|
-
});
|
|
282
|
+
});
|
|
283
|
+
//
|
|
176
284
|
// =============== file tree ===============
|
|
177
285
|
//
|
|
178
|
-
|
|
179
286
|
/**
|
|
180
287
|
*
|
|
181
288
|
*/
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
key: `${KEY_PREFIX}/FileTree/Opened`,
|
|
289
|
+
var exerciseFileTreeOpenedState = recoil.atom({
|
|
290
|
+
key: "".concat(KEY_PREFIX, "/FileTree/Opened"),
|
|
185
291
|
default: false
|
|
186
|
-
});
|
|
292
|
+
});
|
|
293
|
+
//
|
|
187
294
|
// =============== preference ===============
|
|
188
295
|
//
|
|
189
|
-
|
|
190
|
-
const EDITOR_ACCOUNT_PREFERENCE_PKEY_MONACO = 'material.exercise.editor.preference';
|
|
296
|
+
var EDITOR_ACCOUNT_PREFERENCE_PKEY_MONACO = 'material.exercise.editor.preference';
|
|
191
297
|
/**
|
|
192
298
|
* Editor preference.
|
|
193
299
|
*/
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
key: `${KEY_PREFIX}/EditorPreference`,
|
|
300
|
+
var exerciseEditorPreferenceState = recoil.atom({
|
|
301
|
+
key: "".concat(KEY_PREFIX, "/EditorPreference"),
|
|
197
302
|
default: preferences.DEFAULT_MONACO_EDITOR_PREFERENCE,
|
|
198
|
-
effects: [({
|
|
199
|
-
setSelf,
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
303
|
+
effects: [function (_ref14) {
|
|
304
|
+
var setSelf = _ref14.setSelf,
|
|
305
|
+
trigger = _ref14.trigger,
|
|
306
|
+
onSet = _ref14.onSet;
|
|
307
|
+
var get = /*#__PURE__*/function () {
|
|
308
|
+
var _ref15 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee6() {
|
|
309
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
310
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
311
|
+
case 0:
|
|
312
|
+
_context6.t0 = setSelf;
|
|
313
|
+
_context6.next = 3;
|
|
314
|
+
return apiClient.getGlobalAccountPreferenceGet({
|
|
315
|
+
pkey: EDITOR_ACCOUNT_PREFERENCE_PKEY_MONACO
|
|
316
|
+
}).then(function (res) {
|
|
317
|
+
return monacoPreference.normalizeMonacoPreference(res.pvalue);
|
|
318
|
+
}).catch(function () {
|
|
319
|
+
return preferences.DEFAULT_MONACO_EDITOR_PREFERENCE;
|
|
320
|
+
});
|
|
321
|
+
case 3:
|
|
322
|
+
_context6.t1 = _context6.sent;
|
|
323
|
+
(0, _context6.t0)(_context6.t1);
|
|
324
|
+
case 5:
|
|
325
|
+
case "end":
|
|
326
|
+
return _context6.stop();
|
|
327
|
+
}
|
|
328
|
+
}, _callee6);
|
|
329
|
+
}));
|
|
330
|
+
return function get() {
|
|
331
|
+
return _ref15.apply(this, arguments);
|
|
332
|
+
};
|
|
333
|
+
}();
|
|
209
334
|
if (trigger === 'get') {
|
|
210
335
|
void get();
|
|
211
336
|
}
|
|
212
|
-
|
|
213
|
-
onSet((newPreference, prevPreference, isReset) => {
|
|
337
|
+
onSet(function (newPreference, prevPreference, isReset) {
|
|
214
338
|
if (!isEqual__default["default"](newPreference, prevPreference) && !isReset) {
|
|
215
339
|
void apiClient.postGlobalAccountPreferenceEdit({
|
|
216
340
|
pkey: EDITOR_ACCOUNT_PREFERENCE_PKEY_MONACO,
|
|
@@ -219,58 +343,73 @@ const exerciseEditorPreferenceState = recoil.atom({
|
|
|
219
343
|
}
|
|
220
344
|
});
|
|
221
345
|
}]
|
|
222
|
-
});
|
|
346
|
+
});
|
|
347
|
+
//
|
|
223
348
|
// =============== preview ===============
|
|
224
349
|
//
|
|
225
|
-
|
|
226
|
-
const EDITOR_ACCOUNT_PREFERENCE_PKEY_PREVIEW_MODE = 'material.exercise.preview.mode';
|
|
350
|
+
var EDITOR_ACCOUNT_PREFERENCE_PKEY_PREVIEW_MODE = 'material.exercise.preview.mode';
|
|
227
351
|
/**
|
|
228
352
|
*
|
|
229
353
|
*/
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
default:
|
|
247
|
-
return recoilTypes.ExercisePreviewType.None;
|
|
248
|
-
}
|
|
354
|
+
var exercisePreviewTypeState = recoil.selectorFamily({
|
|
355
|
+
key: "".concat(KEY_PREFIX, "/Preview/Type"),
|
|
356
|
+
get: function get(materialExerciseId) {
|
|
357
|
+
return function (_ref16) {
|
|
358
|
+
var get = _ref16.get;
|
|
359
|
+
var exercise = get(exerciseState(materialExerciseId));
|
|
360
|
+
var readyExerciseImage = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage;
|
|
361
|
+
switch (true) {
|
|
362
|
+
case Boolean(readyExerciseImage === null || readyExerciseImage === void 0 ? void 0 : readyExerciseImage.isVnc):
|
|
363
|
+
return recoilTypes.ExercisePreviewType.NoVnc;
|
|
364
|
+
case Boolean(readyExerciseImage === null || readyExerciseImage === void 0 ? void 0 : readyExerciseImage.httpPort):
|
|
365
|
+
return recoilTypes.ExercisePreviewType.WebBrowser;
|
|
366
|
+
default:
|
|
367
|
+
return recoilTypes.ExercisePreviewType.None;
|
|
368
|
+
}
|
|
369
|
+
};
|
|
249
370
|
}
|
|
250
371
|
});
|
|
251
372
|
/**
|
|
252
373
|
*
|
|
253
374
|
*/
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
key: `${KEY_PREFIX}/Preview/DisplayMode`,
|
|
375
|
+
var exercisePreviewDisplayModeState = recoil.atom({
|
|
376
|
+
key: "".concat(KEY_PREFIX, "/Preview/DisplayMode"),
|
|
257
377
|
default: recoilTypes.ExercisePreviewDisplayMode.Mini,
|
|
258
|
-
effects: [({
|
|
259
|
-
trigger,
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
378
|
+
effects: [function (_ref17) {
|
|
379
|
+
var trigger = _ref17.trigger,
|
|
380
|
+
setSelf = _ref17.setSelf,
|
|
381
|
+
onSet = _ref17.onSet;
|
|
382
|
+
var get = /*#__PURE__*/function () {
|
|
383
|
+
var _ref18 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee7() {
|
|
384
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
385
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
386
|
+
case 0:
|
|
387
|
+
_context7.t0 = setSelf;
|
|
388
|
+
_context7.next = 3;
|
|
389
|
+
return apiClient.getGlobalAccountPreferenceGet({
|
|
390
|
+
pkey: EDITOR_ACCOUNT_PREFERENCE_PKEY_PREVIEW_MODE
|
|
391
|
+
}).then(function (res) {
|
|
392
|
+
return Number(res.pvalue) || recoilTypes.ExercisePreviewDisplayMode.Mini;
|
|
393
|
+
}).catch(function () {
|
|
394
|
+
return recoilTypes.ExercisePreviewDisplayMode.Mini;
|
|
395
|
+
});
|
|
396
|
+
case 3:
|
|
397
|
+
_context7.t1 = _context7.sent;
|
|
398
|
+
(0, _context7.t0)(_context7.t1);
|
|
399
|
+
case 5:
|
|
400
|
+
case "end":
|
|
401
|
+
return _context7.stop();
|
|
402
|
+
}
|
|
403
|
+
}, _callee7);
|
|
404
|
+
}));
|
|
405
|
+
return function get() {
|
|
406
|
+
return _ref18.apply(this, arguments);
|
|
407
|
+
};
|
|
408
|
+
}();
|
|
269
409
|
if (trigger === 'get') {
|
|
270
410
|
void get();
|
|
271
411
|
}
|
|
272
|
-
|
|
273
|
-
onSet((newDisplayMode, prevDisplayMode, isReset) => {
|
|
412
|
+
onSet(function (newDisplayMode, prevDisplayMode, isReset) {
|
|
274
413
|
if (!isEqual__default["default"](newDisplayMode, prevDisplayMode) && !isReset) {
|
|
275
414
|
void apiClient.postGlobalAccountPreferenceEdit({
|
|
276
415
|
pkey: EDITOR_ACCOUNT_PREFERENCE_PKEY_PREVIEW_MODE,
|
|
@@ -279,81 +418,77 @@ const exercisePreviewDisplayModeState = recoil.atom({
|
|
|
279
418
|
}
|
|
280
419
|
});
|
|
281
420
|
}]
|
|
282
|
-
});
|
|
421
|
+
});
|
|
422
|
+
//
|
|
283
423
|
// =============== runner ===============
|
|
284
424
|
//
|
|
285
|
-
|
|
286
425
|
/**
|
|
287
426
|
*
|
|
288
427
|
*/
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
key: `${KEY_PREFIX}/Runner/Submitting`,
|
|
428
|
+
var exerciseRunnerSubmittingState = recoil.atom({
|
|
429
|
+
key: "".concat(KEY_PREFIX, "/Runner/Submitting"),
|
|
292
430
|
default: false
|
|
293
431
|
});
|
|
294
432
|
/**
|
|
295
433
|
*
|
|
296
434
|
*/
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
key: `${KEY_PREFIX}/Runner/Running`,
|
|
435
|
+
var exerciseRunnerRunningState = recoil.atom({
|
|
436
|
+
key: "".concat(KEY_PREFIX, "/Runner/Running"),
|
|
300
437
|
default: false
|
|
301
438
|
});
|
|
302
439
|
/**
|
|
303
440
|
*
|
|
304
441
|
*/
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
key: `${KEY_PREFIX}/Runner/RunType`,
|
|
442
|
+
var exerciseRunnerRunTypeState = recoil.atom({
|
|
443
|
+
key: "".concat(KEY_PREFIX, "/Runner/RunType"),
|
|
308
444
|
default: null
|
|
309
445
|
});
|
|
310
446
|
/**
|
|
311
447
|
*
|
|
312
448
|
*/
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
key: `${KEY_PREFIX}/Runner/RoomConnectionInfoState`,
|
|
449
|
+
var exerciseRunnerRoomConnectionInfoState = recoil.atom({
|
|
450
|
+
key: "".concat(KEY_PREFIX, "/Runner/RoomConnectionInfoState"),
|
|
316
451
|
default: null
|
|
317
452
|
});
|
|
318
453
|
/**
|
|
319
454
|
*
|
|
320
455
|
*/
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
key: `${KEY_PREFIX}/Runner/StdioFiles`,
|
|
456
|
+
var exerciseRunnerStdioFilesState = recoil.atom({
|
|
457
|
+
key: "".concat(KEY_PREFIX, "/Runner/StdioFiles"),
|
|
324
458
|
default: []
|
|
325
459
|
});
|
|
326
460
|
/**
|
|
327
461
|
*
|
|
328
462
|
*/
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
const states = Object.freeze([get(exerciseWebsocketStates).runnerRoom, get(exerciseWebsocketStates).stdio]); // connecting
|
|
336
|
-
|
|
463
|
+
var exerciseRunnerWebSocketStatusQuery = recoil.selector({
|
|
464
|
+
key: "".concat(KEY_PREFIX, "/Runner/WebsocketState"),
|
|
465
|
+
get: function get(_ref19) {
|
|
466
|
+
var _get = _ref19.get;
|
|
467
|
+
var states = Object.freeze([_get(exerciseWebsocketStates).runnerRoom, _get(exerciseWebsocketStates).stdio]);
|
|
468
|
+
// connecting
|
|
337
469
|
if (states.includes(websocket.EliceWebSocket.CLOSED) || states.includes(websocket.EliceWebSocket.CONNECTING)) {
|
|
338
470
|
return websocket.EliceWebSocket.CONNECTING;
|
|
339
|
-
}
|
|
340
|
-
|
|
471
|
+
}
|
|
472
|
+
// connected
|
|
473
|
+
else if (states.every(function (state) {
|
|
474
|
+
return state === WebSocket.OPEN;
|
|
475
|
+
})) {
|
|
341
476
|
return websocket.EliceWebSocket.OPEN;
|
|
342
|
-
}
|
|
477
|
+
}
|
|
478
|
+
// reconnecting
|
|
343
479
|
else {
|
|
344
480
|
return websocket.EliceWebSocket.CONNECTING;
|
|
345
481
|
}
|
|
346
482
|
}
|
|
347
|
-
});
|
|
483
|
+
});
|
|
484
|
+
//
|
|
348
485
|
// =============== websocket ===============
|
|
349
486
|
//
|
|
350
|
-
|
|
351
487
|
/**
|
|
352
488
|
*
|
|
353
489
|
*/
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
key: `${KEY_PREFIX}/Websocket/States`,
|
|
490
|
+
var exerciseWebsocketStates = recoil.atom({
|
|
491
|
+
key: "".concat(KEY_PREFIX, "/Websocket/States"),
|
|
357
492
|
default: {
|
|
358
493
|
runnerRoom: websocket.EliceWebSocket.CLOSED,
|
|
359
494
|
stdio: websocket.EliceWebSocket.CLOSED,
|
|
@@ -363,158 +498,222 @@ const exerciseWebsocketStates = recoil.atom({
|
|
|
363
498
|
/**
|
|
364
499
|
*
|
|
365
500
|
*/
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
501
|
+
var exerciseWebsocketQuery = recoil.selectorFamily({
|
|
502
|
+
key: "".concat(KEY_PREFIX, "/Websocket/State"),
|
|
503
|
+
get: function get(key) {
|
|
504
|
+
return function (_ref20) {
|
|
505
|
+
var get = _ref20.get;
|
|
506
|
+
return get(exerciseWebsocketStates)[key];
|
|
507
|
+
};
|
|
373
508
|
},
|
|
374
|
-
set: key
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
}));
|
|
509
|
+
set: function set(key) {
|
|
510
|
+
return function (_ref21, newWebSocketState) {
|
|
511
|
+
var get = _ref21.get,
|
|
512
|
+
set = _ref21.set;
|
|
513
|
+
set(exerciseWebsocketStates, Object.assign(Object.assign({}, get(exerciseWebsocketStates)), _rollupPluginBabelHelpers.defineProperty({}, key, newWebSocketState)));
|
|
514
|
+
};
|
|
381
515
|
}
|
|
382
|
-
});
|
|
516
|
+
});
|
|
517
|
+
//
|
|
383
518
|
// =============== multi language ===============
|
|
384
519
|
//
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
const MULTILANG_LANGUAGES_FILENAME = '.languages.json';
|
|
520
|
+
var MULTILANG_ENVIRONMENT_FILENAME = '.environment.json';
|
|
521
|
+
var MULTILANG_LANGUAGES_FILENAME = '.languages.json';
|
|
388
522
|
/**
|
|
389
523
|
*
|
|
390
524
|
*/
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
key: `${KEY_PREFIX}/Multilang/Languages`,
|
|
525
|
+
var exerciseMultilangLanguagesState = recoil.atomFamily({
|
|
526
|
+
key: "".concat(KEY_PREFIX, "/Multilang/Languages"),
|
|
394
527
|
default: undefined,
|
|
395
|
-
effects: materialExerciseId
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
528
|
+
effects: function effects(materialExerciseId) {
|
|
529
|
+
return [function (_ref22) {
|
|
530
|
+
var getPromise = _ref22.getPromise,
|
|
531
|
+
trigger = _ref22.trigger,
|
|
532
|
+
setSelf = _ref22.setSelf,
|
|
533
|
+
onSet = _ref22.onSet;
|
|
534
|
+
var get = /*#__PURE__*/function () {
|
|
535
|
+
var _ref23 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee8() {
|
|
536
|
+
var _a, _b, exercise;
|
|
537
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
538
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
539
|
+
case 0:
|
|
540
|
+
if (materialExerciseId) {
|
|
541
|
+
_context8.next = 3;
|
|
542
|
+
break;
|
|
543
|
+
}
|
|
544
|
+
setSelf(undefined);
|
|
545
|
+
return _context8.abrupt("return");
|
|
546
|
+
case 3:
|
|
547
|
+
_context8.next = 5;
|
|
548
|
+
return getPromise(exerciseState(materialExerciseId));
|
|
549
|
+
case 5:
|
|
550
|
+
exercise = _context8.sent;
|
|
551
|
+
if (exercise) {
|
|
552
|
+
_context8.next = 9;
|
|
553
|
+
break;
|
|
554
|
+
}
|
|
555
|
+
setSelf(undefined);
|
|
556
|
+
return _context8.abrupt("return");
|
|
557
|
+
case 9:
|
|
558
|
+
_context8.t0 = setSelf;
|
|
559
|
+
_context8.next = 12;
|
|
560
|
+
return apiClient.getOrgMaterialExerciseExerciseImageExerciseFileGet({
|
|
561
|
+
exerciseImageId: (_b = (_a = exercise.readyExerciseImage) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : 0,
|
|
562
|
+
filename: MULTILANG_LANGUAGES_FILENAME
|
|
563
|
+
}).then(function (res) {
|
|
564
|
+
return res.exerciseFile.content;
|
|
565
|
+
}).then(function (content) {
|
|
566
|
+
return humps.camelizeKeys(JSON.parse(content));
|
|
567
|
+
}).catch(function () {
|
|
568
|
+
return null;
|
|
569
|
+
});
|
|
570
|
+
case 12:
|
|
571
|
+
_context8.t1 = _context8.sent;
|
|
572
|
+
(0, _context8.t0)(_context8.t1);
|
|
573
|
+
case 14:
|
|
574
|
+
case "end":
|
|
575
|
+
return _context8.stop();
|
|
576
|
+
}
|
|
577
|
+
}, _callee8);
|
|
578
|
+
}));
|
|
579
|
+
return function get() {
|
|
580
|
+
return _ref23.apply(this, arguments);
|
|
581
|
+
};
|
|
582
|
+
}();
|
|
583
|
+
if (trigger === 'get') {
|
|
428
584
|
void get();
|
|
429
585
|
}
|
|
430
|
-
|
|
431
|
-
|
|
586
|
+
onSet(function (_prevValue, _newValue, isReset) {
|
|
587
|
+
if (isReset) {
|
|
588
|
+
void get();
|
|
589
|
+
}
|
|
590
|
+
});
|
|
591
|
+
}];
|
|
592
|
+
}
|
|
432
593
|
});
|
|
433
594
|
/**
|
|
434
595
|
*
|
|
435
596
|
*/
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
key: `${KEY_PREFIX}/Multilang/Environment`,
|
|
597
|
+
var exerciseMultilangEnvironmentState = recoil.atomFamily({
|
|
598
|
+
key: "".concat(KEY_PREFIX, "/Multilang/Environment"),
|
|
439
599
|
default: null,
|
|
440
|
-
effects: ({
|
|
441
|
-
materialExerciseId,
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
600
|
+
effects: function effects(_ref24) {
|
|
601
|
+
var materialExerciseId = _ref24.materialExerciseId,
|
|
602
|
+
exerciseRoomId = _ref24.exerciseRoomId;
|
|
603
|
+
return [function (_ref25) {
|
|
604
|
+
var trigger = _ref25.trigger,
|
|
605
|
+
getPromise = _ref25.getPromise,
|
|
606
|
+
setSelf = _ref25.setSelf,
|
|
607
|
+
onSet = _ref25.onSet;
|
|
608
|
+
var get = /*#__PURE__*/function () {
|
|
609
|
+
var _ref26 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee10() {
|
|
610
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee10$(_context10) {
|
|
611
|
+
while (1) switch (_context10.prev = _context10.next) {
|
|
612
|
+
case 0:
|
|
613
|
+
setSelf(apiClient.getOrgMaterialExerciseExerciseRoomUserFileGet({
|
|
614
|
+
exerciseRoomId: exerciseRoomId,
|
|
615
|
+
filename: MULTILANG_ENVIRONMENT_FILENAME
|
|
616
|
+
}).then(function (res) {
|
|
617
|
+
return humps.camelizeKeys(JSON.parse(res.userFile.content));
|
|
618
|
+
}).catch( /*#__PURE__*/_rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee9() {
|
|
619
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
620
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
621
|
+
case 0:
|
|
622
|
+
return _context9.abrupt("return", getPromise(exerciseMultilangLanguagesState(materialExerciseId)).then(function (languages) {
|
|
623
|
+
if (!languages) {
|
|
624
|
+
throw new Error('err_no_languages');
|
|
625
|
+
}
|
|
626
|
+
var language = Object.keys(languages)[0];
|
|
627
|
+
return {
|
|
628
|
+
language: language
|
|
629
|
+
};
|
|
630
|
+
}).catch(function () {
|
|
631
|
+
return null;
|
|
632
|
+
}));
|
|
633
|
+
case 1:
|
|
634
|
+
case "end":
|
|
635
|
+
return _context9.stop();
|
|
636
|
+
}
|
|
637
|
+
}, _callee9);
|
|
638
|
+
}))));
|
|
639
|
+
case 1:
|
|
640
|
+
case "end":
|
|
641
|
+
return _context10.stop();
|
|
642
|
+
}
|
|
643
|
+
}, _callee10);
|
|
644
|
+
}));
|
|
645
|
+
return function get() {
|
|
646
|
+
return _ref26.apply(this, arguments);
|
|
461
647
|
};
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
if (trigger === 'get') {
|
|
466
|
-
void get();
|
|
467
|
-
}
|
|
468
|
-
|
|
469
|
-
onSet((newEnvJson, _, isReset) => {
|
|
470
|
-
if (isReset) {
|
|
471
|
-
return;
|
|
648
|
+
}();
|
|
649
|
+
if (trigger === 'get') {
|
|
650
|
+
void get();
|
|
472
651
|
}
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
652
|
+
onSet(function (newEnvJson, _, isReset) {
|
|
653
|
+
if (isReset) {
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
656
|
+
void apiClient.postOrgMaterialExerciseExerciseRoomUserFileAdd({
|
|
657
|
+
exerciseRoomId: exerciseRoomId,
|
|
658
|
+
userFile: new File([JSON.stringify(newEnvJson)], MULTILANG_ENVIRONMENT_FILENAME, {
|
|
659
|
+
type: 'application/json'
|
|
660
|
+
}),
|
|
661
|
+
path: '',
|
|
662
|
+
overwrite: true
|
|
663
|
+
});
|
|
481
664
|
});
|
|
482
|
-
}
|
|
483
|
-
}
|
|
484
|
-
});
|
|
665
|
+
}];
|
|
666
|
+
}
|
|
667
|
+
});
|
|
668
|
+
//
|
|
485
669
|
// =============== arduino ===============
|
|
486
670
|
//
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
const DEFAULT_ARDUINO_PREFERENCE = {
|
|
671
|
+
var ARDUINO_ACCOUNT_PREFERENCE_KEY = 'material.exercise.arduino.preference';
|
|
672
|
+
var DEFAULT_ARDUINO_PREFERENCE = {
|
|
490
673
|
baudRate: 9600,
|
|
491
674
|
port: ''
|
|
492
675
|
};
|
|
493
676
|
/**
|
|
494
677
|
* Arduino preference.
|
|
495
678
|
*/
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
key: `${KEY_PREFIX}/Arduino/Preference`,
|
|
679
|
+
var exerciseArduinoPreferenceState = recoil.atom({
|
|
680
|
+
key: "".concat(KEY_PREFIX, "/Arduino/Preference"),
|
|
499
681
|
default: DEFAULT_ARDUINO_PREFERENCE,
|
|
500
|
-
effects: [({
|
|
501
|
-
trigger,
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
682
|
+
effects: [function (_ref28) {
|
|
683
|
+
var trigger = _ref28.trigger,
|
|
684
|
+
setSelf = _ref28.setSelf,
|
|
685
|
+
onSet = _ref28.onSet;
|
|
686
|
+
var get = /*#__PURE__*/function () {
|
|
687
|
+
var _ref29 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee11() {
|
|
688
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee11$(_context11) {
|
|
689
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
690
|
+
case 0:
|
|
691
|
+
_context11.t0 = setSelf;
|
|
692
|
+
_context11.next = 3;
|
|
693
|
+
return apiClient.getGlobalAccountPreferenceGet({
|
|
694
|
+
pkey: ARDUINO_ACCOUNT_PREFERENCE_KEY
|
|
695
|
+
}).then(function (res) {
|
|
696
|
+
return Object.assign(Object.assign({}, DEFAULT_ARDUINO_PREFERENCE), res.pvalue);
|
|
697
|
+
}).catch(function () {
|
|
698
|
+
return DEFAULT_ARDUINO_PREFERENCE;
|
|
699
|
+
});
|
|
700
|
+
case 3:
|
|
701
|
+
_context11.t1 = _context11.sent;
|
|
702
|
+
(0, _context11.t0)(_context11.t1);
|
|
703
|
+
case 5:
|
|
704
|
+
case "end":
|
|
705
|
+
return _context11.stop();
|
|
706
|
+
}
|
|
707
|
+
}, _callee11);
|
|
708
|
+
}));
|
|
709
|
+
return function get() {
|
|
710
|
+
return _ref29.apply(this, arguments);
|
|
711
|
+
};
|
|
712
|
+
}();
|
|
513
713
|
if (trigger === 'get') {
|
|
514
714
|
void get();
|
|
515
715
|
}
|
|
516
|
-
|
|
517
|
-
onSet((newPreference, prevPreference, isReset) => {
|
|
716
|
+
onSet(function (newPreference, prevPreference, isReset) {
|
|
518
717
|
if (!isEqual__default["default"](newPreference, prevPreference) && !isReset) {
|
|
519
718
|
void apiClient.postGlobalAccountPreferenceEdit({
|
|
520
719
|
pkey: ARDUINO_ACCOUNT_PREFERENCE_KEY,
|
|
@@ -527,77 +726,69 @@ const exerciseArduinoPreferenceState = recoil.atom({
|
|
|
527
726
|
/**
|
|
528
727
|
* Arduino ports.
|
|
529
728
|
*/
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
key: `${KEY_PREFIX}/Arduino/Ports`,
|
|
729
|
+
var exerciseArduinoPortsState = recoil.atom({
|
|
730
|
+
key: "".concat(KEY_PREFIX, "/Arduino/Ports"),
|
|
533
731
|
default: []
|
|
534
732
|
});
|
|
535
733
|
/**
|
|
536
734
|
* Opened arduino port.
|
|
537
735
|
*/
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
key: `${KEY_PREFIX}/Arduino/OpenedPortName`,
|
|
736
|
+
var exerciseArduinoOpenedPortNameState = recoil.atom({
|
|
737
|
+
key: "".concat(KEY_PREFIX, "/Arduino/OpenedPortName"),
|
|
541
738
|
default: null
|
|
542
739
|
});
|
|
543
740
|
/**
|
|
544
741
|
* Arduino port open handler.
|
|
545
742
|
*/
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
743
|
+
var exerciseArduinoOnSelectPortState = recoil.atom({
|
|
744
|
+
key: "".concat(KEY_PREFIX, "/Arduino/OnSelectPort"),
|
|
745
|
+
default: function _default(name) {
|
|
746
|
+
// do nothing.
|
|
550
747
|
}
|
|
551
748
|
});
|
|
552
749
|
/**
|
|
553
750
|
* Arduino agent connection status.
|
|
554
751
|
*/
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
key: `${KEY_PREFIX}/Arduino/AgentConnection`,
|
|
752
|
+
var exerciseArduinoAgentConnectionState = recoil.atom({
|
|
753
|
+
key: "".concat(KEY_PREFIX, "/Arduino/AgentConnection"),
|
|
558
754
|
default: 'disconnected'
|
|
559
755
|
});
|
|
560
756
|
/**
|
|
561
757
|
* Arduino upload progress.
|
|
562
758
|
*/
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
key: `${KEY_PREFIX}/Arduino/UploadProgressState`,
|
|
759
|
+
var exerciseArduinoUploadProgressState = recoil.atom({
|
|
760
|
+
key: "".concat(KEY_PREFIX, "/Arduino/UploadProgressState"),
|
|
566
761
|
default: 'ready'
|
|
567
762
|
});
|
|
568
763
|
/**
|
|
569
764
|
* Arduino agent modal open status.
|
|
570
765
|
*/
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
key: `${KEY_PREFIX}/Arduino/AgentModalState`,
|
|
766
|
+
var exerciseArduinoAgentModalState = recoil.atom({
|
|
767
|
+
key: "".concat(KEY_PREFIX, "/Arduino/AgentModalState"),
|
|
574
768
|
default: false
|
|
575
|
-
});
|
|
769
|
+
});
|
|
770
|
+
//
|
|
576
771
|
// =============== others ===============
|
|
577
772
|
//
|
|
578
|
-
|
|
579
773
|
/**
|
|
580
774
|
*
|
|
581
775
|
*/
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
key: `${KEY_PREFIX}/ActiveFilename`,
|
|
776
|
+
var exerciseActiveFilenameState = recoil.atom({
|
|
777
|
+
key: "".concat(KEY_PREFIX, "/ActiveFilename"),
|
|
585
778
|
default: null
|
|
586
779
|
});
|
|
587
780
|
/**
|
|
588
781
|
*
|
|
589
782
|
*/
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
key: `${KEY_PREFIX}/RightpaneActive`,
|
|
783
|
+
var exerciseRightpaneActiveState = recoil.atom({
|
|
784
|
+
key: "".concat(KEY_PREFIX, "/RightpaneActive"),
|
|
593
785
|
default: null
|
|
594
786
|
});
|
|
595
787
|
/**
|
|
596
788
|
*
|
|
597
789
|
*/
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
key: `${KEY_PREFIX}/ContainerSize`,
|
|
790
|
+
var exerciseContainerSizeState = recoil.atom({
|
|
791
|
+
key: "".concat(KEY_PREFIX, "/ContainerSize"),
|
|
601
792
|
default: {
|
|
602
793
|
width: 0,
|
|
603
794
|
height: 0
|
|
@@ -606,9 +797,8 @@ const exerciseContainerSizeState = recoil.atom({
|
|
|
606
797
|
/**
|
|
607
798
|
*
|
|
608
799
|
*/
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
key: `${KEY_PREFIX}/FileEditorCursor`,
|
|
800
|
+
var exerciseFileEditorCursorState = recoil.atom({
|
|
801
|
+
key: "".concat(KEY_PREFIX, "/FileEditorCursor"),
|
|
612
802
|
default: {
|
|
613
803
|
from: 0,
|
|
614
804
|
to: 0
|
|
@@ -617,17 +807,15 @@ const exerciseFileEditorCursorState = recoil.atom({
|
|
|
617
807
|
/**
|
|
618
808
|
*
|
|
619
809
|
*/
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
key: `${KEY_PREFIX}/FileEditorCursorSelectionValue`,
|
|
810
|
+
var exerciseFileEditorCursorSelectionValueState = recoil.atom({
|
|
811
|
+
key: "".concat(KEY_PREFIX, "/FileEditorCursorSelectionValue"),
|
|
623
812
|
default: null
|
|
624
813
|
});
|
|
625
814
|
/**
|
|
626
815
|
*
|
|
627
816
|
*/
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
key: `${KEY_PREFIX}/MonacoEditorApisState`,
|
|
817
|
+
var exerciseMonacoEditorApisState = recoil.atom({
|
|
818
|
+
key: "".concat(KEY_PREFIX, "/MonacoEditorApisState"),
|
|
631
819
|
default: null,
|
|
632
820
|
dangerouslyAllowMutability: true
|
|
633
821
|
});
|