@elice/material-exercise 1.230328.0 → 1.230418.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/_virtual/_rollupPluginBabelHelpers.js +526 -0
- package/cjs/components/material-exercise/MaterialExercise.js +44 -63
- package/cjs/components/material-exercise/MaterialExercise.styled.js +20 -23
- package/cjs/components/material-exercise/MaterialExerciseMobile.js +19 -15
- package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
- package/cjs/components/material-exercise/context/ExerciseProvider.js +83 -81
- package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +16 -16
- package/cjs/components/material-exercise/context/context.js +1 -1
- package/cjs/components/material-exercise/context/locales/noImage.en.json.js +3 -1
- package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +3 -1
- package/cjs/components/material-exercise/context/recoil.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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { useIntl, FormattedMessage } from 'react-intl';
|
|
3
4
|
import { Popover, Flex, Text, Hspace, NotificationCount, IconButton, Icon, Vspace } from '@elice/blocks';
|
|
@@ -12,47 +13,45 @@ import '../context/subjects.js';
|
|
|
12
13
|
import '../context/ExerciseProvider.js';
|
|
13
14
|
import { StyledFilePopoverContent, StyledFilePopoverHeader, StyledFilePopoverBody, StyledMenuButtonFileCount, StyledFilePopoverBodyList, StyledFilePopoverBodyListItem, StyledFilePopoverBodyListItemContentFile, StyledFilePopoverBodyListItemDownloadButton, StyledFilePopoverBodyListItemContentImageWrap, StyledFilePopoverBodyListItemContentImage } from './ExerciseMenuStdioFileBrowser.styled.js';
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
var IMAGE_NEW_WIN_IFRAME_STYLE = 'border:0; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%;';
|
|
17
|
+
var ExerciseMenuStdioFileBrowser = function ExerciseMenuStdioFileBrowser() {
|
|
18
|
+
var intl = useIntl();
|
|
19
|
+
var _React$useState = React.useState(false),
|
|
20
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
21
|
+
open = _React$useState2[0],
|
|
22
|
+
setOpen = _React$useState2[1];
|
|
23
|
+
var anchorRef = React.useRef(null);
|
|
24
|
+
var stdioFiles = useRecoilValue(exerciseRunnerStdioFilesState);
|
|
22
25
|
/**
|
|
23
26
|
* Open image as new window.
|
|
24
27
|
*/
|
|
25
|
-
|
|
26
|
-
const handleImageFileClick = e => {
|
|
28
|
+
var handleImageFileClick = function handleImageFileClick(e) {
|
|
27
29
|
e.preventDefault();
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
var win = window.open('about:blank', e.currentTarget.target);
|
|
30
31
|
if (win) {
|
|
31
32
|
// since `Not allowed to navigate top frame to data URL:` error thrown by browser,
|
|
32
33
|
// use iframe to display image at new window.
|
|
33
|
-
win.document.write(
|
|
34
|
+
win.document.write("<iframe src=\"".concat(e.currentTarget.href, "\" frameborder=\"0\" style=\"").concat(IMAGE_NEW_WIN_IFRAME_STYLE, "\" allowfullscreen></iframe>"));
|
|
34
35
|
win.focus();
|
|
35
36
|
}
|
|
36
|
-
};
|
|
37
|
+
};
|
|
38
|
+
//
|
|
37
39
|
// Open stdio file browser, on file changes.
|
|
38
40
|
//
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
React.useEffect(() => {
|
|
41
|
+
React.useEffect(function () {
|
|
42
42
|
if (stdioFiles && stdioFiles.length > 0) {
|
|
43
43
|
setOpen(true);
|
|
44
44
|
}
|
|
45
|
-
},
|
|
45
|
+
},
|
|
46
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
46
47
|
[stdioFiles]);
|
|
47
48
|
/**
|
|
48
49
|
* Image type stdio file.
|
|
49
50
|
*/
|
|
50
|
-
|
|
51
|
-
const renderStdioFileListItemImage = (key, f) => {
|
|
51
|
+
var renderStdioFileListItemImage = function renderStdioFileListItemImage(key, f) {
|
|
52
52
|
var _a;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
const filename = ext ? `image_output.${ext}` : 'image_output';
|
|
53
|
+
var ext = (_a = f.mime) === null || _a === void 0 ? void 0 : _a.split('/').pop();
|
|
54
|
+
var filename = ext ? "image_output.".concat(ext) : 'image_output';
|
|
56
55
|
return React.createElement(StyledFilePopoverBodyListItem, {
|
|
57
56
|
key: key
|
|
58
57
|
}, React.createElement(StyledFilePopoverBodyListItemContentImageWrap, {
|
|
@@ -73,10 +72,8 @@ const ExerciseMenuStdioFileBrowser = () => {
|
|
|
73
72
|
/**
|
|
74
73
|
* File type stdio file.
|
|
75
74
|
*/
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const renderStdioFileListFile = (key, f) => {
|
|
79
|
-
const size = (f.data.length / 1024).toFixed(2);
|
|
75
|
+
var renderStdioFileListFile = function renderStdioFileListFile(key, f) {
|
|
76
|
+
var size = (f.data.length / 1024).toFixed(2);
|
|
80
77
|
return React.createElement(StyledFilePopoverBodyListItem, {
|
|
81
78
|
key: key
|
|
82
79
|
}, React.createElement(StyledFilePopoverBodyListItemContentFile, null, React.createElement(Text, {
|
|
@@ -84,7 +81,7 @@ const ExerciseMenuStdioFileBrowser = () => {
|
|
|
84
81
|
role: "white",
|
|
85
82
|
size: "small"
|
|
86
83
|
}), React.createElement(Text, {
|
|
87
|
-
children:
|
|
84
|
+
children: "".concat(size, " KB"),
|
|
88
85
|
role: "gray4",
|
|
89
86
|
size: "tiny"
|
|
90
87
|
})), React.createElement(StyledFilePopoverBodyListItemDownloadButton, {
|
|
@@ -97,9 +94,7 @@ const ExerciseMenuStdioFileBrowser = () => {
|
|
|
97
94
|
/**
|
|
98
95
|
* Empty list of stdio files.
|
|
99
96
|
*/
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const renderStdioFileListEmpty = () => {
|
|
97
|
+
var renderStdioFileListEmpty = function renderStdioFileListEmpty() {
|
|
103
98
|
return React.createElement(Flex, {
|
|
104
99
|
column: true,
|
|
105
100
|
align: "center",
|
|
@@ -123,21 +118,16 @@ const ExerciseMenuStdioFileBrowser = () => {
|
|
|
123
118
|
/**
|
|
124
119
|
* List of stdio files.
|
|
125
120
|
*/
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
const renderStdioFileList = () => {
|
|
121
|
+
var renderStdioFileList = function renderStdioFileList() {
|
|
129
122
|
if (!stdioFiles || !stdioFiles.length) {
|
|
130
123
|
return renderStdioFileListEmpty();
|
|
131
124
|
}
|
|
132
|
-
|
|
133
|
-
return React.createElement(StyledFilePopoverBodyList, null, stdioFiles.map((f, index) => {
|
|
125
|
+
return React.createElement(StyledFilePopoverBodyList, null, stdioFiles.map(function (f, index) {
|
|
134
126
|
switch (f.type) {
|
|
135
127
|
case 'image':
|
|
136
128
|
return renderStdioFileListItemImage(index, f);
|
|
137
|
-
|
|
138
129
|
case 'file':
|
|
139
130
|
return renderStdioFileListFile(index, f);
|
|
140
|
-
|
|
141
131
|
default:
|
|
142
132
|
return null;
|
|
143
133
|
}
|
|
@@ -146,9 +136,7 @@ const ExerciseMenuStdioFileBrowser = () => {
|
|
|
146
136
|
/**
|
|
147
137
|
* Popover header.
|
|
148
138
|
*/
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
const renderStdioFilePopoverHeader = () => {
|
|
139
|
+
var renderStdioFilePopoverHeader = function renderStdioFilePopoverHeader() {
|
|
152
140
|
return React.createElement(StyledFilePopoverHeader, null, React.createElement(Flex, {
|
|
153
141
|
align: "center"
|
|
154
142
|
}, React.createElement(Text, {
|
|
@@ -168,15 +156,15 @@ const ExerciseMenuStdioFileBrowser = () => {
|
|
|
168
156
|
size: "micro",
|
|
169
157
|
border: false,
|
|
170
158
|
transparent: true,
|
|
171
|
-
onClick: ()
|
|
159
|
+
onClick: function onClick() {
|
|
160
|
+
return setOpen(false);
|
|
161
|
+
}
|
|
172
162
|
}));
|
|
173
163
|
};
|
|
174
164
|
/**
|
|
175
165
|
* Popover body.
|
|
176
166
|
*/
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
const renderStdioFilePopoverBody = () => {
|
|
167
|
+
var renderStdioFilePopoverBody = function renderStdioFilePopoverBody() {
|
|
180
168
|
return React.createElement(StyledFilePopoverBody, {
|
|
181
169
|
children: renderStdioFileList()
|
|
182
170
|
});
|
|
@@ -184,9 +172,7 @@ const ExerciseMenuStdioFileBrowser = () => {
|
|
|
184
172
|
/**
|
|
185
173
|
* Popover.
|
|
186
174
|
*/
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
const renderStdioFilePopover = () => {
|
|
175
|
+
var renderStdioFilePopover = function renderStdioFilePopover() {
|
|
190
176
|
return React.createElement(Popover, {
|
|
191
177
|
open: open,
|
|
192
178
|
anchorEl: anchorRef.current,
|
|
@@ -199,26 +185,27 @@ const ExerciseMenuStdioFileBrowser = () => {
|
|
|
199
185
|
/**
|
|
200
186
|
* Popover toggle button.
|
|
201
187
|
*/
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
const renderStdioFilePopoverToggleButton = () => {
|
|
188
|
+
var renderStdioFilePopoverToggleButton = function renderStdioFilePopoverToggleButton() {
|
|
205
189
|
return React.createElement(ExerciseMenuButton, {
|
|
206
190
|
icon: eilAttachment,
|
|
207
191
|
active: open,
|
|
208
192
|
title: intl.formatMessage({
|
|
209
193
|
id: 'exerciseMenu.stdioFileBrowser.button.tooltip'
|
|
210
194
|
}),
|
|
211
|
-
onClick: ()
|
|
195
|
+
onClick: function onClick() {
|
|
196
|
+
return setOpen(function (prev) {
|
|
197
|
+
return !prev;
|
|
198
|
+
});
|
|
199
|
+
},
|
|
212
200
|
ref: anchorRef
|
|
213
201
|
}, React.createElement(StyledMenuButtonFileCount, {
|
|
214
202
|
role: "white",
|
|
215
203
|
value: stdioFiles.length
|
|
216
204
|
}));
|
|
217
|
-
};
|
|
205
|
+
};
|
|
206
|
+
//
|
|
218
207
|
//
|
|
219
208
|
//
|
|
220
|
-
|
|
221
|
-
|
|
222
209
|
return React.createElement(React.Fragment, null, renderStdioFilePopover(), renderStdioFilePopoverToggleButton());
|
|
223
210
|
};
|
|
224
211
|
|
package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js
CHANGED
|
@@ -2,40 +2,40 @@ import { NotificationCount, Select } from '@elice/blocks';
|
|
|
2
2
|
import { base } from '@elice/design-tokens';
|
|
3
3
|
import styled from 'styled-components';
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var StyledMenuButtonFileCount = styled(NotificationCount).withConfig({
|
|
6
6
|
componentId: "sc-9mtuee-0"
|
|
7
7
|
})(["position:absolute;top:0.2rem;right:0.2rem;padding:0;min-width:0.625rem;height:0.625rem;font-size:0.5rem;"]);
|
|
8
|
-
|
|
8
|
+
var StyledFilePopoverContent = styled.div.withConfig({
|
|
9
9
|
componentId: "sc-9mtuee-1"
|
|
10
10
|
})(["display:flex;flex-direction:column;padding:0;width:252px;min-height:178px;max-height:383px;border-radius:8px;background-color:", ";overflow:hidden;"], base.color.navy6);
|
|
11
|
-
|
|
11
|
+
var StyledFilePopoverHeader = styled.div.withConfig({
|
|
12
12
|
componentId: "sc-9mtuee-2"
|
|
13
13
|
})(["flex:0 0 2.5rem;display:flex;justify-content:space-between;align-items:center;padding:0 1rem;color:white;background-color:", ";"], base.color.navy7);
|
|
14
|
-
|
|
14
|
+
var StyledFilePopoverBody = styled.div.withConfig({
|
|
15
15
|
componentId: "sc-9mtuee-3"
|
|
16
16
|
})(["flex:1;overflow-x:hidden;overflow-y:auto;"]);
|
|
17
|
-
|
|
17
|
+
var StyledFilePopoverBodyList = styled.ul.withConfig({
|
|
18
18
|
componentId: "sc-9mtuee-4"
|
|
19
19
|
})(["margin:0;padding:0.5rem;width:100%;height:100%;"]);
|
|
20
|
-
|
|
20
|
+
var StyledFilePopoverBodyListItem = styled.li.withConfig({
|
|
21
21
|
componentId: "sc-9mtuee-5"
|
|
22
22
|
})(["display:flex;margin-bottom:0.5rem;border-radius:0.5rem;background-color:", ";overflow:hidden;&:last-of-type{margin-bottom:0;}"], base.color.navy5);
|
|
23
|
-
|
|
23
|
+
var StyledFilePopoverBodyListItemDownloadButton = styled.a.withConfig({
|
|
24
24
|
componentId: "sc-9mtuee-6"
|
|
25
25
|
})(["display:flex;align-items:center;justify-content:center;padding:0.75rem;color:", ";font-size:1rem;background-color:", ";"], base.color.white, base.color.primary5);
|
|
26
|
-
|
|
26
|
+
var StyledFilePopoverBodyListItemContentFile = styled.div.withConfig({
|
|
27
27
|
componentId: "sc-9mtuee-7"
|
|
28
28
|
})(["flex:1;display:flex;align-items:center;justify-content:space-between;padding:0 0.5rem;"]);
|
|
29
|
-
|
|
29
|
+
var StyledFilePopoverBodyListItemContentImageWrap = styled.a.withConfig({
|
|
30
30
|
componentId: "sc-9mtuee-8"
|
|
31
31
|
})(["display:flex;padding:0.5rem;flex:1 1 0;background:", ";"], base.color.white);
|
|
32
|
-
|
|
32
|
+
var StyledFilePopoverBodyListItemContentImage = styled.img.withConfig({
|
|
33
33
|
componentId: "sc-9mtuee-9"
|
|
34
34
|
})(["width:100%;max-height:128px;object-fit:contain;"]);
|
|
35
|
-
|
|
35
|
+
var StyledPreferenceBodyItem = styled.div.withConfig({
|
|
36
36
|
componentId: "sc-9mtuee-10"
|
|
37
37
|
})(["display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;min-height:2rem;color:white;&:last-child{margin-bottom:0;}"]);
|
|
38
|
-
|
|
38
|
+
var StyledSelect = styled(Select).withConfig({
|
|
39
39
|
componentId: "sc-9mtuee-11"
|
|
40
40
|
})(["> div{background:", " !important;border-color:", " !important;}select{padding:0 !important;height:2rem !important;color:#fff !important;> option{background:", " !important;}}"], base.color.navy8, base.color.navy7, base.color.navy8);
|
|
41
41
|
|
package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { Dropdown } from '@elice/blocks';
|
|
3
4
|
import { useRecoilValue, useRecoilState } from 'recoil';
|
|
@@ -7,36 +8,41 @@ import '../context/recoilTypes.js';
|
|
|
7
8
|
import '../context/subjects.js';
|
|
8
9
|
import '../context/ExerciseProvider.js';
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
materialExerciseId,
|
|
13
|
-
exerciseRoomId
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
var ExerciseMultilangDropdown = function ExerciseMultilangDropdown() {
|
|
12
|
+
var _React$useContext = React.useContext(ExerciseContext),
|
|
13
|
+
materialExerciseId = _React$useContext.materialExerciseId,
|
|
14
|
+
exerciseRoomId = _React$useContext.exerciseRoomId;
|
|
15
|
+
var multilangLanguages = useRecoilValue(exerciseMultilangLanguagesState(materialExerciseId));
|
|
16
|
+
var _useRecoilState = useRecoilState(exerciseMultilangEnvironmentState({
|
|
17
|
+
materialExerciseId: materialExerciseId,
|
|
18
|
+
exerciseRoomId: exerciseRoomId
|
|
19
|
+
})),
|
|
20
|
+
_useRecoilState2 = _slicedToArray(_useRecoilState, 2),
|
|
21
|
+
multilangEnvironment = _useRecoilState2[0],
|
|
22
|
+
setMultilangEnvironment = _useRecoilState2[1];
|
|
23
|
+
//
|
|
20
24
|
//
|
|
21
25
|
//
|
|
22
|
-
|
|
23
26
|
if (!multilangLanguages || !Object.keys(multilangLanguages !== null && multilangLanguages !== void 0 ? multilangLanguages : {}).length || !multilangEnvironment) {
|
|
24
27
|
return null;
|
|
25
28
|
}
|
|
26
|
-
|
|
27
29
|
return React.createElement(Dropdown, {
|
|
28
30
|
type: "dark",
|
|
29
31
|
size: "tiny",
|
|
30
32
|
border: true,
|
|
31
33
|
placement: "bottom-end",
|
|
32
34
|
value: multilangEnvironment.language,
|
|
33
|
-
onChange: language
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
onChange: function onChange(language) {
|
|
36
|
+
return setMultilangEnvironment({
|
|
37
|
+
language: language
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}, Object.keys(multilangLanguages).map(function (lang) {
|
|
41
|
+
return React.createElement("option", {
|
|
42
|
+
key: lang,
|
|
43
|
+
value: lang
|
|
44
|
+
}, multilangLanguages[lang].label);
|
|
45
|
+
}));
|
|
40
46
|
};
|
|
41
47
|
|
|
42
48
|
export { ExerciseMultilangDropdown as default };
|
package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import ExerciseMultilangDropdown from './ExerciseMultilangDropdown.js';
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
var ExerciseMultilangDropdownLazy = function ExerciseMultilangDropdownLazy() {
|
|
5
5
|
return React.createElement(React.Suspense, {
|
|
6
6
|
fallback: null
|
|
7
7
|
}, React.createElement(ExerciseMultilangDropdown, null));
|
|
@@ -14,7 +14,7 @@ import phrasesEn from './locales/en.json.js';
|
|
|
14
14
|
import phrasesKo from './locales/ko.json.js';
|
|
15
15
|
import ExercisePreviewDisplayModeButton from './ExercisePreviewDisplayModeButton.js';
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
var StyledExercisePreview = styled.div.withConfig({
|
|
18
18
|
componentId: "sc-i6d1i5-0"
|
|
19
19
|
})(["width:100%;height:100%;background-color:", ";"], base.color.navy7);
|
|
20
20
|
/**
|
|
@@ -22,54 +22,47 @@ const StyledExercisePreview = styled.div.withConfig({
|
|
|
22
22
|
* - NoVnc
|
|
23
23
|
* - Web browser
|
|
24
24
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const webBrowser = React.useRef(null); //
|
|
25
|
+
var ExercisePreview = function ExercisePreview() {
|
|
26
|
+
var _React$useContext = React.useContext(ExerciseContext),
|
|
27
|
+
materialExerciseId = _React$useContext.materialExerciseId;
|
|
28
|
+
var exercise = useRecoilValue(exerciseState(materialExerciseId));
|
|
29
|
+
var exercisePreviewType = useRecoilValue(exercisePreviewTypeState(materialExerciseId));
|
|
30
|
+
// runner states
|
|
31
|
+
var isSubmitting = useRecoilValue(exerciseRunnerSubmittingState);
|
|
32
|
+
var isRunning = useRecoilValue(exerciseRunnerRunningState);
|
|
33
|
+
var exerciseRunnerRoomConnectionInfo = useRecoilValue(exerciseRunnerRoomConnectionInfoState);
|
|
34
|
+
// preview refs
|
|
35
|
+
var noVnc = React.useRef(null);
|
|
36
|
+
var webBrowser = React.useRef(null);
|
|
37
|
+
//
|
|
39
38
|
// Action when exercise submitted.
|
|
40
39
|
//
|
|
41
|
-
|
|
42
|
-
React.useEffect(() => {
|
|
40
|
+
React.useEffect(function () {
|
|
43
41
|
var _a, _b;
|
|
44
|
-
|
|
45
42
|
if (!isSubmitting) {
|
|
46
43
|
return;
|
|
47
44
|
}
|
|
48
|
-
|
|
49
45
|
switch (exercisePreviewType) {
|
|
50
46
|
case ExercisePreviewType.NoVnc:
|
|
51
47
|
(_a = noVnc.current) === null || _a === void 0 ? void 0 : _a.reset();
|
|
52
48
|
break;
|
|
53
|
-
|
|
54
49
|
case ExercisePreviewType.WebBrowser:
|
|
55
50
|
(_b = webBrowser.current) === null || _b === void 0 ? void 0 : _b.reload();
|
|
56
51
|
break;
|
|
57
52
|
}
|
|
58
|
-
},
|
|
53
|
+
},
|
|
54
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
59
55
|
[isSubmitting]);
|
|
60
56
|
/**
|
|
61
57
|
* NoVnc
|
|
62
58
|
*/
|
|
63
|
-
|
|
64
|
-
const renderNoVnc = () => {
|
|
59
|
+
var renderNoVnc = function renderNoVnc() {
|
|
65
60
|
if (exercisePreviewType !== ExercisePreviewType.NoVnc) {
|
|
66
61
|
return null;
|
|
67
62
|
}
|
|
68
|
-
|
|
69
63
|
if (!(exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) || !exerciseRunnerRoomConnectionInfo) {
|
|
70
64
|
return null;
|
|
71
65
|
}
|
|
72
|
-
|
|
73
66
|
return React.createElement(NoVncLazy, Object.assign({}, exerciseRunnerRoomConnectionInfo, {
|
|
74
67
|
isRunning: isRunning,
|
|
75
68
|
readyExerciseImage: exercise.readyExerciseImage,
|
|
@@ -80,29 +73,23 @@ const ExercisePreview = () => {
|
|
|
80
73
|
/**
|
|
81
74
|
* Web browser
|
|
82
75
|
*/
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
const renderWebBrowser = () => {
|
|
76
|
+
var renderWebBrowser = function renderWebBrowser() {
|
|
86
77
|
if (exercisePreviewType !== ExercisePreviewType.WebBrowser) {
|
|
87
78
|
return null;
|
|
88
79
|
}
|
|
89
|
-
|
|
90
80
|
if (!exerciseRunnerRoomConnectionInfo) {
|
|
91
81
|
return null;
|
|
92
82
|
}
|
|
93
|
-
|
|
94
83
|
return React.createElement(WebBrowser, Object.assign({}, exerciseRunnerRoomConnectionInfo, {
|
|
95
84
|
menuButtons: React.createElement(ExercisePreviewDisplayModeButton, null),
|
|
96
85
|
ref: webBrowser
|
|
97
86
|
}));
|
|
98
|
-
};
|
|
87
|
+
};
|
|
88
|
+
//
|
|
99
89
|
//
|
|
100
90
|
//
|
|
101
|
-
|
|
102
|
-
|
|
103
91
|
return React.createElement(StyledExercisePreview, null, renderNoVnc(), renderWebBrowser());
|
|
104
92
|
};
|
|
105
|
-
|
|
106
93
|
var ExercisePreview$1 = withExerciseIntlProvider(ExercisePreview, {
|
|
107
94
|
en: phrasesEn,
|
|
108
95
|
ko: phrasesKo
|
package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
1
2
|
import React, { forwardRef } from 'react';
|
|
2
3
|
import { useIntl } from 'react-intl';
|
|
3
4
|
import { eilScreenHalf, eilPanelRight } from '@elice/icons';
|
|
@@ -9,22 +10,24 @@ import { ExercisePreviewDisplayMode } from '../context/recoilTypes.js';
|
|
|
9
10
|
import '../context/subjects.js';
|
|
10
11
|
import '../context/ExerciseProvider.js';
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
var ExercisePreviewDisplayModeButton = forwardRef(function (props, ref) {
|
|
13
14
|
var _a;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
var intl = useIntl();
|
|
16
|
+
var _useRecoilState = useRecoilState(exercisePreviewDisplayModeState),
|
|
17
|
+
_useRecoilState2 = _slicedToArray(_useRecoilState, 2),
|
|
18
|
+
exercisePreviewDisplayMode = _useRecoilState2[0],
|
|
19
|
+
setExercisePreviewDisplayMode = _useRecoilState2[1];
|
|
17
20
|
/**
|
|
18
21
|
* Handle click.
|
|
19
22
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
var handleClick = function handleClick() {
|
|
24
|
+
setExercisePreviewDisplayMode(function (prevDisplayMode) {
|
|
25
|
+
return prevDisplayMode === ExercisePreviewDisplayMode.Mini ? ExercisePreviewDisplayMode.SideBySide : ExercisePreviewDisplayMode.Mini;
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
//
|
|
24
29
|
//
|
|
25
30
|
//
|
|
26
|
-
|
|
27
|
-
|
|
28
31
|
return React.createElement(ExerciseMenuButton, Object.assign({}, props, {
|
|
29
32
|
icon: exercisePreviewDisplayMode === ExercisePreviewDisplayMode.Mini ? eilScreenHalf : eilPanelRight,
|
|
30
33
|
title: ((_a = props.title) !== null && _a !== void 0 ? _a : exercisePreviewDisplayMode === ExercisePreviewDisplayMode.Mini) ? intl.formatMessage({
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { FormattedMessage } from 'react-intl';
|
|
3
4
|
import { IconButton, Flex, Text, Hr } from '@elice/blocks';
|
|
@@ -17,49 +18,46 @@ import phrasesKo from './locales/ko.json.js';
|
|
|
17
18
|
import ExerciseRightpaneEditorPerference from './ExerciseRightpaneEditorPerference.js';
|
|
18
19
|
import ExerciseRightpaneEnvironment from './ExerciseRightpaneEnvironment.js';
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
var HEADER_CLOSE_BUTTON_SIZE = '1.75rem';
|
|
22
|
+
var StyledRightpaneWrap = styled.div.withConfig({
|
|
22
23
|
componentId: "sc-1tj3x49-0"
|
|
23
24
|
})(["position:relative;display:flex;flex-direction:column;width:20rem;border-left:", ";color:white;background-color:", ";"], MATERIAL_DIVIDER_BORDER_VALUE, base.color.navy9);
|
|
24
|
-
|
|
25
|
+
var StyledPreferenceHeader = styled.div.withConfig({
|
|
25
26
|
componentId: "sc-1tj3x49-1"
|
|
26
27
|
})(["display:flex;flex-direction:column;padding:0.25rem 1rem;"]);
|
|
27
|
-
|
|
28
|
+
var StyledPreferenceHeaderCloseButton = styled(IconButton).withConfig({
|
|
28
29
|
componentId: "sc-1tj3x49-2"
|
|
29
30
|
})(["flex:0 0 ", ";height:", " !important;"], HEADER_CLOSE_BUTTON_SIZE, HEADER_CLOSE_BUTTON_SIZE);
|
|
30
|
-
|
|
31
|
+
var StyledRightpaneBodyWrap = styled.div.withConfig({
|
|
31
32
|
componentId: "sc-1tj3x49-3"
|
|
32
33
|
})(["flex:1;padding:1rem;overflow-x:hidden;overflow-y:auto;", ""], getMaterialScrollBarCss({
|
|
33
34
|
width: '0.375rem',
|
|
34
35
|
borderRadius: '2px'
|
|
35
36
|
}));
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
var ExerciseRightpane = function ExerciseRightpane() {
|
|
38
|
+
var _useRecoilState = useRecoilState(exerciseRightpaneActiveState),
|
|
39
|
+
_useRecoilState2 = _slicedToArray(_useRecoilState, 2),
|
|
40
|
+
activeState = _useRecoilState2[0],
|
|
41
|
+
setActiveState = _useRecoilState2[1];
|
|
39
42
|
/**
|
|
40
43
|
*
|
|
41
44
|
*/
|
|
42
|
-
|
|
43
|
-
const handleClose = () => {
|
|
45
|
+
var handleClose = function handleClose() {
|
|
44
46
|
setActiveState(null);
|
|
45
47
|
};
|
|
46
48
|
/**
|
|
47
49
|
* Title of pane header.
|
|
48
50
|
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const renderRightpaneHeaderTitle = () => {
|
|
51
|
+
var renderRightpaneHeaderTitle = function renderRightpaneHeaderTitle() {
|
|
52
52
|
switch (activeState) {
|
|
53
53
|
case 'environment':
|
|
54
54
|
return React.createElement(FormattedMessage, {
|
|
55
55
|
id: "exerciseRightpane.environment.title"
|
|
56
56
|
});
|
|
57
|
-
|
|
58
57
|
case 'preference':
|
|
59
58
|
return React.createElement(FormattedMessage, {
|
|
60
59
|
id: "exerciseRightpane.preference.title"
|
|
61
60
|
});
|
|
62
|
-
|
|
63
61
|
default:
|
|
64
62
|
return '';
|
|
65
63
|
}
|
|
@@ -67,9 +65,7 @@ const ExerciseRightpane = () => {
|
|
|
67
65
|
/**
|
|
68
66
|
* Pane header.
|
|
69
67
|
*/
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const renderRightpaneHeader = () => {
|
|
68
|
+
var renderRightpaneHeader = function renderRightpaneHeader() {
|
|
73
69
|
return React.createElement(StyledPreferenceHeader, null, React.createElement(Flex, {
|
|
74
70
|
align: "center"
|
|
75
71
|
}, React.createElement(Text, {
|
|
@@ -86,35 +82,28 @@ const ExerciseRightpane = () => {
|
|
|
86
82
|
/**
|
|
87
83
|
* Pane content.
|
|
88
84
|
*/
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const renderRightpaneBodyContent = () => {
|
|
85
|
+
var renderRightpaneBodyContent = function renderRightpaneBodyContent() {
|
|
92
86
|
switch (activeState) {
|
|
93
87
|
case 'environment':
|
|
94
88
|
return React.createElement(ExerciseRightpaneEnvironment, null);
|
|
95
|
-
|
|
96
89
|
case 'preference':
|
|
97
90
|
return React.createElement(ExerciseRightpaneEditorPerference, null);
|
|
98
|
-
|
|
99
91
|
default:
|
|
100
92
|
return null;
|
|
101
93
|
}
|
|
102
|
-
};
|
|
94
|
+
};
|
|
95
|
+
//
|
|
103
96
|
//
|
|
104
97
|
//
|
|
105
|
-
|
|
106
|
-
|
|
107
98
|
if (!activeState) {
|
|
108
99
|
return null;
|
|
109
100
|
}
|
|
110
|
-
|
|
111
101
|
return React.createElement(StyledRightpaneWrap, null, renderRightpaneHeader(), React.createElement(Hr, {
|
|
112
102
|
marginStart: 0,
|
|
113
103
|
marginEnd: 0,
|
|
114
104
|
color: base.color.navy6
|
|
115
105
|
}), React.createElement(StyledRightpaneBodyWrap, null, renderRightpaneBodyContent()));
|
|
116
106
|
};
|
|
117
|
-
|
|
118
107
|
var ExerciseRightpane$1 = withExerciseIntlProvider(ExerciseRightpane, {
|
|
119
108
|
en: phrasesEn,
|
|
120
109
|
ko: phrasesKo
|
package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { useRecoilState } from 'recoil';
|
|
3
4
|
import '../../shared/monaco-editor/MonacoEditorLazy.js';
|
|
@@ -10,16 +11,18 @@ import '../context/recoilTypes.js';
|
|
|
10
11
|
import '../context/subjects.js';
|
|
11
12
|
import '../context/ExerciseProvider.js';
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
locale
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
var ExerciseRightpaneEditorPerference = function ExerciseRightpaneEditorPerference() {
|
|
15
|
+
var _React$useContext = React.useContext(ExerciseContext),
|
|
16
|
+
locale = _React$useContext.locale;
|
|
17
|
+
var _useRecoilState = useRecoilState(exerciseEditorPreferenceState),
|
|
18
|
+
_useRecoilState2 = _slicedToArray(_useRecoilState, 2),
|
|
19
|
+
preference = _useRecoilState2[0],
|
|
20
|
+
setPreference = _useRecoilState2[1];
|
|
18
21
|
return React.createElement(MonacoEditorPerference, {
|
|
19
22
|
value: preference,
|
|
20
23
|
locale: locale,
|
|
21
24
|
onChange: setPreference
|
|
22
25
|
});
|
|
23
|
-
};
|
|
26
|
+
};
|
|
24
27
|
|
|
25
28
|
export { ExerciseRightpaneEditorPerference as default };
|