@elice/material-runbox 1.250313.1 → 1.250317.0-concurrenttutoring.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 (39) hide show
  1. package/cjs/components/material-runbox/MaterialRunboxAlert.d.ts +16 -0
  2. package/cjs/components/material-runbox/MaterialRunboxAlert.js +53 -0
  3. package/cjs/components/material-runbox/MaterialRunboxContent.d.ts +3 -1
  4. package/cjs/components/material-runbox/MaterialRunboxContent.js +7 -4
  5. package/cjs/components/material-runbox/MaterialRunboxHeader.js +2 -2
  6. package/cjs/components/material-runbox/actions/MaterialRunboxActionMenu.d.ts +1 -1
  7. package/cjs/components/material-runbox/actions/MaterialRunboxActionMenu.js +4 -4
  8. package/cjs/components/material-runbox/actions/MaterialRunboxActionRestart.d.ts +1 -1
  9. package/cjs/components/material-runbox/actions/MaterialRunboxActionRestart.js +6 -2
  10. package/cjs/components/material-runbox/hooks/index.d.ts +2 -0
  11. package/cjs/components/material-runbox/hooks/index.js +4 -0
  12. package/cjs/components/material-runbox/hooks/useMaterialRunboxRunboxIdStarterGet.d.ts +15 -0
  13. package/cjs/components/material-runbox/hooks/useMaterialRunboxRunboxIdStarterGet.js +43 -0
  14. package/cjs/components/material-runbox/locales/en.json.js +1 -1
  15. package/cjs/components/material-runbox/locales/ja.json.js +1 -1
  16. package/cjs/components/material-runbox/locales/ko.json.js +1 -1
  17. package/cjs/components/material-runbox/locales/th.json.js +1 -1
  18. package/cjs/components/material-runbox/runtime/Runtime.d.ts +3 -1
  19. package/cjs/components/material-runbox/runtime/Runtime.js +2 -1
  20. package/es/components/material-runbox/MaterialRunboxAlert.d.ts +16 -0
  21. package/es/components/material-runbox/MaterialRunboxAlert.js +49 -0
  22. package/es/components/material-runbox/MaterialRunboxContent.d.ts +3 -1
  23. package/es/components/material-runbox/MaterialRunboxContent.js +7 -4
  24. package/es/components/material-runbox/MaterialRunboxHeader.js +2 -2
  25. package/es/components/material-runbox/actions/MaterialRunboxActionMenu.d.ts +1 -1
  26. package/es/components/material-runbox/actions/MaterialRunboxActionMenu.js +4 -4
  27. package/es/components/material-runbox/actions/MaterialRunboxActionRestart.d.ts +1 -1
  28. package/es/components/material-runbox/actions/MaterialRunboxActionRestart.js +6 -2
  29. package/es/components/material-runbox/hooks/index.d.ts +2 -0
  30. package/es/components/material-runbox/hooks/index.js +2 -0
  31. package/es/components/material-runbox/hooks/useMaterialRunboxRunboxIdStarterGet.d.ts +15 -0
  32. package/es/components/material-runbox/hooks/useMaterialRunboxRunboxIdStarterGet.js +41 -0
  33. package/es/components/material-runbox/locales/en.json.js +1 -1
  34. package/es/components/material-runbox/locales/ja.json.js +1 -1
  35. package/es/components/material-runbox/locales/ko.json.js +1 -1
  36. package/es/components/material-runbox/locales/th.json.js +1 -1
  37. package/es/components/material-runbox/runtime/Runtime.d.ts +3 -1
  38. package/es/components/material-runbox/runtime/Runtime.js +2 -1
  39. package/package.json +4 -4
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { RunboxGetAndListResponse } from '@elice/openapi-client-material-runbox';
3
+ export interface MaterialRunboxAlertProps {
4
+ /** Runbox */
5
+ runbox: RunboxGetAndListResponse;
6
+ /** Course ID. */
7
+ courseId: number;
8
+ /** User ID for tutoring. */
9
+ studentUserId?: number;
10
+ /** User ID for tutor. */
11
+ userId?: number;
12
+ /** Whether tutoring is enabled. */
13
+ isTutoring: boolean;
14
+ }
15
+ declare const MaterialRunboxAlert: React.FC<MaterialRunboxAlertProps>;
16
+ export default MaterialRunboxAlert;
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var intl = require('@elice/intl');
7
+ var openapiClientMaterialRunbox = require('@elice/openapi-client-material-runbox');
8
+ var material = require('@mui/material');
9
+ require('react');
10
+ require('@elice/mui-x-snackbar');
11
+ require('@elice/runbox-client');
12
+ require('./contexts/MaterialRunboxApiContext.js');
13
+ require('./contexts/MaterialRunboxCommandContext.js');
14
+ require('./contexts/MaterialRunboxContext.js');
15
+ require('@tanstack/react-query');
16
+ var useMaterialRunboxRunboxIdStarterGet = require('./hooks/useMaterialRunboxRunboxIdStarterGet.js');
17
+
18
+ var MaterialRunboxAlert = function MaterialRunboxAlert(_ref) {
19
+ var runbox = _ref.runbox,
20
+ courseId = _ref.courseId,
21
+ studentUserId = _ref.studentUserId,
22
+ userId = _ref.userId,
23
+ isTutoring = _ref.isTutoring;
24
+ var intl$1 = intl.useRawEliceIntl();
25
+ var _useMaterialRunboxRun = useMaterialRunboxRunboxIdStarterGet.useMaterialRunboxRunboxIdStarterGet({
26
+ runboxId: runbox.id,
27
+ courseId: courseId,
28
+ userId: studentUserId !== null && studentUserId !== void 0 ? studentUserId : 0,
29
+ enabled: Boolean(runbox.id && courseId && studentUserId && isTutoring)
30
+ }),
31
+ starter = _useMaterialRunboxRun.data;
32
+ var isStudentRunboxRunning = (starter === null || starter === void 0 ? void 0 : starter.status) === openapiClientMaterialRunbox.RunboxStarterGetResponseStatusEnum.Running && studentUserId !== userId;
33
+ //
34
+ //
35
+ //
36
+ if (!isStudentRunboxRunning || !isTutoring) {
37
+ return null;
38
+ }
39
+ return jsxRuntime.jsx(material.Alert, {
40
+ severity: "warning",
41
+ sx: {
42
+ width: '100%',
43
+ borderRadius: '0'
44
+ },
45
+ children: jsxRuntime.jsx(material.AlertTitle, {
46
+ children: intl$1.formatMessage({
47
+ id: 'runbox.alert.title'
48
+ })
49
+ })
50
+ });
51
+ };
52
+
53
+ exports.default = MaterialRunboxAlert;
@@ -18,7 +18,9 @@ export interface MaterialRunboxContentProps {
18
18
  /** */
19
19
  enabledLxpPlan?: boolean;
20
20
  /** User ID for tutoring. */
21
- userId: number;
21
+ studentUserId?: number;
22
+ /** User ID for tutor. */
23
+ userId?: number;
22
24
  /** Whether tutoring is enabled. */
23
25
  isTutoring: boolean;
24
26
  /** Used for submit log score tag color. */
@@ -13,6 +13,7 @@ var reactQuery = require('@tanstack/react-query');
13
13
  var MaterialRunboxApiContext = require('./contexts/MaterialRunboxApiContext.js');
14
14
  var MaterialRunboxCommandContext = require('./contexts/MaterialRunboxCommandContext.js');
15
15
  var MaterialRunboxContext = require('./contexts/MaterialRunboxContext.js');
16
+ var MaterialRunboxAlert = require('./MaterialRunboxAlert.js');
16
17
  var MaterialRunboxBody = require('./MaterialRunboxBody.js');
17
18
  var MaterialRunboxFooter = require('./MaterialRunboxFooter.js');
18
19
  var MaterialRunboxHeader = require('./MaterialRunboxHeader.js');
@@ -33,6 +34,7 @@ var MaterialRunboxContent = function MaterialRunboxContent(_ref) {
33
34
  var runboxId = _ref.runboxId,
34
35
  courseId = _ref.courseId,
35
36
  enabledLxpPlan = _ref.enabledLxpPlan,
37
+ studentUserId = _ref.studentUserId,
36
38
  userId = _ref.userId,
37
39
  _ref$isTutoring = _ref.isTutoring,
38
40
  isTutoring = _ref$isTutoring === void 0 ? false : _ref$isTutoring,
@@ -65,7 +67,7 @@ var MaterialRunboxContent = function MaterialRunboxContent(_ref) {
65
67
  skip: 0,
66
68
  count: 1,
67
69
  eliceCourseId: courseId,
68
- userId: userId
70
+ userId: studentUserId
69
71
  }, {
70
72
  signal: signal
71
73
  }).then(function (runtimes) {
@@ -169,6 +171,7 @@ var MaterialRunboxContent = function MaterialRunboxContent(_ref) {
169
171
  runtime: runtime,
170
172
  runtimeTemplate: runtimeTemplate,
171
173
  courseId: courseId,
174
+ studentUserId: studentUserId,
172
175
  userId: userId,
173
176
  isTutoring: isTutoring,
174
177
  refetch: refetch,
@@ -186,7 +189,7 @@ var MaterialRunboxContent = function MaterialRunboxContent(_ref) {
186
189
  runboxId: id,
187
190
  eliceCourseId: courseId,
188
191
  runboxHeartbeatPostRequest: {
189
- userId: userId
192
+ userId: studentUserId
190
193
  }
191
194
  }, {
192
195
  signal: signal
@@ -198,14 +201,14 @@ var MaterialRunboxContent = function MaterialRunboxContent(_ref) {
198
201
  return materialRunboxApi.runbox.runboxRunboxIdQuotaGet({
199
202
  runboxId: id,
200
203
  eliceCourseId: courseId,
201
- userId: userId
204
+ userId: studentUserId
202
205
  }, {
203
206
  signal: signal
204
207
  });
205
208
  },
206
209
  onRunboxRefetchRequest: refetch,
207
210
  children: jsxRuntime.jsxs(StyledRunboxContainer, {
208
- children: [jsxRuntime.jsx(MaterialRunboxHeader.default, Object.assign({}, props)), jsxRuntime.jsx(MaterialRunboxBody.default, Object.assign({}, props)), jsxRuntime.jsx(MaterialRunboxFooter.default, Object.assign({}, props))]
211
+ children: [jsxRuntime.jsx(MaterialRunboxHeader.default, Object.assign({}, props)), jsxRuntime.jsx(MaterialRunboxAlert.default, Object.assign({}, props)), jsxRuntime.jsx(MaterialRunboxBody.default, Object.assign({}, props)), jsxRuntime.jsx(MaterialRunboxFooter.default, Object.assign({}, props))]
209
212
  })
210
213
  })
211
214
  });
@@ -43,7 +43,7 @@ var MaterialRunboxHeader = function MaterialRunboxHeader(_ref3) {
43
43
  runtime = _ref3.runtime,
44
44
  runtimeTemplate = _ref3.runtimeTemplate,
45
45
  courseId = _ref3.courseId,
46
- userId = _ref3.userId,
46
+ studentUserId = _ref3.studentUserId,
47
47
  isTutoring = _ref3.isTutoring,
48
48
  refetch = _ref3.refetch,
49
49
  getAchievementColor = _ref3.getAchievementColor;
@@ -157,7 +157,7 @@ var MaterialRunboxHeader = function MaterialRunboxHeader(_ref3) {
157
157
  runbox: runbox,
158
158
  runtime: runtime,
159
159
  courseId: courseId,
160
- userId: userId,
160
+ studentUserId: studentUserId,
161
161
  isTutoring: isTutoring,
162
162
  menuAnchorEl: menuAnchorEl,
163
163
  refetch: refetch,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { RuntimeProps } from '../runtime/Runtime';
3
- type MaterialRunboxActionMenuProps = Pick<RuntimeProps, 'runbox' | 'runtime' | 'courseId' | 'refetch' | 'userId' | 'isTutoring' | 'getAchievementColor'> & {
3
+ type MaterialRunboxActionMenuProps = Pick<RuntimeProps, 'runbox' | 'runtime' | 'courseId' | 'refetch' | 'studentUserId' | 'isTutoring' | 'getAchievementColor'> & {
4
4
  menuAnchorEl: null | HTMLButtonElement;
5
5
  handleMenuClose: () => void;
6
6
  };
@@ -22,7 +22,7 @@ var MaterialRunboxActionMenu = function MaterialRunboxActionMenu(_ref) {
22
22
  var runbox = _ref.runbox,
23
23
  runtime = _ref.runtime,
24
24
  courseId = _ref.courseId,
25
- userId = _ref.userId,
25
+ studentUserId = _ref.studentUserId,
26
26
  isTutoring = _ref.isTutoring,
27
27
  menuAnchorEl = _ref.menuAnchorEl,
28
28
  refetch = _ref.refetch,
@@ -60,12 +60,12 @@ var MaterialRunboxActionMenu = function MaterialRunboxActionMenu(_ref) {
60
60
  runbox: runbox,
61
61
  runtime: runtime,
62
62
  courseId: courseId,
63
- userId: userId,
63
+ studentUserId: studentUserId,
64
64
  refetch: refetch,
65
65
  handleMenuClose: handleMenuClose
66
- }), isTutoring ? jsxRuntime.jsx(MaterialRunboxActionSubmitLog.default, {
66
+ }), isTutoring && studentUserId ? jsxRuntime.jsx(MaterialRunboxActionSubmitLog.default, {
67
67
  runboxId: runbox === null || runbox === void 0 ? void 0 : runbox.id,
68
- userId: userId,
68
+ userId: studentUserId,
69
69
  eliceCourseId: courseId,
70
70
  getAchievementColor: getAchievementColor,
71
71
  handleMenuClose: handleMenuClose
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { RuntimeProps } from '../runtime/Runtime';
3
- type MaterialRunboxActionRestartProps = Pick<RuntimeProps, 'runbox' | 'runtime' | 'courseId' | 'refetch' | 'userId'> & {
3
+ type MaterialRunboxActionRestartProps = Pick<RuntimeProps, 'runbox' | 'runtime' | 'courseId' | 'refetch' | 'studentUserId'> & {
4
4
  handleMenuClose: () => void;
5
5
  };
6
6
  declare const MaterialRunboxActionRestart: React.FC<MaterialRunboxActionRestartProps>;
@@ -11,6 +11,10 @@ var proSolidSvgIcons = require('@fortawesome/pro-solid-svg-icons');
11
11
  var lab = require('@mui/lab');
12
12
  var material = require('@mui/material');
13
13
  var useRunboxControl = require('../hooks/useRunboxControl.js');
14
+ require('@tanstack/react-query');
15
+ require('../contexts/MaterialRunboxApiContext.js');
16
+ require('../contexts/MaterialRunboxCommandContext.js');
17
+ require('../contexts/MaterialRunboxContext.js');
14
18
 
15
19
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
16
20
 
@@ -23,7 +27,7 @@ var MaterialRunboxActionRestart = function MaterialRunboxActionRestart(_ref) {
23
27
  var runbox = _ref.runbox,
24
28
  courseId = _ref.courseId,
25
29
  refetch = _ref.refetch,
26
- userId = _ref.userId,
30
+ studentUserId = _ref.studentUserId,
27
31
  handleMenuClose = _ref.handleMenuClose;
28
32
  var intl$1 = intl.useRawEliceIntl();
29
33
  var _React$useState = React__default.default.useState(false),
@@ -39,7 +43,7 @@ var MaterialRunboxActionRestart = function MaterialRunboxActionRestart(_ref) {
39
43
  runbox: runbox,
40
44
  courseId: courseId,
41
45
  refetch: refetch,
42
- userId: userId
46
+ userId: studentUserId
43
47
  }),
44
48
  start = _useRunboxControl.start;
45
49
  /**
@@ -1 +1,3 @@
1
1
  export * from './useRunboxControl';
2
+ export * from './useInfiniteRunboxRunboxIdGrade';
3
+ export * from './useMaterialRunboxRunboxIdStarterGet';
@@ -1,7 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var useRunboxControl = require('./useRunboxControl.js');
4
+ var useInfiniteRunboxRunboxIdGrade = require('./useInfiniteRunboxRunboxIdGrade.js');
5
+ var useMaterialRunboxRunboxIdStarterGet = require('./useMaterialRunboxRunboxIdStarterGet.js');
4
6
 
5
7
 
6
8
 
7
9
  exports.useRunboxControl = useRunboxControl.useRunboxControl;
10
+ exports.useInfiniteRunboxRunboxIdGrade = useInfiniteRunboxRunboxIdGrade.useInfiniteRunboxRunboxIdGrade;
11
+ exports.useMaterialRunboxRunboxIdStarterGet = useMaterialRunboxRunboxIdStarterGet.useMaterialRunboxRunboxIdStarterGet;
@@ -0,0 +1,15 @@
1
+ import type { RunboxStarterGetResponse } from '@elice/openapi-client-material-runbox';
2
+ interface MaterialRunboxRunboxIdStarterGetParams {
3
+ runboxId: string;
4
+ userId: number;
5
+ courseId: number;
6
+ enabled?: boolean;
7
+ }
8
+ interface MaterialRunboxRunboxIdStarterGetReturn {
9
+ data: RunboxStarterGetResponse | undefined;
10
+ isLoading: boolean;
11
+ isError: boolean;
12
+ refetch: () => void;
13
+ }
14
+ export declare const useMaterialRunboxRunboxIdStarterGet: ({ runboxId, userId, courseId, enabled, }: MaterialRunboxRunboxIdStarterGetParams) => MaterialRunboxRunboxIdStarterGetReturn;
15
+ export {};
@@ -0,0 +1,43 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var reactQuery = require('@tanstack/react-query');
5
+ var MaterialRunboxApiContext = require('../contexts/MaterialRunboxApiContext.js');
6
+ require('../contexts/MaterialRunboxCommandContext.js');
7
+ require('../contexts/MaterialRunboxContext.js');
8
+
9
+ var useMaterialRunboxRunboxIdStarterGet = function useMaterialRunboxRunboxIdStarterGet(_ref) {
10
+ var runboxId = _ref.runboxId,
11
+ userId = _ref.userId,
12
+ courseId = _ref.courseId,
13
+ _ref$enabled = _ref.enabled,
14
+ enabled = _ref$enabled === void 0 ? true : _ref$enabled;
15
+ var materialRunboxApi = MaterialRunboxApiContext.useMaterialRunboxApiContext();
16
+ var _return = React.useRef({});
17
+ //
18
+ var _useQuery = reactQuery.useQuery({
19
+ queryKey: ['materialRunboxApi.runbox.runboxRunboxIdStarterGet', runboxId, userId],
20
+ queryFn: function queryFn() {
21
+ return materialRunboxApi.runbox.runboxRunboxIdStarterGet({
22
+ userId: userId,
23
+ runboxId: runboxId,
24
+ eliceCourseId: courseId
25
+ });
26
+ },
27
+ enabled: enabled
28
+ }),
29
+ data = _useQuery.data,
30
+ isLoading = _useQuery.isLoading,
31
+ isError = _useQuery.isError,
32
+ refetch = _useQuery.refetch;
33
+ //
34
+ //
35
+ //
36
+ _return.current.data = data;
37
+ _return.current.isLoading = isLoading;
38
+ _return.current.isError = isError;
39
+ _return.current.refetch = refetch;
40
+ return _return.current;
41
+ };
42
+
43
+ exports.useMaterialRunboxRunboxIdStarterGet = useMaterialRunboxRunboxIdStarterGet;
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var messageEn = {"runbox.action.autoShutdown.title":"Always on","runbox.action.autoShutdown.tooltip.disabled":"This runtime automatically shuts down after {time}, which is set as the per-session usage time.","runbox.action.autoShutdown.tooltip.enabled":"If set to always on, the runtime will not shut down even if you leave the learning {_termLibraryLecturePage}. However, it will automatically shut down after {time}, which is set as the session-specific usage time of the runtime.","runbox.action.grade.dialog.description.error":"An error occurred while grading the code.","runbox.action.grade.dialog.description.success":"Grading completed successfully.","runbox.action.grade.dialog.title":"Grading result","runbox.action.grade.noti.error":"An error occurred while grading the code.","runbox.action.grade.title":"Submit","runbox.action.grade.tooltip.onProgress":"Grading is in progress. Please wait for a moment. Depending on the {_termLibraryLecturePage}, grading may take up to 3 minutes.","runbox.action.reset.dialog.actions.confirm":"Reset","runbox.action.reset.dialog.description":"Are you sure you want to reset the runbox code? Your codes will be overwritten to default code of {_termLibraryLecturePage}.\nAfter reset, the runbox session will be refreshed.","runbox.action.reset.noti.error":"An error occurred while initializing the runbox code.","runbox.action.reset.title":"Reset code","runbox.action.restart.dialog.actions.confirm":"Restart","runbox.action.restart.dialog.description":"Are you sure you want to restart the runbox?","runbox.action.restart.title":"Restart runbox","runbox.action.share.snackbar.copied.fail":"Copying the runbox URL failed, please try again","runbox.action.share.snackbar.copied.success":"The runbox URL was copied successfully.","runbox.action.share.title":"Share runbox URL","runbox.action.submitCountInfo.dialog.description":"You have exceeded the submission count limit","runbox.action.submitCountInfo.dialog.title":"Limit the number of submissions","runbox.action.submitCountInfo.tooltip.disabled":"The submission count has been used up","runbox.action.submitLog.dialog.download.tooltip":"Download submitted file","runbox.action.submitLog.dialog.title":"Submission History","runbox.action.submitLog.empty":"No submission history exists.","runbox.action.submitLog.title":"Runbox Submission History","runbox.common.close":"Close","runbox.common.retry":"Retry","runbox.common.score":"{score} points","runbox.common.support":"Support","runbox.context.command.ping.error":"An error occurred while processing task.","runbox.header.submitInfo":"{isIndividual, select, true {} other {Team}} submission count | {remainCount}/{totalCount} times left {isDailyLimitEnabled, select, true {today} other {}}","runbox.runtime.message.lxp_plan_required":"Your institution currently does not support Runbox course materials.\nPlease contact your institution administrator for more details.","runbox.runtime.message.runbox_unavailable":"Runbox Unavailable","runbox.runtime.message.startError":"There was an error starting the runbox.","runbox.runtime.overlay.assigned.description":"(3 of 3)\nRunbox is running.\nPlease wait!","runbox.runtime.overlay.assigned.description_timeout":"(3 of 3)\nRunning the runbox is taking longer than we expected.\nPlease wait a little longer without refreshing!","runbox.runtime.overlay.queued.description":"(2 of 3)\nCurrently queued {waiters} times...","runbox.runtime.overlay.queued.description_zero":"(2 of 3)\nRunbox will run soon","runbox.runtime.overlay.terminated.description.default":"The runtime terminated due to an unexpected problem.\nClick the button below to reconnect to the runbox.","runbox.runtime.overlay.terminated.description.general":"The runtime connected to the runbox has ended.\nTo reconnect to the runbox, click the button below.","runbox.runtime.overlay.terminated.description.os_disk_is_full":"Runtime has ended because the disk is full.\nIf you have recently deleted a runbox, it may take some time to reflect.","runbox.runtime.overlay.terminated.description.quota_exceeded":"The runtime has ended because the runtime has expired.","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"Runbox has been running for 24 hours and the runtime has ended.\nTo reconnect to the runbox, click the button below.","runbox.runtime.overlay.terminated.description.unexpected":"If the problem persists, please contact customer service.","runbox.runtime.overlay.terminated.restart":"Reconnect","runbox.runtime.overlay.terminated.title":"Runtime disconnected"};
5
+ var messageEn = {"runbox.action.autoShutdown.title":"Always on","runbox.action.autoShutdown.tooltip.disabled":"This runtime automatically shuts down after {time}, which is set as the per-session usage time.","runbox.action.autoShutdown.tooltip.enabled":"If set to always on, the runtime will not shut down even if you leave the learning {_termLibraryLecturePage}. However, it will automatically shut down after {time}, which is set as the session-specific usage time of the runtime.","runbox.action.grade.dialog.description.error":"An error occurred while grading the code.","runbox.action.grade.dialog.description.success":"Grading completed successfully.","runbox.action.grade.dialog.title":"Grading result","runbox.action.grade.noti.error":"An error occurred while grading the code.","runbox.action.grade.title":"Submit","runbox.action.grade.tooltip.onProgress":"Grading is in progress. Please wait for a moment. Depending on the {_termLibraryLecturePage}, grading may take up to 3 minutes.","runbox.action.reset.dialog.actions.confirm":"Reset","runbox.action.reset.dialog.description":"Are you sure you want to reset the runbox code? Your codes will be overwritten to default code of {_termLibraryLecturePage}.\nAfter reset, the runbox session will be refreshed.","runbox.action.reset.noti.error":"An error occurred while initializing the runbox code.","runbox.action.reset.title":"Reset code","runbox.action.restart.dialog.actions.confirm":"Restart","runbox.action.restart.dialog.description":"Are you sure you want to restart the runbox?","runbox.action.restart.title":"Restart runbox","runbox.action.share.snackbar.copied.fail":"Copying the runbox URL failed, please try again","runbox.action.share.snackbar.copied.success":"The runbox URL was copied successfully.","runbox.action.share.title":"Share runbox URL","runbox.action.submitCountInfo.dialog.description":"You have exceeded the submission count limit","runbox.action.submitCountInfo.dialog.title":"Limit the number of submissions","runbox.action.submitCountInfo.tooltip.disabled":"The submission count has been used up","runbox.action.submitLog.dialog.download.tooltip":"Download submitted file","runbox.action.submitLog.dialog.title":"Submission History","runbox.action.submitLog.empty":"No submission history exists.","runbox.action.submitLog.title":"Runbox Submission History","runbox.alert.title":"You have connected to the student's running environment, and the runtime session time is being deducted. Please note that if the student exits Runbox, the time will continue to be deducted as long as tutoring continues.","runbox.common.close":"Close","runbox.common.retry":"Retry","runbox.common.score":"{score} points","runbox.common.support":"Support","runbox.context.command.ping.error":"An error occurred while processing task.","runbox.header.submitInfo":"{isIndividual, select, true {} other {Team}} submission count | {remainCount}/{totalCount} times left {isDailyLimitEnabled, select, true {today} other {}}","runbox.runtime.message.lxp_plan_required":"Your institution currently does not support Runbox course materials.\nPlease contact your institution administrator for more details.","runbox.runtime.message.runbox_unavailable":"Runbox Unavailable","runbox.runtime.message.startError":"There was an error starting the runbox.","runbox.runtime.overlay.assigned.description":"(3 of 3)\nRunbox is running.\nPlease wait!","runbox.runtime.overlay.assigned.description_timeout":"(3 of 3)\nRunning the runbox is taking longer than we expected.\nPlease wait a little longer without refreshing!","runbox.runtime.overlay.queued.description":"(2 of 3)\nCurrently queued {waiters} times...","runbox.runtime.overlay.queued.description_zero":"(2 of 3)\nRunbox will run soon","runbox.runtime.overlay.terminated.description.default":"The runtime terminated due to an unexpected problem.\nClick the button below to reconnect to the runbox.","runbox.runtime.overlay.terminated.description.general":"The runtime connected to the runbox has ended.\nTo reconnect to the runbox, click the button below.","runbox.runtime.overlay.terminated.description.os_disk_is_full":"Runtime has ended because the disk is full.\nIf you have recently deleted a runbox, it may take some time to reflect.","runbox.runtime.overlay.terminated.description.quota_exceeded":"The runtime has ended because the runtime has expired.","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"Runbox has been running for 24 hours and the runtime has ended.\nTo reconnect to the runbox, click the button below.","runbox.runtime.overlay.terminated.description.unexpected":"If the problem persists, please contact customer service.","runbox.runtime.overlay.terminated.restart":"Reconnect","runbox.runtime.overlay.terminated.title":"Runtime disconnected"};
6
6
 
7
7
  exports.default = messageEn;
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var ja = {"runbox.action.autoShutdown.title":"常にオン","runbox.action.autoShutdown.tooltip.disabled":"このランタイムは、セッションごとの利用時間として設定された{time}後に自動的にシャットダウンします。","runbox.action.autoShutdown.tooltip.enabled":"常にオンに設定した場合、ランタイムは学習 {_termLibraryLecturePage} を離れてもシャットダウンしません。ただし、ランタイムのセッション固有の使用時間として設定された {time} 後には自動的にシャットダウンします。","runbox.action.grade.dialog.description.error":"コードの採点中にエラーが発生しました。","runbox.action.grade.dialog.description.success":"成績評価が成功裏に完了しました。","runbox.action.grade.dialog.title":"成績結果","runbox.action.grade.noti.error":"コードの採点中にエラーが発生しました。","runbox.action.grade.title":"提出","runbox.action.grade.tooltip.onProgress":"採点中です。しばらくお待ちください。{_termLibraryLecturePage}によって、採点には最大3分かかる場合があります。","runbox.action.reset.dialog.actions.confirm":"リセット","runbox.action.reset.dialog.description":"ランボックスのコードをリセットしてもよろしいですか? あなたのコードは {_termLibraryLecturePage} のデフォルトコードに上書きされます。\nリセット後、ランボックスのセッションがリフレッシュされます。","runbox.action.reset.noti.error":"ランボックスコードの初期化中にエラーが発生しました。","runbox.action.reset.title":"リセットコード","runbox.action.restart.dialog.actions.confirm":"再起動","runbox.action.restart.dialog.description":"再起動してもよろしいですか?","runbox.action.restart.title":"ランボックスを再起動してください","runbox.action.share.snackbar.copied.fail":"ランボックスのURLをコピーすることに失敗しました。もう一度お試しください。","runbox.action.share.snackbar.copied.success":"ランボックスのURLが正常にコピーされました。","runbox.action.share.title":"ランボックスのURLを共有してください。","runbox.action.submitCountInfo.dialog.description":"提出回数の制限を超えています","runbox.action.submitCountInfo.dialog.title":"投稿の数を制限してください。","runbox.action.submitCountInfo.tooltip.disabled":"提出回数が使い果たされました。","runbox.action.submitLog.dialog.download.tooltip":"提出ファイルをダウンロード","runbox.action.submitLog.dialog.title":"提出履歴","runbox.action.submitLog.empty":"提出履歴が存在しません。","runbox.action.submitLog.title":"ランボックス提出履歴","runbox.common.close":"閉じる","runbox.common.retry":"リトライ","runbox.common.score":"{score}点","runbox.common.support":"サポート","runbox.context.command.ping.error":"タスクの処理中にエラーが発生しました。","runbox.header.submitInfo":"{isIndividual, select, true {個人} other {チーム}}の提出回数 | {remainCount}/{totalCount} 回残っています {isDailyLimitEnabled, select, true {今日} other {}}","runbox.runtime.message.lxp_plan_required":"現在、所属機関ではRunboxの学習資料を利用できません。\n詳細については機関の管理者にお問い合わせください。","runbox.runtime.message.runbox_unavailable":"Runboxは利用できません","runbox.runtime.message.startError":"ランボックスの起動中にエラーが発生しました。","runbox.runtime.overlay.assigned.description":"Runbox が実行中です。\nお待ちください!","runbox.runtime.overlay.assigned.description_timeout":"ランボックスを実行する時間が私たちの予想よりも長くかかっています。\n更新せずにもう少し待ってください!","runbox.runtime.overlay.queued.description":"現在{waiters}回待機中...","runbox.runtime.overlay.queued.description_zero":"Runboxはもうすぐ実行されます。","runbox.runtime.overlay.terminated.description.default":"ランタイムは予期せぬ問題により終了しました。\n再接続するには、下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.description.general":"ランボックスに接続されているランタイムが終了しました。\nランボックスに再接続するには、以下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.description.os_disk_is_full":"ディスクがいっぱいになったため、ランタイムが終了しました。\n最近ランボックスを削除した場合、反映には時間がかかることがあります。","runbox.runtime.overlay.terminated.description.quota_exceeded":"ランタイムが期限切れになったため、ランタイムが終了しました。","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"ランボックスは24時間稼働しており、ランタイムが終了しました。\nランボックスに再接続するには、以下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.description.unexpected":"問題が解決しない場合は、カスタマーサービスにお問い合わせください。","runbox.runtime.overlay.terminated.restart":"再接続","runbox.runtime.overlay.terminated.title":"ランタイムが切断されました。"};
5
+ var ja = {"runbox.action.autoShutdown.title":"常にオン","runbox.action.autoShutdown.tooltip.disabled":"このランタイムは、セッションごとの利用時間として設定された{time}後に自動的にシャットダウンします。","runbox.action.autoShutdown.tooltip.enabled":"常にオンに設定した場合、ランタイムは学習 {_termLibraryLecturePage} を離れてもシャットダウンしません。ただし、ランタイムのセッション固有の使用時間として設定された {time} 後には自動的にシャットダウンします。","runbox.action.grade.dialog.description.error":"コードの採点中にエラーが発生しました。","runbox.action.grade.dialog.description.success":"成績評価が成功裏に完了しました。","runbox.action.grade.dialog.title":"成績結果","runbox.action.grade.noti.error":"コードの採点中にエラーが発生しました。","runbox.action.grade.title":"提出","runbox.action.grade.tooltip.onProgress":"採点中です。しばらくお待ちください。{_termLibraryLecturePage}によって、採点には最大3分かかる場合があります。","runbox.action.reset.dialog.actions.confirm":"リセット","runbox.action.reset.dialog.description":"ランボックスのコードをリセットしてもよろしいですか? あなたのコードは {_termLibraryLecturePage} のデフォルトコードに上書きされます。\nリセット後、ランボックスのセッションがリフレッシュされます。","runbox.action.reset.noti.error":"ランボックスコードの初期化中にエラーが発生しました。","runbox.action.reset.title":"リセットコード","runbox.action.restart.dialog.actions.confirm":"再起動","runbox.action.restart.dialog.description":"再起動してもよろしいですか?","runbox.action.restart.title":"ランボックスを再起動してください","runbox.action.share.snackbar.copied.fail":"ランボックスのURLをコピーすることに失敗しました。もう一度お試しください。","runbox.action.share.snackbar.copied.success":"ランボックスのURLが正常にコピーされました。","runbox.action.share.title":"ランボックスのURLを共有してください。","runbox.action.submitCountInfo.dialog.description":"提出回数の制限を超えています","runbox.action.submitCountInfo.dialog.title":"投稿の数を制限してください。","runbox.action.submitCountInfo.tooltip.disabled":"提出回数が使い果たされました。","runbox.action.submitLog.dialog.download.tooltip":"提出ファイルをダウンロード","runbox.action.submitLog.dialog.title":"提出履歴","runbox.action.submitLog.empty":"提出履歴が存在しません。","runbox.action.submitLog.title":"ランボックス提出履歴","runbox.alert.title":"学生の実行中の環境に接続しているため、ランタイムセッション時間が減少しています。学生がランボックスを終了しても、チュータリングを続けると時間が引き続き減少するのでご注意ください。","runbox.common.close":"閉じる","runbox.common.retry":"リトライ","runbox.common.score":"{score}点","runbox.common.support":"サポート","runbox.context.command.ping.error":"タスクの処理中にエラーが発生しました。","runbox.header.submitInfo":"{isIndividual, select, true {個人} other {チーム}}の提出回数 | {remainCount}/{totalCount} 回残っています {isDailyLimitEnabled, select, true {今日} other {}}","runbox.runtime.message.lxp_plan_required":"現在、所属機関ではRunboxの学習資料を利用できません。\n詳細については機関の管理者にお問い合わせください。","runbox.runtime.message.runbox_unavailable":"Runboxは利用できません","runbox.runtime.message.startError":"ランボックスの起動中にエラーが発生しました。","runbox.runtime.overlay.assigned.description":"Runbox が実行中です。\nお待ちください!","runbox.runtime.overlay.assigned.description_timeout":"ランボックスを実行する時間が私たちの予想よりも長くかかっています。\n更新せずにもう少し待ってください!","runbox.runtime.overlay.queued.description":"現在{waiters}回待機中...","runbox.runtime.overlay.queued.description_zero":"Runboxはもうすぐ実行されます。","runbox.runtime.overlay.terminated.description.default":"ランタイムは予期せぬ問題により終了しました。\n再接続するには、下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.description.general":"ランボックスに接続されているランタイムが終了しました。\nランボックスに再接続するには、以下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.description.os_disk_is_full":"ディスクがいっぱいになったため、ランタイムが終了しました。\n最近ランボックスを削除した場合、反映には時間がかかることがあります。","runbox.runtime.overlay.terminated.description.quota_exceeded":"ランタイムが期限切れになったため、ランタイムが終了しました。","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"ランボックスは24時間稼働しており、ランタイムが終了しました。\nランボックスに再接続するには、以下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.description.unexpected":"問題が解決しない場合は、カスタマーサービスにお問い合わせください。","runbox.runtime.overlay.terminated.restart":"再接続","runbox.runtime.overlay.terminated.title":"ランタイムが切断されました。"};
6
6
 
7
7
  exports.default = ja;
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var messageKo = {"runbox.action.autoShutdown.title":"항상 켜두기","runbox.action.autoShutdown.tooltip.disabled":"해당 런타임은 세션별 사용 시간으로 설정된 {time}이 지나면 자동으로 종료됩니다.","runbox.action.autoShutdown.tooltip.enabled":"항상 켜두기를 설정하면 학습 {_termLibraryLecturePage} 밖으로 나가도 런타임이 종료되지 않습니다. 다만, 해당 런타임의 세션별 사용 시간으로 설정된 {time}이 지나면 자동으로 종료됩니다.","runbox.action.grade.dialog.description.error":"채점 중에 오류가 발생했습니다.","runbox.action.grade.dialog.description.success":"채점이 완료되었습니다.","runbox.action.grade.dialog.title":"채점 결과","runbox.action.grade.noti.error":"코드를 채점하는 도중 오류가 발생했습니다.","runbox.action.grade.title":"제출","runbox.action.grade.tooltip.onProgress":"코드 채점이 진행 중 입니다. 잠시만 기다려 주세요. 실습에 따라 채점이 최대 3분까지 소요될 수 있습니다.","runbox.action.reset.dialog.actions.confirm":"초기화","runbox.action.reset.dialog.description":"런박스 코드를 초기화하시겠습니까? 초기화 시 학습{_termLibraryLecturePage}의 코드가 기본 코드로 덮어씌워집니다.\n초기화 이후 런박스 세션이 새로고침 됩니다.","runbox.action.reset.noti.error":"런박스 코드를 초기화 하는 중에 오류가 발생했습니다.","runbox.action.reset.title":"코드 초기화","runbox.action.restart.dialog.actions.confirm":"재시작","runbox.action.restart.dialog.description":"런박스를 재시작 하시겠습니까?","runbox.action.restart.title":"런박스 재시작","runbox.action.share.snackbar.copied.fail":"런박스 URL을 복사에 실패했습니다. 다시 시도해주세요.","runbox.action.share.snackbar.copied.success":"런박스 URL을 복사하였습니다.","runbox.action.share.title":"런박스 URL 복사","runbox.action.submitCountInfo.dialog.description":"제출 횟수 제한을 초과했습니다.","runbox.action.submitCountInfo.dialog.title":"제출 횟수 제한","runbox.action.submitCountInfo.tooltip.disabled":"제출 횟수를 모두 사용했습니다.","runbox.action.submitLog.dialog.download.tooltip":"제출 파일 다운로드","runbox.action.submitLog.dialog.title":"제출 이력","runbox.action.submitLog.empty":"제출 이력이 존재하지 않습니다.","runbox.action.submitLog.title":"런박스 제출 이력","runbox.common.close":"닫기","runbox.common.retry":"재시도","runbox.common.score":"{score}점","runbox.common.support":"고객센터","runbox.context.command.ping.error":"런박스 작업을 수행하는 도중 오류가 발생했습니다.","runbox.header.submitInfo":"{isIndividual, select, true {} other {팀}} 제출 횟수 | {isDailyLimitEnabled, select, true {오늘} other {}} {remainCount}/{totalCount}회 남음","runbox.runtime.message.lxp_plan_required":"현재 기관에서는 런박스 수업 자료를 학습할 수 없습니다.\n자세한 사항은 기관 관리자에게 문의하세요.","runbox.runtime.message.runbox_unavailable":"런박스 사용 불가","runbox.runtime.message.startError":"런박스를 시작하는 중에 오류가 발생했습니다.","runbox.runtime.overlay.assigned.description":"(3 / 3)\n런박스가 실행 중입니다.\n잠시만 기다려주세요!","runbox.runtime.overlay.assigned.description_timeout":"(3 / 3)\n런박스를 실행하는데\n예상보다 시간이 소요되고 있습니다.\n새로고침하지 말고 조금만 더 기다려주세요!","runbox.runtime.overlay.queued.description":"(2 / 3)\n현재 {waiters}번째 대기 중입니다...","runbox.runtime.overlay.queued.description_zero":"(2 / 3)\n곧 런박스가 실행됩니다","runbox.runtime.overlay.terminated.description.default":"예상치 못한 문제로 런타임이 종료되었습니다.\n런박스를 재접속하려면 아래 버튼을 눌러주세요.","runbox.runtime.overlay.terminated.description.general":"런박스에 연결된 런타임이 종료되었습니다.\n런박스를 재접속하려면 아래 버튼을 눌러주세요.","runbox.runtime.overlay.terminated.description.os_disk_is_full":"디스크가 가득 차서 런타임이 종료되었습니다.\n최근 런박스를 삭제하셨다면 반영까지 시간이 소요될 수 있습니다.","runbox.runtime.overlay.terminated.description.quota_exceeded":"런타임 사용시간이 만료되어 런타임이 종료되었습니다.","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"런박스를 실행한지 24시간이 경과하여 런타임이 종료되었습니다.\n런박스를 재접속하려면 아래 버튼을 눌러주세요.","runbox.runtime.overlay.terminated.description.unexpected":"문제가 지속되면 고객센터에 문의해주세요.","runbox.runtime.overlay.terminated.restart":"재접속","runbox.runtime.overlay.terminated.title":"런타임 연결 해제됨"};
5
+ var messageKo = {"runbox.action.autoShutdown.title":"항상 켜두기","runbox.action.autoShutdown.tooltip.disabled":"해당 런타임은 세션별 사용 시간으로 설정된 {time}이 지나면 자동으로 종료됩니다.","runbox.action.autoShutdown.tooltip.enabled":"항상 켜두기를 설정하면 학습 {_termLibraryLecturePage} 밖으로 나가도 런타임이 종료되지 않습니다. 다만, 해당 런타임의 세션별 사용 시간으로 설정된 {time}이 지나면 자동으로 종료됩니다.","runbox.action.grade.dialog.description.error":"채점 중에 오류가 발생했습니다.","runbox.action.grade.dialog.description.success":"채점이 완료되었습니다.","runbox.action.grade.dialog.title":"채점 결과","runbox.action.grade.noti.error":"코드를 채점하는 도중 오류가 발생했습니다.","runbox.action.grade.title":"제출","runbox.action.grade.tooltip.onProgress":"코드 채점이 진행 중 입니다. 잠시만 기다려 주세요. 실습에 따라 채점이 최대 3분까지 소요될 수 있습니다.","runbox.action.reset.dialog.actions.confirm":"초기화","runbox.action.reset.dialog.description":"런박스 코드를 초기화하시겠습니까? 초기화 시 학습{_termLibraryLecturePage}의 코드가 기본 코드로 덮어씌워집니다.\n초기화 이후 런박스 세션이 새로고침 됩니다.","runbox.action.reset.noti.error":"런박스 코드를 초기화 하는 중에 오류가 발생했습니다.","runbox.action.reset.title":"코드 초기화","runbox.action.restart.dialog.actions.confirm":"재시작","runbox.action.restart.dialog.description":"런박스를 재시작 하시겠습니까?","runbox.action.restart.title":"런박스 재시작","runbox.action.share.snackbar.copied.fail":"런박스 URL을 복사에 실패했습니다. 다시 시도해주세요.","runbox.action.share.snackbar.copied.success":"런박스 URL을 복사하였습니다.","runbox.action.share.title":"런박스 URL 복사","runbox.action.submitCountInfo.dialog.description":"제출 횟수 제한을 초과했습니다.","runbox.action.submitCountInfo.dialog.title":"제출 횟수 제한","runbox.action.submitCountInfo.tooltip.disabled":"제출 횟수를 모두 사용했습니다.","runbox.action.submitLog.dialog.download.tooltip":"제출 파일 다운로드","runbox.action.submitLog.dialog.title":"제출 이력","runbox.action.submitLog.empty":"제출 이력이 존재하지 않습니다.","runbox.action.submitLog.title":"런박스 제출 이력","runbox.alert.title":"학생의 실행 중인 환경에 접속하여 런타임 세션 시간이 차감되고 있습니다. 학생이 런박스를 종료해도 튜터링을 계속하면 시간이 계속 차감되니 유의해 주세요.","runbox.common.close":"닫기","runbox.common.retry":"재시도","runbox.common.score":"{score}점","runbox.common.support":"고객센터","runbox.context.command.ping.error":"런박스 작업을 수행하는 도중 오류가 발생했습니다.","runbox.header.submitInfo":"{isIndividual, select, true {} other {팀}} 제출 횟수 | {isDailyLimitEnabled, select, true {오늘} other {}} {remainCount}/{totalCount}회 남음","runbox.runtime.message.lxp_plan_required":"현재 기관에서는 런박스 수업 자료를 학습할 수 없습니다.\n자세한 사항은 기관 관리자에게 문의하세요.","runbox.runtime.message.runbox_unavailable":"런박스 사용 불가","runbox.runtime.message.startError":"런박스를 시작하는 중에 오류가 발생했습니다.","runbox.runtime.overlay.assigned.description":"(3 / 3)\n런박스가 실행 중입니다.\n잠시만 기다려주세요!","runbox.runtime.overlay.assigned.description_timeout":"(3 / 3)\n런박스를 실행하는데\n예상보다 시간이 소요되고 있습니다.\n새로고침하지 말고 조금만 더 기다려주세요!","runbox.runtime.overlay.queued.description":"(2 / 3)\n현재 {waiters}번째 대기 중입니다...","runbox.runtime.overlay.queued.description_zero":"(2 / 3)\n곧 런박스가 실행됩니다","runbox.runtime.overlay.terminated.description.default":"예상치 못한 문제로 런타임이 종료되었습니다.\n런박스를 재접속하려면 아래 버튼을 눌러주세요.","runbox.runtime.overlay.terminated.description.general":"런박스에 연결된 런타임이 종료되었습니다.\n런박스를 재접속하려면 아래 버튼을 눌러주세요.","runbox.runtime.overlay.terminated.description.os_disk_is_full":"디스크가 가득 차서 런타임이 종료되었습니다.\n최근 런박스를 삭제하셨다면 반영까지 시간이 소요될 수 있습니다.","runbox.runtime.overlay.terminated.description.quota_exceeded":"런타임 사용시간이 만료되어 런타임이 종료되었습니다.","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"런박스를 실행한지 24시간이 경과하여 런타임이 종료되었습니다.\n런박스를 재접속하려면 아래 버튼을 눌러주세요.","runbox.runtime.overlay.terminated.description.unexpected":"문제가 지속되면 고객센터에 문의해주세요.","runbox.runtime.overlay.terminated.restart":"재접속","runbox.runtime.overlay.terminated.title":"런타임 연결 해제됨"};
6
6
 
7
7
  exports.default = messageKo;
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var th = {"runbox.action.autoShutdown.title":"เปิดตลอดเวลา","runbox.action.autoShutdown.tooltip.disabled":"Runbox นี้จะปิดโดยอัตโนมัติหลังจากใช้งาน {time} นาทีต่อเซสชัน","runbox.action.autoShutdown.tooltip.enabled":"หากตั้งค่าให้เปิดตลอดเวลา Runbox จะไม่ปิดแม้ว่าคุณจะออกจากหน้าเรียน {_termLibraryLecturePage} แต่จะปิดโดยอัตโนมัติหลังจากใช้งาน {time} นาทีต่อเซสชัน","runbox.action.grade.dialog.description.error":"เกิดข้อผิดพลาดขึ้นในขณะที่ทำการตรวจคะแนนของโค้ด","runbox.action.grade.dialog.description.success":"การจัดเกรดเสร็จสมบูรณ์เรียบร้อยแล้ว","runbox.action.grade.dialog.title":"ผลการประเมินผลการเรียน","runbox.action.grade.noti.error":"เกิดข้อผิดพลาดขึ้นในขณะที่ทำการตรวจคะแนนของโค้ด","runbox.action.grade.title":"ส่ง","runbox.action.grade.tooltip.onProgress":"กำลังให้คะแนนโค้ด โปรดรอสักครู่ การให้คะแนนอาจใช้เวลาสูงสุด 3 นาที ขึ้นอยู่กับประเภทของการฝึกอบรม","runbox.action.reset.dialog.actions.confirm":"รีเซ็ต","runbox.action.reset.dialog.description":"ต้องการรีเซ็ตโค้ด Runbox หรือไม่? การรีเซ็ตจะแทนที่โค้ดของคุณด้วยโค้ดเริ่มต้นของหน้าเรียน {_termLibraryLecturePage} \nเซสชัน Runbox จะรีเฟรชหลังจากรีเซ็ต","runbox.action.reset.noti.error":"เกิดข้อผิดพลาดระหว่างการรีเซ็ตโค้ด Runbox","runbox.action.reset.title":"รีเซ็ตโค้ด","runbox.action.restart.dialog.actions.confirm":"เริ่มต้นใหม่","runbox.action.restart.dialog.description":"ต้องการเริ่มต้น Runbox ใหม่หรือไม่?","runbox.action.restart.title":"เริ่มต้น Runbox ใหม่","runbox.action.share.snackbar.copied.fail":"ล้มเหลวในการคัดลอก URL Runbox กรุณาลองอีกครั้ง","runbox.action.share.snackbar.copied.success":"คัดลอก URL Runbox สำเร็จ","runbox.action.share.title":"คัดลอก URL Runbox","runbox.action.submitCountInfo.dialog.description":"คุณใช้จำนวนครั้งในการส่งเกินขีดจำกัดแล้ว","runbox.action.submitCountInfo.dialog.title":"ข้อจำกัดจำนวนครั้งในการส่ง","runbox.action.submitCountInfo.tooltip.disabled":"คุณใช้จำนวนครั้งในการส่งทั้งหมดแล้ว","runbox.action.submitLog.dialog.download.tooltip":"ดาวน์โหลดไฟล์ที่ส่ง","runbox.action.submitLog.dialog.title":"ประวัติการส่ง","runbox.action.submitLog.empty":"ไม่มีประวัติการส่ง","runbox.action.submitLog.title":"ประวัติการส่ง Runbox","runbox.common.close":"ปิด","runbox.common.retry":"ลองใหม่","runbox.common.score":"{score} คะแนน","runbox.common.support":"สนับสนุน","runbox.context.command.ping.error":"เกิดข้อผิดพลาดขณะดำเนินการ Runbox","runbox.header.submitInfo":"{isIndividual, select, true {การส่งแบบส่วนตัว} other {การส่งแบบทีม}} | {remainCount}/{totalCount} ครั้งที่เหลือ | {isDailyLimitEnabled, select, true {วันนี้} other {}} ","runbox.runtime.message.lxp_plan_required":"ขณะนี้สถาบันของคุณไม่รองรับการใช้งานสื่อการเรียนการสอน Runbox\nโปรดติดต่อผู้ดูแลระบบของสถาบันของคุณสำหรับข้อมูลเพิ่มเติม","runbox.runtime.message.runbox_unavailable":"ไม่สามารถใช้ Runbox ได้","runbox.runtime.message.startError":"เกิดข้อผิดพลาดขณะเริ่ม Runbox","runbox.runtime.overlay.assigned.description":"(3 / 3)\nRunbox กำลังทำงานอยู่\nกรุณารอสักครู่!","runbox.runtime.overlay.assigned.description_timeout":"(3 / 3)\nRunbox ใช้เวลานานกว่าที่คาดไว้ในการทำงาน\nกรุณาอย่ารีเฟรชและรอสักครู่!","runbox.runtime.overlay.queued.description":"(2 / 3)\nกำลังรอคิวอยู่ที่ {waiters}...","runbox.runtime.overlay.queued.description_zero":"(2 / 3)\nRunbox ของคุณจะเริ่มทำงานเร็วๆ นี้","runbox.runtime.overlay.terminated.description.default":"Runbox หยุดทำงานเนื่องจากปัญหาที่ไม่คาดคิด\nคลิกปุ่มด้านล่างเพื่อเชื่อมต่อ Runbox ใหม่","runbox.runtime.overlay.terminated.description.general":"Runbox ที่เชื่อมต่อกับคุณหยุดทำงาน\nคลิกปุ่มด้านล่างเพื่อเชื่อมต่อ Runbox ใหม่","runbox.runtime.overlay.terminated.description.os_disk_is_full":"Runbox หยุดทำงานเนื่องจากพื้นที่ดิสก์เต็ม\nหากคุณเพิ่งลบ Runbox อาจใช้เวลาสักครู่กว่าจะสะท้อนผล","runbox.runtime.overlay.terminated.description.quota_exceeded":"Runbox หยุดทำงานเนื่องจากใช้เวลาเกินขีดจำกัด","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"Runbox หยุดทำงานหลังจากใช้งานครบ 24 ชั่วโมง\nคลิกปุ่มด้านล่างเพื่อเชื่อมต่อ Runbox ใหม่","runbox.runtime.overlay.terminated.description.unexpected":"หากปัญหายังคงมีอยู่ โปรดติดต่อฝ่ายสนับสนุน","runbox.runtime.overlay.terminated.restart":"เชื่อมต่อใหม่","runbox.runtime.overlay.terminated.title":"การเชื่อมต่อ Runbox หยุดชะงัก"};
5
+ var th = {"runbox.action.autoShutdown.title":"เปิดตลอดเวลา","runbox.action.autoShutdown.tooltip.disabled":"Runbox นี้จะปิดโดยอัตโนมัติหลังจากใช้งาน {time} นาทีต่อเซสชัน","runbox.action.autoShutdown.tooltip.enabled":"หากตั้งค่าให้เปิดตลอดเวลา Runbox จะไม่ปิดแม้ว่าคุณจะออกจากหน้าเรียน {_termLibraryLecturePage} แต่จะปิดโดยอัตโนมัติหลังจากใช้งาน {time} นาทีต่อเซสชัน","runbox.action.grade.dialog.description.error":"เกิดข้อผิดพลาดขึ้นในขณะที่ทำการตรวจคะแนนของโค้ด","runbox.action.grade.dialog.description.success":"การจัดเกรดเสร็จสมบูรณ์เรียบร้อยแล้ว","runbox.action.grade.dialog.title":"ผลการประเมินผลการเรียน","runbox.action.grade.noti.error":"เกิดข้อผิดพลาดขึ้นในขณะที่ทำการตรวจคะแนนของโค้ด","runbox.action.grade.title":"ส่ง","runbox.action.grade.tooltip.onProgress":"กำลังให้คะแนนโค้ด โปรดรอสักครู่ การให้คะแนนอาจใช้เวลาสูงสุด 3 นาที ขึ้นอยู่กับประเภทของการฝึกอบรม","runbox.action.reset.dialog.actions.confirm":"รีเซ็ต","runbox.action.reset.dialog.description":"ต้องการรีเซ็ตโค้ด Runbox หรือไม่? การรีเซ็ตจะแทนที่โค้ดของคุณด้วยโค้ดเริ่มต้นของหน้าเรียน {_termLibraryLecturePage} \nเซสชัน Runbox จะรีเฟรชหลังจากรีเซ็ต","runbox.action.reset.noti.error":"เกิดข้อผิดพลาดระหว่างการรีเซ็ตโค้ด Runbox","runbox.action.reset.title":"รีเซ็ตโค้ด","runbox.action.restart.dialog.actions.confirm":"เริ่มต้นใหม่","runbox.action.restart.dialog.description":"ต้องการเริ่มต้น Runbox ใหม่หรือไม่?","runbox.action.restart.title":"เริ่มต้น Runbox ใหม่","runbox.action.share.snackbar.copied.fail":"ล้มเหลวในการคัดลอก URL Runbox กรุณาลองอีกครั้ง","runbox.action.share.snackbar.copied.success":"คัดลอก URL Runbox สำเร็จ","runbox.action.share.title":"คัดลอก URL Runbox","runbox.action.submitCountInfo.dialog.description":"คุณใช้จำนวนครั้งในการส่งเกินขีดจำกัดแล้ว","runbox.action.submitCountInfo.dialog.title":"ข้อจำกัดจำนวนครั้งในการส่ง","runbox.action.submitCountInfo.tooltip.disabled":"คุณใช้จำนวนครั้งในการส่งทั้งหมดแล้ว","runbox.action.submitLog.dialog.download.tooltip":"ดาวน์โหลดไฟล์ที่ส่ง","runbox.action.submitLog.dialog.title":"ประวัติการส่ง","runbox.action.submitLog.empty":"ไม่มีประวัติการส่ง","runbox.action.submitLog.title":"ประวัติการส่ง Runbox","runbox.alert.title":"คุณได้เชื่อมต่อกับสภาพแวดล้อมที่กำลังทำงานของนักเรียนแล้ว และเวลาเซสชันของรันไทม์กำลังถูกหัก โปรดทราบว่าหากนักเรียนออกจากรันบ็อกซ์ แต่ยังคงให้คำปรึกษาอยู่ เวลาจะยังคงถูกหักต่อไป","runbox.common.close":"ปิด","runbox.common.retry":"ลองใหม่","runbox.common.score":"{score} คะแนน","runbox.common.support":"สนับสนุน","runbox.context.command.ping.error":"เกิดข้อผิดพลาดขณะดำเนินการ Runbox","runbox.header.submitInfo":"{isIndividual, select, true {การส่งแบบส่วนตัว} other {การส่งแบบทีม}} | {remainCount}/{totalCount} ครั้งที่เหลือ | {isDailyLimitEnabled, select, true {วันนี้} other {}} ","runbox.runtime.message.lxp_plan_required":"ขณะนี้สถาบันของคุณไม่รองรับการใช้งานสื่อการเรียนการสอน Runbox\nโปรดติดต่อผู้ดูแลระบบของสถาบันของคุณสำหรับข้อมูลเพิ่มเติม","runbox.runtime.message.runbox_unavailable":"ไม่สามารถใช้ Runbox ได้","runbox.runtime.message.startError":"เกิดข้อผิดพลาดขณะเริ่ม Runbox","runbox.runtime.overlay.assigned.description":"(3 / 3)\nRunbox กำลังทำงานอยู่\nกรุณารอสักครู่!","runbox.runtime.overlay.assigned.description_timeout":"(3 / 3)\nRunbox ใช้เวลานานกว่าที่คาดไว้ในการทำงาน\nกรุณาอย่ารีเฟรชและรอสักครู่!","runbox.runtime.overlay.queued.description":"(2 / 3)\nกำลังรอคิวอยู่ที่ {waiters}...","runbox.runtime.overlay.queued.description_zero":"(2 / 3)\nRunbox ของคุณจะเริ่มทำงานเร็วๆ นี้","runbox.runtime.overlay.terminated.description.default":"Runbox หยุดทำงานเนื่องจากปัญหาที่ไม่คาดคิด\nคลิกปุ่มด้านล่างเพื่อเชื่อมต่อ Runbox ใหม่","runbox.runtime.overlay.terminated.description.general":"Runbox ที่เชื่อมต่อกับคุณหยุดทำงาน\nคลิกปุ่มด้านล่างเพื่อเชื่อมต่อ Runbox ใหม่","runbox.runtime.overlay.terminated.description.os_disk_is_full":"Runbox หยุดทำงานเนื่องจากพื้นที่ดิสก์เต็ม\nหากคุณเพิ่งลบ Runbox อาจใช้เวลาสักครู่กว่าจะสะท้อนผล","runbox.runtime.overlay.terminated.description.quota_exceeded":"Runbox หยุดทำงานเนื่องจากใช้เวลาเกินขีดจำกัด","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"Runbox หยุดทำงานหลังจากใช้งานครบ 24 ชั่วโมง\nคลิกปุ่มด้านล่างเพื่อเชื่อมต่อ Runbox ใหม่","runbox.runtime.overlay.terminated.description.unexpected":"หากปัญหายังคงมีอยู่ โปรดติดต่อฝ่ายสนับสนุน","runbox.runtime.overlay.terminated.restart":"เชื่อมต่อใหม่","runbox.runtime.overlay.terminated.title":"การเชื่อมต่อ Runbox หยุดชะงัก"};
6
6
 
7
7
  exports.default = th;
@@ -12,7 +12,9 @@ export interface RuntimeProps {
12
12
  /** */
13
13
  courseId: number;
14
14
  /** */
15
- userId: number;
15
+ studentUserId?: number;
16
+ /** */
17
+ userId?: number;
16
18
  /** */
17
19
  isTutoring?: boolean;
18
20
  /** */
@@ -11,6 +11,7 @@ require('../contexts/MaterialRunboxApiContext.js');
11
11
  var MaterialRunboxCommandContext = require('../contexts/MaterialRunboxCommandContext.js');
12
12
  require('../contexts/MaterialRunboxContext.js');
13
13
  var useRunboxControl = require('../hooks/useRunboxControl.js');
14
+ require('@tanstack/react-query');
14
15
  var RuntimeOverlayAssigned = require('./RuntimeOverlayAssigned.js');
15
16
  var RuntimeOverlayQueued = require('./RuntimeOverlayQueued.js');
16
17
  var RuntimeOverlayTerminated = require('./RuntimeOverlayTerminated.js');
@@ -52,7 +53,7 @@ var Runtime = function Runtime(props) {
52
53
  // };
53
54
  },
54
55
  // eslint-disable-next-line react-hooks/exhaustive-deps
55
- [props.runbox.id, props.userId]);
56
+ [props.runbox.id, props.studentUserId]);
56
57
  //
57
58
  // refresh view when `ProjectFileReset` command done.
58
59
  //
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { RunboxGetAndListResponse } from '@elice/openapi-client-material-runbox';
3
+ export interface MaterialRunboxAlertProps {
4
+ /** Runbox */
5
+ runbox: RunboxGetAndListResponse;
6
+ /** Course ID. */
7
+ courseId: number;
8
+ /** User ID for tutoring. */
9
+ studentUserId?: number;
10
+ /** User ID for tutor. */
11
+ userId?: number;
12
+ /** Whether tutoring is enabled. */
13
+ isTutoring: boolean;
14
+ }
15
+ declare const MaterialRunboxAlert: React.FC<MaterialRunboxAlertProps>;
16
+ export default MaterialRunboxAlert;
@@ -0,0 +1,49 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useRawEliceIntl } from '@elice/intl';
3
+ import { RunboxStarterGetResponseStatusEnum } from '@elice/openapi-client-material-runbox';
4
+ import { Alert, AlertTitle } from '@mui/material';
5
+ import 'react';
6
+ import '@elice/mui-x-snackbar';
7
+ import '@elice/runbox-client';
8
+ import './contexts/MaterialRunboxApiContext.js';
9
+ import './contexts/MaterialRunboxCommandContext.js';
10
+ import './contexts/MaterialRunboxContext.js';
11
+ import '@tanstack/react-query';
12
+ import { useMaterialRunboxRunboxIdStarterGet } from './hooks/useMaterialRunboxRunboxIdStarterGet.js';
13
+
14
+ var MaterialRunboxAlert = function MaterialRunboxAlert(_ref) {
15
+ var runbox = _ref.runbox,
16
+ courseId = _ref.courseId,
17
+ studentUserId = _ref.studentUserId,
18
+ userId = _ref.userId,
19
+ isTutoring = _ref.isTutoring;
20
+ var intl = useRawEliceIntl();
21
+ var _useMaterialRunboxRun = useMaterialRunboxRunboxIdStarterGet({
22
+ runboxId: runbox.id,
23
+ courseId: courseId,
24
+ userId: studentUserId !== null && studentUserId !== void 0 ? studentUserId : 0,
25
+ enabled: Boolean(runbox.id && courseId && studentUserId && isTutoring)
26
+ }),
27
+ starter = _useMaterialRunboxRun.data;
28
+ var isStudentRunboxRunning = (starter === null || starter === void 0 ? void 0 : starter.status) === RunboxStarterGetResponseStatusEnum.Running && studentUserId !== userId;
29
+ //
30
+ //
31
+ //
32
+ if (!isStudentRunboxRunning || !isTutoring) {
33
+ return null;
34
+ }
35
+ return jsx(Alert, {
36
+ severity: "warning",
37
+ sx: {
38
+ width: '100%',
39
+ borderRadius: '0'
40
+ },
41
+ children: jsx(AlertTitle, {
42
+ children: intl.formatMessage({
43
+ id: 'runbox.alert.title'
44
+ })
45
+ })
46
+ });
47
+ };
48
+
49
+ export { MaterialRunboxAlert as default };
@@ -18,7 +18,9 @@ export interface MaterialRunboxContentProps {
18
18
  /** */
19
19
  enabledLxpPlan?: boolean;
20
20
  /** User ID for tutoring. */
21
- userId: number;
21
+ studentUserId?: number;
22
+ /** User ID for tutor. */
23
+ userId?: number;
22
24
  /** Whether tutoring is enabled. */
23
25
  isTutoring: boolean;
24
26
  /** Used for submit log score tag color. */
@@ -9,6 +9,7 @@ import { useQuery } from '@tanstack/react-query';
9
9
  import { useMaterialRunboxApiContext } from './contexts/MaterialRunboxApiContext.js';
10
10
  import MaterialRunboxCommandContextProvider from './contexts/MaterialRunboxCommandContext.js';
11
11
  import { useMaterialRunboxContext } from './contexts/MaterialRunboxContext.js';
12
+ import MaterialRunboxAlert from './MaterialRunboxAlert.js';
12
13
  import MaterialRunboxBody from './MaterialRunboxBody.js';
13
14
  import MaterialRunboxFooter from './MaterialRunboxFooter.js';
14
15
  import MaterialRunboxHeader from './MaterialRunboxHeader.js';
@@ -29,6 +30,7 @@ var MaterialRunboxContent = function MaterialRunboxContent(_ref) {
29
30
  var runboxId = _ref.runboxId,
30
31
  courseId = _ref.courseId,
31
32
  enabledLxpPlan = _ref.enabledLxpPlan,
33
+ studentUserId = _ref.studentUserId,
32
34
  userId = _ref.userId,
33
35
  _ref$isTutoring = _ref.isTutoring,
34
36
  isTutoring = _ref$isTutoring === void 0 ? false : _ref$isTutoring,
@@ -61,7 +63,7 @@ var MaterialRunboxContent = function MaterialRunboxContent(_ref) {
61
63
  skip: 0,
62
64
  count: 1,
63
65
  eliceCourseId: courseId,
64
- userId: userId
66
+ userId: studentUserId
65
67
  }, {
66
68
  signal: signal
67
69
  }).then(function (runtimes) {
@@ -165,6 +167,7 @@ var MaterialRunboxContent = function MaterialRunboxContent(_ref) {
165
167
  runtime: runtime,
166
168
  runtimeTemplate: runtimeTemplate,
167
169
  courseId: courseId,
170
+ studentUserId: studentUserId,
168
171
  userId: userId,
169
172
  isTutoring: isTutoring,
170
173
  refetch: refetch,
@@ -182,7 +185,7 @@ var MaterialRunboxContent = function MaterialRunboxContent(_ref) {
182
185
  runboxId: id,
183
186
  eliceCourseId: courseId,
184
187
  runboxHeartbeatPostRequest: {
185
- userId: userId
188
+ userId: studentUserId
186
189
  }
187
190
  }, {
188
191
  signal: signal
@@ -194,14 +197,14 @@ var MaterialRunboxContent = function MaterialRunboxContent(_ref) {
194
197
  return materialRunboxApi.runbox.runboxRunboxIdQuotaGet({
195
198
  runboxId: id,
196
199
  eliceCourseId: courseId,
197
- userId: userId
200
+ userId: studentUserId
198
201
  }, {
199
202
  signal: signal
200
203
  });
201
204
  },
202
205
  onRunboxRefetchRequest: refetch,
203
206
  children: jsxs(StyledRunboxContainer, {
204
- children: [jsx(MaterialRunboxHeader, Object.assign({}, props)), jsx(MaterialRunboxBody, Object.assign({}, props)), jsx(MaterialRunboxFooter, Object.assign({}, props))]
207
+ children: [jsx(MaterialRunboxHeader, Object.assign({}, props)), jsx(MaterialRunboxAlert, Object.assign({}, props)), jsx(MaterialRunboxBody, Object.assign({}, props)), jsx(MaterialRunboxFooter, Object.assign({}, props))]
205
208
  })
206
209
  })
207
210
  });
@@ -34,7 +34,7 @@ var MaterialRunboxHeader = function MaterialRunboxHeader(_ref3) {
34
34
  runtime = _ref3.runtime,
35
35
  runtimeTemplate = _ref3.runtimeTemplate,
36
36
  courseId = _ref3.courseId,
37
- userId = _ref3.userId,
37
+ studentUserId = _ref3.studentUserId,
38
38
  isTutoring = _ref3.isTutoring,
39
39
  refetch = _ref3.refetch,
40
40
  getAchievementColor = _ref3.getAchievementColor;
@@ -148,7 +148,7 @@ var MaterialRunboxHeader = function MaterialRunboxHeader(_ref3) {
148
148
  runbox: runbox,
149
149
  runtime: runtime,
150
150
  courseId: courseId,
151
- userId: userId,
151
+ studentUserId: studentUserId,
152
152
  isTutoring: isTutoring,
153
153
  menuAnchorEl: menuAnchorEl,
154
154
  refetch: refetch,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { RuntimeProps } from '../runtime/Runtime';
3
- type MaterialRunboxActionMenuProps = Pick<RuntimeProps, 'runbox' | 'runtime' | 'courseId' | 'refetch' | 'userId' | 'isTutoring' | 'getAchievementColor'> & {
3
+ type MaterialRunboxActionMenuProps = Pick<RuntimeProps, 'runbox' | 'runtime' | 'courseId' | 'refetch' | 'studentUserId' | 'isTutoring' | 'getAchievementColor'> & {
4
4
  menuAnchorEl: null | HTMLButtonElement;
5
5
  handleMenuClose: () => void;
6
6
  };
@@ -14,7 +14,7 @@ var MaterialRunboxActionMenu = function MaterialRunboxActionMenu(_ref) {
14
14
  var runbox = _ref.runbox,
15
15
  runtime = _ref.runtime,
16
16
  courseId = _ref.courseId,
17
- userId = _ref.userId,
17
+ studentUserId = _ref.studentUserId,
18
18
  isTutoring = _ref.isTutoring,
19
19
  menuAnchorEl = _ref.menuAnchorEl,
20
20
  refetch = _ref.refetch,
@@ -52,12 +52,12 @@ var MaterialRunboxActionMenu = function MaterialRunboxActionMenu(_ref) {
52
52
  runbox: runbox,
53
53
  runtime: runtime,
54
54
  courseId: courseId,
55
- userId: userId,
55
+ studentUserId: studentUserId,
56
56
  refetch: refetch,
57
57
  handleMenuClose: handleMenuClose
58
- }), isTutoring ? jsx(MaterialRunboxActionSubmitLog, {
58
+ }), isTutoring && studentUserId ? jsx(MaterialRunboxActionSubmitLog, {
59
59
  runboxId: runbox === null || runbox === void 0 ? void 0 : runbox.id,
60
- userId: userId,
60
+ userId: studentUserId,
61
61
  eliceCourseId: courseId,
62
62
  getAchievementColor: getAchievementColor,
63
63
  handleMenuClose: handleMenuClose
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { RuntimeProps } from '../runtime/Runtime';
3
- type MaterialRunboxActionRestartProps = Pick<RuntimeProps, 'runbox' | 'runtime' | 'courseId' | 'refetch' | 'userId'> & {
3
+ type MaterialRunboxActionRestartProps = Pick<RuntimeProps, 'runbox' | 'runtime' | 'courseId' | 'refetch' | 'studentUserId'> & {
4
4
  handleMenuClose: () => void;
5
5
  };
6
6
  declare const MaterialRunboxActionRestart: React.FC<MaterialRunboxActionRestartProps>;
@@ -7,6 +7,10 @@ import { faRotateRight } from '@fortawesome/pro-solid-svg-icons';
7
7
  import { LoadingButton } from '@mui/lab';
8
8
  import { MenuItem, ListItemIcon, ListItemText, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button } from '@mui/material';
9
9
  import { useRunboxControl } from '../hooks/useRunboxControl.js';
10
+ import '@tanstack/react-query';
11
+ import '../contexts/MaterialRunboxApiContext.js';
12
+ import '../contexts/MaterialRunboxCommandContext.js';
13
+ import '../contexts/MaterialRunboxContext.js';
10
14
 
11
15
  //
12
16
  //
@@ -15,7 +19,7 @@ var MaterialRunboxActionRestart = function MaterialRunboxActionRestart(_ref) {
15
19
  var runbox = _ref.runbox,
16
20
  courseId = _ref.courseId,
17
21
  refetch = _ref.refetch,
18
- userId = _ref.userId,
22
+ studentUserId = _ref.studentUserId,
19
23
  handleMenuClose = _ref.handleMenuClose;
20
24
  var intl = useRawEliceIntl();
21
25
  var _React$useState = React.useState(false),
@@ -31,7 +35,7 @@ var MaterialRunboxActionRestart = function MaterialRunboxActionRestart(_ref) {
31
35
  runbox: runbox,
32
36
  courseId: courseId,
33
37
  refetch: refetch,
34
- userId: userId
38
+ userId: studentUserId
35
39
  }),
36
40
  start = _useRunboxControl.start;
37
41
  /**
@@ -1 +1,3 @@
1
1
  export * from './useRunboxControl';
2
+ export * from './useInfiniteRunboxRunboxIdGrade';
3
+ export * from './useMaterialRunboxRunboxIdStarterGet';
@@ -1 +1,3 @@
1
1
  export { useRunboxControl } from './useRunboxControl.js';
2
+ export { useInfiniteRunboxRunboxIdGrade } from './useInfiniteRunboxRunboxIdGrade.js';
3
+ export { useMaterialRunboxRunboxIdStarterGet } from './useMaterialRunboxRunboxIdStarterGet.js';
@@ -0,0 +1,15 @@
1
+ import type { RunboxStarterGetResponse } from '@elice/openapi-client-material-runbox';
2
+ interface MaterialRunboxRunboxIdStarterGetParams {
3
+ runboxId: string;
4
+ userId: number;
5
+ courseId: number;
6
+ enabled?: boolean;
7
+ }
8
+ interface MaterialRunboxRunboxIdStarterGetReturn {
9
+ data: RunboxStarterGetResponse | undefined;
10
+ isLoading: boolean;
11
+ isError: boolean;
12
+ refetch: () => void;
13
+ }
14
+ export declare const useMaterialRunboxRunboxIdStarterGet: ({ runboxId, userId, courseId, enabled, }: MaterialRunboxRunboxIdStarterGetParams) => MaterialRunboxRunboxIdStarterGetReturn;
15
+ export {};
@@ -0,0 +1,41 @@
1
+ import { useRef } from 'react';
2
+ import { useQuery } from '@tanstack/react-query';
3
+ import { useMaterialRunboxApiContext } from '../contexts/MaterialRunboxApiContext.js';
4
+ import '../contexts/MaterialRunboxCommandContext.js';
5
+ import '../contexts/MaterialRunboxContext.js';
6
+
7
+ var useMaterialRunboxRunboxIdStarterGet = function useMaterialRunboxRunboxIdStarterGet(_ref) {
8
+ var runboxId = _ref.runboxId,
9
+ userId = _ref.userId,
10
+ courseId = _ref.courseId,
11
+ _ref$enabled = _ref.enabled,
12
+ enabled = _ref$enabled === void 0 ? true : _ref$enabled;
13
+ var materialRunboxApi = useMaterialRunboxApiContext();
14
+ var _return = useRef({});
15
+ //
16
+ var _useQuery = useQuery({
17
+ queryKey: ['materialRunboxApi.runbox.runboxRunboxIdStarterGet', runboxId, userId],
18
+ queryFn: function queryFn() {
19
+ return materialRunboxApi.runbox.runboxRunboxIdStarterGet({
20
+ userId: userId,
21
+ runboxId: runboxId,
22
+ eliceCourseId: courseId
23
+ });
24
+ },
25
+ enabled: enabled
26
+ }),
27
+ data = _useQuery.data,
28
+ isLoading = _useQuery.isLoading,
29
+ isError = _useQuery.isError,
30
+ refetch = _useQuery.refetch;
31
+ //
32
+ //
33
+ //
34
+ _return.current.data = data;
35
+ _return.current.isLoading = isLoading;
36
+ _return.current.isError = isError;
37
+ _return.current.refetch = refetch;
38
+ return _return.current;
39
+ };
40
+
41
+ export { useMaterialRunboxRunboxIdStarterGet };
@@ -1,3 +1,3 @@
1
- var messageEn = {"runbox.action.autoShutdown.title":"Always on","runbox.action.autoShutdown.tooltip.disabled":"This runtime automatically shuts down after {time}, which is set as the per-session usage time.","runbox.action.autoShutdown.tooltip.enabled":"If set to always on, the runtime will not shut down even if you leave the learning {_termLibraryLecturePage}. However, it will automatically shut down after {time}, which is set as the session-specific usage time of the runtime.","runbox.action.grade.dialog.description.error":"An error occurred while grading the code.","runbox.action.grade.dialog.description.success":"Grading completed successfully.","runbox.action.grade.dialog.title":"Grading result","runbox.action.grade.noti.error":"An error occurred while grading the code.","runbox.action.grade.title":"Submit","runbox.action.grade.tooltip.onProgress":"Grading is in progress. Please wait for a moment. Depending on the {_termLibraryLecturePage}, grading may take up to 3 minutes.","runbox.action.reset.dialog.actions.confirm":"Reset","runbox.action.reset.dialog.description":"Are you sure you want to reset the runbox code? Your codes will be overwritten to default code of {_termLibraryLecturePage}.\nAfter reset, the runbox session will be refreshed.","runbox.action.reset.noti.error":"An error occurred while initializing the runbox code.","runbox.action.reset.title":"Reset code","runbox.action.restart.dialog.actions.confirm":"Restart","runbox.action.restart.dialog.description":"Are you sure you want to restart the runbox?","runbox.action.restart.title":"Restart runbox","runbox.action.share.snackbar.copied.fail":"Copying the runbox URL failed, please try again","runbox.action.share.snackbar.copied.success":"The runbox URL was copied successfully.","runbox.action.share.title":"Share runbox URL","runbox.action.submitCountInfo.dialog.description":"You have exceeded the submission count limit","runbox.action.submitCountInfo.dialog.title":"Limit the number of submissions","runbox.action.submitCountInfo.tooltip.disabled":"The submission count has been used up","runbox.action.submitLog.dialog.download.tooltip":"Download submitted file","runbox.action.submitLog.dialog.title":"Submission History","runbox.action.submitLog.empty":"No submission history exists.","runbox.action.submitLog.title":"Runbox Submission History","runbox.common.close":"Close","runbox.common.retry":"Retry","runbox.common.score":"{score} points","runbox.common.support":"Support","runbox.context.command.ping.error":"An error occurred while processing task.","runbox.header.submitInfo":"{isIndividual, select, true {} other {Team}} submission count | {remainCount}/{totalCount} times left {isDailyLimitEnabled, select, true {today} other {}}","runbox.runtime.message.lxp_plan_required":"Your institution currently does not support Runbox course materials.\nPlease contact your institution administrator for more details.","runbox.runtime.message.runbox_unavailable":"Runbox Unavailable","runbox.runtime.message.startError":"There was an error starting the runbox.","runbox.runtime.overlay.assigned.description":"(3 of 3)\nRunbox is running.\nPlease wait!","runbox.runtime.overlay.assigned.description_timeout":"(3 of 3)\nRunning the runbox is taking longer than we expected.\nPlease wait a little longer without refreshing!","runbox.runtime.overlay.queued.description":"(2 of 3)\nCurrently queued {waiters} times...","runbox.runtime.overlay.queued.description_zero":"(2 of 3)\nRunbox will run soon","runbox.runtime.overlay.terminated.description.default":"The runtime terminated due to an unexpected problem.\nClick the button below to reconnect to the runbox.","runbox.runtime.overlay.terminated.description.general":"The runtime connected to the runbox has ended.\nTo reconnect to the runbox, click the button below.","runbox.runtime.overlay.terminated.description.os_disk_is_full":"Runtime has ended because the disk is full.\nIf you have recently deleted a runbox, it may take some time to reflect.","runbox.runtime.overlay.terminated.description.quota_exceeded":"The runtime has ended because the runtime has expired.","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"Runbox has been running for 24 hours and the runtime has ended.\nTo reconnect to the runbox, click the button below.","runbox.runtime.overlay.terminated.description.unexpected":"If the problem persists, please contact customer service.","runbox.runtime.overlay.terminated.restart":"Reconnect","runbox.runtime.overlay.terminated.title":"Runtime disconnected"};
1
+ var messageEn = {"runbox.action.autoShutdown.title":"Always on","runbox.action.autoShutdown.tooltip.disabled":"This runtime automatically shuts down after {time}, which is set as the per-session usage time.","runbox.action.autoShutdown.tooltip.enabled":"If set to always on, the runtime will not shut down even if you leave the learning {_termLibraryLecturePage}. However, it will automatically shut down after {time}, which is set as the session-specific usage time of the runtime.","runbox.action.grade.dialog.description.error":"An error occurred while grading the code.","runbox.action.grade.dialog.description.success":"Grading completed successfully.","runbox.action.grade.dialog.title":"Grading result","runbox.action.grade.noti.error":"An error occurred while grading the code.","runbox.action.grade.title":"Submit","runbox.action.grade.tooltip.onProgress":"Grading is in progress. Please wait for a moment. Depending on the {_termLibraryLecturePage}, grading may take up to 3 minutes.","runbox.action.reset.dialog.actions.confirm":"Reset","runbox.action.reset.dialog.description":"Are you sure you want to reset the runbox code? Your codes will be overwritten to default code of {_termLibraryLecturePage}.\nAfter reset, the runbox session will be refreshed.","runbox.action.reset.noti.error":"An error occurred while initializing the runbox code.","runbox.action.reset.title":"Reset code","runbox.action.restart.dialog.actions.confirm":"Restart","runbox.action.restart.dialog.description":"Are you sure you want to restart the runbox?","runbox.action.restart.title":"Restart runbox","runbox.action.share.snackbar.copied.fail":"Copying the runbox URL failed, please try again","runbox.action.share.snackbar.copied.success":"The runbox URL was copied successfully.","runbox.action.share.title":"Share runbox URL","runbox.action.submitCountInfo.dialog.description":"You have exceeded the submission count limit","runbox.action.submitCountInfo.dialog.title":"Limit the number of submissions","runbox.action.submitCountInfo.tooltip.disabled":"The submission count has been used up","runbox.action.submitLog.dialog.download.tooltip":"Download submitted file","runbox.action.submitLog.dialog.title":"Submission History","runbox.action.submitLog.empty":"No submission history exists.","runbox.action.submitLog.title":"Runbox Submission History","runbox.alert.title":"You have connected to the student's running environment, and the runtime session time is being deducted. Please note that if the student exits Runbox, the time will continue to be deducted as long as tutoring continues.","runbox.common.close":"Close","runbox.common.retry":"Retry","runbox.common.score":"{score} points","runbox.common.support":"Support","runbox.context.command.ping.error":"An error occurred while processing task.","runbox.header.submitInfo":"{isIndividual, select, true {} other {Team}} submission count | {remainCount}/{totalCount} times left {isDailyLimitEnabled, select, true {today} other {}}","runbox.runtime.message.lxp_plan_required":"Your institution currently does not support Runbox course materials.\nPlease contact your institution administrator for more details.","runbox.runtime.message.runbox_unavailable":"Runbox Unavailable","runbox.runtime.message.startError":"There was an error starting the runbox.","runbox.runtime.overlay.assigned.description":"(3 of 3)\nRunbox is running.\nPlease wait!","runbox.runtime.overlay.assigned.description_timeout":"(3 of 3)\nRunning the runbox is taking longer than we expected.\nPlease wait a little longer without refreshing!","runbox.runtime.overlay.queued.description":"(2 of 3)\nCurrently queued {waiters} times...","runbox.runtime.overlay.queued.description_zero":"(2 of 3)\nRunbox will run soon","runbox.runtime.overlay.terminated.description.default":"The runtime terminated due to an unexpected problem.\nClick the button below to reconnect to the runbox.","runbox.runtime.overlay.terminated.description.general":"The runtime connected to the runbox has ended.\nTo reconnect to the runbox, click the button below.","runbox.runtime.overlay.terminated.description.os_disk_is_full":"Runtime has ended because the disk is full.\nIf you have recently deleted a runbox, it may take some time to reflect.","runbox.runtime.overlay.terminated.description.quota_exceeded":"The runtime has ended because the runtime has expired.","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"Runbox has been running for 24 hours and the runtime has ended.\nTo reconnect to the runbox, click the button below.","runbox.runtime.overlay.terminated.description.unexpected":"If the problem persists, please contact customer service.","runbox.runtime.overlay.terminated.restart":"Reconnect","runbox.runtime.overlay.terminated.title":"Runtime disconnected"};
2
2
 
3
3
  export { messageEn as default };
@@ -1,3 +1,3 @@
1
- var ja = {"runbox.action.autoShutdown.title":"常にオン","runbox.action.autoShutdown.tooltip.disabled":"このランタイムは、セッションごとの利用時間として設定された{time}後に自動的にシャットダウンします。","runbox.action.autoShutdown.tooltip.enabled":"常にオンに設定した場合、ランタイムは学習 {_termLibraryLecturePage} を離れてもシャットダウンしません。ただし、ランタイムのセッション固有の使用時間として設定された {time} 後には自動的にシャットダウンします。","runbox.action.grade.dialog.description.error":"コードの採点中にエラーが発生しました。","runbox.action.grade.dialog.description.success":"成績評価が成功裏に完了しました。","runbox.action.grade.dialog.title":"成績結果","runbox.action.grade.noti.error":"コードの採点中にエラーが発生しました。","runbox.action.grade.title":"提出","runbox.action.grade.tooltip.onProgress":"採点中です。しばらくお待ちください。{_termLibraryLecturePage}によって、採点には最大3分かかる場合があります。","runbox.action.reset.dialog.actions.confirm":"リセット","runbox.action.reset.dialog.description":"ランボックスのコードをリセットしてもよろしいですか? あなたのコードは {_termLibraryLecturePage} のデフォルトコードに上書きされます。\nリセット後、ランボックスのセッションがリフレッシュされます。","runbox.action.reset.noti.error":"ランボックスコードの初期化中にエラーが発生しました。","runbox.action.reset.title":"リセットコード","runbox.action.restart.dialog.actions.confirm":"再起動","runbox.action.restart.dialog.description":"再起動してもよろしいですか?","runbox.action.restart.title":"ランボックスを再起動してください","runbox.action.share.snackbar.copied.fail":"ランボックスのURLをコピーすることに失敗しました。もう一度お試しください。","runbox.action.share.snackbar.copied.success":"ランボックスのURLが正常にコピーされました。","runbox.action.share.title":"ランボックスのURLを共有してください。","runbox.action.submitCountInfo.dialog.description":"提出回数の制限を超えています","runbox.action.submitCountInfo.dialog.title":"投稿の数を制限してください。","runbox.action.submitCountInfo.tooltip.disabled":"提出回数が使い果たされました。","runbox.action.submitLog.dialog.download.tooltip":"提出ファイルをダウンロード","runbox.action.submitLog.dialog.title":"提出履歴","runbox.action.submitLog.empty":"提出履歴が存在しません。","runbox.action.submitLog.title":"ランボックス提出履歴","runbox.common.close":"閉じる","runbox.common.retry":"リトライ","runbox.common.score":"{score}点","runbox.common.support":"サポート","runbox.context.command.ping.error":"タスクの処理中にエラーが発生しました。","runbox.header.submitInfo":"{isIndividual, select, true {個人} other {チーム}}の提出回数 | {remainCount}/{totalCount} 回残っています {isDailyLimitEnabled, select, true {今日} other {}}","runbox.runtime.message.lxp_plan_required":"現在、所属機関ではRunboxの学習資料を利用できません。\n詳細については機関の管理者にお問い合わせください。","runbox.runtime.message.runbox_unavailable":"Runboxは利用できません","runbox.runtime.message.startError":"ランボックスの起動中にエラーが発生しました。","runbox.runtime.overlay.assigned.description":"Runbox が実行中です。\nお待ちください!","runbox.runtime.overlay.assigned.description_timeout":"ランボックスを実行する時間が私たちの予想よりも長くかかっています。\n更新せずにもう少し待ってください!","runbox.runtime.overlay.queued.description":"現在{waiters}回待機中...","runbox.runtime.overlay.queued.description_zero":"Runboxはもうすぐ実行されます。","runbox.runtime.overlay.terminated.description.default":"ランタイムは予期せぬ問題により終了しました。\n再接続するには、下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.description.general":"ランボックスに接続されているランタイムが終了しました。\nランボックスに再接続するには、以下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.description.os_disk_is_full":"ディスクがいっぱいになったため、ランタイムが終了しました。\n最近ランボックスを削除した場合、反映には時間がかかることがあります。","runbox.runtime.overlay.terminated.description.quota_exceeded":"ランタイムが期限切れになったため、ランタイムが終了しました。","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"ランボックスは24時間稼働しており、ランタイムが終了しました。\nランボックスに再接続するには、以下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.description.unexpected":"問題が解決しない場合は、カスタマーサービスにお問い合わせください。","runbox.runtime.overlay.terminated.restart":"再接続","runbox.runtime.overlay.terminated.title":"ランタイムが切断されました。"};
1
+ var ja = {"runbox.action.autoShutdown.title":"常にオン","runbox.action.autoShutdown.tooltip.disabled":"このランタイムは、セッションごとの利用時間として設定された{time}後に自動的にシャットダウンします。","runbox.action.autoShutdown.tooltip.enabled":"常にオンに設定した場合、ランタイムは学習 {_termLibraryLecturePage} を離れてもシャットダウンしません。ただし、ランタイムのセッション固有の使用時間として設定された {time} 後には自動的にシャットダウンします。","runbox.action.grade.dialog.description.error":"コードの採点中にエラーが発生しました。","runbox.action.grade.dialog.description.success":"成績評価が成功裏に完了しました。","runbox.action.grade.dialog.title":"成績結果","runbox.action.grade.noti.error":"コードの採点中にエラーが発生しました。","runbox.action.grade.title":"提出","runbox.action.grade.tooltip.onProgress":"採点中です。しばらくお待ちください。{_termLibraryLecturePage}によって、採点には最大3分かかる場合があります。","runbox.action.reset.dialog.actions.confirm":"リセット","runbox.action.reset.dialog.description":"ランボックスのコードをリセットしてもよろしいですか? あなたのコードは {_termLibraryLecturePage} のデフォルトコードに上書きされます。\nリセット後、ランボックスのセッションがリフレッシュされます。","runbox.action.reset.noti.error":"ランボックスコードの初期化中にエラーが発生しました。","runbox.action.reset.title":"リセットコード","runbox.action.restart.dialog.actions.confirm":"再起動","runbox.action.restart.dialog.description":"再起動してもよろしいですか?","runbox.action.restart.title":"ランボックスを再起動してください","runbox.action.share.snackbar.copied.fail":"ランボックスのURLをコピーすることに失敗しました。もう一度お試しください。","runbox.action.share.snackbar.copied.success":"ランボックスのURLが正常にコピーされました。","runbox.action.share.title":"ランボックスのURLを共有してください。","runbox.action.submitCountInfo.dialog.description":"提出回数の制限を超えています","runbox.action.submitCountInfo.dialog.title":"投稿の数を制限してください。","runbox.action.submitCountInfo.tooltip.disabled":"提出回数が使い果たされました。","runbox.action.submitLog.dialog.download.tooltip":"提出ファイルをダウンロード","runbox.action.submitLog.dialog.title":"提出履歴","runbox.action.submitLog.empty":"提出履歴が存在しません。","runbox.action.submitLog.title":"ランボックス提出履歴","runbox.alert.title":"学生の実行中の環境に接続しているため、ランタイムセッション時間が減少しています。学生がランボックスを終了しても、チュータリングを続けると時間が引き続き減少するのでご注意ください。","runbox.common.close":"閉じる","runbox.common.retry":"リトライ","runbox.common.score":"{score}点","runbox.common.support":"サポート","runbox.context.command.ping.error":"タスクの処理中にエラーが発生しました。","runbox.header.submitInfo":"{isIndividual, select, true {個人} other {チーム}}の提出回数 | {remainCount}/{totalCount} 回残っています {isDailyLimitEnabled, select, true {今日} other {}}","runbox.runtime.message.lxp_plan_required":"現在、所属機関ではRunboxの学習資料を利用できません。\n詳細については機関の管理者にお問い合わせください。","runbox.runtime.message.runbox_unavailable":"Runboxは利用できません","runbox.runtime.message.startError":"ランボックスの起動中にエラーが発生しました。","runbox.runtime.overlay.assigned.description":"Runbox が実行中です。\nお待ちください!","runbox.runtime.overlay.assigned.description_timeout":"ランボックスを実行する時間が私たちの予想よりも長くかかっています。\n更新せずにもう少し待ってください!","runbox.runtime.overlay.queued.description":"現在{waiters}回待機中...","runbox.runtime.overlay.queued.description_zero":"Runboxはもうすぐ実行されます。","runbox.runtime.overlay.terminated.description.default":"ランタイムは予期せぬ問題により終了しました。\n再接続するには、下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.description.general":"ランボックスに接続されているランタイムが終了しました。\nランボックスに再接続するには、以下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.description.os_disk_is_full":"ディスクがいっぱいになったため、ランタイムが終了しました。\n最近ランボックスを削除した場合、反映には時間がかかることがあります。","runbox.runtime.overlay.terminated.description.quota_exceeded":"ランタイムが期限切れになったため、ランタイムが終了しました。","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"ランボックスは24時間稼働しており、ランタイムが終了しました。\nランボックスに再接続するには、以下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.description.unexpected":"問題が解決しない場合は、カスタマーサービスにお問い合わせください。","runbox.runtime.overlay.terminated.restart":"再接続","runbox.runtime.overlay.terminated.title":"ランタイムが切断されました。"};
2
2
 
3
3
  export { ja as default };
@@ -1,3 +1,3 @@
1
- var messageKo = {"runbox.action.autoShutdown.title":"항상 켜두기","runbox.action.autoShutdown.tooltip.disabled":"해당 런타임은 세션별 사용 시간으로 설정된 {time}이 지나면 자동으로 종료됩니다.","runbox.action.autoShutdown.tooltip.enabled":"항상 켜두기를 설정하면 학습 {_termLibraryLecturePage} 밖으로 나가도 런타임이 종료되지 않습니다. 다만, 해당 런타임의 세션별 사용 시간으로 설정된 {time}이 지나면 자동으로 종료됩니다.","runbox.action.grade.dialog.description.error":"채점 중에 오류가 발생했습니다.","runbox.action.grade.dialog.description.success":"채점이 완료되었습니다.","runbox.action.grade.dialog.title":"채점 결과","runbox.action.grade.noti.error":"코드를 채점하는 도중 오류가 발생했습니다.","runbox.action.grade.title":"제출","runbox.action.grade.tooltip.onProgress":"코드 채점이 진행 중 입니다. 잠시만 기다려 주세요. 실습에 따라 채점이 최대 3분까지 소요될 수 있습니다.","runbox.action.reset.dialog.actions.confirm":"초기화","runbox.action.reset.dialog.description":"런박스 코드를 초기화하시겠습니까? 초기화 시 학습{_termLibraryLecturePage}의 코드가 기본 코드로 덮어씌워집니다.\n초기화 이후 런박스 세션이 새로고침 됩니다.","runbox.action.reset.noti.error":"런박스 코드를 초기화 하는 중에 오류가 발생했습니다.","runbox.action.reset.title":"코드 초기화","runbox.action.restart.dialog.actions.confirm":"재시작","runbox.action.restart.dialog.description":"런박스를 재시작 하시겠습니까?","runbox.action.restart.title":"런박스 재시작","runbox.action.share.snackbar.copied.fail":"런박스 URL을 복사에 실패했습니다. 다시 시도해주세요.","runbox.action.share.snackbar.copied.success":"런박스 URL을 복사하였습니다.","runbox.action.share.title":"런박스 URL 복사","runbox.action.submitCountInfo.dialog.description":"제출 횟수 제한을 초과했습니다.","runbox.action.submitCountInfo.dialog.title":"제출 횟수 제한","runbox.action.submitCountInfo.tooltip.disabled":"제출 횟수를 모두 사용했습니다.","runbox.action.submitLog.dialog.download.tooltip":"제출 파일 다운로드","runbox.action.submitLog.dialog.title":"제출 이력","runbox.action.submitLog.empty":"제출 이력이 존재하지 않습니다.","runbox.action.submitLog.title":"런박스 제출 이력","runbox.common.close":"닫기","runbox.common.retry":"재시도","runbox.common.score":"{score}점","runbox.common.support":"고객센터","runbox.context.command.ping.error":"런박스 작업을 수행하는 도중 오류가 발생했습니다.","runbox.header.submitInfo":"{isIndividual, select, true {} other {팀}} 제출 횟수 | {isDailyLimitEnabled, select, true {오늘} other {}} {remainCount}/{totalCount}회 남음","runbox.runtime.message.lxp_plan_required":"현재 기관에서는 런박스 수업 자료를 학습할 수 없습니다.\n자세한 사항은 기관 관리자에게 문의하세요.","runbox.runtime.message.runbox_unavailable":"런박스 사용 불가","runbox.runtime.message.startError":"런박스를 시작하는 중에 오류가 발생했습니다.","runbox.runtime.overlay.assigned.description":"(3 / 3)\n런박스가 실행 중입니다.\n잠시만 기다려주세요!","runbox.runtime.overlay.assigned.description_timeout":"(3 / 3)\n런박스를 실행하는데\n예상보다 시간이 소요되고 있습니다.\n새로고침하지 말고 조금만 더 기다려주세요!","runbox.runtime.overlay.queued.description":"(2 / 3)\n현재 {waiters}번째 대기 중입니다...","runbox.runtime.overlay.queued.description_zero":"(2 / 3)\n곧 런박스가 실행됩니다","runbox.runtime.overlay.terminated.description.default":"예상치 못한 문제로 런타임이 종료되었습니다.\n런박스를 재접속하려면 아래 버튼을 눌러주세요.","runbox.runtime.overlay.terminated.description.general":"런박스에 연결된 런타임이 종료되었습니다.\n런박스를 재접속하려면 아래 버튼을 눌러주세요.","runbox.runtime.overlay.terminated.description.os_disk_is_full":"디스크가 가득 차서 런타임이 종료되었습니다.\n최근 런박스를 삭제하셨다면 반영까지 시간이 소요될 수 있습니다.","runbox.runtime.overlay.terminated.description.quota_exceeded":"런타임 사용시간이 만료되어 런타임이 종료되었습니다.","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"런박스를 실행한지 24시간이 경과하여 런타임이 종료되었습니다.\n런박스를 재접속하려면 아래 버튼을 눌러주세요.","runbox.runtime.overlay.terminated.description.unexpected":"문제가 지속되면 고객센터에 문의해주세요.","runbox.runtime.overlay.terminated.restart":"재접속","runbox.runtime.overlay.terminated.title":"런타임 연결 해제됨"};
1
+ var messageKo = {"runbox.action.autoShutdown.title":"항상 켜두기","runbox.action.autoShutdown.tooltip.disabled":"해당 런타임은 세션별 사용 시간으로 설정된 {time}이 지나면 자동으로 종료됩니다.","runbox.action.autoShutdown.tooltip.enabled":"항상 켜두기를 설정하면 학습 {_termLibraryLecturePage} 밖으로 나가도 런타임이 종료되지 않습니다. 다만, 해당 런타임의 세션별 사용 시간으로 설정된 {time}이 지나면 자동으로 종료됩니다.","runbox.action.grade.dialog.description.error":"채점 중에 오류가 발생했습니다.","runbox.action.grade.dialog.description.success":"채점이 완료되었습니다.","runbox.action.grade.dialog.title":"채점 결과","runbox.action.grade.noti.error":"코드를 채점하는 도중 오류가 발생했습니다.","runbox.action.grade.title":"제출","runbox.action.grade.tooltip.onProgress":"코드 채점이 진행 중 입니다. 잠시만 기다려 주세요. 실습에 따라 채점이 최대 3분까지 소요될 수 있습니다.","runbox.action.reset.dialog.actions.confirm":"초기화","runbox.action.reset.dialog.description":"런박스 코드를 초기화하시겠습니까? 초기화 시 학습{_termLibraryLecturePage}의 코드가 기본 코드로 덮어씌워집니다.\n초기화 이후 런박스 세션이 새로고침 됩니다.","runbox.action.reset.noti.error":"런박스 코드를 초기화 하는 중에 오류가 발생했습니다.","runbox.action.reset.title":"코드 초기화","runbox.action.restart.dialog.actions.confirm":"재시작","runbox.action.restart.dialog.description":"런박스를 재시작 하시겠습니까?","runbox.action.restart.title":"런박스 재시작","runbox.action.share.snackbar.copied.fail":"런박스 URL을 복사에 실패했습니다. 다시 시도해주세요.","runbox.action.share.snackbar.copied.success":"런박스 URL을 복사하였습니다.","runbox.action.share.title":"런박스 URL 복사","runbox.action.submitCountInfo.dialog.description":"제출 횟수 제한을 초과했습니다.","runbox.action.submitCountInfo.dialog.title":"제출 횟수 제한","runbox.action.submitCountInfo.tooltip.disabled":"제출 횟수를 모두 사용했습니다.","runbox.action.submitLog.dialog.download.tooltip":"제출 파일 다운로드","runbox.action.submitLog.dialog.title":"제출 이력","runbox.action.submitLog.empty":"제출 이력이 존재하지 않습니다.","runbox.action.submitLog.title":"런박스 제출 이력","runbox.alert.title":"학생의 실행 중인 환경에 접속하여 런타임 세션 시간이 차감되고 있습니다. 학생이 런박스를 종료해도 튜터링을 계속하면 시간이 계속 차감되니 유의해 주세요.","runbox.common.close":"닫기","runbox.common.retry":"재시도","runbox.common.score":"{score}점","runbox.common.support":"고객센터","runbox.context.command.ping.error":"런박스 작업을 수행하는 도중 오류가 발생했습니다.","runbox.header.submitInfo":"{isIndividual, select, true {} other {팀}} 제출 횟수 | {isDailyLimitEnabled, select, true {오늘} other {}} {remainCount}/{totalCount}회 남음","runbox.runtime.message.lxp_plan_required":"현재 기관에서는 런박스 수업 자료를 학습할 수 없습니다.\n자세한 사항은 기관 관리자에게 문의하세요.","runbox.runtime.message.runbox_unavailable":"런박스 사용 불가","runbox.runtime.message.startError":"런박스를 시작하는 중에 오류가 발생했습니다.","runbox.runtime.overlay.assigned.description":"(3 / 3)\n런박스가 실행 중입니다.\n잠시만 기다려주세요!","runbox.runtime.overlay.assigned.description_timeout":"(3 / 3)\n런박스를 실행하는데\n예상보다 시간이 소요되고 있습니다.\n새로고침하지 말고 조금만 더 기다려주세요!","runbox.runtime.overlay.queued.description":"(2 / 3)\n현재 {waiters}번째 대기 중입니다...","runbox.runtime.overlay.queued.description_zero":"(2 / 3)\n곧 런박스가 실행됩니다","runbox.runtime.overlay.terminated.description.default":"예상치 못한 문제로 런타임이 종료되었습니다.\n런박스를 재접속하려면 아래 버튼을 눌러주세요.","runbox.runtime.overlay.terminated.description.general":"런박스에 연결된 런타임이 종료되었습니다.\n런박스를 재접속하려면 아래 버튼을 눌러주세요.","runbox.runtime.overlay.terminated.description.os_disk_is_full":"디스크가 가득 차서 런타임이 종료되었습니다.\n최근 런박스를 삭제하셨다면 반영까지 시간이 소요될 수 있습니다.","runbox.runtime.overlay.terminated.description.quota_exceeded":"런타임 사용시간이 만료되어 런타임이 종료되었습니다.","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"런박스를 실행한지 24시간이 경과하여 런타임이 종료되었습니다.\n런박스를 재접속하려면 아래 버튼을 눌러주세요.","runbox.runtime.overlay.terminated.description.unexpected":"문제가 지속되면 고객센터에 문의해주세요.","runbox.runtime.overlay.terminated.restart":"재접속","runbox.runtime.overlay.terminated.title":"런타임 연결 해제됨"};
2
2
 
3
3
  export { messageKo as default };
@@ -1,3 +1,3 @@
1
- var th = {"runbox.action.autoShutdown.title":"เปิดตลอดเวลา","runbox.action.autoShutdown.tooltip.disabled":"Runbox นี้จะปิดโดยอัตโนมัติหลังจากใช้งาน {time} นาทีต่อเซสชัน","runbox.action.autoShutdown.tooltip.enabled":"หากตั้งค่าให้เปิดตลอดเวลา Runbox จะไม่ปิดแม้ว่าคุณจะออกจากหน้าเรียน {_termLibraryLecturePage} แต่จะปิดโดยอัตโนมัติหลังจากใช้งาน {time} นาทีต่อเซสชัน","runbox.action.grade.dialog.description.error":"เกิดข้อผิดพลาดขึ้นในขณะที่ทำการตรวจคะแนนของโค้ด","runbox.action.grade.dialog.description.success":"การจัดเกรดเสร็จสมบูรณ์เรียบร้อยแล้ว","runbox.action.grade.dialog.title":"ผลการประเมินผลการเรียน","runbox.action.grade.noti.error":"เกิดข้อผิดพลาดขึ้นในขณะที่ทำการตรวจคะแนนของโค้ด","runbox.action.grade.title":"ส่ง","runbox.action.grade.tooltip.onProgress":"กำลังให้คะแนนโค้ด โปรดรอสักครู่ การให้คะแนนอาจใช้เวลาสูงสุด 3 นาที ขึ้นอยู่กับประเภทของการฝึกอบรม","runbox.action.reset.dialog.actions.confirm":"รีเซ็ต","runbox.action.reset.dialog.description":"ต้องการรีเซ็ตโค้ด Runbox หรือไม่? การรีเซ็ตจะแทนที่โค้ดของคุณด้วยโค้ดเริ่มต้นของหน้าเรียน {_termLibraryLecturePage} \nเซสชัน Runbox จะรีเฟรชหลังจากรีเซ็ต","runbox.action.reset.noti.error":"เกิดข้อผิดพลาดระหว่างการรีเซ็ตโค้ด Runbox","runbox.action.reset.title":"รีเซ็ตโค้ด","runbox.action.restart.dialog.actions.confirm":"เริ่มต้นใหม่","runbox.action.restart.dialog.description":"ต้องการเริ่มต้น Runbox ใหม่หรือไม่?","runbox.action.restart.title":"เริ่มต้น Runbox ใหม่","runbox.action.share.snackbar.copied.fail":"ล้มเหลวในการคัดลอก URL Runbox กรุณาลองอีกครั้ง","runbox.action.share.snackbar.copied.success":"คัดลอก URL Runbox สำเร็จ","runbox.action.share.title":"คัดลอก URL Runbox","runbox.action.submitCountInfo.dialog.description":"คุณใช้จำนวนครั้งในการส่งเกินขีดจำกัดแล้ว","runbox.action.submitCountInfo.dialog.title":"ข้อจำกัดจำนวนครั้งในการส่ง","runbox.action.submitCountInfo.tooltip.disabled":"คุณใช้จำนวนครั้งในการส่งทั้งหมดแล้ว","runbox.action.submitLog.dialog.download.tooltip":"ดาวน์โหลดไฟล์ที่ส่ง","runbox.action.submitLog.dialog.title":"ประวัติการส่ง","runbox.action.submitLog.empty":"ไม่มีประวัติการส่ง","runbox.action.submitLog.title":"ประวัติการส่ง Runbox","runbox.common.close":"ปิด","runbox.common.retry":"ลองใหม่","runbox.common.score":"{score} คะแนน","runbox.common.support":"สนับสนุน","runbox.context.command.ping.error":"เกิดข้อผิดพลาดขณะดำเนินการ Runbox","runbox.header.submitInfo":"{isIndividual, select, true {การส่งแบบส่วนตัว} other {การส่งแบบทีม}} | {remainCount}/{totalCount} ครั้งที่เหลือ | {isDailyLimitEnabled, select, true {วันนี้} other {}} ","runbox.runtime.message.lxp_plan_required":"ขณะนี้สถาบันของคุณไม่รองรับการใช้งานสื่อการเรียนการสอน Runbox\nโปรดติดต่อผู้ดูแลระบบของสถาบันของคุณสำหรับข้อมูลเพิ่มเติม","runbox.runtime.message.runbox_unavailable":"ไม่สามารถใช้ Runbox ได้","runbox.runtime.message.startError":"เกิดข้อผิดพลาดขณะเริ่ม Runbox","runbox.runtime.overlay.assigned.description":"(3 / 3)\nRunbox กำลังทำงานอยู่\nกรุณารอสักครู่!","runbox.runtime.overlay.assigned.description_timeout":"(3 / 3)\nRunbox ใช้เวลานานกว่าที่คาดไว้ในการทำงาน\nกรุณาอย่ารีเฟรชและรอสักครู่!","runbox.runtime.overlay.queued.description":"(2 / 3)\nกำลังรอคิวอยู่ที่ {waiters}...","runbox.runtime.overlay.queued.description_zero":"(2 / 3)\nRunbox ของคุณจะเริ่มทำงานเร็วๆ นี้","runbox.runtime.overlay.terminated.description.default":"Runbox หยุดทำงานเนื่องจากปัญหาที่ไม่คาดคิด\nคลิกปุ่มด้านล่างเพื่อเชื่อมต่อ Runbox ใหม่","runbox.runtime.overlay.terminated.description.general":"Runbox ที่เชื่อมต่อกับคุณหยุดทำงาน\nคลิกปุ่มด้านล่างเพื่อเชื่อมต่อ Runbox ใหม่","runbox.runtime.overlay.terminated.description.os_disk_is_full":"Runbox หยุดทำงานเนื่องจากพื้นที่ดิสก์เต็ม\nหากคุณเพิ่งลบ Runbox อาจใช้เวลาสักครู่กว่าจะสะท้อนผล","runbox.runtime.overlay.terminated.description.quota_exceeded":"Runbox หยุดทำงานเนื่องจากใช้เวลาเกินขีดจำกัด","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"Runbox หยุดทำงานหลังจากใช้งานครบ 24 ชั่วโมง\nคลิกปุ่มด้านล่างเพื่อเชื่อมต่อ Runbox ใหม่","runbox.runtime.overlay.terminated.description.unexpected":"หากปัญหายังคงมีอยู่ โปรดติดต่อฝ่ายสนับสนุน","runbox.runtime.overlay.terminated.restart":"เชื่อมต่อใหม่","runbox.runtime.overlay.terminated.title":"การเชื่อมต่อ Runbox หยุดชะงัก"};
1
+ var th = {"runbox.action.autoShutdown.title":"เปิดตลอดเวลา","runbox.action.autoShutdown.tooltip.disabled":"Runbox นี้จะปิดโดยอัตโนมัติหลังจากใช้งาน {time} นาทีต่อเซสชัน","runbox.action.autoShutdown.tooltip.enabled":"หากตั้งค่าให้เปิดตลอดเวลา Runbox จะไม่ปิดแม้ว่าคุณจะออกจากหน้าเรียน {_termLibraryLecturePage} แต่จะปิดโดยอัตโนมัติหลังจากใช้งาน {time} นาทีต่อเซสชัน","runbox.action.grade.dialog.description.error":"เกิดข้อผิดพลาดขึ้นในขณะที่ทำการตรวจคะแนนของโค้ด","runbox.action.grade.dialog.description.success":"การจัดเกรดเสร็จสมบูรณ์เรียบร้อยแล้ว","runbox.action.grade.dialog.title":"ผลการประเมินผลการเรียน","runbox.action.grade.noti.error":"เกิดข้อผิดพลาดขึ้นในขณะที่ทำการตรวจคะแนนของโค้ด","runbox.action.grade.title":"ส่ง","runbox.action.grade.tooltip.onProgress":"กำลังให้คะแนนโค้ด โปรดรอสักครู่ การให้คะแนนอาจใช้เวลาสูงสุด 3 นาที ขึ้นอยู่กับประเภทของการฝึกอบรม","runbox.action.reset.dialog.actions.confirm":"รีเซ็ต","runbox.action.reset.dialog.description":"ต้องการรีเซ็ตโค้ด Runbox หรือไม่? การรีเซ็ตจะแทนที่โค้ดของคุณด้วยโค้ดเริ่มต้นของหน้าเรียน {_termLibraryLecturePage} \nเซสชัน Runbox จะรีเฟรชหลังจากรีเซ็ต","runbox.action.reset.noti.error":"เกิดข้อผิดพลาดระหว่างการรีเซ็ตโค้ด Runbox","runbox.action.reset.title":"รีเซ็ตโค้ด","runbox.action.restart.dialog.actions.confirm":"เริ่มต้นใหม่","runbox.action.restart.dialog.description":"ต้องการเริ่มต้น Runbox ใหม่หรือไม่?","runbox.action.restart.title":"เริ่มต้น Runbox ใหม่","runbox.action.share.snackbar.copied.fail":"ล้มเหลวในการคัดลอก URL Runbox กรุณาลองอีกครั้ง","runbox.action.share.snackbar.copied.success":"คัดลอก URL Runbox สำเร็จ","runbox.action.share.title":"คัดลอก URL Runbox","runbox.action.submitCountInfo.dialog.description":"คุณใช้จำนวนครั้งในการส่งเกินขีดจำกัดแล้ว","runbox.action.submitCountInfo.dialog.title":"ข้อจำกัดจำนวนครั้งในการส่ง","runbox.action.submitCountInfo.tooltip.disabled":"คุณใช้จำนวนครั้งในการส่งทั้งหมดแล้ว","runbox.action.submitLog.dialog.download.tooltip":"ดาวน์โหลดไฟล์ที่ส่ง","runbox.action.submitLog.dialog.title":"ประวัติการส่ง","runbox.action.submitLog.empty":"ไม่มีประวัติการส่ง","runbox.action.submitLog.title":"ประวัติการส่ง Runbox","runbox.alert.title":"คุณได้เชื่อมต่อกับสภาพแวดล้อมที่กำลังทำงานของนักเรียนแล้ว และเวลาเซสชันของรันไทม์กำลังถูกหัก โปรดทราบว่าหากนักเรียนออกจากรันบ็อกซ์ แต่ยังคงให้คำปรึกษาอยู่ เวลาจะยังคงถูกหักต่อไป","runbox.common.close":"ปิด","runbox.common.retry":"ลองใหม่","runbox.common.score":"{score} คะแนน","runbox.common.support":"สนับสนุน","runbox.context.command.ping.error":"เกิดข้อผิดพลาดขณะดำเนินการ Runbox","runbox.header.submitInfo":"{isIndividual, select, true {การส่งแบบส่วนตัว} other {การส่งแบบทีม}} | {remainCount}/{totalCount} ครั้งที่เหลือ | {isDailyLimitEnabled, select, true {วันนี้} other {}} ","runbox.runtime.message.lxp_plan_required":"ขณะนี้สถาบันของคุณไม่รองรับการใช้งานสื่อการเรียนการสอน Runbox\nโปรดติดต่อผู้ดูแลระบบของสถาบันของคุณสำหรับข้อมูลเพิ่มเติม","runbox.runtime.message.runbox_unavailable":"ไม่สามารถใช้ Runbox ได้","runbox.runtime.message.startError":"เกิดข้อผิดพลาดขณะเริ่ม Runbox","runbox.runtime.overlay.assigned.description":"(3 / 3)\nRunbox กำลังทำงานอยู่\nกรุณารอสักครู่!","runbox.runtime.overlay.assigned.description_timeout":"(3 / 3)\nRunbox ใช้เวลานานกว่าที่คาดไว้ในการทำงาน\nกรุณาอย่ารีเฟรชและรอสักครู่!","runbox.runtime.overlay.queued.description":"(2 / 3)\nกำลังรอคิวอยู่ที่ {waiters}...","runbox.runtime.overlay.queued.description_zero":"(2 / 3)\nRunbox ของคุณจะเริ่มทำงานเร็วๆ นี้","runbox.runtime.overlay.terminated.description.default":"Runbox หยุดทำงานเนื่องจากปัญหาที่ไม่คาดคิด\nคลิกปุ่มด้านล่างเพื่อเชื่อมต่อ Runbox ใหม่","runbox.runtime.overlay.terminated.description.general":"Runbox ที่เชื่อมต่อกับคุณหยุดทำงาน\nคลิกปุ่มด้านล่างเพื่อเชื่อมต่อ Runbox ใหม่","runbox.runtime.overlay.terminated.description.os_disk_is_full":"Runbox หยุดทำงานเนื่องจากพื้นที่ดิสก์เต็ม\nหากคุณเพิ่งลบ Runbox อาจใช้เวลาสักครู่กว่าจะสะท้อนผล","runbox.runtime.overlay.terminated.description.quota_exceeded":"Runbox หยุดทำงานเนื่องจากใช้เวลาเกินขีดจำกัด","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"Runbox หยุดทำงานหลังจากใช้งานครบ 24 ชั่วโมง\nคลิกปุ่มด้านล่างเพื่อเชื่อมต่อ Runbox ใหม่","runbox.runtime.overlay.terminated.description.unexpected":"หากปัญหายังคงมีอยู่ โปรดติดต่อฝ่ายสนับสนุน","runbox.runtime.overlay.terminated.restart":"เชื่อมต่อใหม่","runbox.runtime.overlay.terminated.title":"การเชื่อมต่อ Runbox หยุดชะงัก"};
2
2
 
3
3
  export { th as default };
@@ -12,7 +12,9 @@ export interface RuntimeProps {
12
12
  /** */
13
13
  courseId: number;
14
14
  /** */
15
- userId: number;
15
+ studentUserId?: number;
16
+ /** */
17
+ userId?: number;
16
18
  /** */
17
19
  isTutoring?: boolean;
18
20
  /** */
@@ -7,6 +7,7 @@ import '../contexts/MaterialRunboxApiContext.js';
7
7
  import { useMaterialRunboxCommandContext } from '../contexts/MaterialRunboxCommandContext.js';
8
8
  import '../contexts/MaterialRunboxContext.js';
9
9
  import { useRunboxControl } from '../hooks/useRunboxControl.js';
10
+ import '@tanstack/react-query';
10
11
  import RuntimeOverlayAssigned from './RuntimeOverlayAssigned.js';
11
12
  import RuntimeOverlayQueued from './RuntimeOverlayQueued.js';
12
13
  import RuntimeOverlayTerminated from './RuntimeOverlayTerminated.js';
@@ -44,7 +45,7 @@ var Runtime = function Runtime(props) {
44
45
  // };
45
46
  },
46
47
  // eslint-disable-next-line react-hooks/exhaustive-deps
47
- [props.runbox.id, props.userId]);
48
+ [props.runbox.id, props.studentUserId]);
48
49
  //
49
50
  // refresh view when `ProjectFileReset` command done.
50
51
  //
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elice/material-runbox",
3
- "version": "1.250313.1",
3
+ "version": "1.250317.0-concurrenttutoring.0",
4
4
  "description": "User view and editing components of Elice material runbox",
5
5
  "repository": "https://git.elicer.io/elice/frontend/library/elice-material",
6
6
  "license": "UNLICENSED",
@@ -51,12 +51,12 @@
51
51
  },
52
52
  "devDependencies": {
53
53
  "@elice/intl": "0.241127.0",
54
- "@elice/material-shared-types": "1.250313.1",
55
- "@elice/material-shared-utils": "1.250313.1",
54
+ "@elice/material-shared-types": "1.250317.0-concurrenttutoring.0",
55
+ "@elice/material-shared-utils": "1.250317.0-concurrenttutoring.0",
56
56
  "@elice/mui-elements": "^5.250108.0-controllabel.0",
57
57
  "@elice/mui-system": "^5.250108.0-controllabel.0",
58
58
  "@elice/mui-x-snackbar": "^5.250108.0-controllabel.0",
59
- "@elice/openapi-client-material-runbox": "1.250310.0",
59
+ "@elice/openapi-client-material-runbox": "1.250317.0-concurrent.0",
60
60
  "@elice/runbox-client": "1.241127.0",
61
61
  "@elice/types": "1.241220.0",
62
62
  "@emotion/react": "^11.10.5",