@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,65 @@
1
+ 'use strict';
2
+
3
+ var _rollupPluginBabelHelpers = require('../../../../_virtual/_rollupPluginBabelHelpers.js');
4
+ var React = require('react');
5
+ var types = require('@elice/types');
6
+ var websocket = require('@elice/websocket');
7
+ var recoil = require('recoil');
8
+ var ExerciseRunnerContext = require('../ExerciseRunnerContext.js');
9
+ var recoil$1 = require('../../context/recoil.js');
10
+ var useExerciseFile = require('../../../../hooks/useExerciseFile.js');
11
+
12
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
13
+
14
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
15
+
16
+ //
17
+ //
18
+ //
19
+ /**
20
+ * Provides state and handler for the exercise runner's "run" action.
21
+ */
22
+ var useControllerActionRun = function useControllerActionRun() {
23
+ var _return = React__default.default.useRef({});
24
+ var _React$useContext = React__default.default.useContext(ExerciseRunnerContext.ExerciseRunnerContext),
25
+ onSubmit = _React$useContext.onSubmit;
26
+ var activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
27
+ var isFileEditable = useExerciseFile.useExerciseFileEditable(activeFilename);
28
+ var runnerWebsocketStatus = recoil.useRecoilValue(recoil$1.exerciseWebSocketTotalStatusQuery([].concat(_rollupPluginBabelHelpers.toConsumableArray(isFileEditable ? ['usercodeEdit'] : []), ['runnerRoom', 'stdio'])));
29
+ var exerciseRunType = recoil.useRecoilValue(recoil$1.exerciseRunnerRunTypeState);
30
+ var isSubmitting = recoil.useRecoilValue(recoil$1.exerciseRunnerSubmittingState);
31
+ var isRunning = recoil.useRecoilValue(recoil$1.exerciseRunnerRunningState);
32
+ var isConnecting = runnerWebsocketStatus === websocket.EliceWebSocket.CONNECTING;
33
+ var isNotReady = runnerWebsocketStatus !== websocket.EliceWebSocket.OPEN;
34
+ var isHidden = isRunning;
35
+ var isDisabled = isHidden || isNotReady || isConnecting || isSubmitting;
36
+ var isLoading = isConnecting || isSubmitting && exerciseRunType === types.enums.ExerciseRunType.Run;
37
+ /**
38
+ *
39
+ */
40
+ var run = React__default.default.useCallback(/*#__PURE__*/_rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee() {
41
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
42
+ while (1) switch (_context.n) {
43
+ case 0:
44
+ if (isDisabled) {
45
+ _context.n = 1;
46
+ break;
47
+ }
48
+ _context.n = 1;
49
+ return onSubmit(types.enums.ExerciseRunType.Run);
50
+ case 1:
51
+ return _context.a(2);
52
+ }
53
+ }, _callee);
54
+ })), [isDisabled, onSubmit]);
55
+ //
56
+ //
57
+ //
58
+ _return.current.isHidden = isHidden;
59
+ _return.current.isDisabled = isDisabled;
60
+ _return.current.isLoading = isLoading;
61
+ _return.current.run = run;
62
+ return _return.current;
63
+ };
64
+
65
+ exports.useControllerActionRun = useControllerActionRun;
@@ -0,0 +1,15 @@
1
+ export interface UseControllerActionSyncRequestReturn {
2
+ /** Whether the sync-request button should be hidden. */
3
+ isHidden: boolean;
4
+ /** Whether the sync-request button should be disabled. */
5
+ isDisabled: boolean;
6
+ /** Whether the sync-request button should show a loading indicator. */
7
+ isLoading: boolean;
8
+ /** Request the runner to sync the latest user code. */
9
+ syncRequest: () => void;
10
+ }
11
+ /**
12
+ * Provides state and handler for the exercise runner's "sync request" action,
13
+ * and forwards file-editor save actions to the same handler.
14
+ */
15
+ export declare const useControllerActionSyncRequest: () => UseControllerActionSyncRequestReturn;
@@ -0,0 +1,68 @@
1
+ 'use strict';
2
+
3
+ var _rollupPluginBabelHelpers = require('../../../../_virtual/_rollupPluginBabelHelpers.js');
4
+ var React = require('react');
5
+ var websocket = require('@elice/websocket');
6
+ var recoil = require('recoil');
7
+ var ExerciseRunnerContext = require('../ExerciseRunnerContext.js');
8
+ var context = require('../../context/context.js');
9
+ var recoil$1 = require('../../context/recoil.js');
10
+ var useExerciseFile = require('../../../../hooks/useExerciseFile.js');
11
+ var subjects = require('../../context/subjects.js');
12
+
13
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
14
+
15
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
16
+
17
+ //
18
+ //
19
+ //
20
+ /**
21
+ * Provides state and handler for the exercise runner's "sync request" action,
22
+ * and forwards file-editor save actions to the same handler.
23
+ */
24
+ var useControllerActionSyncRequest = function useControllerActionSyncRequest() {
25
+ var _a;
26
+ var _return = React__default.default.useRef({});
27
+ var _React$useContext = React__default.default.useContext(context.ExerciseContext),
28
+ materialExerciseId = _React$useContext.materialExerciseId;
29
+ var _React$useContext2 = React__default.default.useContext(ExerciseRunnerContext.ExerciseRunnerContext),
30
+ onSyncRequest = _React$useContext2.onSyncRequest;
31
+ var activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
32
+ var isFileEditable = useExerciseFile.useExerciseFileEditable(activeFilename);
33
+ var runnerWebsocketStatus = recoil.useRecoilValue(recoil$1.exerciseWebSocketTotalStatusQuery([].concat(_rollupPluginBabelHelpers.toConsumableArray(isFileEditable ? ['usercodeEdit'] : []), ['runnerRoom', 'stdio'])));
34
+ var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
35
+ var isRunning = recoil.useRecoilValue(recoil$1.exerciseRunnerRunningState);
36
+ var isConnecting = runnerWebsocketStatus === websocket.EliceWebSocket.CONNECTING;
37
+ var isNotReady = runnerWebsocketStatus !== websocket.EliceWebSocket.OPEN;
38
+ var isHidden = !isRunning || !((_a = exercise === null || exercise === void 0 ? void 0 : exercise.readyExerciseImage) === null || _a === void 0 ? void 0 : _a.httpPort);
39
+ var isDisabled = isHidden || isNotReady || isConnecting;
40
+ var isLoading = isConnecting;
41
+ /**
42
+ *
43
+ */
44
+ var syncRequest = React__default.default.useCallback(function () {
45
+ if (!isDisabled) {
46
+ onSyncRequest();
47
+ }
48
+ }, [isDisabled, onSyncRequest]);
49
+ //
50
+ //
51
+ //
52
+ React__default.default.useEffect(function () {
53
+ var saveActionSub = subjects.exerciseFileEditorSaveAction$.subscribe(syncRequest);
54
+ return function () {
55
+ saveActionSub.unsubscribe();
56
+ };
57
+ }, [syncRequest]);
58
+ //
59
+ //
60
+ //
61
+ _return.current.isHidden = isHidden;
62
+ _return.current.isDisabled = isDisabled;
63
+ _return.current.isLoading = isLoading;
64
+ _return.current.syncRequest = syncRequest;
65
+ return _return.current;
66
+ };
67
+
68
+ exports.useControllerActionSyncRequest = useControllerActionSyncRequest;
@@ -0,0 +1,3 @@
1
+ import type React from 'react';
2
+ declare const ArduinoConnectionGuideDialog: React.VFC;
3
+ export default ArduinoConnectionGuideDialog;
@@ -0,0 +1,163 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var intl = require('@elice/intl');
7
+ var mcuBridge = require('@elice/mcu-bridge');
8
+ var ArrowUpwardIcon = require('@mui/icons-material/ArrowUpward');
9
+ var Alert = require('@mui/material/Alert');
10
+ var Dialog = require('@mui/material/Dialog');
11
+ var DialogActions = require('@mui/material/DialogActions');
12
+ var DialogContent = require('@mui/material/DialogContent');
13
+ var DialogTitle = require('@mui/material/DialogTitle');
14
+ var Stack = require('@mui/material/Stack');
15
+ var Typography = require('@mui/material/Typography');
16
+ var _context = require('./_context.js');
17
+ var ArduinoConnectionGuideDialogNativeMock = require('./ArduinoConnectionGuideDialogNativeMock.js');
18
+ var ArduinoConnectionGuideDialogSteps = require('./ArduinoConnectionGuideDialogSteps.js');
19
+
20
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
21
+
22
+ var ArrowUpwardIcon__default = /*#__PURE__*/_interopDefaultCompat(ArrowUpwardIcon);
23
+ var Alert__default = /*#__PURE__*/_interopDefaultCompat(Alert);
24
+ var Dialog__default = /*#__PURE__*/_interopDefaultCompat(Dialog);
25
+ var DialogActions__default = /*#__PURE__*/_interopDefaultCompat(DialogActions);
26
+ var DialogContent__default = /*#__PURE__*/_interopDefaultCompat(DialogContent);
27
+ var DialogTitle__default = /*#__PURE__*/_interopDefaultCompat(DialogTitle);
28
+ var Stack__default = /*#__PURE__*/_interopDefaultCompat(Stack);
29
+ var Typography__default = /*#__PURE__*/_interopDefaultCompat(Typography);
30
+
31
+ //
32
+ //
33
+ //
34
+ var ACCENT = '#7353ea';
35
+ var PREVIEW_BG = '#f6f8fb';
36
+ var PREVIEW_BORDER = '#e9ebf0';
37
+ //
38
+ //
39
+ //
40
+ var ArduinoConnectionGuideDialog = function ArduinoConnectionGuideDialog() {
41
+ var intl$1 = intl.useRawEliceIntl();
42
+ var phase = mcuBridge.usePermissionPhase();
43
+ var _useArduinoBridge = _context.useArduinoBridge(),
44
+ connectionIntent = _useArduinoBridge.connectionIntent;
45
+ var open = phase === 'requesting';
46
+ var isUpload = connectionIntent === 'upload';
47
+ /**
48
+ *
49
+ */
50
+ var renderTitle = function renderTitle() {
51
+ return intl$1.formatMessage({
52
+ id: isUpload ? 'exerciseRunner.arduino.connectGuide.title.upload' : 'exerciseRunner.arduino.connectGuide.title.connect'
53
+ });
54
+ };
55
+ /**
56
+ *
57
+ */
58
+ var renderUploadNotice = function renderUploadNotice() {
59
+ if (!isUpload) {
60
+ return null;
61
+ }
62
+ return jsxRuntime.jsx(Alert__default.default, {
63
+ severity: "info",
64
+ variant: "outlined",
65
+ icon: false,
66
+ children: intl$1.formatMessage({
67
+ id: 'exerciseRunner.arduino.connectGuide.upload.note'
68
+ })
69
+ });
70
+ };
71
+ /**
72
+ *
73
+ */
74
+ var renderPreview = function renderPreview() {
75
+ return jsxRuntime.jsxs(Stack__default.default, {
76
+ alignItems: "center",
77
+ spacing: 1.25,
78
+ sx: {
79
+ bgcolor: PREVIEW_BG,
80
+ border: "1px solid ".concat(PREVIEW_BORDER),
81
+ borderRadius: '10px',
82
+ p: '14px'
83
+ },
84
+ children: [jsxRuntime.jsxs(Stack__default.default, {
85
+ direction: "row",
86
+ spacing: 0.75,
87
+ alignItems: "center",
88
+ sx: {
89
+ color: ACCENT
90
+ },
91
+ children: [jsxRuntime.jsx(ArrowUpwardIcon__default.default, {
92
+ sx: {
93
+ fontSize: 11
94
+ }
95
+ }), jsxRuntime.jsx(Typography__default.default, {
96
+ sx: {
97
+ fontSize: 12,
98
+ fontWeight: 700,
99
+ letterSpacing: '-.01em',
100
+ color: ACCENT
101
+ },
102
+ children: intl$1.formatMessage({
103
+ id: 'exerciseRunner.arduino.connectGuide.preview.label'
104
+ })
105
+ })]
106
+ }), jsxRuntime.jsx(ArduinoConnectionGuideDialogNativeMock.default, {})]
107
+ });
108
+ };
109
+ /**
110
+ *
111
+ */
112
+ var renderActions = function renderActions() {
113
+ return jsxRuntime.jsx(DialogActions__default.default, {
114
+ sx: {
115
+ justifyContent: 'flex-start',
116
+ px: 3,
117
+ py: 2
118
+ },
119
+ children: jsxRuntime.jsx(Typography__default.default, {
120
+ variant: "caption",
121
+ color: "text.secondary",
122
+ children: intl$1.formatMessage({
123
+ id: 'exerciseRunner.arduino.connectGuide.footer'
124
+ })
125
+ })
126
+ });
127
+ };
128
+ //
129
+ //
130
+ //
131
+ // No onClose: open state is fully derived from the picker phase.
132
+ return jsxRuntime.jsxs(Dialog__default.default, {
133
+ disableEnforceFocus: true,
134
+ hideBackdrop: true,
135
+ fullWidth: true,
136
+ open: open,
137
+ maxWidth: "sm",
138
+ sx: {
139
+ pointerEvents: 'none'
140
+ },
141
+ PaperProps: {
142
+ sx: {
143
+ pointerEvents: 'auto'
144
+ }
145
+ },
146
+ children: [jsxRuntime.jsx(DialogTitle__default.default, {
147
+ children: renderTitle()
148
+ }), jsxRuntime.jsx(DialogContent__default.default, {
149
+ children: jsxRuntime.jsxs(Stack__default.default, {
150
+ spacing: 2,
151
+ children: [renderUploadNotice(), jsxRuntime.jsx(Typography__default.default, {
152
+ variant: "body2",
153
+ color: "text.secondary",
154
+ children: intl$1.formatMessage({
155
+ id: 'exerciseRunner.arduino.connectGuide.body'
156
+ })
157
+ }), renderPreview(), jsxRuntime.jsx(ArduinoConnectionGuideDialogSteps.default, {})]
158
+ })
159
+ }), renderActions()]
160
+ });
161
+ };
162
+
163
+ exports.default = ArduinoConnectionGuideDialog;
@@ -0,0 +1,3 @@
1
+ import type React from 'react';
2
+ declare const ArduinoConnectionGuideDialogNativeMock: React.VFC;
3
+ export default ArduinoConnectionGuideDialogNativeMock;
@@ -0,0 +1,188 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var intl = require('@elice/intl');
7
+ var LockIcon = require('@mui/icons-material/Lock');
8
+ var Box = require('@mui/material/Box');
9
+ var Stack = require('@mui/material/Stack');
10
+ var Typography = require('@mui/material/Typography');
11
+
12
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
13
+
14
+ var LockIcon__default = /*#__PURE__*/_interopDefaultCompat(LockIcon);
15
+ var Box__default = /*#__PURE__*/_interopDefaultCompat(Box);
16
+ var Stack__default = /*#__PURE__*/_interopDefaultCompat(Stack);
17
+ var Typography__default = /*#__PURE__*/_interopDefaultCompat(Typography);
18
+
19
+ //
20
+ //
21
+ //
22
+ // Mirrors the Chromium serial picker palette so the kid sees what the native
23
+ // browser dialog will look like before it pops. Theme tokens are intentionally
24
+ // not used here — the goal is to imitate the OS chrome, not the app brand.
25
+ var MOCK_BG = '#2a2c30';
26
+ var MOCK_FOOT_BG = '#202124';
27
+ var MOCK_TEXT = '#e8eaed';
28
+ var MOCK_ROW_TEXT = '#cdd0d4';
29
+ var MOCK_BORDER = 'rgba(255,255,255,.08)';
30
+ var MOCK_SEL_BG = '#3367d6';
31
+ var MOCK_BTN_BORDER = 'rgba(255,255,255,.18)';
32
+ var MOCK_BTN_PRIMARY_BG = '#8ab4f8';
33
+ var MOCK_BTN_PRIMARY_TEXT = '#202124';
34
+ var MOCK_HELP_BORDER = 'rgba(255,255,255,.25)';
35
+ var MOCK_HELP_TEXT = '#9aa0a6';
36
+ var SYSTEM_FONT = '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif';
37
+ //
38
+ //
39
+ //
40
+ var ArduinoConnectionGuideDialogNativeMock = function ArduinoConnectionGuideDialogNativeMock() {
41
+ var intl$1 = intl.useRawEliceIntl();
42
+ /**
43
+ *
44
+ */
45
+ var renderHeader = function renderHeader() {
46
+ return jsxRuntime.jsxs(Stack__default.default, {
47
+ direction: "row",
48
+ spacing: 1,
49
+ alignItems: "center",
50
+ sx: {
51
+ pt: '11px',
52
+ pb: '9px',
53
+ px: '14px',
54
+ borderBottom: "1px solid ".concat(MOCK_BORDER),
55
+ color: MOCK_TEXT
56
+ },
57
+ children: [jsxRuntime.jsx(LockIcon__default.default, {
58
+ sx: {
59
+ fontSize: 11,
60
+ color: '#5f6368'
61
+ }
62
+ }), jsxRuntime.jsx(Typography__default.default, {
63
+ noWrap: true,
64
+ sx: {
65
+ fontSize: 12.5,
66
+ fontFamily: SYSTEM_FONT,
67
+ color: MOCK_TEXT
68
+ },
69
+ children: intl$1.formatMessage({
70
+ id: 'exerciseRunner.arduino.connectGuide.preview.host'
71
+ }, {
72
+ host: window.location.host
73
+ })
74
+ })]
75
+ });
76
+ };
77
+ /**
78
+ *
79
+ */
80
+ var renderRows = function renderRows() {
81
+ var rowSx = {
82
+ px: '14px',
83
+ py: '7px',
84
+ fontSize: 12.5,
85
+ color: MOCK_ROW_TEXT,
86
+ fontFamily: SYSTEM_FONT
87
+ };
88
+ return jsxRuntime.jsxs(Stack__default.default, {
89
+ sx: {
90
+ py: '6px'
91
+ },
92
+ children: [jsxRuntime.jsx(Box__default.default, {
93
+ sx: rowSx,
94
+ children: "cu.Bluetooth-Incoming-Port"
95
+ }), jsxRuntime.jsx(Box__default.default, {
96
+ sx: rowSx,
97
+ children: "cu.debug-console"
98
+ }), jsxRuntime.jsx(Box__default.default, {
99
+ sx: Object.assign(Object.assign({}, rowSx), {
100
+ bgcolor: MOCK_SEL_BG,
101
+ color: '#fff',
102
+ fontWeight: 500
103
+ }),
104
+ children: "cu.usbmodem2112401"
105
+ })]
106
+ });
107
+ };
108
+ /**
109
+ *
110
+ */
111
+ var renderFooter = function renderFooter() {
112
+ var btnBaseSx = {
113
+ display: 'inline-flex',
114
+ alignItems: 'center',
115
+ height: 28,
116
+ px: '14px',
117
+ borderRadius: '4px',
118
+ fontSize: 12,
119
+ fontWeight: 500,
120
+ fontFamily: SYSTEM_FONT
121
+ };
122
+ return jsxRuntime.jsxs(Stack__default.default, {
123
+ direction: "row",
124
+ spacing: 1,
125
+ alignItems: "center",
126
+ sx: {
127
+ py: '8px',
128
+ px: '12px',
129
+ bgcolor: MOCK_FOOT_BG,
130
+ borderTop: "1px solid ".concat(MOCK_BORDER)
131
+ },
132
+ children: [jsxRuntime.jsx(Box__default.default, {
133
+ sx: {
134
+ width: 22,
135
+ height: 22,
136
+ borderRadius: '50%',
137
+ border: "1px solid ".concat(MOCK_HELP_BORDER),
138
+ display: 'flex',
139
+ alignItems: 'center',
140
+ justifyContent: 'center',
141
+ fontSize: 11,
142
+ color: MOCK_HELP_TEXT
143
+ },
144
+ children: "?"
145
+ }), jsxRuntime.jsx(Box__default.default, {
146
+ sx: {
147
+ flex: 1
148
+ }
149
+ }), jsxRuntime.jsx(Box__default.default, {
150
+ sx: Object.assign(Object.assign({}, btnBaseSx), {
151
+ border: "1px solid ".concat(MOCK_BTN_BORDER),
152
+ color: MOCK_ROW_TEXT,
153
+ bgcolor: 'transparent'
154
+ }),
155
+ children: intl$1.formatMessage({
156
+ id: 'exerciseRunner.arduino.connectGuide.preview.cancel'
157
+ })
158
+ }), jsxRuntime.jsx(Box__default.default, {
159
+ sx: Object.assign(Object.assign({}, btnBaseSx), {
160
+ border: "1px solid ".concat(MOCK_BTN_PRIMARY_BG),
161
+ bgcolor: MOCK_BTN_PRIMARY_BG,
162
+ color: MOCK_BTN_PRIMARY_TEXT
163
+ }),
164
+ children: intl$1.formatMessage({
165
+ id: 'exerciseRunner.arduino.connectGuide.preview.connect'
166
+ })
167
+ })]
168
+ });
169
+ };
170
+ //
171
+ //
172
+ //
173
+ return jsxRuntime.jsxs(Box__default.default, {
174
+ sx: {
175
+ bgcolor: MOCK_BG,
176
+ color: MOCK_TEXT,
177
+ borderRadius: '8px',
178
+ boxShadow: '0 4px 14px rgba(0,0,0,.25)',
179
+ width: 340,
180
+ maxWidth: '100%',
181
+ border: "1px solid ".concat(MOCK_BORDER),
182
+ overflow: 'hidden'
183
+ },
184
+ children: [renderHeader(), renderRows(), renderFooter()]
185
+ });
186
+ };
187
+
188
+ exports.default = ArduinoConnectionGuideDialogNativeMock;
@@ -0,0 +1,3 @@
1
+ import type React from 'react';
2
+ declare const ArduinoConnectionGuideDialogSteps: React.VFC;
3
+ export default ArduinoConnectionGuideDialogSteps;
@@ -0,0 +1,128 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var intl = require('@elice/intl');
7
+ var Box = require('@mui/material/Box');
8
+ var Stack = require('@mui/material/Stack');
9
+ var Typography = require('@mui/material/Typography');
10
+
11
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
12
+
13
+ var Box__default = /*#__PURE__*/_interopDefaultCompat(Box);
14
+ var Stack__default = /*#__PURE__*/_interopDefaultCompat(Stack);
15
+ var Typography__default = /*#__PURE__*/_interopDefaultCompat(Typography);
16
+
17
+ //
18
+ //
19
+ //
20
+ var ACCENT = '#7353ea';
21
+ var ACCENT_BG = 'rgba(115,83,234,.12)';
22
+ var STEP_CODE_BG = '#f3f5f8';
23
+ var STEP_CODE_BORDER = '#e9ebf0';
24
+ var STEP_KEYS = [1, 2, 3];
25
+ //
26
+ //
27
+ //
28
+ var ArduinoConnectionGuideDialogSteps = function ArduinoConnectionGuideDialogSteps() {
29
+ var intl$1 = intl.useRawEliceIntl();
30
+ /**
31
+ *
32
+ */
33
+ var renderInlineCode = function renderInlineCode(text) {
34
+ return jsxRuntime.jsx(Box__default.default, {
35
+ component: "code",
36
+ sx: {
37
+ fontFamily: 'monospace',
38
+ fontSize: 12,
39
+ fontWeight: 600,
40
+ px: 0.75,
41
+ py: '1px',
42
+ mx: 0.25,
43
+ borderRadius: 0.5,
44
+ bgcolor: STEP_CODE_BG,
45
+ border: "1px solid ".concat(STEP_CODE_BORDER),
46
+ color: ACCENT
47
+ },
48
+ children: text
49
+ });
50
+ };
51
+ /**
52
+ *
53
+ */
54
+ var renderStrong = function renderStrong(text) {
55
+ return jsxRuntime.jsx(Box__default.default, {
56
+ component: "strong",
57
+ sx: {
58
+ color: '#191f28',
59
+ fontWeight: 700
60
+ },
61
+ children: text
62
+ });
63
+ };
64
+ /**
65
+ *
66
+ */
67
+ var renderStepBadge = function renderStepBadge(step) {
68
+ return jsxRuntime.jsx(Box__default.default, {
69
+ "aria-hidden": "true",
70
+ sx: {
71
+ flexShrink: 0,
72
+ width: 22,
73
+ height: 22,
74
+ borderRadius: '50%',
75
+ bgcolor: ACCENT_BG,
76
+ color: ACCENT,
77
+ display: 'inline-flex',
78
+ alignItems: 'center',
79
+ justifyContent: 'center',
80
+ fontSize: 11.5,
81
+ fontWeight: 800,
82
+ mt: '1px'
83
+ },
84
+ children: step
85
+ });
86
+ };
87
+ /**
88
+ *
89
+ */
90
+ var renderStep = function renderStep(step) {
91
+ return jsxRuntime.jsxs(Stack__default.default, {
92
+ direction: "row",
93
+ spacing: 1.25,
94
+ alignItems: "flex-start",
95
+ children: [renderStepBadge(step), jsxRuntime.jsx(Typography__default.default, {
96
+ sx: {
97
+ fontSize: 13.5,
98
+ lineHeight: 1.55,
99
+ color: '#4b5562',
100
+ fontWeight: 500
101
+ },
102
+ children: intl$1.formatMessage({
103
+ id: "exerciseRunner.arduino.connectGuide.steps.".concat(step)
104
+ }, {
105
+ usbmodem: renderInlineCode('usbmodem'),
106
+ usbserial: renderInlineCode('usbserial'),
107
+ connect: renderStrong(intl$1.formatMessage({
108
+ id: 'exerciseRunner.arduino.connectGuide.preview.connect'
109
+ })),
110
+ cancel: renderStrong(intl$1.formatMessage({
111
+ id: 'exerciseRunner.arduino.connectGuide.preview.cancel'
112
+ }))
113
+ })
114
+ })]
115
+ }, step);
116
+ };
117
+ //
118
+ //
119
+ //
120
+ return jsxRuntime.jsx(Stack__default.default, {
121
+ spacing: 1.25,
122
+ children: STEP_KEYS.map(function (step) {
123
+ return renderStep(step);
124
+ })
125
+ });
126
+ };
127
+
128
+ exports.default = ArduinoConnectionGuideDialogSteps;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ArduinoControllerActionCompile: React.FC;
3
+ export default ArduinoControllerActionCompile;