@elice/material-exercise 1.231103.0 → 1.231107.0-gstta.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 (91) hide show
  1. package/cjs/components/material-exercise/MaterialExercise.js +2 -46
  2. package/cjs/components/material-exercise/MaterialExercise.styled.js +1 -2
  3. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +0 -17
  4. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +5 -17
  5. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +1 -7
  6. package/cjs/components/shared/file-tabs/FileTab.js +4 -23
  7. package/cjs/constants/arduino.js +2 -4
  8. package/cjs/hooks/useExerciseFile.js +0 -17
  9. package/es/components/material-exercise/MaterialExercise.js +5 -49
  10. package/es/components/material-exercise/MaterialExercise.styled.js +2 -2
  11. package/es/components/material-exercise/context/ExerciseIntlProvider.js +2 -18
  12. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +5 -17
  13. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +1 -7
  14. package/es/components/shared/file-tabs/FileTab.js +5 -24
  15. package/es/constants/arduino.js +1 -2
  16. package/es/hooks/useExerciseFile.js +2 -18
  17. package/package.json +4 -4
  18. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +0 -163
  19. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -41
  20. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +0 -7
  21. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +0 -7
  22. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +0 -99
  23. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +0 -7
  24. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +0 -7
  25. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +0 -47
  26. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -39
  27. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -146
  28. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +0 -146
  29. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +0 -105
  30. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +0 -202
  31. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +0 -61
  32. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +0 -7
  33. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +0 -7
  34. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +0 -66
  35. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +0 -18
  36. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +0 -41
  37. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +0 -46
  38. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +0 -592
  39. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +0 -224
  40. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +0 -30
  41. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +0 -7
  42. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +0 -7
  43. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +0 -451
  44. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +0 -45
  45. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +0 -115
  46. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +0 -7
  47. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +0 -7
  48. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +0 -17
  49. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -16
  50. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +0 -24
  51. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +0 -33
  52. package/cjs/components/shared/material-modal/MaterialModal.js +0 -39
  53. package/cjs/components/shared/material-modal/MaterialModal.styled.js +0 -33
  54. package/cjs/hooks/useUsercodeHistory.js +0 -172
  55. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +0 -154
  56. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -26
  57. package/es/components/material-exercise/exercise-code-history/locales/en.json.js +0 -3
  58. package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +0 -3
  59. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +0 -90
  60. package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +0 -3
  61. package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +0 -3
  62. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +0 -38
  63. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -31
  64. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -138
  65. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +0 -138
  66. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +0 -97
  67. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +0 -194
  68. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +0 -42
  69. package/es/components/material-exercise/exercise-menu/locales/en.json.js +0 -3
  70. package/es/components/material-exercise/exercise-menu/locales/ko.json.js +0 -3
  71. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +0 -58
  72. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +0 -10
  73. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +0 -33
  74. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +0 -32
  75. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +0 -582
  76. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +0 -215
  77. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +0 -26
  78. package/es/components/material-exercise/exercise-room/locales/en.json.js +0 -3
  79. package/es/components/material-exercise/exercise-room/locales/ko.json.js +0 -3
  80. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +0 -442
  81. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +0 -30
  82. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +0 -106
  83. package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +0 -3
  84. package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +0 -3
  85. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +0 -9
  86. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -8
  87. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +0 -16
  88. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +0 -22
  89. package/es/components/shared/material-modal/MaterialModal.js +0 -31
  90. package/es/components/shared/material-modal/MaterialModal.styled.js +0 -21
  91. 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
- var context = require('./context/context.js');
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, renderExerciseFileTreeButton(), renderExerciseFileTabs(), renderExerciseMenu()), renderExerciseFile()), React__default["default"].createElement(ExerciseRightpane["default"], 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
- var StyledExerciseTabMenuWrap = styled__default["default"].div.withConfig({
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
- }))), renderActionButton());
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
  //
@@ -44,13 +44,7 @@ var ExerciseFileTabs = function ExerciseFileTabs() {
44
44
  openedTabs = _useRecoilState4[0],
45
45
  setOpenedTabs = _useRecoilState4[1];
46
46
  var handleCloseTab = function handleCloseTab(path) {
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
- }
47
+ //
54
48
  };
55
49
  var handleTabOrderChange = function handleTabOrderChange(currentIndex, movedIndex) {
56
50
  var newOpenedTabs = _rollupPluginBabelHelpers.toConsumableArray(openedTabs);
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
6
  var React = require('react');
7
- var icons = require('@elice/icons');
8
7
  var FileIcon = require('../file-icon/FileIcon.js');
9
8
  var FileTab_styled = require('./FileTab.styled.js');
10
9
 
@@ -23,9 +22,9 @@ var FileTab = function FileTab(_a) {
23
22
  _a$active = _a.active,
24
23
  active = _a$active === void 0 ? false : _a$active,
25
24
  _a$hovered = _a.hovered,
26
- hovered = _a$hovered === void 0 ? false : _a$hovered,
27
- onClose = _a.onClose,
28
- eventListeners = tslib.__rest(_a, ["fullname", "chunks", "filename", "isFilenameDuplicated", "active", "hovered", "onClose"]);
25
+ hovered = _a$hovered === void 0 ? false : _a$hovered;
26
+ _a.onClose;
27
+ var eventListeners = tslib.__rest(_a, ["fullname", "chunks", "filename", "isFilenameDuplicated", "active", "hovered", "onClose"]);
29
28
  var tabElRef = React__default["default"].useRef(null);
30
29
  //
31
30
  // Scroll into view.
@@ -77,24 +76,6 @@ var FileTab = function FileTab(_a) {
77
76
  var renderTabFile = function renderTabFile() {
78
77
  return React__default["default"].createElement(FileTab_styled.StyledTabLabel, null, renderTabFileIcon(), renderTabFileName(), renderTabFileDirName());
79
78
  };
80
- /**
81
- * Tab close icon
82
- */
83
- var renderTabCloseButton = function renderTabCloseButton() {
84
- return React__default["default"].createElement(FileTab_styled.StyledTabCloseButton, {
85
- icon: icons.eilMathsignMultiplyBasic,
86
- role: "gray5",
87
- size: "nano",
88
- transparent: true,
89
- border: false,
90
- onClick: function onClick(e) {
91
- e.stopPropagation();
92
- if (typeof onClose === 'function') {
93
- onClose();
94
- }
95
- }
96
- });
97
- };
98
79
  //
99
80
  //
100
81
  //
@@ -108,7 +89,7 @@ var FileTab = function FileTab(_a) {
108
89
  title: "~/".concat(fullname),
109
90
  tabIndex: -1,
110
91
  ref: tabElRef
111
- }), React__default["default"].createElement(FileTab_styled.StyledTabContent, null, renderTabFile(), renderTabCloseButton()), React__default["default"].createElement(FileTab_styled.StyledTabActiveBorder, null));
92
+ }), React__default["default"].createElement(FileTab_styled.StyledTabContent, null, renderTabFile()), React__default["default"].createElement(FileTab_styled.StyledTabActiveBorder, null));
112
93
  };
113
94
 
114
95
  exports["default"] = FileTab;
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _ = require('lodash');
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 = _.range(ARDUINO_AGENT_PORTS_FROM, ARDUINO_AGENT_PORTS_TO + 1);
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 { useIntl, IntlProvider } from 'react-intl';
2
+ import { IntlProvider } from 'react-intl';
3
3
  import { config } from '@elice/api-client';
4
- import { ResizableNext, Button, Icon, Hspace } from '@elice/blocks';
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 { ExerciseContext } from './context/context.js';
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, StyledExerciseTabMenuWrap, StyledExerciseFileWrap } from './MaterialExercise.styled.js';
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, renderExerciseFileTreeButton(), renderExerciseFileTabs(), renderExerciseMenu()), renderExerciseFile()), React.createElement(ExerciseRightpane, 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
- var StyledExerciseTabMenuWrap = styled.div.withConfig({
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, StyledExerciseTabMenuWrap, StyledExerciseTabsWrap, StyledxerciseFileTreeContaner };
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, { forwardRef, useContext } from '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, withForwardRefExerciseIntlProvider };
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
- }))), renderActionButton());
34
+ }))), React.createElement(Button, {
35
+ onClick: onButtonClick
36
+ }, buttonText || intl.formatMessage({
37
+ id: 'exerciseContext.provider.noImage.button'
38
+ })));
51
39
  };
52
40
  //
53
41
  //
@@ -35,13 +35,7 @@ var ExerciseFileTabs = function ExerciseFileTabs() {
35
35
  openedTabs = _useRecoilState4[0],
36
36
  setOpenedTabs = _useRecoilState4[1];
37
37
  var handleCloseTab = function handleCloseTab(path) {
38
- var updatedTabs = openedTabs.filter(function (tab) {
39
- return tab !== path;
40
- });
41
- setOpenedTabs(updatedTabs);
42
- if (activeFilename === path) {
43
- setActiveFilename(updatedTabs.length > 0 ? updatedTabs[0] : '');
44
- }
38
+ //
45
39
  };
46
40
  var handleTabOrderChange = function handleTabOrderChange(currentIndex, movedIndex) {
47
41
  var newOpenedTabs = _toConsumableArray(openedTabs);
@@ -1,8 +1,7 @@
1
1
  import { __rest } from 'tslib';
2
2
  import React from 'react';
3
- import { eilMathsignMultiplyBasic } from '@elice/icons';
4
3
  import FileIcon from '../file-icon/FileIcon.js';
5
- import { StyledTab, StyledTabContent, StyledTabActiveBorder, StyledTabLabel, StyledTabCloseButton, StyledTabLabelFilename, StyledTabLabelDirname } from './FileTab.styled.js';
4
+ import { StyledTab, StyledTabContent, StyledTabActiveBorder, StyledTabLabel, StyledTabLabelFilename, StyledTabLabelDirname } from './FileTab.styled.js';
6
5
 
7
6
  var EMPTY_CHUNKS = [];
8
7
  var FileTab = function FileTab(_a) {
@@ -15,9 +14,9 @@ var FileTab = function FileTab(_a) {
15
14
  _a$active = _a.active,
16
15
  active = _a$active === void 0 ? false : _a$active,
17
16
  _a$hovered = _a.hovered,
18
- hovered = _a$hovered === void 0 ? false : _a$hovered,
19
- onClose = _a.onClose,
20
- eventListeners = __rest(_a, ["fullname", "chunks", "filename", "isFilenameDuplicated", "active", "hovered", "onClose"]);
17
+ hovered = _a$hovered === void 0 ? false : _a$hovered;
18
+ _a.onClose;
19
+ var eventListeners = __rest(_a, ["fullname", "chunks", "filename", "isFilenameDuplicated", "active", "hovered", "onClose"]);
21
20
  var tabElRef = React.useRef(null);
22
21
  //
23
22
  // Scroll into view.
@@ -69,24 +68,6 @@ var FileTab = function FileTab(_a) {
69
68
  var renderTabFile = function renderTabFile() {
70
69
  return React.createElement(StyledTabLabel, null, renderTabFileIcon(), renderTabFileName(), renderTabFileDirName());
71
70
  };
72
- /**
73
- * Tab close icon
74
- */
75
- var renderTabCloseButton = function renderTabCloseButton() {
76
- return React.createElement(StyledTabCloseButton, {
77
- icon: eilMathsignMultiplyBasic,
78
- role: "gray5",
79
- size: "nano",
80
- transparent: true,
81
- border: false,
82
- onClick: function onClick(e) {
83
- e.stopPropagation();
84
- if (typeof onClose === 'function') {
85
- onClose();
86
- }
87
- }
88
- });
89
- };
90
71
  //
91
72
  //
92
73
  //
@@ -100,7 +81,7 @@ var FileTab = function FileTab(_a) {
100
81
  title: "~/".concat(fullname),
101
82
  tabIndex: -1,
102
83
  ref: tabElRef
103
- }), React.createElement(StyledTabContent, null, renderTabFile(), renderTabCloseButton()), React.createElement(StyledTabActiveBorder, null));
84
+ }), React.createElement(StyledTabContent, null, renderTabFile()), React.createElement(StyledTabActiveBorder, null));
104
85
  };
105
86
 
106
87
  export { FileTab as default };
@@ -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, ARDUINO_BAUD_RATES, ARDUINO_BOARD_FQBN, ARDUINO_BOARD_NAMES, ARDUINO_VENDOR_PRODUCT_IDS, AVR_COMMANDLINE, AVR_SIGNATURE, DISABLE_TIME_AFTER_UPLOAD };
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, checkExerciseFileResettable } from '../utils/exerciseFile.js';
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, useExerciseFileResettable };
27
+ export { useExerciseFileEditable };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elice/material-exercise",
3
- "version": "1.231103.0",
3
+ "version": "1.231107.0-gstta.1",
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.231103.0",
86
- "@elice/material-shared-utils": "1.231103.0",
85
+ "@elice/material-shared-types": "1.231107.0-gstta.1",
86
+ "@elice/material-shared-utils": "1.231107.0-gstta.1",
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": "f617fd87ac50d26998ed038719439b76d438158b"
115
+ "gitHead": "b4e8b01e64df173df4537ec88119ef9c444f577f"
116
116
  }