@elice/material-exercise 1.260305.0 → 1.260430.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.js +113 -17
- package/cjs/components/material-exercise/context/ExerciseProvider.d.ts +3 -1
- package/cjs/components/material-exercise/context/index.js +0 -7
- package/cjs/components/material-exercise/context/recoil.d.ts +0 -44
- package/cjs/components/material-exercise/context/recoil.js +0 -108
- package/cjs/components/material-exercise/context/recoilTypes.d.ts +0 -7
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +52 -7
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +1 -1
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +1 -18
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +2 -4
- 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-runner/ExerciseRunner.js +27 -57
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +34 -7
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.d.ts +1 -1
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +13 -219
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.d.ts +2 -2
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionCancel.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionCancel.js +44 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionGrade.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionGrade.js +58 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionRun.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionRun.js +44 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.js +44 -0
- package/cjs/components/material-exercise/exercise-runner/action/index.d.ts +5 -0
- package/cjs/components/material-exercise/exercise-runner/action/index.js +15 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionCancel.d.ts +14 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionCancel.js +52 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionGrade.d.ts +16 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionGrade.js +74 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionRun.d.ts +14 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionRun.js +65 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.d.ts +15 -0
- package/cjs/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.js +68 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.js +163 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.js +188 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.js +128 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.js +78 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.js +98 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.js +24 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.js +201 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.js +125 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.js +179 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.js +29 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.d.ts +3 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.js +94 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProvider.d.ts +16 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProvider.js +105 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.d.ts +12 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.js +94 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.d.ts +7 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.js +95 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.d.ts +7 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.js +70 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/_context.d.ts +35 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/_context.js +18 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/index.d.ts +6 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/index.js +13 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.d.ts +9 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.js +38 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.d.ts +10 -0
- package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.js +33 -0
- package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
- package/cjs/components/material-exercise/exercise-runner/locales/ja.json.js +1 -1
- package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
- package/cjs/components/material-exercise/exercise-runner/locales/th.json.js +1 -1
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +18 -2
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.d.ts +1 -0
- package/cjs/components/shared/file-tabs/FileTab.js +70 -8
- package/cjs/components/shared/file-tabs/FileTabs.js +24 -3
- package/cjs/components/shared/file-tree/FileTreeListItemContent.js +103 -14
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +24 -3
- package/cjs/components/shared/file-tree/FileTreeListItems.js +28 -3
- package/cjs/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +7 -2
- package/cjs/components/shared/material-modal/MaterialModal.d.ts +1 -0
- package/cjs/components/shared/material-modal/MaterialModal.js +34 -6
- package/cjs/components/shared/monaco-editor/utils/prettier/config.d.ts +1 -1
- package/cjs/components/shared/monaco-editor/utils/prettier/config.js +1 -1
- package/cjs/hooks/index.d.ts +0 -1
- package/cjs/hooks/index.js +0 -2
- package/es/components/material-exercise/MaterialExercise.js +97 -2
- package/es/components/material-exercise/context/ExerciseProvider.d.ts +3 -1
- package/es/components/material-exercise/context/index.js +1 -1
- package/es/components/material-exercise/context/recoil.d.ts +0 -44
- package/es/components/material-exercise/context/recoil.js +1 -102
- package/es/components/material-exercise/context/recoilTypes.d.ts +0 -7
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +46 -2
- package/es/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +1 -1
- package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +2 -18
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +3 -3
- package/es/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
- package/es/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
- package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +28 -58
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +34 -7
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.d.ts +1 -1
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +13 -214
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.d.ts +2 -2
- package/es/components/material-exercise/exercise-runner/action/ControllerActionCancel.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionCancel.js +40 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionGrade.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionGrade.js +54 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionRun.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionRun.js +40 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.js +40 -0
- package/es/components/material-exercise/exercise-runner/action/index.d.ts +5 -0
- package/es/components/material-exercise/exercise-runner/action/index.js +5 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionCancel.d.ts +14 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionCancel.js +46 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionGrade.d.ts +16 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionGrade.js +68 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionRun.d.ts +14 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionRun.js +59 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.d.ts +15 -0
- package/es/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.js +62 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.js +148 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.js +177 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.js +118 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.js +70 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.js +90 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.js +20 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.js +197 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.js +112 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.js +161 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.js +25 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.d.ts +3 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.js +84 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProvider.d.ts +16 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProvider.js +97 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.d.ts +12 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.js +86 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.d.ts +7 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.js +87 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.d.ts +7 -0
- package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.js +62 -0
- package/es/components/material-exercise/exercise-runner/arduino/_context.d.ts +35 -0
- package/es/components/material-exercise/exercise-runner/arduino/_context.js +15 -0
- package/es/components/material-exercise/exercise-runner/arduino/index.d.ts +6 -0
- package/es/components/material-exercise/exercise-runner/arduino/index.js +4 -0
- package/es/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.d.ts +9 -0
- package/es/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.js +32 -0
- package/es/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.d.ts +10 -0
- package/es/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.js +27 -0
- package/es/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
- package/es/components/material-exercise/exercise-runner/locales/ja.json.js +1 -1
- package/es/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
- package/es/components/material-exercise/exercise-runner/locales/th.json.js +1 -1
- package/es/components/shared/exercise-version-list/ExerciseVersionList.js +13 -1
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.d.ts +1 -0
- package/es/components/shared/file-tabs/FileTab.js +62 -1
- package/es/components/shared/file-tabs/FileTabs.js +21 -1
- package/es/components/shared/file-tree/FileTreeListItemContent.js +90 -2
- package/es/components/shared/file-tree/FileTreeListItemContentInput.js +21 -1
- package/es/components/shared/file-tree/FileTreeListItems.js +22 -1
- package/es/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +5 -1
- package/es/components/shared/material-modal/MaterialModal.d.ts +1 -0
- package/es/components/shared/material-modal/MaterialModal.js +26 -2
- package/es/components/shared/monaco-editor/utils/prettier/config.d.ts +1 -1
- package/es/components/shared/monaco-editor/utils/prettier/config.js +1 -1
- package/es/hooks/index.d.ts +0 -1
- package/es/hooks/index.js +0 -1
- package/package.json +34 -21
- package/cjs/components/material-exercise/MaterialExercise.styled.d.ts +0 -66
- package/cjs/components/material-exercise/MaterialExercise.styled.js +0 -119
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.d.ts +0 -24
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -62
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.d.ts +0 -3
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -33
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.d.ts +0 -3
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -178
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.d.ts +0 -3
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +0 -169
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.d.ts +0 -3
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +0 -120
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.d.ts +0 -5
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -22
- package/cjs/components/shared/file-tabs/FileTab.styled.d.ts +0 -33
- package/cjs/components/shared/file-tabs/FileTab.styled.js +0 -77
- package/cjs/components/shared/file-tabs/FileTabs.styled.d.ts +0 -12
- package/cjs/components/shared/file-tabs/FileTabs.styled.js +0 -31
- package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.d.ts +0 -62
- package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +0 -108
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.d.ts +0 -7
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +0 -31
- package/cjs/components/shared/file-tree/FileTreeListItems.styled.d.ts +0 -8
- package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +0 -32
- package/cjs/components/shared/file-tree/FileTreeToolbar.styled.d.ts +0 -4
- package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +0 -14
- package/cjs/components/shared/material-modal/MaterialModal.styled.d.ts +0 -20
- package/cjs/components/shared/material-modal/MaterialModal.styled.js +0 -39
- package/cjs/constants/arduino.d.ts +0 -35
- package/cjs/constants/arduino.js +0 -73
- package/cjs/hooks/useArduino.d.ts +0 -14
- package/cjs/hooks/useArduino.js +0 -589
- package/cjs/typings/arduino.d.ts +0 -77
- package/cjs/utils/arduino.d.ts +0 -43
- package/cjs/utils/arduino.js +0 -82
- package/es/components/material-exercise/MaterialExercise.styled.d.ts +0 -66
- package/es/components/material-exercise/MaterialExercise.styled.js +0 -100
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.d.ts +0 -24
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -49
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.d.ts +0 -3
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -29
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.d.ts +0 -3
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -170
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.d.ts +0 -3
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +0 -161
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.d.ts +0 -3
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +0 -112
- package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.d.ts +0 -5
- package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -16
- package/es/components/shared/file-tabs/FileTab.styled.d.ts +0 -33
- package/es/components/shared/file-tabs/FileTab.styled.js +0 -65
- package/es/components/shared/file-tabs/FileTabs.styled.d.ts +0 -12
- package/es/components/shared/file-tabs/FileTabs.styled.js +0 -24
- package/es/components/shared/file-tree/FileTreeListItemContent.styled.d.ts +0 -62
- package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +0 -94
- package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.d.ts +0 -7
- package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +0 -24
- package/es/components/shared/file-tree/FileTreeListItems.styled.d.ts +0 -8
- package/es/components/shared/file-tree/FileTreeListItems.styled.js +0 -25
- package/es/components/shared/file-tree/FileTreeToolbar.styled.d.ts +0 -4
- package/es/components/shared/file-tree/FileTreeToolbar.styled.js +0 -8
- package/es/components/shared/material-modal/MaterialModal.styled.d.ts +0 -20
- package/es/components/shared/material-modal/MaterialModal.styled.js +0 -29
- package/es/constants/arduino.d.ts +0 -35
- package/es/constants/arduino.js +0 -62
- package/es/hooks/useArduino.d.ts +0 -14
- package/es/hooks/useArduino.js +0 -583
- package/es/typings/arduino.d.ts +0 -77
- package/es/utils/arduino.d.ts +0 -43
- package/es/utils/arduino.js +0 -75
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
4
|
+
import { useConnection, useMCUBridgeError, usePermissionState, PermissionAlert, MCUBridgeErrorText } from '@elice/mcu-bridge';
|
|
5
|
+
import Button from '@mui/material/Button';
|
|
6
|
+
import Dialog from '@mui/material/Dialog';
|
|
7
|
+
import DialogActions from '@mui/material/DialogActions';
|
|
8
|
+
import DialogContent from '@mui/material/DialogContent';
|
|
9
|
+
import DialogTitle from '@mui/material/DialogTitle';
|
|
10
|
+
import Stack from '@mui/material/Stack';
|
|
11
|
+
|
|
12
|
+
//
|
|
13
|
+
//
|
|
14
|
+
//
|
|
15
|
+
var ArduinoErrorDialog = function ArduinoErrorDialog() {
|
|
16
|
+
var intl = useRawEliceIntl();
|
|
17
|
+
var _useConnection = useConnection(),
|
|
18
|
+
connect = _useConnection.connect;
|
|
19
|
+
var _useMCUBridgeError = useMCUBridgeError(),
|
|
20
|
+
errorCode = _useMCUBridgeError.errorCode,
|
|
21
|
+
clearError = _useMCUBridgeError.clearError;
|
|
22
|
+
var _usePermissionState = usePermissionState(),
|
|
23
|
+
permissionPhase = _usePermissionState.phase,
|
|
24
|
+
resetPermission = _usePermissionState.reset;
|
|
25
|
+
var isErrorDialogOpen = permissionPhase === 'denied' || Boolean(errorCode);
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
*/
|
|
29
|
+
var handleClose = function handleClose() {
|
|
30
|
+
resetPermission();
|
|
31
|
+
clearError();
|
|
32
|
+
};
|
|
33
|
+
// `PermissionAlert` resets `permissionStore` itself; `errorStore` is
|
|
34
|
+
// separate and must be cleared here or `errorCode` keeps the dialog open.
|
|
35
|
+
var handleRetry = /*#__PURE__*/function () {
|
|
36
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
37
|
+
return _regenerator().w(function (_context) {
|
|
38
|
+
while (1) switch (_context.p = _context.n) {
|
|
39
|
+
case 0:
|
|
40
|
+
clearError();
|
|
41
|
+
_context.p = 1;
|
|
42
|
+
_context.n = 2;
|
|
43
|
+
return connect();
|
|
44
|
+
case 2:
|
|
45
|
+
_context.n = 4;
|
|
46
|
+
break;
|
|
47
|
+
case 3:
|
|
48
|
+
_context.p = 3;
|
|
49
|
+
_context.v;
|
|
50
|
+
case 4:
|
|
51
|
+
return _context.a(2);
|
|
52
|
+
}
|
|
53
|
+
}, _callee, null, [[1, 3]]);
|
|
54
|
+
}));
|
|
55
|
+
return function handleRetry() {
|
|
56
|
+
return _ref.apply(this, arguments);
|
|
57
|
+
};
|
|
58
|
+
}();
|
|
59
|
+
/**
|
|
60
|
+
*
|
|
61
|
+
*/
|
|
62
|
+
var renderErrorDialogTitle = function renderErrorDialogTitle() {
|
|
63
|
+
return jsx(DialogTitle, {
|
|
64
|
+
children: intl.formatMessage({
|
|
65
|
+
id: 'exerciseRunner.arduino.error.title'
|
|
66
|
+
})
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
*
|
|
71
|
+
*/
|
|
72
|
+
var renderErrorDialogContent = function renderErrorDialogContent() {
|
|
73
|
+
return jsx(DialogContent, {
|
|
74
|
+
children: jsxs(Stack, {
|
|
75
|
+
spacing: 1.5,
|
|
76
|
+
children: [permissionPhase === 'denied' ? jsx(PermissionAlert, {
|
|
77
|
+
onRetry: handleRetry
|
|
78
|
+
}) : null, errorCode ? jsx(MCUBridgeErrorText, {
|
|
79
|
+
code: errorCode,
|
|
80
|
+
variant: "body2",
|
|
81
|
+
color: "error"
|
|
82
|
+
}) : null]
|
|
83
|
+
})
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
*
|
|
88
|
+
*/
|
|
89
|
+
var renderErrorDialogActions = function renderErrorDialogActions() {
|
|
90
|
+
return jsx(DialogActions, {
|
|
91
|
+
children: jsx(Button, {
|
|
92
|
+
color: "inherit",
|
|
93
|
+
onClick: handleClose,
|
|
94
|
+
children: intl.formatMessage({
|
|
95
|
+
id: 'exerciseRunner.arduino.error.close'
|
|
96
|
+
})
|
|
97
|
+
})
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
//
|
|
101
|
+
//
|
|
102
|
+
//
|
|
103
|
+
return jsxs(Dialog, {
|
|
104
|
+
fullWidth: true,
|
|
105
|
+
open: isErrorDialogOpen,
|
|
106
|
+
maxWidth: "sm",
|
|
107
|
+
onClose: handleClose,
|
|
108
|
+
children: [renderErrorDialogTitle(), renderErrorDialogContent(), renderErrorDialogActions()]
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export { ArduinoErrorDialog as default };
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
5
|
+
import { EliceIcon } from '@elice/mui-elements';
|
|
6
|
+
import { faBookAlt, faArrowRight } from '@fortawesome/pro-regular-svg-icons';
|
|
7
|
+
import { Card, CardActionArea } from '@mui/material';
|
|
8
|
+
import Box from '@mui/material/Box';
|
|
9
|
+
import Button from '@mui/material/Button';
|
|
10
|
+
import Checkbox from '@mui/material/Checkbox';
|
|
11
|
+
import Dialog from '@mui/material/Dialog';
|
|
12
|
+
import DialogActions from '@mui/material/DialogActions';
|
|
13
|
+
import DialogContent from '@mui/material/DialogContent';
|
|
14
|
+
import DialogTitle from '@mui/material/DialogTitle';
|
|
15
|
+
import FormControlLabel from '@mui/material/FormControlLabel';
|
|
16
|
+
import Stack from '@mui/material/Stack';
|
|
17
|
+
import Typography from '@mui/material/Typography';
|
|
18
|
+
import { useArduinoBridge } from './_context.js';
|
|
19
|
+
import ArduinoHelpDialogChecklist from './ArduinoHelpDialogChecklist.js';
|
|
20
|
+
|
|
21
|
+
//
|
|
22
|
+
//
|
|
23
|
+
//
|
|
24
|
+
var STORAGE_KEY = 'elice-material-exercise-arduino-help-modal-closed';
|
|
25
|
+
var STORAGE_VALUE = 'true';
|
|
26
|
+
var ARDUINO_FAQ_URL = 'https://eli.so/arduino-faq';
|
|
27
|
+
//
|
|
28
|
+
//
|
|
29
|
+
//
|
|
30
|
+
var ArduinoHelpDialog = function ArduinoHelpDialog() {
|
|
31
|
+
var intl = useRawEliceIntl();
|
|
32
|
+
var _useArduinoBridge = useArduinoBridge(),
|
|
33
|
+
isHelpDialogOpen = _useArduinoBridge.isHelpDialogOpen,
|
|
34
|
+
openHelpDialog = _useArduinoBridge.openHelpDialog,
|
|
35
|
+
closeHelpDialog = _useArduinoBridge.closeHelpDialog;
|
|
36
|
+
var _React$useState = React.useState(false),
|
|
37
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
38
|
+
wasAutoOpened = _React$useState2[0],
|
|
39
|
+
setWasAutoOpened = _React$useState2[1];
|
|
40
|
+
var _React$useState3 = React.useState(false),
|
|
41
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
42
|
+
dontShowAgain = _React$useState4[0],
|
|
43
|
+
setDontShowAgain = _React$useState4[1];
|
|
44
|
+
//
|
|
45
|
+
// Auto-popup once on first visit (localStorage flag survives reloads).
|
|
46
|
+
//
|
|
47
|
+
React.useEffect(function () {
|
|
48
|
+
var isClosed = localStorage.getItem(STORAGE_KEY) === STORAGE_VALUE;
|
|
49
|
+
if (!isClosed) {
|
|
50
|
+
openHelpDialog();
|
|
51
|
+
setWasAutoOpened(true);
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55
|
+
[]);
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
*/
|
|
59
|
+
var handleClose = function handleClose() {
|
|
60
|
+
if (dontShowAgain) {
|
|
61
|
+
localStorage.setItem(STORAGE_KEY, STORAGE_VALUE);
|
|
62
|
+
}
|
|
63
|
+
closeHelpDialog();
|
|
64
|
+
setWasAutoOpened(false);
|
|
65
|
+
setDontShowAgain(false);
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
*
|
|
69
|
+
*/
|
|
70
|
+
var renderDialogManual = function renderDialogManual() {
|
|
71
|
+
return jsx(Card, {
|
|
72
|
+
variant: "outlined",
|
|
73
|
+
children: jsx(CardActionArea, {
|
|
74
|
+
component: "a",
|
|
75
|
+
href: ARDUINO_FAQ_URL,
|
|
76
|
+
target: "_blank",
|
|
77
|
+
rel: "noopener noreferrer",
|
|
78
|
+
sx: {
|
|
79
|
+
p: 1.5
|
|
80
|
+
},
|
|
81
|
+
children: jsxs(Stack, {
|
|
82
|
+
direction: "row",
|
|
83
|
+
spacing: 1.5,
|
|
84
|
+
alignItems: "center",
|
|
85
|
+
children: [jsx(EliceIcon, {
|
|
86
|
+
icon: faBookAlt
|
|
87
|
+
}), jsxs(Box, {
|
|
88
|
+
sx: {
|
|
89
|
+
flex: 1,
|
|
90
|
+
minWidth: 0
|
|
91
|
+
},
|
|
92
|
+
children: [jsx(Typography, {
|
|
93
|
+
variant: "body2",
|
|
94
|
+
fontWeight: 700,
|
|
95
|
+
children: intl.formatMessage({
|
|
96
|
+
id: 'exerciseRunner.arduino.help.manual.title'
|
|
97
|
+
})
|
|
98
|
+
}), jsx(Typography, {
|
|
99
|
+
variant: "caption",
|
|
100
|
+
color: "text.secondary",
|
|
101
|
+
children: intl.formatMessage({
|
|
102
|
+
id: 'exerciseRunner.arduino.help.manual.detail'
|
|
103
|
+
})
|
|
104
|
+
})]
|
|
105
|
+
}), jsx(EliceIcon, {
|
|
106
|
+
icon: faArrowRight
|
|
107
|
+
})]
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
//
|
|
113
|
+
//
|
|
114
|
+
//
|
|
115
|
+
return jsxs(Dialog, {
|
|
116
|
+
fullWidth: true,
|
|
117
|
+
open: isHelpDialogOpen,
|
|
118
|
+
maxWidth: "sm",
|
|
119
|
+
onClose: handleClose,
|
|
120
|
+
children: [jsx(DialogTitle, {
|
|
121
|
+
children: intl.formatMessage({
|
|
122
|
+
id: 'exerciseRunner.arduino.help.title'
|
|
123
|
+
})
|
|
124
|
+
}), jsx(DialogContent, {
|
|
125
|
+
children: jsxs(Stack, {
|
|
126
|
+
spacing: 2.5,
|
|
127
|
+
children: [jsx(Typography, {
|
|
128
|
+
variant: "body2",
|
|
129
|
+
color: "text.secondary",
|
|
130
|
+
children: intl.formatMessage({
|
|
131
|
+
id: 'exerciseRunner.arduino.help.greeting'
|
|
132
|
+
})
|
|
133
|
+
}), jsx(ArduinoHelpDialogChecklist, {}), renderDialogManual()]
|
|
134
|
+
})
|
|
135
|
+
}), jsxs(DialogActions, {
|
|
136
|
+
sx: {
|
|
137
|
+
justifyContent: 'space-between'
|
|
138
|
+
},
|
|
139
|
+
children: [wasAutoOpened ? jsx(FormControlLabel, {
|
|
140
|
+
control: jsx(Checkbox, {
|
|
141
|
+
size: "small",
|
|
142
|
+
checked: dontShowAgain,
|
|
143
|
+
onChange: function onChange(e) {
|
|
144
|
+
return setDontShowAgain(e.target.checked);
|
|
145
|
+
}
|
|
146
|
+
}),
|
|
147
|
+
label: intl.formatMessage({
|
|
148
|
+
id: 'exerciseRunner.arduino.help.dontShowAgain'
|
|
149
|
+
})
|
|
150
|
+
}) : jsx(Box, {}), jsx(Button, {
|
|
151
|
+
color: "inherit",
|
|
152
|
+
onClick: handleClose,
|
|
153
|
+
children: intl.formatMessage({
|
|
154
|
+
id: 'exerciseRunner.arduino.help.close'
|
|
155
|
+
})
|
|
156
|
+
})]
|
|
157
|
+
})]
|
|
158
|
+
});
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
export { ArduinoHelpDialog as default };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { eilStatusInfo } from '@elice/icons';
|
|
3
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
4
|
+
import { useArduinoBridge } from './_context.js';
|
|
5
|
+
import ExerciseMenuButton from '../../../shared/exercise-menu-button/ExerciseMenuButton.js';
|
|
6
|
+
|
|
7
|
+
//
|
|
8
|
+
//
|
|
9
|
+
//
|
|
10
|
+
var ArduinoHelpDialogButton = function ArduinoHelpDialogButton() {
|
|
11
|
+
var intl = useRawEliceIntl();
|
|
12
|
+
var _useArduinoBridge = useArduinoBridge(),
|
|
13
|
+
isHelpDialogOpen = _useArduinoBridge.isHelpDialogOpen,
|
|
14
|
+
openHelpDialog = _useArduinoBridge.openHelpDialog;
|
|
15
|
+
return jsx(ExerciseMenuButton, {
|
|
16
|
+
icon: eilStatusInfo,
|
|
17
|
+
title: intl.formatMessage({
|
|
18
|
+
id: 'exerciseRunner.arduino.help.button'
|
|
19
|
+
}),
|
|
20
|
+
active: isHelpDialogOpen,
|
|
21
|
+
onClick: openHelpDialog
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export { ArduinoHelpDialogButton as default };
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
3
|
+
import Box from '@mui/material/Box';
|
|
4
|
+
import Stack from '@mui/material/Stack';
|
|
5
|
+
import Typography from '@mui/material/Typography';
|
|
6
|
+
|
|
7
|
+
//
|
|
8
|
+
//
|
|
9
|
+
//
|
|
10
|
+
var CHECKLIST_STEPS = [1, 2, 3, 4];
|
|
11
|
+
//
|
|
12
|
+
//
|
|
13
|
+
//
|
|
14
|
+
var ArduinoHelpDialogChecklist = function ArduinoHelpDialogChecklist() {
|
|
15
|
+
var intl = useRawEliceIntl();
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
var renderStepBadge = function renderStepBadge(step) {
|
|
20
|
+
return jsx(Box, {
|
|
21
|
+
"aria-hidden": "true",
|
|
22
|
+
sx: {
|
|
23
|
+
width: 24,
|
|
24
|
+
height: 24,
|
|
25
|
+
borderRadius: '50%',
|
|
26
|
+
display: 'flex',
|
|
27
|
+
alignItems: 'center',
|
|
28
|
+
justifyContent: 'center',
|
|
29
|
+
fontSize: 13,
|
|
30
|
+
fontWeight: 700,
|
|
31
|
+
bgcolor: 'primary.main',
|
|
32
|
+
color: 'primary.contrastText',
|
|
33
|
+
flexShrink: 0
|
|
34
|
+
},
|
|
35
|
+
children: step
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
*
|
|
40
|
+
*/
|
|
41
|
+
var renderItem = function renderItem(step) {
|
|
42
|
+
var title = intl.formatMessage({
|
|
43
|
+
id: "exerciseRunner.arduino.help.checklist.".concat(step, ".title")
|
|
44
|
+
});
|
|
45
|
+
var body = intl.formatMessage({
|
|
46
|
+
id: "exerciseRunner.arduino.help.checklist.".concat(step, ".body")
|
|
47
|
+
});
|
|
48
|
+
return jsxs(Stack, {
|
|
49
|
+
direction: "row",
|
|
50
|
+
spacing: 1.5,
|
|
51
|
+
alignItems: "flex-start",
|
|
52
|
+
children: [renderStepBadge(step), jsxs(Box, {
|
|
53
|
+
sx: {
|
|
54
|
+
flex: 1,
|
|
55
|
+
pt: 0.25
|
|
56
|
+
},
|
|
57
|
+
children: [jsx(Typography, {
|
|
58
|
+
variant: "body2",
|
|
59
|
+
fontWeight: 700,
|
|
60
|
+
children: title
|
|
61
|
+
}), jsx(Typography, {
|
|
62
|
+
variant: "caption",
|
|
63
|
+
color: "text.secondary",
|
|
64
|
+
sx: {
|
|
65
|
+
display: 'block',
|
|
66
|
+
mt: 0.25
|
|
67
|
+
},
|
|
68
|
+
children: body
|
|
69
|
+
})]
|
|
70
|
+
})]
|
|
71
|
+
}, step);
|
|
72
|
+
};
|
|
73
|
+
//
|
|
74
|
+
//
|
|
75
|
+
//
|
|
76
|
+
return jsx(Stack, {
|
|
77
|
+
spacing: 1.5,
|
|
78
|
+
children: CHECKLIST_STEPS.map(function (step) {
|
|
79
|
+
return renderItem(step);
|
|
80
|
+
})
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export { ArduinoHelpDialogChecklist as default };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { XtermApis } from "../../../shared/xterm/Xterm";
|
|
3
|
+
export interface ArduinoBridgeApi {
|
|
4
|
+
handleIncomingHex: (dataUrl: string) => void;
|
|
5
|
+
sendText: (text: string) => void;
|
|
6
|
+
}
|
|
7
|
+
export interface ArduinoBridgeProviderProps {
|
|
8
|
+
xtermRef: React.RefObject<XtermApis | null>;
|
|
9
|
+
apiRef: React.MutableRefObject<ArduinoBridgeApi | null>;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export interface ArduinoBridgeProviderGateProps extends ArduinoBridgeProviderProps {
|
|
13
|
+
enabled: boolean;
|
|
14
|
+
}
|
|
15
|
+
declare const _default: ({ enabled, children, ...rest }: ArduinoBridgeProviderGateProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { __rest } from 'tslib';
|
|
3
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
import React, { useEffect } from 'react';
|
|
5
|
+
import { useFlash, usePermissionPhase, setupMCUBridge, ArduinoUnoDriver, ArduinoMegaDriver } from '@elice/mcu-bridge';
|
|
6
|
+
import { ArduinoBridgeContext } from './_context.js';
|
|
7
|
+
import ArduinoConnectionGuideDialog from './ArduinoConnectionGuideDialog.js';
|
|
8
|
+
import ArduinoErrorDialog from './ArduinoErrorDialog.js';
|
|
9
|
+
import ArduinoHelpDialog from './ArduinoHelpDialog.js';
|
|
10
|
+
import ArduinoProviderApiBinder from './ArduinoProviderApiBinder.js';
|
|
11
|
+
import ArduinoProviderFlashWriter from './ArduinoProviderFlashWriter.js';
|
|
12
|
+
import ArduinoProviderSessionWriter from './ArduinoProviderSessionWriter.js';
|
|
13
|
+
import { useArduinoRunIntent } from './useArduinoRunIntent.js';
|
|
14
|
+
|
|
15
|
+
//
|
|
16
|
+
//
|
|
17
|
+
//
|
|
18
|
+
var ArduinoBridgeProvider = function ArduinoBridgeProvider(_ref) {
|
|
19
|
+
var xtermRef = _ref.xtermRef,
|
|
20
|
+
apiRef = _ref.apiRef,
|
|
21
|
+
children = _ref.children;
|
|
22
|
+
var _useFlash = useFlash(),
|
|
23
|
+
isFlashing = _useFlash.isFlashing;
|
|
24
|
+
var _useArduinoRunIntent = useArduinoRunIntent(),
|
|
25
|
+
pendingIntent = _useArduinoRunIntent.pendingIntent,
|
|
26
|
+
pendingIntentRef = _useArduinoRunIntent.pendingIntentRef,
|
|
27
|
+
setRunIntent = _useArduinoRunIntent.setRunIntent,
|
|
28
|
+
clearRunIntent = _useArduinoRunIntent.clearRunIntent;
|
|
29
|
+
var permissionPhase = usePermissionPhase();
|
|
30
|
+
var _React$useState = React.useState(null),
|
|
31
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
32
|
+
connectionIntent = _React$useState2[0],
|
|
33
|
+
setConnectionIntent = _React$useState2[1];
|
|
34
|
+
var _React$useState3 = React.useState(false),
|
|
35
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
36
|
+
isHelpDialogOpen = _React$useState4[0],
|
|
37
|
+
setHelpDialogOpen = _React$useState4[1];
|
|
38
|
+
var openHelpDialog = React.useCallback(function () {
|
|
39
|
+
return setHelpDialogOpen(true);
|
|
40
|
+
}, []);
|
|
41
|
+
var closeHelpDialog = React.useCallback(function () {
|
|
42
|
+
return setHelpDialogOpen(false);
|
|
43
|
+
}, []);
|
|
44
|
+
useEffect(function () {
|
|
45
|
+
setupMCUBridge([ArduinoUnoDriver, ArduinoMegaDriver]);
|
|
46
|
+
}, []);
|
|
47
|
+
// Clear the variant tag once the picker resolves so it can't bleed into
|
|
48
|
+
// an unrelated future connect flow.
|
|
49
|
+
useEffect(function () {
|
|
50
|
+
if (permissionPhase === 'granted') {
|
|
51
|
+
setConnectionIntent(null);
|
|
52
|
+
}
|
|
53
|
+
}, [permissionPhase]);
|
|
54
|
+
//
|
|
55
|
+
//
|
|
56
|
+
//
|
|
57
|
+
return jsxs(ArduinoBridgeContext.Provider, {
|
|
58
|
+
value: {
|
|
59
|
+
setPendingIntent: setRunIntent,
|
|
60
|
+
isPending: pendingIntent !== null,
|
|
61
|
+
isFlashing: isFlashing,
|
|
62
|
+
connectionIntent: connectionIntent,
|
|
63
|
+
setConnectionIntent: setConnectionIntent,
|
|
64
|
+
isHelpDialogOpen: isHelpDialogOpen,
|
|
65
|
+
openHelpDialog: openHelpDialog,
|
|
66
|
+
closeHelpDialog: closeHelpDialog
|
|
67
|
+
},
|
|
68
|
+
children: [children, jsx(ArduinoProviderSessionWriter, {
|
|
69
|
+
xtermRef: xtermRef
|
|
70
|
+
}), jsx(ArduinoProviderFlashWriter, {
|
|
71
|
+
xtermRef: xtermRef
|
|
72
|
+
}), jsx(ArduinoProviderApiBinder, {
|
|
73
|
+
apiRef: apiRef,
|
|
74
|
+
xtermRef: xtermRef,
|
|
75
|
+
pendingIntentRef: pendingIntentRef,
|
|
76
|
+
clearRunIntent: clearRunIntent
|
|
77
|
+
}), jsx(ArduinoConnectionGuideDialog, {}), jsx(ArduinoHelpDialog, {}), jsx(ArduinoErrorDialog, {})]
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
//
|
|
81
|
+
//
|
|
82
|
+
//
|
|
83
|
+
var ArduinoBridgeProvider$1 = (function (_a) {
|
|
84
|
+
var enabled = _a.enabled,
|
|
85
|
+
children = _a.children,
|
|
86
|
+
rest = __rest(_a, ["enabled", "children"]);
|
|
87
|
+
if (!enabled) {
|
|
88
|
+
return jsx(Fragment, {
|
|
89
|
+
children: children
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
return jsx(ArduinoBridgeProvider, Object.assign({}, rest, {
|
|
93
|
+
children: children
|
|
94
|
+
}));
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
export { ArduinoBridgeProvider$1 as default };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { XtermApis } from "../../../shared/xterm/Xterm";
|
|
3
|
+
import type { ArduinoBridgeIntent } from './_context';
|
|
4
|
+
import type { ArduinoBridgeApi } from './ArduinoProvider';
|
|
5
|
+
export interface ArduinoProviderApiBinderProps {
|
|
6
|
+
apiRef: React.MutableRefObject<ArduinoBridgeApi | null>;
|
|
7
|
+
xtermRef: React.RefObject<XtermApis | null>;
|
|
8
|
+
pendingIntentRef: React.MutableRefObject<ArduinoBridgeIntent | null>;
|
|
9
|
+
clearRunIntent: () => void;
|
|
10
|
+
}
|
|
11
|
+
declare const ArduinoProviderApiBinder: React.FC<ArduinoProviderApiBinderProps>;
|
|
12
|
+
export default ArduinoProviderApiBinder;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
3
|
+
import { useSession, useFlash } from '@elice/mcu-bridge';
|
|
4
|
+
import { useArduinoTerminalWriter } from './useArduinoTerminalWriter.js';
|
|
5
|
+
|
|
6
|
+
//
|
|
7
|
+
//
|
|
8
|
+
//
|
|
9
|
+
function decodeHexDataUrl(dataUrl) {
|
|
10
|
+
var base64 = dataUrl.includes(',') ? dataUrl.split(',')[1] : dataUrl;
|
|
11
|
+
var binary = atob(base64);
|
|
12
|
+
var bytes = new Uint8Array(binary.length);
|
|
13
|
+
for (var i = 0; i < binary.length; i += 1) {
|
|
14
|
+
bytes[i] = binary.charCodeAt(i);
|
|
15
|
+
}
|
|
16
|
+
return bytes;
|
|
17
|
+
}
|
|
18
|
+
//
|
|
19
|
+
//
|
|
20
|
+
//
|
|
21
|
+
var ArduinoProviderApiBinder = function ArduinoProviderApiBinder(_ref) {
|
|
22
|
+
var apiRef = _ref.apiRef,
|
|
23
|
+
xtermRef = _ref.xtermRef,
|
|
24
|
+
pendingIntentRef = _ref.pendingIntentRef,
|
|
25
|
+
clearRunIntent = _ref.clearRunIntent;
|
|
26
|
+
var intl = useRawEliceIntl();
|
|
27
|
+
var session = useSession();
|
|
28
|
+
var _useFlash = useFlash(),
|
|
29
|
+
flash = _useFlash.flash;
|
|
30
|
+
var _useArduinoTerminalWr = useArduinoTerminalWriter({
|
|
31
|
+
xtermRef: xtermRef
|
|
32
|
+
}),
|
|
33
|
+
writeSystemMessage = _useArduinoTerminalWr.writeSystemMessage;
|
|
34
|
+
//
|
|
35
|
+
// Expose imperative API to the parent runner via ref.
|
|
36
|
+
//
|
|
37
|
+
React.useEffect(function () {
|
|
38
|
+
apiRef.current = {
|
|
39
|
+
handleIncomingHex: function handleIncomingHex(dataUrl) {
|
|
40
|
+
var intent = pendingIntentRef.current;
|
|
41
|
+
clearRunIntent();
|
|
42
|
+
if (intent !== 'upload') {
|
|
43
|
+
if (intent === 'compile') {
|
|
44
|
+
writeSystemMessage(intl.formatMessage({
|
|
45
|
+
id: 'exerciseRunner.arduino.terminal.compile.done'
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!session) {
|
|
51
|
+
writeSystemMessage(intl.formatMessage({
|
|
52
|
+
id: 'exerciseRunner.arduino.terminal.board.notConnected'
|
|
53
|
+
}));
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
writeSystemMessage(intl.formatMessage({
|
|
57
|
+
id: 'exerciseRunner.arduino.terminal.compile.done'
|
|
58
|
+
}));
|
|
59
|
+
var bytes;
|
|
60
|
+
try {
|
|
61
|
+
bytes = decodeHexDataUrl(dataUrl);
|
|
62
|
+
} catch (_a) {
|
|
63
|
+
writeSystemMessage(intl.formatMessage({
|
|
64
|
+
id: 'exerciseRunner.arduino.terminal.firmware.readFail'
|
|
65
|
+
}));
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
void flash(bytes)["catch"](function () {
|
|
69
|
+
// Error already surfaced through the progress writer.
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
sendText: function sendText(text) {
|
|
73
|
+
if (!session) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
void session.writeText(text);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
return function () {
|
|
80
|
+
apiRef.current = null;
|
|
81
|
+
};
|
|
82
|
+
}, [apiRef, session, flash, pendingIntentRef, clearRunIntent, writeSystemMessage, intl]);
|
|
83
|
+
return null;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export { ArduinoProviderApiBinder as default };
|
package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { XtermApis } from "../../../shared/xterm/Xterm";
|
|
3
|
+
export interface ArduinoProviderFlashWriterProps {
|
|
4
|
+
xtermRef: React.RefObject<XtermApis | null>;
|
|
5
|
+
}
|
|
6
|
+
declare const ArduinoProviderFlashWriter: React.FC<ArduinoProviderFlashWriterProps>;
|
|
7
|
+
export default ArduinoProviderFlashWriter;
|