You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NewEduCoderBuild/199.async.js

801 lines
42 KiB

"use strict";
(self["webpackChunk"] = self["webpackChunk"] || []).push([[199],{
/***/ 10199:
/*!*********************************************************!*\
!*** ./src/components/QuestionEditor/Buttonloading.tsx ***!
\*********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony import */ var umi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! umi */ 87210);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 59301);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd */ 8591);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd */ 3113);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd */ 43418);
/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! js-base64 */ 24334);
/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(js_base64__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _utils_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/fetch */ 87101);
/* harmony import */ var _pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/pages/MyProblem/service */ 75211);
/* harmony import */ var _pages_MyProblem_TestCasePanel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/pages/MyProblem/TestCasePanel */ 24351);
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! moment */ 9498);
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_6__);
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
var __async = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
} catch (e) {
reject(e);
}
};
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
const ButtonLoading = ({ ButtonProps, ButtonText, form, answerKey, hackidentifier = "", items = {} }) => {
const [isloading, setisloading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
let [identifier, setidentifier] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)("");
const param = (0,umi__WEBPACK_IMPORTED_MODULE_0__.useParams)();
const [modalshow, setmodalshow] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({});
const isEdit = param.type === "edit";
const type = window.location.href.includes("problemset") ? 1 : 2;
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
if (isEdit || hackidentifier) {
setidentifier(hackidentifier || param.id);
}
}, [param]);
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
return () => {
sessionStorage.removeItem("projectFill");
};
}, []);
function onUpdateCode(re, id) {
return __async(this, null, function* () {
var _a;
let code = form.getFieldValue("hack_codes");
let stats = form.getFieldValue(answerKey);
if (!code.code) {
antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP.info("\u7A0B\u5E8F\u4EE3\u7801\u4E0D\u80FD\u4E3A\u7A7A\uFF01");
return;
}
if (!code.language) {
antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP.info("\u7F16\u7A0B\u8BED\u8A00\u4E0D\u80FD\u4E3A\u7A7A\uFF01");
return;
}
if (stats.length > 0 && ((_a = stats.filter((item) => !item.answer_text)) == null ? void 0 : _a.length) > 0) {
antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP.info("\u586B\u7A7A\u9879\u4E0D\u80FD\u4E3A\u7A7A\uFF01");
return;
}
let codes = code.code;
if (stats.length > 0) {
stats == null ? void 0 : stats.map((item) => {
if (item.multi_line) {
codes = codes.substring(0, codes.indexOf("@\u2581\u2581@")) + item.answer_text + codes.substring(codes.indexOf("@\u2581\u2581@") + 4);
} else {
codes = codes.substring(0, codes.indexOf("@\u2581@")) + item.answer_text + codes.substring(codes.indexOf("@\u2581@") + 3);
}
});
}
const response = yield (0,_pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_4__/* .updateCode */ .n4)(id, re ? re : { code: js_base64__WEBPACK_IMPORTED_MODULE_2__.Base64.encode(codes), language: code.language });
return response;
});
}
function onUpdateCodes(re, id) {
return __async(this, null, function* () {
var _a;
let stats = items.userAnswer;
let codes = js_base64__WEBPACK_IMPORTED_MODULE_2__.Base64.decode(items.code);
if (stats.length > 0 && ((_a = stats.filter((item) => !item.value)) == null ? void 0 : _a.length) > 0) {
antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP.info("\u586B\u7A7A\u9879\u4E0D\u80FD\u4E3A\u7A7A\uFF01");
return;
}
if (stats.length > 0) {
stats == null ? void 0 : stats.map((item) => {
if (item.multi_line) {
codes = codes.substring(0, codes.indexOf("@\u2581\u2581@")) + item.value + codes.substring(codes.indexOf("@\u2581\u2581@") + 4);
} else {
codes = codes.substring(0, codes.indexOf("@\u2581@")) + item.value + codes.substring(codes.indexOf("@\u2581@") + 3);
}
});
}
const response = yield (0,_pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_4__/* .updateCode */ .n4)(id, re ? re : { code: js_base64__WEBPACK_IMPORTED_MODULE_2__.Base64.encode(codes), language: items.language });
return response;
});
}
function getTimeStamp() {
return (/* @__PURE__ */ new Date()).getTime();
}
return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .ZP, __spreadProps(__spreadValues({ loading: isloading }, ButtonProps), { onClick: () => __async(void 0, null, function* () {
var _a, _b, _c, _d;
if (ButtonText === "\u8FD0\u884C\u8C03\u8BD5") {
setisloading(true);
if (isloading) {
return;
}
let res12 = yield (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)(`/api/problems/${identifier}/start.json`, {
method: "get"
});
const response2 = yield onUpdateCodes(null, res12 == null ? void 0 : res12.identifier);
if ((response2 == null ? void 0 : response2.status) === 0) {
const startTime = getTimeStamp();
yield (0,_pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_4__/* .sumbitCode */ .bM)(res12 == null ? void 0 : res12.identifier, {});
function executeCode() {
return __async(this, null, function* () {
const { status, message: message2, data } = yield (0,_pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_4__/* .getOperationResult */ .rX)(res12 == null ? void 0 : res12.identifier, "submit");
const executeTime = getTimeStamp();
const isTimeOut = executeTime - startTime > 6 * 1e3;
if (status !== 0 && !isTimeOut) {
setTimeout(executeCode, 1e3);
}
if (isTimeOut) {
antd__WEBPACK_IMPORTED_MODULE_9__["default"].error({
centered: true,
okText: "\u77E5\u9053\u5566",
title: "\u8C03\u8BD5\u4EE3\u7801\u8D85\u65F6"
});
setisloading(false);
return;
}
if (status === 0) {
setisloading(false);
setmodalshow(data);
if (data.status === 2) {
setisloading(false);
antd__WEBPACK_IMPORTED_MODULE_9__["default"].error({
centered: true,
okText: "\u77E5\u9053\u5566",
title: "\u8C03\u8BD5\u4EE3\u7801\u8D85\u65F6"
});
}
}
});
}
executeCode();
} else {
setisloading(false);
}
return;
}
let aa = true;
yield form.validateFields().then(() => {
aa = false;
}, (errInfo) => {
var _a2, _b2, _c2;
if (errInfo.errorFields[0].name.includes("standard_answers")) {
antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP.error("\u586B\u7A7A\u9879\u7B54\u6848\u4E0D\u80FD\u4E3A\u7A7A");
} else {
antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP.error(errInfo.errorFields[0].errors[0]);
}
if (((_a2 = errInfo.errorFields) == null ? void 0 : _a2.length) === 0) {
aa = false;
}
form.scrollToField((_c2 = (_b2 = errInfo == null ? void 0 : errInfo.errorFields) == null ? void 0 : _b2[0]) == null ? void 0 : _c2.name, { behavior: "smooth", block: "center" });
aa = true;
});
if (aa) {
return;
}
setisloading(true);
if (isloading) {
return;
}
let res = "";
let formValues = form.getFieldsValue();
if (!identifier) {
res = yield (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)(`/api/problems.json`, {
method: "post",
body: __spreadProps(__spreadValues({}, formValues), {
hack: __spreadProps(__spreadValues({}, formValues == null ? void 0 : formValues.hack), {
sub_discipline_id: (_b = (_a = formValues == null ? void 0 : formValues.hack) == null ? void 0 : _a.sub_discipline_id) == null ? void 0 : _b[1],
difficult: formValues.difficulty,
item_banks_group_id: formValues.item_banks_group_id
}),
hack_codes: __spreadProps(__spreadValues({}, formValues.hack_codes), {
code: js_base64__WEBPACK_IMPORTED_MODULE_2__.Base64.encode(formValues.hack_codes.code)
}),
hack_sets: [__spreadValues({}, formValues.hack_sets)],
is_blank: true
})
});
identifier = res == null ? void 0 : res.identifier;
sessionStorage.projectFill = identifier;
setidentifier(identifier);
} else {
res = yield (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)(`/api/problems/${identifier}.json`, {
method: "put",
body: __spreadProps(__spreadValues({}, formValues), {
hack: __spreadProps(__spreadValues({}, formValues == null ? void 0 : formValues.hack), {
sub_discipline_id: (_d = (_c = formValues == null ? void 0 : formValues.hack) == null ? void 0 : _c.sub_discipline_id) == null ? void 0 : _d[1],
difficult: formValues.difficulty,
item_banks_group_id: formValues.item_banks_group_id
}),
hack_codes: __spreadProps(__spreadValues({}, formValues.hack_codes), {
code: js_base64__WEBPACK_IMPORTED_MODULE_2__.Base64.encode(formValues.hack_codes.code)
}),
update_hack_sets: [__spreadValues({}, formValues.hack_sets)],
is_blank: true
})
});
}
let res1 = yield (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)(`/api/problems/${identifier}/start.json`, {
method: "get"
});
const response = yield onUpdateCode(null, res1 == null ? void 0 : res1.identifier);
if ((response == null ? void 0 : response.status) === 0) {
const startTime = getTimeStamp();
yield (0,_pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_4__/* .sumbitCode */ .bM)(res1 == null ? void 0 : res1.identifier, {});
function executeCode() {
return __async(this, null, function* () {
const { status, message: message2, data } = yield (0,_pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_4__/* .getOperationResult */ .rX)(res1 == null ? void 0 : res1.identifier, "submit");
const executeTime = getTimeStamp();
const isTimeOut = executeTime - startTime > (formValues.hack.time_limit + 3) * 1e3;
if (status !== 0 && !isTimeOut) {
setTimeout(executeCode, 1e3);
}
if (isTimeOut) {
antd__WEBPACK_IMPORTED_MODULE_9__["default"].error({
centered: true,
okText: "\u77E5\u9053\u5566",
title: "\u8C03\u8BD5\u4EE3\u7801\u8D85\u65F6"
});
setisloading(false);
return;
}
if (status === 0) {
setisloading(false);
setmodalshow(data);
if (data.status === 2) {
setisloading(false);
antd__WEBPACK_IMPORTED_MODULE_9__["default"].error({
centered: true,
okText: "\u77E5\u9053\u5566",
title: "\u8C03\u8BD5\u4EE3\u7801\u8D85\u65F6"
});
}
}
});
}
executeCode();
} else {
setisloading(false);
}
}) }), ButtonText), (modalshow == null ? void 0 : modalshow.id) && modalshow.status !== 2 && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(
antd__WEBPACK_IMPORTED_MODULE_9__["default"],
{
open: (modalshow == null ? void 0 : modalshow.id) && modalshow.status !== 2,
title: "\u8FD0\u884C\u7ED3\u679C",
width: 1100,
footer: false,
onOk: () => {
setmodalshow({});
},
onCancel: () => {
setmodalshow({});
}
},
/* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", { style: { maxHeight: 600, overflow: "auto", marginBottom: 15 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", { style: { marginBottom: 20, display: "flex", justifyContent: "space-between", fontSize: 14 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("span", { style: { color: "#666666" } }, "\u72B6\u6001"), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("span", { style: { marginLeft: 12, color: modalshow.status !== 0 && "#E30000" } }, _pages_MyProblem_TestCasePanel__WEBPACK_IMPORTED_MODULE_5__/* .ExecuteDict */ .Im[modalshow.status])), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("span", { style: { color: "#666666" } }, "\u63D0\u4EA4\u65F6\u95F4"), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("span", { style: { marginLeft: 12 } }, moment__WEBPACK_IMPORTED_MODULE_6___default()(modalshow.created_at).format("YYYY-MM-DD HH:mm:ss"))), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("span", { style: { color: "#666666" } }, "\u8BED\u8A00"), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("span", { style: { marginLeft: 12 } }, modalshow.language)), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("span", { style: { color: "#666666" } }, "\u6267\u884C\u7528\u65F6"), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement("span", { style: { marginLeft: 12 } }, modalshow.execute_time, "ms"))), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_1__.createElement(
_pages_MyProblem_TestCasePanel__WEBPACK_IMPORTED_MODULE_5__/* .DetailCommitOut */ .Y4,
__spreadValues({}, modalshow)
))
));
};
/* harmony default export */ __webpack_exports__.Z = (ButtonLoading);
/***/ }),
/***/ 14147:
/*!******************************************************!*\
!*** ./src/components/Spinner/index.tsx + 1 modules ***!
\******************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ Spinner; }
});
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 14 modules
var _umi_production_exports = __webpack_require__(87210);
;// CONCATENATED MODULE: ./src/components/Spinner/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var Spinnermodules = ({"ldsRing":"ldsRing___mpBZC","idsRingWrapper":"idsRingWrapper___Of9_n","ldsring":"ldsring___o0w2t"});
;// CONCATENATED MODULE: ./src/components/Spinner/index.tsx
/* harmony default export */ var Spinner = (({ message, className, children, style = {} }) => {
return /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: `${Spinnermodules.idsRingWrapper} ${className}` }, /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: Spinnermodules.ldsRing }, /* @__PURE__ */ _react_17_0_2_react.createElement("div", null), /* @__PURE__ */ _react_17_0_2_react.createElement("div", null), /* @__PURE__ */ _react_17_0_2_react.createElement("div", null), /* @__PURE__ */ _react_17_0_2_react.createElement("div", null)), message ? /* @__PURE__ */ _react_17_0_2_react.createElement("p", { style }, message) : null, /* @__PURE__ */ _react_17_0_2_react.createElement(_umi_production_exports.Outlet, null));
});
/***/ }),
/***/ 24351:
/*!*****************************************************************!*\
!*** ./src/pages/MyProblem/TestCasePanel/index.tsx + 1 modules ***!
\*****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Y4: function() { return /* binding */ DetailCommitOut; },
Im: function() { return /* binding */ ExecuteDict; },
ZP: function() { return /* binding */ TestCasePanel; }
});
// UNUSED EXPORTS: getCommitOut
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 5 modules
var input = __webpack_require__(1056);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
var es_button = __webpack_require__(3113);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/DownOutlined.js + 1 modules
var DownOutlined = __webpack_require__(42884);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/UpOutlined.js + 1 modules
var UpOutlined = __webpack_require__(20114);
// EXTERNAL MODULE: ./src/pages/MyProblem/interface.ts
var MyProblem_interface = __webpack_require__(71984);
// EXTERNAL MODULE: ./node_modules/_js-base64@2.6.4@js-base64/base64.js
var base64 = __webpack_require__(24334);
;// CONCATENATED MODULE: ./src/pages/MyProblem/TestCasePanel/index.less
// extracted by mini-css-extract-plugin
// EXTERNAL MODULE: ./src/components/Spinner/index.tsx + 1 modules
var Spinner = __webpack_require__(14147);
// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx + 1 modules
var RenderHtml = __webpack_require__(12586);
// EXTERNAL MODULE: ./src/utils/util.tsx
var util = __webpack_require__(3163);
// EXTERNAL MODULE: ./node_modules/_xterm@4.8.1@xterm/lib/xterm.js
var xterm = __webpack_require__(34376);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var utils_fetch = __webpack_require__(87101);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 14 modules
var _umi_production_exports = __webpack_require__(87210);
;// CONCATENATED MODULE: ./src/pages/MyProblem/TestCasePanel/index.tsx
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
var __async = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
} catch (e) {
reject(e);
}
};
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
const { TextArea } = input["default"];
const initialState = {
visible: false,
tabIndex: "0"
};
const ExecuteDict = {
[MyProblem_interface/* ExecuteStatus */.h.NOMATCH]: "\u6D4B\u8BD5\u7528\u4F8B\u7ED3\u679C\u4E0D\u5339\u914D",
[MyProblem_interface/* ExecuteStatus */.h.OK]: "\u8C03\u8BD5\u901A\u8FC7",
2: "\u8C03\u8BD5\u8D85\u65F6",
3: "\u8C03\u8BD5pod\u5931\u8D25",
4: "\u7F16\u8BD1\u5931\u8D25",
5: "\u6267\u884C\u5931\u8D25"
};
var Types = /* @__PURE__ */ ((Types2) => {
Types2[Types2["SET_VISIBLE"] = 0] = "SET_VISIBLE";
Types2[Types2["SET_TABINDEX"] = 1] = "SET_TABINDEX";
return Types2;
})(Types || {});
function Reducer(state, action) {
switch (action.type) {
case 0 /* SET_VISIBLE */:
return __spreadProps(__spreadValues({}, state), { visible: action.payload });
case 1 /* SET_TABINDEX */:
return __spreadProps(__spreadValues({}, state), { tabIndex: action.payload });
default:
throw new Error();
}
}
function DetailCommitOut(debugResult) {
const { status, error_msg, output, input, expected_output, is_file, input_file_url, output_file_url, expected_output_file_url, setMonacoValue, setData } = debugResult;
const outputRef = (0,_react_17_0_2_react.useRef)();
const inputRef = (0,_react_17_0_2_react.useRef)();
const expectedOutputRef = (0,_react_17_0_2_react.useRef)();
let rs = null;
const mdStyle = {
minHeight: 150,
marginBottom: 10,
paddingLeft: 24,
background: "#070f19",
color: "#fff"
};
(0,_react_17_0_2_react.useEffect)(() => {
if (output && !is_file && outputRef.current) {
const term = new xterm.Terminal({
fontSize: 14,
letterSpacing: 1,
cols: 83,
rows: 10
});
term.open(outputRef.current);
const actual_output_format = (0,util/* findEndWhitespace */.pp)(base64.Base64.decode(output));
term.write(actual_output_format);
term.setOption("theme", {
background: "#1e1e1e"
});
}
if (input && !is_file && inputRef.current) {
const term2 = new xterm.Terminal({
fontSize: 14,
letterSpacing: 1,
cols: 83,
rows: 10
});
term2.open(inputRef.current);
term2.write((0,util/* findEndWhitespace */.pp)(input));
term2.setOption("theme", {
background: "#1e1e1e"
});
}
if (expected_output && !is_file && expectedOutputRef.current) {
const term3 = new xterm.Terminal({
fontSize: 14,
letterSpacing: 1,
cols: 83,
rows: 10
});
term3.open(expectedOutputRef.current);
term3.write((0,util/* findEndWhitespace */.pp)(base64.Base64.decode(expected_output)));
term3.setOption("theme", {
background: "#1e1e1e"
});
}
}, [output]);
switch (status) {
case MyProblem_interface/* ExecuteStatus */.h.NOMATCH:
rs = /* @__PURE__ */ _react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, /* @__PURE__ */ _react_17_0_2_react.createElement("p", { className: "c-red" }, "\u5B9E\u9645\u8F93\u5165\uFF1A"), !is_file && /* @__PURE__ */ _react_17_0_2_react.createElement("div", { ref: inputRef }), is_file && /* @__PURE__ */ _react_17_0_2_react.createElement("div", { style: mdStyle }, /* @__PURE__ */ _react_17_0_2_react.createElement(
"a",
{
style: { fontSize: "16px" },
onClick: () => __async(this, null, function* () {
const res = yield fetch(input_file_url, {
method: "Get",
headers: {
"Content-Type": "application/octet-stream",
"Accept": "*/*"
}
});
setMonacoValue(yield res.text());
setTimeout(() => {
setData(input_file_url);
}, 200);
})
},
input
)), /* @__PURE__ */ _react_17_0_2_react.createElement("p", { className: "c-red" }, "\u5B9E\u9645\u8F93\u51FA\uFF1A"), !is_file && /* @__PURE__ */ _react_17_0_2_react.createElement("div", { ref: outputRef }), is_file && /* @__PURE__ */ _react_17_0_2_react.createElement("div", { style: mdStyle }, /* @__PURE__ */ _react_17_0_2_react.createElement(
"a",
{
style: { fontSize: "16px" },
onClick: () => __async(this, null, function* () {
const res = yield (0,utils_fetch/* default */.ZP)(output_file_url, {
method: "Get",
headers: {
"Content-Type": "application/xml",
"Accept": "*/*"
}
});
setMonacoValue(res);
setTimeout(() => {
setData(output_file_url);
}, 200);
})
},
output
)), /* @__PURE__ */ _react_17_0_2_react.createElement("p", { className: "c-red" }, "\u9884\u671F\u8F93\u51FA\uFF1A"), !is_file && /* @__PURE__ */ _react_17_0_2_react.createElement("div", { ref: expectedOutputRef }), is_file && /* @__PURE__ */ _react_17_0_2_react.createElement("div", { style: mdStyle }, /* @__PURE__ */ _react_17_0_2_react.createElement(
"a",
{
style: { fontSize: "16px" },
onClick: () => __async(this, null, function* () {
const res = yield fetch(expected_output_file_url, {
method: "Get",
headers: {
"Content-Type": "application/octet-stream",
"Accept": "*/*"
}
});
setMonacoValue(yield res.text());
setTimeout(() => {
setData(expected_output_file_url);
}, 200);
})
},
expected_output
)));
break;
case MyProblem_interface/* ExecuteStatus */.h.EXECUTEFAILURE:
rs = /* @__PURE__ */ _react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, /* @__PURE__ */ _react_17_0_2_react.createElement("div", { style: { border: "1px #F6F7F9 solid" } }, /* @__PURE__ */ _react_17_0_2_react.createElement("p", { style: { width: "100%", height: 40, background: "#F6F7F9", lineHeight: "40px", color: "#666666", paddingLeft: "12px" } }, "\u6700\u540E\u6267\u884C\u7684\u8F93\u5165\uFF1A"), !is_file && /* @__PURE__ */ _react_17_0_2_react.createElement(RenderHtml/* default */.Z, { value: input, style: mdStyle }), is_file && /* @__PURE__ */ _react_17_0_2_react.createElement("div", { style: mdStyle }, /* @__PURE__ */ _react_17_0_2_react.createElement(
"a",
{
onClick: () => (0,util/* download */.LR)(input_file_url, input)
},
input
))), /* @__PURE__ */ _react_17_0_2_react.createElement("div", { style: { border: "1px #F6F7F9 solid", marginTop: "10px" } }, /* @__PURE__ */ _react_17_0_2_react.createElement("p", { style: { width: "100%", height: 40, background: "#F6F7F9", lineHeight: "40px", color: "#666666", paddingLeft: "12px" } }, "\u6267\u884C\u51FA\u9519\u4FE1\u606F\uFF1A"), /* @__PURE__ */ _react_17_0_2_react.createElement("pre", { className: "error", style: { color: "#E30000", padding: "0 10px" } }, base64.Base64.decode(error_msg), "111")));
break;
case MyProblem_interface/* ExecuteStatus */.h.COMPILEFAILURE:
rs = /* @__PURE__ */ _react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u6700\u540E\u6267\u884C\u7684\u8F93\u5165\uFF1A"), !is_file && /* @__PURE__ */ _react_17_0_2_react.createElement("div", { ref: inputRef }), is_file && /* @__PURE__ */ _react_17_0_2_react.createElement("div", { style: mdStyle }, /* @__PURE__ */ _react_17_0_2_react.createElement(
"a",
{
onClick: () => (0,util/* download */.LR)(input_file_url, input)
},
input
)), /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u6267\u884C\u51FA\u9519\u4FE1\u606F\uFF1A"), /* @__PURE__ */ _react_17_0_2_react.createElement("pre", { className: "error" }, base64.Base64.decode(error_msg)));
break;
case MyProblem_interface/* ExecuteStatus */.h.PODFAILURE:
rs = /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u521B\u5EFApod\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5");
break;
case MyProblem_interface/* ExecuteStatus */.h.TIMEOUT:
rs = /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u8BC4\u6D4B\u8D85\u65F6\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5");
break;
}
return /* @__PURE__ */ _react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, " ", rs, " ");
}
function getCommitOut(debugResult) {
const { status, error_msg, execute_time, output, input, expected_output, is_file, input_file_url, output_file_url, expected_output_file_url } = debugResult;
let rs = null;
switch (status) {
case MyProblem_interface/* ExecuteStatus */.h.OK:
rs = /* @__PURE__ */ _react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u6267\u884C\u7528\u65F6\uFF1A", execute_time / 1e3, "\u79D2"), /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u6267\u884C\u7ED3\u679C\uFF1A"), /* @__PURE__ */ _react_17_0_2_react.createElement("pre", null, base64.Base64.decode(output)));
break;
case MyProblem_interface/* ExecuteStatus */.h.NOMATCH:
rs = /* @__PURE__ */ _react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u8F93\u5165\uFF1A", /* @__PURE__ */ _react_17_0_2_react.createElement("pre", null, input)), /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u8F93\u51FA\uFF1A", output && base64.Base64.decode(output)), /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u9884\u671F\u8F93\u51FA\uFF1A", expected_output && base64.Base64.decode(expected_output)));
break;
case MyProblem_interface/* ExecuteStatus */.h.EXECUTEFAILURE:
rs = /* @__PURE__ */ _react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u6700\u540E\u6267\u884C\u7684\u8F93\u5165\uFF1A", /* @__PURE__ */ _react_17_0_2_react.createElement("pre", null, input)), /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u6267\u884C\u51FA\u9519\u4FE1\u606F\uFF1A"), /* @__PURE__ */ _react_17_0_2_react.createElement("pre", { className: "error" }, base64.Base64.decode(error_msg)));
break;
case MyProblem_interface/* ExecuteStatus */.h.COMPILEFAILURE:
rs = /* @__PURE__ */ _react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u6700\u540E\u6267\u884C\u7684\u8F93\u5165\uFF1A", /* @__PURE__ */ _react_17_0_2_react.createElement("pre", null, input)), /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u6267\u884C\u51FA\u9519\u4FE1\u606F\uFF1A"), /* @__PURE__ */ _react_17_0_2_react.createElement("pre", { className: "error" }, base64.Base64.decode(error_msg)));
break;
case MyProblem_interface/* ExecuteStatus */.h.PODFAILURE:
rs = /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u521B\u5EFApod\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5");
break;
case MyProblem_interface/* ExecuteStatus */.h.TIMEOUT:
rs = /* @__PURE__ */ _react_17_0_2_react.createElement("p", null, "\u8BC4\u6D4B\u8D85\u65F6\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5");
break;
}
return /* @__PURE__ */ _react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, " ", rs, " ");
}
/* harmony default export */ var TestCasePanel = (({ input, debuging, submitting, executingMessage, debugResult, onChangeInput, onDebugCode, onSubmitCode, hack, user }) => {
const [state, dispatch] = (0,_react_17_0_2_react.useReducer)(Reducer, initialState);
const { visible, tabIndex } = state;
const [searchParams] = (0,_umi_production_exports.useSearchParams)();
function onTabIndexChange(e) {
let id = e.target.id;
dispatch({
type: 1 /* SET_TABINDEX */,
payload: id
});
}
function onTriggerCollapse() {
dispatch({
type: 0 /* SET_VISIBLE */,
payload: !visible
});
}
const executeResult = (0,_react_17_0_2_react.useMemo)(() => {
if (debugResult) {
const { status } = debugResult;
return /* @__PURE__ */ _react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, getCommitOut(debugResult));
}
return null;
}, [debugResult]);
function onDebug() {
dispatch({
type: 0 /* SET_VISIBLE */,
payload: true
});
dispatch({
type: 1 /* SET_TABINDEX */,
payload: "1"
});
onDebugCode();
}
const skip = (text) => __async(void 0, null, function* () {
let res = yield (0,utils_fetch/* default */.ZP)(`/api/problems/${text}/start.json`, {
method: "get",
params: {
hack_user_id: user == null ? void 0 : user.user_id
}
});
if (res) {
window.location.href = `/myproblems/${res == null ? void 0 : res.identifier}?type=1`;
}
});
return /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: "test-case-panel" }, /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: `test-case-panel-body ${visible ? "active" : ""}` }, /* @__PURE__ */ _react_17_0_2_react.createElement("ul", { className: "s-navs" }, /* @__PURE__ */ _react_17_0_2_react.createElement("li", null, /* @__PURE__ */ _react_17_0_2_react.createElement("a", { className: tabIndex === "0" ? "active" : "", id: "0", onClick: onTabIndexChange }, "\u81EA\u5B9A\u4E49\u6D4B\u8BD5\u7528\u4F8B")), /* @__PURE__ */ _react_17_0_2_react.createElement("li", null, /* @__PURE__ */ _react_17_0_2_react.createElement("a", { className: tabIndex === "1" ? "active" : "", id: "1", onClick: onTabIndexChange }, "\u4EE3\u7801\u6267\u884C\u7ED3\u679C"))), /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: `tab-panel-body ${tabIndex === "0" ? "" : "hide"}` }, /* @__PURE__ */ _react_17_0_2_react.createElement(TextArea, { placeholder: "\u8BF7\u586B\u5199\u6D4B\u8BD5\u7528\u4F8B\u7684\u8F93\u5165\u503C\uFF0C\u70B9\u51FB\u201C\u8C03\u8BD5\u4EE3\u7801\u201D", value: input, onChange: onChangeInput })), /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: `tab-panel-body ${tabIndex === "1" ? "" : "hide"}` }, debuging ? /* @__PURE__ */ _react_17_0_2_react.createElement(Spinner/* default */.Z, { message: executingMessage }) : debugResult ? /* @__PURE__ */ _react_17_0_2_react.createElement("section", { style: { height: 200 } }, " ", executeResult, " ") : /* @__PURE__ */ _react_17_0_2_react.createElement("p", { className: "tip" }, "\u8BF7\u586B\u5199\u6D4B\u8BD5\u7528\u4F8B\u7684\u8F93\u5165\u503C\uFF0C\u70B9\u51FB\u201C\u8C03\u8BD5\u4EE3\u7801\u201D"))), /* @__PURE__ */ _react_17_0_2_react.createElement("a", { className: `btn-collapse ${visible ? "up" : ""}`, onClick: onTriggerCollapse }, visible ? /* @__PURE__ */ _react_17_0_2_react.createElement(DownOutlined/* default */.Z, null) : /* @__PURE__ */ _react_17_0_2_react.createElement(UpOutlined/* default */.Z, null)), /* @__PURE__ */ _react_17_0_2_react.createElement("footer", { className: "footer" }, /* @__PURE__ */ _react_17_0_2_react.createElement("span", null, "\u63A7\u5236\u53F0"), /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: "flex-container" }, (hack == null ? void 0 : hack.is_program) && (hack == null ? void 0 : hack.above_question) && /* @__PURE__ */ _react_17_0_2_react.createElement(es_button/* default */.ZP, { onClick: () => skip(hack == null ? void 0 : hack.above_question), id: "oj-prev", className: "btn-blue", type: "ghost" }, "\u4E0A\u4E00\u9898"), (hack == null ? void 0 : hack.is_program) && (hack == null ? void 0 : hack.under_question) && /* @__PURE__ */ _react_17_0_2_react.createElement(es_button/* default */.ZP, { onClick: () => skip(hack == null ? void 0 : hack.under_question), id: "oj-next", className: "btn-blue", type: "ghost" }, "\u4E0B\u4E00\u9898"), /* @__PURE__ */ _react_17_0_2_react.createElement(es_button/* default */.ZP, { className: "btn-green", type: "ghost", loading: debuging, onClick: onDebug }, "\u8C03\u8BD5\u4EE3\u7801"), searchParams.get("qtype") !== "8" && /* @__PURE__ */ _react_17_0_2_react.createElement(es_button/* default */.ZP, { type: "primary", className: "custom-ant-disabled", loading: submitting, disabled: submitting, onClick: () => {
dispatch({
type: 0 /* SET_VISIBLE */,
payload: false
});
onSubmitCode();
} }, "\u8BC4\u6D4B\u5E76\u63D0\u4EA4"))));
});
/***/ }),
/***/ 71984:
/*!******************************************!*\
!*** ./src/pages/MyProblem/interface.ts ***!
\******************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ h: function() { return /* binding */ ExecuteStatus; }
/* harmony export */ });
var ExecuteStatus = /* @__PURE__ */ ((ExecuteStatus2) => {
ExecuteStatus2[ExecuteStatus2["NOMATCH"] = -1] = "NOMATCH";
ExecuteStatus2[ExecuteStatus2["OK"] = 0] = "OK";
ExecuteStatus2[ExecuteStatus2["TIMEOUT"] = 2] = "TIMEOUT";
ExecuteStatus2[ExecuteStatus2["PODFAILURE"] = 3] = "PODFAILURE";
ExecuteStatus2[ExecuteStatus2["COMPILEFAILURE"] = 4] = "COMPILEFAILURE";
ExecuteStatus2[ExecuteStatus2["EXECUTEFAILURE"] = 5] = "EXECUTEFAILURE";
return ExecuteStatus2;
})(ExecuteStatus || {});
/***/ }),
/***/ 75211:
/*!****************************************!*\
!*** ./src/pages/MyProblem/service.ts ***!
\****************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ H7: function() { return /* binding */ resetCode; },
/* harmony export */ MK: function() { return /* binding */ addNotes; },
/* harmony export */ MU: function() { return /* binding */ debugCode; },
/* harmony export */ X6: function() { return /* binding */ getRecordDetail; },
/* harmony export */ bM: function() { return /* binding */ sumbitCode; },
/* harmony export */ fi: function() { return /* binding */ syncCode; },
/* harmony export */ fu: function() { return /* binding */ getProgrammingTopic; },
/* harmony export */ n4: function() { return /* binding */ updateCode; },
/* harmony export */ rX: function() { return /* binding */ getOperationResult; },
/* harmony export */ vl: function() { return /* binding */ triggerPlus; },
/* harmony export */ zO: function() { return /* binding */ getSubmitRecords; }
/* harmony export */ });
/* harmony import */ var _utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils/fetch.ts */ 87101);
var __defProp = Object.defineProperty;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
function getProgrammingTopic(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .get */ .U2)(`myproblems/${id}.json`, __spreadValues({ hidePopLogin: true }, params || {}));
}
function sumbitCode(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)(`myproblems/${id}/code_submit.json`, params);
}
function debugCode(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)(`myproblems/${id}/code_debug.json`, params);
}
function getSubmitRecords(id, params) {
if (params.language) {
params.language = encodeURIComponent(params.language);
}
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .get */ .U2)(`myproblems/${id}/submit_records.json`, params);
}
function getRecordDetail(id) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .get */ .U2)(`myproblems/record_detail.json`, { id });
}
function getOperationResult(id, mode) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .get */ .U2)(`myproblems/${id}/result.json`, { mode });
}
function addNotes(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)(`myproblems/${id}/add_notes.json`, params);
}
function resetCode(id) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)(`myproblems/${id}/restore_initial_code.json`);
}
function syncCode(id) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)(`myproblems/${id}/sync_code.json`);
}
function updateCode(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)(`myproblems/${id}/update_code.json`, params);
}
function triggerPlus(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)(`discusses/${id}/plus.json`, params);
}
/***/ })
}]);