@elice/material-exercise 1.231227.0 → 1.231228.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/components/material-exercise/MaterialExercise.i18n.js +2 -4
- package/cjs/components/material-exercise/MaterialExercise.js +54 -59
- package/cjs/components/material-exercise/MaterialExercise.styled.js +14 -20
- package/cjs/components/material-exercise/MaterialExerciseMobile.js +8 -15
- package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +14 -18
- package/cjs/components/material-exercise/context/ExerciseProvider.js +58 -66
- package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +19 -24
- package/cjs/components/material-exercise/context/context.js +1 -7
- package/cjs/components/material-exercise/context/locales/noImage.en.json.js +1 -1
- package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +1 -1
- package/cjs/components/material-exercise/context/recoil.js +293 -544
- package/cjs/components/material-exercise/context/recoilTypes.js +0 -2
- package/cjs/components/material-exercise/context/subjects.js +3 -5
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +60 -67
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -14
- package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +17 -21
- package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +133 -203
- package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +8 -12
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +24 -40
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +38 -52
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +5 -9
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +189 -328
- package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +5 -9
- package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +14 -17
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +11 -15
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +7 -11
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +44 -65
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +32 -61
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +19 -35
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +48 -62
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -18
- package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +21 -32
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +4 -8
- package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +23 -27
- package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +7 -17
- package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +23 -32
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +7 -15
- package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +79 -86
- package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +11 -22
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -20
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +180 -288
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +82 -116
- package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -4
- package/cjs/components/material-exercise/exercise-room/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +125 -181
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -7
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +13 -17
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +43 -58
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +15 -27
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +65 -68
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +23 -32
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +58 -92
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +3 -7
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +11 -16
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +18 -29
- package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +162 -282
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -14
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +41 -54
- package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +1 -1
- package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +15 -21
- package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +14 -19
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +16 -21
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +5 -10
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +18 -23
- package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +10 -21
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +5 -8
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -7
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +8 -11
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -15
- package/cjs/components/shared/file-icon/FileIcon.js +17 -23
- package/cjs/components/shared/file-tabs/FileTab.js +30 -36
- package/cjs/components/shared/file-tabs/FileTab.styled.js +15 -25
- package/cjs/components/shared/file-tabs/FileTabs.js +38 -63
- package/cjs/components/shared/file-tabs/FileTabs.styled.js +2 -8
- package/cjs/components/shared/file-tabs/util.js +14 -29
- package/cjs/components/shared/file-tree/FileTree.js +12 -17
- package/cjs/components/shared/file-tree/FileTreeConfig.js +22 -25
- package/cjs/components/shared/file-tree/FileTreeList.js +37 -39
- package/cjs/components/shared/file-tree/FileTreeListItemContent.js +61 -75
- package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -31
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +64 -72
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -12
- package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +63 -74
- package/cjs/components/shared/file-tree/FileTreeListItems.js +136 -151
- package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +2 -8
- package/cjs/components/shared/file-tree/FileTreeToolbar.js +31 -32
- package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +1 -7
- package/cjs/components/shared/file-tree/context/FileTreeContext.js +76 -97
- package/cjs/components/shared/file-tree/locales/en.json.js +1 -1
- package/cjs/components/shared/file-tree/locales/ko.json.js +1 -1
- package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +20 -26
- package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +146 -195
- package/cjs/components/shared/file-tree/utils/fileTreeInput.js +0 -2
- package/cjs/components/shared/file-tree/utils/fileTreeItem.js +1 -3
- package/cjs/components/shared/file-tree/utils/fileTreePath.js +6 -7
- package/cjs/components/shared/file-viewer/FileViewer.js +37 -61
- package/cjs/components/shared/file-viewer/FileViewerCsv.js +108 -172
- package/cjs/components/shared/file-viewer/FileViewerImage.js +8 -12
- package/cjs/components/shared/file-viewer/FileViewerIpynb.js +10 -23
- package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +33 -42
- package/cjs/components/shared/file-viewer/FileViewerText.js +12 -24
- package/cjs/components/shared/file-viewer/locales/en.json.js +1 -1
- package/cjs/components/shared/file-viewer/locales/ko.json.js +1 -1
- package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +1 -1
- package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +1 -1
- package/cjs/components/shared/material-modal/MaterialModal.js +11 -14
- package/cjs/components/shared/material-modal/MaterialModal.styled.js +5 -11
- package/cjs/components/shared/monaco-editor/MonacoEditor.js +74 -99
- package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +6 -12
- package/cjs/components/shared/monaco-editor/MonacoEditorMobile.js +36 -50
- package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +91 -110
- package/cjs/components/shared/monaco-editor/constants/grammars/JSON.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/MagicPython.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/TypeScriptReact.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/asp-vb-net.tmlanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/c.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/cpp.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/csharp.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/css.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/dart.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/fsharp.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/go.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/html.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/index.js +28 -84
- package/cjs/components/shared/monaco-editor/constants/grammars/java.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/lua.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/objective-c.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/php.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/r.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/ruby.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/rust.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/scss.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/sql.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/swift.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/xml.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/grammars/yaml.tmLanguage.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +5 -7
- package/cjs/components/shared/monaco-editor/constants/themes/abyss.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/elice.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/index.js +17 -51
- package/cjs/components/shared/monaco-editor/constants/themes/kimbie-dark.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/monokai.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/quietlight.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/red.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/solarized-dark.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/solarized-light.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/tomorrow-night-blue.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/vs-dark-plus.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/vs-dark.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-black.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-light.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/vs-light-plus.json.js +1 -1
- package/cjs/components/shared/monaco-editor/constants/themes/vs-light.json.js +1 -1
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -13
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -17
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -11
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -36
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -11
- package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -8
- package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +11 -52
- package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +7 -8
- package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +11 -52
- package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +5 -6
- package/cjs/components/shared/monaco-editor/editor-languages/index.js +4 -4
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -3
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +1 -1
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +1 -1
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +1 -1
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +11 -56
- package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +17 -18
- package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -13
- package/cjs/components/shared/monaco-editor/locales/en.json.js +1 -1
- package/cjs/components/shared/monaco-editor/locales/ko.json.js +1 -1
- package/cjs/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -12
- package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +0 -2
- package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -14
- package/cjs/components/shared/monaco-editor/utils/grammar/index.js +25 -69
- package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -27
- package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +38 -73
- package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +8 -11
- package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +4 -8
- package/cjs/components/shared/monaco-editor/utils/prettier/config.js +2 -4
- package/cjs/components/shared/monaco-editor/utils/prettier/index.js +8 -46
- package/cjs/components/shared/monaco-editor/utils/theme/convert.js +14 -26
- package/cjs/components/shared/monaco-editor/utils/theme/index.js +3 -24
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -79
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -84
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -122
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +133 -158
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -106
- package/cjs/components/shared/monaco-editor/vendors/monaco-collab-ext/styles.js +2 -4
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +6 -3
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -4
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +158 -179
- package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -5
- package/cjs/components/shared/no-vnc/NoVnc.js +57 -86
- package/cjs/components/shared/no-vnc/NoVncLazy.js +5 -11
- package/cjs/components/shared/preview-container/PreviewContainer.js +11 -15
- package/cjs/components/shared/web-browser/WebBrowser.js +37 -53
- package/cjs/components/shared/xterm/Xterm.js +58 -81
- package/cjs/components/shared/xterm/XtermLazy.js +5 -11
- package/cjs/components/shared/xterm/locales/en.json.js +1 -1
- package/cjs/components/shared/xterm/locales/ko.json.js +1 -1
- package/cjs/components/shared/xterm/utils/index.js +0 -2
- package/cjs/constants/arduino.js +10 -12
- package/cjs/constants/shortcutKeyMap.js +2 -4
- package/cjs/constants/stylesheets.js +5 -9
- package/cjs/hooks/useArduino.js +141 -284
- package/cjs/hooks/useExerciseFile.js +22 -26
- package/cjs/hooks/useExericseShortcut.js +4 -8
- package/cjs/hooks/useMaterialExerciseFileUrl.js +33 -57
- package/cjs/hooks/useRunnerRoomWebSocket.js +27 -53
- package/cjs/hooks/useStdioTextConcator.js +10 -22
- package/cjs/hooks/useStdioWebSocket.js +28 -34
- package/cjs/hooks/useUsercodeEditWebSocket.js +158 -240
- package/cjs/hooks/useUsercodeHistory.js +63 -117
- package/cjs/index.js +4 -6
- package/cjs/utils/arduino.js +11 -25
- package/cjs/utils/exerciseFile.js +10 -10
- package/cjs/utils/runner.js +15 -31
- package/es/components/material-exercise/MaterialExercise.i18n.js +2 -2
- package/es/components/material-exercise/MaterialExercise.js +34 -35
- package/es/components/material-exercise/MaterialExercise.styled.js +14 -14
- package/es/components/material-exercise/MaterialExerciseMobile.js +6 -9
- package/es/components/material-exercise/context/ExerciseIntlProvider.js +10 -8
- package/es/components/material-exercise/context/ExerciseProvider.js +52 -55
- package/es/components/material-exercise/context/ExerciseProviderNoImage.js +10 -10
- package/es/components/material-exercise/context/context.js +1 -1
- package/es/components/material-exercise/context/recoil.js +290 -535
- package/es/components/material-exercise/context/subjects.js +3 -3
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +51 -53
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +8 -8
- package/es/components/material-exercise/exercise-file/ExerciseFile.js +9 -8
- package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +127 -193
- package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +5 -4
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +20 -31
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +35 -44
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +1 -1
- package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +181 -315
- package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +1 -1
- package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +11 -10
- package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +7 -6
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +3 -3
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +25 -42
- package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +26 -51
- package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +11 -23
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +21 -31
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +12 -12
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +19 -26
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +1 -1
- package/es/components/material-exercise/exercise-preview/ExercisePreview.js +15 -14
- package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +5 -11
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +11 -15
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +5 -9
- package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +78 -80
- package/es/components/material-exercise/exercise-room/ExerciseRoom.js +6 -13
- package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +12 -14
- package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +134 -236
- package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +65 -94
- package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +2 -2
- package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +116 -167
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +1 -1
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +8 -7
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +17 -27
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +11 -18
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +52 -50
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.js +10 -14
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +46 -75
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +2 -2
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +4 -4
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +15 -21
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +138 -253
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +8 -8
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +29 -37
- package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +12 -13
- package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +2 -2
- package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +12 -12
- package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +2 -2
- package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +14 -14
- package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +9 -15
- package/es/components/shared/exercise-version-list/ExerciseVersionList.js +3 -2
- package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +1 -1
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +6 -5
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +5 -9
- package/es/components/shared/file-icon/FileIcon.js +15 -17
- package/es/components/shared/file-tabs/FileTab.js +22 -24
- package/es/components/shared/file-tabs/FileTab.styled.js +15 -19
- package/es/components/shared/file-tabs/FileTabs.js +35 -55
- package/es/components/shared/file-tabs/FileTabs.styled.js +2 -2
- package/es/components/shared/file-tabs/util.js +14 -27
- package/es/components/shared/file-tree/FileTree.js +3 -3
- package/es/components/shared/file-tree/FileTreeConfig.js +18 -15
- package/es/components/shared/file-tree/FileTreeList.js +33 -29
- package/es/components/shared/file-tree/FileTreeListItemContent.js +45 -55
- package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +21 -25
- package/es/components/shared/file-tree/FileTreeListItemContentInput.js +60 -64
- package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +6 -6
- package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +39 -46
- package/es/components/shared/file-tree/FileTreeListItems.js +134 -145
- package/es/components/shared/file-tree/FileTreeListItems.styled.js +2 -2
- package/es/components/shared/file-tree/FileTreeToolbar.js +25 -22
- package/es/components/shared/file-tree/FileTreeToolbar.styled.js +1 -1
- package/es/components/shared/file-tree/context/FileTreeContext.js +74 -89
- package/es/components/shared/file-tree/utils/fileTreeFiles.js +20 -20
- package/es/components/shared/file-tree/utils/fileTreeGenerator.js +146 -193
- package/es/components/shared/file-tree/utils/fileTreeItem.js +1 -1
- package/es/components/shared/file-tree/utils/fileTreePath.js +6 -5
- package/es/components/shared/file-viewer/FileViewer.js +21 -38
- package/es/components/shared/file-viewer/FileViewerCsv.js +70 -129
- package/es/components/shared/file-viewer/FileViewerImage.js +4 -3
- package/es/components/shared/file-viewer/FileViewerIpynb.js +7 -14
- package/es/components/shared/file-viewer/FileViewerNonViewable.js +15 -18
- package/es/components/shared/file-viewer/FileViewerText.js +9 -17
- package/es/components/shared/material-modal/MaterialModal.js +8 -7
- package/es/components/shared/material-modal/MaterialModal.styled.js +5 -5
- package/es/components/shared/monaco-editor/MonacoEditor.js +67 -87
- package/es/components/shared/monaco-editor/MonacoEditorLazy.js +2 -4
- package/es/components/shared/monaco-editor/MonacoEditorMobile.js +31 -41
- package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +52 -66
- package/es/components/shared/monaco-editor/constants/grammars/index.js +28 -82
- package/es/components/shared/monaco-editor/constants/monaco/preferences.js +5 -5
- package/es/components/shared/monaco-editor/constants/themes/index.js +17 -49
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +10 -11
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +14 -15
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +8 -9
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +30 -34
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +7 -9
- package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +6 -6
- package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +10 -33
- package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +10 -33
- package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +1 -1
- package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +10 -37
- package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +3 -3
- package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +5 -11
- package/es/components/shared/monaco-editor/utils/emmet/abbreviationActions.js +12 -10
- package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +6 -12
- package/es/components/shared/monaco-editor/utils/grammar/index.js +24 -68
- package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +6 -25
- package/es/components/shared/monaco-editor/utils/grammar/textmate.js +35 -67
- package/es/components/shared/monaco-editor/utils/monacoLanguage.js +5 -5
- package/es/components/shared/monaco-editor/utils/monacoPreference.js +4 -6
- package/es/components/shared/monaco-editor/utils/prettier/config.js +2 -2
- package/es/components/shared/monaco-editor/utils/prettier/index.js +7 -27
- package/es/components/shared/monaco-editor/utils/theme/convert.js +13 -19
- package/es/components/shared/monaco-editor/utils/theme/index.js +3 -22
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursor.js +56 -77
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorManager.js +68 -82
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteCursorWidget.js +93 -120
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelection.js +130 -152
- package/es/components/shared/monaco-editor/vendors/monaco-collab-ext/RemoteSelectionManager.js +92 -104
- 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 +6 -1
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +2 -2
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +157 -172
- package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +3 -3
- package/es/components/shared/no-vnc/NoVnc.js +42 -59
- package/es/components/shared/no-vnc/NoVncLazy.js +2 -4
- package/es/components/shared/preview-container/PreviewContainer.js +8 -7
- package/es/components/shared/web-browser/WebBrowser.js +29 -40
- package/es/components/shared/xterm/Xterm.js +51 -69
- package/es/components/shared/xterm/XtermLazy.js +2 -4
- package/es/constants/arduino.js +10 -10
- package/es/constants/shortcutKeyMap.js +1 -3
- package/es/constants/stylesheets.js +5 -7
- package/es/hooks/useArduino.js +141 -278
- package/es/hooks/useExerciseFile.js +22 -24
- package/es/hooks/useExericseShortcut.js +4 -6
- package/es/hooks/useMaterialExerciseFileUrl.js +34 -52
- package/es/hooks/useRunnerRoomWebSocket.js +27 -51
- package/es/hooks/useStdioTextConcator.js +10 -16
- package/es/hooks/useStdioWebSocket.js +28 -32
- package/es/hooks/useUsercodeEditWebSocket.js +157 -232
- package/es/hooks/useUsercodeHistory.js +63 -115
- package/es/utils/arduino.js +11 -23
- package/es/utils/exerciseFile.js +10 -8
- package/es/utils/runner.js +15 -29
- package/package.json +11 -7
- package/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -521
- package/es/_virtual/_rollupPluginBabelHelpers.js +0 -499
|
@@ -6,45 +6,48 @@ import { getParentPath } from './utils/fileTreeGenerator.js';
|
|
|
6
6
|
import { useFileTreeDispatch } from './context/FileTreeContext.js';
|
|
7
7
|
import { StyledInputForm, StyledInput } from './FileTreeListItemContentInput.styled.js';
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
9
|
+
const FILENAME_MAX_LENGTH = 65535;
|
|
10
|
+
const FILENAME_REGEXP_DOT = /^\.$/;
|
|
11
|
+
const FILENAME_REGEXP_DOTDOT = /^\.\.$/;
|
|
12
|
+
const FILENAME_REGEXP_DOT_ELICE = /^\.elice$/;
|
|
13
|
+
const FILENAME_REGEXP_SLASH = /\//;
|
|
14
|
+
const FILENAME_REGEXP_BACK_SLASH = /\\/;
|
|
15
|
+
const FileTreeListItemContentInput = ({
|
|
16
|
+
type,
|
|
17
|
+
initialValue,
|
|
18
|
+
className,
|
|
19
|
+
style,
|
|
20
|
+
currentPath,
|
|
21
|
+
currentDirTitleList,
|
|
22
|
+
newInputType
|
|
23
|
+
}) => {
|
|
24
|
+
const intl = useIntl();
|
|
25
|
+
const targetPath = getParentPath(currentPath);
|
|
26
|
+
const {
|
|
27
|
+
dispatch,
|
|
28
|
+
onFileAdd,
|
|
29
|
+
onDirectoryAdd,
|
|
30
|
+
onActivePathChange,
|
|
31
|
+
onFileMove,
|
|
32
|
+
onDirectoryMove
|
|
33
|
+
} = useFileTreeDispatch();
|
|
34
|
+
const {
|
|
35
|
+
control,
|
|
36
|
+
handleSubmit,
|
|
37
|
+
reset,
|
|
38
|
+
getValues
|
|
39
|
+
} = useForm({
|
|
40
|
+
defaultValues: {
|
|
41
|
+
filename: initialValue || ''
|
|
42
|
+
},
|
|
43
|
+
mode: 'onChange'
|
|
44
|
+
});
|
|
45
|
+
const formElRef = React.useRef(null);
|
|
46
|
+
const inputElRef = React.useRef(null);
|
|
44
47
|
/**
|
|
45
48
|
* Close current input.
|
|
46
49
|
*/
|
|
47
|
-
|
|
50
|
+
const close = () => {
|
|
48
51
|
reset({
|
|
49
52
|
filename: initialValue
|
|
50
53
|
});
|
|
@@ -62,7 +65,7 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
62
65
|
/**
|
|
63
66
|
* Validate input value.
|
|
64
67
|
*/
|
|
65
|
-
|
|
68
|
+
const validateFilename = newFilename => {
|
|
66
69
|
switch (true) {
|
|
67
70
|
// has dot or dot-dot
|
|
68
71
|
case FILENAME_REGEXP_DOT.test(newFilename) || FILENAME_REGEXP_DOTDOT.test(newFilename):
|
|
@@ -80,9 +83,7 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
80
83
|
id: 'fileTree.list.item.content.input.validation.error.filename.slash'
|
|
81
84
|
});
|
|
82
85
|
// duplicated
|
|
83
|
-
case currentDirTitleList.some(
|
|
84
|
-
return title === newFilename;
|
|
85
|
-
}):
|
|
86
|
+
case currentDirTitleList.some(title => title === newFilename):
|
|
86
87
|
return intl.formatMessage({
|
|
87
88
|
id: 'fileTree.list.item.content.input.validation.error.filename.duplicated'
|
|
88
89
|
});
|
|
@@ -93,59 +94,55 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
93
94
|
/**
|
|
94
95
|
* Add file.
|
|
95
96
|
*/
|
|
96
|
-
|
|
97
|
+
const addFile = params => {
|
|
97
98
|
if (typeof onFileAdd !== 'function' || !params.emptyFileWithName) {
|
|
98
99
|
close();
|
|
99
100
|
return;
|
|
100
101
|
}
|
|
101
|
-
onFileAdd(params).then(
|
|
102
|
-
return onActivePathChange(params.path === '' ? "".concat(params.emptyFileWithName) : "".concat(params.path, "/").concat(params.emptyFileWithName), false);
|
|
103
|
-
}).then(close).catch(function () {
|
|
102
|
+
onFileAdd(params).then(() => onActivePathChange(params.path === '' ? `${params.emptyFileWithName}` : `${params.path}/${params.emptyFileWithName}`, false)).then(close).catch(() => {
|
|
104
103
|
//
|
|
105
104
|
});
|
|
106
105
|
};
|
|
107
106
|
/**
|
|
108
107
|
* Add directory.
|
|
109
108
|
*/
|
|
110
|
-
|
|
109
|
+
const addDirectory = params => {
|
|
111
110
|
if (typeof onDirectoryAdd !== 'function' || !params.name) {
|
|
112
111
|
close();
|
|
113
112
|
return;
|
|
114
113
|
}
|
|
115
|
-
onDirectoryAdd(params).then(
|
|
116
|
-
return onActivePathChange(params.path === '' ? "".concat(params.name) : "".concat(params.path, "/").concat(params.name), true);
|
|
117
|
-
}).then(close).catch(function () {
|
|
114
|
+
onDirectoryAdd(params).then(() => onActivePathChange(params.path === '' ? `${params.name}` : `${params.path}/${params.name}`, true)).then(close).catch(() => {
|
|
118
115
|
//
|
|
119
116
|
});
|
|
120
117
|
};
|
|
121
118
|
/**
|
|
122
119
|
* Move file.
|
|
123
120
|
*/
|
|
124
|
-
|
|
121
|
+
const moveFile = params => {
|
|
125
122
|
if (typeof onFileMove !== 'function' || params.newName === initialValue) {
|
|
126
123
|
close();
|
|
127
124
|
return;
|
|
128
125
|
}
|
|
129
|
-
onFileMove(params).then(close).catch(
|
|
126
|
+
onFileMove(params).then(close).catch(() => {
|
|
130
127
|
//
|
|
131
128
|
});
|
|
132
129
|
};
|
|
133
130
|
/**
|
|
134
131
|
* Move directory.
|
|
135
132
|
*/
|
|
136
|
-
|
|
133
|
+
const moveDirectory = params => {
|
|
137
134
|
if (typeof onDirectoryMove !== 'function' || params.newName === initialValue) {
|
|
138
135
|
close();
|
|
139
136
|
return;
|
|
140
137
|
}
|
|
141
|
-
onDirectoryMove(params).then(close).catch(
|
|
138
|
+
onDirectoryMove(params).then(close).catch(() => {
|
|
142
139
|
//
|
|
143
140
|
});
|
|
144
141
|
};
|
|
145
142
|
/**
|
|
146
143
|
* Submit and rename file.
|
|
147
144
|
*/
|
|
148
|
-
|
|
145
|
+
const handleFormSubmit = handleSubmit(newData => {
|
|
149
146
|
// if new input is empty, close it.
|
|
150
147
|
if (!newData.filename) {
|
|
151
148
|
close();
|
|
@@ -186,8 +183,8 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
186
183
|
/**
|
|
187
184
|
* Handle click away.
|
|
188
185
|
*/
|
|
189
|
-
|
|
190
|
-
|
|
186
|
+
const handleFormClickAway = () => {
|
|
187
|
+
const newFilename = getValues('filename');
|
|
191
188
|
if (newFilename) {
|
|
192
189
|
void handleFormSubmit();
|
|
193
190
|
return;
|
|
@@ -197,7 +194,7 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
197
194
|
/**
|
|
198
195
|
* Handle keydown event.
|
|
199
196
|
*/
|
|
200
|
-
|
|
197
|
+
const handleKeyDown = e => {
|
|
201
198
|
switch (e.key) {
|
|
202
199
|
case 'Escape':
|
|
203
200
|
close();
|
|
@@ -207,12 +204,12 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
207
204
|
//
|
|
208
205
|
// Select value at input when initial value is set.
|
|
209
206
|
//
|
|
210
|
-
React.useEffect(
|
|
207
|
+
React.useEffect(() => {
|
|
211
208
|
var _a;
|
|
212
209
|
if (!inputElRef.current || !initialValue) {
|
|
213
210
|
return;
|
|
214
211
|
}
|
|
215
|
-
|
|
212
|
+
const rangeEndExcludeExtension = initialValue.indexOf((_a = initialValue.split('.').pop()) !== null && _a !== void 0 ? _a : '') - 1;
|
|
216
213
|
inputElRef.current.setSelectionRange(0, rangeEndExcludeExtension > 0 ? rangeEndExcludeExtension : initialValue.length);
|
|
217
214
|
}, [initialValue]);
|
|
218
215
|
//
|
|
@@ -245,9 +242,10 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
245
242
|
},
|
|
246
243
|
validate: validateFilename
|
|
247
244
|
},
|
|
248
|
-
render:
|
|
249
|
-
|
|
250
|
-
|
|
245
|
+
render: ({
|
|
246
|
+
field,
|
|
247
|
+
fieldState
|
|
248
|
+
}) => {
|
|
251
249
|
var _a;
|
|
252
250
|
return React.createElement(StyledInput, Object.assign({}, field, {
|
|
253
251
|
type: "text",
|
|
@@ -258,9 +256,7 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
258
256
|
invalidText: (_a = fieldState.error) === null || _a === void 0 ? void 0 : _a.message,
|
|
259
257
|
autoFocus: true,
|
|
260
258
|
style: style,
|
|
261
|
-
onChange:
|
|
262
|
-
return field.onChange(e.target.value.trim());
|
|
263
|
-
},
|
|
259
|
+
onChange: e => field.onChange(e.target.value.trim()),
|
|
264
260
|
onKeyDown: handleKeyDown,
|
|
265
261
|
ref: inputElRef
|
|
266
262
|
}));
|
|
@@ -2,14 +2,14 @@ import { Input } from '@elice/blocks';
|
|
|
2
2
|
import { base } from '@elice/design-tokens';
|
|
3
3
|
import styled from 'styled-components';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
const INPUT_HEIGHT = '1.25rem';
|
|
6
|
+
const INPUT_FONT_SIZE = '0.75rem';
|
|
7
|
+
const INPUT_INNER_LEFT_PADDING = '0.125rem';
|
|
8
|
+
const INPUT_INNER_RIGHT_PADDING = '0.25rem';
|
|
9
|
+
const StyledInputForm = styled.form.withConfig({
|
|
10
10
|
componentId: "sc-1glq6yp-0"
|
|
11
11
|
})(["flex:1;display:flex;"]);
|
|
12
|
-
|
|
12
|
+
const StyledInput = styled(Input).withConfig({
|
|
13
13
|
componentId: "sc-1glq6yp-1"
|
|
14
14
|
})(["min-height:", ";> div{background:transparent !important;> div{&:nth-child(1){padding:", ";}&:nth-child(3){padding:", ";}}.eb-icon{width:0.875em;height:0.875em;font-size:0.875em;}}& input{padding-top:0 !important;padding-bottom:0 !important;height:", " !important;color:", " !important;font-size:", " !important;}"], INPUT_HEIGHT, INPUT_INNER_LEFT_PADDING, INPUT_INNER_RIGHT_PADDING, INPUT_HEIGHT, base.color.gray0, INPUT_FONT_SIZE);
|
|
15
15
|
|
|
@@ -1,31 +1,30 @@
|
|
|
1
|
-
import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import { useIntl, FormattedMessage } from 'react-intl';
|
|
4
3
|
import { Menu, Dialog, List } from '@elice/blocks';
|
|
5
4
|
import { useFileTreeState, useFileTreeDispatch } from './context/FileTreeContext.js';
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
6
|
+
const FileTreeListItemContentMenu = ({
|
|
7
|
+
node,
|
|
8
|
+
anchorEl,
|
|
9
|
+
onClose
|
|
10
|
+
}) => {
|
|
11
|
+
const intl = useIntl();
|
|
12
|
+
const {
|
|
13
|
+
allowToggleHidden,
|
|
14
|
+
allowToggleReadonly
|
|
15
|
+
} = useFileTreeState();
|
|
16
|
+
const {
|
|
17
|
+
dispatch,
|
|
18
|
+
onHiddenSet,
|
|
19
|
+
onReadOnlySet,
|
|
20
|
+
onFileDelete,
|
|
21
|
+
onDirectoryDelete
|
|
22
|
+
} = useFileTreeDispatch();
|
|
23
|
+
const [isDeleteDialogOpen, setDeleteDialogOpen] = React.useState(false);
|
|
25
24
|
/**
|
|
26
25
|
* Set file readonly.
|
|
27
26
|
*/
|
|
28
|
-
|
|
27
|
+
const handleReadOnlySet = () => {
|
|
29
28
|
if (typeof onReadOnlySet === 'function') {
|
|
30
29
|
onReadOnlySet({
|
|
31
30
|
path: node.path,
|
|
@@ -36,7 +35,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
36
35
|
/**
|
|
37
36
|
* Unset file readonly.
|
|
38
37
|
*/
|
|
39
|
-
|
|
38
|
+
const handleReadOnlyUnset = () => {
|
|
40
39
|
if (typeof onReadOnlySet === 'function') {
|
|
41
40
|
onReadOnlySet({
|
|
42
41
|
path: node.path,
|
|
@@ -47,7 +46,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
47
46
|
/**
|
|
48
47
|
* Set file hidden.
|
|
49
48
|
*/
|
|
50
|
-
|
|
49
|
+
const handleHiddenSet = () => {
|
|
51
50
|
if (typeof onHiddenSet === 'function') {
|
|
52
51
|
onHiddenSet({
|
|
53
52
|
path: node.path,
|
|
@@ -58,7 +57,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
58
57
|
/**
|
|
59
58
|
* Unset file hidden.
|
|
60
59
|
*/
|
|
61
|
-
|
|
60
|
+
const handleHiddenUnset = () => {
|
|
62
61
|
if (typeof onHiddenSet === 'function') {
|
|
63
62
|
onHiddenSet({
|
|
64
63
|
path: node.path,
|
|
@@ -69,7 +68,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
69
68
|
/**
|
|
70
69
|
* Create a new file.
|
|
71
70
|
*/
|
|
72
|
-
|
|
71
|
+
const handleNewFile = () => {
|
|
73
72
|
dispatch({
|
|
74
73
|
type: 'NEW_INPUT_OPEN',
|
|
75
74
|
newInput: {
|
|
@@ -81,7 +80,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
81
80
|
/**
|
|
82
81
|
* Create a new directory.
|
|
83
82
|
*/
|
|
84
|
-
|
|
83
|
+
const handleNewDirectory = () => {
|
|
85
84
|
dispatch({
|
|
86
85
|
type: 'NEW_INPUT_OPEN',
|
|
87
86
|
newInput: {
|
|
@@ -93,7 +92,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
93
92
|
/**
|
|
94
93
|
* Rename file.
|
|
95
94
|
*/
|
|
96
|
-
|
|
95
|
+
const handleRename = () => {
|
|
97
96
|
dispatch({
|
|
98
97
|
type: 'UPDATE_RENAME_INPUT_PATH',
|
|
99
98
|
path: node.path
|
|
@@ -102,7 +101,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
102
101
|
/**
|
|
103
102
|
* Delete file.
|
|
104
103
|
*/
|
|
105
|
-
|
|
104
|
+
const handleDelete = () => {
|
|
106
105
|
if (node.isDirectory && typeof onDirectoryDelete === 'function') {
|
|
107
106
|
void onDirectoryDelete(node.path);
|
|
108
107
|
}
|
|
@@ -113,7 +112,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
113
112
|
/**
|
|
114
113
|
* Set file readonly.
|
|
115
114
|
*/
|
|
116
|
-
|
|
115
|
+
const renderMenuItemReadOnlySet = () => {
|
|
117
116
|
if (!allowToggleReadonly || node.isDirectory || node.isReadonly || node.isHidden) {
|
|
118
117
|
return null;
|
|
119
118
|
}
|
|
@@ -126,7 +125,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
126
125
|
/**
|
|
127
126
|
* Unset file readonly.
|
|
128
127
|
*/
|
|
129
|
-
|
|
128
|
+
const renderMenuItemReadOnlyUnset = () => {
|
|
130
129
|
if (!allowToggleReadonly || node.isDirectory || !node.isReadonly) {
|
|
131
130
|
return null;
|
|
132
131
|
}
|
|
@@ -139,7 +138,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
139
138
|
/**
|
|
140
139
|
* Set file hidden.
|
|
141
140
|
*/
|
|
142
|
-
|
|
141
|
+
const renderMenuItemHiddenSet = () => {
|
|
143
142
|
if (!allowToggleHidden || node.isDirectory || node.isReadonly || node.isHidden) {
|
|
144
143
|
return null;
|
|
145
144
|
}
|
|
@@ -152,7 +151,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
152
151
|
/**
|
|
153
152
|
* Unset file hidden.
|
|
154
153
|
*/
|
|
155
|
-
|
|
154
|
+
const renderMenuItemHiddenUnset = () => {
|
|
156
155
|
if (!allowToggleHidden || node.isDirectory || !node.isHidden) {
|
|
157
156
|
return null;
|
|
158
157
|
}
|
|
@@ -165,7 +164,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
165
164
|
/**
|
|
166
165
|
* New file.
|
|
167
166
|
*/
|
|
168
|
-
|
|
167
|
+
const renderMenuItemNewFile = () => {
|
|
169
168
|
if (!node.isDirectory) {
|
|
170
169
|
return null;
|
|
171
170
|
}
|
|
@@ -178,7 +177,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
178
177
|
/**
|
|
179
178
|
* New directory.
|
|
180
179
|
*/
|
|
181
|
-
|
|
180
|
+
const renderMenuItemNewDirectory = () => {
|
|
182
181
|
if (!node.isDirectory) {
|
|
183
182
|
return null;
|
|
184
183
|
}
|
|
@@ -191,7 +190,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
191
190
|
/**
|
|
192
191
|
* Rename file.
|
|
193
192
|
*/
|
|
194
|
-
|
|
193
|
+
const renderMenuItemRename = () => {
|
|
195
194
|
return React.createElement(List.Item, {
|
|
196
195
|
disabled: !node.isRemovable,
|
|
197
196
|
onClick: handleRename
|
|
@@ -202,12 +201,10 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
202
201
|
/**
|
|
203
202
|
* Delete file.
|
|
204
203
|
*/
|
|
205
|
-
|
|
204
|
+
const renderMenuItemDelete = () => {
|
|
206
205
|
return React.createElement(List.Item, {
|
|
207
206
|
disabled: !node.isRemovable,
|
|
208
|
-
onClick:
|
|
209
|
-
return setDeleteDialogOpen(true);
|
|
210
|
-
}
|
|
207
|
+
onClick: () => setDeleteDialogOpen(true)
|
|
211
208
|
}, React.createElement(List.ItemText, null, React.createElement(FormattedMessage, {
|
|
212
209
|
id: "fileTree.list.item.content.menu.item.delete"
|
|
213
210
|
})));
|
|
@@ -215,7 +212,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
215
212
|
/**
|
|
216
213
|
* Menu.
|
|
217
214
|
*/
|
|
218
|
-
|
|
215
|
+
const renderMenu = () => {
|
|
219
216
|
return React.createElement(Menu, {
|
|
220
217
|
open: Boolean(anchorEl),
|
|
221
218
|
anchorEl: anchorEl,
|
|
@@ -228,7 +225,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
228
225
|
/**
|
|
229
226
|
* Dialog for confirm delete.
|
|
230
227
|
*/
|
|
231
|
-
|
|
228
|
+
const renderDeleteConfirmDialog = () => {
|
|
232
229
|
if (!isDeleteDialogOpen) {
|
|
233
230
|
return null;
|
|
234
231
|
}
|
|
@@ -242,13 +239,9 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
242
239
|
}, {
|
|
243
240
|
title: node.title
|
|
244
241
|
}),
|
|
245
|
-
onHide:
|
|
246
|
-
return setDeleteDialogOpen(false);
|
|
247
|
-
}
|
|
242
|
+
onHide: () => setDeleteDialogOpen(false)
|
|
248
243
|
}, React.createElement(Dialog.CloseButton, {
|
|
249
|
-
onClick:
|
|
250
|
-
return setDeleteDialogOpen(false);
|
|
251
|
-
}
|
|
244
|
+
onClick: () => setDeleteDialogOpen(false)
|
|
252
245
|
}, React.createElement(FormattedMessage, {
|
|
253
246
|
id: "fileTree.list.item.content.menu.deleteConfirmDialog.cancel"
|
|
254
247
|
})), React.createElement(Dialog.ActionButton, {
|