"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[9547],{ /***/ 19547: /*!*********************************************************!*\ !*** ./src/components/QuestionEditor/Buttonloading.tsx ***! \*********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony import */ var umi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! umi */ 23175); /* 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 */ 94754); /* harmony import */ var _pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/pages/MyProblem/service */ 41210); /* harmony import */ var _pages_MyProblem_TestCasePanel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/pages/MyProblem/TestCasePanel */ 64173); /* 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); /***/ }), /***/ 95116: /*!******************************************************!*\ !*** ./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 + 15 modules var _umi_production_exports = __webpack_require__(23175); ;// 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)); }); /***/ }), /***/ 64173: /*!*****************************************************************!*\ !*** ./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__(62090); // 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__(95116); // EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx + 1 modules var RenderHtml = __webpack_require__(51618); // EXTERNAL MODULE: ./src/utils/util.tsx var util = __webpack_require__(19234); // 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__(94754); // EXTERNAL MODULE: ./src/.umi-production/exports.ts + 15 modules var _umi_production_exports = __webpack_require__(23175); ;// 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")))); }); /***/ }), /***/ 62090: /*!******************************************!*\ !*** ./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 || {}); /***/ }), /***/ 41210: /*!****************************************!*\ !*** ./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 */ 94754); 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); } /***/ }) }]);