@elice/material-exercise 1.260305.0 → 1.260429.0-improvetimerpopoverui.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 +113 -17
- package/cjs/components/material-exercise/context/ExerciseProvider.d.ts +3 -1
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +52 -7
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +1 -1
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +18 -2
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.d.ts +1 -0
- package/cjs/components/shared/file-tabs/FileTab.js +70 -8
- package/cjs/components/shared/file-tabs/FileTabs.js +24 -3
- package/cjs/components/shared/file-tree/FileTreeListItemContent.js +103 -14
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +24 -3
- package/cjs/components/shared/file-tree/FileTreeListItems.js +28 -3
- package/cjs/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +7 -2
- package/cjs/components/shared/material-modal/MaterialModal.d.ts +1 -0
- package/cjs/components/shared/material-modal/MaterialModal.js +34 -6
- package/es/components/material-exercise/MaterialExercise.js +97 -2
- package/es/components/material-exercise/context/ExerciseProvider.d.ts +3 -1
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +46 -2
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +1 -1
- package/es/components/shared/exercise-version-list/ExerciseVersionList.js +13 -1
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.d.ts +1 -0
- package/es/components/shared/file-tabs/FileTab.js +62 -1
- package/es/components/shared/file-tabs/FileTabs.js +21 -1
- package/es/components/shared/file-tree/FileTreeListItemContent.js +90 -2
- package/es/components/shared/file-tree/FileTreeListItemContentInput.js +21 -1
- package/es/components/shared/file-tree/FileTreeListItems.js +22 -1
- package/es/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +5 -1
- package/es/components/shared/material-modal/MaterialModal.d.ts +1 -0
- package/es/components/shared/material-modal/MaterialModal.js +26 -2
- package/package.json +26 -17
- package/cjs/components/material-exercise/MaterialExercise.styled.d.ts +0 -66
- package/cjs/components/material-exercise/MaterialExercise.styled.js +0 -119
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.d.ts +0 -24
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -62
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.d.ts +0 -5
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -22
- package/cjs/components/shared/file-tabs/FileTab.styled.d.ts +0 -33
- package/cjs/components/shared/file-tabs/FileTab.styled.js +0 -77
- package/cjs/components/shared/file-tabs/FileTabs.styled.d.ts +0 -12
- package/cjs/components/shared/file-tabs/FileTabs.styled.js +0 -31
- package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.d.ts +0 -62
- package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +0 -108
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.d.ts +0 -7
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +0 -31
- package/cjs/components/shared/file-tree/FileTreeListItems.styled.d.ts +0 -8
- package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +0 -32
- package/cjs/components/shared/file-tree/FileTreeToolbar.styled.d.ts +0 -4
- package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +0 -14
- package/cjs/components/shared/material-modal/MaterialModal.styled.d.ts +0 -20
- package/cjs/components/shared/material-modal/MaterialModal.styled.js +0 -39
- package/es/components/material-exercise/MaterialExercise.styled.d.ts +0 -66
- package/es/components/material-exercise/MaterialExercise.styled.js +0 -100
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.d.ts +0 -24
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -49
- package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.d.ts +0 -5
- package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -16
- package/es/components/shared/file-tabs/FileTab.styled.d.ts +0 -33
- package/es/components/shared/file-tabs/FileTab.styled.js +0 -65
- package/es/components/shared/file-tabs/FileTabs.styled.d.ts +0 -12
- package/es/components/shared/file-tabs/FileTabs.styled.js +0 -24
- package/es/components/shared/file-tree/FileTreeListItemContent.styled.d.ts +0 -62
- package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +0 -94
- package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.d.ts +0 -7
- package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +0 -24
- package/es/components/shared/file-tree/FileTreeListItems.styled.d.ts +0 -8
- package/es/components/shared/file-tree/FileTreeListItems.styled.js +0 -25
- package/es/components/shared/file-tree/FileTreeToolbar.styled.d.ts +0 -4
- package/es/components/shared/file-tree/FileTreeToolbar.styled.js +0 -8
- package/es/components/shared/material-modal/MaterialModal.styled.d.ts +0 -20
- package/es/components/shared/material-modal/MaterialModal.styled.js +0 -29
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var _styled = require('@emotion/styled/base');
|
|
5
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
7
|
var React = require('react');
|
|
7
8
|
var apiClient = require('@elice/api-client');
|
|
8
9
|
var blocks = require('@elice/blocks');
|
|
10
|
+
var designTokens = require('@elice/design-tokens');
|
|
9
11
|
var icons = require('@elice/icons');
|
|
10
12
|
var intl = require('@elice/intl');
|
|
11
13
|
var materialSharedUtils = require('@elice/material-shared-utils');
|
|
12
14
|
var recoil = require('recoil');
|
|
13
15
|
var stylesheets = require('../../constants/stylesheets.js');
|
|
14
|
-
var MaterialExercise_styled = require('./MaterialExercise.styled.js');
|
|
15
16
|
var ExerciseProvider = require('./context/ExerciseProvider.js');
|
|
16
17
|
var en = require('../locales/en.json.js');
|
|
17
18
|
var ko = require('../locales/ko.json.js');
|
|
@@ -31,11 +32,106 @@ var recoilTypes = require('./context/recoilTypes.js');
|
|
|
31
32
|
|
|
32
33
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
33
34
|
|
|
35
|
+
var _styled__default = /*#__PURE__*/_interopDefaultCompat(_styled);
|
|
34
36
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
35
37
|
|
|
38
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
39
|
+
var EXERCISE_FILE_TREE_MIN_WIDTH = 128;
|
|
40
|
+
var EXERCISE_PREVIEW_MIN_WIDTH = 128;
|
|
41
|
+
var EXERCISE_RUNNER_MIN_HEIGHT = 128;
|
|
42
|
+
var EXERCISE_HORIZONTAL_RATIO = {
|
|
43
|
+
FILETREE: 0.15,
|
|
44
|
+
PREVIEW: 0.4
|
|
45
|
+
};
|
|
36
46
|
//
|
|
37
47
|
//
|
|
38
48
|
//
|
|
49
|
+
/**
|
|
50
|
+
* Wrapper contains:
|
|
51
|
+
* - FileTree
|
|
52
|
+
* - FileTabs
|
|
53
|
+
* - File (Editor)
|
|
54
|
+
* - Runner
|
|
55
|
+
*/
|
|
56
|
+
var StyledExerciseContainer = /*#__PURE__*/_styled__default.default("div", {
|
|
57
|
+
target: "e1tvay129"
|
|
58
|
+
})("production" === "production" ? {
|
|
59
|
+
name: "1x6515k",
|
|
60
|
+
styles: "flex:1;display:flex;flex-direction:column;height:100%;min-width:0;min-height:0"
|
|
61
|
+
} : {
|
|
62
|
+
name: "1x6515k",
|
|
63
|
+
styles: "flex:1;display:flex;flex-direction:column;height:100%;min-width:0;min-height:0",
|
|
64
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
65
|
+
});
|
|
66
|
+
/**
|
|
67
|
+
* Wrapper contains:
|
|
68
|
+
* - FileTree
|
|
69
|
+
* - FileTabs
|
|
70
|
+
* - File (Editor)
|
|
71
|
+
*/
|
|
72
|
+
var StyledExerciseMain = /*#__PURE__*/_styled__default.default("div", {
|
|
73
|
+
target: "e1tvay128"
|
|
74
|
+
})("production" === "production" ? {
|
|
75
|
+
name: "gaqfa6",
|
|
76
|
+
styles: "flex:1;display:flex;width:100%;min-width:0;min-height:0"
|
|
77
|
+
} : {
|
|
78
|
+
name: "gaqfa6",
|
|
79
|
+
styles: "flex:1;display:flex;width:100%;min-width:0;min-height:0",
|
|
80
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
81
|
+
});
|
|
82
|
+
/**
|
|
83
|
+
* Wrapper contains:
|
|
84
|
+
* - FileTabs
|
|
85
|
+
* - File (Editor)
|
|
86
|
+
*/
|
|
87
|
+
var StyledExerciseFileAndTabWrap = /*#__PURE__*/_styled__default.default("div", {
|
|
88
|
+
target: "e1tvay127"
|
|
89
|
+
})("flex:1;display:flex;flex-direction:column;height:100%;min-width:0;min-height:0;background-color:", designTokens.base.color.navy9, ";");
|
|
90
|
+
var StyledExerciseFileWrap = /*#__PURE__*/_styled__default.default("div", {
|
|
91
|
+
target: "e1tvay126"
|
|
92
|
+
})("production" === "production" ? {
|
|
93
|
+
name: "1qvekf5",
|
|
94
|
+
styles: "flex:1;min-height:0"
|
|
95
|
+
} : {
|
|
96
|
+
name: "1qvekf5",
|
|
97
|
+
styles: "flex:1;min-height:0",
|
|
98
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
99
|
+
});
|
|
100
|
+
// ========== Exercise FileTab ==========
|
|
101
|
+
var StyledExerciseTabBar = /*#__PURE__*/_styled__default.default("div", {
|
|
102
|
+
target: "e1tvay125"
|
|
103
|
+
})("display:flex;border-bottom:", stylesheets.MATERIAL_DIVIDER_BORDER_VALUE, ";");
|
|
104
|
+
var StyledExerciseTabsWrap = /*#__PURE__*/_styled__default.default("div", {
|
|
105
|
+
target: "e1tvay124"
|
|
106
|
+
})("production" === "production" ? {
|
|
107
|
+
name: "fxp7t8",
|
|
108
|
+
styles: "flex:1;min-width:0"
|
|
109
|
+
} : {
|
|
110
|
+
name: "fxp7t8",
|
|
111
|
+
styles: "flex:1;min-width:0",
|
|
112
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
113
|
+
});
|
|
114
|
+
var StyledExerciseTabMenuWrap = /*#__PURE__*/_styled__default.default("div", {
|
|
115
|
+
target: "e1tvay123"
|
|
116
|
+
})("display:flex;justify-content:center;align-items:center;padding:0 0.5rem 0 1rem;background-color:", designTokens.base.color.navy8, ";");
|
|
117
|
+
// ========== Exercise FileTree ==========
|
|
118
|
+
var StyledExerciseFileTreeWrap = /*#__PURE__*/_styled__default.default("div", {
|
|
119
|
+
target: "e1tvay122"
|
|
120
|
+
})("flex:1;display:flex;flex-direction:column;min-width:0;height:100%;border-right:", stylesheets.MATERIAL_DIVIDER_BORDER_VALUE, ";");
|
|
121
|
+
var StyledxerciseFileTreeContaner = /*#__PURE__*/_styled__default.default("div", {
|
|
122
|
+
target: "e1tvay121"
|
|
123
|
+
})("production" === "production" ? {
|
|
124
|
+
name: "ajoz9e",
|
|
125
|
+
styles: "display:flex;height:100%;max-width:auto;&[aria-hidden='true']{max-width:0;overflow:hidden;}"
|
|
126
|
+
} : {
|
|
127
|
+
name: "ajoz9e",
|
|
128
|
+
styles: "display:flex;height:100%;max-width:auto;&[aria-hidden='true']{max-width:0;overflow:hidden;}",
|
|
129
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
130
|
+
});
|
|
131
|
+
// ========== Exercise Runner ==========
|
|
132
|
+
var StyledExerciseRunnerWrap = /*#__PURE__*/_styled__default.default("div", {
|
|
133
|
+
target: "e1tvay120"
|
|
134
|
+
})("width:100%;height:100%;border-top:", stylesheets.MATERIAL_DIVIDER_BORDER_VALUE, ";");
|
|
39
135
|
/**
|
|
40
136
|
* Material exercise.
|
|
41
137
|
*/
|
|
@@ -55,13 +151,13 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
|
55
151
|
* File tree
|
|
56
152
|
*/
|
|
57
153
|
var renderExerciseFileTree = function renderExerciseFileTree() {
|
|
58
|
-
return jsxRuntime.jsx(
|
|
154
|
+
return jsxRuntime.jsx(StyledxerciseFileTreeContaner, {
|
|
59
155
|
"aria-hidden": !exerciseFileTreeOpened,
|
|
60
156
|
children: jsxRuntime.jsx(blocks.ResizableNext, Object.assign({}, stylesheets.MATERIAL_RESIZABLE_COMMON_PROPS, {
|
|
61
|
-
initialWidth: Math.max(
|
|
62
|
-
minConstraints: [
|
|
157
|
+
initialWidth: Math.max(EXERCISE_FILE_TREE_MIN_WIDTH, width * EXERCISE_HORIZONTAL_RATIO.FILETREE),
|
|
158
|
+
minConstraints: [EXERCISE_FILE_TREE_MIN_WIDTH, Infinity],
|
|
63
159
|
resizeHandles: ['e'],
|
|
64
|
-
children: jsxRuntime.jsx(
|
|
160
|
+
children: jsxRuntime.jsx(StyledExerciseFileTreeWrap, {
|
|
65
161
|
children: jsxRuntime.jsx(ExerciseFileTreeLazy.default, {})
|
|
66
162
|
})
|
|
67
163
|
}))
|
|
@@ -77,7 +173,7 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
|
77
173
|
* File tabs
|
|
78
174
|
*/
|
|
79
175
|
var renderExerciseFileTabs = function renderExerciseFileTabs() {
|
|
80
|
-
return jsxRuntime.jsx(
|
|
176
|
+
return jsxRuntime.jsx(StyledExerciseTabsWrap, {
|
|
81
177
|
children: jsxRuntime.jsx(ExerciseFileTabsLazy.default, {})
|
|
82
178
|
});
|
|
83
179
|
};
|
|
@@ -112,7 +208,7 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
|
112
208
|
* Menu
|
|
113
209
|
*/
|
|
114
210
|
var renderExerciseMenu = function renderExerciseMenu() {
|
|
115
|
-
return jsxRuntime.jsxs(
|
|
211
|
+
return jsxRuntime.jsxs(StyledExerciseTabMenuWrap, {
|
|
116
212
|
children: [renderExerciseReferenceDocsToggleButton(), jsxRuntime.jsx(ExerciseMultilangDropdownLazy.default, {}), jsxRuntime.jsx(ExerciseMenu.default, {})]
|
|
117
213
|
});
|
|
118
214
|
};
|
|
@@ -120,7 +216,7 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
|
120
216
|
* Code editor and file viewer
|
|
121
217
|
*/
|
|
122
218
|
var renderExerciseFile = function renderExerciseFile() {
|
|
123
|
-
return jsxRuntime.jsx(
|
|
219
|
+
return jsxRuntime.jsx(StyledExerciseFileWrap, {
|
|
124
220
|
children: jsxRuntime.jsx(ExerciseFile.default, {})
|
|
125
221
|
});
|
|
126
222
|
};
|
|
@@ -136,8 +232,8 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
|
136
232
|
}
|
|
137
233
|
return jsxRuntime.jsx(blocks.ResizableNext, Object.assign({}, stylesheets.MATERIAL_RESIZABLE_COMMON_PROPS, {
|
|
138
234
|
children: jsxRuntime.jsx(ExercisePreview.default, {}),
|
|
139
|
-
initialWidth: Math.max(
|
|
140
|
-
minConstraints: [
|
|
235
|
+
initialWidth: Math.max(EXERCISE_PREVIEW_MIN_WIDTH, width * EXERCISE_HORIZONTAL_RATIO.PREVIEW),
|
|
236
|
+
minConstraints: [EXERCISE_PREVIEW_MIN_WIDTH, Infinity],
|
|
141
237
|
resizeHandles: ['w']
|
|
142
238
|
}));
|
|
143
239
|
};
|
|
@@ -148,9 +244,9 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
|
148
244
|
if (exercise === null || exercise === void 0 ? void 0 : exercise.uiConfig.isEditorDisabled) {
|
|
149
245
|
return null;
|
|
150
246
|
}
|
|
151
|
-
return jsxRuntime.jsxs(
|
|
152
|
-
children: [renderExerciseFileTree(), jsxRuntime.jsxs(
|
|
153
|
-
children: [jsxRuntime.jsxs(
|
|
247
|
+
return jsxRuntime.jsxs(StyledExerciseMain, {
|
|
248
|
+
children: [renderExerciseFileTree(), jsxRuntime.jsxs(StyledExerciseFileAndTabWrap, {
|
|
249
|
+
children: [jsxRuntime.jsxs(StyledExerciseTabBar, {
|
|
154
250
|
children: [renderExerciseFileTreeButton(), renderExerciseFileTabs(), renderExerciseMenu()]
|
|
155
251
|
}), renderExerciseFile()]
|
|
156
252
|
}), jsxRuntime.jsx(ExerciseRightpane.default, {})]
|
|
@@ -160,7 +256,7 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
|
160
256
|
* Exercise Runner
|
|
161
257
|
*/
|
|
162
258
|
var renderExerciseRunner = function renderExerciseRunner() {
|
|
163
|
-
var _runner = jsxRuntime.jsx(
|
|
259
|
+
var _runner = jsxRuntime.jsx(StyledExerciseRunnerWrap, {
|
|
164
260
|
children: jsxRuntime.jsx(ExerciseRunner.default, {
|
|
165
261
|
exercisePreview: jsxRuntime.jsx(ExercisePreview.default, {})
|
|
166
262
|
})
|
|
@@ -169,8 +265,8 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
|
169
265
|
return _runner;
|
|
170
266
|
}
|
|
171
267
|
return jsxRuntime.jsx(blocks.ResizableNext, Object.assign({}, stylesheets.MATERIAL_RESIZABLE_COMMON_PROPS, {
|
|
172
|
-
initialHeight: Math.max(
|
|
173
|
-
minConstraints: [Infinity,
|
|
268
|
+
initialHeight: Math.max(EXERCISE_RUNNER_MIN_HEIGHT, height * 0.35),
|
|
269
|
+
minConstraints: [Infinity, EXERCISE_RUNNER_MIN_HEIGHT],
|
|
174
270
|
resizeHandles: ['n'],
|
|
175
271
|
children: _runner
|
|
176
272
|
}));
|
|
@@ -195,7 +291,7 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
|
|
|
195
291
|
//
|
|
196
292
|
//
|
|
197
293
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
198
|
-
children: [jsxRuntime.jsxs(
|
|
294
|
+
children: [jsxRuntime.jsxs(StyledExerciseContainer, {
|
|
199
295
|
children: [renderExerciseMain(), renderExerciseRunner()]
|
|
200
296
|
}), renderExercisePreviewSideBySide()]
|
|
201
297
|
});
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ExerciseProviderDedicatedProps, MaterialExerciseCommonProps } from './types';
|
|
3
|
-
export type ExerciseProviderProps = MaterialExerciseCommonProps & Omit<ExerciseProviderDedicatedProps, 'readOnlyActiveFile'
|
|
3
|
+
export type ExerciseProviderProps = MaterialExerciseCommonProps & Omit<ExerciseProviderDedicatedProps, 'readOnlyActiveFile'> & {
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
};
|
|
4
6
|
/**
|
|
5
7
|
* Provider for exercise, which...
|
|
6
8
|
* - wrapping with `ExerciseContext`
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var _styled = require('@emotion/styled/base');
|
|
5
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
7
|
var React = require('react');
|
|
7
8
|
var blocks = require('@elice/blocks');
|
|
9
|
+
var designTokens = require('@elice/design-tokens');
|
|
8
10
|
var intl = require('@elice/intl');
|
|
11
|
+
var react = require('@emotion/react');
|
|
9
12
|
var dayjs = require('dayjs');
|
|
10
13
|
var recoil = require('recoil');
|
|
11
|
-
var ExerciseCodeHistory_styled = require('./ExerciseCodeHistory.styled.js');
|
|
12
14
|
var en = require('./locales/en.json.js');
|
|
13
15
|
var ko = require('./locales/ko.json.js');
|
|
14
16
|
var useUsercodeHistory = require('../../../hooks/useUsercodeHistory.js');
|
|
@@ -21,9 +23,52 @@ var recoil$1 = require('../context/recoil.js');
|
|
|
21
23
|
|
|
22
24
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
23
25
|
|
|
26
|
+
var _styled__default = /*#__PURE__*/_interopDefaultCompat(_styled);
|
|
24
27
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
25
28
|
var dayjs__default = /*#__PURE__*/_interopDefaultCompat(dayjs);
|
|
26
29
|
|
|
30
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
31
|
+
var cssInputRangeTrack = "production" === "production" ? {
|
|
32
|
+
name: "jsy83f",
|
|
33
|
+
styles: "width:100%;height:0.375rem;cursor:pointer;transition:all 0.2s ease"
|
|
34
|
+
} : {
|
|
35
|
+
name: "jsy83f",
|
|
36
|
+
styles: "width:100%;height:0.375rem;cursor:pointer;transition:all 0.2s ease",
|
|
37
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
38
|
+
};
|
|
39
|
+
var cssInputRangeThumb = /*#__PURE__*/react.css("height:1rem;width:1rem;border-radius:50%;background:", designTokens.base.color.primary6, ";cursor:pointer;");
|
|
40
|
+
var StyledModalContent = /*#__PURE__*/_styled__default.default(blocks.Flex, {
|
|
41
|
+
target: "e1y3ui135"
|
|
42
|
+
})("production" === "production" ? {
|
|
43
|
+
name: "1j1fdpn",
|
|
44
|
+
styles: "position:absolute;width:100%;height:100%;overflow:hidden"
|
|
45
|
+
} : {
|
|
46
|
+
name: "1j1fdpn",
|
|
47
|
+
styles: "position:absolute;width:100%;height:100%;overflow:hidden",
|
|
48
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
49
|
+
});
|
|
50
|
+
var StyledVersionRangeInput = /*#__PURE__*/_styled__default.default("input", {
|
|
51
|
+
target: "e1y3ui134"
|
|
52
|
+
})("--webkit-appearance:none;margin:0.5rem 0;width:100%;cursor:pointer;&:focus{outline:none;}&::-webkit-slider-runnable-track{background:", designTokens.base.color.navy9, ";", cssInputRangeTrack, ";}&::-webkit-slider-thumb{-webkit-appearance:none;margin-top:calc((0.375rem - 1rem) / 2);", cssInputRangeThumb, ";}&:focus::-webkit-slider-runnable-track{background:rgba(", designTokens.base.color.navy9, ", 0.05);}&::-moz-range-track{background:", designTokens.base.color.navy9, ";", cssInputRangeTrack, ";}&::-moz-range-thumb{", cssInputRangeThumb, ";}");
|
|
53
|
+
var StyledVersionsWrapper = /*#__PURE__*/_styled__default.default(blocks.Flex, {
|
|
54
|
+
target: "e1y3ui133"
|
|
55
|
+
})("flex-direction:column;flex:1 1.75 25rem;position:relative;height:100%;border-right:1px solid ", designTokens.base.color.navy9, ";");
|
|
56
|
+
var StyledVersionRangeInputWrapper = /*#__PURE__*/_styled__default.default(blocks.Flex, {
|
|
57
|
+
target: "e1y3ui132"
|
|
58
|
+
})("height:3rem;padding:1rem;border-bottom:1px solid ", designTokens.base.color.navy9, ";");
|
|
59
|
+
var StyledEditorWrapper = /*#__PURE__*/_styled__default.default(blocks.Flex, {
|
|
60
|
+
target: "e1y3ui131"
|
|
61
|
+
})("production" === "production" ? {
|
|
62
|
+
name: "xf8y5j",
|
|
63
|
+
styles: "flex-direction:column;flex:1 1 auto;width:100%;height:100%;overflow:scroll"
|
|
64
|
+
} : {
|
|
65
|
+
name: "xf8y5j",
|
|
66
|
+
styles: "flex-direction:column;flex:1 1 auto;width:100%;height:100%;overflow:scroll",
|
|
67
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
68
|
+
});
|
|
69
|
+
var StyledFileNameBox = /*#__PURE__*/_styled__default.default(blocks.Text, {
|
|
70
|
+
target: "e1y3ui130"
|
|
71
|
+
})("min-height:3rem;height:3rem;line-height:3rem;padding-left:1rem;border-bottom:1px solid ", designTokens.base.color.navy9, ";");
|
|
27
72
|
var ExerciseCodeHistory = function ExerciseCodeHistory(_ref) {
|
|
28
73
|
var onHide = _ref.onHide,
|
|
29
74
|
onLoadVersionButtonClick = _ref.onLoadVersionButtonClick,
|
|
@@ -81,9 +126,9 @@ var ExerciseCodeHistory = function ExerciseCodeHistory(_ref) {
|
|
|
81
126
|
*
|
|
82
127
|
*/
|
|
83
128
|
var rednerVersionControlColumn = function rednerVersionControlColumn() {
|
|
84
|
-
return jsxRuntime.jsxs(
|
|
85
|
-
children: [jsxRuntime.jsx(
|
|
86
|
-
children: jsxRuntime.jsx(
|
|
129
|
+
return jsxRuntime.jsxs(StyledVersionsWrapper, {
|
|
130
|
+
children: [jsxRuntime.jsx(StyledVersionRangeInputWrapper, {
|
|
131
|
+
children: jsxRuntime.jsx(StyledVersionRangeInput, {
|
|
87
132
|
type: "range",
|
|
88
133
|
min: latestVersion ? latestVersion - ops.length + 1 : 0,
|
|
89
134
|
max: latestVersion !== null && latestVersion !== void 0 ? latestVersion : 0,
|
|
@@ -104,8 +149,8 @@ var ExerciseCodeHistory = function ExerciseCodeHistory(_ref) {
|
|
|
104
149
|
}
|
|
105
150
|
var uniqueFilePath = "code-history/".concat(exerciseRoomId, "/v").concat(version !== null && version !== void 0 ? version : 0);
|
|
106
151
|
var editorFilename = "".concat(uniqueFilePath, "/").concat(activeFilename);
|
|
107
|
-
return jsxRuntime.jsxs(
|
|
108
|
-
children: [jsxRuntime.jsx(
|
|
152
|
+
return jsxRuntime.jsxs(StyledEditorWrapper, {
|
|
153
|
+
children: [jsxRuntime.jsx(StyledFileNameBox, {
|
|
109
154
|
role: "white",
|
|
110
155
|
children: activeFilename
|
|
111
156
|
}), jsxRuntime.jsx(MonacoEditorLazy.default, {
|
|
@@ -145,7 +190,7 @@ var ExerciseCodeHistory = function ExerciseCodeHistory(_ref) {
|
|
|
145
190
|
}),
|
|
146
191
|
footer: renderFooterButton(),
|
|
147
192
|
onHide: onHide,
|
|
148
|
-
children: jsxRuntime.jsxs(
|
|
193
|
+
children: jsxRuntime.jsxs(StyledModalContent, {
|
|
149
194
|
children: [rednerVersionControlColumn(), renderEditorColumn()]
|
|
150
195
|
})
|
|
151
196
|
});
|
|
@@ -147,7 +147,7 @@ var ExerciseRunnerControllerArduinoAgentModal = function ExerciseRunnerControlle
|
|
|
147
147
|
return null;
|
|
148
148
|
}
|
|
149
149
|
return jsxRuntime.jsx(blocks.Modal, {
|
|
150
|
-
theme:
|
|
150
|
+
theme: "dark",
|
|
151
151
|
title: intl$1.formatMessage({
|
|
152
152
|
id: 'exerciseRunner.controller.arduino.agent.title'
|
|
153
153
|
}),
|
|
@@ -2,12 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var _styled = require('@emotion/styled/base');
|
|
5
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var
|
|
7
|
+
var blocks = require('@elice/blocks');
|
|
7
8
|
|
|
9
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
10
|
+
|
|
11
|
+
var _styled__default = /*#__PURE__*/_interopDefaultCompat(_styled);
|
|
12
|
+
|
|
13
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
14
|
+
var StyledVersionList = /*#__PURE__*/_styled__default.default(blocks.List, {
|
|
15
|
+
target: "e1plvajs0"
|
|
16
|
+
})("production" === "production" ? {
|
|
17
|
+
name: "1uke1dw",
|
|
18
|
+
styles: "height:100%;padding:0;overflow:scroll;background-color:transparent;&>last-of-type{border:none;}"
|
|
19
|
+
} : {
|
|
20
|
+
name: "1uke1dw",
|
|
21
|
+
styles: "height:100%;padding:0;overflow:scroll;background-color:transparent;&>last-of-type{border:none;}",
|
|
22
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
23
|
+
});
|
|
8
24
|
var ExerciseVersionList = function ExerciseVersionList(_ref) {
|
|
9
25
|
var children = _ref.children;
|
|
10
|
-
return jsxRuntime.jsx(
|
|
26
|
+
return jsxRuntime.jsx(StyledVersionList, {
|
|
11
27
|
children: children
|
|
12
28
|
});
|
|
13
29
|
};
|
|
@@ -2,17 +2,79 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var _styled = require('@emotion/styled/base');
|
|
5
6
|
var tslib = require('tslib');
|
|
6
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
8
|
var React = require('react');
|
|
9
|
+
var blocks = require('@elice/blocks');
|
|
10
|
+
var designTokens = require('@elice/design-tokens');
|
|
8
11
|
var icons = require('@elice/icons');
|
|
9
|
-
var
|
|
12
|
+
var react = require('@emotion/react');
|
|
10
13
|
var FileIcon = require('../file-icon/FileIcon.js');
|
|
11
14
|
|
|
12
15
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
13
16
|
|
|
17
|
+
var _styled__default = /*#__PURE__*/_interopDefaultCompat(_styled);
|
|
14
18
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
15
19
|
|
|
20
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
21
|
+
var TAB_MIN_WIDTH = '7rem';
|
|
22
|
+
var TAB_VERTICAL_BORDER_WIDTH = '1.5px';
|
|
23
|
+
var TAB_BACKGROUND_COLOR = designTokens.base.color.navy8;
|
|
24
|
+
var TAB_ACTIVE_BACKGROUND_COLOR = designTokens.base.color.navy9;
|
|
25
|
+
var TAB_HOVERED_BACKGROUND_COLOR = designTokens.base.color.navy7;
|
|
26
|
+
// ========== Tab label ==========
|
|
27
|
+
var StyledTabLabel = /*#__PURE__*/_styled__default.default("div", {
|
|
28
|
+
target: "eb5vmnz6"
|
|
29
|
+
})("production" === "production" ? {
|
|
30
|
+
name: "1v2fhdm",
|
|
31
|
+
styles: "flex:1;display:flex;align-items:center;overflow:hidden;pointer-events:none;user-select:none;&>*{margin-right:0.5rem;}"
|
|
32
|
+
} : {
|
|
33
|
+
name: "1v2fhdm",
|
|
34
|
+
styles: "flex:1;display:flex;align-items:center;overflow:hidden;pointer-events:none;user-select:none;&>*{margin-right:0.5rem;}",
|
|
35
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
36
|
+
});
|
|
37
|
+
var StyledTabLabelFilename = /*#__PURE__*/_styled__default.default(blocks.Text, {
|
|
38
|
+
target: "eb5vmnz5"
|
|
39
|
+
})("color:", designTokens.base.color.gray4, ";font-weight:500;");
|
|
40
|
+
var StyledTabLabelDirname = /*#__PURE__*/_styled__default.default(blocks.Text, {
|
|
41
|
+
target: "eb5vmnz4"
|
|
42
|
+
})("production" === "production" ? {
|
|
43
|
+
name: "f3vz0n",
|
|
44
|
+
styles: "font-weight:500"
|
|
45
|
+
} : {
|
|
46
|
+
name: "f3vz0n",
|
|
47
|
+
styles: "font-weight:500",
|
|
48
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
49
|
+
});
|
|
50
|
+
var StyledTabCloseButton = /*#__PURE__*/_styled__default.default(blocks.IconButton, {
|
|
51
|
+
target: "eb5vmnz3"
|
|
52
|
+
})("production" === "production" ? {
|
|
53
|
+
name: "19zzndm",
|
|
54
|
+
styles: "flex:0 0 auto;margin-right:0.25rem!important;opacity:0;transition:opacity 150ms ease-in-out"
|
|
55
|
+
} : {
|
|
56
|
+
name: "19zzndm",
|
|
57
|
+
styles: "flex:0 0 auto;margin-right:0.25rem!important;opacity:0;transition:opacity 150ms ease-in-out",
|
|
58
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
59
|
+
});
|
|
60
|
+
// ========== Tab content ==========
|
|
61
|
+
var StyledTabContent = /*#__PURE__*/_styled__default.default("div", {
|
|
62
|
+
target: "eb5vmnz2"
|
|
63
|
+
})("display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-left:0.5rem;height:calc(100% - ", TAB_VERTICAL_BORDER_WIDTH, ");&:hover{", StyledTabLabelFilename, "{color:", designTokens.base.color.gray3, ";}", StyledTabCloseButton, "{opacity:1;}}");
|
|
64
|
+
// ========== Tab active border ==========
|
|
65
|
+
var StyledTabActiveBorder = /*#__PURE__*/_styled__default.default("div", {
|
|
66
|
+
target: "eb5vmnz1"
|
|
67
|
+
})("height:", TAB_VERTICAL_BORDER_WIDTH, ";background-color:", designTokens.base.color.primary5, ";opacity:0;");
|
|
68
|
+
// ========== Tab ==========
|
|
69
|
+
var cssTabActive = /*#__PURE__*/react.css("background-color:", TAB_ACTIVE_BACKGROUND_COLOR, ";", StyledTabLabelFilename, "{color:", designTokens.base.color.gray3, ";}", StyledTabCloseButton, "{opacity:1;}", StyledTabActiveBorder, "{opacity:1;}");
|
|
70
|
+
var cssTabHovered = /*#__PURE__*/react.css("background-color:", TAB_HOVERED_BACKGROUND_COLOR, ";", StyledTabLabelFilename, "{color:", designTokens.base.color.gray3, ";}");
|
|
71
|
+
var StyledTab = /*#__PURE__*/_styled__default.default("div", {
|
|
72
|
+
target: "eb5vmnz0"
|
|
73
|
+
})("padding-top:", TAB_VERTICAL_BORDER_WIDTH, ";width:", TAB_MIN_WIDTH, ";min-width:fit-content;height:100%;background-color:", TAB_BACKGROUND_COLOR, ";border-right:1px solid ", designTokens.base.color.navy7, ";cursor:pointer;", function (props) {
|
|
74
|
+
return props.active && cssTabActive;
|
|
75
|
+
}, " ", function (props) {
|
|
76
|
+
return props.hovered && cssTabHovered;
|
|
77
|
+
}, ";");
|
|
16
78
|
var EMPTY_CHUNKS = [];
|
|
17
79
|
var FileTab = function FileTab(_a) {
|
|
18
80
|
var fullname = _a.fullname,
|
|
@@ -53,7 +115,7 @@ var FileTab = function FileTab(_a) {
|
|
|
53
115
|
* File name
|
|
54
116
|
*/
|
|
55
117
|
var renderTabFileName = function renderTabFileName() {
|
|
56
|
-
return jsxRuntime.jsx(
|
|
118
|
+
return jsxRuntime.jsx(StyledTabLabelFilename, {
|
|
57
119
|
noWrap: true,
|
|
58
120
|
size: "tiny",
|
|
59
121
|
children: filename
|
|
@@ -67,7 +129,7 @@ var FileTab = function FileTab(_a) {
|
|
|
67
129
|
return null;
|
|
68
130
|
}
|
|
69
131
|
var parentDir = chunks.slice().pop();
|
|
70
|
-
return jsxRuntime.jsx(
|
|
132
|
+
return jsxRuntime.jsx(StyledTabLabelDirname, {
|
|
71
133
|
noWrap: true,
|
|
72
134
|
role: "gray5",
|
|
73
135
|
size: "tiny",
|
|
@@ -78,7 +140,7 @@ var FileTab = function FileTab(_a) {
|
|
|
78
140
|
* File
|
|
79
141
|
*/
|
|
80
142
|
var renderTabFile = function renderTabFile() {
|
|
81
|
-
return jsxRuntime.jsxs(
|
|
143
|
+
return jsxRuntime.jsxs(StyledTabLabel, {
|
|
82
144
|
children: [renderTabFileIcon(), renderTabFileName(), renderTabFileDirName()]
|
|
83
145
|
});
|
|
84
146
|
};
|
|
@@ -86,7 +148,7 @@ var FileTab = function FileTab(_a) {
|
|
|
86
148
|
* Tab close icon
|
|
87
149
|
*/
|
|
88
150
|
var renderTabCloseButton = function renderTabCloseButton() {
|
|
89
|
-
return jsxRuntime.jsx(
|
|
151
|
+
return jsxRuntime.jsx(StyledTabCloseButton, {
|
|
90
152
|
transparent: true,
|
|
91
153
|
icon: icons.eilMathsignMultiplyBasic,
|
|
92
154
|
role: "gray5",
|
|
@@ -103,7 +165,7 @@ var FileTab = function FileTab(_a) {
|
|
|
103
165
|
//
|
|
104
166
|
//
|
|
105
167
|
//
|
|
106
|
-
return jsxRuntime.jsxs(
|
|
168
|
+
return jsxRuntime.jsxs(StyledTab, Object.assign({}, eventListeners, {
|
|
107
169
|
draggable: true,
|
|
108
170
|
active: active,
|
|
109
171
|
hovered: hovered,
|
|
@@ -113,9 +175,9 @@ var FileTab = function FileTab(_a) {
|
|
|
113
175
|
title: "~/".concat(fullname),
|
|
114
176
|
tabIndex: -1,
|
|
115
177
|
ref: tabElRef,
|
|
116
|
-
children: [jsxRuntime.jsxs(
|
|
178
|
+
children: [jsxRuntime.jsxs(StyledTabContent, {
|
|
117
179
|
children: [renderTabFile(), renderTabCloseButton()]
|
|
118
|
-
}), jsxRuntime.jsx(
|
|
180
|
+
}), jsxRuntime.jsx(StyledTabActiveBorder, {})]
|
|
119
181
|
}));
|
|
120
182
|
};
|
|
121
183
|
|
|
@@ -3,18 +3,39 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
6
|
+
var _styled = require('@emotion/styled/base');
|
|
6
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
8
|
var React = require('react');
|
|
9
|
+
var designTokens = require('@elice/design-tokens');
|
|
8
10
|
var throttle = require('lodash/throttle');
|
|
11
|
+
var stylesheets = require('../../../constants/stylesheets.js');
|
|
9
12
|
var FileTab = require('./FileTab.js');
|
|
10
13
|
var util = require('./util.js');
|
|
11
|
-
var FileTabs_styled = require('./FileTabs.styled.js');
|
|
12
14
|
|
|
13
15
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
14
16
|
|
|
17
|
+
var _styled__default = /*#__PURE__*/_interopDefaultCompat(_styled);
|
|
15
18
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
16
19
|
var throttle__default = /*#__PURE__*/_interopDefaultCompat(throttle);
|
|
17
20
|
|
|
21
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
22
|
+
var StyledTabs = /*#__PURE__*/_styled__default.default("div", {
|
|
23
|
+
target: "ep0ecmj1"
|
|
24
|
+
})("display:flex;align-items:flex-end;box-sizing:border-box;flex-direction:row;height:2.25rem;font-family:inherit;background:", designTokens.base.color.navy8, ";overflow-x:overlay;overflow-y:hidden;scrollbar-width:none;", stylesheets.getMaterialScrollBarCss({
|
|
25
|
+
height: '2px',
|
|
26
|
+
borderRadius: '2px',
|
|
27
|
+
hideable: true
|
|
28
|
+
}), ";");
|
|
29
|
+
var StyledTabsDropZone = /*#__PURE__*/_styled__default.default("div", {
|
|
30
|
+
target: "ep0ecmj0"
|
|
31
|
+
})("production" === "production" ? {
|
|
32
|
+
name: "uysyag",
|
|
33
|
+
styles: "flex:1;height:100%;background-color:transparent"
|
|
34
|
+
} : {
|
|
35
|
+
name: "uysyag",
|
|
36
|
+
styles: "flex:1;height:100%;background-color:transparent",
|
|
37
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
38
|
+
});
|
|
18
39
|
var FileTabs = function FileTabs(_ref) {
|
|
19
40
|
var openedTabs = _ref.openedTabs,
|
|
20
41
|
activeTab = _ref.activeTab,
|
|
@@ -106,7 +127,7 @@ var FileTabs = function FileTabs(_ref) {
|
|
|
106
127
|
* Tab drop zone.
|
|
107
128
|
*/
|
|
108
129
|
var renderTabsDropZone = function renderTabsDropZone() {
|
|
109
|
-
return jsxRuntime.jsx(
|
|
130
|
+
return jsxRuntime.jsx(StyledTabsDropZone, {
|
|
110
131
|
onDragOver: getTabDragOverHandler(tabs.length - 1),
|
|
111
132
|
onDrop: handleTabDrop
|
|
112
133
|
});
|
|
@@ -114,7 +135,7 @@ var FileTabs = function FileTabs(_ref) {
|
|
|
114
135
|
//
|
|
115
136
|
//
|
|
116
137
|
//
|
|
117
|
-
return jsxRuntime.jsxs(
|
|
138
|
+
return jsxRuntime.jsxs(StyledTabs, {
|
|
118
139
|
role: "tablist",
|
|
119
140
|
children: [renderTabs(), renderTabsDropZone()]
|
|
120
141
|
});
|