@elice/material-exercise 1.260429.0-improvetimerpopoverui.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.
Files changed (187) hide show
  1. package/cjs/components/material-exercise/context/index.js +0 -7
  2. package/cjs/components/material-exercise/context/recoil.d.ts +0 -44
  3. package/cjs/components/material-exercise/context/recoil.js +0 -108
  4. package/cjs/components/material-exercise/context/recoilTypes.d.ts +0 -7
  5. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +1 -1
  6. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +1 -18
  7. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +2 -4
  8. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
  9. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
  10. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +27 -57
  11. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +34 -7
  12. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.d.ts +1 -1
  13. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +13 -219
  14. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.d.ts +2 -2
  15. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionCancel.d.ts +3 -0
  16. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionCancel.js +44 -0
  17. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionGrade.d.ts +3 -0
  18. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionGrade.js +58 -0
  19. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionRun.d.ts +3 -0
  20. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionRun.js +44 -0
  21. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.d.ts +3 -0
  22. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.js +44 -0
  23. package/cjs/components/material-exercise/exercise-runner/action/index.d.ts +5 -0
  24. package/cjs/components/material-exercise/exercise-runner/action/index.js +15 -0
  25. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionCancel.d.ts +14 -0
  26. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionCancel.js +52 -0
  27. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionGrade.d.ts +16 -0
  28. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionGrade.js +74 -0
  29. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionRun.d.ts +14 -0
  30. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionRun.js +65 -0
  31. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.d.ts +15 -0
  32. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.js +68 -0
  33. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.d.ts +3 -0
  34. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.js +163 -0
  35. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.d.ts +3 -0
  36. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.js +188 -0
  37. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.d.ts +3 -0
  38. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.js +128 -0
  39. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.d.ts +3 -0
  40. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.js +78 -0
  41. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.d.ts +3 -0
  42. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.js +98 -0
  43. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.d.ts +3 -0
  44. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.js +24 -0
  45. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.d.ts +3 -0
  46. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.js +201 -0
  47. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.d.ts +3 -0
  48. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.js +125 -0
  49. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.d.ts +3 -0
  50. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.js +179 -0
  51. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.d.ts +3 -0
  52. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.js +29 -0
  53. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.d.ts +3 -0
  54. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.js +94 -0
  55. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProvider.d.ts +16 -0
  56. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProvider.js +105 -0
  57. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.d.ts +12 -0
  58. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.js +94 -0
  59. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.d.ts +7 -0
  60. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.js +95 -0
  61. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.d.ts +7 -0
  62. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.js +70 -0
  63. package/cjs/components/material-exercise/exercise-runner/arduino/_context.d.ts +35 -0
  64. package/cjs/components/material-exercise/exercise-runner/arduino/_context.js +18 -0
  65. package/cjs/components/material-exercise/exercise-runner/arduino/index.d.ts +6 -0
  66. package/cjs/components/material-exercise/exercise-runner/arduino/index.js +13 -0
  67. package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.d.ts +9 -0
  68. package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.js +38 -0
  69. package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.d.ts +10 -0
  70. package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.js +33 -0
  71. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
  72. package/cjs/components/material-exercise/exercise-runner/locales/ja.json.js +1 -1
  73. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
  74. package/cjs/components/material-exercise/exercise-runner/locales/th.json.js +1 -1
  75. package/cjs/components/shared/monaco-editor/utils/prettier/config.d.ts +1 -1
  76. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +1 -1
  77. package/cjs/hooks/index.d.ts +0 -1
  78. package/cjs/hooks/index.js +0 -2
  79. package/es/components/material-exercise/context/index.js +1 -1
  80. package/es/components/material-exercise/context/recoil.d.ts +0 -44
  81. package/es/components/material-exercise/context/recoil.js +1 -102
  82. package/es/components/material-exercise/context/recoilTypes.d.ts +0 -7
  83. package/es/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +1 -1
  84. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +2 -18
  85. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +3 -3
  86. package/es/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
  87. package/es/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
  88. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +28 -58
  89. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +34 -7
  90. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.d.ts +1 -1
  91. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +13 -214
  92. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.d.ts +2 -2
  93. package/es/components/material-exercise/exercise-runner/action/ControllerActionCancel.d.ts +3 -0
  94. package/es/components/material-exercise/exercise-runner/action/ControllerActionCancel.js +40 -0
  95. package/es/components/material-exercise/exercise-runner/action/ControllerActionGrade.d.ts +3 -0
  96. package/es/components/material-exercise/exercise-runner/action/ControllerActionGrade.js +54 -0
  97. package/es/components/material-exercise/exercise-runner/action/ControllerActionRun.d.ts +3 -0
  98. package/es/components/material-exercise/exercise-runner/action/ControllerActionRun.js +40 -0
  99. package/es/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.d.ts +3 -0
  100. package/es/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.js +40 -0
  101. package/es/components/material-exercise/exercise-runner/action/index.d.ts +5 -0
  102. package/es/components/material-exercise/exercise-runner/action/index.js +5 -0
  103. package/es/components/material-exercise/exercise-runner/action/useControllerActionCancel.d.ts +14 -0
  104. package/es/components/material-exercise/exercise-runner/action/useControllerActionCancel.js +46 -0
  105. package/es/components/material-exercise/exercise-runner/action/useControllerActionGrade.d.ts +16 -0
  106. package/es/components/material-exercise/exercise-runner/action/useControllerActionGrade.js +68 -0
  107. package/es/components/material-exercise/exercise-runner/action/useControllerActionRun.d.ts +14 -0
  108. package/es/components/material-exercise/exercise-runner/action/useControllerActionRun.js +59 -0
  109. package/es/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.d.ts +15 -0
  110. package/es/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.js +62 -0
  111. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.d.ts +3 -0
  112. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.js +148 -0
  113. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.d.ts +3 -0
  114. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.js +177 -0
  115. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.d.ts +3 -0
  116. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.js +118 -0
  117. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.d.ts +3 -0
  118. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.js +70 -0
  119. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.d.ts +3 -0
  120. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.js +90 -0
  121. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.d.ts +3 -0
  122. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.js +20 -0
  123. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.d.ts +3 -0
  124. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.js +197 -0
  125. package/es/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.d.ts +3 -0
  126. package/es/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.js +112 -0
  127. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.d.ts +3 -0
  128. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.js +161 -0
  129. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.d.ts +3 -0
  130. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.js +25 -0
  131. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.d.ts +3 -0
  132. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.js +84 -0
  133. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProvider.d.ts +16 -0
  134. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProvider.js +97 -0
  135. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.d.ts +12 -0
  136. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.js +86 -0
  137. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.d.ts +7 -0
  138. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.js +87 -0
  139. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.d.ts +7 -0
  140. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.js +62 -0
  141. package/es/components/material-exercise/exercise-runner/arduino/_context.d.ts +35 -0
  142. package/es/components/material-exercise/exercise-runner/arduino/_context.js +15 -0
  143. package/es/components/material-exercise/exercise-runner/arduino/index.d.ts +6 -0
  144. package/es/components/material-exercise/exercise-runner/arduino/index.js +4 -0
  145. package/es/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.d.ts +9 -0
  146. package/es/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.js +32 -0
  147. package/es/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.d.ts +10 -0
  148. package/es/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.js +27 -0
  149. package/es/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
  150. package/es/components/material-exercise/exercise-runner/locales/ja.json.js +1 -1
  151. package/es/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
  152. package/es/components/material-exercise/exercise-runner/locales/th.json.js +1 -1
  153. package/es/components/shared/monaco-editor/utils/prettier/config.d.ts +1 -1
  154. package/es/components/shared/monaco-editor/utils/prettier/config.js +1 -1
  155. package/es/hooks/index.d.ts +0 -1
  156. package/es/hooks/index.js +0 -1
  157. package/package.json +15 -11
  158. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.d.ts +0 -3
  159. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -33
  160. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.d.ts +0 -3
  161. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -178
  162. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.d.ts +0 -3
  163. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +0 -169
  164. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.d.ts +0 -3
  165. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +0 -120
  166. package/cjs/constants/arduino.d.ts +0 -35
  167. package/cjs/constants/arduino.js +0 -73
  168. package/cjs/hooks/useArduino.d.ts +0 -14
  169. package/cjs/hooks/useArduino.js +0 -589
  170. package/cjs/typings/arduino.d.ts +0 -77
  171. package/cjs/utils/arduino.d.ts +0 -43
  172. package/cjs/utils/arduino.js +0 -82
  173. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.d.ts +0 -3
  174. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -29
  175. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.d.ts +0 -3
  176. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -170
  177. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.d.ts +0 -3
  178. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +0 -161
  179. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.d.ts +0 -3
  180. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +0 -112
  181. package/es/constants/arduino.d.ts +0 -35
  182. package/es/constants/arduino.js +0 -62
  183. package/es/hooks/useArduino.d.ts +0 -14
  184. package/es/hooks/useArduino.js +0 -583
  185. package/es/typings/arduino.d.ts +0 -77
  186. package/es/utils/arduino.d.ts +0 -43
  187. package/es/utils/arduino.js +0 -75
@@ -0,0 +1,90 @@
1
+ import { asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import React from 'react';
4
+ import { useRawEliceIntl } from '@elice/intl';
5
+ import { useConnection, useIsBrowserSupported } from '@elice/mcu-bridge';
6
+ import { LoadingButton } from '@mui/lab';
7
+ import { useArduinoBridge } from './_context.js';
8
+ import { useControllerActionRun } from '../action/useControllerActionRun.js';
9
+
10
+ //
11
+ //
12
+ //
13
+ var ArduinoControllerActionUpload = function ArduinoControllerActionUpload() {
14
+ var intl = useRawEliceIntl();
15
+ var _useControllerActionR = useControllerActionRun(),
16
+ isHidden = _useControllerActionR.isHidden,
17
+ isDisabled = _useControllerActionR.isDisabled,
18
+ run = _useControllerActionR.run;
19
+ var _useConnection = useConnection(),
20
+ status = _useConnection.status,
21
+ connect = _useConnection.connect;
22
+ var isBrowserSupported = useIsBrowserSupported();
23
+ var _useArduinoBridge = useArduinoBridge(),
24
+ setPendingIntent = _useArduinoBridge.setPendingIntent,
25
+ isPending = _useArduinoBridge.isPending,
26
+ isFlashing = _useArduinoBridge.isFlashing,
27
+ setConnectionIntent = _useArduinoBridge.setConnectionIntent;
28
+ var isUploadDisabled = isDisabled || isPending || isFlashing || !isBrowserSupported;
29
+ var isUploadLoading = isPending || isFlashing;
30
+ /**
31
+ * Submit the Arduino sketch, then flash the compiled firmware to the board.
32
+ */
33
+ var upload = React.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
34
+ return _regenerator().w(function (_context) {
35
+ while (1) switch (_context.p = _context.n) {
36
+ case 0:
37
+ if (!isUploadDisabled) {
38
+ _context.n = 1;
39
+ break;
40
+ }
41
+ return _context.a(2);
42
+ case 1:
43
+ if (!(status !== 'connected')) {
44
+ _context.n = 5;
45
+ break;
46
+ }
47
+ setConnectionIntent('upload');
48
+ _context.p = 2;
49
+ _context.n = 3;
50
+ return connect();
51
+ case 3:
52
+ _context.n = 5;
53
+ break;
54
+ case 4:
55
+ _context.p = 4;
56
+ _context.v;
57
+ return _context.a(2);
58
+ case 5:
59
+ setPendingIntent('upload');
60
+ _context.n = 6;
61
+ return run();
62
+ case 6:
63
+ return _context.a(2);
64
+ }
65
+ }, _callee, null, [[2, 4]]);
66
+ })), [isUploadDisabled, status, connect, setConnectionIntent, setPendingIntent, run]);
67
+ //
68
+ //
69
+ //
70
+ if (isHidden) {
71
+ return null;
72
+ }
73
+ return jsx(LoadingButton, {
74
+ size: "small",
75
+ variant: "contained",
76
+ loading: isUploadLoading,
77
+ disabled: isUploadDisabled,
78
+ sx: {
79
+ bgcolor: function bgcolor(theme) {
80
+ return theme.palette.primary.light;
81
+ }
82
+ },
83
+ onClick: upload,
84
+ children: intl.formatMessage({
85
+ id: 'exerciseRunner.controller.arduino.button.upload'
86
+ })
87
+ });
88
+ };
89
+
90
+ export { ArduinoControllerActionUpload as default };
@@ -0,0 +1,3 @@
1
+ import type React from 'react';
2
+ declare const ArduinoControllerButtonGroup: React.FC;
3
+ export default ArduinoControllerButtonGroup;
@@ -0,0 +1,20 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { Stack } from '@mui/material';
3
+ import ArduinoControllerActionCompile from './ArduinoControllerActionCompile.js';
4
+ import ArduinoControllerActionUpload from './ArduinoControllerActionUpload.js';
5
+ import ControllerActionGrade from '../action/ControllerActionGrade.js';
6
+ import ControllerActionCancel from '../action/ControllerActionCancel.js';
7
+
8
+ //
9
+ //
10
+ //
11
+ var ArduinoControllerButtonGroup = function ArduinoControllerButtonGroup() {
12
+ return jsxs(Stack, {
13
+ direction: "row",
14
+ alignItems: "center",
15
+ gap: "0.5rem",
16
+ children: [jsx(ArduinoControllerActionCompile, {}), jsx(ArduinoControllerActionUpload, {}), jsx(ControllerActionGrade, {}), jsx(ControllerActionCancel, {})]
17
+ });
18
+ };
19
+
20
+ export { ArduinoControllerButtonGroup as default };
@@ -0,0 +1,3 @@
1
+ import type React from 'react';
2
+ declare const ArduinoControllerStatusMessage: React.VFC;
3
+ export default ArduinoControllerStatusMessage;
@@ -0,0 +1,197 @@
1
+ import { defineProperty as _defineProperty, asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { Text } from '@elice/blocks';
4
+ import { useRawEliceIntl } from '@elice/intl';
5
+ import { useConnection, useSession, useIsBrowserSupported, BaudRateSelect } from '@elice/mcu-bridge';
6
+ import { LoadingButton } from '@mui/lab';
7
+ import { Stack, inputBaseClasses, inputLabelClasses, Box } from '@mui/material';
8
+ import ExerciseRunnerControllerStatusMessage from '../ExerciseRunnerControllerStatusMessage.js';
9
+ import { useArduinoBridge } from './_context.js';
10
+ import ArduinoHelpDialogButton from './ArduinoHelpDialogButton.js';
11
+
12
+ var BOARD_STATUS_TONE = {
13
+ idle: 'idle',
14
+ connected: 'success',
15
+ reconnecting: 'warning',
16
+ disconnected: 'error'
17
+ };
18
+ var BOARD_STATUS_LABEL_KEY = {
19
+ idle: 'exerciseRunner.controller.arduino.boardStatus.idle',
20
+ connected: 'exerciseRunner.controller.arduino.boardStatus.connected',
21
+ reconnecting: 'exerciseRunner.controller.arduino.boardStatus.reconnecting',
22
+ disconnected: 'exerciseRunner.controller.arduino.boardStatus.disconnected'
23
+ };
24
+ var dotColor = function dotColor(tone) {
25
+ return function (theme) {
26
+ switch (tone) {
27
+ case 'success':
28
+ return theme.palette.success.main;
29
+ case 'warning':
30
+ return theme.palette.warning.main;
31
+ case 'error':
32
+ return theme.palette.error.main;
33
+ case 'idle':
34
+ default:
35
+ return theme.palette.grey[500];
36
+ }
37
+ };
38
+ };
39
+ //
40
+ //
41
+ //
42
+ var ArduinoControllerStatusMessage = function ArduinoControllerStatusMessage() {
43
+ var _a;
44
+ var intl = useRawEliceIntl();
45
+ var _useConnection = useConnection(),
46
+ status = _useConnection.status,
47
+ connect = _useConnection.connect,
48
+ disconnect = _useConnection.disconnect;
49
+ var session = useSession();
50
+ var _useArduinoBridge = useArduinoBridge(),
51
+ isFlashing = _useArduinoBridge.isFlashing,
52
+ setConnectionIntent = _useArduinoBridge.setConnectionIntent;
53
+ var isBrowserSupported = useIsBrowserSupported();
54
+ var deviceName = (_a = session === null || session === void 0 ? void 0 : session.driver.board.name) !== null && _a !== void 0 ? _a : null;
55
+ var isConnected = status === 'connected';
56
+ var isTransitioning = status === 'reconnecting';
57
+ /**
58
+ *
59
+ */
60
+ var handleClick = /*#__PURE__*/function () {
61
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
62
+ return _regenerator().w(function (_context) {
63
+ while (1) switch (_context.p = _context.n) {
64
+ case 0:
65
+ if (!isConnected) {
66
+ _context.n = 2;
67
+ break;
68
+ }
69
+ _context.n = 1;
70
+ return disconnect();
71
+ case 1:
72
+ return _context.a(2);
73
+ case 2:
74
+ setConnectionIntent('connect');
75
+ _context.p = 3;
76
+ _context.n = 4;
77
+ return connect();
78
+ case 4:
79
+ _context.n = 6;
80
+ break;
81
+ case 5:
82
+ _context.p = 5;
83
+ _context.v;
84
+ case 6:
85
+ return _context.a(2);
86
+ }
87
+ }, _callee, null, [[3, 5]]);
88
+ }));
89
+ return function handleClick() {
90
+ return _ref.apply(this, arguments);
91
+ };
92
+ }();
93
+ /**
94
+ *
95
+ */
96
+ var getBoardStatusLabel = function getBoardStatusLabel() {
97
+ switch (status) {
98
+ case 'reconnecting':
99
+ case 'disconnected':
100
+ return intl.formatMessage({
101
+ id: BOARD_STATUS_LABEL_KEY[status]
102
+ });
103
+ case 'connected':
104
+ return deviceName ? intl.formatMessage({
105
+ id: BOARD_STATUS_LABEL_KEY.connected
106
+ }, {
107
+ device: deviceName
108
+ }) : intl.formatMessage({
109
+ id: 'exerciseRunner.controller.arduino.boardStatus.connectedNoName'
110
+ });
111
+ case 'idle':
112
+ default:
113
+ return intl.formatMessage({
114
+ id: BOARD_STATUS_LABEL_KEY.idle
115
+ });
116
+ }
117
+ };
118
+ /**
119
+ *
120
+ */
121
+ var renderArduinoBaudRate = function renderArduinoBaudRate() {
122
+ if (!isConnected) {
123
+ return null;
124
+ }
125
+ return jsx(BaudRateSelect, {
126
+ size: "small",
127
+ sx: _defineProperty(_defineProperty(_defineProperty({}, ".".concat(inputLabelClasses.root), {
128
+ display: 'none'
129
+ }), ".".concat(inputBaseClasses.root), {
130
+ width: '10rem',
131
+ minHeight: '1rem'
132
+ }), ".".concat(inputBaseClasses.input), {
133
+ paddingTop: '0.25rem',
134
+ paddingBottom: '0.25rem'
135
+ })
136
+ });
137
+ };
138
+ /**
139
+ *
140
+ */
141
+ var renderArduinoStatus = function renderArduinoStatus() {
142
+ return jsxs(Stack, {
143
+ direction: "row",
144
+ alignItems: "center",
145
+ gap: "0.5rem",
146
+ children: [jsx(Box, {
147
+ sx: {
148
+ width: '6px',
149
+ height: '6px',
150
+ borderRadius: '50%',
151
+ backgroundColor: dotColor(BOARD_STATUS_TONE[status])
152
+ }
153
+ }), jsx(Text, {
154
+ bold: true,
155
+ role: "gray3",
156
+ size: "tiny",
157
+ children: getBoardStatusLabel()
158
+ })]
159
+ });
160
+ };
161
+ /**
162
+ *
163
+ */
164
+ var renderArduinoConnectButton = function renderArduinoConnectButton() {
165
+ return jsxs(Stack, {
166
+ direction: "row",
167
+ alignItems: "center",
168
+ gap: "0.5rem",
169
+ children: [jsx(LoadingButton, {
170
+ color: isConnected ? 'error' : 'success',
171
+ size: "small",
172
+ disabled: !isBrowserSupported || isTransitioning || isFlashing,
173
+ loading: isTransitioning,
174
+ onClick: handleClick,
175
+ children: isConnected ? intl.formatMessage({
176
+ id: 'exerciseRunner.controller.arduino.button.disconnect'
177
+ }) : intl.formatMessage({
178
+ id: 'exerciseRunner.controller.arduino.button.connect'
179
+ })
180
+ }), jsx(ArduinoHelpDialogButton, {})]
181
+ });
182
+ };
183
+ //
184
+ //
185
+ //
186
+ return jsxs(Stack, {
187
+ direction: "row",
188
+ alignItems: "center",
189
+ gap: "1rem",
190
+ children: [renderArduinoBaudRate(), jsxs(Stack, {
191
+ alignItems: "flex-end",
192
+ children: [jsx(ExerciseRunnerControllerStatusMessage, {}), renderArduinoStatus()]
193
+ }), renderArduinoConnectButton()]
194
+ });
195
+ };
196
+
197
+ export { ArduinoControllerStatusMessage as default };
@@ -0,0 +1,3 @@
1
+ import type React from 'react';
2
+ declare const ArduinoErrorDialog: React.VFC;
3
+ export default ArduinoErrorDialog;
@@ -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,3 @@
1
+ import React from 'react';
2
+ declare const ArduinoHelpDialog: React.VFC;
3
+ export default ArduinoHelpDialog;
@@ -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,3 @@
1
+ import type React from 'react';
2
+ declare const ArduinoHelpDialogButton: React.VFC;
3
+ export default ArduinoHelpDialogButton;
@@ -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,3 @@
1
+ import type React from 'react';
2
+ declare const ArduinoHelpDialogChecklist: React.VFC;
3
+ export default ArduinoHelpDialogChecklist;