@elice/material-runbox-legacy 1.230418.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 (42) hide show
  1. package/README.md +3 -0
  2. package/cjs/_virtual/_rollupPluginBabelHelpers.js +393 -0
  3. package/cjs/components/material-runbox-legacy/MaterialRunboxLegacy.d.ts +7 -0
  4. package/cjs/components/material-runbox-legacy/MaterialRunboxLegacy.js +44 -0
  5. package/cjs/components/material-runbox-legacy/MaterialRunboxLegacy.styled.d.ts +1 -0
  6. package/cjs/components/material-runbox-legacy/MaterialRunboxLegacy.styled.js +15 -0
  7. package/cjs/components/material-runbox-legacy/MaterialRunboxLegacyContent.d.ts +18 -0
  8. package/cjs/components/material-runbox-legacy/MaterialRunboxLegacyContent.js +311 -0
  9. package/cjs/components/material-runbox-legacy/MaterialRunboxLegacyContent.styled.d.ts +8 -0
  10. package/cjs/components/material-runbox-legacy/MaterialRunboxLegacyContent.styled.js +47 -0
  11. package/cjs/components/material-runbox-legacy/MaterialRunboxLegacyRunnerRoomWrapper.d.ts +6 -0
  12. package/cjs/components/material-runbox-legacy/MaterialRunboxLegacyRunnerRoomWrapper.js +102 -0
  13. package/cjs/components/material-runbox-legacy/MaterialRunboxLegacyStdioWrapper.d.ts +7 -0
  14. package/cjs/components/material-runbox-legacy/MaterialRunboxLegacyStdioWrapper.js +107 -0
  15. package/cjs/components/material-runbox-legacy/index.d.ts +2 -0
  16. package/cjs/components/material-runbox-legacy/locales.d.ts +15 -0
  17. package/cjs/components/material-runbox-legacy/locales.js +35 -0
  18. package/cjs/components/material-runbox-legacy/websocket.d.ts +10 -0
  19. package/cjs/components/material-runbox-legacy/websocket.js +18 -0
  20. package/cjs/index.d.ts +1 -0
  21. package/cjs/index.js +9 -0
  22. package/es/_virtual/_rollupPluginBabelHelpers.js +382 -0
  23. package/es/components/material-runbox-legacy/MaterialRunboxLegacy.d.ts +7 -0
  24. package/es/components/material-runbox-legacy/MaterialRunboxLegacy.js +37 -0
  25. package/es/components/material-runbox-legacy/MaterialRunboxLegacy.styled.d.ts +1 -0
  26. package/es/components/material-runbox-legacy/MaterialRunboxLegacy.styled.js +7 -0
  27. package/es/components/material-runbox-legacy/MaterialRunboxLegacyContent.d.ts +18 -0
  28. package/es/components/material-runbox-legacy/MaterialRunboxLegacyContent.js +303 -0
  29. package/es/components/material-runbox-legacy/MaterialRunboxLegacyContent.styled.d.ts +8 -0
  30. package/es/components/material-runbox-legacy/MaterialRunboxLegacyContent.styled.js +35 -0
  31. package/es/components/material-runbox-legacy/MaterialRunboxLegacyRunnerRoomWrapper.d.ts +6 -0
  32. package/es/components/material-runbox-legacy/MaterialRunboxLegacyRunnerRoomWrapper.js +94 -0
  33. package/es/components/material-runbox-legacy/MaterialRunboxLegacyStdioWrapper.d.ts +7 -0
  34. package/es/components/material-runbox-legacy/MaterialRunboxLegacyStdioWrapper.js +99 -0
  35. package/es/components/material-runbox-legacy/index.d.ts +2 -0
  36. package/es/components/material-runbox-legacy/locales.d.ts +15 -0
  37. package/es/components/material-runbox-legacy/locales.js +30 -0
  38. package/es/components/material-runbox-legacy/websocket.d.ts +10 -0
  39. package/es/components/material-runbox-legacy/websocket.js +13 -0
  40. package/es/index.d.ts +1 -0
  41. package/es/index.js +1 -0
  42. package/package.json +70 -0
@@ -0,0 +1,311 @@
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 icons = require('@elice/icons');
11
+ var websocket = require('./websocket.js');
12
+ var MaterialRunboxLegacyContent_styled = require('./MaterialRunboxLegacyContent.styled.js');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
+
18
+ exports.MaterialRunboxLegacyStatus = void 0;
19
+ (function (MaterialRunboxLegacyStatus) {
20
+ MaterialRunboxLegacyStatus[MaterialRunboxLegacyStatus["Idle"] = 0] = "Idle";
21
+ MaterialRunboxLegacyStatus[MaterialRunboxLegacyStatus["Connecting"] = 1] = "Connecting";
22
+ MaterialRunboxLegacyStatus[MaterialRunboxLegacyStatus["Loading"] = 2] = "Loading";
23
+ MaterialRunboxLegacyStatus[MaterialRunboxLegacyStatus["Done"] = 3] = "Done";
24
+ MaterialRunboxLegacyStatus[MaterialRunboxLegacyStatus["Disconnected"] = 4] = "Disconnected";
25
+ MaterialRunboxLegacyStatus[MaterialRunboxLegacyStatus["Terminated"] = 5] = "Terminated";
26
+ MaterialRunboxLegacyStatus[MaterialRunboxLegacyStatus["Error"] = 6] = "Error";
27
+ })(exports.MaterialRunboxLegacyStatus || (exports.MaterialRunboxLegacyStatus = {}));
28
+ var MaterialRunboxLegacyContent = function MaterialRunboxLegacyContent(_ref) {
29
+ var runboxUrl = _ref.runboxUrl,
30
+ isRunboxTerminated = _ref.isRunboxTerminated,
31
+ isRunboxJoinError = _ref.isRunboxJoinError,
32
+ reconnect = _ref.reconnect;
33
+ var intl = reactIntl.useIntl();
34
+ var _React$useState = React__default["default"].useState(null),
35
+ _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
36
+ runboxStats = _React$useState2[0],
37
+ setRunboxStats = _React$useState2[1];
38
+ var _React$useState3 = React__default["default"].useState(false),
39
+ _React$useState4 = _rollupPluginBabelHelpers.slicedToArray(_React$useState3, 2),
40
+ isRunboxUrlLoaded = _React$useState4[0],
41
+ setRunboxUrlLoaded = _React$useState4[1];
42
+ var isRunboxUrlLoadedPrev = reactUse.usePrevious(isRunboxUrlLoaded);
43
+ var _React$useState5 = React__default["default"].useState(exports.MaterialRunboxLegacyStatus.Idle),
44
+ _React$useState6 = _rollupPluginBabelHelpers.slicedToArray(_React$useState5, 2),
45
+ runboxStatus = _React$useState6[0],
46
+ setRunboxStatus = _React$useState6[1];
47
+ var isRunboxPreparing = runboxStatus !== exports.MaterialRunboxLegacyStatus.Done && runboxStatus !== exports.MaterialRunboxLegacyStatus.Terminated;
48
+ websocket.WSMaterialRunboxLegacyStdio.useMessage(function (message) {
49
+ if (message.type === 'stats') {
50
+ setRunboxStats(message.data);
51
+ }
52
+ }, {
53
+ camelize: true
54
+ });
55
+ var handleReconnect = function handleReconnect() {
56
+ setRunboxStats(null);
57
+ setRunboxUrlLoaded(false);
58
+ reconnect();
59
+ };
60
+ var handleShare = /*#__PURE__*/function () {
61
+ var _ref2 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
62
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
63
+ while (1) switch (_context.prev = _context.next) {
64
+ case 0:
65
+ if (runboxUrl) {
66
+ _context.next = 2;
67
+ break;
68
+ }
69
+ return _context.abrupt("return");
70
+ case 2:
71
+ _context.prev = 2;
72
+ _context.next = 5;
73
+ return navigator.clipboard.writeText(runboxUrl);
74
+ case 5:
75
+ blocks.Notification.success(intl.formatMessage({
76
+ id: 'runboxLegacy.share.success'
77
+ }));
78
+ _context.next = 11;
79
+ break;
80
+ case 8:
81
+ _context.prev = 8;
82
+ _context.t0 = _context["catch"](2);
83
+ alert(runboxUrl);
84
+ case 11:
85
+ case "end":
86
+ return _context.stop();
87
+ }
88
+ }, _callee, null, [[2, 8]]);
89
+ }));
90
+ return function handleShare() {
91
+ return _ref2.apply(this, arguments);
92
+ };
93
+ }();
94
+ //
95
+ // Change `isRunboxUrlLoaded` flag to false, when runbox url removed.
96
+ //
97
+ React__default["default"].useEffect(function () {
98
+ if (!runboxUrl) {
99
+ setRunboxUrlLoaded(false);
100
+ }
101
+ }, [runboxUrl]);
102
+ //
103
+ // Determine runbox status.
104
+ //
105
+ React__default["default"].useEffect(function () {
106
+ setRunboxStatus(function () {
107
+ switch (true) {
108
+ case isRunboxJoinError:
109
+ return exports.MaterialRunboxLegacyStatus.Error;
110
+ case !runboxUrl && isRunboxTerminated:
111
+ return exports.MaterialRunboxLegacyStatus.Terminated;
112
+ case !runboxUrl && !isRunboxTerminated && isRunboxUrlLoadedPrev:
113
+ return exports.MaterialRunboxLegacyStatus.Disconnected;
114
+ case !runboxUrl && !isRunboxTerminated && !isRunboxUrlLoadedPrev:
115
+ return exports.MaterialRunboxLegacyStatus.Connecting;
116
+ case Boolean(runboxUrl) && !isRunboxUrlLoaded:
117
+ return exports.MaterialRunboxLegacyStatus.Loading;
118
+ case Boolean(runboxUrl) && isRunboxUrlLoaded:
119
+ return exports.MaterialRunboxLegacyStatus.Done;
120
+ default:
121
+ return exports.MaterialRunboxLegacyStatus.Idle;
122
+ }
123
+ }());
124
+ }, [isRunboxJoinError, isRunboxTerminated, isRunboxUrlLoaded, isRunboxUrlLoadedPrev, runboxUrl]);
125
+ /**
126
+ * Runbox status message shown at header.
127
+ */
128
+ var renderRunboxStatusMessage = function renderRunboxStatusMessage() {
129
+ switch (runboxStatus) {
130
+ case exports.MaterialRunboxLegacyStatus.Idle:
131
+ return React__default["default"].createElement(reactIntl.FormattedMessage, {
132
+ id: "runboxLegacy.status.idle"
133
+ });
134
+ case exports.MaterialRunboxLegacyStatus.Connecting:
135
+ return React__default["default"].createElement(reactIntl.FormattedMessage, {
136
+ id: "runboxLegacy.status.connecting"
137
+ });
138
+ case exports.MaterialRunboxLegacyStatus.Loading:
139
+ return React__default["default"].createElement(reactIntl.FormattedMessage, {
140
+ id: "runboxLegacy.status.loading"
141
+ });
142
+ case exports.MaterialRunboxLegacyStatus.Done:
143
+ return React__default["default"].createElement(reactIntl.FormattedMessage, {
144
+ id: "runboxLegacy.status.done"
145
+ });
146
+ case exports.MaterialRunboxLegacyStatus.Disconnected:
147
+ return React__default["default"].createElement(reactIntl.FormattedMessage, {
148
+ id: "runboxLegacy.status.disconnected"
149
+ });
150
+ case exports.MaterialRunboxLegacyStatus.Terminated:
151
+ return React__default["default"].createElement(reactIntl.FormattedMessage, {
152
+ id: "runboxLegacy.status.terminated"
153
+ });
154
+ }
155
+ };
156
+ /**
157
+ * Header of runbox.
158
+ */
159
+ var renderRunboxHeader = function renderRunboxHeader() {
160
+ var runboxStatsInfo = runboxStats ? React__default["default"].createElement(blocks.LaptopOrLarger, null, React__default["default"].createElement(blocks.Flex, null, React__default["default"].createElement(blocks.Flex, {
161
+ align: "center"
162
+ }, React__default["default"].createElement(blocks.Text, {
163
+ size: "tiny",
164
+ lineHeight: 1.5,
165
+ role: "gray7",
166
+ bold: true
167
+ }, "CPU:\xA0"), React__default["default"].createElement(blocks.Flex, {
168
+ align: "center",
169
+ width: "30px"
170
+ }, React__default["default"].createElement(blocks.AntProgress, {
171
+ type: "line",
172
+ percent: runboxStats.cpu.percent,
173
+ status: 'active',
174
+ showInfo: false
175
+ })), React__default["default"].createElement(blocks.Text, {
176
+ size: "tiny",
177
+ lineHeight: 1.5,
178
+ role: "gray5"
179
+ }, "\xA0", "".concat(runboxStats.cpu.percent.toFixed(0), "%"))), React__default["default"].createElement(blocks.Hspace, {
180
+ width: 1
181
+ }), React__default["default"].createElement(blocks.Flex, {
182
+ align: "center"
183
+ }, React__default["default"].createElement(blocks.Text, {
184
+ size: "tiny",
185
+ lineHeight: 1.5,
186
+ role: "gray7",
187
+ bold: true
188
+ }, "MEM:\xA0"), React__default["default"].createElement(blocks.Flex, {
189
+ align: "center",
190
+ width: "30px"
191
+ }, React__default["default"].createElement(blocks.AntProgress, {
192
+ percent: runboxStats.memory.currentBytes / runboxStats.memory.limitBytes * 100,
193
+ status: 'active',
194
+ showInfo: false
195
+ })), React__default["default"].createElement(blocks.Text, {
196
+ size: "tiny",
197
+ lineHeight: 1.5,
198
+ role: "gray5"
199
+ }, "\xA0", "".concat((runboxStats.memory.currentBytes / 1024 / 1024).toFixed(0), "M / ").concat((runboxStats.memory.limitBytes / 1024 / 1024).toFixed(0), "M"))), React__default["default"].createElement(blocks.Hspace, {
200
+ width: 1
201
+ }), React__default["default"].createElement(blocks.Text, {
202
+ size: "tiny",
203
+ lineHeight: 1.5,
204
+ role: "gray7",
205
+ bold: true
206
+ }, "DISK:\xA0"), React__default["default"].createElement(blocks.Text, {
207
+ size: "tiny",
208
+ lineHeight: 1.5,
209
+ role: "gray5"
210
+ }, "Read ".concat((runboxStats.block.rxBytes / 1024 / 1024).toFixed(0), "M Write ").concat((runboxStats.block.txBytes / 1024 / 1024).toFixed(0), "M")), React__default["default"].createElement(blocks.Hspace, {
211
+ width: 1
212
+ }), React__default["default"].createElement(blocks.Text, {
213
+ size: "tiny",
214
+ lineHeight: 1.5,
215
+ role: "gray7",
216
+ bold: true
217
+ }, "NET:\xA0"), React__default["default"].createElement(blocks.Text, {
218
+ size: "tiny",
219
+ lineHeight: 1.5,
220
+ role: "gray5"
221
+ }, "\u2193".concat((runboxStats.network.rxBytes / 1024 / 1024).toFixed(0), "M \u2191").concat((runboxStats.network.txBytes / 1024 / 1024).toFixed(0), "M")), React__default["default"].createElement(blocks.Hspace, {
222
+ width: 1
223
+ }))) : null;
224
+ return React__default["default"].createElement(MaterialRunboxLegacyContent_styled.RunboxHeader, null, runboxStatsInfo, React__default["default"].createElement(blocks.Flex, {
225
+ align: "center"
226
+ }, React__default["default"].createElement(MaterialRunboxLegacyContent_styled.RunboxStatusLight, {
227
+ status: runboxStatus
228
+ }), React__default["default"].createElement(blocks.Hspace, {
229
+ width: 0.5
230
+ }), React__default["default"].createElement(blocks.Text, {
231
+ size: "small"
232
+ }, renderRunboxStatusMessage())), React__default["default"].createElement(blocks.Hspace, {
233
+ width: 1
234
+ }), React__default["default"].createElement(blocks.IconButton, {
235
+ icon: icons.eilShare,
236
+ role: "greyfb",
237
+ size: "small",
238
+ border: true,
239
+ disabled: isRunboxPreparing,
240
+ onClick: handleShare
241
+ }), React__default["default"].createElement(blocks.Hspace, {
242
+ width: 0.5
243
+ }), React__default["default"].createElement(blocks.Tooltip, {
244
+ title: isRunboxPreparing ? intl.formatMessage({
245
+ id: 'runboxLegacy.reloadButton.tooltip'
246
+ }) : undefined
247
+ }, React__default["default"].createElement("span", null, React__default["default"].createElement(blocks.IconButton, {
248
+ icon: icons.eilReset,
249
+ iconSpin: isRunboxPreparing,
250
+ role: "greyfb",
251
+ size: "small",
252
+ border: true,
253
+ disabled: isRunboxPreparing,
254
+ onClick: handleReconnect
255
+ }))));
256
+ };
257
+ /**
258
+ * Body of runbox.
259
+ */
260
+ var renderRunboxBody = function renderRunboxBody() {
261
+ if (runboxStatus === exports.MaterialRunboxLegacyStatus.Terminated) {
262
+ return React__default["default"].createElement(MaterialRunboxLegacyContent_styled.RunboxBody, null, React__default["default"].createElement(MaterialRunboxLegacyContent_styled.RunboxBodyOverlay, null, React__default["default"].createElement(blocks.Box, null, React__default["default"].createElement(blocks.Text, {
263
+ size: "small",
264
+ preWrap: true,
265
+ lineHeight: 1.5,
266
+ textAlign: "center"
267
+ }, React__default["default"].createElement(reactIntl.FormattedMessage, {
268
+ id: "runboxLegacy.overlay.message.terminated"
269
+ })))));
270
+ }
271
+ if (runboxStatus === exports.MaterialRunboxLegacyStatus.Error) {
272
+ return React__default["default"].createElement(MaterialRunboxLegacyContent_styled.RunboxBody, null, React__default["default"].createElement(MaterialRunboxLegacyContent_styled.RunboxBodyOverlay, null, React__default["default"].createElement(blocks.Box, null, React__default["default"].createElement(blocks.Text, {
273
+ size: "small",
274
+ preWrap: true,
275
+ lineHeight: 1.5,
276
+ textAlign: "center"
277
+ }, React__default["default"].createElement(reactIntl.FormattedMessage, {
278
+ id: "runboxLegacy.overlay.message.error"
279
+ })))));
280
+ }
281
+ return React__default["default"].createElement(MaterialRunboxLegacyContent_styled.RunboxBody, null, React__default["default"].createElement(MaterialRunboxLegacyContent_styled.RunboxBodyOverlay, {
282
+ "aria-hidden": !isRunboxPreparing
283
+ }, React__default["default"].createElement(blocks.Box, null, React__default["default"].createElement(blocks.Spinner, null), React__default["default"].createElement(blocks.Vspace, {
284
+ height: 1
285
+ }), React__default["default"].createElement(blocks.Text, {
286
+ size: "small",
287
+ preWrap: true,
288
+ lineHeight: 1.5,
289
+ textAlign: "center"
290
+ }, runboxStatus === exports.MaterialRunboxLegacyStatus.Disconnected ? React__default["default"].createElement(reactIntl.FormattedMessage, {
291
+ id: "runboxLegacy.overlay.message.disconnected"
292
+ }) : React__default["default"].createElement(reactIntl.FormattedMessage, {
293
+ id: "runboxLegacy.overlay.message.connecting"
294
+ })))), runboxUrl ? React__default["default"].createElement(MaterialRunboxLegacyContent_styled.RunboxBodyIframe, {
295
+ src: runboxUrl + '/?folder=/mnt/elice/workspace',
296
+ title: "material-runbox-legacy",
297
+ onLoad: function onLoad() {
298
+ return setRunboxUrlLoaded(true);
299
+ },
300
+ allow: "clipboard-read; clipboard-write; camera *; microphone *"
301
+ }) : null);
302
+ };
303
+ //
304
+ //
305
+ //
306
+ return React__default["default"].createElement(React__default["default"].Fragment, null, renderRunboxHeader(), React__default["default"].createElement(blocks.Vspace, {
307
+ height: 0.5
308
+ }), renderRunboxBody());
309
+ };
310
+
311
+ exports["default"] = MaterialRunboxLegacyContent;
@@ -0,0 +1,8 @@
1
+ import { MaterialRunboxLegacyStatus } from './MaterialRunboxLegacyContent';
2
+ export declare const RunboxHeader: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ export declare const RunboxBody: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const RunboxBodyOverlay: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ export declare const RunboxBodyIframe: import("styled-components").StyledComponent<"iframe", any, {}, never>;
6
+ export declare const RunboxStatusLight: import("styled-components").StyledComponent<"span", any, {
7
+ status: MaterialRunboxLegacyStatus;
8
+ }, never>;
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var designTokens = require('@elice/design-tokens');
6
+ var styled = require('styled-components');
7
+ var MaterialRunboxLegacyContent = require('./MaterialRunboxLegacyContent.js');
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 RunboxHeader = styled__default["default"].div.withConfig({
14
+ componentId: "sc-18a3wux-0"
15
+ })(["flex:0 0 2.5rem;display:flex;justify-content:flex-end;align-items:center;padding:0 0.5rem;"]);
16
+ var RunboxBody = styled__default["default"].div.withConfig({
17
+ componentId: "sc-18a3wux-1"
18
+ })(["position:relative;flex:1;"]);
19
+ var RunboxBodyOverlay = styled__default["default"].div.withConfig({
20
+ componentId: "sc-18a3wux-2"
21
+ })(["position:absolute;top:0;left:0;display:flex;justify-content:center;align-items:center;flex:1;width:100%;height:100%;background:rgba(255,255,255,0.8);&[aria-hidden='true']{display:none;}"]);
22
+ var RunboxBodyIframe = styled__default["default"].iframe.withConfig({
23
+ componentId: "sc-18a3wux-3"
24
+ })(["width:100%;height:100%;border:none;"]);
25
+ var RunboxStatusLight = styled__default["default"].span.withConfig({
26
+ componentId: "sc-18a3wux-4"
27
+ })(["display:block;width:0.5rem;height:0.5rem;border-radius:50%;background-color:", ";"], function (props) {
28
+ switch (props.status) {
29
+ case MaterialRunboxLegacyContent.MaterialRunboxLegacyStatus.Loading:
30
+ case MaterialRunboxLegacyContent.MaterialRunboxLegacyStatus.Connecting:
31
+ return designTokens.base.color.yellow3;
32
+ case MaterialRunboxLegacyContent.MaterialRunboxLegacyStatus.Disconnected:
33
+ return designTokens.base.color.red7;
34
+ case MaterialRunboxLegacyContent.MaterialRunboxLegacyStatus.Done:
35
+ return designTokens.base.color.green7;
36
+ case MaterialRunboxLegacyContent.MaterialRunboxLegacyStatus.Idle:
37
+ case MaterialRunboxLegacyContent.MaterialRunboxLegacyStatus.Terminated:
38
+ default:
39
+ return designTokens.base.color.white;
40
+ }
41
+ });
42
+
43
+ exports.RunboxBody = RunboxBody;
44
+ exports.RunboxBodyIframe = RunboxBodyIframe;
45
+ exports.RunboxBodyOverlay = RunboxBodyOverlay;
46
+ exports.RunboxHeader = RunboxHeader;
47
+ exports.RunboxStatusLight = RunboxStatusLight;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface MaterialRunboxLegacyRunnerRoomWrapperProps {
3
+ materialRunboxId: number;
4
+ }
5
+ declare const MaterialRunboxLegacyRunnerRoomWrapper: React.FC<MaterialRunboxLegacyRunnerRoomWrapperProps>;
6
+ export default MaterialRunboxLegacyRunnerRoomWrapper;
@@ -0,0 +1,102 @@
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 apiClient = require('@elice/api-client');
8
+ var materialSharedUtils = require('@elice/material-shared-utils');
9
+ var MaterialRunboxLegacyStdioWrapper = require('./MaterialRunboxLegacyStdioWrapper.js');
10
+ var websocket = require('./websocket.js');
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
+
16
+ var MaterialRunboxLegacyRunnerRoomWrapper = function MaterialRunboxLegacyRunnerRoomWrapper(_ref) {
17
+ var materialRunboxId = _ref.materialRunboxId;
18
+ var _useMaterialConfig = materialSharedUtils.useMaterialConfig(),
19
+ apiWsOriginUrl = _useMaterialConfig.apiWsOriginUrl;
20
+ var abortCtrlRef = React__default["default"].useRef(new AbortController());
21
+ var _React$useState = React__default["default"].useState(),
22
+ _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
23
+ runboxRunningId = _React$useState2[0],
24
+ setRunboxRunningId = _React$useState2[1];
25
+ var _React$useState3 = React__default["default"].useState(false),
26
+ _React$useState4 = _rollupPluginBabelHelpers.slicedToArray(_React$useState3, 2),
27
+ isRunboxJoinError = _React$useState4[0],
28
+ setRunboxJoinError = _React$useState4[1];
29
+ var _React$useState5 = React__default["default"].useState(false),
30
+ _React$useState6 = _rollupPluginBabelHelpers.slicedToArray(_React$useState5, 2),
31
+ isRunboxRunningCanceling = _React$useState6[0],
32
+ setRunboxRunningCanceling = _React$useState6[1];
33
+ /**
34
+ * Resolve runner room token.
35
+ */
36
+ var resolveRunnerRoomToken = React__default["default"].useCallback( /*#__PURE__*/_rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
37
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
38
+ while (1) switch (_context.prev = _context.next) {
39
+ case 0:
40
+ setRunboxJoinError(false);
41
+ abortCtrlRef.current.abort();
42
+ abortCtrlRef.current = new AbortController();
43
+ return _context.abrupt("return", apiClient.postOrgRunnerRoomMaterialRunboxJoin({
44
+ materialRunboxId: materialRunboxId
45
+ }, {
46
+ signal: abortCtrlRef.current.signal
47
+ }).then(function (res) {
48
+ setRunboxJoinError(false);
49
+ setRunboxRunningId(res.runboxRunningId);
50
+ return res.roomToken;
51
+ }).catch(function (err) {
52
+ setRunboxJoinError(true);
53
+ throw err;
54
+ }));
55
+ case 4:
56
+ case "end":
57
+ return _context.stop();
58
+ }
59
+ }, _callee);
60
+ })), [materialRunboxId]);
61
+ /**
62
+ * Reconnect runbox.
63
+ */
64
+ var reconnectRunnerRoomWebSocket = React__default["default"].useCallback( /*#__PURE__*/_rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee2() {
65
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee2$(_context2) {
66
+ while (1) switch (_context2.prev = _context2.next) {
67
+ case 0:
68
+ if (runboxRunningId) {
69
+ _context2.next = 2;
70
+ break;
71
+ }
72
+ return _context2.abrupt("return");
73
+ case 2:
74
+ setRunboxRunningCanceling(true);
75
+ return _context2.abrupt("return", apiClient.postOrgMaterialRunboxRunboxRunningCancel({
76
+ runboxRunningId: runboxRunningId
77
+ }).then(function () {
78
+ return setRunboxRunningCanceling(false);
79
+ }).catch(function () {
80
+ return setRunboxRunningCanceling(false);
81
+ }));
82
+ case 4:
83
+ case "end":
84
+ return _context2.stop();
85
+ }
86
+ }, _callee2);
87
+ })), [runboxRunningId]);
88
+ //
89
+ //
90
+ //
91
+ return React__default["default"].createElement(websocket.WSMaterialRunboxLegacyRunnerRoom.Provider, {
92
+ enable: !isRunboxRunningCanceling,
93
+ endpoint: "".concat(apiWsOriginUrl, "/runner_room"),
94
+ tokenProvider: resolveRunnerRoomToken,
95
+ connectionTimeout: 8000
96
+ }, React__default["default"].createElement(MaterialRunboxLegacyStdioWrapper["default"], {
97
+ isRunboxJoinError: isRunboxJoinError,
98
+ reconnectRunnerRoomWebSocket: reconnectRunnerRoomWebSocket
99
+ }));
100
+ };
101
+
102
+ exports["default"] = MaterialRunboxLegacyRunnerRoomWrapper;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface MaterialRunboxLegacyStdioWrapperProps {
3
+ isRunboxJoinError: boolean;
4
+ reconnectRunnerRoomWebSocket: () => Promise<void>;
5
+ }
6
+ declare const MaterialRunboxLegacyStdioWrapper: React.FC<MaterialRunboxLegacyStdioWrapperProps>;
7
+ export default MaterialRunboxLegacyStdioWrapper;
@@ -0,0 +1,107 @@
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 MaterialRunboxLegacyContent = require('./MaterialRunboxLegacyContent.js');
8
+ var websocket = require('./websocket.js');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
+
14
+ var RECONNECT_DELAY = 500;
15
+ var MaterialRunboxLegacyStdioWrapper = function MaterialRunboxLegacyStdioWrapper(_ref) {
16
+ var isRunboxJoinError = _ref.isRunboxJoinError,
17
+ reconnectRunnerRoomWebSocket = _ref.reconnectRunnerRoomWebSocket;
18
+ var _React$useState = React__default["default"].useState(''),
19
+ _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
20
+ roomToken = _React$useState2[0],
21
+ setRoomToken = _React$useState2[1];
22
+ var _React$useState3 = React__default["default"].useState(''),
23
+ _React$useState4 = _rollupPluginBabelHelpers.slicedToArray(_React$useState3, 2),
24
+ wsUri = _React$useState4[0],
25
+ setWsUri = _React$useState4[1];
26
+ var _React$useState5 = React__default["default"].useState(null),
27
+ _React$useState6 = _rollupPluginBabelHelpers.slicedToArray(_React$useState5, 2),
28
+ runboxUrl = _React$useState6[0],
29
+ setRunboxUrl = _React$useState6[1];
30
+ var _React$useState7 = React__default["default"].useState(false),
31
+ _React$useState8 = _rollupPluginBabelHelpers.slicedToArray(_React$useState7, 2),
32
+ isRunboxTerminated = _React$useState8[0],
33
+ setRunboxTerminated = _React$useState8[1];
34
+ var _WSMaterialRunboxLega = websocket.WSMaterialRunboxLegacyRunnerRoom.useControls(),
35
+ closeRunnerRoom = _WSMaterialRunboxLega.close;
36
+ var runnerRoomWsStatus = websocket.WSMaterialRunboxLegacyRunnerRoom.useReadyState();
37
+ /**
38
+ * Reconnect runbox.
39
+ */
40
+ var reconnect = function reconnect() {
41
+ setRunboxUrl(null);
42
+ setRunboxTerminated(false);
43
+ setTimeout(function () {
44
+ return void reconnectRunnerRoomWebSocket();
45
+ }, RECONNECT_DELAY);
46
+ };
47
+ //
48
+ //
49
+ //
50
+ websocket.WSMaterialRunboxLegacyRunnerRoom.useMessage(function (message) {
51
+ switch (message.type) {
52
+ case 'ROOM_PREPARED':
53
+ setRoomToken(message.data.roomToken);
54
+ setWsUri(message.data.forwarder.wsUri);
55
+ setRunboxUrl(message.data.forwarder.httpUri);
56
+ break;
57
+ case 'EXECUTE_DONE':
58
+ closeRunnerRoom();
59
+ setRunboxTerminated(true);
60
+ break;
61
+ }
62
+ }, {
63
+ camelize: true
64
+ });
65
+ //
66
+ // Remove runbox url, when websocket is not open state.
67
+ //
68
+ React__default["default"].useEffect(function () {
69
+ if (runnerRoomWsStatus !== WebSocket.OPEN) {
70
+ setRunboxUrl(null);
71
+ }
72
+ }, [runnerRoomWsStatus]);
73
+ //
74
+ //
75
+ //
76
+ var isReady = Boolean(wsUri) && Boolean(roomToken);
77
+ return React__default["default"].createElement(websocket.WSMaterialRunboxLegacyStdio.Provider, {
78
+ enable: isReady,
79
+ endpoint: "".concat(wsUri, "/client/stdio"),
80
+ tokenProvider: function () {
81
+ var _tokenProvider = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
82
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
83
+ while (1) switch (_context.prev = _context.next) {
84
+ case 0:
85
+ return _context.abrupt("return", roomToken);
86
+ case 1:
87
+ case "end":
88
+ return _context.stop();
89
+ }
90
+ }, _callee);
91
+ }));
92
+ function tokenProvider() {
93
+ return _tokenProvider.apply(this, arguments);
94
+ }
95
+ return tokenProvider;
96
+ }(),
97
+ maxRetries: 5,
98
+ heartAttack: true
99
+ }, isReady ? React__default["default"].createElement(MaterialRunboxLegacyContent["default"], {
100
+ runboxUrl: runboxUrl,
101
+ isRunboxJoinError: isRunboxJoinError,
102
+ isRunboxTerminated: isRunboxTerminated,
103
+ reconnect: reconnect
104
+ }) : null);
105
+ };
106
+
107
+ exports["default"] = MaterialRunboxLegacyStdioWrapper;
@@ -0,0 +1,2 @@
1
+ export { default as MaterialRunboxLegacy } from './MaterialRunboxLegacy';
2
+ export type { MaterialRunboxLegacyProps } from './MaterialRunboxLegacy';
@@ -0,0 +1,15 @@
1
+ export declare const en: {
2
+ 'runboxLegacy.status.idle': string;
3
+ 'runboxLegacy.status.connecting': string;
4
+ 'runboxLegacy.status.loading': string;
5
+ 'runboxLegacy.status.done': string;
6
+ 'runboxLegacy.status.disconnected': string;
7
+ 'runboxLegacy.status.terminated': string;
8
+ 'runboxLegacy.reloadButton.tooltip': string;
9
+ 'runboxLegacy.overlay.message.terminated': string;
10
+ 'runboxLegacy.overlay.message.error': string;
11
+ 'runboxLegacy.overlay.message.disconnected': string;
12
+ 'runboxLegacy.overlay.message.connecting': string;
13
+ 'runboxLegacy.share.success': string;
14
+ };
15
+ export declare const ko: typeof en;
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var en = {
6
+ 'runboxLegacy.status.idle': 'Prepare notebook',
7
+ 'runboxLegacy.status.connecting': 'Connecting notebook',
8
+ 'runboxLegacy.status.loading': 'Loading notebook',
9
+ 'runboxLegacy.status.done': 'Connected',
10
+ 'runboxLegacy.status.disconnected': 'Disconnected',
11
+ 'runboxLegacy.status.terminated': 'Terminated',
12
+ 'runboxLegacy.reloadButton.tooltip': 'Reconnecting',
13
+ 'runboxLegacy.overlay.message.terminated': 'The connection has been terminated.\nTo reconnect, click the refresh button at the top.',
14
+ 'runboxLegacy.overlay.message.error': 'An error occurred connecting to the notebook server.\nClose all open notebook windows, please try again in a few minutes.',
15
+ 'runboxLegacy.overlay.message.disconnected': 'Reconnection is being attempted.\nIf the connection is delayed, check the network environment.',
16
+ 'runboxLegacy.overlay.message.connecting': 'Connecting.\nThis may take up to 5 minutes.',
17
+ 'runboxLegacy.share.success': 'Copied share URL to clipboard.'
18
+ };
19
+ var ko = {
20
+ 'runboxLegacy.status.idle': '준비 중...',
21
+ 'runboxLegacy.status.connecting': '페이지 연결 중...',
22
+ 'runboxLegacy.status.loading': '페이지 로드 중...',
23
+ 'runboxLegacy.status.done': '연결됨',
24
+ 'runboxLegacy.status.disconnected': '연결 끊김',
25
+ 'runboxLegacy.status.terminated': '종료됨',
26
+ 'runboxLegacy.reloadButton.tooltip': '재연결 중',
27
+ 'runboxLegacy.overlay.message.terminated': '연결이 종료되었습니다.\n다시 연결하시려면 상단의 새로고침 버튼을 눌려주세요.',
28
+ 'runboxLegacy.overlay.message.error': '노트북 서버에 연결 중 오류가 발생했습니다.\n열려 있는 모든 노트북 창을 닫고, 몇 분 뒤에 다시 시도해 주십시오.',
29
+ 'runboxLegacy.overlay.message.disconnected': '재연결 시도 중 입니다.\n연결이 지연될 시에는 네트워크 환경을 확인해주세요.',
30
+ 'runboxLegacy.overlay.message.connecting': '연결 중 입니다.\n최대 5분까지 소요될 수 있습니다.',
31
+ 'runboxLegacy.share.success': '공유 URL이 클립보드에 복사되었습니다.'
32
+ };
33
+
34
+ exports.en = en;
35
+ exports.ko = ko;
@@ -0,0 +1,10 @@
1
+ import { EliceWebSocketReact } from '@elice/websocket';
2
+ /**
3
+ * Websocket instance for material runbox runner room.
4
+ * - endpoint: `/runner_room`
5
+ */
6
+ export declare const WSMaterialRunboxLegacyRunnerRoom: EliceWebSocketReact;
7
+ /**
8
+ * Websocket instance for material runbox stdio.
9
+ */
10
+ export declare const WSMaterialRunboxLegacyStdio: EliceWebSocketReact;