@elice/material-exercise 1.231102.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.
Files changed (87) 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/constants/arduino.js +2 -4
  6. package/cjs/hooks/useExerciseFile.js +0 -17
  7. package/es/components/material-exercise/MaterialExercise.js +5 -49
  8. package/es/components/material-exercise/MaterialExercise.styled.js +2 -2
  9. package/es/components/material-exercise/context/ExerciseIntlProvider.js +2 -18
  10. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +5 -17
  11. package/es/constants/arduino.js +1 -2
  12. package/es/hooks/useExerciseFile.js +2 -18
  13. package/package.json +4 -4
  14. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +0 -163
  15. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -41
  16. package/cjs/components/material-exercise/exercise-code-history/locales/en.json.js +0 -7
  17. package/cjs/components/material-exercise/exercise-code-history/locales/ko.json.js +0 -7
  18. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +0 -99
  19. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +0 -7
  20. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +0 -7
  21. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +0 -47
  22. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -39
  23. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -146
  24. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +0 -146
  25. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +0 -105
  26. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +0 -202
  27. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +0 -61
  28. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +0 -7
  29. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +0 -7
  30. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +0 -66
  31. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +0 -18
  32. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +0 -41
  33. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +0 -46
  34. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +0 -592
  35. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +0 -224
  36. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +0 -30
  37. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +0 -7
  38. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +0 -7
  39. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +0 -451
  40. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +0 -45
  41. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +0 -115
  42. package/cjs/components/material-exercise/exercise-submit-history/locales/en.json.js +0 -7
  43. package/cjs/components/material-exercise/exercise-submit-history/locales/ko.json.js +0 -7
  44. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +0 -17
  45. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -16
  46. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +0 -24
  47. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +0 -33
  48. package/cjs/components/shared/material-modal/MaterialModal.js +0 -39
  49. package/cjs/components/shared/material-modal/MaterialModal.styled.js +0 -33
  50. package/cjs/hooks/useUsercodeHistory.js +0 -172
  51. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +0 -154
  52. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -26
  53. package/es/components/material-exercise/exercise-code-history/locales/en.json.js +0 -3
  54. package/es/components/material-exercise/exercise-code-history/locales/ko.json.js +0 -3
  55. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +0 -90
  56. package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +0 -3
  57. package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +0 -3
  58. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +0 -38
  59. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -31
  60. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -138
  61. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +0 -138
  62. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +0 -97
  63. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +0 -194
  64. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +0 -42
  65. package/es/components/material-exercise/exercise-menu/locales/en.json.js +0 -3
  66. package/es/components/material-exercise/exercise-menu/locales/ko.json.js +0 -3
  67. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +0 -58
  68. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +0 -10
  69. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +0 -33
  70. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +0 -32
  71. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +0 -582
  72. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +0 -215
  73. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +0 -26
  74. package/es/components/material-exercise/exercise-room/locales/en.json.js +0 -3
  75. package/es/components/material-exercise/exercise-room/locales/ko.json.js +0 -3
  76. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +0 -442
  77. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +0 -30
  78. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +0 -106
  79. package/es/components/material-exercise/exercise-submit-history/locales/en.json.js +0 -3
  80. package/es/components/material-exercise/exercise-submit-history/locales/ko.json.js +0 -3
  81. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +0 -9
  82. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -8
  83. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +0 -16
  84. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +0 -22
  85. package/es/components/shared/material-modal/MaterialModal.js +0 -31
  86. package/es/components/shared/material-modal/MaterialModal.styled.js +0 -21
  87. package/es/hooks/useUsercodeHistory.js +0 -168
@@ -1,41 +0,0 @@
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;
@@ -1,7 +0,0 @@
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;
@@ -1,7 +0,0 @@
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;
@@ -1,99 +0,0 @@
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;
@@ -1,7 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var phrasesEn = {"exerciseFileTab.fileTreeButton.tooltip.close":"Close Filetree","exerciseFileTab.fileTreeButton.tooltip.open":"Open Filetree"};
6
-
7
- exports["default"] = phrasesEn;
@@ -1,7 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var phrasesKo = {"exerciseFileTab.fileTreeButton.tooltip.close":"파일 트리 닫기","exerciseFileTab.fileTreeButton.tooltip.open":"파일 트리 열기"};
6
-
7
- exports["default"] = phrasesKo;
@@ -1,47 +0,0 @@
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;
@@ -1,39 +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 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;
@@ -1,146 +0,0 @@
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 blocks = require('@elice/blocks');
8
- var icons = require('@elice/icons');
9
- var recoil = require('recoil');
10
- var ExerciseMenuButton = require('../../shared/exercise-menu-button/ExerciseMenuButton.js');
11
- var arduino = require('../../../constants/arduino.js');
12
- var arduino$1 = require('../../../utils/arduino.js');
13
- var recoil$1 = require('../context/recoil.js');
14
- require('../context/context.js');
15
- require('../context/recoilTypes.js');
16
- require('../context/subjects.js');
17
- require('../context/ExerciseProvider.js');
18
- var ExerciseMenuStdioFileBrowser_styled = require('./ExerciseMenuStdioFileBrowser.styled.js');
19
-
20
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
-
22
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
23
-
24
- var ExerciseMenuArduinoSettings = function ExerciseMenuArduinoSettings() {
25
- var _React$useState = React__default["default"].useState(false),
26
- _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
27
- open = _React$useState2[0],
28
- setOpen = _React$useState2[1];
29
- var anchorRef = React__default["default"].useRef(null);
30
- var ports = recoil.useRecoilValue(recoil$1.exerciseArduinoPortsState);
31
- var _useRecoilState = recoil.useRecoilState(recoil$1.exerciseArduinoPreferenceState),
32
- _useRecoilState2 = _rollupPluginBabelHelpers.slicedToArray(_useRecoilState, 2),
33
- preference = _useRecoilState2[0],
34
- setPreference = _useRecoilState2[1];
35
- var openedPort = recoil.useRecoilValue(recoil$1.exerciseArduinoOpenedPortNameState);
36
- var onSelectPort = recoil.useRecoilValue(recoil$1.exerciseArduinoOnSelectPortState);
37
- /**
38
- * List of stdio files.
39
- */
40
- var renderStdioFileList = function renderStdioFileList() {
41
- return React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledFilePopoverBodyList, null, React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledPreferenceBodyItem, null, React__default["default"].createElement(blocks.Text, {
42
- role: "gray3",
43
- block: true,
44
- size: "small"
45
- }, "\uC804\uC1A1 \uC18D\uB3C4"), React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledSelect, {
46
- value: preference.baudRate,
47
- size: "small",
48
- width: "xsmall",
49
- onChange: function onChange(value) {
50
- setPreference(Object.assign(Object.assign({}, preference), {
51
- baudRate: value
52
- }));
53
- }
54
- }, arduino.ARDUINO_BAUD_RATES.map(function (baudRate) {
55
- return React__default["default"].createElement("option", {
56
- key: baudRate,
57
- value: baudRate
58
- }, baudRate);
59
- }))), React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledPreferenceBodyItem, null, React__default["default"].createElement(blocks.Text, {
60
- role: "gray3",
61
- block: true,
62
- size: "small"
63
- }, "\uC7A5\uCE58"), React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledSelect, {
64
- value: openedPort !== null && openedPort !== void 0 ? openedPort : '',
65
- size: "small",
66
- width: "xsmall",
67
- onChange: function onChange(value) {
68
- onSelectPort(value);
69
- }
70
- }, ports.length === 0 ? React__default["default"].createElement("option", {
71
- value: "",
72
- disabled: true
73
- }, "\uC7A5\uCE58 \uC5C6\uC74C") : React__default["default"].createElement("option", {
74
- value: "",
75
- disabled: true
76
- }, "\uC7A5\uCE58 \uC120\uD0DD"), ports.map(function (port) {
77
- return React__default["default"].createElement("option", {
78
- key: port.Name,
79
- value: port.Name
80
- }, "".concat(arduino$1.getDisplayName(port), "@").concat(port.Name));
81
- }))));
82
- };
83
- /**
84
- * Popover header.
85
- */
86
- var renderStdioFilePopoverHeader = function renderStdioFilePopoverHeader() {
87
- return React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledFilePopoverHeader, null, React__default["default"].createElement(blocks.Text, {
88
- role: "white",
89
- bold: true
90
- }, React__default["default"].createElement(blocks.Flex, {
91
- align: "center"
92
- }, "\uC544\uB450\uC774\uB178 \uC124\uC815")), React__default["default"].createElement(blocks.IconButton, {
93
- icon: icons.eilMathsignMultiplyBasic,
94
- role: "white",
95
- size: "micro",
96
- border: false,
97
- transparent: true,
98
- onClick: function onClick() {
99
- return setOpen(false);
100
- }
101
- }));
102
- };
103
- /**
104
- * Popover body.
105
- */
106
- var renderStdioFilePopoverBody = function renderStdioFilePopoverBody() {
107
- return React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledFilePopoverBody, {
108
- children: renderStdioFileList()
109
- });
110
- };
111
- /**
112
- * Popover.
113
- */
114
- var renderStdioFilePopover = function renderStdioFilePopover() {
115
- return React__default["default"].createElement(blocks.Popover, {
116
- open: open,
117
- anchorEl: anchorRef.current,
118
- placement: "bottom-end",
119
- style: {
120
- zIndex: 99
121
- }
122
- }, React__default["default"].createElement(ExerciseMenuStdioFileBrowser_styled.StyledFilePopoverContent, null, renderStdioFilePopoverHeader(), renderStdioFilePopoverBody()));
123
- };
124
- /**
125
- * Popover toggle button.
126
- */
127
- var renderStdioFilePopoverToggleButton = function renderStdioFilePopoverToggleButton() {
128
- return React__default["default"].createElement(ExerciseMenuButton["default"], {
129
- icon: icons.eilMaterialTypeArduino,
130
- title: "\uC544\uB450\uC774\uB178 \uC124\uC815",
131
- active: open,
132
- onClick: function onClick() {
133
- return setOpen(function (prev) {
134
- return !prev;
135
- });
136
- },
137
- ref: anchorRef
138
- });
139
- };
140
- //
141
- //
142
- //
143
- return React__default["default"].createElement(React__default["default"].Fragment, null, renderStdioFilePopover(), renderStdioFilePopoverToggleButton());
144
- };
145
-
146
- exports["default"] = ExerciseMenuArduinoSettings;
@@ -1,146 +0,0 @@
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 blocks = require('@elice/blocks');
9
- var icons = require('@elice/icons');
10
- var types = require('@elice/types');
11
- var recoil = require('recoil');
12
- var ExerciseMenuButton = require('../../shared/exercise-menu-button/ExerciseMenuButton.js');
13
- var recoil$1 = require('../context/recoil.js');
14
- var context = require('../context/context.js');
15
- require('../context/recoilTypes.js');
16
- var subjects = require('../context/subjects.js');
17
- require('../context/ExerciseProvider.js');
18
- var ExerciseCodeHistory = require('../exercise-code-history/ExerciseCodeHistory.js');
19
- var ExerciseRoom = require('../exercise-room/ExerciseRoom.js');
20
- var ExerciseSubmitHistory = require('../exercise-submit-history/ExerciseSubmitHistory.js');
21
-
22
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
-
24
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
-
26
- var ExerciseMenuDropdown = function ExerciseMenuDropdown() {
27
- var intl = reactIntl.useIntl();
28
- var _React$useContext = React__default["default"].useContext(context.ExerciseContext),
29
- materialExerciseId = _React$useContext.materialExerciseId;
30
- var user = recoil.useRecoilValue(recoil$1.exerciseUserState);
31
- var exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
32
- var lecture = recoil.useRecoilValue(recoil$1.exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise._lectureId));
33
- var activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
34
- var setRightpaneActiveState = recoil.useSetRecoilState(recoil$1.exerciseRightpaneActiveState);
35
- var _React$useState = React__default["default"].useState(false),
36
- _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
37
- isSubmitHistoryModalOpen = _React$useState2[0],
38
- setIsSubmitHistoryModalOpen = _React$useState2[1];
39
- var _React$useState3 = React__default["default"].useState(false),
40
- _React$useState4 = _rollupPluginBabelHelpers.slicedToArray(_React$useState3, 2),
41
- isCodeHistoryModalOpen = _React$useState4[0],
42
- setIsCodeHistoryModalOpen = _React$useState4[1];
43
- var _React$useState5 = React__default["default"].useState(false),
44
- _React$useState6 = _rollupPluginBabelHelpers.slicedToArray(_React$useState5, 2),
45
- isExerciseRoomModalOpen = _React$useState6[0],
46
- setIsExerciseRoomModalOpen = _React$useState6[1];
47
- var isLectureTestInProgress = typeof (lecture === null || lecture === void 0 ? void 0 : lecture.testAdmissionStatus) !== 'undefined' && lecture.testAdmissionStatus === types.enums.TestAdmissionStatus.InProgress;
48
- /**
49
- *
50
- */
51
- var renderSumbitHistoryModal = function renderSumbitHistoryModal() {
52
- if (!isSubmitHistoryModalOpen) {
53
- return null;
54
- }
55
- return React__default["default"].createElement(ExerciseSubmitHistory["default"], {
56
- onHide: function onHide() {
57
- return setIsSubmitHistoryModalOpen(false);
58
- }
59
- });
60
- };
61
- /**
62
- *
63
- */
64
- var renderCodeHistoryModal = function renderCodeHistoryModal() {
65
- if (!isCodeHistoryModalOpen) {
66
- return null;
67
- }
68
- return React__default["default"].createElement(ExerciseCodeHistory["default"], {
69
- onHide: function onHide() {
70
- return setIsCodeHistoryModalOpen(false);
71
- },
72
- onLoadVersionButtonClick: function onLoadVersionButtonClick(content) {
73
- subjects.exerciseFileEditorContentChange$.next(content);
74
- setIsCodeHistoryModalOpen(false);
75
- }
76
- });
77
- };
78
- /**
79
- *
80
- */
81
- var renderExerciseRoomModal = function renderExerciseRoomModal() {
82
- if (!isExerciseRoomModalOpen) {
83
- return null;
84
- }
85
- return React__default["default"].createElement(ExerciseRoom["default"], {
86
- onHide: function onHide() {
87
- return setIsExerciseRoomModalOpen(false);
88
- }
89
- });
90
- };
91
- //
92
- //
93
- //
94
- return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(blocks.ButtonMenu, {
95
- menuItemProps: [{
96
- label: intl.formatMessage({
97
- id: 'exerciseMenu.dropdown.item.environment'
98
- }),
99
- onClick: function onClick() {
100
- return setRightpaneActiveState('environment');
101
- }
102
- }, {
103
- label: intl.formatMessage({
104
- id: 'exerciseMenu.dropdown.item.preference'
105
- }),
106
- onClick: function onClick() {
107
- return setRightpaneActiveState('preference');
108
- }
109
- }, {
110
- label: intl.formatMessage({
111
- id: 'exerciseMenu.dropdown.item.codeHistory'
112
- }),
113
- disabled: !user,
114
- onClick: function onClick() {
115
- return setIsCodeHistoryModalOpen(true);
116
- }
117
- }, {
118
- label: intl.formatMessage({
119
- id: 'exerciseMenu.dropdown.item.submitHistory'
120
- }),
121
- disabled: !user || !activeFilename,
122
- onClick: function onClick() {
123
- return setIsSubmitHistoryModalOpen(true);
124
- }
125
- }, {
126
- label: intl.formatMessage({
127
- id: 'exerciseMenu.dropdown.item.room'
128
- }),
129
- disabled: isLectureTestInProgress,
130
- onClick: function onClick() {
131
- return setIsExerciseRoomModalOpen(true);
132
- }
133
- }],
134
- size: "xsmall",
135
- placement: "bottom-end",
136
- dark: true,
137
- shadow: true
138
- }, React__default["default"].createElement(ExerciseMenuButton["default"], {
139
- icon: icons.eilMoreVertical,
140
- title: intl.formatMessage({
141
- id: 'exerciseMenu.dropdown.button.tooltip'
142
- })
143
- })), renderSumbitHistoryModal(), renderCodeHistoryModal(), renderExerciseRoomModal());
144
- };
145
-
146
- exports["default"] = ExerciseMenuDropdown;
@@ -1,105 +0,0 @@
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 blocks = require('@elice/blocks');
9
- var icons = require('@elice/icons');
10
- var recoil = require('recoil');
11
- var ExerciseMenuButton = require('../../shared/exercise-menu-button/ExerciseMenuButton.js');
12
- require('react-use');
13
- require('socket.io-client');
14
- var recoil$1 = require('../context/recoil.js');
15
- require('../context/context.js');
16
- require('../context/recoilTypes.js');
17
- var subjects = require('../context/subjects.js');
18
- require('../context/ExerciseProvider.js');
19
- require('../../../constants/arduino.js');
20
- var useExerciseFile = require('../../../hooks/useExerciseFile.js');
21
- require('@elice/api-client');
22
- require('@elice/material-shared-utils');
23
- require('@elice/websocket');
24
- require('humps');
25
- require('ot-text-unicode');
26
- require('lodash/debounce');
27
- require('random-words');
28
- require('unicount');
29
-
30
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
31
-
32
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
33
-
34
- var ExerciseMenuReset = function ExerciseMenuReset() {
35
- var intl = reactIntl.useIntl();
36
- var _useState = React.useState(false),
37
- _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
38
- isDialogOpen = _useState2[0],
39
- setDialogOpen = _useState2[1];
40
- var activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
41
- var isFileResettable = useExerciseFile.useExerciseFileResettable(activeFilename);
42
- /**
43
- * Reset the active file.
44
- */
45
- var handleReset = function handleReset() {
46
- subjects.exerciseFileEditorContentChange$.next(null);
47
- setDialogOpen(false);
48
- };
49
- /**
50
- * Reset button.
51
- */
52
- var renderResetButton = function renderResetButton() {
53
- return React__default["default"].createElement(ExerciseMenuButton["default"], {
54
- icon: icons.eilReset,
55
- active: isDialogOpen,
56
- title: isFileResettable ? intl.formatMessage({
57
- id: 'exerciseMenu.reset.button.tooltip.enabled'
58
- }) : intl.formatMessage({
59
- id: 'exerciseMenu.reset.button.tooltip.disabled'
60
- }),
61
- disabled: !isFileResettable,
62
- onClick: function onClick() {
63
- return setDialogOpen(function (isOpen) {
64
- return !isOpen;
65
- });
66
- }
67
- });
68
- };
69
- /**
70
- * Reset confirm dialog.
71
- */
72
- var renderResetConfirmDialog = function renderResetConfirmDialog() {
73
- if (!isDialogOpen) {
74
- return null;
75
- }
76
- return React__default["default"].createElement(blocks.Dialog, {
77
- type: "warning",
78
- title: intl.formatMessage({
79
- id: 'exerciseMenu.reset.confirmDialog.title'
80
- }),
81
- body: intl.formatMessage({
82
- id: 'exerciseMenu.reset.confirmDialog.body'
83
- }),
84
- onHide: function onHide() {
85
- return setDialogOpen(false);
86
- }
87
- }, React__default["default"].createElement(blocks.Dialog.CloseButton, {
88
- onClick: function onClick() {
89
- return setDialogOpen(false);
90
- }
91
- }, React__default["default"].createElement(reactIntl.FormattedMessage, {
92
- id: "exerciseMenu.reset.confirmDialog.cancel"
93
- })), React__default["default"].createElement(blocks.Dialog.ActionButton, {
94
- onClick: handleReset
95
- }, React__default["default"].createElement(reactIntl.FormattedMessage, {
96
- id: "exerciseMenu.reset.confirmDialog.confirm"
97
- })));
98
- };
99
- //
100
- //
101
- //
102
- return React__default["default"].createElement(React__default["default"].Fragment, null, renderResetButton(), renderResetConfirmDialog());
103
- };
104
-
105
- exports["default"] = ExerciseMenuReset;