@elice/material-exercise 1.260429.0-improvetimerpopoverui.0 → 1.260430.1

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 +68 -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 +54 -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 +156 -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 +132 -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 +88 -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 +103 -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 +64 -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 +50 -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 +141 -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 +122 -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 +80 -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 +95 -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
@@ -10,13 +10,6 @@ var ExerciseProvider = require('./ExerciseProvider.js');
10
10
 
11
11
  exports.exerciseActiveFilenameState = recoil.exerciseActiveFilenameState;
12
12
  exports.exerciseAibotInfoEnableState = recoil.exerciseAibotInfoEnableState;
13
- exports.exerciseArduinoAgentConnectionState = recoil.exerciseArduinoAgentConnectionState;
14
- exports.exerciseArduinoAgentModalState = recoil.exerciseArduinoAgentModalState;
15
- exports.exerciseArduinoOnSelectPortState = recoil.exerciseArduinoOnSelectPortState;
16
- exports.exerciseArduinoOpenedPortNameState = recoil.exerciseArduinoOpenedPortNameState;
17
- exports.exerciseArduinoPortsState = recoil.exerciseArduinoPortsState;
18
- exports.exerciseArduinoPreferenceState = recoil.exerciseArduinoPreferenceState;
19
- exports.exerciseArduinoUploadProgressState = recoil.exerciseArduinoUploadProgressState;
20
13
  exports.exerciseContainerSizeState = recoil.exerciseContainerSizeState;
21
14
  exports.exerciseEditorPreferenceState = recoil.exerciseEditorPreferenceState;
22
15
  exports.exerciseFileEditorCursorSelectionValueState = recoil.exerciseFileEditorCursorSelectionValueState;
@@ -1,6 +1,5 @@
1
1
  import { ExercisePreviewDisplayMode, ExercisePreviewType } from './recoilTypes';
2
2
  import type { MonacoEditorApis } from "../../shared/monaco-editor";
3
- import type { ArduinoAgentConnectionStatus, ArduinoUploadProgressStatus } from "../../../typings/arduino";
4
3
  import type { AtomContainerSizeState, AtomExerciseRoomState, AtomExerciseState, AtomFileEditorCursorState, AtomLectureState, AtomMultilangEnvironmentJson, AtomMultilangEnvironmentState, AtomRunnerRoomConnectionInfoState, AtomRunnerRunTypeState, AtomRunnerStdioFilesState, AtomUserState, AtomVisibilityState, AtomWebSocketStateKey, AtomWebSocketStates } from './recoilTypes';
5
4
  /**
6
5
  * Lecture.
@@ -84,49 +83,6 @@ export declare const exerciseMultilangEnvironmentState: (param: {
84
83
  materialExerciseId: number;
85
84
  exerciseRoomId: number;
86
85
  }) => import("recoil").RecoilState<AtomMultilangEnvironmentJson>;
87
- /**
88
- * Arduino preference.
89
- */
90
- export declare const exerciseArduinoPreferenceState: import("recoil").RecoilState<Required<{
91
- baudRate: number;
92
- port: string;
93
- }>>;
94
- /**
95
- * Arduino ports.
96
- */
97
- export declare const exerciseArduinoPortsState: import("recoil").RecoilState<{
98
- Name: string;
99
- SerialNumber: string;
100
- DeviceClass: string;
101
- IsOpen: boolean;
102
- IsPrimary: boolean;
103
- Baud: number;
104
- BufferAlgorithm: string;
105
- Ver: string;
106
- NetworkPort: boolean;
107
- VendorID: string;
108
- ProductID: string;
109
- }[]>;
110
- /**
111
- * Opened arduino port.
112
- */
113
- export declare const exerciseArduinoOpenedPortNameState: import("recoil").RecoilState<string | null>;
114
- /**
115
- * Arduino port open handler.
116
- */
117
- export declare const exerciseArduinoOnSelectPortState: import("recoil").RecoilState<(name: string) => void>;
118
- /**
119
- * Arduino agent connection status.
120
- */
121
- export declare const exerciseArduinoAgentConnectionState: import("recoil").RecoilState<ArduinoAgentConnectionStatus>;
122
- /**
123
- * Arduino upload progress.
124
- */
125
- export declare const exerciseArduinoUploadProgressState: import("recoil").RecoilState<ArduinoUploadProgressStatus>;
126
- /**
127
- * Arduino agent modal open status.
128
- */
129
- export declare const exerciseArduinoAgentModalState: import("recoil").RecoilState<boolean>;
130
86
  /**
131
87
  *
132
88
  */
@@ -654,107 +654,6 @@ var exerciseMultilangEnvironmentState = recoil.atomFamily({
654
654
  }
655
655
  });
656
656
  //
657
- // =============== arduino ===============
658
- //
659
- var ARDUINO_ACCOUNT_PREFERENCE_KEY = 'material.exercise.arduino.preference';
660
- var DEFAULT_ARDUINO_PREFERENCE = {
661
- baudRate: 9600,
662
- port: ''
663
- };
664
- /**
665
- * Arduino preference.
666
- */
667
- var exerciseArduinoPreferenceState = recoil.atom({
668
- key: "".concat(KEY_PREFIX, "/Arduino/Preference"),
669
- "default": DEFAULT_ARDUINO_PREFERENCE,
670
- effects: [function (_ref26) {
671
- var trigger = _ref26.trigger,
672
- setSelf = _ref26.setSelf,
673
- onSet = _ref26.onSet;
674
- var get = /*#__PURE__*/function () {
675
- var _ref27 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee1() {
676
- var _t8;
677
- return _rollupPluginBabelHelpers.regenerator().w(function (_context1) {
678
- while (1) switch (_context1.n) {
679
- case 0:
680
- _t8 = setSelf;
681
- _context1.n = 1;
682
- return apiClient.getGlobalAccountPreferenceGet({
683
- pkey: ARDUINO_ACCOUNT_PREFERENCE_KEY
684
- }).then(function (res) {
685
- return Object.assign(Object.assign({}, DEFAULT_ARDUINO_PREFERENCE), res.pvalue);
686
- })["catch"](function () {
687
- return DEFAULT_ARDUINO_PREFERENCE;
688
- });
689
- case 1:
690
- _t8(_context1.v);
691
- case 2:
692
- return _context1.a(2);
693
- }
694
- }, _callee1);
695
- }));
696
- return function get() {
697
- return _ref27.apply(this, arguments);
698
- };
699
- }();
700
- if (trigger === 'get') {
701
- void get();
702
- }
703
- onSet(function (newPreference, prevPreference, isReset) {
704
- if (!isEqual__default.default(newPreference, prevPreference) && !isReset) {
705
- void apiClient.postGlobalAccountPreferenceEdit({
706
- pkey: ARDUINO_ACCOUNT_PREFERENCE_KEY,
707
- pvalue: Object.assign(Object.assign({}, DEFAULT_ARDUINO_PREFERENCE), newPreference)
708
- });
709
- }
710
- });
711
- }]
712
- });
713
- /**
714
- * Arduino ports.
715
- */
716
- var exerciseArduinoPortsState = recoil.atom({
717
- key: "".concat(KEY_PREFIX, "/Arduino/Ports"),
718
- "default": []
719
- });
720
- /**
721
- * Opened arduino port.
722
- */
723
- var exerciseArduinoOpenedPortNameState = recoil.atom({
724
- key: "".concat(KEY_PREFIX, "/Arduino/OpenedPortName"),
725
- "default": null
726
- });
727
- /**
728
- * Arduino port open handler.
729
- */
730
- var exerciseArduinoOnSelectPortState = recoil.atom({
731
- key: "".concat(KEY_PREFIX, "/Arduino/OnSelectPort"),
732
- "default": function _default(_) {
733
- // do nothing.
734
- }
735
- });
736
- /**
737
- * Arduino agent connection status.
738
- */
739
- var exerciseArduinoAgentConnectionState = recoil.atom({
740
- key: "".concat(KEY_PREFIX, "/Arduino/AgentConnection"),
741
- "default": 'disconnected'
742
- });
743
- /**
744
- * Arduino upload progress.
745
- */
746
- var exerciseArduinoUploadProgressState = recoil.atom({
747
- key: "".concat(KEY_PREFIX, "/Arduino/UploadProgressState"),
748
- "default": 'ready'
749
- });
750
- /**
751
- * Arduino agent modal open status.
752
- */
753
- var exerciseArduinoAgentModalState = recoil.atom({
754
- key: "".concat(KEY_PREFIX, "/Arduino/AgentModalState"),
755
- "default": false
756
- });
757
- //
758
657
  // =============== others ===============
759
658
  //
760
659
  /**
@@ -816,13 +715,6 @@ var exerciseMonacoEditorApisState = recoil.atom({
816
715
 
817
716
  exports.exerciseActiveFilenameState = exerciseActiveFilenameState;
818
717
  exports.exerciseAibotInfoEnableState = exerciseAibotInfoEnableState;
819
- exports.exerciseArduinoAgentConnectionState = exerciseArduinoAgentConnectionState;
820
- exports.exerciseArduinoAgentModalState = exerciseArduinoAgentModalState;
821
- exports.exerciseArduinoOnSelectPortState = exerciseArduinoOnSelectPortState;
822
- exports.exerciseArduinoOpenedPortNameState = exerciseArduinoOpenedPortNameState;
823
- exports.exerciseArduinoPortsState = exerciseArduinoPortsState;
824
- exports.exerciseArduinoPreferenceState = exerciseArduinoPreferenceState;
825
- exports.exerciseArduinoUploadProgressState = exerciseArduinoUploadProgressState;
826
718
  exports.exerciseContainerSizeState = exerciseContainerSizeState;
827
719
  exports.exerciseEditorPreferenceState = exerciseEditorPreferenceState;
828
720
  exports.exerciseFileEditorCursorSelectionValueState = exerciseFileEditorCursorSelectionValueState;
@@ -76,13 +76,6 @@ export type AtomMultilangEnvironmentJson = MultilangEnvironmentJson | null;
76
76
  * - `MultilangLanguagesJson`: Ready.
77
77
  */
78
78
  export type AtomMultilangEnvironmentState = MultilangLanguagesJson | undefined | null;
79
- /**
80
- * Arduino preference.
81
- */
82
- export type AtomArduinoPreferenceState = Required<{
83
- baudRate: number;
84
- port: string;
85
- }>;
86
79
  /**
87
80
  *
88
81
  */
@@ -1,4 +1,4 @@
1
- import React from 'react';
2
1
  import type { WithIntlComponentBuilderProps as EliceIntlProps } from '@elice/intl';
2
+ import type React from 'react';
3
3
  declare const _default: React.ForwardRefExoticComponent<Omit<import("@elice/intl").IntlComponentExtraProps & Omit<EliceIntlProps, keyof import("@elice/intl").IntlComponentExtraProps | "__intl">, "ref"> & React.RefAttributes<any>>;
4
4
  export default _default;
@@ -4,44 +4,27 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _styled = require('@emotion/styled/base');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
- var React = require('react');
8
7
  var designTokens = require('@elice/design-tokens');
9
8
  var intl = require('@elice/intl');
10
- var types = require('@elice/types');
11
- var recoil = require('recoil');
12
- var ExerciseMenuArduinoAgentModalButton = require('./ExerciseMenuArduinoAgentModalButton.js');
13
- var ExerciseMenuArduinoSettings = require('./ExerciseMenuArduinoSettings.js');
14
9
  var ExerciseMenuDropdown = require('./ExerciseMenuDropdown.js');
15
10
  var ExerciseMenuReset = require('./ExerciseMenuReset.js');
16
11
  var ExerciseMenuStdioFileBrowser = require('./ExerciseMenuStdioFileBrowser.js');
17
12
  var en = require('./locales/en.json.js');
18
13
  var ko = require('./locales/ko.json.js');
19
- var context = require('../context/context.js');
20
- var recoil$1 = require('../context/recoil.js');
21
14
 
22
15
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
23
16
 
24
17
  var _styled__default = /*#__PURE__*/_interopDefaultCompat(_styled);
25
- var React__default = /*#__PURE__*/_interopDefaultCompat(React);
26
18
 
27
19
  var StyledExerciseMenuWrapper = /*#__PURE__*/_styled__default.default("div", {
28
20
  target: "e16oipg60"
29
21
  })("display:flex;justify-content:center;align-items:center;padding:0 0.5rem 0 1rem;height:2.25rem;gap:0.5rem;background-color:", designTokens.base.color.navy8, ";");
30
22
  var ExerciseMenu = function ExerciseMenu(_ref) {
31
23
  var __intl = _ref.__intl;
32
- var _React$useContext = React__default.default.useContext(context.ExerciseContext),
33
- materialExerciseId = _React$useContext.materialExerciseId;
34
- var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
35
- var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
36
- //
37
- //
38
- //
39
24
  return jsxRuntime.jsx(intl.RawEliceIntlProvider, {
40
25
  value: __intl,
41
26
  children: jsxRuntime.jsxs(StyledExerciseMenuWrapper, {
42
- children: [isArduinoExercise ? jsxRuntime.jsxs(jsxRuntime.Fragment, {
43
- children: [jsxRuntime.jsx(ExerciseMenuArduinoAgentModalButton.default, {}), jsxRuntime.jsx(ExerciseMenuArduinoSettings.default, {})]
44
- }) : jsxRuntime.jsx(ExerciseMenuStdioFileBrowser.default, {}), jsxRuntime.jsx(ExerciseMenuReset.default, {}), jsxRuntime.jsx(ExerciseMenuDropdown.default, {})]
27
+ children: [jsxRuntime.jsx(ExerciseMenuStdioFileBrowser.default, {}), jsxRuntime.jsx(ExerciseMenuReset.default, {}), jsxRuntime.jsx(ExerciseMenuDropdown.default, {})]
45
28
  })
46
29
  });
47
30
  };
@@ -74,7 +74,7 @@ var StyledFilePopoverBodyListItemContentImage = /*#__PURE__*/_styled__default.de
74
74
  styles: "width:100%;max-height:128px;object-fit:contain;cursor:zoom-in",
75
75
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
76
76
  });
77
- var StyledPreferenceBodyItem = /*#__PURE__*/_styled__default.default("div", {
77
+ /*#__PURE__*/_styled__default.default("div", {
78
78
  target: "e8nx2or1"
79
79
  })("production" === "production" ? {
80
80
  name: "10vug81",
@@ -84,7 +84,7 @@ var StyledPreferenceBodyItem = /*#__PURE__*/_styled__default.default("div", {
84
84
  styles: "display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;min-height:2rem;color:white;&:last-child{margin-bottom:0;}",
85
85
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
86
86
  });
87
- var StyledSelect = /*#__PURE__*/_styled__default.default(blocks.Select, {
87
+ /*#__PURE__*/_styled__default.default(blocks.Select, {
88
88
  target: "e8nx2or0"
89
89
  })(">div{background:", designTokens.base.color.navy8, "!important;border-color:", designTokens.base.color.navy7, "!important;}select{padding:0!important;height:2rem!important;color:#fff!important;>option{background:", designTokens.base.color.navy8, "!important;}}");
90
90
 
@@ -98,5 +98,3 @@ exports.StyledFilePopoverBodyListItemDownloadButton = StyledFilePopoverBodyListI
98
98
  exports.StyledFilePopoverContent = StyledFilePopoverContent;
99
99
  exports.StyledFilePopoverHeader = StyledFilePopoverHeader;
100
100
  exports.StyledMenuButtonFileCount = StyledMenuButtonFileCount;
101
- exports.StyledPreferenceBodyItem = StyledPreferenceBodyItem;
102
- exports.StyledSelect = StyledSelect;
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var messageEn = {"exerciseMenu.dropdown.button.tooltip":"More","exerciseMenu.dropdown.item.codeHistory":"Code Revision History","exerciseMenu.dropdown.item.environment":"Environment","exerciseMenu.dropdown.item.preference":"Editor Preferences","exerciseMenu.dropdown.item.room":"Code Sharing","exerciseMenu.dropdown.item.submitHistory":"Execution/Submission History","exerciseMenu.arduino.agent.button":"Having problem with connecting to Arduino?","exerciseMenu.arduino.setting":"Arduino Setting","exerciseMenu.arduino.setting.device":"Device","exerciseMenu.arduino.setting.noDevice":"No device","exerciseMenu.arduino.setting.selectDevice":"Select device","exerciseMenu.arduino.transferSpeed":"Transfer speed","exerciseMenu.reset.button.tooltip.disabled":"The file cannot be reset","exerciseMenu.reset.button.tooltip.enabled":"Reset the file","exerciseMenu.reset.confirmDialog.body":"Are you sure you want to clear all the code you wrote at current file and reset it?","exerciseMenu.reset.confirmDialog.cancel":"Cancel","exerciseMenu.reset.confirmDialog.confirm":"Confirm","exerciseMenu.reset.confirmDialog.title":"Reset the file","exerciseMenu.stdioFileBrowser.button.tooltip":"File","exerciseMenu.stdioFileBrowser.popover.body.placeholder":"Files sent from your code\nappear here.","exerciseMenu.stdioFileBrowser.popover.header":"File"};
5
+ var messageEn = {"exerciseMenu.dropdown.button.tooltip":"More","exerciseMenu.dropdown.item.codeHistory":"Code Revision History","exerciseMenu.dropdown.item.environment":"Environment","exerciseMenu.dropdown.item.preference":"Editor Preferences","exerciseMenu.dropdown.item.room":"Code Sharing","exerciseMenu.dropdown.item.submitHistory":"Execution/Submission History","exerciseMenu.arduino.setting":"Arduino Setting","exerciseMenu.arduino.transferSpeed":"Transfer speed","exerciseMenu.reset.button.tooltip.disabled":"The file cannot be reset","exerciseMenu.reset.button.tooltip.enabled":"Reset the file","exerciseMenu.reset.confirmDialog.body":"Are you sure you want to clear all the code you wrote at current file and reset it?","exerciseMenu.reset.confirmDialog.cancel":"Cancel","exerciseMenu.reset.confirmDialog.confirm":"Confirm","exerciseMenu.reset.confirmDialog.title":"Reset the file","exerciseMenu.stdioFileBrowser.button.tooltip":"File","exerciseMenu.stdioFileBrowser.popover.body.placeholder":"Files sent from your code\nappear here.","exerciseMenu.stdioFileBrowser.popover.header":"File"};
6
6
 
7
7
  exports.default = messageEn;
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var messageKo = {"exerciseMenu.dropdown.button.tooltip":"더 보기","exerciseMenu.dropdown.item.codeHistory":"코드 수정 이력","exerciseMenu.dropdown.item.environment":"실습 환경","exerciseMenu.dropdown.item.preference":"에디터 설정","exerciseMenu.dropdown.item.room":"코드 공유","exerciseMenu.dropdown.item.submitHistory":"실행/제출 이력","exerciseMenu.arduino.agent.button":"아두이노 연결 중 문제가 발생했나요?","exerciseMenu.arduino.setting":"아두이노 세팅","exerciseMenu.arduino.setting.device":"장치","exerciseMenu.arduino.setting.noDevice":"장치 없음","exerciseMenu.arduino.setting.selectDevice":"장치 선택","exerciseMenu.arduino.transferSpeed":"전송 속도","exerciseMenu.reset.button.tooltip.disabled":"해당 파일은 초기화를 할 수 없습니다","exerciseMenu.reset.button.tooltip.enabled":"코드 초기화","exerciseMenu.reset.confirmDialog.body":"작성한 코드를 모두 지우고 초기화하시겠습니까?","exerciseMenu.reset.confirmDialog.cancel":"취소","exerciseMenu.reset.confirmDialog.confirm":"확인","exerciseMenu.reset.confirmDialog.title":"코드 초기화","exerciseMenu.stdioFileBrowser.button.tooltip":"파일","exerciseMenu.stdioFileBrowser.popover.body.placeholder":"코드에서 전송한 파일이\n여기에 표시됩니다.","exerciseMenu.stdioFileBrowser.popover.header":"파일"};
5
+ var messageKo = {"exerciseMenu.dropdown.button.tooltip":"더 보기","exerciseMenu.dropdown.item.codeHistory":"코드 수정 이력","exerciseMenu.dropdown.item.environment":"실습 환경","exerciseMenu.dropdown.item.preference":"에디터 설정","exerciseMenu.dropdown.item.room":"코드 공유","exerciseMenu.dropdown.item.submitHistory":"실행/제출 이력","exerciseMenu.arduino.setting":"아두이노 세팅","exerciseMenu.arduino.transferSpeed":"전송 속도","exerciseMenu.reset.button.tooltip.disabled":"해당 파일은 초기화를 할 수 없습니다","exerciseMenu.reset.button.tooltip.enabled":"코드 초기화","exerciseMenu.reset.confirmDialog.body":"작성한 코드를 모두 지우고 초기화하시겠습니까?","exerciseMenu.reset.confirmDialog.cancel":"취소","exerciseMenu.reset.confirmDialog.confirm":"확인","exerciseMenu.reset.confirmDialog.title":"코드 초기화","exerciseMenu.stdioFileBrowser.button.tooltip":"파일","exerciseMenu.stdioFileBrowser.popover.body.placeholder":"코드에서 전송한 파일이\n여기에 표시됩니다.","exerciseMenu.stdioFileBrowser.popover.header":"파일"};
6
6
 
7
7
  exports.default = messageKo;
@@ -6,7 +6,6 @@ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHel
6
6
  var _styled = require('@emotion/styled/base');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
  var React = require('react');
9
- var reactUse = require('react-use');
10
9
  var apiClient = require('@elice/api-client');
11
10
  var blocks = require('@elice/blocks');
12
11
  var designTokens = require('@elice/design-tokens');
@@ -20,10 +19,10 @@ var ExerciseRunnerController = require('./ExerciseRunnerController.js');
20
19
  var en = require('./locales/en.json.js');
21
20
  var ko = require('./locales/ko.json.js');
22
21
  var recoil$1 = require('../context/recoil.js');
23
- var useArduino = require('../../../hooks/useArduino.js');
24
22
  var useRunnerRoomWebSocket = require('../../../hooks/useRunnerRoomWebSocket.js');
25
23
  var useStdioWebSocket = require('../../../hooks/useStdioWebSocket.js');
26
24
  var subjects = require('../context/subjects.js');
25
+ var ArduinoProvider = require('./arduino/ArduinoProvider.js');
27
26
  var XtermLazy = require('../../shared/xterm/XtermLazy.js');
28
27
  var async = require('../../../utils/async.js');
29
28
  var runner = require('../../../utils/runner.js');
@@ -111,26 +110,8 @@ var ExerciseRunner = function ExerciseRunner(_ref) {
111
110
  var arduinoTextBuffer = React__default.default.useRef('');
112
111
  var runnerRunTypeRef = React__default.default.useRef(runnerRunTypeState);
113
112
  var xterm = React__default.default.useRef(null);
114
- /**
115
- * Handle text received from arduino serial output.
116
- */
117
- var handleArduinoDigitalOutput = function handleArduinoDigitalOutput(text) {
118
- var _a;
119
- (_a = xterm.current) === null || _a === void 0 ? void 0 : _a.write(text);
120
- };
121
- // Arduino
122
- var arduino = useArduino.useArduino({
123
- writeTerminal: handleArduinoDigitalOutput
124
- });
113
+ var arduinoBridgeApi = React__default.default.useRef(null);
125
114
  var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
126
- /**
127
- * Handle destroy arduino client.
128
- */
129
- var handleArduinoDistroy = React__default.default.useCallback(function () {
130
- if (isArduinoExercise) {
131
- arduino.destroy();
132
- }
133
- }, [isArduinoExercise, arduino]);
134
115
  /**
135
116
  * Handle text received from stdio websocket.
136
117
  */
@@ -153,10 +134,11 @@ var ExerciseRunner = function ExerciseRunner(_ref) {
153
134
  * Handle file received from stdio websocket.
154
135
  */
155
136
  var handleWsStdioFileReceive = function handleWsStdioFileReceive(stdioFile) {
137
+ var _a;
156
138
  // arduino exercise
157
139
  if (isArduinoExercise) {
158
140
  if ('filename' in stdioFile && stdioFile.filename.startsWith('firmware') && stdioFile.filename.endsWith('hex')) {
159
- arduino.uploadHexFile(stdioFile);
141
+ (_a = arduinoBridgeApi.current) === null || _a === void 0 ? void 0 : _a.handleIncomingHex(stdioFile.data);
160
142
  }
161
143
  return;
162
144
  }
@@ -416,7 +398,7 @@ var ExerciseRunner = function ExerciseRunner(_ref) {
416
398
  * Handle input requests for arduino.
417
399
  */
418
400
  var handleXtermArduinoInputRequest = function handleXtermArduinoInputRequest(_char) {
419
- var _a, _b, _c;
401
+ var _a, _b, _c, _d;
420
402
  switch (_char) {
421
403
  // backspace
422
404
  case "\x7F":
@@ -427,13 +409,13 @@ var ExerciseRunner = function ExerciseRunner(_ref) {
427
409
  case '\r':
428
410
  if (arduinoTextBuffer.current.length) {
429
411
  (_b = xterm.current) === null || _b === void 0 ? void 0 : _b.write('\r\n');
430
- arduino.sendText(arduinoTextBuffer.current);
412
+ (_c = arduinoBridgeApi.current) === null || _c === void 0 ? void 0 : _c.sendText(arduinoTextBuffer.current);
431
413
  arduinoTextBuffer.current = '';
432
414
  }
433
415
  break;
434
416
  // any char
435
417
  default:
436
- (_c = xterm.current) === null || _c === void 0 ? void 0 : _c.write(_char);
418
+ (_d = xterm.current) === null || _d === void 0 ? void 0 : _d.write(_char);
437
419
  arduinoTextBuffer.current = "".concat(arduinoTextBuffer.current).concat(_char);
438
420
  break;
439
421
  }
@@ -449,24 +431,6 @@ var ExerciseRunner = function ExerciseRunner(_ref) {
449
431
  }
450
432
  };
451
433
  //
452
- // Initialize Arduino devices.
453
- //
454
- React__default.default.useEffect(function () {
455
- if (!isArduinoExercise) {
456
- return;
457
- }
458
- void arduino.init();
459
- return function () {
460
- void arduino.destroy();
461
- };
462
- },
463
- // eslint-disable-next-line react-hooks/exhaustive-deps
464
- [exercise]);
465
- //
466
- // Destroy arduino client when unload window.
467
- //
468
- reactUse.useEvent('beforeunload', handleArduinoDistroy, window);
469
- //
470
434
  // Update runner room websocket state.
471
435
  //
472
436
  React__default.default.useEffect(function () {
@@ -603,23 +567,29 @@ var ExerciseRunner = function ExerciseRunner(_ref) {
603
567
  //
604
568
  //
605
569
  //
570
+ var runnerBody = jsxRuntime.jsxs(ExerciseRunnerContext.ExerciseRunnerContext.Provider, {
571
+ value: {
572
+ onSubmit: handleRunnerSubmit,
573
+ onCancel: handleRunnerCancel,
574
+ onSyncRequest: handleRunnerSyncRequest
575
+ },
576
+ children: [jsxRuntime.jsx(ExerciseRunnerController.default, {}), jsxRuntime.jsxs(blocks.Flex, {
577
+ auto: true,
578
+ style: {
579
+ minHeight: 0
580
+ },
581
+ overflow: "hidden",
582
+ children: [renderPreview(), renderXterm(), renderRunnerSubmitErrorDialog()]
583
+ })]
584
+ });
606
585
  return jsxRuntime.jsx(intl.RawEliceIntlProvider, {
607
586
  value: __intl,
608
587
  children: jsxRuntime.jsx(StyledExerciseRunner, {
609
- children: jsxRuntime.jsxs(ExerciseRunnerContext.ExerciseRunnerContext.Provider, {
610
- value: {
611
- onSubmit: handleRunnerSubmit,
612
- onCancel: handleRunnerCancel,
613
- onSyncRequest: handleRunnerSyncRequest
614
- },
615
- children: [jsxRuntime.jsx(ExerciseRunnerController.default, {}), jsxRuntime.jsxs(blocks.Flex, {
616
- auto: true,
617
- style: {
618
- minHeight: 0
619
- },
620
- overflow: "hidden",
621
- children: [renderPreview(), renderXterm(), renderRunnerSubmitErrorDialog()]
622
- })]
588
+ children: jsxRuntime.jsx(ArduinoProvider.default, {
589
+ enabled: isArduinoExercise,
590
+ xtermRef: xterm,
591
+ apiRef: arduinoBridgeApi,
592
+ children: runnerBody
623
593
  })
624
594
  })
625
595
  });
@@ -9,12 +9,12 @@ var blocks = require('@elice/blocks');
9
9
  var types = require('@elice/types');
10
10
  var recoil = require('recoil');
11
11
  var stylesheets = require('../../../constants/stylesheets.js');
12
- var ExerciseRunnerControllerArduinoAgentModal = require('./ExerciseRunnerControllerArduinoAgentModal.js');
13
- var ExerciseRunnerControllerArduinoStatusMessage = require('./ExerciseRunnerControllerArduinoStatusMessage.js');
14
12
  var ExerciseRunnerControllerButtonGroup = require('./ExerciseRunnerControllerButtonGroup.js');
15
13
  var ExerciseRunnerControllerRunningInfo = require('./ExerciseRunnerControllerRunningInfo.js');
16
14
  var ExerciseRunnerControllerStatusMessage = require('./ExerciseRunnerControllerStatusMessage.js');
17
15
  var ExerciseRunnerControllerTimer = require('./ExerciseRunnerControllerTimer.js');
16
+ var ArduinoControllerButtonGroup = require('./arduino/ArduinoControllerButtonGroup.js');
17
+ var ArduinoControllerStatusMessage = require('./arduino/ArduinoControllerStatusMessage.js');
18
18
  var context = require('../context/context.js');
19
19
  var recoil$1 = require('../context/recoil.js');
20
20
  var useExerciseFile = require('../../../hooks/useExerciseFile.js');
@@ -32,20 +32,47 @@ var ExerciseRunnerController = function ExerciseRunnerController() {
32
32
  var _React$useContext = React__default.default.useContext(context.ExerciseContext),
33
33
  materialExerciseId = _React$useContext.materialExerciseId;
34
34
  var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
35
- var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
36
35
  var activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
37
36
  var isFileEditable = useExerciseFile.useExerciseFileEditable(activeFilename);
37
+ /**
38
+ *
39
+ */
40
+ var renderControllerButtonGroup = function renderControllerButtonGroup() {
41
+ switch (exercise === null || exercise === void 0 ? void 0 : exercise.envType) {
42
+ case types.enums.ExerciseEnvType.Arduino:
43
+ return jsxRuntime.jsx(ArduinoControllerButtonGroup.default, {});
44
+ default:
45
+ return jsxRuntime.jsx(ExerciseRunnerControllerButtonGroup.default, {});
46
+ }
47
+ };
48
+ /**
49
+ *
50
+ */
51
+ var renderControllerStatusMessage = function renderControllerStatusMessage() {
52
+ if (!isFileEditable) {
53
+ return null;
54
+ }
55
+ switch (exercise === null || exercise === void 0 ? void 0 : exercise.envType) {
56
+ case types.enums.ExerciseEnvType.Arduino:
57
+ return jsxRuntime.jsx(ArduinoControllerStatusMessage.default, {});
58
+ default:
59
+ return jsxRuntime.jsx(ExerciseRunnerControllerStatusMessage.default, {});
60
+ }
61
+ };
62
+ //
63
+ //
64
+ //
38
65
  return jsxRuntime.jsxs(StyledController, {
39
66
  children: [jsxRuntime.jsxs(blocks.Flex, {
40
67
  align: "center",
41
- children: [jsxRuntime.jsx(ExerciseRunnerControllerButtonGroup.default, {}), jsxRuntime.jsx(blocks.Hspace, {
68
+ children: [renderControllerButtonGroup(), jsxRuntime.jsx(blocks.Hspace, {
42
69
  width: 1
43
70
  }), jsxRuntime.jsx(ExerciseRunnerControllerRunningInfo.default, {}), jsxRuntime.jsx(ExerciseRunnerControllerTimer.default, {})]
44
- }), isFileEditable ? jsxRuntime.jsxs(blocks.Flex, {
71
+ }), jsxRuntime.jsx(blocks.Flex, {
45
72
  column: true,
46
73
  align: "flex-end",
47
- children: [jsxRuntime.jsx(ExerciseRunnerControllerStatusMessage.default, {}), isArduinoExercise ? jsxRuntime.jsx(ExerciseRunnerControllerArduinoStatusMessage.default, {}) : null]
48
- }) : null, isArduinoExercise ? jsxRuntime.jsx(ExerciseRunnerControllerArduinoAgentModal.default, {}) : null]
74
+ children: renderControllerStatusMessage()
75
+ })]
49
76
  });
50
77
  };
51
78
 
@@ -1,3 +1,3 @@
1
- import React from 'react';
1
+ import type React from 'react';
2
2
  declare const ExerciseRunnerControllerButtonGroup: React.VFC;
3
3
  export default ExerciseRunnerControllerButtonGroup;