@elice/material-runbox 1.260908.0 → 1.260910.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/_virtual/_rollupPluginBabelHelpers.js +16 -0
- package/cjs/assets/runbox-loading.svg.js +7 -0
- package/cjs/components/material-runbox/MaterialRunbox.js +16 -11
- package/cjs/components/material-runbox/MaterialRunboxContent.d.ts +2 -0
- package/cjs/components/material-runbox/MaterialRunboxContent.js +93 -65
- package/cjs/components/material-runbox/MaterialRunboxHeader.js +55 -69
- package/cjs/components/material-runbox/actions/MaterialRunboxActionDisconnect.d.ts +1 -4
- package/cjs/components/material-runbox/actions/MaterialRunboxActionDisconnect.js +29 -2
- package/cjs/components/material-runbox/actions/MaterialRunboxActionDisconnectMenuItem.d.ts +3 -0
- package/cjs/components/material-runbox/actions/MaterialRunboxActionDisconnectMenuItem.js +90 -0
- package/cjs/components/material-runbox/actions/MaterialRunboxActionMenu.d.ts +3 -1
- package/cjs/components/material-runbox/actions/MaterialRunboxActionMenu.js +26 -7
- package/cjs/components/material-runbox/actions/MaterialRunboxActionRestart.d.ts +1 -2
- package/cjs/components/material-runbox/actions/MaterialRunboxActionRestart.js +9 -26
- package/cjs/components/material-runbox/contexts/MaterialRunboxControlContext.d.ts +14 -0
- package/cjs/components/material-runbox/contexts/MaterialRunboxControlContext.js +56 -0
- package/cjs/components/material-runbox/contexts/index.d.ts +2 -0
- package/cjs/components/material-runbox/contexts/index.js +4 -0
- package/cjs/components/material-runbox/disk/MaterialRunboxDiskUsageAlert.d.ts +13 -0
- package/cjs/components/material-runbox/disk/MaterialRunboxDiskUsageAlert.js +71 -0
- package/cjs/components/material-runbox/disk/MaterialRunboxDiskUsageDialog.d.ts +10 -0
- package/cjs/components/material-runbox/disk/MaterialRunboxDiskUsageDialog.js +98 -0
- package/cjs/components/material-runbox/disk/MaterialRunboxEnvResetButton.d.ts +10 -0
- package/cjs/components/material-runbox/disk/MaterialRunboxEnvResetButton.js +151 -0
- package/cjs/components/material-runbox/disk/MaterialRunboxEnvResetDialog.d.ts +13 -0
- package/cjs/components/material-runbox/disk/MaterialRunboxEnvResetDialog.js +98 -0
- package/cjs/components/material-runbox/disk/index.d.ts +8 -1
- package/cjs/components/material-runbox/disk/index.js +8 -2
- package/cjs/components/material-runbox/hooks/index.d.ts +3 -0
- package/cjs/components/material-runbox/hooks/index.js +14 -0
- package/cjs/components/material-runbox/hooks/useRunboxControl.d.ts +4 -3
- package/cjs/components/material-runbox/hooks/useRunboxControl.js +43 -14
- package/cjs/components/material-runbox/hooks/useRunboxDiskUsage.d.ts +16 -0
- package/cjs/components/material-runbox/hooks/useRunboxDiskUsage.js +50 -0
- package/cjs/components/material-runbox/hooks/useRunboxNetworkStatus.d.ts +14 -0
- package/cjs/components/material-runbox/hooks/useRunboxNetworkStatus.js +65 -0
- package/cjs/components/material-runbox/hooks/useRunboxSessionEndWarning.d.ts +18 -0
- package/cjs/components/material-runbox/hooks/useRunboxSessionEndWarning.js +67 -0
- package/cjs/components/material-runbox/locales/en.json.js +1 -1
- package/cjs/components/material-runbox/locales/ja.json.js +1 -1
- package/cjs/components/material-runbox/locales/ko.json.js +1 -1
- package/cjs/components/material-runbox/locales/th.json.js +1 -1
- package/cjs/components/material-runbox/runtime/Runtime.js +21 -18
- package/cjs/components/material-runbox/runtime/RuntimeChangeMaterialDialog.d.ts +0 -1
- package/cjs/components/material-runbox/runtime/RuntimeChangeMaterialDialog.js +9 -3
- package/cjs/components/material-runbox/runtime/RuntimeOverlayAssigned.d.ts +5 -3
- package/cjs/components/material-runbox/runtime/RuntimeOverlayAssigned.js +6 -54
- package/cjs/components/material-runbox/runtime/RuntimeOverlayConflicted.d.ts +0 -1
- package/cjs/components/material-runbox/runtime/RuntimeOverlayConflicted.js +68 -64
- package/cjs/components/material-runbox/runtime/RuntimeOverlayLoading.d.ts +9 -0
- package/cjs/components/material-runbox/runtime/RuntimeOverlayLoading.js +283 -0
- package/cjs/components/material-runbox/runtime/RuntimeOverlayQueued.d.ts +5 -3
- package/cjs/components/material-runbox/runtime/RuntimeOverlayQueued.js +6 -64
- package/cjs/components/material-runbox/runtime/RuntimeOverlayTerminated.d.ts +4 -1
- package/cjs/components/material-runbox/runtime/RuntimeOverlayTerminated.js +92 -70
- package/cjs/components/material-runbox/runtime/runtime-loading-tips.d.ts +7 -0
- package/cjs/components/material-runbox/runtime/runtime-loading-tips.js +148 -0
- package/cjs/components/material-runbox/status/MaterialRunboxStatusButton.d.ts +15 -0
- package/cjs/components/material-runbox/status/MaterialRunboxStatusButton.js +117 -0
- package/cjs/components/material-runbox/status/MaterialRunboxStatusConnectionItem.d.ts +12 -0
- package/cjs/components/material-runbox/status/MaterialRunboxStatusConnectionItem.js +35 -0
- package/cjs/components/material-runbox/status/MaterialRunboxStatusPopover.d.ts +14 -0
- package/cjs/components/material-runbox/status/MaterialRunboxStatusPopover.js +161 -0
- package/cjs/components/material-runbox/status/MaterialRunboxStatusResourceItem.d.ts +11 -0
- package/cjs/components/material-runbox/status/MaterialRunboxStatusResourceItem.js +41 -0
- package/cjs/components/material-runbox/status/index.d.ts +4 -0
- package/cjs/components/material-runbox/status/index.js +9 -0
- package/cjs/components/material-runbox/theme.d.ts +2 -0
- package/cjs/components/material-runbox/theme.js +15 -0
- package/cjs/components/material-runbox/timer/MaterialRunboxQuotaAlmostEndDialog.d.ts +11 -0
- package/cjs/components/material-runbox/timer/MaterialRunboxQuotaAlmostEndDialog.js +125 -0
- package/cjs/components/material-runbox/timer/MaterialRunboxQuotaAmount.d.ts +13 -0
- package/cjs/components/material-runbox/timer/MaterialRunboxQuotaAmount.js +56 -0
- package/cjs/components/material-runbox/timer/MaterialRunboxQuotaPerSessionAlmostEndDialog.d.ts +12 -0
- package/cjs/components/material-runbox/timer/MaterialRunboxQuotaPerSessionAlmostEndDialog.js +126 -0
- package/cjs/components/material-runbox/timer/MaterialRunboxQuotaTimePart.d.ts +15 -0
- package/cjs/components/material-runbox/timer/MaterialRunboxQuotaTimePart.js +50 -0
- package/cjs/components/material-runbox/timer/MaterialRunboxTimer.d.ts +6 -1
- package/cjs/components/material-runbox/timer/MaterialRunboxTimer.js +26 -18
- package/cjs/components/material-runbox/timer/MaterialRunboxTimerDetailPopover.js +21 -81
- package/cjs/components/shared/hooks/index.d.ts +1 -0
- package/cjs/components/shared/hooks/index.js +7 -0
- package/cjs/components/shared/hooks/useBreakpoint.d.ts +4 -0
- package/cjs/components/shared/hooks/useBreakpoint.js +12 -0
- package/es/_virtual/_rollupPluginBabelHelpers.js +13 -1
- package/es/assets/runbox-loading.svg.js +3 -0
- package/es/components/material-runbox/MaterialRunbox.js +16 -11
- package/es/components/material-runbox/MaterialRunboxContent.d.ts +2 -0
- package/es/components/material-runbox/MaterialRunboxContent.js +94 -66
- package/es/components/material-runbox/MaterialRunboxHeader.js +56 -70
- package/es/components/material-runbox/actions/MaterialRunboxActionDisconnect.d.ts +1 -4
- package/es/components/material-runbox/actions/MaterialRunboxActionDisconnect.js +30 -3
- package/es/components/material-runbox/actions/MaterialRunboxActionDisconnectMenuItem.d.ts +3 -0
- package/es/components/material-runbox/actions/MaterialRunboxActionDisconnectMenuItem.js +82 -0
- package/es/components/material-runbox/actions/MaterialRunboxActionMenu.d.ts +3 -1
- package/es/components/material-runbox/actions/MaterialRunboxActionMenu.js +28 -9
- package/es/components/material-runbox/actions/MaterialRunboxActionRestart.d.ts +1 -2
- package/es/components/material-runbox/actions/MaterialRunboxActionRestart.js +9 -26
- package/es/components/material-runbox/contexts/MaterialRunboxControlContext.d.ts +14 -0
- package/es/components/material-runbox/contexts/MaterialRunboxControlContext.js +46 -0
- package/es/components/material-runbox/contexts/index.d.ts +2 -0
- package/es/components/material-runbox/contexts/index.js +1 -0
- package/es/components/material-runbox/disk/MaterialRunboxDiskUsageAlert.d.ts +13 -0
- package/es/components/material-runbox/disk/MaterialRunboxDiskUsageAlert.js +67 -0
- package/es/components/material-runbox/disk/MaterialRunboxDiskUsageDialog.d.ts +10 -0
- package/es/components/material-runbox/disk/MaterialRunboxDiskUsageDialog.js +94 -0
- package/es/components/material-runbox/disk/MaterialRunboxEnvResetButton.d.ts +10 -0
- package/es/components/material-runbox/disk/MaterialRunboxEnvResetButton.js +143 -0
- package/es/components/material-runbox/disk/MaterialRunboxEnvResetDialog.d.ts +13 -0
- package/es/components/material-runbox/disk/MaterialRunboxEnvResetDialog.js +90 -0
- package/es/components/material-runbox/disk/index.d.ts +8 -1
- package/es/components/material-runbox/disk/index.js +4 -1
- package/es/components/material-runbox/hooks/index.d.ts +3 -0
- package/es/components/material-runbox/hooks/index.js +3 -0
- package/es/components/material-runbox/hooks/useRunboxControl.d.ts +4 -3
- package/es/components/material-runbox/hooks/useRunboxControl.js +43 -14
- package/es/components/material-runbox/hooks/useRunboxDiskUsage.d.ts +16 -0
- package/es/components/material-runbox/hooks/useRunboxDiskUsage.js +42 -0
- package/es/components/material-runbox/hooks/useRunboxNetworkStatus.d.ts +14 -0
- package/es/components/material-runbox/hooks/useRunboxNetworkStatus.js +59 -0
- package/es/components/material-runbox/hooks/useRunboxSessionEndWarning.d.ts +18 -0
- package/es/components/material-runbox/hooks/useRunboxSessionEndWarning.js +63 -0
- package/es/components/material-runbox/locales/en.json.js +1 -1
- package/es/components/material-runbox/locales/ja.json.js +1 -1
- package/es/components/material-runbox/locales/ko.json.js +1 -1
- package/es/components/material-runbox/locales/th.json.js +1 -1
- package/es/components/material-runbox/runtime/Runtime.js +22 -19
- package/es/components/material-runbox/runtime/RuntimeChangeMaterialDialog.d.ts +0 -1
- package/es/components/material-runbox/runtime/RuntimeChangeMaterialDialog.js +9 -3
- package/es/components/material-runbox/runtime/RuntimeOverlayAssigned.d.ts +5 -3
- package/es/components/material-runbox/runtime/RuntimeOverlayAssigned.js +7 -55
- package/es/components/material-runbox/runtime/RuntimeOverlayConflicted.d.ts +0 -1
- package/es/components/material-runbox/runtime/RuntimeOverlayConflicted.js +69 -65
- package/es/components/material-runbox/runtime/RuntimeOverlayLoading.d.ts +9 -0
- package/es/components/material-runbox/runtime/RuntimeOverlayLoading.js +275 -0
- package/es/components/material-runbox/runtime/RuntimeOverlayQueued.d.ts +5 -3
- package/es/components/material-runbox/runtime/RuntimeOverlayQueued.js +7 -65
- package/es/components/material-runbox/runtime/RuntimeOverlayTerminated.d.ts +4 -1
- package/es/components/material-runbox/runtime/RuntimeOverlayTerminated.js +82 -60
- package/es/components/material-runbox/runtime/runtime-loading-tips.d.ts +7 -0
- package/es/components/material-runbox/runtime/runtime-loading-tips.js +146 -0
- package/es/components/material-runbox/status/MaterialRunboxStatusButton.d.ts +15 -0
- package/es/components/material-runbox/status/MaterialRunboxStatusButton.js +109 -0
- package/es/components/material-runbox/status/MaterialRunboxStatusConnectionItem.d.ts +12 -0
- package/es/components/material-runbox/status/MaterialRunboxStatusConnectionItem.js +31 -0
- package/es/components/material-runbox/status/MaterialRunboxStatusPopover.d.ts +14 -0
- package/es/components/material-runbox/status/MaterialRunboxStatusPopover.js +157 -0
- package/es/components/material-runbox/status/MaterialRunboxStatusResourceItem.d.ts +11 -0
- package/es/components/material-runbox/status/MaterialRunboxStatusResourceItem.js +37 -0
- package/es/components/material-runbox/status/index.d.ts +4 -0
- package/es/components/material-runbox/status/index.js +2 -0
- package/es/components/material-runbox/theme.d.ts +2 -0
- package/es/components/material-runbox/theme.js +12 -0
- package/es/components/material-runbox/timer/MaterialRunboxQuotaAlmostEndDialog.d.ts +11 -0
- package/es/components/material-runbox/timer/MaterialRunboxQuotaAlmostEndDialog.js +121 -0
- package/es/components/material-runbox/timer/MaterialRunboxQuotaAmount.d.ts +13 -0
- package/es/components/material-runbox/timer/MaterialRunboxQuotaAmount.js +52 -0
- package/es/components/material-runbox/timer/MaterialRunboxQuotaPerSessionAlmostEndDialog.d.ts +12 -0
- package/es/components/material-runbox/timer/MaterialRunboxQuotaPerSessionAlmostEndDialog.js +122 -0
- package/es/components/material-runbox/timer/MaterialRunboxQuotaTimePart.d.ts +15 -0
- package/es/components/material-runbox/timer/MaterialRunboxQuotaTimePart.js +46 -0
- package/es/components/material-runbox/timer/MaterialRunboxTimer.d.ts +6 -1
- package/es/components/material-runbox/timer/MaterialRunboxTimer.js +25 -17
- package/es/components/material-runbox/timer/MaterialRunboxTimerDetailPopover.js +18 -78
- package/es/components/shared/hooks/index.d.ts +1 -0
- package/es/components/shared/hooks/index.js +1 -0
- package/es/components/shared/hooks/useBreakpoint.d.ts +4 -0
- package/es/components/shared/hooks/useBreakpoint.js +10 -0
- package/package.json +7 -7
- package/cjs/assets/queue.gif.js +0 -7
- package/cjs/assets/runbox_logo.png.js +0 -7
- package/cjs/components/material-runbox/MaterialRunboxFooter.d.ts +0 -4
- package/cjs/components/material-runbox/MaterialRunboxFooter.js +0 -64
- package/cjs/components/material-runbox/disk/MaterialRunboxDiskAlmostFullSnackbar.d.ts +0 -5
- package/cjs/components/material-runbox/disk/MaterialRunboxDiskAlmostFullSnackbar.js +0 -98
- package/cjs/components/material-runbox/timer/MaterialRunboxAlmostEndSnackbars.d.ts +0 -6
- package/cjs/components/material-runbox/timer/MaterialRunboxAlmostEndSnackbars.js +0 -90
- package/es/assets/queue.gif.js +0 -3
- package/es/assets/runbox_logo.png.js +0 -3
- package/es/components/material-runbox/MaterialRunboxFooter.d.ts +0 -4
- package/es/components/material-runbox/MaterialRunboxFooter.js +0 -56
- package/es/components/material-runbox/disk/MaterialRunboxDiskAlmostFullSnackbar.d.ts +0 -5
- package/es/components/material-runbox/disk/MaterialRunboxDiskAlmostFullSnackbar.js +0 -94
- package/es/components/material-runbox/timer/MaterialRunboxAlmostEndSnackbars.d.ts +0 -6
- package/es/components/material-runbox/timer/MaterialRunboxAlmostEndSnackbars.js +0 -86
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { useRawEliceIntl } from '@elice/intl';
|
|
5
|
+
import { EliceIcon } from '@elice/mui-elements';
|
|
6
|
+
import { faCircleExclamation } from '@fortawesome/pro-solid-svg-icons';
|
|
7
|
+
import { Dialog, DialogTitle, Stack, DialogContent, DialogContentText, FormControlLabel, Checkbox, DialogActions, Button } from '@mui/material';
|
|
8
|
+
|
|
9
|
+
//
|
|
10
|
+
//
|
|
11
|
+
//
|
|
12
|
+
/**
|
|
13
|
+
* Confirms clearing the practice environment. The checkbox is the explicit
|
|
14
|
+
* acknowledgement `[R-3]` asks for: the delete action stays disabled until it
|
|
15
|
+
* is ticked.
|
|
16
|
+
*/
|
|
17
|
+
var MaterialRunboxEnvResetDialog = function MaterialRunboxEnvResetDialog(_ref) {
|
|
18
|
+
var open = _ref.open,
|
|
19
|
+
onClose = _ref.onClose,
|
|
20
|
+
onConfirm = _ref.onConfirm;
|
|
21
|
+
var intl = useRawEliceIntl();
|
|
22
|
+
var _React$useState = React.useState(false),
|
|
23
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
24
|
+
isAcknowledged = _React$useState2[0],
|
|
25
|
+
setAcknowledged = _React$useState2[1];
|
|
26
|
+
React.useEffect(function () {
|
|
27
|
+
if (!open) {
|
|
28
|
+
setAcknowledged(false);
|
|
29
|
+
}
|
|
30
|
+
}, [open]);
|
|
31
|
+
//
|
|
32
|
+
//
|
|
33
|
+
//
|
|
34
|
+
return jsxs(Dialog, {
|
|
35
|
+
fullWidth: true,
|
|
36
|
+
open: open,
|
|
37
|
+
maxWidth: "xs",
|
|
38
|
+
onClose: onClose,
|
|
39
|
+
children: [jsx(DialogTitle, {
|
|
40
|
+
children: jsxs(Stack, {
|
|
41
|
+
direction: "row",
|
|
42
|
+
alignItems: "center",
|
|
43
|
+
gap: "0.5rem",
|
|
44
|
+
children: [jsx(EliceIcon, {
|
|
45
|
+
icon: faCircleExclamation,
|
|
46
|
+
color: "error"
|
|
47
|
+
}), intl.formatMessage({
|
|
48
|
+
id: 'runbox.disk.env_reset.dialog.title'
|
|
49
|
+
})]
|
|
50
|
+
})
|
|
51
|
+
}), jsxs(DialogContent, {
|
|
52
|
+
children: [jsx(DialogContentText, {
|
|
53
|
+
whiteSpace: "pre-line",
|
|
54
|
+
children: intl.formatMessage({
|
|
55
|
+
id: 'runbox.disk.env_reset.dialog.description'
|
|
56
|
+
})
|
|
57
|
+
}), jsx(FormControlLabel, {
|
|
58
|
+
sx: {
|
|
59
|
+
marginTop: '1rem'
|
|
60
|
+
},
|
|
61
|
+
control: jsx(Checkbox, {
|
|
62
|
+
checked: isAcknowledged,
|
|
63
|
+
onChange: function onChange(e) {
|
|
64
|
+
return setAcknowledged(e.target.checked);
|
|
65
|
+
}
|
|
66
|
+
}),
|
|
67
|
+
label: intl.formatMessage({
|
|
68
|
+
id: 'runbox.disk.env_reset.dialog.acknowledge'
|
|
69
|
+
})
|
|
70
|
+
})]
|
|
71
|
+
}), jsxs(DialogActions, {
|
|
72
|
+
children: [jsx(Button, {
|
|
73
|
+
color: "inherit",
|
|
74
|
+
onClick: onClose,
|
|
75
|
+
children: intl.formatMessage({
|
|
76
|
+
id: 'runbox.disk.env_reset.dialog.actions.cancel'
|
|
77
|
+
})
|
|
78
|
+
}), jsx(Button, {
|
|
79
|
+
color: "error",
|
|
80
|
+
disabled: !isAcknowledged,
|
|
81
|
+
onClick: onConfirm,
|
|
82
|
+
children: intl.formatMessage({
|
|
83
|
+
id: 'runbox.disk.env_reset.dialog.actions.confirm'
|
|
84
|
+
})
|
|
85
|
+
})]
|
|
86
|
+
})]
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export { MaterialRunboxEnvResetDialog as default };
|
|
@@ -1 +1,8 @@
|
|
|
1
|
-
export { default as
|
|
1
|
+
export { default as MaterialRunboxDiskUsageAlert } from './MaterialRunboxDiskUsageAlert';
|
|
2
|
+
export { default as MaterialRunboxDiskUsageDialog } from './MaterialRunboxDiskUsageDialog';
|
|
3
|
+
export { default as MaterialRunboxEnvResetButton } from './MaterialRunboxEnvResetButton';
|
|
4
|
+
export { default as MaterialRunboxEnvResetDialog } from './MaterialRunboxEnvResetDialog';
|
|
5
|
+
export type { MaterialRunboxDiskUsageAlertProps } from './MaterialRunboxDiskUsageAlert';
|
|
6
|
+
export type { MaterialRunboxDiskUsageDialogProps } from './MaterialRunboxDiskUsageDialog';
|
|
7
|
+
export type { MaterialRunboxEnvResetButtonProps } from './MaterialRunboxEnvResetButton';
|
|
8
|
+
export type { MaterialRunboxEnvResetDialogProps } from './MaterialRunboxEnvResetDialog';
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
export { default as
|
|
1
|
+
export { default as MaterialRunboxDiskUsageAlert } from './MaterialRunboxDiskUsageAlert.js';
|
|
2
|
+
export { default as MaterialRunboxDiskUsageDialog } from './MaterialRunboxDiskUsageDialog.js';
|
|
3
|
+
export { default as MaterialRunboxEnvResetButton } from './MaterialRunboxEnvResetButton.js';
|
|
4
|
+
export { default as MaterialRunboxEnvResetDialog } from './MaterialRunboxEnvResetDialog.js';
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export * from './useRunboxControl';
|
|
2
|
+
export * from './useRunboxSessionEndWarning';
|
|
2
3
|
export * from './useRunboxTimer';
|
|
3
4
|
export * from './useInfiniteRunboxRunboxIdGrade';
|
|
4
5
|
export * from './useMaterialRunboxRunboxIdStarterGet';
|
|
6
|
+
export * from './useRunboxNetworkStatus';
|
|
7
|
+
export * from './useRunboxDiskUsage';
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export { RunboxPreCheckResultType, useRunboxControl } from './useRunboxControl.js';
|
|
2
|
+
export { QUOTA_ALMOST_END_MINUTES, QUOTA_PER_SESSION_ALMOST_END_MINUTES, useRunboxSessionEndWarning } from './useRunboxSessionEndWarning.js';
|
|
2
3
|
export { useRunboxTimer } from './useRunboxTimer.js';
|
|
3
4
|
export { useInfiniteRunboxRunboxIdGrade } from './useInfiniteRunboxRunboxIdGrade.js';
|
|
4
5
|
export { useMaterialRunboxRunboxIdStarterGet } from './useMaterialRunboxRunboxIdStarterGet.js';
|
|
6
|
+
export { RunboxNetworkStatus, useRunboxNetworkStatus } from './useRunboxNetworkStatus.js';
|
|
7
|
+
export { DISK_USAGE_ERROR_RATIO, DISK_USAGE_WARNING_RATIO, useRunboxDiskUsage } from './useRunboxDiskUsage.js';
|
|
@@ -10,17 +10,18 @@ export type RunboxPreCheckResult = {
|
|
|
10
10
|
type: RunboxPreCheckResultType.RuntimeRunningOnOtherRunbox;
|
|
11
11
|
runningRunbox: RunningRunbox;
|
|
12
12
|
};
|
|
13
|
-
type UseRunboxControlProps = Pick<RuntimeProps, 'runbox' | 'runtime' | 'courseId' | 'refetch' | 'userId' | 'studentUserId' | 'isTutoring'>;
|
|
14
|
-
interface UseRunboxControlReturn {
|
|
13
|
+
export type UseRunboxControlProps = Pick<RuntimeProps, 'runbox' | 'runtime' | 'courseId' | 'refetch' | 'userId' | 'studentUserId' | 'isTutoring'>;
|
|
14
|
+
export interface UseRunboxControlReturn {
|
|
15
15
|
start: (args?: {
|
|
16
16
|
force?: boolean;
|
|
17
17
|
runPreCheck?: boolean;
|
|
18
18
|
}) => Promise<void>;
|
|
19
19
|
stop: () => Promise<void>;
|
|
20
|
+
isStarting: boolean;
|
|
21
|
+
isStopping: boolean;
|
|
20
22
|
preCheckStatus: RunboxPreCheckResult | null;
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
25
|
* Hook for runbox control and status.
|
|
24
26
|
*/
|
|
25
27
|
export declare const useRunboxControl: (props: UseRunboxControlProps) => UseRunboxControlReturn;
|
|
26
|
-
export {};
|
|
@@ -33,6 +33,14 @@ var useRunboxControl = function useRunboxControl(props) {
|
|
|
33
33
|
_useState2 = _slicedToArray(_useState, 2),
|
|
34
34
|
preCheckStatus = _useState2[0],
|
|
35
35
|
setPreCheckStatus = _useState2[1];
|
|
36
|
+
var _useState3 = useState(false),
|
|
37
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
38
|
+
isStarting = _useState4[0],
|
|
39
|
+
setStarting = _useState4[1];
|
|
40
|
+
var _useState5 = useState(false),
|
|
41
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
42
|
+
isStopping = _useState6[0],
|
|
43
|
+
setStopping = _useState6[1];
|
|
36
44
|
var userId = props.isTutoring ? props.studentUserId : props.userId;
|
|
37
45
|
var preCheck = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
38
46
|
var runningRunbox;
|
|
@@ -85,29 +93,33 @@ var useRunboxControl = function useRunboxControl(props) {
|
|
|
85
93
|
result,
|
|
86
94
|
_args2 = arguments;
|
|
87
95
|
return _regenerator().w(function (_context2) {
|
|
88
|
-
while (1) switch (_context2.n) {
|
|
96
|
+
while (1) switch (_context2.p = _context2.n) {
|
|
89
97
|
case 0:
|
|
90
98
|
_ref3 = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {}, _ref3$force = _ref3.force, force = _ref3$force === void 0 ? false : _ref3$force, _ref3$runPreCheck = _ref3.runPreCheck, runPreCheck = _ref3$runPreCheck === void 0 ? true : _ref3$runPreCheck;
|
|
91
99
|
setPreCheckStatus(null);
|
|
92
|
-
|
|
100
|
+
setStarting(true);
|
|
101
|
+
// try/finally, not a promise finally: a rejected pre-check would skip the
|
|
102
|
+
// chain below and leave the shared flag stuck for every consumer.
|
|
103
|
+
_context2.p = 1;
|
|
93
104
|
if (!runPreCheck) {
|
|
94
|
-
_context2.n =
|
|
105
|
+
_context2.n = 3;
|
|
95
106
|
break;
|
|
96
107
|
}
|
|
97
|
-
_context2.n =
|
|
108
|
+
_context2.n = 2;
|
|
98
109
|
return preCheck();
|
|
99
|
-
case
|
|
110
|
+
case 2:
|
|
100
111
|
result = _context2.v;
|
|
101
112
|
// Store to state to display UIs.
|
|
102
113
|
setPreCheckStatus(result);
|
|
103
114
|
// Don't start if pre-check is not passed.
|
|
104
115
|
if (!(result && result.type !== RunboxPreCheckResultType.Passed)) {
|
|
105
|
-
_context2.n =
|
|
116
|
+
_context2.n = 3;
|
|
106
117
|
break;
|
|
107
118
|
}
|
|
108
119
|
return _context2.a(2);
|
|
109
|
-
case
|
|
110
|
-
|
|
120
|
+
case 3:
|
|
121
|
+
_context2.n = 4;
|
|
122
|
+
return runboxStart(function (signal) {
|
|
111
123
|
return materialRunboxApi.runbox.runboxRunboxIdStartPost({
|
|
112
124
|
runboxId: props.runbox.id,
|
|
113
125
|
eliceCourseId: props.courseId,
|
|
@@ -127,9 +139,15 @@ var useRunboxControl = function useRunboxControl(props) {
|
|
|
127
139
|
variant: 'error'
|
|
128
140
|
});
|
|
129
141
|
}
|
|
130
|
-
})
|
|
142
|
+
});
|
|
143
|
+
case 4:
|
|
144
|
+
_context2.p = 4;
|
|
145
|
+
setStarting(false);
|
|
146
|
+
return _context2.f(4);
|
|
147
|
+
case 5:
|
|
148
|
+
return _context2.a(2);
|
|
131
149
|
}
|
|
132
|
-
}, _callee2);
|
|
150
|
+
}, _callee2, null, [[1,, 4, 5]]);
|
|
133
151
|
})),
|
|
134
152
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
135
153
|
[props.runbox.id, props.courseId, userId, runboxStart]);
|
|
@@ -138,9 +156,12 @@ var useRunboxControl = function useRunboxControl(props) {
|
|
|
138
156
|
*/
|
|
139
157
|
var stop = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
|
|
140
158
|
return _regenerator().w(function (_context3) {
|
|
141
|
-
while (1) switch (_context3.n) {
|
|
159
|
+
while (1) switch (_context3.p = _context3.n) {
|
|
142
160
|
case 0:
|
|
143
|
-
|
|
161
|
+
setStopping(true);
|
|
162
|
+
_context3.p = 1;
|
|
163
|
+
_context3.n = 2;
|
|
164
|
+
return runboxStop(function (signal) {
|
|
144
165
|
return materialRunboxApi.runbox.runboxRunboxIdStopPost({
|
|
145
166
|
runboxId: props.runbox.id,
|
|
146
167
|
eliceCourseId: props.courseId,
|
|
@@ -154,9 +175,15 @@ var useRunboxControl = function useRunboxControl(props) {
|
|
|
154
175
|
//
|
|
155
176
|
})["catch"](function (err) {
|
|
156
177
|
if (err.name !== 'AbortError') ;
|
|
157
|
-
})
|
|
178
|
+
});
|
|
179
|
+
case 2:
|
|
180
|
+
_context3.p = 2;
|
|
181
|
+
setStopping(false);
|
|
182
|
+
return _context3.f(2);
|
|
183
|
+
case 3:
|
|
184
|
+
return _context3.a(2);
|
|
158
185
|
}
|
|
159
|
-
}, _callee3);
|
|
186
|
+
}, _callee3, null, [[1,, 2, 3]]);
|
|
160
187
|
})),
|
|
161
188
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
162
189
|
[props.runbox.id, props.courseId, runboxStop]);
|
|
@@ -165,6 +192,8 @@ var useRunboxControl = function useRunboxControl(props) {
|
|
|
165
192
|
//
|
|
166
193
|
_return.current.start = start;
|
|
167
194
|
_return.current.stop = stop;
|
|
195
|
+
_return.current.isStarting = isStarting;
|
|
196
|
+
_return.current.isStopping = isStopping;
|
|
168
197
|
_return.current.preCheckStatus = preCheckStatus;
|
|
169
198
|
return _return.current;
|
|
170
199
|
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Matches MUI's `Alert` severity, which is where this value ends up. */
|
|
2
|
+
export type RunboxDiskUsageSeverity = 'warning' | 'error';
|
|
3
|
+
interface UseRunboxDiskUsageReturn {
|
|
4
|
+
/** `null` below the first threshold, or while the container reports no stats. */
|
|
5
|
+
severity: RunboxDiskUsageSeverity | null;
|
|
6
|
+
diskCurrent: number;
|
|
7
|
+
diskTotal: number;
|
|
8
|
+
}
|
|
9
|
+
export declare const DISK_USAGE_WARNING_RATIO = 0.8;
|
|
10
|
+
export declare const DISK_USAGE_ERROR_RATIO = 0.9;
|
|
11
|
+
/**
|
|
12
|
+
* Disk usage against the 80% / 90% thresholds. The numbers come from the
|
|
13
|
+
* container stats stream, so they are only available while the runtime is up.
|
|
14
|
+
*/
|
|
15
|
+
export declare const useRunboxDiskUsage: () => UseRunboxDiskUsageReturn;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useEliceRunboxContainerStats } from '@elice/runbox-client';
|
|
3
|
+
|
|
4
|
+
//
|
|
5
|
+
//
|
|
6
|
+
//
|
|
7
|
+
var DISK_USAGE_WARNING_RATIO = 0.8;
|
|
8
|
+
var DISK_USAGE_ERROR_RATIO = 0.9;
|
|
9
|
+
//
|
|
10
|
+
//
|
|
11
|
+
//
|
|
12
|
+
/**
|
|
13
|
+
* Disk usage against the 80% / 90% thresholds. The numbers come from the
|
|
14
|
+
* container stats stream, so they are only available while the runtime is up.
|
|
15
|
+
*/
|
|
16
|
+
var useRunboxDiskUsage = function useRunboxDiskUsage() {
|
|
17
|
+
var _a, _b;
|
|
18
|
+
var contStats = useEliceRunboxContainerStats();
|
|
19
|
+
var stats = contStats ? contStats[contStats.length - 1] : null;
|
|
20
|
+
var diskCurrent = (_a = stats === null || stats === void 0 ? void 0 : stats.diskCurrent) !== null && _a !== void 0 ? _a : 0;
|
|
21
|
+
var diskTotal = (_b = stats === null || stats === void 0 ? void 0 : stats.diskTotal) !== null && _b !== void 0 ? _b : 0;
|
|
22
|
+
var severity = React.useMemo(function () {
|
|
23
|
+
if (!stats || diskTotal <= 0) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
var ratio = diskCurrent / diskTotal;
|
|
27
|
+
if (ratio >= DISK_USAGE_ERROR_RATIO) {
|
|
28
|
+
return 'error';
|
|
29
|
+
}
|
|
30
|
+
if (ratio >= DISK_USAGE_WARNING_RATIO) {
|
|
31
|
+
return 'warning';
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}, [stats, diskCurrent, diskTotal]);
|
|
35
|
+
return {
|
|
36
|
+
severity: severity,
|
|
37
|
+
diskCurrent: diskCurrent,
|
|
38
|
+
diskTotal: diskTotal
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export { DISK_USAGE_ERROR_RATIO, DISK_USAGE_WARNING_RATIO, useRunboxDiskUsage };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare enum RunboxNetworkStatus {
|
|
2
|
+
Good = "good",
|
|
3
|
+
NotGood = "not_good",
|
|
4
|
+
Bad = "bad"
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Runbox network quality, derived from the heartbeat round trip.
|
|
8
|
+
*
|
|
9
|
+
* `null` until the first sample arrives.
|
|
10
|
+
*/
|
|
11
|
+
export declare const useRunboxNetworkStatus: () => {
|
|
12
|
+
avgRtt: number | null;
|
|
13
|
+
status: RunboxNetworkStatus | null;
|
|
14
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useEliceRunboxContainerStats } from '@elice/runbox-client';
|
|
3
|
+
|
|
4
|
+
//
|
|
5
|
+
//
|
|
6
|
+
//
|
|
7
|
+
var RunboxNetworkStatus;
|
|
8
|
+
(function (RunboxNetworkStatus) {
|
|
9
|
+
RunboxNetworkStatus["Good"] = "good";
|
|
10
|
+
RunboxNetworkStatus["NotGood"] = "not_good";
|
|
11
|
+
RunboxNetworkStatus["Bad"] = "bad";
|
|
12
|
+
})(RunboxNetworkStatus || (RunboxNetworkStatus = {}));
|
|
13
|
+
//
|
|
14
|
+
//
|
|
15
|
+
//
|
|
16
|
+
var RTT_THRESHOLD_GOOD = 600; // Fast 3G
|
|
17
|
+
var RTT_THRESHOLD_BAD = 1200; // Slow 3G
|
|
18
|
+
/** A failed heartbeat carries no `__rtt`, which counts as the worst latency. */
|
|
19
|
+
var MISSING_RTT = 1e10;
|
|
20
|
+
//
|
|
21
|
+
//
|
|
22
|
+
//
|
|
23
|
+
/**
|
|
24
|
+
* Runbox network quality, derived from the heartbeat round trip.
|
|
25
|
+
*
|
|
26
|
+
* `null` until the first sample arrives.
|
|
27
|
+
*/
|
|
28
|
+
var useRunboxNetworkStatus = function useRunboxNetworkStatus() {
|
|
29
|
+
var stats = useEliceRunboxContainerStats();
|
|
30
|
+
/** Averaged over the newer half, so a recovered connection is not held back. */
|
|
31
|
+
var avgRtt = React.useMemo(function () {
|
|
32
|
+
if (!stats.length) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
var recent = stats.slice(stats.length / 2, stats.length);
|
|
36
|
+
return recent.reduce(function (acc, stat) {
|
|
37
|
+
var _a;
|
|
38
|
+
return acc + ((_a = stat === null || stat === void 0 ? void 0 : stat.__rtt) !== null && _a !== void 0 ? _a : MISSING_RTT);
|
|
39
|
+
}, 0) / recent.length;
|
|
40
|
+
}, [stats]);
|
|
41
|
+
var status = React.useMemo(function () {
|
|
42
|
+
if (avgRtt === null) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
if (avgRtt < RTT_THRESHOLD_GOOD) {
|
|
46
|
+
return RunboxNetworkStatus.Good;
|
|
47
|
+
}
|
|
48
|
+
if (avgRtt < RTT_THRESHOLD_BAD) {
|
|
49
|
+
return RunboxNetworkStatus.NotGood;
|
|
50
|
+
}
|
|
51
|
+
return RunboxNetworkStatus.Bad;
|
|
52
|
+
}, [avgRtt]);
|
|
53
|
+
return {
|
|
54
|
+
avgRtt: avgRtt,
|
|
55
|
+
status: status
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export { RunboxNetworkStatus, useRunboxNetworkStatus };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type RunboxSessionEndWarning = 'quota' | 'quotaPerSession';
|
|
2
|
+
interface UseRunboxSessionEndWarningParams {
|
|
3
|
+
runboxId: string;
|
|
4
|
+
/**
|
|
5
|
+
* Suppress every warning.
|
|
6
|
+
* @default false
|
|
7
|
+
*/
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
interface UseRunboxSessionEndWarningReturn {
|
|
11
|
+
warning: RunboxSessionEndWarning | null;
|
|
12
|
+
/** Marks the current warning as seen, which is what closes it. */
|
|
13
|
+
dismiss: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare const QUOTA_ALMOST_END_MINUTES = 30;
|
|
16
|
+
export declare const QUOTA_PER_SESSION_ALMOST_END_MINUTES = 10;
|
|
17
|
+
export declare function useRunboxSessionEndWarning({ runboxId, disabled, }: UseRunboxSessionEndWarningParams): UseRunboxSessionEndWarningReturn;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray, defineProperty as _defineProperty } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { useSessionStorage } from 'react-use';
|
|
3
|
+
import { useEliceRunboxQuota } from '@elice/runbox-client';
|
|
4
|
+
|
|
5
|
+
//
|
|
6
|
+
//
|
|
7
|
+
//
|
|
8
|
+
var QUOTA_ALMOST_END_MINUTES = 30;
|
|
9
|
+
var QUOTA_PER_SESSION_ALMOST_END_MINUTES = 10;
|
|
10
|
+
var WAS_WARNED_STORAGE_KEY = 'MaterialRunboxSessionEndWarning.wasWarned';
|
|
11
|
+
//
|
|
12
|
+
//
|
|
13
|
+
//
|
|
14
|
+
/** Remaining minutes while the almost-end warning is due, `null` when it is not. */
|
|
15
|
+
function getAlmostEndRemaining(quotaInfo, thresholdMinutes) {
|
|
16
|
+
var seen = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
17
|
+
if (seen || quotaInfo.isUnlimited || quotaInfo.remainingQuota > thresholdMinutes) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
return quotaInfo.remainingQuota;
|
|
21
|
+
}
|
|
22
|
+
/** The due warning that runs out soonest, `null` when neither is due. */
|
|
23
|
+
function getSessionEndWarning(quotaInfo, quotaPerSessionInfo, seen) {
|
|
24
|
+
var quota = getAlmostEndRemaining(quotaInfo, QUOTA_ALMOST_END_MINUTES, seen.quota);
|
|
25
|
+
var quotaPerSession = getAlmostEndRemaining(quotaPerSessionInfo, QUOTA_PER_SESSION_ALMOST_END_MINUTES, seen.quotaPerSession);
|
|
26
|
+
if (quota === null) {
|
|
27
|
+
return quotaPerSession === null ? null : 'quotaPerSession';
|
|
28
|
+
}
|
|
29
|
+
if (quotaPerSession === null) {
|
|
30
|
+
return 'quota';
|
|
31
|
+
}
|
|
32
|
+
return quota < quotaPerSession ? 'quota' : 'quotaPerSession';
|
|
33
|
+
}
|
|
34
|
+
//
|
|
35
|
+
//
|
|
36
|
+
//
|
|
37
|
+
function useRunboxSessionEndWarning(_ref) {
|
|
38
|
+
var runboxId = _ref.runboxId,
|
|
39
|
+
_ref$disabled = _ref.disabled,
|
|
40
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled;
|
|
41
|
+
var _a;
|
|
42
|
+
var _useEliceRunboxQuota = useEliceRunboxQuota(),
|
|
43
|
+
quotaInfo = _useEliceRunboxQuota.quotaInfo,
|
|
44
|
+
quotaPerSessionInfo = _useEliceRunboxQuota.quotaPerSessionInfo;
|
|
45
|
+
var _useSessionStorage = useSessionStorage(WAS_WARNED_STORAGE_KEY, {}),
|
|
46
|
+
_useSessionStorage2 = _slicedToArray(_useSessionStorage, 2),
|
|
47
|
+
wasWarned = _useSessionStorage2[0],
|
|
48
|
+
setWasWarned = _useSessionStorage2[1];
|
|
49
|
+
var seen = (_a = wasWarned === null || wasWarned === void 0 ? void 0 : wasWarned[runboxId]) !== null && _a !== void 0 ? _a : {};
|
|
50
|
+
var warning = disabled ? null : getSessionEndWarning(quotaInfo, quotaPerSessionInfo, seen);
|
|
51
|
+
var dismiss = function dismiss() {
|
|
52
|
+
if (warning === null) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
setWasWarned(Object.assign(Object.assign({}, wasWarned), _defineProperty({}, runboxId, Object.assign(Object.assign({}, seen), _defineProperty({}, warning, true)))));
|
|
56
|
+
};
|
|
57
|
+
return {
|
|
58
|
+
warning: warning,
|
|
59
|
+
dismiss: dismiss
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { QUOTA_ALMOST_END_MINUTES, QUOTA_PER_SESSION_ALMOST_END_MINUTES, useRunboxSessionEndWarning };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var messageEn = {"common.cancel":"Cancel","material.tutoring.runbox_confirm_dialog.action.confirm":"Proceed","material.tutoring.runbox_confirm_dialog.content":"The Runbox environment is currently running for the {_termCourseRoleStudent}. If you connect, the remaining total runtime usage time will decrease. Do you want to proceed?","material.tutoring.runbox_confirm_dialog.title":"Running Runbox","runbox.action.autoShutdown.title":"Always on","runbox.action.autoShutdown.tooltip":"This feature is not available for this session, as it's set to automatically shut down upon departure.","runbox.action.grade.dialog.description.error":"There is a problem with the code or submission file.\nPlease check the error message below and verify that the submission format meets the requirements. Then, submit again.","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.isolated.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.dialog.shared.description":"Do you want to reset the Runbox code? If you reset, the code written by team members will also be overwritten with the default code. The Runbox session will be refreshed after resetting.","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.isolated.description":"Are you sure you want to restart the runbox?","runbox.action.restart.dialog.shared.description":"The Runbox will also restart on your teammates' screens. Do 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.action.disconnect.dialog.title":"Disconnect Runbox","runbox.action.disconnect.dialog.description":"You are currently in a practice session. Do you want to disconnect Runbox?\nIf you have any unsaved work, please save it first.","runbox.action.disconnect.dialog.disconnect":"Disconnect","runbox.action.disconnect.title":"Disconnect","runbox.action.menu.title":"More","runbox.alert.title":"You are connected to the student's currently running environment, and the total runtime usage time is being deducted. Please note that even if the student exits Runbox, 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.common.connect":"Connect","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.timer.title":"Remaining Time","runbox.timer.unlimited":"Unlimited","runbox.timer.tooltip.title":"View time information","runbox.timer.popover.title":"Runbox Usage Time Guide","runbox.timer.popover.description":"This is the total Runbox usage time for {user}.\nTime continues to decrease while connected. Disconnect or leave the course to stop the deduction.","runbox.timer.popover.quota.title":"Total Available Time","runbox.timer.popover.quota_per_session.title":"Time Allocated for This Session","runbox.timer.popover.quota_per_session.description":"Each session can last up to {time}. Disconnecting and reconnecting will reset the session time.","runbox.timer.popover.quota.disconnect":"Disconnect","runbox.timer.popover.do_not_open":"Don't show this popup when starting a session","runbox.timer.almost_end.snackbar.quota_per_session":"{time} remaining for the time allocated for this session.","runbox.timer.almost_end.snackbar.quota":"{time} remaining for the total available Runbox usage time.","runbox.timer.almost_end.snackbar.detail":"Learn more","runbox.disk.almost_full.snackbar.almost_full":"The remaining disk space is {capacity}. If the space runs out, the session will end, so please save your ongoing work now.","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":"To continue your Runbox practice session, please click the Connect button.","runbox.runtime.overlay.terminated.description.os_disk_is_full":"The disk space has been completely used up, and the practice session has ended.","runbox.runtime.overlay.terminated.description.quota_exceeded":"The runtime has been terminated because the usage time has expired.","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"The runtime has been terminated because the per-session usage time has expired.\nTo reconnect to Runbox, please click the button below.","runbox.runtime.overlay.terminated.title":"Runtime disconnected","runbox.runtime.overlay.terminated.connect":"Connect","runbox.runtime.overlay.terminated.unlimited":"Unlimited","runbox.runtime.overlay.terminated.contact":"Contact Customer Service","runbox.runtime.overlay.terminated.quota.total":"Total Available Time","runbox.runtime.overlay.terminated.quota.used":"Total Time Used","runbox.runtime.overlay.terminated.disk.total":"Total Disk","runbox.runtime.overlay.terminated.disk.used":"Total Disk Used","runbox.runtime.overlay.conflicted.description":"Connecting to this Runbox exercise will terminate the Runbox in another course material.\nPlease save any unsaved work first.","runbox.runtime.overlay.conflicted.title":"A Runbox is currently connected to another course material","runbox.runtime.dialog.change_material.title":"Notice of Runbox Connection Change","runbox.runtime.dialog.change_material.description":"Connecting to this Runbox exercise will terminate the Runbox in another course material. Do you want to continue?"};
|
|
1
|
+
var messageEn = {"common.cancel":"Cancel","material.tutoring.runbox_confirm_dialog.action.confirm":"Proceed","material.tutoring.runbox_confirm_dialog.content":"The Runbox environment is currently running for the {_termCourseRoleStudent}. If you connect, the remaining total runtime usage time will decrease. Do you want to proceed?","material.tutoring.runbox_confirm_dialog.title":"Running Runbox","runbox.action.autoShutdown.title":"Always on","runbox.action.autoShutdown.tooltip":"This feature is not available for this session, as it's set to automatically shut down upon departure.","runbox.action.grade.dialog.description.error":"There is a problem with the code or submission file.\nPlease check the error message below and verify that the submission format meets the requirements. Then, submit again.","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.isolated.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.dialog.shared.description":"Do you want to reset the Runbox code? If you reset, the code written by team members will also be overwritten with the default code. The Runbox session will be refreshed after resetting.","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.isolated.description":"Are you sure you want to restart the runbox?","runbox.action.restart.dialog.shared.description":"The Runbox will also restart on your teammates' screens. Do 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.action.disconnect.dialog.title":"Disconnect Runbox","runbox.action.disconnect.dialog.description":"You are currently in a practice session. Do you want to disconnect Runbox?\nIf you have any unsaved work, please save it first.","runbox.action.disconnect.dialog.disconnect":"Disconnect","runbox.action.disconnect.title":"Disconnect","runbox.action.menu.title":"More","runbox.alert.title":"You are connected to the student's currently running environment, and the total runtime usage time is being deducted. Please note that even if the student exits Runbox, 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.common.connect":"Connect","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.timer.title":"Remaining Time","runbox.timer.unlimited":"Unlimited","runbox.timer.tooltip.title":"View time information","runbox.timer.popover.title":"Runbox Usage Time Guide","runbox.timer.popover.description":"This is the total Runbox usage time for {user}.\nTime continues to decrease while connected. Disconnect or leave the course to stop the deduction.","runbox.timer.popover.quota.title":"Total Available Time","runbox.timer.popover.quota_per_session.title":"Time Available for This Connection","runbox.timer.popover.quota_per_session.description":"Each connection can last up to {time}. If total available time remains, you can reconnect and continue practicing.","runbox.timer.popover.quota.disconnect":"Disconnect","runbox.timer.popover.do_not_open":"Don't show this popup when starting a session","runbox.timer.almost_end.dialog.quota.title":"{time} of total available time remaining.","runbox.timer.almost_end.dialog.quota.description":"When the total available time runs out, the practice session ends and you cannot reconnect.\nPlease save your work before it ends. Unsaved work may be lost.","runbox.timer.almost_end.dialog.quota_per_session.title":"{time} remaining in this connection.","runbox.timer.almost_end.dialog.quota_per_session.description":"When the connection time runs out, you will be disconnected. If total available time remains, you can reconnect and continue practicing.\nPlease save your work before it ends. Saved files are kept when you reconnect, but unsaved work may be lost.","runbox.timer.almost_end.dialog.confirm":"Continue","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.terminated.description.default":"To continue your Runbox practice session, please click the Connect button.","runbox.runtime.overlay.terminated.description.os_disk_is_full":"Storage has been completely used up.\nReset the practice environment and start again.","runbox.runtime.overlay.terminated.description.quota_exceeded":"The runtime has been terminated because the usage time has expired.","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"The runtime has been terminated because the per-session usage time has expired.\nTo reconnect to Runbox, please click the button below.","runbox.runtime.overlay.terminated.title":"Runtime disconnected","runbox.runtime.overlay.terminated.connect":"Connect","runbox.runtime.overlay.terminated.unlimited":"Unlimited","runbox.runtime.overlay.terminated.contact":"Contact Customer Service","runbox.runtime.overlay.terminated.quota.total":"Total Available Time","runbox.runtime.overlay.terminated.quota.used":"Total Time Used","runbox.runtime.overlay.terminated.disk.total":"Total Disk","runbox.runtime.overlay.terminated.disk.used":"Total Disk Used","runbox.runtime.overlay.conflicted.description":"Connecting to this Runbox exercise will terminate the Runbox in another course material.\nPlease save any unsaved work first.","runbox.runtime.overlay.conflicted.title":"A Runbox is currently connected to another course material","runbox.runtime.dialog.change_material.title":"Notice of Runbox Connection Change","runbox.runtime.dialog.change_material.description":"Connecting to this Runbox exercise will terminate the Runbox in another course material. Do you want to continue?","runbox.status.button.title":"Connection & resources","runbox.status.network":"Network status","runbox.status.resource.preparing":"Preparing","runbox.status.runtime.connected":"Runtime connected","runbox.status.runtime.connecting":"Runtime connecting","runbox.status.runtime.disconnected":"Runtime disconnected","runbox.disk.usage.dialog.title":"Storage almost full","runbox.disk.usage.dialog.description.warning":"You have used more than 80% of your storage. ({used} / {total})\nIf storage runs out, your practice session may be interrupted. Please clean up files you no longer need.","runbox.disk.usage.dialog.description.error":"You have used more than 90% of your storage. ({used} / {total})\nDelete files you no longer need, or reset the practice environment to free up space.","runbox.disk.usage.dialog.actions.close":"Close","runbox.disk.usage.alert.warning":"You have used more than 80% of your storage. ({used} / {total}) If storage runs out, your practice session may be interrupted. Please clean up files you no longer need.","runbox.disk.usage.alert.error":"You have used more than 90% of your storage. ({used} / {total}) If storage runs out, your practice session may be interrupted. Clean up files you no longer need, or reset the practice environment.","runbox.disk.env_reset.title":"Reset practice environment","runbox.disk.env_reset.dialog.title":"Reset practice environment","runbox.disk.env_reset.dialog.description":"To free up storage, the runbox is reset to the state it was in when first started. Files you created or saved during practice are all deleted and cannot be recovered.","runbox.disk.env_reset.dialog.acknowledge":"I understand that saved files cannot be recovered after the reset.","runbox.disk.env_reset.dialog.actions.cancel":"Cancel","runbox.disk.env_reset.dialog.actions.confirm":"Delete","runbox.disk.env_reset.noti.success":"The practice environment has been reset. Restarting it now.","runbox.disk.env_reset.noti.error":"An error occurred while resetting the practice environment.","runbox.disk.env_reset.noti.no_runtime":"There is no practice environment to reset. Start the runbox and try again.","runbox.runtime.overlay.terminated.title.os_disk_is_full":"Storage is full and\nthe practice session cannot proceed.","runbox.runtime.loading.title":"Preparing your practice computer","runbox.runtime.loading.description":"Your practice runs in a cloud environment, not on your own computer. We are setting up the environment for you. Please wait a moment.","runbox.runtime.loading.illustration_alt":"Loading animation of a runbox being assembled","runbox.runtime.loading.step.prepare":"Preparing practice computer","runbox.runtime.loading.step.prepare_progress":"Preparing your practice computer ({current} / {total})","runbox.runtime.loading.step.connect":"Connecting to practice computer","runbox.runtime.loading.step.connect_progress":"Connecting to your practice computer ({current} / {total})","runbox.runtime.loading.step.material":"Preparing practice materials","runbox.runtime.loading.step.material_progress":"Preparing practice materials ({current} / {total})","runbox.runtime.loading.step.status.completed":"Done","runbox.runtime.loading.step.status.active":"In progress","runbox.runtime.loading.step.status.pending":"Waiting","runbox.runtime.loading.note.environment.title":"This runbox is separate from your computer","runbox.runtime.loading.note.environment.description":"You are connecting to a practice environment provided by Elice. Code and programs run inside the runbox.","runbox.runtime.loading.note.save.title":"Your files are saved in the runbox","runbox.runtime.loading.note.save.description":"Saved files persist across sessions. They are stored separately from your computer, so be sure to save your work.","runbox.runtime.loading.tip.common.conflict.title":"Opening another material stops this runbox","runbox.runtime.loading.tip.common.conflict.description":"Save anything you are working on before you leave.","runbox.runtime.loading.tip.common.disk.title":"Storage has a limit too","runbox.runtime.loading.tip.common.disk.description":"Practice can stop once large files pile up.","runbox.runtime.loading.tip.common.quota.title":"Practice time is limited","runbox.runtime.loading.tip.common.quota.description":"The runbox disconnects once the time is up.","runbox.runtime.loading.tip.jupyter.cell_order.title":"Run cells from top to bottom","runbox.runtime.loading.tip.jupyter.cell_order.description":"Skipping one leaves its variables undefined, so the next cell fails.","runbox.runtime.loading.tip.jupyter.run_cell.title":"Run a cell with Shift + Enter","runbox.runtime.loading.tip.jupyter.run_cell.description":"Use Ctrl + Enter to run it and stay where you are.","runbox.runtime.loading.tip.jupyter.restart_kernel.title":"Restart the kernel when results stop making sense","runbox.runtime.loading.tip.jupyter.restart_kernel.description":"Values from earlier runs are usually what is confusing you.","runbox.runtime.loading.tip.jupyter.cell_number.title":"The number beside a cell is its run order","runbox.runtime.loading.tip.jupyter.cell_number.description":"It tells you the order the cells actually ran in.","runbox.runtime.loading.tip.vscode.save_before_run.title":"Save the file before you run it","runbox.runtime.loading.tip.vscode.save_before_run.description":"Unsaved edits do not reach what you run.","runbox.runtime.loading.tip.vscode.terminal.title":"You can open the terminal from the top menu","runbox.runtime.loading.tip.vscode.terminal.description":"It usually appears at the bottom of the screen.","runbox.runtime.loading.tip.vscode.browser_shortcut.title":"This is VS Code running in your browser","runbox.runtime.loading.tip.vscode.browser_shortcut.description":"Some shortcuts may clash with your browser's own.","runbox.runtime.loading.tip.vscode.explorer.title":"Your practice files are in the left explorer","runbox.runtime.loading.tip.vscode.explorer.description":"Expand a folder to open a file.","runbox.runtime.loading.tip.gui.desktop.title":"There is another computer inside the screen","runbox.runtime.loading.tip.gui.desktop.description":"Windows open and close just like they do on your own machine.","runbox.runtime.loading.tip.gui.clipboard.title":"Copy and paste may work differently","runbox.runtime.loading.tip.gui.clipboard.description":"What you copied on your own machine may not paste straight in.","runbox.runtime.loading.tip.gui.move_window.title":"Drag the title bar if a window goes off screen","runbox.runtime.loading.tip.gui.move_window.description":"Reloading the page can lose work in progress.","runbox.runtime.loading.tip.gui.slow_start.title":"Programs can take a while to open","runbox.runtime.loading.tip.gui.slow_start.description":"Give it a moment even if the screen looks empty.","runbox.runtime.loading.tip.orange.widget.title":"You analyse with widgets, not code","runbox.runtime.loading.tip.orange.widget.description":"Drag a widget from the left list onto the canvas.","runbox.runtime.loading.tip.orange.connect.title":"Connect widgets with a line to pass data along","runbox.runtime.loading.tip.orange.connect.description":"One widget's output becomes the next one's input.","runbox.runtime.loading.tip.orange.load_data.title":"Start with the widget that loads data","runbox.runtime.loading.tip.orange.load_data.description":"Nothing downstream runs until the data is open.","runbox.runtime.loading.tip.orange.open_settings.title":"Double-click a widget to open its settings","runbox.runtime.loading.tip.orange.open_settings.description":"Results open the same way.","runbox.runtime.loading.tip.app.web_service.title":"This is a web service running inside the runbox","runbox.runtime.loading.tip.app.web_service.description":"You configure and run it right in the screen.","runbox.runtime.loading.tip.app.slow_start.title":"The first screen can take a while to open","runbox.runtime.loading.tip.app.slow_start.description":"Give the service a moment to get ready.","runbox.runtime.loading.tip.app.persisted.title":"What you build is saved in the runbox","runbox.runtime.loading.tip.app.persisted.description":"Reconnect later and pick up where you left off."};
|
|
2
2
|
|
|
3
3
|
export { messageEn as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var ja = {"common.cancel":"キャンセル","material.tutoring.runbox_confirm_dialog.action.confirm":"進行","material.tutoring.runbox_confirm_dialog.content":"現在、{_termCourseRoleStudent} が実行中のランボックス環境です。接続すると、残りのランタイム使用時間が減少します。続行しますか?","material.tutoring.runbox_confirm_dialog.title":"実行中のランボックス","runbox.action.autoShutdown.title":"常にオン","runbox.action.autoShutdown.tooltip":"現在のセッションは離脱時に自動終了するため、この機能は使用できません。","runbox.action.grade.dialog.description.error":"コードまたは提出ファイルに問題があります。\n以下のエラーメッセージを確認し、提出形式が要件を満たしていることを確認してください。その後、再度提出してください。","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.isolated.description":"ランボックスのコードをリセットしてもよろしいですか? あなたのコードは {_termLibraryLecturePage} のデフォルトコードに上書きされます。\nリセット後、ランボックスのセッションがリフレッシュされます。","runbox.action.reset.dialog.shared.description":"Runboxのコードを初期化しますか?初期化すると、チームメンバーの画面でもコードがデフォルトに上書きされます。初期化後、Runboxセッションがリフレッシュされます。","runbox.action.reset.noti.error":"ランボックスコードの初期化中にエラーが発生しました。","runbox.action.reset.title":"リセットコード","runbox.action.restart.dialog.actions.confirm":"再起動","runbox.action.restart.dialog.isolated.description":"再起動してもよろしいですか?","runbox.action.restart.dialog.shared.description":"チームメンバーの画面でもRunboxが再起動されます。Runboxを再起動しますか?","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.action.disconnect.dialog.title":"Runboxの接続を解除","runbox.action.disconnect.dialog.description":"現在、実習を進行中です。Runboxの接続を解除しますか?\n保存していない内容がある場合は、先に保存してください。","runbox.action.disconnect.dialog.disconnect":"接続解除","runbox.action.disconnect.title":"接続解除","runbox.action.menu.title":"その他","runbox.alert.title":"現在、学生が実行中の環境に接続しているため、ランタイムの全使用時間が減少しています。学生がランボックスを終了しても、チュータリングを続ける限り、時間が引き続き減少するのでご注意ください。","runbox.common.close":"閉じる","runbox.common.retry":"リトライ","runbox.common.score":"{score}点","runbox.common.support":"サポート","runbox.common.connect":"接続する","runbox.context.command.ping.error":"タスクの処理中にエラーが発生しました。","runbox.header.submitInfo":"{isIndividual, select, true {個人} other {チーム}}の提出回数 | {remainCount}/{totalCount} 回残っています {isDailyLimitEnabled, select, true {今日} other {}}","runbox.timer.title":"残り時間","runbox.timer.unlimited":"無制限","runbox.timer.tooltip.title":"時間の案内を見る","runbox.timer.popover.title":"ランボックス使用時間の案内","runbox.timer.popover.description":"{user}のランボックス総使用時間です。\n接続中は時間が減り続けます。接続を解除するか授業を退出すると減少が止まります。","runbox.timer.popover.quota.title":"総使用可能時間","runbox.timer.popover.quota_per_session.title":"今回の実習に付与された時間","runbox.timer.popover.quota_per_session.description":"実習は最大{time}まで進行できます。接続を解除して再接続すると時間がリセットされます。","runbox.timer.popover.quota.disconnect":"接続を解除","runbox.timer.popover.do_not_open":"ランボックス実習時にこのポップアップを表示しない","runbox.timer.almost_end.snackbar.quota_per_session":"今回の実習に付与された時間が残り{time}です。","runbox.timer.almost_end.snackbar.quota":"Runboxの総利用可能時間は残り{time}です。","runbox.timer.almost_end.snackbar.detail":"詳細を見る","runbox.disk.almost_full.snackbar.almost_full":"ディスクの残り容量は {capacity} です。容量がすべてなくなると実習は終了しますので、進行中の作業を今すぐ保存してください。","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":"Runboxの実習を続けるには、「接続」ボタンをクリックしてください。","runbox.runtime.overlay.terminated.description.os_disk_is_full":"ディスク容量をすべて使い切ったため、実習は終了しました。","runbox.runtime.overlay.terminated.description.quota_exceeded":"ランタイムの利用時間が終了したため、ランタイムは停止されました。","runbox.runtime.overlay.terminated.description.quota_per_session_exceeded":"Runboxセッションごとの利用時間が終了したため、ランタイムは停止されました。\nRunboxに再接続するには、下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.title":"接続解除","runbox.runtime.overlay.terminated.connect":"接続","runbox.runtime.overlay.terminated.unlimited":"無制限","runbox.runtime.overlay.terminated.contact":"カスタマーサービスにお問い合わせ","runbox.runtime.overlay.terminated.quota.total":"利用可能時間の合計","runbox.runtime.overlay.terminated.quota.used":"総利用時間","runbox.runtime.overlay.terminated.disk.total":"ディスク合計","runbox.runtime.overlay.terminated.disk.used":"使用済みディスク合計","runbox.runtime.overlay.conflicted.description":"このランボックス演習に接続すると、他の教材のランボックスは終了します。\n保存していない内容がある場合は、先に保存してください。","runbox.runtime.overlay.conflicted.title":"現在、他の教材にランボックスが接続されています","runbox.runtime.dialog.change_material.title":"ランボックス接続変更のお知らせ","runbox.runtime.dialog.change_material.description":"このランボックス演習に接続すると、他の教材のランボックスは終了します。続行しますか?"};
|
|
1
|
+
var ja = {"common.cancel":"キャンセル","material.tutoring.runbox_confirm_dialog.action.confirm":"進行","material.tutoring.runbox_confirm_dialog.content":"現在、{_termCourseRoleStudent} が実行中のランボックス環境です。接続すると、残りのランタイム使用時間が減少します。続行しますか?","material.tutoring.runbox_confirm_dialog.title":"実行中のランボックス","runbox.action.autoShutdown.title":"常にオン","runbox.action.autoShutdown.tooltip":"現在のセッションは離脱時に自動終了するため、この機能は使用できません。","runbox.action.grade.dialog.description.error":"コードまたは提出ファイルに問題があります。\n以下のエラーメッセージを確認し、提出形式が要件を満たしていることを確認してください。その後、再度提出してください。","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.isolated.description":"ランボックスのコードをリセットしてもよろしいですか? あなたのコードは {_termLibraryLecturePage} のデフォルトコードに上書きされます。\nリセット後、ランボックスのセッションがリフレッシュされます。","runbox.action.reset.dialog.shared.description":"Runboxのコードを初期化しますか?初期化すると、チームメンバーの画面でもコードがデフォルトに上書きされます。初期化後、Runboxセッションがリフレッシュされます。","runbox.action.reset.noti.error":"ランボックスコードの初期化中にエラーが発生しました。","runbox.action.reset.title":"リセットコード","runbox.action.restart.dialog.actions.confirm":"再起動","runbox.action.restart.dialog.isolated.description":"再起動してもよろしいですか?","runbox.action.restart.dialog.shared.description":"チームメンバーの画面でもRunboxが再起動されます。Runboxを再起動しますか?","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.action.disconnect.dialog.title":"Runboxの接続を解除","runbox.action.disconnect.dialog.description":"現在、実習を進行中です。Runboxの接続を解除しますか?\n保存していない内容がある場合は、先に保存してください。","runbox.action.disconnect.dialog.disconnect":"接続解除","runbox.action.disconnect.title":"接続解除","runbox.action.menu.title":"その他","runbox.alert.title":"現在、学生が実行中の環境に接続しているため、ランタイムの全使用時間が減少しています。学生がランボックスを終了しても、チュータリングを続ける限り、時間が引き続き減少するのでご注意ください。","runbox.common.close":"閉じる","runbox.common.retry":"リトライ","runbox.common.score":"{score}点","runbox.common.support":"サポート","runbox.common.connect":"接続する","runbox.context.command.ping.error":"タスクの処理中にエラーが発生しました。","runbox.header.submitInfo":"{isIndividual, select, true {個人} other {チーム}}の提出回数 | {remainCount}/{totalCount} 回残っています {isDailyLimitEnabled, select, true {今日} other {}}","runbox.timer.title":"残り時間","runbox.timer.unlimited":"無制限","runbox.timer.tooltip.title":"時間の案内を見る","runbox.timer.popover.title":"ランボックス使用時間の案内","runbox.timer.popover.description":"{user}のランボックス総使用時間です。\n接続中は時間が減り続けます。接続を解除するか授業を退出すると減少が止まります。","runbox.timer.popover.quota.title":"総使用可能時間","runbox.timer.popover.quota_per_session.title":"今回の接続で使用できる時間","runbox.timer.popover.quota_per_session.description":"一度接続すると最大{time}まで使用できます。総利用可能時間が残っていれば、再接続して実習を続けられます。","runbox.timer.popover.quota.disconnect":"接続を解除","runbox.timer.popover.do_not_open":"ランボックス実習時にこのポップアップを表示しない","runbox.timer.almost_end.dialog.quota.title":"総利用可能時間が残り{time}です。","runbox.timer.almost_end.dialog.quota.description":"総利用可能時間をすべて使い切ると実習が終了し、再接続できなくなります。\n作業中の内容は保存してから終了してください。保存していない内容は失われる可能性があります。","runbox.timer.almost_end.dialog.quota_per_session.title":"今回の接続時間が残り{time}です。","runbox.timer.almost_end.dialog.quota_per_session.description":"接続時間が終了すると接続が切断されます。総利用可能時間が残っていれば、再接続して実習を続けられます。\n作業中の内容は保存してから終了してください。保存したファイルは再接続後も維持されますが、保存していない内容は失われる可能性があります。","runbox.timer.almost_end.dialog.confirm":"続ける","runbox.runtime.message.lxp_plan_required":"現在、所属機関ではRunboxの学習資料を利用できません。\n詳細については機関の管理者にお問い合わせください。","runbox.runtime.message.runbox_unavailable":"Runboxは利用できません","runbox.runtime.message.startError":"ランボックスの起動中にエラーが発生しました。","runbox.runtime.overlay.terminated.description.default":"Runboxの実習を続けるには、「接続」ボタンをクリックしてください。","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":"Runboxセッションごとの利用時間が終了したため、ランタイムは停止されました。\nRunboxに再接続するには、下のボタンをクリックしてください。","runbox.runtime.overlay.terminated.title":"接続解除","runbox.runtime.overlay.terminated.connect":"接続","runbox.runtime.overlay.terminated.unlimited":"無制限","runbox.runtime.overlay.terminated.contact":"カスタマーサービスにお問い合わせ","runbox.runtime.overlay.terminated.quota.total":"利用可能時間の合計","runbox.runtime.overlay.terminated.quota.used":"総利用時間","runbox.runtime.overlay.terminated.disk.total":"ディスク合計","runbox.runtime.overlay.terminated.disk.used":"使用済みディスク合計","runbox.runtime.overlay.conflicted.description":"このランボックス演習に接続すると、他の教材のランボックスは終了します。\n保存していない内容がある場合は、先に保存してください。","runbox.runtime.overlay.conflicted.title":"現在、他の教材にランボックスが接続されています","runbox.runtime.dialog.change_material.title":"ランボックス接続変更のお知らせ","runbox.runtime.dialog.change_material.description":"このランボックス演習に接続すると、他の教材のランボックスは終了します。続行しますか?","runbox.status.button.title":"接続状態とリソース","runbox.status.network":"ネットワーク状態","runbox.status.resource.preparing":"準備中","runbox.status.runtime.connected":"ランタイム接続済み","runbox.status.runtime.connecting":"ランタイム接続中","runbox.status.runtime.disconnected":"ランタイム未接続","runbox.disk.usage.dialog.title":"ストレージ容量のお知らせ","runbox.disk.usage.dialog.description.warning":"ストレージの80%以上を使用しています。({used} / {total})\nストレージが不足すると実習が中断される場合があります。使用していないファイルを整理してください。","runbox.disk.usage.dialog.description.error":"ストレージの90%以上を使用しています。({used} / {total})\n使用していないファイルを削除するか、必要な場合は実習環境を初期化してストレージを確保してください。","runbox.disk.usage.dialog.actions.close":"閉じる","runbox.disk.usage.alert.warning":"ストレージの80%以上を使用しています。({used} / {total}) ストレージが不足すると実習が中断される場合があります。使用していないファイルを事前に整理してください。","runbox.disk.usage.alert.error":"ストレージの90%以上を使用しています。({used} / {total}) ストレージが不足すると実習が中断される場合があります。使用していないファイルを整理するか、実習環境を初期化してください。","runbox.disk.env_reset.title":"実習環境の初期化","runbox.disk.env_reset.dialog.title":"実習環境の初期化","runbox.disk.env_reset.dialog.description":"ストレージを確保するため、ランボックスを初回起動時の状態に初期化します。実習中に作成または保存したファイルはすべて削除され、復元できません。","runbox.disk.env_reset.dialog.acknowledge":"初期化後、保存したファイルを復元できないことを確認しました。","runbox.disk.env_reset.dialog.actions.cancel":"キャンセル","runbox.disk.env_reset.dialog.actions.confirm":"削除","runbox.disk.env_reset.noti.success":"実習環境を初期化しました。実習環境を再起動します。","runbox.disk.env_reset.noti.error":"実習環境の初期化中にエラーが発生しました。","runbox.disk.env_reset.noti.no_runtime":"初期化する実習環境がありません。ランボックスを開始してから、もう一度お試しください。","runbox.runtime.overlay.terminated.title.os_disk_is_full":"ストレージが満杯になり\n実習を進められません。","runbox.runtime.loading.title":"実習用コンピュータを準備しています","runbox.runtime.loading.description":"実習はご自身のコンピュータではなく、クラウド実習環境で行われます。現在、使用する環境を準備しています。しばらくお待ちください。","runbox.runtime.loading.illustration_alt":"ランボックスが組み立てられるローディングアニメーション","runbox.runtime.loading.step.prepare":"実習コンピュータの準備","runbox.runtime.loading.step.prepare_progress":"実習用コンピュータを準備中 ({current} / {total})","runbox.runtime.loading.step.connect":"実習用コンピュータへの接続","runbox.runtime.loading.step.connect_progress":"実習用コンピュータに接続中 ({current} / {total})","runbox.runtime.loading.step.material":"実習資料の準備","runbox.runtime.loading.step.material_progress":"実習資料を準備中 ({current} / {total})","runbox.runtime.loading.step.status.completed":"完了","runbox.runtime.loading.step.status.active":"進行中","runbox.runtime.loading.step.status.pending":"待機中","runbox.runtime.loading.note.environment.title":"このランボックスはご自身のコンピュータとは別の環境です","runbox.runtime.loading.note.environment.description":"エリスが提供する専用の実習環境に接続します。コードとプログラムはランボックス内で実行されます。","runbox.runtime.loading.note.save.title":"作業したファイルはランボックスに保存されます","runbox.runtime.loading.note.save.description":"保存したファイルは再接続後も維持されます。ご自身のコンピュータとは別に保存されるため、作業中の内容は必ず保存してください。","runbox.runtime.loading.tip.common.conflict.title":"Opening another material stops this runbox","runbox.runtime.loading.tip.common.conflict.description":"Save anything you are working on before you leave.","runbox.runtime.loading.tip.common.disk.title":"Storage has a limit too","runbox.runtime.loading.tip.common.disk.description":"Practice can stop once large files pile up.","runbox.runtime.loading.tip.common.quota.title":"Practice time is limited","runbox.runtime.loading.tip.common.quota.description":"The runbox disconnects once the time is up.","runbox.runtime.loading.tip.jupyter.cell_order.title":"Run cells from top to bottom","runbox.runtime.loading.tip.jupyter.cell_order.description":"Skipping one leaves its variables undefined, so the next cell fails.","runbox.runtime.loading.tip.jupyter.run_cell.title":"Run a cell with Shift + Enter","runbox.runtime.loading.tip.jupyter.run_cell.description":"Use Ctrl + Enter to run it and stay where you are.","runbox.runtime.loading.tip.jupyter.restart_kernel.title":"Restart the kernel when results stop making sense","runbox.runtime.loading.tip.jupyter.restart_kernel.description":"Values from earlier runs are usually what is confusing you.","runbox.runtime.loading.tip.jupyter.cell_number.title":"The number beside a cell is its run order","runbox.runtime.loading.tip.jupyter.cell_number.description":"It tells you the order the cells actually ran in.","runbox.runtime.loading.tip.vscode.save_before_run.title":"Save the file before you run it","runbox.runtime.loading.tip.vscode.save_before_run.description":"Unsaved edits do not reach what you run.","runbox.runtime.loading.tip.vscode.terminal.title":"You can open the terminal from the top menu","runbox.runtime.loading.tip.vscode.terminal.description":"It usually appears at the bottom of the screen.","runbox.runtime.loading.tip.vscode.browser_shortcut.title":"This is VS Code running in your browser","runbox.runtime.loading.tip.vscode.browser_shortcut.description":"Some shortcuts may clash with your browser's own.","runbox.runtime.loading.tip.vscode.explorer.title":"Your practice files are in the left explorer","runbox.runtime.loading.tip.vscode.explorer.description":"Expand a folder to open a file.","runbox.runtime.loading.tip.gui.desktop.title":"There is another computer inside the screen","runbox.runtime.loading.tip.gui.desktop.description":"Windows open and close just like they do on your own machine.","runbox.runtime.loading.tip.gui.clipboard.title":"Copy and paste may work differently","runbox.runtime.loading.tip.gui.clipboard.description":"What you copied on your own machine may not paste straight in.","runbox.runtime.loading.tip.gui.move_window.title":"Drag the title bar if a window goes off screen","runbox.runtime.loading.tip.gui.move_window.description":"Reloading the page can lose work in progress.","runbox.runtime.loading.tip.gui.slow_start.title":"Programs can take a while to open","runbox.runtime.loading.tip.gui.slow_start.description":"Give it a moment even if the screen looks empty.","runbox.runtime.loading.tip.orange.widget.title":"You analyse with widgets, not code","runbox.runtime.loading.tip.orange.widget.description":"Drag a widget from the left list onto the canvas.","runbox.runtime.loading.tip.orange.connect.title":"Connect widgets with a line to pass data along","runbox.runtime.loading.tip.orange.connect.description":"One widget's output becomes the next one's input.","runbox.runtime.loading.tip.orange.load_data.title":"Start with the widget that loads data","runbox.runtime.loading.tip.orange.load_data.description":"Nothing downstream runs until the data is open.","runbox.runtime.loading.tip.orange.open_settings.title":"Double-click a widget to open its settings","runbox.runtime.loading.tip.orange.open_settings.description":"Results open the same way.","runbox.runtime.loading.tip.app.web_service.title":"This is a web service running inside the runbox","runbox.runtime.loading.tip.app.web_service.description":"You configure and run it right in the screen.","runbox.runtime.loading.tip.app.slow_start.title":"The first screen can take a while to open","runbox.runtime.loading.tip.app.slow_start.description":"Give the service a moment to get ready.","runbox.runtime.loading.tip.app.persisted.title":"What you build is saved in the runbox","runbox.runtime.loading.tip.app.persisted.description":"Reconnect later and pick up where you left off."};
|
|
2
2
|
|
|
3
3
|
export { ja as default };
|