@elice/material-exercise 1.231103.0 → 1.231107.0-gstta.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 +2 -46
- package/cjs/components/material-exercise/MaterialExercise.styled.js +1 -2
- package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +0 -17
- package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +5 -17
- package/cjs/constants/arduino.js +2 -4
- package/cjs/hooks/useExerciseFile.js +0 -17
- package/es/components/material-exercise/MaterialExercise.js +5 -49
- package/es/components/material-exercise/MaterialExercise.styled.js +2 -2
- package/es/components/material-exercise/context/ExerciseIntlProvider.js +2 -18
- package/es/components/material-exercise/context/ExerciseProviderNoImage.js +5 -17
- package/es/constants/arduino.js +1 -2
- package/es/hooks/useExerciseFile.js +2 -18
- package/package.json +4 -4
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +0 -163
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -41
- package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +0 -7
- package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +0 -7
- package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +0 -99
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +0 -7
- package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +0 -7
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +0 -47
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -39
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -146
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +0 -146
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +0 -105
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +0 -202
- package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +0 -61
- package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +0 -7
- package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +0 -7
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +0 -66
- package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +0 -18
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +0 -41
- package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +0 -46
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +0 -592
- package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +0 -224
- package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +0 -30
- package/cjs/components/material-exercise/exercise-room/locales/en.json.js +0 -7
- package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +0 -7
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +0 -451
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +0 -45
- package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +0 -115
- package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +0 -7
- package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +0 -7
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +0 -17
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -16
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +0 -24
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +0 -33
- package/cjs/components/shared/material-modal/MaterialModal.js +0 -39
- package/cjs/components/shared/material-modal/MaterialModal.styled.js +0 -33
- package/cjs/hooks/useUsercodeHistory.js +0 -172
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +0 -154
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -26
- package/es/components/material-exercise/exercise-code-history/locales/en.json.js +0 -3
- package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +0 -3
- package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +0 -90
- package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +0 -3
- package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +0 -3
- package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +0 -38
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -31
- package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -138
- package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +0 -138
- package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +0 -97
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +0 -194
- package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +0 -42
- package/es/components/material-exercise/exercise-menu/locales/en.json.js +0 -3
- package/es/components/material-exercise/exercise-menu/locales/ko.json.js +0 -3
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +0 -58
- package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +0 -10
- package/es/components/material-exercise/exercise-room/ExerciseRoom.js +0 -33
- package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +0 -32
- package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +0 -582
- package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +0 -215
- package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +0 -26
- package/es/components/material-exercise/exercise-room/locales/en.json.js +0 -3
- package/es/components/material-exercise/exercise-room/locales/ko.json.js +0 -3
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +0 -442
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +0 -30
- package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +0 -106
- package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +0 -3
- package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +0 -3
- package/es/components/shared/exercise-version-list/ExerciseVersionList.js +0 -9
- package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -8
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +0 -16
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +0 -22
- package/es/components/shared/material-modal/MaterialModal.js +0 -31
- package/es/components/shared/material-modal/MaterialModal.styled.js +0 -21
- package/es/hooks/useUsercodeHistory.js +0 -168
|
@@ -6,13 +6,11 @@ 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');
|
|
10
9
|
var materialSharedUtils = require('@elice/material-shared-utils');
|
|
11
10
|
var recoil = require('recoil');
|
|
12
11
|
var stylesheets = require('../../constants/stylesheets.js');
|
|
13
|
-
var ExerciseFileTabsFileTreeButton = require('./exercise-file-tabs/ExerciseFileTabsFileTreeButton.js');
|
|
14
12
|
var recoil$1 = require('./context/recoil.js');
|
|
15
|
-
|
|
13
|
+
require('./context/context.js');
|
|
16
14
|
var recoilTypes = require('./context/recoilTypes.js');
|
|
17
15
|
var subjects = require('./context/subjects.js');
|
|
18
16
|
var ExerciseProvider = require('./context/ExerciseProvider.js');
|
|
@@ -21,9 +19,6 @@ require('./exercise-file-tabs/ExerciseFileTabs.js');
|
|
|
21
19
|
var ExerciseFileTabsLazy = require('./exercise-file-tabs/ExerciseFileTabsLazy.js');
|
|
22
20
|
require('./exercise-file-tree/ExerciseFileTree.js');
|
|
23
21
|
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');
|
|
27
22
|
var ExercisePreview = require('./exercise-preview/ExercisePreview.js');
|
|
28
23
|
var ExerciseRightpane = require('./exercise-rightpane/ExerciseRightpane.js');
|
|
29
24
|
var ExerciseRunner = require('./exercise-runner/ExerciseRunner.js');
|
|
@@ -41,9 +36,6 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
41
36
|
* Material exercise.
|
|
42
37
|
*/
|
|
43
38
|
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;
|
|
47
39
|
var _useRecoilValue = recoil.useRecoilValue(recoil$1.exerciseContainerSizeState),
|
|
48
40
|
width = _useRecoilValue.width,
|
|
49
41
|
height = _useRecoilValue.height;
|
|
@@ -64,48 +56,12 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
|
64
56
|
resizeHandles: ['e']
|
|
65
57
|
}), React__default["default"].createElement(MaterialExercise_styled.StyledExerciseFileTreeWrap, null, React__default["default"].createElement(ExerciseFileTreeLazy["default"], null))));
|
|
66
58
|
};
|
|
67
|
-
/**
|
|
68
|
-
* File tree toggle button
|
|
69
|
-
*/
|
|
70
|
-
var renderExerciseFileTreeButton = function renderExerciseFileTreeButton() {
|
|
71
|
-
return React__default["default"].createElement(ExerciseFileTabsFileTreeButton["default"], null);
|
|
72
|
-
};
|
|
73
59
|
/**
|
|
74
60
|
* File tabs
|
|
75
61
|
*/
|
|
76
62
|
var renderExerciseFileTabs = function renderExerciseFileTabs() {
|
|
77
63
|
return React__default["default"].createElement(MaterialExercise_styled.StyledExerciseTabsWrap, null, React__default["default"].createElement(ExerciseFileTabsLazy["default"], null));
|
|
78
64
|
};
|
|
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
|
-
};
|
|
109
65
|
/**
|
|
110
66
|
* Code editor and file viewer
|
|
111
67
|
*/
|
|
@@ -136,7 +92,7 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
|
136
92
|
if (exercise === null || exercise === void 0 ? void 0 : exercise.uiConfig.isEditorDisabled) {
|
|
137
93
|
return null;
|
|
138
94
|
}
|
|
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,
|
|
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));
|
|
140
96
|
};
|
|
141
97
|
/**
|
|
142
98
|
* 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
|
-
|
|
58
|
+
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,6 +81,5 @@ exports.StyledExerciseFileWrap = StyledExerciseFileWrap;
|
|
|
81
81
|
exports.StyledExerciseMain = StyledExerciseMain;
|
|
82
82
|
exports.StyledExerciseRunnerWrap = StyledExerciseRunnerWrap;
|
|
83
83
|
exports.StyledExerciseTabBar = StyledExerciseTabBar;
|
|
84
|
-
exports.StyledExerciseTabMenuWrap = StyledExerciseTabMenuWrap;
|
|
85
84
|
exports.StyledExerciseTabsWrap = StyledExerciseTabsWrap;
|
|
86
85
|
exports.StyledxerciseFileTreeContaner = StyledxerciseFileTreeContaner;
|
|
@@ -27,22 +27,5 @@ 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
|
-
};
|
|
46
30
|
|
|
47
31
|
exports.withExerciseIntlProvider = withExerciseIntlProvider;
|
|
48
|
-
exports.withForwardRefExerciseIntlProvider = withForwardRefExerciseIntlProvider;
|
|
@@ -26,22 +26,6 @@ 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
|
-
//
|
|
45
29
|
return React__default["default"].createElement(StyledProviderNoImage, null, React__default["default"].createElement(blocks.SafeImage, {
|
|
46
30
|
src: imageSrc,
|
|
47
31
|
defaultSrc: "https://static.elice.io/elice-material/exercise/empty-code-purple.png",
|
|
@@ -56,7 +40,11 @@ var ExerciseProviderNoImage = function ExerciseProviderNoImage(_ref) {
|
|
|
56
40
|
role: "white"
|
|
57
41
|
}, text || intl.formatMessage({
|
|
58
42
|
id: 'exerciseContext.provider.noImage.title'
|
|
59
|
-
}))),
|
|
43
|
+
}))), React__default["default"].createElement(blocks.Button, {
|
|
44
|
+
onClick: onButtonClick
|
|
45
|
+
}, buttonText || intl.formatMessage({
|
|
46
|
+
id: 'exerciseContext.provider.noImage.button'
|
|
47
|
+
})));
|
|
60
48
|
};
|
|
61
49
|
//
|
|
62
50
|
//
|
package/cjs/constants/arduino.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var lodash = require('lodash');
|
|
6
6
|
|
|
7
7
|
var ARDUINO_AGENT_PORTS_FROM = 8990;
|
|
8
8
|
var ARDUINO_AGENT_PORTS_TO = 9000;
|
|
9
|
-
var ARDUINO_AGENT_PORTS =
|
|
9
|
+
var ARDUINO_AGENT_PORTS = lodash.range(ARDUINO_AGENT_PORTS_FROM, ARDUINO_AGENT_PORTS_TO + 1);
|
|
10
10
|
var AVR_SIGNATURE = {
|
|
11
11
|
uno: '06d861706dc3a9cad3824cd7c374568eb5d7f55c057bdb72726e0846575b6dc61d0c07e0628f0e51d7828307fefdfce702d8253dde90d67a554f8a795fa2c994469b10971fa2f198956493778fedf9fa4941dc6d9fa07648b477bb6cd27e2a82ea027171036fce1bc87745584a3377a055cedc09486e25de9e005415c4aa38f73b840dac6769ea82fbce2e39ba903b01738ec7cdf4688a255fcf80dfe5cd91cc7c6764133cdd5761be5f7bed3f59a888614aded15c347eceab5d169671bfba10fc0f7a5db07c504271917bdb3075c7b213a3facb915e48dd74077d88c59b94e0ebbff126994831c634f31d3a2d7edc754524b77aabde296a7ca3be13d86ff19a',
|
|
12
12
|
mega: '0011a459acfa1ce1de0509f30691001a90c397c6d4e5d72a618fa54d343ca242d8c9fb7928e48b2e72613fa2614617838b6769f28ee1881e6f91680e4330541ad16621e1cf04013dc96f063df561253fee22315de35f227ad5757a6af38036985e66a9cacf4b5387ebed37f027080ba33d17265c2e47ea7e5b956c36647891e1eadf9d3eda76cac879a28243201947f2855e9460c41dd839bf24dbe0aeea1e16575a539aff9b4d1b053ea171b4bcdbbb6434718283103cb3ff0e059a7096eb61e5465dbb22ebcdd292e999cac8dd9c08707119a3807c210a85a22646b835b4256f633de71348be47638552539043de8c3aeefd8d04d32a72d1fa3210f594775c'
|
|
@@ -61,12 +61,10 @@ var ARDUINO_BOARD_FQBN = {
|
|
|
61
61
|
uno: 'arduino:avr:uno',
|
|
62
62
|
mega: 'arduino:avr:mega'
|
|
63
63
|
};
|
|
64
|
-
var ARDUINO_BAUD_RATES = [300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200];
|
|
65
64
|
|
|
66
65
|
exports.ARDUINO_AGENT_PORTS = ARDUINO_AGENT_PORTS;
|
|
67
66
|
exports.ARDUINO_AGENT_PORTS_FROM = ARDUINO_AGENT_PORTS_FROM;
|
|
68
67
|
exports.ARDUINO_AGENT_PORTS_TO = ARDUINO_AGENT_PORTS_TO;
|
|
69
|
-
exports.ARDUINO_BAUD_RATES = ARDUINO_BAUD_RATES;
|
|
70
68
|
exports.ARDUINO_BOARD_FQBN = ARDUINO_BOARD_FQBN;
|
|
71
69
|
exports.ARDUINO_BOARD_NAMES = ARDUINO_BOARD_NAMES;
|
|
72
70
|
exports.ARDUINO_VENDOR_PRODUCT_IDS = ARDUINO_VENDOR_PRODUCT_IDS;
|
|
@@ -27,22 +27,5 @@ var useExerciseFileEditable = function useExerciseFileEditable(filename) {
|
|
|
27
27
|
});
|
|
28
28
|
}, [filename, exercise, exerciseRoom]);
|
|
29
29
|
};
|
|
30
|
-
/**
|
|
31
|
-
* Check whether the exercise file is resettable.
|
|
32
|
-
*/
|
|
33
|
-
var useExerciseFileResettable = function useExerciseFileResettable(filename) {
|
|
34
|
-
var _useContext2 = React.useContext(context.ExerciseContext),
|
|
35
|
-
materialExerciseId = _useContext2.materialExerciseId,
|
|
36
|
-
exerciseRoomId = _useContext2.exerciseRoomId;
|
|
37
|
-
var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
|
|
38
|
-
var exerciseRoom = recoil.useRecoilValue(recoil$1.exerciseRoomState(exerciseRoomId));
|
|
39
|
-
return React.useMemo(function () {
|
|
40
|
-
return exerciseFile.checkExerciseFileResettable(filename, {
|
|
41
|
-
exercise: exercise,
|
|
42
|
-
exerciseRoom: exerciseRoom
|
|
43
|
-
});
|
|
44
|
-
}, [filename, exercise, exerciseRoom]);
|
|
45
|
-
};
|
|
46
30
|
|
|
47
31
|
exports.useExerciseFileEditable = useExerciseFileEditable;
|
|
48
|
-
exports.useExerciseFileResettable = useExerciseFileResettable;
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import React, { forwardRef } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { IntlProvider } from 'react-intl';
|
|
3
3
|
import { config } from '@elice/api-client';
|
|
4
|
-
import { ResizableNext
|
|
5
|
-
import { eilClassroom } from '@elice/icons';
|
|
4
|
+
import { ResizableNext } from '@elice/blocks';
|
|
6
5
|
import { withForwardRefMaterial } from '@elice/material-shared-utils';
|
|
7
6
|
import { useRecoilValue } from 'recoil';
|
|
8
7
|
import { MATERIAL_RESIZABLE_COMMON_PROPS } from '../../constants/stylesheets.js';
|
|
9
|
-
import ExerciseFileTabsFileTreeButton from './exercise-file-tabs/ExerciseFileTabsFileTreeButton.js';
|
|
10
8
|
import { exerciseContainerSizeState, exerciseState, exerciseFileTreeOpenedState, exercisePreviewTypeState, exercisePreviewDisplayModeState, exerciseMonacoEditorApisState } from './context/recoil.js';
|
|
11
|
-
import
|
|
9
|
+
import './context/context.js';
|
|
12
10
|
import { ExercisePreviewType, ExercisePreviewDisplayMode } from './context/recoilTypes.js';
|
|
13
11
|
import { exerciseRunnerTextSend$ } from './context/subjects.js';
|
|
14
12
|
import ExerciseProvider from './context/ExerciseProvider.js';
|
|
@@ -17,13 +15,10 @@ import './exercise-file-tabs/ExerciseFileTabs.js';
|
|
|
17
15
|
import ExerciseFileTabsLazy from './exercise-file-tabs/ExerciseFileTabsLazy.js';
|
|
18
16
|
import './exercise-file-tree/ExerciseFileTree.js';
|
|
19
17
|
import ExerciseFileTreeLazy from './exercise-file-tree/ExerciseFileTreeLazy.js';
|
|
20
|
-
import ExerciseMenu from './exercise-menu/ExerciseMenu.js';
|
|
21
|
-
import 'react-use';
|
|
22
|
-
import ExerciseMultilangDropdownLazy from './exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js';
|
|
23
18
|
import ExercisePreview from './exercise-preview/ExercisePreview.js';
|
|
24
19
|
import ExerciseRightpane from './exercise-rightpane/ExerciseRightpane.js';
|
|
25
20
|
import ExerciseRunner from './exercise-runner/ExerciseRunner.js';
|
|
26
|
-
import { StyledExerciseContainer, EXERCISE_PREVIEW_MIN_WIDTH, EXERCISE_HORIZONTAL_RATIO, StyledExerciseMain, StyledExerciseFileAndTabWrap, StyledExerciseTabBar, StyledExerciseRunnerWrap, EXERCISE_RUNNER_MIN_HEIGHT, StyledxerciseFileTreeContaner, EXERCISE_FILE_TREE_MIN_WIDTH, StyledExerciseFileTreeWrap, StyledExerciseTabsWrap,
|
|
21
|
+
import { StyledExerciseContainer, EXERCISE_PREVIEW_MIN_WIDTH, EXERCISE_HORIZONTAL_RATIO, StyledExerciseMain, StyledExerciseFileAndTabWrap, StyledExerciseTabBar, StyledExerciseRunnerWrap, EXERCISE_RUNNER_MIN_HEIGHT, StyledxerciseFileTreeContaner, EXERCISE_FILE_TREE_MIN_WIDTH, StyledExerciseFileTreeWrap, StyledExerciseTabsWrap, StyledExerciseFileWrap } from './MaterialExercise.styled.js';
|
|
27
22
|
import * as MaterialExercise_i18n from './MaterialExercise.i18n.js';
|
|
28
23
|
import { en } from './MaterialExercise.i18n.js';
|
|
29
24
|
|
|
@@ -34,9 +29,6 @@ import { en } from './MaterialExercise.i18n.js';
|
|
|
34
29
|
* Material exercise.
|
|
35
30
|
*/
|
|
36
31
|
var MaterialExercise = forwardRef(function (props, ref) {
|
|
37
|
-
var intl = useIntl();
|
|
38
|
-
var _React$useContext = React.useContext(ExerciseContext),
|
|
39
|
-
onReferenceDocsToggle = _React$useContext.onReferenceDocsToggle;
|
|
40
32
|
var _useRecoilValue = useRecoilValue(exerciseContainerSizeState),
|
|
41
33
|
width = _useRecoilValue.width,
|
|
42
34
|
height = _useRecoilValue.height;
|
|
@@ -57,48 +49,12 @@ var MaterialExercise = forwardRef(function (props, ref) {
|
|
|
57
49
|
resizeHandles: ['e']
|
|
58
50
|
}), React.createElement(StyledExerciseFileTreeWrap, null, React.createElement(ExerciseFileTreeLazy, null))));
|
|
59
51
|
};
|
|
60
|
-
/**
|
|
61
|
-
* File tree toggle button
|
|
62
|
-
*/
|
|
63
|
-
var renderExerciseFileTreeButton = function renderExerciseFileTreeButton() {
|
|
64
|
-
return React.createElement(ExerciseFileTabsFileTreeButton, null);
|
|
65
|
-
};
|
|
66
52
|
/**
|
|
67
53
|
* File tabs
|
|
68
54
|
*/
|
|
69
55
|
var renderExerciseFileTabs = function renderExerciseFileTabs() {
|
|
70
56
|
return React.createElement(StyledExerciseTabsWrap, null, React.createElement(ExerciseFileTabsLazy, null));
|
|
71
57
|
};
|
|
72
|
-
/**
|
|
73
|
-
* reference docs toggle button
|
|
74
|
-
*/
|
|
75
|
-
var renderExerciseReferenceDocsToggleButton = function renderExerciseReferenceDocsToggleButton() {
|
|
76
|
-
if (typeof onReferenceDocsToggle !== 'function') {
|
|
77
|
-
return null;
|
|
78
|
-
}
|
|
79
|
-
return React.createElement(React.Fragment, null, React.createElement(Button, {
|
|
80
|
-
size: "micro",
|
|
81
|
-
role: "navy3",
|
|
82
|
-
style: {
|
|
83
|
-
width: '100%'
|
|
84
|
-
},
|
|
85
|
-
onClick: onReferenceDocsToggle
|
|
86
|
-
}, React.createElement(Icon, {
|
|
87
|
-
icon: eilClassroom
|
|
88
|
-
}), React.createElement(Hspace, {
|
|
89
|
-
width: 0.25
|
|
90
|
-
}), intl.formatMessage({
|
|
91
|
-
id: 'materialExercise.button.referenceDocs'
|
|
92
|
-
})), React.createElement(Hspace, {
|
|
93
|
-
width: 0.5
|
|
94
|
-
}));
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* Menu
|
|
98
|
-
*/
|
|
99
|
-
var renderExerciseMenu = function renderExerciseMenu() {
|
|
100
|
-
return React.createElement(StyledExerciseTabMenuWrap, null, renderExerciseReferenceDocsToggleButton(), React.createElement(ExerciseMultilangDropdownLazy, null), React.createElement(ExerciseMenu, null));
|
|
101
|
-
};
|
|
102
58
|
/**
|
|
103
59
|
* Code editor and file viewer
|
|
104
60
|
*/
|
|
@@ -129,7 +85,7 @@ var MaterialExercise = forwardRef(function (props, ref) {
|
|
|
129
85
|
if (exercise === null || exercise === void 0 ? void 0 : exercise.uiConfig.isEditorDisabled) {
|
|
130
86
|
return null;
|
|
131
87
|
}
|
|
132
|
-
return React.createElement(StyledExerciseMain, null, renderExerciseFileTree(), React.createElement(StyledExerciseFileAndTabWrap, null, React.createElement(StyledExerciseTabBar, null,
|
|
88
|
+
return React.createElement(StyledExerciseMain, null, renderExerciseFileTree(), React.createElement(StyledExerciseFileAndTabWrap, null, React.createElement(StyledExerciseTabBar, null, renderExerciseFileTabs()), renderExerciseFile()), React.createElement(ExerciseRightpane, null));
|
|
133
89
|
};
|
|
134
90
|
/**
|
|
135
91
|
* Exercise Runner
|
|
@@ -47,7 +47,7 @@ var StyledExerciseTabBar = styled.div.withConfig({
|
|
|
47
47
|
var StyledExerciseTabsWrap = styled.div.withConfig({
|
|
48
48
|
componentId: "sc-9joi7g-5"
|
|
49
49
|
})(["flex:1;min-width:0;"]);
|
|
50
|
-
|
|
50
|
+
styled.div.withConfig({
|
|
51
51
|
componentId: "sc-9joi7g-6"
|
|
52
52
|
})(["display:flex;justify-content:center;align-items:center;padding:0 0.5rem 0 1rem;background-color:", ";"], base.color.navy8);
|
|
53
53
|
// ========== Exercise FileTree ==========
|
|
@@ -62,4 +62,4 @@ var StyledExerciseRunnerWrap = styled.div.withConfig({
|
|
|
62
62
|
componentId: "sc-9joi7g-9"
|
|
63
63
|
})(["width:100%;height:100%;border-top:", ";"], MATERIAL_DIVIDER_BORDER_VALUE);
|
|
64
64
|
|
|
65
|
-
export { EXERCISE_FILE_TREE_MIN_WIDTH, EXERCISE_HORIZONTAL_RATIO, EXERCISE_PREVIEW_MIN_WIDTH, EXERCISE_RUNNER_MIN_HEIGHT, StyledExerciseContainer, StyledExerciseFileAndTabWrap, StyledExerciseFileTreeWrap, StyledExerciseFileWrap, StyledExerciseMain, StyledExerciseRunnerWrap, StyledExerciseTabBar,
|
|
65
|
+
export { EXERCISE_FILE_TREE_MIN_WIDTH, EXERCISE_HORIZONTAL_RATIO, EXERCISE_PREVIEW_MIN_WIDTH, EXERCISE_RUNNER_MIN_HEIGHT, StyledExerciseContainer, StyledExerciseFileAndTabWrap, StyledExerciseFileTreeWrap, StyledExerciseFileWrap, StyledExerciseMain, StyledExerciseRunnerWrap, StyledExerciseTabBar, StyledExerciseTabsWrap, StyledxerciseFileTreeContaner };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useContext } from 'react';
|
|
2
2
|
import { MaterialIntlProvider } from '@elice/material-shared-utils';
|
|
3
3
|
import { ExerciseContext } from './context.js';
|
|
4
4
|
|
|
@@ -19,21 +19,5 @@ var withExerciseIntlProvider = function withExerciseIntlProvider(Component, phra
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
*/
|
|
25
|
-
var withForwardRefExerciseIntlProvider = function withForwardRefExerciseIntlProvider(Component, phrases) {
|
|
26
|
-
return forwardRef(function (props, ref) {
|
|
27
|
-
var _useContext2 = useContext(ExerciseContext),
|
|
28
|
-
locale = _useContext2.locale;
|
|
29
|
-
return React.createElement(MaterialIntlProvider, {
|
|
30
|
-
children: React.createElement(Component, Object.assign({}, props, {
|
|
31
|
-
ref: ref
|
|
32
|
-
})),
|
|
33
|
-
locale: locale,
|
|
34
|
-
phrases: phrases
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
22
|
|
|
39
|
-
export { withExerciseIntlProvider
|
|
23
|
+
export { withExerciseIntlProvider };
|
|
@@ -17,22 +17,6 @@ var ExerciseProviderNoImage = function ExerciseProviderNoImage(_ref) {
|
|
|
17
17
|
buttonText = _ref.buttonText,
|
|
18
18
|
onButtonClick = _ref.onButtonClick;
|
|
19
19
|
var intl = useIntl();
|
|
20
|
-
/**
|
|
21
|
-
* render action button
|
|
22
|
-
*/
|
|
23
|
-
var renderActionButton = function renderActionButton() {
|
|
24
|
-
if (typeof onButtonClick !== 'function') {
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
return React.createElement(Button, {
|
|
28
|
-
onClick: onButtonClick
|
|
29
|
-
}, buttonText || intl.formatMessage({
|
|
30
|
-
id: 'exerciseContext.provider.noImage.button'
|
|
31
|
-
}));
|
|
32
|
-
};
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
//
|
|
36
20
|
return React.createElement(StyledProviderNoImage, null, React.createElement(SafeImage, {
|
|
37
21
|
src: imageSrc,
|
|
38
22
|
defaultSrc: "https://static.elice.io/elice-material/exercise/empty-code-purple.png",
|
|
@@ -47,7 +31,11 @@ var ExerciseProviderNoImage = function ExerciseProviderNoImage(_ref) {
|
|
|
47
31
|
role: "white"
|
|
48
32
|
}, text || intl.formatMessage({
|
|
49
33
|
id: 'exerciseContext.provider.noImage.title'
|
|
50
|
-
}))),
|
|
34
|
+
}))), React.createElement(Button, {
|
|
35
|
+
onClick: onButtonClick
|
|
36
|
+
}, buttonText || intl.formatMessage({
|
|
37
|
+
id: 'exerciseContext.provider.noImage.button'
|
|
38
|
+
})));
|
|
51
39
|
};
|
|
52
40
|
//
|
|
53
41
|
//
|
package/es/constants/arduino.js
CHANGED
|
@@ -57,6 +57,5 @@ var ARDUINO_BOARD_FQBN = {
|
|
|
57
57
|
uno: 'arduino:avr:uno',
|
|
58
58
|
mega: 'arduino:avr:mega'
|
|
59
59
|
};
|
|
60
|
-
var ARDUINO_BAUD_RATES = [300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200];
|
|
61
60
|
|
|
62
|
-
export { ARDUINO_AGENT_PORTS, ARDUINO_AGENT_PORTS_FROM, ARDUINO_AGENT_PORTS_TO,
|
|
61
|
+
export { ARDUINO_AGENT_PORTS, ARDUINO_AGENT_PORTS_FROM, ARDUINO_AGENT_PORTS_TO, ARDUINO_BOARD_FQBN, ARDUINO_BOARD_NAMES, ARDUINO_VENDOR_PRODUCT_IDS, AVR_COMMANDLINE, AVR_SIGNATURE, DISABLE_TIME_AFTER_UPLOAD };
|
|
@@ -5,7 +5,7 @@ import { ExerciseContext } from '../components/material-exercise/context/context
|
|
|
5
5
|
import '../components/material-exercise/context/recoilTypes.js';
|
|
6
6
|
import '../components/material-exercise/context/subjects.js';
|
|
7
7
|
import '../components/material-exercise/context/ExerciseProvider.js';
|
|
8
|
-
import { checkExerciseFileEditable
|
|
8
|
+
import { checkExerciseFileEditable } from '../utils/exerciseFile.js';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Check whether the exercise file is editable.
|
|
@@ -23,21 +23,5 @@ var useExerciseFileEditable = function useExerciseFileEditable(filename) {
|
|
|
23
23
|
});
|
|
24
24
|
}, [filename, exercise, exerciseRoom]);
|
|
25
25
|
};
|
|
26
|
-
/**
|
|
27
|
-
* Check whether the exercise file is resettable.
|
|
28
|
-
*/
|
|
29
|
-
var useExerciseFileResettable = function useExerciseFileResettable(filename) {
|
|
30
|
-
var _useContext2 = useContext(ExerciseContext),
|
|
31
|
-
materialExerciseId = _useContext2.materialExerciseId,
|
|
32
|
-
exerciseRoomId = _useContext2.exerciseRoomId;
|
|
33
|
-
var exercise = useRecoilValue(exerciseState(materialExerciseId));
|
|
34
|
-
var exerciseRoom = useRecoilValue(exerciseRoomState(exerciseRoomId));
|
|
35
|
-
return useMemo(function () {
|
|
36
|
-
return checkExerciseFileResettable(filename, {
|
|
37
|
-
exercise: exercise,
|
|
38
|
-
exerciseRoom: exerciseRoom
|
|
39
|
-
});
|
|
40
|
-
}, [filename, exercise, exerciseRoom]);
|
|
41
|
-
};
|
|
42
26
|
|
|
43
|
-
export { useExerciseFileEditable
|
|
27
|
+
export { useExerciseFileEditable };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elice/material-exercise",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.231107.0-gstta.0",
|
|
4
4
|
"description": "User view and editing components of Elice material exercise",
|
|
5
5
|
"repository": "https://git.elicer.io/elice/frontend/library/elice-material",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -82,8 +82,8 @@
|
|
|
82
82
|
"@elice/design-tokens": "^1.220803.0",
|
|
83
83
|
"@elice/icons": "^1.230814.0",
|
|
84
84
|
"@elice/markdown": "^1.220815.0",
|
|
85
|
-
"@elice/material-shared-types": "1.
|
|
86
|
-
"@elice/material-shared-utils": "1.
|
|
85
|
+
"@elice/material-shared-types": "1.231026.0",
|
|
86
|
+
"@elice/material-shared-utils": "1.231026.0",
|
|
87
87
|
"@elice/mui-elements": "^5.230825.0",
|
|
88
88
|
"@elice/mui-system": "^5.230825.0",
|
|
89
89
|
"@elice/types": "^1.230815.0",
|
|
@@ -112,5 +112,5 @@
|
|
|
112
112
|
"recoil": "^0.6.1",
|
|
113
113
|
"styled-components": "^5.2.0"
|
|
114
114
|
},
|
|
115
|
-
"gitHead": "
|
|
115
|
+
"gitHead": "28984bc246f5908e16ca48c7d968ac1da40c450c"
|
|
116
116
|
}
|
|
@@ -1,163 +0,0 @@
|
|
|
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;
|