@elice/material-exercise 1.230325.0 → 1.230418.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/_virtual/_rollupPluginBabelHelpers.js +526 -0
- package/cjs/components/material-exercise/MaterialExercise.js +44 -63
- package/cjs/components/material-exercise/MaterialExercise.styled.js +20 -23
- package/cjs/components/material-exercise/MaterialExerciseMobile.js +19 -15
- package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
- package/cjs/components/material-exercise/context/ExerciseProvider.js +83 -81
- package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +16 -16
- package/cjs/components/material-exercise/context/context.js +1 -1
- package/cjs/components/material-exercise/context/locales/noImage.en.json.js +3 -1
- package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +3 -1
- package/cjs/components/material-exercise/context/recoil.d.ts +2 -1
- package/cjs/components/material-exercise/context/recoil.js +562 -373
- package/cjs/components/material-exercise/context/recoilTypes.js +0 -5
- package/cjs/components/material-exercise/context/subjects.js +3 -6
- package/cjs/components/material-exercise/context/types.d.ts +8 -1
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +78 -65
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
- package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +7 -0
- package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +7 -0
- package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +20 -21
- package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +228 -199
- package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -10
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +35 -32
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +57 -48
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +6 -4
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +327 -231
- package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +6 -4
- package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +17 -17
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +13 -14
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +6 -6
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +47 -38
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +60 -42
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +29 -22
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +45 -56
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
- package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +28 -20
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +5 -3
- package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +30 -41
- package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +17 -12
- package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +24 -33
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +13 -8
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +84 -83
- package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +20 -12
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +239 -147
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +92 -63
- package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
- package/cjs/components/material-exercise/exercise-room/locales/en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +224 -223
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -13
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +30 -26
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +26 -26
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +79 -95
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +27 -27
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +54 -60
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +5 -5
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +10 -13
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +29 -26
- package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +3 -1
- package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +3 -1
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +290 -180
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -45
- package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +7 -0
- package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +7 -0
- package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +19 -17
- package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +5 -4
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +15 -14
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +7 -6
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +17 -16
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +18 -11
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -4
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -7
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
- package/cjs/components/shared/file-icon/FileIcon.js +23 -23
- package/cjs/components/shared/file-tabs/FileTab.js +32 -43
- package/cjs/components/shared/file-tabs/FileTab.styled.js +26 -22
- package/cjs/components/shared/file-tabs/FileTabs.js +55 -49
- package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -2
- package/cjs/components/shared/file-tabs/util.js +29 -18
- package/cjs/components/shared/file-tree/FileTree.js +11 -11
- package/cjs/components/shared/file-tree/FileTreeConfig.js +24 -23
- package/cjs/components/shared/file-tree/FileTreeList.js +35 -41
- package/cjs/components/shared/file-tree/FileTreeListItemContent.js +75 -91
- package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +77 -101
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
- package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +51 -86
- package/cjs/components/shared/file-tree/FileTreeListItems.js +150 -153
- package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
- package/cjs/components/shared/file-tree/FileTreeToolbar.js +30 -41
- package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
- package/cjs/components/shared/file-tree/context/FileTreeContext.js +91 -97
- package/cjs/components/shared/file-tree/locales/en.json.js +3 -1
- package/cjs/components/shared/file-tree/locales/ko.json.js +3 -1
- package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
- package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
- package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -1
- package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -1
- package/cjs/components/shared/file-tree/utils/fileTreePath.js +5 -7
- package/cjs/components/shared/file-viewer/FileViewer.js +59 -60
- package/cjs/components/shared/file-viewer/FileViewerCsv.js +145 -101
- package/cjs/components/shared/file-viewer/FileViewerImage.js +7 -8
- package/cjs/components/shared/file-viewer/FileViewerIpynb.js +20 -14
- package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +28 -34
- package/cjs/components/shared/file-viewer/FileViewerText.js +23 -16
- package/cjs/components/shared/file-viewer/locales/en.json.js +3 -1
- package/cjs/components/shared/file-viewer/locales/ko.json.js +3 -1
- package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +3 -1
- package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +3 -1
- package/cjs/components/shared/material-modal/MaterialModal.js +10 -12
- package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -5
- package/cjs/components/shared/monaco-editor/MonacoEditor.js +123 -149
- package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +10 -8
- package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +49 -58
- package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +78 -85
- package/cjs/components/shared/monaco-editor/constants/grammars/index.js +131 -52
- package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
- package/cjs/components/shared/monaco-editor/constants/themes/index.js +80 -32
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
- package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +36 -12
- package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +5 -8
- package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +36 -12
- package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +3 -6
- package/cjs/components/shared/monaco-editor/editor-languages/index.js +3 -1
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +3 -2
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +3 -2
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +3 -2
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +36 -12
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +18 -24
- package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
- package/cjs/components/shared/monaco-editor/locales/en.json.js +3 -1
- package/cjs/components/shared/monaco-editor/locales/ko.json.js +3 -1
- package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
- package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
- package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
- package/cjs/components/shared/monaco-editor/utils/grammar/index.js +70 -32
- package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
- package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
- package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
- package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
- package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -3
- package/cjs/components/shared/monaco-editor/utils/prettier/index.js +30 -9
- package/cjs/components/shared/monaco-editor/utils/theme/convert.js +20 -26
- package/cjs/components/shared/monaco-editor/utils/theme/index.js +22 -5
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +218 -329
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
- package/cjs/components/shared/no-vnc/NoVnc.js +93 -90
- package/cjs/components/shared/no-vnc/NoVncLazy.js +7 -5
- package/cjs/components/shared/preview-container/PreviewContainer.js +7 -10
- package/cjs/components/shared/web-browser/WebBrowser.js +54 -59
- package/cjs/components/shared/xterm/Xterm.js +112 -105
- package/cjs/components/shared/xterm/XtermLazy.js +7 -5
- package/cjs/components/shared/xterm/locales/en.json.js +3 -1
- package/cjs/components/shared/xterm/locales/ko.json.js +3 -1
- package/cjs/constants/arduino.js +10 -10
- package/cjs/constants/shortcutKeyMap.js +5 -5
- package/cjs/constants/stylesheets.js +7 -10
- package/cjs/hooks/useArduino.js +327 -255
- package/cjs/hooks/useExerciseFile.js +24 -24
- package/cjs/hooks/useExericseShortcut.js +6 -5
- package/cjs/hooks/useMaterialExerciseFileUrl.js +54 -37
- package/cjs/hooks/useRunnerRoomWebSocket.js +58 -56
- package/cjs/hooks/useStdioTextConcator.js +18 -12
- package/cjs/hooks/useStdioWebSocket.js +41 -67
- package/cjs/hooks/useUsercodeEditWebSocket.js +230 -252
- package/cjs/hooks/useUsercodeHistory.js +121 -82
- package/cjs/index.js +4 -4
- package/cjs/utils/arduino.js +23 -25
- package/cjs/utils/exerciseFile.js +8 -16
- package/cjs/utils/runner.js +29 -25
- package/es/_virtual/_rollupPluginBabelHelpers.js +504 -0
- package/es/components/material-exercise/MaterialExercise.js +33 -54
- package/es/components/material-exercise/MaterialExercise.styled.js +20 -23
- package/es/components/material-exercise/MaterialExerciseMobile.js +15 -13
- package/es/components/material-exercise/context/ExerciseIntlProvider.js +9 -13
- package/es/components/material-exercise/context/ExerciseProvider.js +79 -79
- package/es/components/material-exercise/context/ExerciseProviderNoImage.js +11 -13
- package/es/components/material-exercise/context/context.js +1 -1
- package/es/components/material-exercise/context/recoil.d.ts +2 -1
- package/es/components/material-exercise/context/recoil.js +563 -374
- package/es/components/material-exercise/context/recoilTypes.js +0 -5
- package/es/components/material-exercise/context/subjects.js +3 -6
- package/es/components/material-exercise/context/types.d.ts +8 -1
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +2 -2
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +73 -62
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
- package/es/components/material-exercise/exercise-code-history/locales/en.json.js +3 -0
- package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +3 -0
- package/es/components/material-exercise/exercise-file/ExerciseFile.js +15 -18
- package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +222 -195
- package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -9
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +31 -28
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +52 -45
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
- package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +321 -225
- package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
- package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +12 -14
- package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -10
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -5
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +43 -36
- package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +53 -37
- package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +25 -20
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +41 -54
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +25 -19
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
- package/es/components/material-exercise/exercise-preview/ExercisePreview.js +21 -34
- package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +13 -10
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +17 -28
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +9 -6
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +81 -82
- package/es/components/material-exercise/exercise-room/ExerciseRoom.js +13 -7
- package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +14 -12
- package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +236 -146
- package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +90 -63
- package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -8
- package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +218 -219
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +7 -9
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +27 -25
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +22 -24
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +76 -94
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +24 -26
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +51 -59
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -4
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +6 -11
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +26 -25
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +2 -2
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +284 -174
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +38 -44
- package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +3 -0
- package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +3 -0
- package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +16 -16
- package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -3
- package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -13
- package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -3
- package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -15
- package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +15 -10
- package/es/components/shared/exercise-version-list/ExerciseVersionList.js +2 -3
- package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +5 -6
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +9 -5
- package/es/components/shared/file-icon/FileIcon.js +20 -22
- package/es/components/shared/file-tabs/FileTab.js +28 -41
- package/es/components/shared/file-tabs/FileTab.styled.js +26 -22
- package/es/components/shared/file-tabs/FileTabs.js +52 -48
- package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
- package/es/components/shared/file-tabs/util.js +29 -18
- package/es/components/shared/file-tree/FileTree.js +3 -5
- package/es/components/shared/file-tree/FileTreeConfig.js +21 -22
- package/es/components/shared/file-tree/FileTreeList.js +31 -39
- package/es/components/shared/file-tree/FileTreeListItemContent.js +67 -85
- package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +29 -40
- package/es/components/shared/file-tree/FileTreeListItemContentInput.js +74 -100
- package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
- package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +48 -85
- package/es/components/shared/file-tree/FileTreeListItems.js +147 -152
- package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
- package/es/components/shared/file-tree/FileTreeToolbar.js +24 -37
- package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
- package/es/components/shared/file-tree/context/FileTreeContext.js +91 -97
- package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -22
- package/es/components/shared/file-tree/utils/fileTreeGenerator.js +193 -173
- package/es/components/shared/file-tree/utils/fileTreeInput.js +0 -1
- package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
- package/es/components/shared/file-tree/utils/fileTreePath.js +5 -7
- package/es/components/shared/file-viewer/FileViewer.js +52 -53
- package/es/components/shared/file-viewer/FileViewerCsv.js +141 -99
- package/es/components/shared/file-viewer/FileViewerImage.js +3 -6
- package/es/components/shared/file-viewer/FileViewerIpynb.js +16 -12
- package/es/components/shared/file-viewer/FileViewerNonViewable.js +22 -30
- package/es/components/shared/file-viewer/FileViewerText.js +18 -13
- package/es/components/shared/material-modal/MaterialModal.js +7 -11
- package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
- package/es/components/shared/monaco-editor/MonacoEditor.js +119 -147
- package/es/components/shared/monaco-editor/MonacoEditorLazy.js +6 -4
- package/es/components/shared/monaco-editor/MonacoEditorMobile.js +45 -56
- package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +73 -82
- package/es/components/shared/monaco-editor/constants/grammars/index.js +131 -52
- package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -9
- package/es/components/shared/monaco-editor/constants/themes/index.js +80 -32
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -18
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +54 -72
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +14 -15
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +8 -9
- package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +33 -11
- package/es/components/shared/monaco-editor/editor-languages/css/index.js +2 -5
- package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +33 -11
- package/es/components/shared/monaco-editor/editor-languages/html/index.js +2 -5
- package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
- package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +0 -1
- package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +0 -1
- package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +0 -1
- package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +33 -11
- package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -16
- package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +12 -9
- package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +18 -28
- package/es/components/shared/monaco-editor/utils/emmet/emmet.js +0 -3
- package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +12 -8
- package/es/components/shared/monaco-editor/utils/grammar/index.js +67 -31
- package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +25 -7
- package/es/components/shared/monaco-editor/utils/grammar/textmate.js +67 -43
- package/es/components/shared/monaco-editor/utils/monacoLanguage.js +9 -19
- package/es/components/shared/monaco-editor/utils/monacoPreference.js +6 -5
- package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -3
- package/es/components/shared/monaco-editor/utils/prettier/index.js +27 -8
- package/es/components/shared/monaco-editor/utils/theme/convert.js +20 -26
- package/es/components/shared/monaco-editor/utils/theme/index.js +22 -5
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +77 -75
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +82 -93
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +125 -135
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +148 -160
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +104 -118
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -2
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +1 -3
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -3
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +219 -330
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -6
- package/es/components/shared/no-vnc/NoVnc.js +89 -88
- package/es/components/shared/no-vnc/NoVncLazy.js +4 -2
- package/es/components/shared/preview-container/PreviewContainer.js +7 -10
- package/es/components/shared/web-browser/WebBrowser.js +49 -56
- package/es/components/shared/xterm/Xterm.js +107 -102
- package/es/components/shared/xterm/XtermLazy.js +4 -2
- package/es/constants/arduino.js +10 -10
- package/es/constants/shortcutKeyMap.js +3 -5
- package/es/constants/stylesheets.js +7 -10
- package/es/hooks/useArduino.js +327 -255
- package/es/hooks/useExerciseFile.js +24 -24
- package/es/hooks/useExericseShortcut.js +6 -5
- package/es/hooks/useMaterialExerciseFileUrl.js +55 -38
- package/es/hooks/useRunnerRoomWebSocket.js +58 -56
- package/es/hooks/useStdioTextConcator.js +18 -12
- package/es/hooks/useStdioWebSocket.js +41 -67
- package/es/hooks/useUsercodeEditWebSocket.js +230 -252
- package/es/hooks/useUsercodeHistory.js +122 -83
- package/es/utils/arduino.js +23 -25
- package/es/utils/exerciseFile.js +8 -16
- package/es/utils/runner.js +29 -25
- package/package.json +8 -8
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
/* eslint-disable */
|
|
6
|
-
|
|
7
6
|
/**
|
|
8
7
|
* Default emmet configuration.
|
|
9
8
|
*/
|
|
10
|
-
|
|
9
|
+
var DEFAULT_CONFIG = {
|
|
11
10
|
showExpandedAbbreviation: 'always',
|
|
12
11
|
showAbbreviationSuggestions: true,
|
|
13
12
|
showSuggestionsAsSnippets: false
|
|
@@ -16,8 +15,7 @@ const DEFAULT_CONFIG = {
|
|
|
16
15
|
* Mapping between languages that support Emmet and completion trigger characters.
|
|
17
16
|
* - ref: https://github.com/microsoft/vscode/blob/50140a53cc2088f478a5560683ccd354f2d5f431/extensions/emmet/src/util.ts#L86
|
|
18
17
|
*/
|
|
19
|
-
|
|
20
|
-
const LANGUAGE_MODES = {
|
|
18
|
+
var LANGUAGE_MODES = {
|
|
21
19
|
html: ['!', '.', '}', ':', '*', '$', ']', '/', '>', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
|
|
22
20
|
jade: ['!', '.', '}', ':', '*', '$', ']', '/', '>', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
|
|
23
21
|
slim: ['!', '.', '}', ':', '*', '$', ']', '/', '>', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
|
|
@@ -36,8 +34,7 @@ const LANGUAGE_MODES = {
|
|
|
36
34
|
* Language specific extensions can provide emmet completion support.
|
|
37
35
|
* - ref: https://github.com/microsoft/vscode/blob/50140a53cc2088f478a5560683ccd354f2d5f431/extensions/emmet/src/util.ts#L124
|
|
38
36
|
*/
|
|
39
|
-
|
|
40
|
-
const MAPPED_MODES = {
|
|
37
|
+
var MAPPED_MODES = {
|
|
41
38
|
handlebars: 'html',
|
|
42
39
|
php: 'html',
|
|
43
40
|
twig: 'html'
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
3
6
|
var React = require('react');
|
|
4
7
|
var reactUse = require('react-use');
|
|
5
8
|
var blocks = require('@elice/blocks');
|
|
@@ -31,49 +34,53 @@ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
|
31
34
|
|
|
32
35
|
//
|
|
33
36
|
//
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
//
|
|
38
|
+
var VNC_BACKGROUND_COLOR = designTokens.base.color.navy7;
|
|
39
|
+
var StyledHeaderTitle = styled__default["default"].div.withConfig({
|
|
37
40
|
componentId: "sc-1duy62f-0"
|
|
38
41
|
})(["flex:1;"]);
|
|
39
|
-
|
|
42
|
+
var StyledHeaderButtonGroup = styled__default["default"].div.withConfig({
|
|
40
43
|
componentId: "sc-1duy62f-1"
|
|
41
44
|
})(["flex:0 0 auto;display:flex;align-items:center;"]);
|
|
42
|
-
|
|
45
|
+
var StyledVncWrap = styled__default["default"].div.withConfig({
|
|
43
46
|
componentId: "sc-1duy62f-2"
|
|
44
47
|
})(["display:flex;align-items:center;justify-content:center;width:100%;height:100%;background-color:", ";overflow:hidden;"], VNC_BACKGROUND_COLOR);
|
|
45
|
-
|
|
48
|
+
var StyledNoVncContainer = styled__default["default"].div.withConfig({
|
|
46
49
|
componentId: "sc-1duy62f-3"
|
|
47
50
|
})([""]);
|
|
48
|
-
|
|
51
|
+
var StyledNoVnc = styled__default["default"].div.withConfig({
|
|
49
52
|
componentId: "sc-1duy62f-4"
|
|
50
|
-
})(["position:relative;left:50%;top:50%;transform-origin:center center;transform:translate(-50%,-50%);"]);
|
|
53
|
+
})(["position:relative;left:50%;top:50%;transform-origin:center center;transform:translate(-50%,-50%);"]);
|
|
51
54
|
//
|
|
52
55
|
//
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
isRunning =
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
56
|
+
//
|
|
57
|
+
var NoVnc = React.forwardRef(function (_ref, ref) {
|
|
58
|
+
var _ref$isRunning = _ref.isRunning,
|
|
59
|
+
isRunning = _ref$isRunning === void 0 ? false : _ref$isRunning,
|
|
60
|
+
wsUri = _ref.wsUri,
|
|
61
|
+
roomToken = _ref.roomToken,
|
|
62
|
+
readyExerciseImage = _ref.readyExerciseImage,
|
|
63
|
+
_ref$exercisePreviewD = _ref.exercisePreviewDisplayModeButton,
|
|
64
|
+
exercisePreviewDisplayModeButton = _ref$exercisePreviewD === void 0 ? null : _ref$exercisePreviewD,
|
|
65
|
+
onConnect = _ref.onConnect,
|
|
66
|
+
onDisconnect = _ref.onDisconnect;
|
|
67
|
+
var vncRfb = React__default["default"].useRef(null);
|
|
68
|
+
var vncElRef = React__default["default"].useRef(null);
|
|
69
|
+
var _useMeasure = reactUse.useMeasure(),
|
|
70
|
+
_useMeasure2 = _rollupPluginBabelHelpers.slicedToArray(_useMeasure, 2),
|
|
71
|
+
vncWrapRef = _useMeasure2[0],
|
|
72
|
+
_useMeasure2$ = _useMeasure2[1],
|
|
73
|
+
width = _useMeasure2$.width,
|
|
74
|
+
height = _useMeasure2$.height;
|
|
75
|
+
var _React$useState = React__default["default"].useState(true),
|
|
76
|
+
_React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
|
|
77
|
+
isVncScaledFromLocal = _React$useState2[0],
|
|
78
|
+
setVncScaledFromLocal = _React$useState2[1];
|
|
70
79
|
/**
|
|
71
80
|
* Default size of VNC from exericse image.
|
|
72
81
|
*/
|
|
73
|
-
|
|
74
|
-
const vncDefaultSize = React__default["default"].useMemo(() => {
|
|
82
|
+
var vncDefaultSize = React__default["default"].useMemo(function () {
|
|
75
83
|
var _a, _b;
|
|
76
|
-
|
|
77
84
|
return {
|
|
78
85
|
width: (_a = readyExerciseImage === null || readyExerciseImage === void 0 ? void 0 : readyExerciseImage.defaultVncWidth) !== null && _a !== void 0 ? _a : 300,
|
|
79
86
|
height: (_b = readyExerciseImage === null || readyExerciseImage === void 0 ? void 0 : readyExerciseImage.defaultVncHeight) !== null && _b !== void 0 ? _b : 300
|
|
@@ -82,86 +89,82 @@ const NoVnc = React.forwardRef(({
|
|
|
82
89
|
/**
|
|
83
90
|
* Transform scale to fit VNC to VNC wrap.
|
|
84
91
|
*/
|
|
85
|
-
|
|
86
|
-
|
|
92
|
+
var vncTransformScale = React__default["default"].useMemo(function () {
|
|
93
|
+
return Math.min(width / vncDefaultSize.width, height / vncDefaultSize.height);
|
|
94
|
+
}, [width, height, vncDefaultSize.width, vncDefaultSize.height]);
|
|
87
95
|
/**
|
|
88
96
|
* Element style of VNC and VNC wrap.
|
|
89
97
|
*/
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
98
|
+
var vncElementStyle = React__default["default"].useMemo(function () {
|
|
99
|
+
return {
|
|
100
|
+
width: "".concat((vncDefaultSize.width * vncTransformScale).toFixed(3), "px"),
|
|
101
|
+
height: "".concat((vncDefaultSize.height * vncTransformScale).toFixed(3), "px")
|
|
102
|
+
};
|
|
103
|
+
}, [vncDefaultSize.width, vncDefaultSize.height, vncTransformScale]);
|
|
95
104
|
/**
|
|
96
105
|
* Connect VNC.
|
|
97
106
|
*/
|
|
98
|
-
|
|
99
|
-
const connect = React__default["default"].useCallback(() => {
|
|
107
|
+
var connect = React__default["default"].useCallback(function () {
|
|
100
108
|
if (!vncElRef.current || !wsUri || !roomToken) {
|
|
101
109
|
return;
|
|
102
110
|
}
|
|
103
|
-
|
|
104
|
-
|
|
111
|
+
var vncUrl = "".concat(wsUri, "/client/vnc/").concat(roomToken);
|
|
112
|
+
// The RFB object represents a single connection to a VNC server.
|
|
105
113
|
// It communicates using a WebSocket that must provide a standard RFB protocol stream.
|
|
106
114
|
// -ref: https://github.com/novnc/noVNC/blob/master/docs/API.md#rfb-1
|
|
107
|
-
|
|
108
115
|
vncRfb.current = new RFB__default["default"](vncElRef.current, vncUrl, {
|
|
109
116
|
wsProtocols: ['binary']
|
|
110
|
-
});
|
|
117
|
+
});
|
|
118
|
+
// ==============================
|
|
111
119
|
// VNC options
|
|
112
120
|
// ref: https://github.com/novnc/noVNC/blob/master/docs/API.md#properties
|
|
113
121
|
// ==============================
|
|
114
122
|
// Is a boolean indicating if the remote session should be clipped to its container.
|
|
115
123
|
// When disabled scrollbars will be shown to handle the resulting overflow.
|
|
116
|
-
|
|
117
|
-
|
|
124
|
+
vncRfb.current.clipViewport = false;
|
|
125
|
+
// Is a boolean indicating if the remote session should be scaled locally so it fits its container.
|
|
118
126
|
// When disabled it will be centered if the remote session is smaller than its container,
|
|
119
127
|
// or handled according to `clipViewport` if it is larger.
|
|
120
|
-
|
|
121
128
|
vncRfb.current.scaleViewport = isVncScaledFromLocal; // NOTE: select one of `scaleViewport` or `resizeSession`, not both
|
|
122
129
|
// Is a boolean indicating if a request to resize the remote session should be sent
|
|
123
130
|
// whenever the container changes dimensions.
|
|
124
|
-
|
|
125
131
|
vncRfb.current.resizeSession = !isVncScaledFromLocal; // NOTE: select one of `scaleViewport` or `resizeSession`, not both
|
|
126
132
|
// Is a boolean indicating whether a dot cursor should be shown instead of a zero-sized
|
|
127
133
|
// or fully-transparent cursor if the server sets such invisible cursor.
|
|
128
|
-
|
|
129
|
-
|
|
134
|
+
vncRfb.current.showDotCursor = true;
|
|
135
|
+
// Is a valid CSS background style value indicating
|
|
130
136
|
// which background style should be applied to the element containing the remote session screen.
|
|
131
|
-
|
|
132
|
-
|
|
137
|
+
vncRfb.current.background = VNC_BACKGROUND_COLOR;
|
|
138
|
+
// ==============================
|
|
133
139
|
// VNC events
|
|
134
140
|
// ref: https://github.com/novnc/noVNC/blob/master/docs/API.md#events
|
|
135
141
|
// ==============================
|
|
136
142
|
// The connect event is fired when the RFB object has completed the connection and handshaking with the server.
|
|
137
143
|
// - ref: https://github.com/novnc/noVNC/blob/master/docs/API.md#connect
|
|
138
|
-
|
|
139
|
-
vncRfb.current.addEventListener('connect', () => {
|
|
144
|
+
vncRfb.current.addEventListener('connect', function () {
|
|
140
145
|
if (typeof onConnect === 'function') {
|
|
141
146
|
onConnect();
|
|
142
147
|
}
|
|
143
|
-
});
|
|
148
|
+
});
|
|
149
|
+
// The disconnect event is fired when the RFB object disconnects.
|
|
144
150
|
// - ref: https://github.com/novnc/noVNC/blob/master/docs/API.md#disconnect
|
|
145
|
-
|
|
146
|
-
vncRfb.current.addEventListener('disconnect', () => {
|
|
151
|
+
vncRfb.current.addEventListener('disconnect', function () {
|
|
147
152
|
if (typeof onDisconnect === 'function') {
|
|
148
153
|
onDisconnect();
|
|
149
154
|
}
|
|
150
155
|
});
|
|
151
|
-
},
|
|
156
|
+
},
|
|
157
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
152
158
|
[wsUri, roomToken, isVncScaledFromLocal]);
|
|
153
159
|
/**
|
|
154
160
|
* Disconnect VNC.
|
|
155
161
|
*/
|
|
156
|
-
|
|
157
|
-
const disconnect = React__default["default"].useCallback(() => {
|
|
162
|
+
var disconnect = React__default["default"].useCallback(function () {
|
|
158
163
|
var _a;
|
|
159
|
-
|
|
160
164
|
if (typeof ((_a = vncRfb.current) === null || _a === void 0 ? void 0 : _a.disconnect) === 'function') {
|
|
161
165
|
vncRfb.current.disconnect();
|
|
162
166
|
vncRfb.current = null;
|
|
163
167
|
}
|
|
164
|
-
|
|
165
168
|
if (vncElRef.current) {
|
|
166
169
|
vncElRef.current.innerHTML = '';
|
|
167
170
|
}
|
|
@@ -170,15 +173,13 @@ const NoVnc = React.forwardRef(({
|
|
|
170
173
|
* Reset VNC.
|
|
171
174
|
* - note: https://www.notion.so/elice/elice-runner-v3-forwarder-4907ba8546274956b2f55c586df1641a#d61df659d91644db85a52fc148a69e13
|
|
172
175
|
*/
|
|
173
|
-
|
|
174
|
-
const reset = React__default["default"].useCallback(() => {
|
|
176
|
+
var reset = React__default["default"].useCallback(function () {
|
|
175
177
|
if (!vncRfb.current) {
|
|
176
178
|
return;
|
|
177
|
-
}
|
|
179
|
+
}
|
|
180
|
+
//
|
|
178
181
|
// FIXME: This code accesses to the internal of noVNC
|
|
179
182
|
//
|
|
180
|
-
|
|
181
|
-
|
|
182
183
|
vncRfb.current._rfbConnectionState = 'connecting';
|
|
183
184
|
vncRfb.current._rfbInitState = 'ProtocolVersion';
|
|
184
185
|
vncRfb.current._rfbTightVNC = false;
|
|
@@ -208,62 +209,64 @@ const NoVnc = React.forwardRef(({
|
|
|
208
209
|
vncRfb.current._decoders[encodings.encodings.encodingHextile] = new RFB_decoders_hextile__default["default"]();
|
|
209
210
|
vncRfb.current._decoders[encodings.encodings.encodingTight] = new RFB_decoders_tight__default["default"]();
|
|
210
211
|
vncRfb.current._decoders[encodings.encodings.encodingTightPNG] = new RFB_decoders_tight_png__default["default"]();
|
|
211
|
-
|
|
212
212
|
vncRfb.current._sock.flush();
|
|
213
|
-
|
|
214
213
|
vncRfb.current._sock._allocateBuffers();
|
|
215
|
-
|
|
216
214
|
vncRfb.current._sock._rQi = 0;
|
|
217
|
-
vncRfb.current._sock._rQlen = 0;
|
|
215
|
+
vncRfb.current._sock._rQlen = 0;
|
|
216
|
+
//
|
|
218
217
|
// FIXME: This code accesses to the internal of noVNC
|
|
219
218
|
//
|
|
220
|
-
}, []);
|
|
219
|
+
}, []);
|
|
220
|
+
//
|
|
221
221
|
// Connect or disconnect VNC.
|
|
222
222
|
//
|
|
223
|
-
|
|
224
223
|
reactUse.useMount(connect);
|
|
225
|
-
reactUse.useUnmount(disconnect);
|
|
224
|
+
reactUse.useUnmount(disconnect);
|
|
225
|
+
//
|
|
226
226
|
// Update VNC scale config.
|
|
227
227
|
//
|
|
228
|
-
|
|
229
|
-
reactUse.useUpdateEffect(() => {
|
|
228
|
+
reactUse.useUpdateEffect(function () {
|
|
230
229
|
if (!vncRfb.current) {
|
|
231
230
|
return;
|
|
232
231
|
}
|
|
233
|
-
|
|
234
232
|
vncRfb.current.scaleViewport = isVncScaledFromLocal;
|
|
235
233
|
vncRfb.current.resizeSession = !isVncScaledFromLocal;
|
|
236
|
-
},
|
|
237
|
-
|
|
234
|
+
},
|
|
235
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
236
|
+
[isVncScaledFromLocal]);
|
|
238
237
|
//
|
|
239
238
|
//
|
|
240
|
-
|
|
241
|
-
React__default["default"].useImperativeHandle(ref, ()
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
239
|
+
//
|
|
240
|
+
React__default["default"].useImperativeHandle(ref, function () {
|
|
241
|
+
return {
|
|
242
|
+
connect: connect,
|
|
243
|
+
disconnect: disconnect,
|
|
244
|
+
reset: reset
|
|
245
|
+
};
|
|
246
|
+
}, [connect, disconnect, reset]);
|
|
246
247
|
/**
|
|
247
248
|
* Header.
|
|
248
249
|
*/
|
|
249
|
-
|
|
250
|
-
const renderVncHeader = () => {
|
|
250
|
+
var renderVncHeader = function renderVncHeader() {
|
|
251
251
|
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(StyledHeaderTitle, null, React__default["default"].createElement(blocks.Text, {
|
|
252
252
|
role: "white",
|
|
253
253
|
size: "tiny"
|
|
254
|
-
}, "\uC2E4\uD589 \uACB0\uACFC")), React__default["default"].createElement(StyledHeaderButtonGroup, null, React__default["default"].createElement(ExerciseMenuButton, {
|
|
254
|
+
}, "\uC2E4\uD589 \uACB0\uACFC")), React__default["default"].createElement(StyledHeaderButtonGroup, null, React__default["default"].createElement(ExerciseMenuButton["default"], {
|
|
255
255
|
icon: isVncScaledFromLocal ? icons.eilViewMaximize : icons.eilViewMinimize,
|
|
256
256
|
title: isRunning ? '실행 중에는 비율을 변경할 수 없습니다' : isVncScaledFromLocal ? '확대하여 보기' : '원본 비율로 보기',
|
|
257
257
|
disabled: isRunning,
|
|
258
|
-
onClick: ()
|
|
258
|
+
onClick: function onClick() {
|
|
259
|
+
return setVncScaledFromLocal(function (prev) {
|
|
260
|
+
return !prev;
|
|
261
|
+
});
|
|
262
|
+
}
|
|
259
263
|
}), React__default["default"].isValidElement(exercisePreviewDisplayModeButton) ? React__default["default"].cloneElement(exercisePreviewDisplayModeButton, {
|
|
260
264
|
disabled: isRunning
|
|
261
265
|
}) : null));
|
|
262
|
-
};
|
|
266
|
+
};
|
|
267
|
+
//
|
|
263
268
|
//
|
|
264
269
|
//
|
|
265
|
-
|
|
266
|
-
|
|
267
270
|
return React__default["default"].createElement(PreviewContainer["default"], {
|
|
268
271
|
header: renderVncHeader()
|
|
269
272
|
}, React__default["default"].createElement(StyledVncWrap, {
|
|
@@ -276,4 +279,4 @@ const NoVnc = React.forwardRef(({
|
|
|
276
279
|
}))));
|
|
277
280
|
});
|
|
278
281
|
|
|
279
|
-
|
|
282
|
+
exports["default"] = NoVnc;
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
3
5
|
var React = require('react');
|
|
4
6
|
|
|
5
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
6
8
|
|
|
7
|
-
function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, 'default': e }); }
|
|
8
|
-
|
|
9
9
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
var AsyncNoVnc = React__default["default"].lazy(function () {
|
|
12
|
+
return Promise.resolve().then(function () { return require('./NoVnc.js'); });
|
|
13
|
+
});
|
|
14
|
+
var NoVncLazy = React.forwardRef(function (props, ref) {
|
|
13
15
|
return React__default["default"].createElement(React__default["default"].Suspense, {
|
|
14
16
|
fallback: null
|
|
15
17
|
}, React__default["default"].createElement(AsyncNoVnc, Object.assign({}, props, {
|
|
@@ -17,4 +19,4 @@ const NoVncLazy = React.forwardRef((props, ref) => {
|
|
|
17
19
|
})));
|
|
18
20
|
});
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
exports["default"] = NoVncLazy;
|
|
@@ -11,20 +11,17 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
11
11
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
12
12
|
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const StyledPreviewContainer = styled__default["default"].div.withConfig({
|
|
14
|
+
var PREVIEW_CONTAINER_HEADER_HEIGHT = 36; // 2.25rem
|
|
15
|
+
var PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM = 4; // 0.25rem
|
|
16
|
+
var StyledPreviewContainer = styled__default["default"].div.withConfig({
|
|
19
17
|
componentId: "sc-1oi07w2-0"
|
|
20
18
|
})(["display:flex;flex-direction:column;width:100%;height:100%;background-color:", ";overflow:hidden;"], designTokens.base.color.white);
|
|
21
|
-
|
|
19
|
+
var StyledPreviewHeader = styled__default["default"].div.withConfig({
|
|
22
20
|
componentId: "sc-1oi07w2-1"
|
|
23
21
|
})(["flex:0 0 ", "px;display:flex;align-items:center;padding:", "px 0.5rem;border-bottom:1px solid ", ";background-color:", ";"], PREVIEW_CONTAINER_HEADER_HEIGHT, PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM, designTokens.base.color.navy7, designTokens.base.color.navy8);
|
|
24
|
-
|
|
25
|
-
children,
|
|
26
|
-
|
|
27
|
-
}, ref) => {
|
|
22
|
+
var PreviewContainer = React.forwardRef(function (_ref, ref) {
|
|
23
|
+
var children = _ref.children,
|
|
24
|
+
header = _ref.header;
|
|
28
25
|
return React__default["default"].createElement(StyledPreviewContainer, {
|
|
29
26
|
ref: ref
|
|
30
27
|
}, React__default["default"].createElement(StyledPreviewHeader, {
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
3
6
|
var React = require('react');
|
|
4
7
|
var blocks = require('@elice/blocks');
|
|
5
8
|
var designTokens = require('@elice/design-tokens');
|
|
@@ -13,40 +16,45 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
13
16
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
14
17
|
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
15
18
|
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
var WEB_BROWSER_URL_INPUT_HEIGHT = PreviewContainer.PREVIEW_CONTAINER_HEADER_HEIGHT - PreviewContainer.PREVIEW_CONTAINER_HEADER_PADDING_TOP_BOTTOM * 2;
|
|
20
|
+
var StyledHeaderUrlInput = styled__default["default"].input.withConfig({
|
|
18
21
|
componentId: "sc-1c55yq-0"
|
|
19
22
|
})(["flex:1;min-width:0;height:", "px;padding:0.25rem 0.5rem;color:", ";background:", ";border:0;border-radius:0.25rem;&:active,&:focus{outline:none;}"], WEB_BROWSER_URL_INPUT_HEIGHT, designTokens.base.color.white, designTokens.base.color.navy6);
|
|
20
|
-
|
|
23
|
+
var StyledIframe = styled__default["default"].iframe.withConfig({
|
|
21
24
|
componentId: "sc-1c55yq-1"
|
|
22
25
|
})(["flex:1;width:100%;height:100%;min-height:0;border:0;"]);
|
|
23
26
|
/**
|
|
24
27
|
* Attach `_cachebust` search parameter to the URL to prevent caching.
|
|
25
28
|
*/
|
|
26
|
-
|
|
27
|
-
const createCacheBustedUrl = url => {
|
|
29
|
+
var createCacheBustedUrl = function createCacheBustedUrl(url) {
|
|
28
30
|
try {
|
|
29
|
-
|
|
31
|
+
var urlObject = new URL(url);
|
|
30
32
|
urlObject.searchParams.set('_cachebust', Date.now().toString());
|
|
31
33
|
return urlObject.href;
|
|
32
34
|
} catch (_) {
|
|
33
35
|
return url;
|
|
34
36
|
}
|
|
35
37
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
38
|
+
var WebBrowser = React.forwardRef(function (_ref, ref) {
|
|
39
|
+
var httpUri = _ref.httpUri,
|
|
40
|
+
_ref$menuButtons = _ref.menuButtons,
|
|
41
|
+
menuButtons = _ref$menuButtons === void 0 ? null : _ref$menuButtons;
|
|
42
|
+
var _React$useState = React__default["default"].useState(''),
|
|
43
|
+
_React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
|
|
44
|
+
url = _React$useState2[0],
|
|
45
|
+
setUrl = _React$useState2[1];
|
|
46
|
+
var _React$useState3 = React__default["default"].useState(''),
|
|
47
|
+
_React$useState4 = _rollupPluginBabelHelpers.slicedToArray(_React$useState3, 2),
|
|
48
|
+
inputUrl = _React$useState4[0],
|
|
49
|
+
setInputUrl = _React$useState4[1];
|
|
50
|
+
var iframeRef = React__default["default"].useRef(null);
|
|
51
|
+
var iframeSrc = React__default["default"].useMemo(function () {
|
|
52
|
+
return createCacheBustedUrl(url);
|
|
53
|
+
}, [url]);
|
|
45
54
|
/**
|
|
46
55
|
* Navigate browser.
|
|
47
56
|
*/
|
|
48
|
-
|
|
49
|
-
const navigate = React__default["default"].useCallback(newUrl => {
|
|
57
|
+
var navigate = React__default["default"].useCallback(function (newUrl) {
|
|
50
58
|
if (newUrl) {
|
|
51
59
|
setUrl(newUrl);
|
|
52
60
|
}
|
|
@@ -54,8 +62,7 @@ const WebBrowser = React.forwardRef(({
|
|
|
54
62
|
/**
|
|
55
63
|
* Reload browser.
|
|
56
64
|
*/
|
|
57
|
-
|
|
58
|
-
const reload = React__default["default"].useCallback(() => {
|
|
65
|
+
var reload = React__default["default"].useCallback(function () {
|
|
59
66
|
if (iframeRef.current) {
|
|
60
67
|
iframeRef.current.src = createCacheBustedUrl(iframeRef.current.src);
|
|
61
68
|
}
|
|
@@ -63,10 +70,8 @@ const WebBrowser = React.forwardRef(({
|
|
|
63
70
|
/**
|
|
64
71
|
* New window open click.
|
|
65
72
|
*/
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const win = window.open(url, '_blank');
|
|
69
|
-
|
|
73
|
+
var handleNewWindowClick = function handleNewWindowClick() {
|
|
74
|
+
var win = window.open(url, '_blank');
|
|
70
75
|
if (win) {
|
|
71
76
|
win.focus();
|
|
72
77
|
}
|
|
@@ -74,19 +79,15 @@ const WebBrowser = React.forwardRef(({
|
|
|
74
79
|
/**
|
|
75
80
|
* Handle url input change.
|
|
76
81
|
*/
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const value = e.target.value; // prevent removal of origin url (props.httpUri)
|
|
81
|
-
|
|
82
|
+
var handleUrlInputChange = function handleUrlInputChange(e) {
|
|
83
|
+
var value = e.target.value;
|
|
84
|
+
// prevent removal of origin url (props.httpUri)
|
|
82
85
|
setInputUrl(value.startsWith(httpUri) ? value : httpUri);
|
|
83
86
|
};
|
|
84
87
|
/**
|
|
85
88
|
* Handle url input Enter key down.
|
|
86
89
|
*/
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const handleUrlInputKeyDown = e => {
|
|
90
|
+
var handleUrlInputKeyDown = function handleUrlInputKeyDown(e) {
|
|
90
91
|
if (e.key === 'Enter') {
|
|
91
92
|
e.preventDefault();
|
|
92
93
|
navigate(inputUrl);
|
|
@@ -95,44 +96,41 @@ const WebBrowser = React.forwardRef(({
|
|
|
95
96
|
/**
|
|
96
97
|
* Handle iframe load.
|
|
97
98
|
*/
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
const handleIframeLoad = () => {
|
|
99
|
+
var handleIframeLoad = function handleIframeLoad() {
|
|
101
100
|
var _a, _b, _c;
|
|
102
|
-
|
|
103
101
|
try {
|
|
104
|
-
|
|
105
|
-
|
|
102
|
+
var iframeUrl = (_c = (_b = (_a = iframeRef.current) === null || _a === void 0 ? void 0 : _a.contentWindow) === null || _b === void 0 ? void 0 : _b.location) === null || _c === void 0 ? void 0 : _c.href;
|
|
106
103
|
if (iframeUrl) {
|
|
107
104
|
setInputUrl(iframeUrl);
|
|
108
105
|
}
|
|
109
|
-
} catch (err) {
|
|
106
|
+
} catch (err) {
|
|
107
|
+
// SecurityError : can be raised on the cross-origin environment!
|
|
110
108
|
// do nothing.
|
|
111
109
|
}
|
|
112
|
-
};
|
|
110
|
+
};
|
|
111
|
+
//
|
|
113
112
|
// Change url on new httpUri provided.
|
|
114
113
|
//
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
React__default["default"].useEffect(() => {
|
|
114
|
+
React__default["default"].useEffect(function () {
|
|
118
115
|
setUrl(httpUri);
|
|
119
116
|
setInputUrl(httpUri);
|
|
120
|
-
}, [httpUri]);
|
|
117
|
+
}, [httpUri]);
|
|
121
118
|
//
|
|
122
119
|
//
|
|
123
|
-
|
|
124
|
-
React__default["default"].useImperativeHandle(ref, ()
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
120
|
+
//
|
|
121
|
+
React__default["default"].useImperativeHandle(ref, function () {
|
|
122
|
+
return {
|
|
123
|
+
navigate: navigate,
|
|
124
|
+
reload: reload
|
|
125
|
+
};
|
|
126
|
+
}, [navigate, reload]);
|
|
128
127
|
/**
|
|
129
128
|
* Browser header.
|
|
130
129
|
*/
|
|
131
|
-
|
|
132
|
-
const renderBrowserHeader = () => {
|
|
130
|
+
var renderBrowserHeader = function renderBrowserHeader() {
|
|
133
131
|
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(blocks.Flex, {
|
|
134
132
|
marginright: "0.25rem"
|
|
135
|
-
}, React__default["default"].createElement(ExerciseMenuButton, {
|
|
133
|
+
}, React__default["default"].createElement(ExerciseMenuButton["default"], {
|
|
136
134
|
icon: icons.eilRetry,
|
|
137
135
|
title: "\uC0C8\uB85C\uACE0\uCE68",
|
|
138
136
|
placement: "bottom-start",
|
|
@@ -143,7 +141,7 @@ const WebBrowser = React.forwardRef(({
|
|
|
143
141
|
onKeyDown: handleUrlInputKeyDown
|
|
144
142
|
}), React__default["default"].createElement(blocks.Flex, {
|
|
145
143
|
marginleft: "0.25rem"
|
|
146
|
-
}, React__default["default"].createElement(ExerciseMenuButton, {
|
|
144
|
+
}, React__default["default"].createElement(ExerciseMenuButton["default"], {
|
|
147
145
|
icon: icons.eilNewWindow,
|
|
148
146
|
title: "\uC0C8\uCC3D\uC73C\uB85C \uC5F4\uAE30",
|
|
149
147
|
placement: "bottom-end",
|
|
@@ -153,23 +151,20 @@ const WebBrowser = React.forwardRef(({
|
|
|
153
151
|
/**
|
|
154
152
|
* Browser content.
|
|
155
153
|
*/
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
const renderBrowserBody = () => {
|
|
154
|
+
var renderBrowserBody = function renderBrowserBody() {
|
|
159
155
|
return React__default["default"].createElement(StyledIframe, {
|
|
160
156
|
src: iframeSrc,
|
|
161
157
|
title: url,
|
|
162
158
|
onLoad: handleIframeLoad,
|
|
163
159
|
ref: iframeRef
|
|
164
160
|
});
|
|
165
|
-
};
|
|
161
|
+
};
|
|
162
|
+
//
|
|
166
163
|
//
|
|
167
164
|
//
|
|
168
|
-
|
|
169
|
-
|
|
170
165
|
return React__default["default"].createElement(PreviewContainer["default"], {
|
|
171
166
|
header: renderBrowserHeader()
|
|
172
167
|
}, renderBrowserBody());
|
|
173
168
|
});
|
|
174
169
|
|
|
175
|
-
|
|
170
|
+
exports["default"] = WebBrowser;
|