@elice/material-exercise 1.231107.0-gstta.1 → 1.231128.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/material-exercise/MaterialExercise.js +46 -2
- package/cjs/components/material-exercise/MaterialExercise.styled.js +2 -1
- package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +17 -0
- package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +17 -5
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +163 -0
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +41 -0
- package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +7 -0
- package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +7 -0
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +7 -1
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +99 -0
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +7 -0
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +7 -0
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +47 -0
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +39 -0
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +146 -0
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +146 -0
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +105 -0
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +202 -0
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +61 -0
- package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +7 -0
- package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +7 -0
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +66 -0
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +18 -0
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +41 -0
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +46 -0
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +592 -0
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +224 -0
- package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +30 -0
- package/cjs/components/material-exercise/exercise-room/locales/en.json.js +7 -0
- package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +7 -0
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +451 -0
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +45 -0
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +115 -0
- package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +7 -0
- package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +7 -0
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +17 -0
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +16 -0
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +24 -0
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +33 -0
- package/cjs/components/shared/file-tabs/FileTab.js +23 -4
- package/cjs/components/shared/material-modal/MaterialModal.js +39 -0
- package/cjs/components/shared/material-modal/MaterialModal.styled.js +33 -0
- package/cjs/constants/arduino.js +4 -2
- package/cjs/hooks/useExerciseFile.js +17 -0
- package/cjs/hooks/useUsercodeHistory.js +172 -0
- package/es/components/material-exercise/MaterialExercise.js +49 -5
- package/es/components/material-exercise/MaterialExercise.styled.js +2 -2
- package/es/components/material-exercise/context/ExerciseIntlProvider.js +18 -2
- package/es/components/material-exercise/context/ExerciseProviderNoImage.js +17 -5
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +154 -0
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +26 -0
- package/es/components/material-exercise/exercise-code-history/locales/en.json.js +3 -0
- package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +3 -0
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +7 -1
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +90 -0
- package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -0
- package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -0
- package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +38 -0
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +31 -0
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +138 -0
- package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +138 -0
- package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +97 -0
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +194 -0
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +42 -0
- package/es/components/material-exercise/exercise-menu/locales/en.json.js +3 -0
- package/es/components/material-exercise/exercise-menu/locales/ko.json.js +3 -0
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +58 -0
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +10 -0
- package/es/components/material-exercise/exercise-room/ExerciseRoom.js +33 -0
- package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +32 -0
- package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +582 -0
- package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +215 -0
- package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +26 -0
- package/es/components/material-exercise/exercise-room/locales/en.json.js +3 -0
- package/es/components/material-exercise/exercise-room/locales/ko.json.js +3 -0
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +442 -0
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +30 -0
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +106 -0
- package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +3 -0
- package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +3 -0
- package/es/components/shared/exercise-version-list/ExerciseVersionList.js +9 -0
- package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +8 -0
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +16 -0
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +22 -0
- package/es/components/shared/file-tabs/FileTab.js +24 -5
- package/es/components/shared/material-modal/MaterialModal.js +31 -0
- package/es/components/shared/material-modal/MaterialModal.styled.js +21 -0
- package/es/constants/arduino.js +2 -1
- package/es/hooks/useExerciseFile.js +18 -2
- package/es/hooks/useUsercodeHistory.js +168 -0
- package/package.json +4 -4
|
@@ -6,11 +6,13 @@ var React = require('react');
|
|
|
6
6
|
var reactIntl = require('react-intl');
|
|
7
7
|
var apiClient = require('@elice/api-client');
|
|
8
8
|
var blocks = require('@elice/blocks');
|
|
9
|
+
var icons = require('@elice/icons');
|
|
9
10
|
var materialSharedUtils = require('@elice/material-shared-utils');
|
|
10
11
|
var recoil = require('recoil');
|
|
11
12
|
var stylesheets = require('../../constants/stylesheets.js');
|
|
13
|
+
var ExerciseFileTabsFileTreeButton = require('./exercise-file-tabs/ExerciseFileTabsFileTreeButton.js');
|
|
12
14
|
var recoil$1 = require('./context/recoil.js');
|
|
13
|
-
require('./context/context.js');
|
|
15
|
+
var context = require('./context/context.js');
|
|
14
16
|
var recoilTypes = require('./context/recoilTypes.js');
|
|
15
17
|
var subjects = require('./context/subjects.js');
|
|
16
18
|
var ExerciseProvider = require('./context/ExerciseProvider.js');
|
|
@@ -19,6 +21,9 @@ require('./exercise-file-tabs/ExerciseFileTabs.js');
|
|
|
19
21
|
var ExerciseFileTabsLazy = require('./exercise-file-tabs/ExerciseFileTabsLazy.js');
|
|
20
22
|
require('./exercise-file-tree/ExerciseFileTree.js');
|
|
21
23
|
var ExerciseFileTreeLazy = require('./exercise-file-tree/ExerciseFileTreeLazy.js');
|
|
24
|
+
var ExerciseMenu = require('./exercise-menu/ExerciseMenu.js');
|
|
25
|
+
require('react-use');
|
|
26
|
+
var ExerciseMultilangDropdownLazy = require('./exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js');
|
|
22
27
|
var ExercisePreview = require('./exercise-preview/ExercisePreview.js');
|
|
23
28
|
var ExerciseRightpane = require('./exercise-rightpane/ExerciseRightpane.js');
|
|
24
29
|
var ExerciseRunner = require('./exercise-runner/ExerciseRunner.js');
|
|
@@ -36,6 +41,9 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
36
41
|
* Material exercise.
|
|
37
42
|
*/
|
|
38
43
|
var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
44
|
+
var intl = reactIntl.useIntl();
|
|
45
|
+
var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
|
|
46
|
+
onReferenceDocsToggle = _React$useContext.onReferenceDocsToggle;
|
|
39
47
|
var _useRecoilValue = recoil.useRecoilValue(recoil$1.exerciseContainerSizeState),
|
|
40
48
|
width = _useRecoilValue.width,
|
|
41
49
|
height = _useRecoilValue.height;
|
|
@@ -56,12 +64,48 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
|
56
64
|
resizeHandles: ['e']
|
|
57
65
|
}), React__default["default"].createElement(MaterialExercise_styled.StyledExerciseFileTreeWrap, null, React__default["default"].createElement(ExerciseFileTreeLazy["default"], null))));
|
|
58
66
|
};
|
|
67
|
+
/**
|
|
68
|
+
* File tree toggle button
|
|
69
|
+
*/
|
|
70
|
+
var renderExerciseFileTreeButton = function renderExerciseFileTreeButton() {
|
|
71
|
+
return React__default["default"].createElement(ExerciseFileTabsFileTreeButton["default"], null);
|
|
72
|
+
};
|
|
59
73
|
/**
|
|
60
74
|
* File tabs
|
|
61
75
|
*/
|
|
62
76
|
var renderExerciseFileTabs = function renderExerciseFileTabs() {
|
|
63
77
|
return React__default["default"].createElement(MaterialExercise_styled.StyledExerciseTabsWrap, null, React__default["default"].createElement(ExerciseFileTabsLazy["default"], null));
|
|
64
78
|
};
|
|
79
|
+
/**
|
|
80
|
+
* reference docs toggle button
|
|
81
|
+
*/
|
|
82
|
+
var renderExerciseReferenceDocsToggleButton = function renderExerciseReferenceDocsToggleButton() {
|
|
83
|
+
if (typeof onReferenceDocsToggle !== 'function') {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(blocks.Button, {
|
|
87
|
+
size: "micro",
|
|
88
|
+
role: "navy3",
|
|
89
|
+
style: {
|
|
90
|
+
width: '100%'
|
|
91
|
+
},
|
|
92
|
+
onClick: onReferenceDocsToggle
|
|
93
|
+
}, React__default["default"].createElement(blocks.Icon, {
|
|
94
|
+
icon: icons.eilClassroom
|
|
95
|
+
}), React__default["default"].createElement(blocks.Hspace, {
|
|
96
|
+
width: 0.25
|
|
97
|
+
}), intl.formatMessage({
|
|
98
|
+
id: 'materialExercise.button.referenceDocs'
|
|
99
|
+
})), React__default["default"].createElement(blocks.Hspace, {
|
|
100
|
+
width: 0.5
|
|
101
|
+
}));
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Menu
|
|
105
|
+
*/
|
|
106
|
+
var renderExerciseMenu = function renderExerciseMenu() {
|
|
107
|
+
return React__default["default"].createElement(MaterialExercise_styled.StyledExerciseTabMenuWrap, null, renderExerciseReferenceDocsToggleButton(), React__default["default"].createElement(ExerciseMultilangDropdownLazy["default"], null), React__default["default"].createElement(ExerciseMenu["default"], null));
|
|
108
|
+
};
|
|
65
109
|
/**
|
|
66
110
|
* Code editor and file viewer
|
|
67
111
|
*/
|
|
@@ -92,7 +136,7 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
|
92
136
|
if (exercise === null || exercise === void 0 ? void 0 : exercise.uiConfig.isEditorDisabled) {
|
|
93
137
|
return null;
|
|
94
138
|
}
|
|
95
|
-
return React__default["default"].createElement(MaterialExercise_styled.StyledExerciseMain, null, renderExerciseFileTree(), React__default["default"].createElement(MaterialExercise_styled.StyledExerciseFileAndTabWrap, null, React__default["default"].createElement(MaterialExercise_styled.StyledExerciseTabBar, null, renderExerciseFileTabs()), renderExerciseFile()), React__default["default"].createElement(ExerciseRightpane["default"], null));
|
|
139
|
+
return React__default["default"].createElement(MaterialExercise_styled.StyledExerciseMain, null, renderExerciseFileTree(), React__default["default"].createElement(MaterialExercise_styled.StyledExerciseFileAndTabWrap, null, React__default["default"].createElement(MaterialExercise_styled.StyledExerciseTabBar, null, renderExerciseFileTreeButton(), renderExerciseFileTabs(), renderExerciseMenu()), renderExerciseFile()), React__default["default"].createElement(ExerciseRightpane["default"], null));
|
|
96
140
|
};
|
|
97
141
|
/**
|
|
98
142
|
* Exercise Runner
|
|
@@ -55,7 +55,7 @@ var StyledExerciseTabBar = styled__default["default"].div.withConfig({
|
|
|
55
55
|
var StyledExerciseTabsWrap = styled__default["default"].div.withConfig({
|
|
56
56
|
componentId: "sc-9joi7g-5"
|
|
57
57
|
})(["flex:1;min-width:0;"]);
|
|
58
|
-
styled__default["default"].div.withConfig({
|
|
58
|
+
var StyledExerciseTabMenuWrap = styled__default["default"].div.withConfig({
|
|
59
59
|
componentId: "sc-9joi7g-6"
|
|
60
60
|
})(["display:flex;justify-content:center;align-items:center;padding:0 0.5rem 0 1rem;background-color:", ";"], designTokens.base.color.navy8);
|
|
61
61
|
// ========== Exercise FileTree ==========
|
|
@@ -81,5 +81,6 @@ exports.StyledExerciseFileWrap = StyledExerciseFileWrap;
|
|
|
81
81
|
exports.StyledExerciseMain = StyledExerciseMain;
|
|
82
82
|
exports.StyledExerciseRunnerWrap = StyledExerciseRunnerWrap;
|
|
83
83
|
exports.StyledExerciseTabBar = StyledExerciseTabBar;
|
|
84
|
+
exports.StyledExerciseTabMenuWrap = StyledExerciseTabMenuWrap;
|
|
84
85
|
exports.StyledExerciseTabsWrap = StyledExerciseTabsWrap;
|
|
85
86
|
exports.StyledxerciseFileTreeContaner = StyledxerciseFileTreeContaner;
|
|
@@ -27,5 +27,22 @@ var withExerciseIntlProvider = function withExerciseIntlProvider(Component, phra
|
|
|
27
27
|
});
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
*
|
|
32
|
+
*/
|
|
33
|
+
var withForwardRefExerciseIntlProvider = function withForwardRefExerciseIntlProvider(Component, phrases) {
|
|
34
|
+
return React.forwardRef(function (props, ref) {
|
|
35
|
+
var _useContext2 = React.useContext(context.ExerciseContext),
|
|
36
|
+
locale = _useContext2.locale;
|
|
37
|
+
return React__default["default"].createElement(materialSharedUtils.MaterialIntlProvider, {
|
|
38
|
+
children: React__default["default"].createElement(Component, Object.assign({}, props, {
|
|
39
|
+
ref: ref
|
|
40
|
+
})),
|
|
41
|
+
locale: locale,
|
|
42
|
+
phrases: phrases
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
};
|
|
30
46
|
|
|
31
47
|
exports.withExerciseIntlProvider = withExerciseIntlProvider;
|
|
48
|
+
exports.withForwardRefExerciseIntlProvider = withForwardRefExerciseIntlProvider;
|
|
@@ -26,6 +26,22 @@ var ExerciseProviderNoImage = function ExerciseProviderNoImage(_ref) {
|
|
|
26
26
|
buttonText = _ref.buttonText,
|
|
27
27
|
onButtonClick = _ref.onButtonClick;
|
|
28
28
|
var intl = reactIntl.useIntl();
|
|
29
|
+
/**
|
|
30
|
+
* render action button
|
|
31
|
+
*/
|
|
32
|
+
var renderActionButton = function renderActionButton() {
|
|
33
|
+
if (typeof onButtonClick !== 'function') {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
return React__default["default"].createElement(blocks.Button, {
|
|
37
|
+
onClick: onButtonClick
|
|
38
|
+
}, buttonText || intl.formatMessage({
|
|
39
|
+
id: 'exerciseContext.provider.noImage.button'
|
|
40
|
+
}));
|
|
41
|
+
};
|
|
42
|
+
//
|
|
43
|
+
//
|
|
44
|
+
//
|
|
29
45
|
return React__default["default"].createElement(StyledProviderNoImage, null, React__default["default"].createElement(blocks.SafeImage, {
|
|
30
46
|
src: imageSrc,
|
|
31
47
|
defaultSrc: "https://static.elice.io/elice-material/exercise/empty-code-purple.png",
|
|
@@ -40,11 +56,7 @@ var ExerciseProviderNoImage = function ExerciseProviderNoImage(_ref) {
|
|
|
40
56
|
role: "white"
|
|
41
57
|
}, text || intl.formatMessage({
|
|
42
58
|
id: 'exerciseContext.provider.noImage.title'
|
|
43
|
-
}))),
|
|
44
|
-
onClick: onButtonClick
|
|
45
|
-
}, buttonText || intl.formatMessage({
|
|
46
|
-
id: 'exerciseContext.provider.noImage.button'
|
|
47
|
-
})));
|
|
59
|
+
}))), renderActionButton());
|
|
48
60
|
};
|
|
49
61
|
//
|
|
50
62
|
//
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var reactIntl = require('react-intl');
|
|
7
|
+
var blocks = require('@elice/blocks');
|
|
8
|
+
var dayjs = require('dayjs');
|
|
9
|
+
var recoil = require('recoil');
|
|
10
|
+
var ExerciseVersionList = require('../../shared/exercise-version-list/ExerciseVersionList.js');
|
|
11
|
+
var ExerciseVersionListItem = require('../../shared/exercise-version-list/ExerciseVersionListItem.js');
|
|
12
|
+
var MaterialModal = require('../../shared/material-modal/MaterialModal.js');
|
|
13
|
+
var MonacoEditorLazy = require('../../shared/monaco-editor/MonacoEditorLazy.js');
|
|
14
|
+
require('../../shared/monaco-editor/MonacoEditorPerferenceForm.js');
|
|
15
|
+
require('monaco-editor/esm/vs/editor/editor.api');
|
|
16
|
+
require('../../shared/monaco-editor/constants/monaco/preferences.js');
|
|
17
|
+
require('react-use');
|
|
18
|
+
require('socket.io-client');
|
|
19
|
+
var recoil$1 = require('../context/recoil.js');
|
|
20
|
+
var context = require('../context/context.js');
|
|
21
|
+
require('../context/recoilTypes.js');
|
|
22
|
+
require('../context/subjects.js');
|
|
23
|
+
require('../context/ExerciseProvider.js');
|
|
24
|
+
require('../../../constants/arduino.js');
|
|
25
|
+
require('@elice/api-client');
|
|
26
|
+
require('@elice/material-shared-utils');
|
|
27
|
+
require('@elice/websocket');
|
|
28
|
+
require('humps');
|
|
29
|
+
var useUsercodeHistory = require('../../../hooks/useUsercodeHistory.js');
|
|
30
|
+
require('lodash/debounce');
|
|
31
|
+
require('ot-text-unicode');
|
|
32
|
+
require('random-words');
|
|
33
|
+
require('unicount');
|
|
34
|
+
var ExerciseIntlProvider = require('../context/ExerciseIntlProvider.js');
|
|
35
|
+
var en = require('./locales/en.json.js');
|
|
36
|
+
var ko = require('./locales/ko.json.js');
|
|
37
|
+
var ExerciseCodeHistory_styled = require('./ExerciseCodeHistory.styled.js');
|
|
38
|
+
|
|
39
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
40
|
+
|
|
41
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
42
|
+
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
43
|
+
|
|
44
|
+
var ExerciseCodeHistory = function ExerciseCodeHistory(_ref) {
|
|
45
|
+
var onHide = _ref.onHide,
|
|
46
|
+
onLoadVersionButtonClick = _ref.onLoadVersionButtonClick;
|
|
47
|
+
var intl = reactIntl.useIntl();
|
|
48
|
+
var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
|
|
49
|
+
exerciseRoomId = _React$useContext.exerciseRoomId;
|
|
50
|
+
var activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
|
|
51
|
+
var preference = recoil.useRecoilValue(recoil$1.exerciseEditorPreferenceState);
|
|
52
|
+
var _useUsercodeHistory = useUsercodeHistory.useUsercodeHistory(exerciseRoomId, activeFilename),
|
|
53
|
+
doc = _useUsercodeHistory.doc,
|
|
54
|
+
ops = _useUsercodeHistory.ops,
|
|
55
|
+
version = _useUsercodeHistory.version,
|
|
56
|
+
latestVersion = _useUsercodeHistory.latestVersion,
|
|
57
|
+
hasMoreVersion = _useUsercodeHistory.hasMoreVersion,
|
|
58
|
+
changeVersion = _useUsercodeHistory.changeVersion,
|
|
59
|
+
loadMoreVersions = _useUsercodeHistory.loadMoreVersions;
|
|
60
|
+
/**
|
|
61
|
+
*
|
|
62
|
+
*/
|
|
63
|
+
var renderVersionList = function renderVersionList() {
|
|
64
|
+
return React__default["default"].createElement(ExerciseVersionList["default"], null, ops.map(function (op) {
|
|
65
|
+
return React__default["default"].createElement(ExerciseVersionListItem["default"], {
|
|
66
|
+
key: op.version,
|
|
67
|
+
selected: version === op.version,
|
|
68
|
+
onClick: function onClick() {
|
|
69
|
+
changeVersion(op.version);
|
|
70
|
+
}
|
|
71
|
+
}, React__default["default"].createElement(blocks.Text, {
|
|
72
|
+
role: "gray3",
|
|
73
|
+
size: "small"
|
|
74
|
+
}, intl.formatMessage({
|
|
75
|
+
id: 'exerciseCodeHistory.op.version'
|
|
76
|
+
}, {
|
|
77
|
+
version: op.version,
|
|
78
|
+
datetime: dayjs__default["default"](op.createdDatetime).format('YYYY.M.DD hh:mm a')
|
|
79
|
+
})));
|
|
80
|
+
}), hasMoreVersion ? React__default["default"].createElement(ExerciseVersionListItem["default"], {
|
|
81
|
+
onClick: loadMoreVersions,
|
|
82
|
+
style: {
|
|
83
|
+
justifyContent: 'center'
|
|
84
|
+
}
|
|
85
|
+
}, React__default["default"].createElement(blocks.Text, {
|
|
86
|
+
role: "white",
|
|
87
|
+
size: "small"
|
|
88
|
+
}, intl.formatMessage({
|
|
89
|
+
id: 'exerciseCodeHistory.button.load.more'
|
|
90
|
+
}))) : null);
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
*
|
|
94
|
+
*/
|
|
95
|
+
var rednerVersionControlColumn = function rednerVersionControlColumn() {
|
|
96
|
+
return React__default["default"].createElement(ExerciseCodeHistory_styled.StyledVersionsWrapper, null, React__default["default"].createElement(ExerciseCodeHistory_styled.StyledVersionRangeInputWrapper, null, React__default["default"].createElement(ExerciseCodeHistory_styled.StyledVersionRangeInput, {
|
|
97
|
+
type: "range",
|
|
98
|
+
min: latestVersion ? latestVersion - ops.length + 1 : 0,
|
|
99
|
+
max: latestVersion !== null && latestVersion !== void 0 ? latestVersion : 0,
|
|
100
|
+
value: version !== null && version !== void 0 ? version : 0,
|
|
101
|
+
onChange: function onChange(e) {
|
|
102
|
+
changeVersion(parseInt(e.target.value, 10));
|
|
103
|
+
}
|
|
104
|
+
})), renderVersionList());
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
*
|
|
108
|
+
*/
|
|
109
|
+
var renderEditorColumn = function renderEditorColumn() {
|
|
110
|
+
if (!activeFilename) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
var uniqueFilePath = "code-history/".concat(exerciseRoomId, "/v").concat(version !== null && version !== void 0 ? version : 0);
|
|
114
|
+
var editorFilename = "".concat(uniqueFilePath, "/").concat(activeFilename);
|
|
115
|
+
return React__default["default"].createElement(ExerciseCodeHistory_styled.StyledEditorWrapper, null, React__default["default"].createElement(ExerciseCodeHistory_styled.StyledFileNameBox, {
|
|
116
|
+
role: "white"
|
|
117
|
+
}, activeFilename), React__default["default"].createElement(MonacoEditorLazy["default"], {
|
|
118
|
+
key: editorFilename,
|
|
119
|
+
defaultValue: doc,
|
|
120
|
+
filename: editorFilename,
|
|
121
|
+
preference: Object.assign(Object.assign({}, preference), {
|
|
122
|
+
readOnly: true,
|
|
123
|
+
scrollBeyondLastLine: false
|
|
124
|
+
})
|
|
125
|
+
}));
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
*
|
|
129
|
+
*/
|
|
130
|
+
var renderFooterButton = function renderFooterButton() {
|
|
131
|
+
if (typeof onLoadVersionButtonClick !== 'function') {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
return React__default["default"].createElement(blocks.Button, {
|
|
135
|
+
size: "small",
|
|
136
|
+
role: "primary",
|
|
137
|
+
onClick: function onClick() {
|
|
138
|
+
onLoadVersionButtonClick(doc);
|
|
139
|
+
}
|
|
140
|
+
}, intl.formatMessage({
|
|
141
|
+
id: 'exerciseCodeHistory.button.load.selectedVersions'
|
|
142
|
+
}));
|
|
143
|
+
};
|
|
144
|
+
//
|
|
145
|
+
//
|
|
146
|
+
//
|
|
147
|
+
return React__default["default"].createElement(MaterialModal["default"], {
|
|
148
|
+
title: intl.formatMessage({
|
|
149
|
+
id: 'exerciseCodeHistory.title'
|
|
150
|
+
}),
|
|
151
|
+
onHide: onHide,
|
|
152
|
+
footer: renderFooterButton()
|
|
153
|
+
}, React__default["default"].createElement(ExerciseCodeHistory_styled.StyledModalContent, null, rednerVersionControlColumn(), renderEditorColumn()));
|
|
154
|
+
};
|
|
155
|
+
//
|
|
156
|
+
//
|
|
157
|
+
//
|
|
158
|
+
var ExerciseCodeHistory$1 = ExerciseIntlProvider.withExerciseIntlProvider(ExerciseCodeHistory, {
|
|
159
|
+
en: en["default"],
|
|
160
|
+
ko: ko["default"]
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
exports["default"] = ExerciseCodeHistory$1;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var blocks = require('@elice/blocks');
|
|
6
|
+
var designTokens = require('@elice/design-tokens');
|
|
7
|
+
var styled = require('styled-components');
|
|
8
|
+
|
|
9
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
|
+
|
|
11
|
+
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
12
|
+
|
|
13
|
+
var cssInputRangeTrack = styled.css(["width:100%;height:0.375rem;cursor:pointer;transition:all 0.2s ease;"]);
|
|
14
|
+
var cssInputRangeThumb = styled.css(["height:1rem;width:1rem;border-radius:50%;background:", ";cursor:pointer;"], designTokens.base.color.primary6);
|
|
15
|
+
var StyledModalContent = styled__default["default"](blocks.Flex).withConfig({
|
|
16
|
+
componentId: "sc-1auppml-0"
|
|
17
|
+
})(["position:absolute;width:100%;height:100%;overflow:hidden;"]);
|
|
18
|
+
var StyledVersionRangeInput = styled__default["default"].input.withConfig({
|
|
19
|
+
componentId: "sc-1auppml-1"
|
|
20
|
+
})(["-webkit-appearance:none;margin:0.5rem 0;width:100%;cursor:pointer;&:focus{outline:none;}&::-webkit-slider-runnable-track{background:", ";", ";}&::-webkit-slider-thumb{-webkit-appearance:none;margin-top:calc((0.375rem - 1rem) / 2);", ";}&:focus::-webkit-slider-runnable-track{background:rgba(", ",0.05);}&::-moz-range-track{background:", ";", ";}&::-moz-range-thumb{", ";}"], designTokens.base.color.navy9, cssInputRangeTrack, cssInputRangeThumb, designTokens.base.color.navy9, designTokens.base.color.navy9, cssInputRangeTrack, cssInputRangeThumb);
|
|
21
|
+
var StyledVersionsWrapper = styled__default["default"](blocks.Flex).withConfig({
|
|
22
|
+
componentId: "sc-1auppml-2"
|
|
23
|
+
})(["flex-direction:column;flex:1 1.75 25rem;position:relative;height:100%;border-right:1px solid ", ";"], designTokens.base.color.navy9);
|
|
24
|
+
var StyledVersionRangeInputWrapper = styled__default["default"](blocks.Flex).withConfig({
|
|
25
|
+
componentId: "sc-1auppml-3"
|
|
26
|
+
})(["height:3rem;padding:1rem;border-bottom:1px solid ", ";"], designTokens.base.color.navy9);
|
|
27
|
+
var StyledEditorWrapper = styled__default["default"](blocks.Flex).withConfig({
|
|
28
|
+
componentId: "sc-1auppml-4"
|
|
29
|
+
})(["flex-direction:column;flex:1 1 auto;width:100%;height:100%;overflow:scroll;"]);
|
|
30
|
+
var StyledFileNameBox = styled__default["default"](blocks.Text).withConfig({
|
|
31
|
+
componentId: "sc-1auppml-5"
|
|
32
|
+
})(["min-height:3rem;height:3rem;line-height:3rem;padding-left:1rem;border-bottom:1px solid ", ";"], designTokens.base.color.navy9);
|
|
33
|
+
|
|
34
|
+
exports.StyledEditorWrapper = StyledEditorWrapper;
|
|
35
|
+
exports.StyledFileNameBox = StyledFileNameBox;
|
|
36
|
+
exports.StyledModalContent = StyledModalContent;
|
|
37
|
+
exports.StyledVersionRangeInput = StyledVersionRangeInput;
|
|
38
|
+
exports.StyledVersionRangeInputWrapper = StyledVersionRangeInputWrapper;
|
|
39
|
+
exports.StyledVersionsWrapper = StyledVersionsWrapper;
|
|
40
|
+
exports.cssInputRangeThumb = cssInputRangeThumb;
|
|
41
|
+
exports.cssInputRangeTrack = cssInputRangeTrack;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var phrasesEn = {"exerciseCodeHistory.button.load.more":"Load more","exerciseCodeHistory.button.load.selectedVersions":"Load selected versions","exerciseCodeHistory.op.version":"Version {version} {datetime}","exerciseCodeHistory.title":"Code revision history"};
|
|
6
|
+
|
|
7
|
+
exports["default"] = phrasesEn;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var phrasesKo = {"exerciseCodeHistory.button.load.more":"더 불러오기","exerciseCodeHistory.button.load.selectedVersions":"선택 버전 불러오기","exerciseCodeHistory.op.version":"버전 {version} {datetime}","exerciseCodeHistory.title":"코드 수정 이력"};
|
|
6
|
+
|
|
7
|
+
exports["default"] = phrasesKo;
|
|
@@ -44,7 +44,13 @@ var ExerciseFileTabs = function ExerciseFileTabs() {
|
|
|
44
44
|
openedTabs = _useRecoilState4[0],
|
|
45
45
|
setOpenedTabs = _useRecoilState4[1];
|
|
46
46
|
var handleCloseTab = function handleCloseTab(path) {
|
|
47
|
-
|
|
47
|
+
var updatedTabs = openedTabs.filter(function (tab) {
|
|
48
|
+
return tab !== path;
|
|
49
|
+
});
|
|
50
|
+
setOpenedTabs(updatedTabs);
|
|
51
|
+
if (activeFilename === path) {
|
|
52
|
+
setActiveFilename(updatedTabs.length > 0 ? updatedTabs[0] : '');
|
|
53
|
+
}
|
|
48
54
|
};
|
|
49
55
|
var handleTabOrderChange = function handleTabOrderChange(currentIndex, movedIndex) {
|
|
50
56
|
var newOpenedTabs = _rollupPluginBabelHelpers.toConsumableArray(openedTabs);
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var reactIntl = require('react-intl');
|
|
8
|
+
var reactUse = require('react-use');
|
|
9
|
+
var blocks = require('@elice/blocks');
|
|
10
|
+
var designTokens = require('@elice/design-tokens');
|
|
11
|
+
var icons = require('@elice/icons');
|
|
12
|
+
var types = require('@elice/types');
|
|
13
|
+
var utils = require('@elice/utils');
|
|
14
|
+
var recoil = require('recoil');
|
|
15
|
+
var styled = require('styled-components');
|
|
16
|
+
var recoil$1 = require('../context/recoil.js');
|
|
17
|
+
var context = require('../context/context.js');
|
|
18
|
+
require('../context/recoilTypes.js');
|
|
19
|
+
require('../context/subjects.js');
|
|
20
|
+
require('../context/ExerciseProvider.js');
|
|
21
|
+
var ExerciseIntlProvider = require('../context/ExerciseIntlProvider.js');
|
|
22
|
+
var fileTreeButton_en = require('./locales/fileTreeButton.en.json.js');
|
|
23
|
+
var fileTreeButton_ko = require('./locales/fileTreeButton.ko.json.js');
|
|
24
|
+
|
|
25
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
26
|
+
|
|
27
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
28
|
+
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
29
|
+
|
|
30
|
+
var ICON_BUTTON_SIZE = '2.25rem';
|
|
31
|
+
var StyledFileTreeButton = styled__default["default"](blocks.IconButton).withConfig({
|
|
32
|
+
componentId: "sc-ohtsjn-0"
|
|
33
|
+
})(["width:", " !important;height:", " !important;border-right:1px solid ", " !important;background-color:", " !important;&:hover{background-color:", " !important;}"], ICON_BUTTON_SIZE, ICON_BUTTON_SIZE, designTokens.base.color.navy7, function (props) {
|
|
34
|
+
return props.active ? designTokens.base.color.navy8 : designTokens.base.color.navy8;
|
|
35
|
+
}, designTokens.base.color.navy9);
|
|
36
|
+
var ExerciseFileTabsFileTreeButton = React.forwardRef(function (_, ref) {
|
|
37
|
+
var intl = reactIntl.useIntl();
|
|
38
|
+
var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
|
|
39
|
+
materialExerciseId = _React$useContext.materialExerciseId;
|
|
40
|
+
var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
|
|
41
|
+
var _useRecoilState = recoil.useRecoilState(recoil$1.exerciseFileTreeOpenedState),
|
|
42
|
+
_useRecoilState2 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState, 2),
|
|
43
|
+
exerciseFileTreeOpened = _useRecoilState2[0],
|
|
44
|
+
setExerciseFileTreeOpened = _useRecoilState2[1];
|
|
45
|
+
/**
|
|
46
|
+
* Handle click.
|
|
47
|
+
*/
|
|
48
|
+
var handleClick = function handleClick() {
|
|
49
|
+
setExerciseFileTreeOpened(function (prev) {
|
|
50
|
+
return !prev;
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
//
|
|
54
|
+
// apply default file tree opened state.
|
|
55
|
+
//
|
|
56
|
+
React__default["default"].useEffect(function () {
|
|
57
|
+
var _a;
|
|
58
|
+
var exerciseUiConfig = utils.eliceApiUiConfigNormalizeHelper('materialExercise', (_a = exercise === null || exercise === void 0 ? void 0 : exercise.uiConfig) !== null && _a !== void 0 ? _a : {});
|
|
59
|
+
setExerciseFileTreeOpened(exerciseUiConfig.editorFileTreeDefaultStatus === types.enums.ExerciseUiConfigEditorFileTreeDefaultStatus.Open);
|
|
60
|
+
},
|
|
61
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
62
|
+
[exercise]);
|
|
63
|
+
//
|
|
64
|
+
//
|
|
65
|
+
//
|
|
66
|
+
var _useHover = reactUse.useHover(function (isHovering) {
|
|
67
|
+
return React__default["default"].createElement("div", null, React__default["default"].createElement(blocks.Tooltip, {
|
|
68
|
+
title: exerciseFileTreeOpened ? intl.formatMessage({
|
|
69
|
+
id: 'exerciseFileTab.fileTreeButton.tooltip.close'
|
|
70
|
+
}) : intl.formatMessage({
|
|
71
|
+
id: 'exerciseFileTab.fileTreeButton.tooltip.open'
|
|
72
|
+
}),
|
|
73
|
+
placement: "bottom-start"
|
|
74
|
+
}, React__default["default"].createElement(StyledFileTreeButton, {
|
|
75
|
+
icon: isHovering ? icons.eilArrowRightwardsDouble : icons.eilFolder,
|
|
76
|
+
iconRotate: !isHovering ? 0 : exerciseFileTreeOpened ? 180 : 0,
|
|
77
|
+
role: "gray3",
|
|
78
|
+
size: "tiny",
|
|
79
|
+
transparent: true,
|
|
80
|
+
border: false,
|
|
81
|
+
hasBorderRadius: false,
|
|
82
|
+
active: exerciseFileTreeOpened,
|
|
83
|
+
onClick: handleClick,
|
|
84
|
+
ref: ref
|
|
85
|
+
})));
|
|
86
|
+
}),
|
|
87
|
+
_useHover2 = _rollupPluginBabelHelpers.slicedToArray(_useHover, 1),
|
|
88
|
+
el = _useHover2[0];
|
|
89
|
+
return (exercise === null || exercise === void 0 ? void 0 : exercise.uiConfig.editorFileTreeDefaultStatus) === types.enums.ExerciseUiConfigEditorFileTreeDefaultStatus.Hide ? null : el;
|
|
90
|
+
});
|
|
91
|
+
//
|
|
92
|
+
//
|
|
93
|
+
//
|
|
94
|
+
var ExerciseFileTabsFileTreeButton$1 = ExerciseIntlProvider.withForwardRefExerciseIntlProvider(ExerciseFileTabsFileTreeButton, {
|
|
95
|
+
en: fileTreeButton_en["default"],
|
|
96
|
+
ko: fileTreeButton_ko["default"]
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
exports["default"] = ExerciseFileTabsFileTreeButton$1;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var designTokens = require('@elice/design-tokens');
|
|
7
|
+
var types = require('@elice/types');
|
|
8
|
+
var recoil = require('recoil');
|
|
9
|
+
var styled = require('styled-components');
|
|
10
|
+
var recoil$1 = require('../context/recoil.js');
|
|
11
|
+
var context = require('../context/context.js');
|
|
12
|
+
require('../context/recoilTypes.js');
|
|
13
|
+
require('../context/subjects.js');
|
|
14
|
+
require('../context/ExerciseProvider.js');
|
|
15
|
+
var ExerciseIntlProvider = require('../context/ExerciseIntlProvider.js');
|
|
16
|
+
var en = require('./locales/en.json.js');
|
|
17
|
+
var ko = require('./locales/ko.json.js');
|
|
18
|
+
var ExerciseMenuArduinoAgentModalButton = require('./ExerciseMenuArduinoAgentModalButton.js');
|
|
19
|
+
var ExerciseMenuArduinoSettings = require('./ExerciseMenuArduinoSettings.js');
|
|
20
|
+
var ExerciseMenuDropdown = require('./ExerciseMenuDropdown.js');
|
|
21
|
+
var ExerciseMenuReset = require('./ExerciseMenuReset.js');
|
|
22
|
+
var ExerciseMenuStdioFileBrowser = require('./ExerciseMenuStdioFileBrowser.js');
|
|
23
|
+
|
|
24
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
25
|
+
|
|
26
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
27
|
+
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
28
|
+
|
|
29
|
+
var StyledExerciseMenuWrapper = styled__default["default"].div.withConfig({
|
|
30
|
+
componentId: "sc-1gf6m87-0"
|
|
31
|
+
})(["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);
|
|
32
|
+
var ExerciseMenu = function ExerciseMenu() {
|
|
33
|
+
var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
|
|
34
|
+
materialExerciseId = _React$useContext.materialExerciseId;
|
|
35
|
+
var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
|
|
36
|
+
var isArduinoExercise = (exercise === null || exercise === void 0 ? void 0 : exercise.envType) === types.enums.ExerciseEnvType.Arduino;
|
|
37
|
+
//
|
|
38
|
+
//
|
|
39
|
+
//
|
|
40
|
+
return React__default["default"].createElement(StyledExerciseMenuWrapper, null, isArduinoExercise ? React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(ExerciseMenuArduinoAgentModalButton["default"], null), React__default["default"].createElement(ExerciseMenuArduinoSettings["default"], null)) : React__default["default"].createElement(ExerciseMenuStdioFileBrowser["default"], null), React__default["default"].createElement(ExerciseMenuReset["default"], null), React__default["default"].createElement(ExerciseMenuDropdown["default"], null));
|
|
41
|
+
};
|
|
42
|
+
var ExerciseMenu$1 = ExerciseIntlProvider.withExerciseIntlProvider(ExerciseMenu, {
|
|
43
|
+
en: en["default"],
|
|
44
|
+
ko: ko["default"]
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
exports["default"] = ExerciseMenu$1;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var reactIntl = require('react-intl');
|
|
7
|
+
var blocks = require('@elice/blocks');
|
|
8
|
+
var icons = require('@elice/icons');
|
|
9
|
+
var recoil = require('recoil');
|
|
10
|
+
var recoil$1 = require('../context/recoil.js');
|
|
11
|
+
require('../context/context.js');
|
|
12
|
+
require('../context/recoilTypes.js');
|
|
13
|
+
require('../context/subjects.js');
|
|
14
|
+
require('../context/ExerciseProvider.js');
|
|
15
|
+
|
|
16
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
17
|
+
|
|
18
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
19
|
+
|
|
20
|
+
var ExerciseMenuArduinoAgentModalButton = function ExerciseMenuArduinoAgentModalButton() {
|
|
21
|
+
var setOpen = recoil.useSetRecoilState(recoil$1.exerciseArduinoAgentModalState);
|
|
22
|
+
var handleClick = function handleClick() {
|
|
23
|
+
setOpen(true);
|
|
24
|
+
};
|
|
25
|
+
return React__default["default"].createElement(blocks.Button, {
|
|
26
|
+
size: "micro",
|
|
27
|
+
role: "warning",
|
|
28
|
+
icon: React__default["default"].createElement(blocks.Icon, {
|
|
29
|
+
icon: icons.eilStatusDanger
|
|
30
|
+
}),
|
|
31
|
+
iconAlign: "left",
|
|
32
|
+
border: false,
|
|
33
|
+
onClick: handleClick
|
|
34
|
+
}, React__default["default"].createElement(reactIntl.FormattedMessage, {
|
|
35
|
+
id: "exerciseMenu.arduino.agent.button"
|
|
36
|
+
}));
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
exports["default"] = ExerciseMenuArduinoAgentModalButton;
|