@elice/material-exercise 1.231212.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
|
@@ -10,49 +10,48 @@ var fileTreeGenerator = require('./utils/fileTreeGenerator.js');
|
|
|
10
10
|
var FileTreeContext = require('./context/FileTreeContext.js');
|
|
11
11
|
var FileTreeListItemContentInput_styled = require('./FileTreeListItemContentInput.styled.js');
|
|
12
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
var inputElRef = React__default["default"].useRef(null);
|
|
13
|
+
const FILENAME_MAX_LENGTH = 65535;
|
|
14
|
+
const FILENAME_REGEXP_DOT = /^\.$/;
|
|
15
|
+
const FILENAME_REGEXP_DOTDOT = /^\.\.$/;
|
|
16
|
+
const FILENAME_REGEXP_DOT_ELICE = /^\.elice$/;
|
|
17
|
+
const FILENAME_REGEXP_SLASH = /\//;
|
|
18
|
+
const FILENAME_REGEXP_BACK_SLASH = /\\/;
|
|
19
|
+
const FileTreeListItemContentInput = ({
|
|
20
|
+
type,
|
|
21
|
+
initialValue,
|
|
22
|
+
className,
|
|
23
|
+
style,
|
|
24
|
+
currentPath,
|
|
25
|
+
currentDirTitleList,
|
|
26
|
+
newInputType
|
|
27
|
+
}) => {
|
|
28
|
+
const intl = reactIntl.useIntl();
|
|
29
|
+
const targetPath = fileTreeGenerator.getParentPath(currentPath);
|
|
30
|
+
const {
|
|
31
|
+
dispatch,
|
|
32
|
+
onFileAdd,
|
|
33
|
+
onDirectoryAdd,
|
|
34
|
+
onActivePathChange,
|
|
35
|
+
onFileMove,
|
|
36
|
+
onDirectoryMove
|
|
37
|
+
} = FileTreeContext.useFileTreeDispatch();
|
|
38
|
+
const {
|
|
39
|
+
control,
|
|
40
|
+
handleSubmit,
|
|
41
|
+
reset,
|
|
42
|
+
getValues
|
|
43
|
+
} = reactHookForm.useForm({
|
|
44
|
+
defaultValues: {
|
|
45
|
+
filename: initialValue || ''
|
|
46
|
+
},
|
|
47
|
+
mode: 'onChange'
|
|
48
|
+
});
|
|
49
|
+
const formElRef = React.useRef(null);
|
|
50
|
+
const inputElRef = React.useRef(null);
|
|
52
51
|
/**
|
|
53
52
|
* Close current input.
|
|
54
53
|
*/
|
|
55
|
-
|
|
54
|
+
const close = () => {
|
|
56
55
|
reset({
|
|
57
56
|
filename: initialValue
|
|
58
57
|
});
|
|
@@ -70,7 +69,7 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
70
69
|
/**
|
|
71
70
|
* Validate input value.
|
|
72
71
|
*/
|
|
73
|
-
|
|
72
|
+
const validateFilename = newFilename => {
|
|
74
73
|
switch (true) {
|
|
75
74
|
// has dot or dot-dot
|
|
76
75
|
case FILENAME_REGEXP_DOT.test(newFilename) || FILENAME_REGEXP_DOTDOT.test(newFilename):
|
|
@@ -88,9 +87,7 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
88
87
|
id: 'fileTree.list.item.content.input.validation.error.filename.slash'
|
|
89
88
|
});
|
|
90
89
|
// duplicated
|
|
91
|
-
case currentDirTitleList.some(
|
|
92
|
-
return title === newFilename;
|
|
93
|
-
}):
|
|
90
|
+
case currentDirTitleList.some(title => title === newFilename):
|
|
94
91
|
return intl.formatMessage({
|
|
95
92
|
id: 'fileTree.list.item.content.input.validation.error.filename.duplicated'
|
|
96
93
|
});
|
|
@@ -101,59 +98,55 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
101
98
|
/**
|
|
102
99
|
* Add file.
|
|
103
100
|
*/
|
|
104
|
-
|
|
101
|
+
const addFile = params => {
|
|
105
102
|
if (typeof onFileAdd !== 'function' || !params.emptyFileWithName) {
|
|
106
103
|
close();
|
|
107
104
|
return;
|
|
108
105
|
}
|
|
109
|
-
onFileAdd(params).then(
|
|
110
|
-
return onActivePathChange(params.path === '' ? "".concat(params.emptyFileWithName) : "".concat(params.path, "/").concat(params.emptyFileWithName), false);
|
|
111
|
-
}).then(close).catch(function () {
|
|
106
|
+
onFileAdd(params).then(() => onActivePathChange(params.path === '' ? `${params.emptyFileWithName}` : `${params.path}/${params.emptyFileWithName}`, false)).then(close).catch(() => {
|
|
112
107
|
//
|
|
113
108
|
});
|
|
114
109
|
};
|
|
115
110
|
/**
|
|
116
111
|
* Add directory.
|
|
117
112
|
*/
|
|
118
|
-
|
|
113
|
+
const addDirectory = params => {
|
|
119
114
|
if (typeof onDirectoryAdd !== 'function' || !params.name) {
|
|
120
115
|
close();
|
|
121
116
|
return;
|
|
122
117
|
}
|
|
123
|
-
onDirectoryAdd(params).then(
|
|
124
|
-
return onActivePathChange(params.path === '' ? "".concat(params.name) : "".concat(params.path, "/").concat(params.name), true);
|
|
125
|
-
}).then(close).catch(function () {
|
|
118
|
+
onDirectoryAdd(params).then(() => onActivePathChange(params.path === '' ? `${params.name}` : `${params.path}/${params.name}`, true)).then(close).catch(() => {
|
|
126
119
|
//
|
|
127
120
|
});
|
|
128
121
|
};
|
|
129
122
|
/**
|
|
130
123
|
* Move file.
|
|
131
124
|
*/
|
|
132
|
-
|
|
125
|
+
const moveFile = params => {
|
|
133
126
|
if (typeof onFileMove !== 'function' || params.newName === initialValue) {
|
|
134
127
|
close();
|
|
135
128
|
return;
|
|
136
129
|
}
|
|
137
|
-
onFileMove(params).then(close).catch(
|
|
130
|
+
onFileMove(params).then(close).catch(() => {
|
|
138
131
|
//
|
|
139
132
|
});
|
|
140
133
|
};
|
|
141
134
|
/**
|
|
142
135
|
* Move directory.
|
|
143
136
|
*/
|
|
144
|
-
|
|
137
|
+
const moveDirectory = params => {
|
|
145
138
|
if (typeof onDirectoryMove !== 'function' || params.newName === initialValue) {
|
|
146
139
|
close();
|
|
147
140
|
return;
|
|
148
141
|
}
|
|
149
|
-
onDirectoryMove(params).then(close).catch(
|
|
142
|
+
onDirectoryMove(params).then(close).catch(() => {
|
|
150
143
|
//
|
|
151
144
|
});
|
|
152
145
|
};
|
|
153
146
|
/**
|
|
154
147
|
* Submit and rename file.
|
|
155
148
|
*/
|
|
156
|
-
|
|
149
|
+
const handleFormSubmit = handleSubmit(newData => {
|
|
157
150
|
// if new input is empty, close it.
|
|
158
151
|
if (!newData.filename) {
|
|
159
152
|
close();
|
|
@@ -194,8 +187,8 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
194
187
|
/**
|
|
195
188
|
* Handle click away.
|
|
196
189
|
*/
|
|
197
|
-
|
|
198
|
-
|
|
190
|
+
const handleFormClickAway = () => {
|
|
191
|
+
const newFilename = getValues('filename');
|
|
199
192
|
if (newFilename) {
|
|
200
193
|
void handleFormSubmit();
|
|
201
194
|
return;
|
|
@@ -205,7 +198,7 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
205
198
|
/**
|
|
206
199
|
* Handle keydown event.
|
|
207
200
|
*/
|
|
208
|
-
|
|
201
|
+
const handleKeyDown = e => {
|
|
209
202
|
switch (e.key) {
|
|
210
203
|
case 'Escape':
|
|
211
204
|
close();
|
|
@@ -215,12 +208,12 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
215
208
|
//
|
|
216
209
|
// Select value at input when initial value is set.
|
|
217
210
|
//
|
|
218
|
-
|
|
211
|
+
React.useEffect(() => {
|
|
219
212
|
var _a;
|
|
220
213
|
if (!inputElRef.current || !initialValue) {
|
|
221
214
|
return;
|
|
222
215
|
}
|
|
223
|
-
|
|
216
|
+
const rangeEndExcludeExtension = initialValue.indexOf((_a = initialValue.split('.').pop()) !== null && _a !== void 0 ? _a : '') - 1;
|
|
224
217
|
inputElRef.current.setSelectionRange(0, rangeEndExcludeExtension > 0 ? rangeEndExcludeExtension : initialValue.length);
|
|
225
218
|
}, [initialValue]);
|
|
226
219
|
//
|
|
@@ -230,10 +223,10 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
230
223
|
//
|
|
231
224
|
//
|
|
232
225
|
//
|
|
233
|
-
return
|
|
226
|
+
return React.createElement(FileTreeListItemContentInput_styled.StyledInputForm, {
|
|
234
227
|
onSubmit: handleFormSubmit,
|
|
235
228
|
ref: formElRef
|
|
236
|
-
},
|
|
229
|
+
}, React.createElement(reactHookForm.Controller, {
|
|
237
230
|
control: control,
|
|
238
231
|
name: "filename",
|
|
239
232
|
rules: {
|
|
@@ -253,11 +246,12 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
253
246
|
},
|
|
254
247
|
validate: validateFilename
|
|
255
248
|
},
|
|
256
|
-
render:
|
|
257
|
-
|
|
258
|
-
|
|
249
|
+
render: ({
|
|
250
|
+
field,
|
|
251
|
+
fieldState
|
|
252
|
+
}) => {
|
|
259
253
|
var _a;
|
|
260
|
-
return
|
|
254
|
+
return React.createElement(FileTreeListItemContentInput_styled.StyledInput, Object.assign({}, field, {
|
|
261
255
|
type: "text",
|
|
262
256
|
className: className,
|
|
263
257
|
size: "small",
|
|
@@ -266,9 +260,7 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
266
260
|
invalidText: (_a = fieldState.error) === null || _a === void 0 ? void 0 : _a.message,
|
|
267
261
|
autoFocus: true,
|
|
268
262
|
style: style,
|
|
269
|
-
onChange:
|
|
270
|
-
return field.onChange(e.target.value.trim());
|
|
271
|
-
},
|
|
263
|
+
onChange: e => field.onChange(e.target.value.trim()),
|
|
272
264
|
onKeyDown: handleKeyDown,
|
|
273
265
|
ref: inputElRef
|
|
274
266
|
}));
|
|
@@ -276,4 +268,4 @@ var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
|
276
268
|
}));
|
|
277
269
|
};
|
|
278
270
|
|
|
279
|
-
exports
|
|
271
|
+
exports.default = FileTreeListItemContentInput;
|
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var blocks = require('@elice/blocks');
|
|
6
4
|
var designTokens = require('@elice/design-tokens');
|
|
7
5
|
var styled = require('styled-components');
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var INPUT_FONT_SIZE = '0.75rem';
|
|
15
|
-
var INPUT_INNER_LEFT_PADDING = '0.125rem';
|
|
16
|
-
var INPUT_INNER_RIGHT_PADDING = '0.25rem';
|
|
17
|
-
var StyledInputForm = styled__default["default"].form.withConfig({
|
|
7
|
+
const INPUT_HEIGHT = '1.25rem';
|
|
8
|
+
const INPUT_FONT_SIZE = '0.75rem';
|
|
9
|
+
const INPUT_INNER_LEFT_PADDING = '0.125rem';
|
|
10
|
+
const INPUT_INNER_RIGHT_PADDING = '0.25rem';
|
|
11
|
+
const StyledInputForm = styled.form.withConfig({
|
|
18
12
|
componentId: "sc-1glq6yp-0"
|
|
19
13
|
})(["flex:1;display:flex;"]);
|
|
20
|
-
|
|
14
|
+
const StyledInput = styled(blocks.Input).withConfig({
|
|
21
15
|
componentId: "sc-1glq6yp-1"
|
|
22
16
|
})(["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, designTokens.base.color.gray0, INPUT_FONT_SIZE);
|
|
23
17
|
|
|
@@ -2,38 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
6
5
|
var React = require('react');
|
|
7
6
|
var reactIntl = require('react-intl');
|
|
8
7
|
var blocks = require('@elice/blocks');
|
|
9
8
|
var FileTreeContext = require('./context/FileTreeContext.js');
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
var _React$useState = React__default["default"].useState(false),
|
|
30
|
-
_React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
|
|
31
|
-
isDeleteDialogOpen = _React$useState2[0],
|
|
32
|
-
setDeleteDialogOpen = _React$useState2[1];
|
|
10
|
+
const FileTreeListItemContentMenu = ({
|
|
11
|
+
node,
|
|
12
|
+
anchorEl,
|
|
13
|
+
onClose
|
|
14
|
+
}) => {
|
|
15
|
+
const intl = reactIntl.useIntl();
|
|
16
|
+
const {
|
|
17
|
+
allowToggleHidden,
|
|
18
|
+
allowToggleReadonly
|
|
19
|
+
} = FileTreeContext.useFileTreeState();
|
|
20
|
+
const {
|
|
21
|
+
dispatch,
|
|
22
|
+
onHiddenSet,
|
|
23
|
+
onReadOnlySet,
|
|
24
|
+
onFileDelete,
|
|
25
|
+
onDirectoryDelete
|
|
26
|
+
} = FileTreeContext.useFileTreeDispatch();
|
|
27
|
+
const [isDeleteDialogOpen, setDeleteDialogOpen] = React.useState(false);
|
|
33
28
|
/**
|
|
34
29
|
* Set file readonly.
|
|
35
30
|
*/
|
|
36
|
-
|
|
31
|
+
const handleReadOnlySet = () => {
|
|
37
32
|
if (typeof onReadOnlySet === 'function') {
|
|
38
33
|
onReadOnlySet({
|
|
39
34
|
path: node.path,
|
|
@@ -44,7 +39,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
44
39
|
/**
|
|
45
40
|
* Unset file readonly.
|
|
46
41
|
*/
|
|
47
|
-
|
|
42
|
+
const handleReadOnlyUnset = () => {
|
|
48
43
|
if (typeof onReadOnlySet === 'function') {
|
|
49
44
|
onReadOnlySet({
|
|
50
45
|
path: node.path,
|
|
@@ -55,7 +50,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
55
50
|
/**
|
|
56
51
|
* Set file hidden.
|
|
57
52
|
*/
|
|
58
|
-
|
|
53
|
+
const handleHiddenSet = () => {
|
|
59
54
|
if (typeof onHiddenSet === 'function') {
|
|
60
55
|
onHiddenSet({
|
|
61
56
|
path: node.path,
|
|
@@ -66,7 +61,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
66
61
|
/**
|
|
67
62
|
* Unset file hidden.
|
|
68
63
|
*/
|
|
69
|
-
|
|
64
|
+
const handleHiddenUnset = () => {
|
|
70
65
|
if (typeof onHiddenSet === 'function') {
|
|
71
66
|
onHiddenSet({
|
|
72
67
|
path: node.path,
|
|
@@ -77,7 +72,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
77
72
|
/**
|
|
78
73
|
* Create a new file.
|
|
79
74
|
*/
|
|
80
|
-
|
|
75
|
+
const handleNewFile = () => {
|
|
81
76
|
dispatch({
|
|
82
77
|
type: 'NEW_INPUT_OPEN',
|
|
83
78
|
newInput: {
|
|
@@ -89,7 +84,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
89
84
|
/**
|
|
90
85
|
* Create a new directory.
|
|
91
86
|
*/
|
|
92
|
-
|
|
87
|
+
const handleNewDirectory = () => {
|
|
93
88
|
dispatch({
|
|
94
89
|
type: 'NEW_INPUT_OPEN',
|
|
95
90
|
newInput: {
|
|
@@ -101,7 +96,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
101
96
|
/**
|
|
102
97
|
* Rename file.
|
|
103
98
|
*/
|
|
104
|
-
|
|
99
|
+
const handleRename = () => {
|
|
105
100
|
dispatch({
|
|
106
101
|
type: 'UPDATE_RENAME_INPUT_PATH',
|
|
107
102
|
path: node.path
|
|
@@ -110,7 +105,7 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
110
105
|
/**
|
|
111
106
|
* Delete file.
|
|
112
107
|
*/
|
|
113
|
-
|
|
108
|
+
const handleDelete = () => {
|
|
114
109
|
if (node.isDirectory && typeof onDirectoryDelete === 'function') {
|
|
115
110
|
void onDirectoryDelete(node.path);
|
|
116
111
|
}
|
|
@@ -121,110 +116,108 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
121
116
|
/**
|
|
122
117
|
* Set file readonly.
|
|
123
118
|
*/
|
|
124
|
-
|
|
119
|
+
const renderMenuItemReadOnlySet = () => {
|
|
125
120
|
if (!allowToggleReadonly || node.isDirectory || node.isReadonly || node.isHidden) {
|
|
126
121
|
return null;
|
|
127
122
|
}
|
|
128
|
-
return
|
|
123
|
+
return React.createElement(blocks.List.Item, {
|
|
129
124
|
onClick: handleReadOnlySet
|
|
130
|
-
},
|
|
125
|
+
}, React.createElement(blocks.List.ItemText, null, React.createElement(reactIntl.FormattedMessage, {
|
|
131
126
|
id: "fileTree.list.item.content.menu.item.readOnlySet"
|
|
132
127
|
})));
|
|
133
128
|
};
|
|
134
129
|
/**
|
|
135
130
|
* Unset file readonly.
|
|
136
131
|
*/
|
|
137
|
-
|
|
132
|
+
const renderMenuItemReadOnlyUnset = () => {
|
|
138
133
|
if (!allowToggleReadonly || node.isDirectory || !node.isReadonly) {
|
|
139
134
|
return null;
|
|
140
135
|
}
|
|
141
|
-
return
|
|
136
|
+
return React.createElement(blocks.List.Item, {
|
|
142
137
|
onClick: handleReadOnlyUnset
|
|
143
|
-
},
|
|
138
|
+
}, React.createElement(blocks.List.ItemText, null, React.createElement(reactIntl.FormattedMessage, {
|
|
144
139
|
id: "fileTree.list.item.content.menu.item.readOnlyUnset"
|
|
145
140
|
})));
|
|
146
141
|
};
|
|
147
142
|
/**
|
|
148
143
|
* Set file hidden.
|
|
149
144
|
*/
|
|
150
|
-
|
|
145
|
+
const renderMenuItemHiddenSet = () => {
|
|
151
146
|
if (!allowToggleHidden || node.isDirectory || node.isReadonly || node.isHidden) {
|
|
152
147
|
return null;
|
|
153
148
|
}
|
|
154
|
-
return
|
|
149
|
+
return React.createElement(blocks.List.Item, {
|
|
155
150
|
onClick: handleHiddenSet
|
|
156
|
-
},
|
|
151
|
+
}, React.createElement(blocks.List.ItemText, null, React.createElement(reactIntl.FormattedMessage, {
|
|
157
152
|
id: "fileTree.list.item.content.menu.item.hiddenSet"
|
|
158
153
|
})));
|
|
159
154
|
};
|
|
160
155
|
/**
|
|
161
156
|
* Unset file hidden.
|
|
162
157
|
*/
|
|
163
|
-
|
|
158
|
+
const renderMenuItemHiddenUnset = () => {
|
|
164
159
|
if (!allowToggleHidden || node.isDirectory || !node.isHidden) {
|
|
165
160
|
return null;
|
|
166
161
|
}
|
|
167
|
-
return
|
|
162
|
+
return React.createElement(blocks.List.Item, {
|
|
168
163
|
onClick: handleHiddenUnset
|
|
169
|
-
},
|
|
164
|
+
}, React.createElement(blocks.List.ItemText, null, React.createElement(reactIntl.FormattedMessage, {
|
|
170
165
|
id: "fileTree.list.item.content.menu.item.hiddenUnset"
|
|
171
166
|
})));
|
|
172
167
|
};
|
|
173
168
|
/**
|
|
174
169
|
* New file.
|
|
175
170
|
*/
|
|
176
|
-
|
|
171
|
+
const renderMenuItemNewFile = () => {
|
|
177
172
|
if (!node.isDirectory) {
|
|
178
173
|
return null;
|
|
179
174
|
}
|
|
180
|
-
return
|
|
175
|
+
return React.createElement(blocks.List.Item, {
|
|
181
176
|
onClick: handleNewFile
|
|
182
|
-
},
|
|
177
|
+
}, React.createElement(blocks.List.ItemText, null, React.createElement(reactIntl.FormattedMessage, {
|
|
183
178
|
id: "fileTree.list.item.content.menu.item.newFile"
|
|
184
179
|
})));
|
|
185
180
|
};
|
|
186
181
|
/**
|
|
187
182
|
* New directory.
|
|
188
183
|
*/
|
|
189
|
-
|
|
184
|
+
const renderMenuItemNewDirectory = () => {
|
|
190
185
|
if (!node.isDirectory) {
|
|
191
186
|
return null;
|
|
192
187
|
}
|
|
193
|
-
return
|
|
188
|
+
return React.createElement(blocks.List.Item, {
|
|
194
189
|
onClick: handleNewDirectory
|
|
195
|
-
},
|
|
190
|
+
}, React.createElement(blocks.List.ItemText, null, React.createElement(reactIntl.FormattedMessage, {
|
|
196
191
|
id: "fileTree.list.item.content.menu.item.newDirectory"
|
|
197
192
|
})));
|
|
198
193
|
};
|
|
199
194
|
/**
|
|
200
195
|
* Rename file.
|
|
201
196
|
*/
|
|
202
|
-
|
|
203
|
-
return
|
|
197
|
+
const renderMenuItemRename = () => {
|
|
198
|
+
return React.createElement(blocks.List.Item, {
|
|
204
199
|
disabled: !node.isRemovable,
|
|
205
200
|
onClick: handleRename
|
|
206
|
-
},
|
|
201
|
+
}, React.createElement(blocks.List.ItemText, null, React.createElement(reactIntl.FormattedMessage, {
|
|
207
202
|
id: "fileTree.list.item.content.menu.item.rename"
|
|
208
203
|
})));
|
|
209
204
|
};
|
|
210
205
|
/**
|
|
211
206
|
* Delete file.
|
|
212
207
|
*/
|
|
213
|
-
|
|
214
|
-
return
|
|
208
|
+
const renderMenuItemDelete = () => {
|
|
209
|
+
return React.createElement(blocks.List.Item, {
|
|
215
210
|
disabled: !node.isRemovable,
|
|
216
|
-
onClick:
|
|
217
|
-
|
|
218
|
-
}
|
|
219
|
-
}, React__default["default"].createElement(blocks.List.ItemText, null, React__default["default"].createElement(reactIntl.FormattedMessage, {
|
|
211
|
+
onClick: () => setDeleteDialogOpen(true)
|
|
212
|
+
}, React.createElement(blocks.List.ItemText, null, React.createElement(reactIntl.FormattedMessage, {
|
|
220
213
|
id: "fileTree.list.item.content.menu.item.delete"
|
|
221
214
|
})));
|
|
222
215
|
};
|
|
223
216
|
/**
|
|
224
217
|
* Menu.
|
|
225
218
|
*/
|
|
226
|
-
|
|
227
|
-
return
|
|
219
|
+
const renderMenu = () => {
|
|
220
|
+
return React.createElement(blocks.Menu, {
|
|
228
221
|
open: Boolean(anchorEl),
|
|
229
222
|
anchorEl: anchorEl,
|
|
230
223
|
size: "xsmall",
|
|
@@ -236,11 +229,11 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
236
229
|
/**
|
|
237
230
|
* Dialog for confirm delete.
|
|
238
231
|
*/
|
|
239
|
-
|
|
232
|
+
const renderDeleteConfirmDialog = () => {
|
|
240
233
|
if (!isDeleteDialogOpen) {
|
|
241
234
|
return null;
|
|
242
235
|
}
|
|
243
|
-
return
|
|
236
|
+
return React.createElement(blocks.Dialog, {
|
|
244
237
|
type: "warning",
|
|
245
238
|
title: intl.formatMessage({
|
|
246
239
|
id: 'fileTree.list.item.content.menu.deleteConfirmDialog.title'
|
|
@@ -250,25 +243,21 @@ var FileTreeListItemContentMenu = function FileTreeListItemContentMenu(_ref) {
|
|
|
250
243
|
}, {
|
|
251
244
|
title: node.title
|
|
252
245
|
}),
|
|
253
|
-
onHide:
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
},
|
|
257
|
-
onClick: function onClick() {
|
|
258
|
-
return setDeleteDialogOpen(false);
|
|
259
|
-
}
|
|
260
|
-
}, React__default["default"].createElement(reactIntl.FormattedMessage, {
|
|
246
|
+
onHide: () => setDeleteDialogOpen(false)
|
|
247
|
+
}, React.createElement(blocks.Dialog.CloseButton, {
|
|
248
|
+
onClick: () => setDeleteDialogOpen(false)
|
|
249
|
+
}, React.createElement(reactIntl.FormattedMessage, {
|
|
261
250
|
id: "fileTree.list.item.content.menu.deleteConfirmDialog.cancel"
|
|
262
|
-
})),
|
|
251
|
+
})), React.createElement(blocks.Dialog.ActionButton, {
|
|
263
252
|
onClick: handleDelete
|
|
264
|
-
},
|
|
253
|
+
}, React.createElement(reactIntl.FormattedMessage, {
|
|
265
254
|
id: "fileTree.list.item.content.menu.deleteConfirmDialog.confirm"
|
|
266
255
|
})));
|
|
267
256
|
};
|
|
268
257
|
//
|
|
269
258
|
//
|
|
270
259
|
//
|
|
271
|
-
return
|
|
260
|
+
return React.createElement(React.Fragment, null, renderMenu(), renderDeleteConfirmDialog());
|
|
272
261
|
};
|
|
273
262
|
|
|
274
|
-
exports
|
|
263
|
+
exports.default = FileTreeListItemContentMenu;
|