(self["webpackChunk"] = self["webpackChunk"] || []).push([[14105],{ /***/ 56672: /*!*********************************!*\ !*** ./src/pages/tasks/util.js ***! \*********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Ax: function() { return /* binding */ processTreeData; }, /* harmony export */ Ds: function() { return /* binding */ debounce; }, /* harmony export */ KI: function() { return /* binding */ apiPref; }, /* harmony export */ SI: function() { return /* binding */ getTreeData; }, /* harmony export */ f1: function() { return /* binding */ isCompileOk; } /* harmony export */ }); /* unused harmony export isProd */ /* harmony import */ var _utils_env__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils/env */ 47015); function isCompileOk(rs) { var flag = true; if (rs.length > 0) { for (var i = 0; i < rs.length; i++) { if (rs[i].compile_success == 0 || !rs[i].compile_success) { flag = false; break; } } } else { flag = false; } return flag; } function getTreeData(data) { var parentKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; var result = []; for (var i = 0; i < data.length; i++) { var item = data[i]; var key = parentKey ? "".concat(parentKey, "/").concat(item.name) : "".concat(item.name); result.push({ title: item.name, isLeaf: item.type === 'tree' ? false : true, key: key }); } return result; } function processTreeData(repos, key, newData) { for (var i = 0; i < repos.length; i++) { var item = repos[i]; if (item.key === key) { item.children = newData; break; } if (item.children) { processTreeData(item.children, key, newData); } } return repos; } function debounce(func, wait, immediate) { var timeout; return function () { var context = this, args = arguments; var later = function later() { timeout = null; if (!immediate) func.apply(context, args); }; var callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if (callNow) func.apply(context, args); }; } var isProd = true; var apiPref = _utils_env__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z.API_SERVER; // export const isProd = // window.location.href.indexOf('test-') > 0 || // window.location.href.indexOf('localhost') > 0 // ? false // : true; // export const apiPref = isProd // ? 'https://www.educoder.net' // : 'https://test-newweb.educoder.net'; /***/ }), /***/ 10902: /*!**********************************************!*\ !*** ./src/components/AsyncButton/index.tsx ***! \**********************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: function() { return /* binding */ AsyncButton; } /* harmony export */ }); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectSpread2.js */ 26801); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/regeneratorRuntime.js */ 10574); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/asyncToGenerator.js */ 39343); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js */ 11006); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectWithoutProperties.js */ 27161); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd */ 3113); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ 59301); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ 37712); var _excluded = ["children"]; var AsyncButton = function AsyncButton(_ref) { var children = _ref.children, props = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_4___default()(_ref, _excluded); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false), _useState2 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3___default()(_useState, 2), btnLoading = _useState2[0], setBtnLoading = _useState2[1]; return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP, _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, props), {}, { loading: btnLoading, onClick: /*#__PURE__*/function () { var _ref2 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee(e) { return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.prev = 0; setBtnLoading(true); _context.next = 4; return props.onClick(e); case 4: setBtnLoading(false); _context.next = 11; break; case 7: _context.prev = 7; _context.t0 = _context["catch"](0); console.error(_context.t0); setBtnLoading(false); case 11: case "end": return _context.stop(); } }, _callee, null, [[0, 7]]); })); return function (_x) { return _ref2.apply(this, arguments); }; }(), children: children })); }; /***/ }), /***/ 70553: /*!***********************************************************!*\ !*** ./src/components/CaptureVideo/index.tsx + 1 modules ***! \***********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: function() { return /* binding */ components_CaptureVideo; } }); // UNUSED EXPORTS: CaptureVideo // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/regeneratorRuntime.js var regeneratorRuntime = __webpack_require__(10574); var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/asyncToGenerator.js var asyncToGenerator = __webpack_require__(39343); var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js var slicedToArray = __webpack_require__(11006); var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray); // 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 + 8 modules var _umi_production_exports = __webpack_require__(66660); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules var message = __webpack_require__(8591); // EXTERNAL MODULE: ./src/utils/fetch.ts var fetch = __webpack_require__(97174); // EXTERNAL MODULE: ./node_modules/_uuid@8.3.0@uuid/dist/esm-browser/v4.js + 4 modules var v4 = __webpack_require__(1012); // EXTERNAL MODULE: ./src/components/UploadFile/index.tsx var UploadFile = __webpack_require__(49581); // EXTERNAL MODULE: ./node_modules/_ali-oss@6.10.0@ali-oss/dist/aliyun-oss-sdk.js var aliyun_oss_sdk = __webpack_require__(75264); var aliyun_oss_sdk_default = /*#__PURE__*/__webpack_require__.n(aliyun_oss_sdk); ;// CONCATENATED MODULE: ./src/components/CaptureVideo/index.less?modules // extracted by mini-css-extract-plugin /* harmony default export */ var CaptureVideomodules = ({"flex_box_center":"flex_box_center___kVqBh","flex_space_between":"flex_space_between___FMnNq","flex_box_vertical_center":"flex_box_vertical_center___meESe","flex_box_center_end":"flex_box_center_end___KFpOb","flex_box_column":"flex_box_column___GHIK9","video":"video___nn_cD"}); // EXTERNAL MODULE: ./src/service/video.ts var service_video = __webpack_require__(23806); // EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js var jsx_runtime = __webpack_require__(37712); ;// CONCATENATED MODULE: ./src/components/CaptureVideo/index.tsx /** * base64 to file * @param dataurl base64 content * @param filename set up a meaningful suffix, or you can set mime type in options * @returns {File|*} */ var dataURLtoFile = function dataURLtoFile(dataurl, filename) { var arr = dataurl.split(','); var mime = arr[0].match(/:(.*?);/)[1]; var bstr = atob(arr[1]); var n = bstr.length; var u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new Blob([u8arr], { type: mime }); // if env support File, also can use this: return new File([u8arr], filename, { type: mime }); }; var CaptureVideo = /*#__PURE__*/(0,_react_17_0_2_react.forwardRef)(function (_ref, ref) { var time = _ref.time, number = _ref.number, supportCamera = _ref.supportCamera, take_photo = _ref.take_photo, _ref$isExercise = _ref.isExercise, isExercise = _ref$isExercise === void 0 ? true : _ref$isExercise, update = _ref.update, onUserMediaLoaded = _ref.onUserMediaLoaded; var video = (0,_react_17_0_2_react.useRef)(); var canvas = (0,_react_17_0_2_react.useRef)(); var params = (0,_umi_production_exports.useParams)(); var _useState = (0,_react_17_0_2_react.useState)([]), _useState2 = slicedToArray_default()(_useState, 2), phoneStep = _useState2[0], setPhoneStep = _useState2[1]; var _useState3 = (0,_react_17_0_2_react.useState)(0), _useState4 = slicedToArray_default()(_useState3, 2), status = _useState4[0], setStatus = _useState4[1]; // 0准备中,1开启失败,2开启成功,3考试结束 var _useState5 = (0,_react_17_0_2_react.useState)(''), _useState6 = slicedToArray_default()(_useState5, 2), src = _useState6[0], setSrc = _useState6[1]; var _useState7 = (0,_react_17_0_2_react.useState)(), _useState8 = slicedToArray_default()(_useState7, 2), interval = _useState8[0], setInter = _useState8[1]; var _useState9 = (0,_react_17_0_2_react.useState)(0), _useState10 = slicedToArray_default()(_useState9, 2), isPause = _useState10[0], setIsPause = _useState10[1]; //0未开始,1开始计时,2停止计时 var uploadImgFile = /*#__PURE__*/function () { var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(title, imgUrl) { return regeneratorRuntime_default()().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", (0,fetch/* default */.ZP)('/api/attachments.json', { method: 'POST', body: { file_type: 'base64', original_filename: title, file: imgUrl } })); case 1: case "end": return _context.stop(); } }, _callee); })); return function uploadImgFile(_x, _x2) { return _ref2.apply(this, arguments); }; }(); var takePhotoAndUpload = /*#__PURE__*/function () { var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(base64Res) { var timeStamp, res; return regeneratorRuntime_default()().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: timeStamp = new Date().valueOf(); if (!base64Res) { _context2.next = 8; break; } _context2.next = 4; return uploadImgFile("\u7167\u7247".concat(timeStamp), base64Res); case 4: res = _context2.sent; if (res.status) { _context2.next = 8; break; } _context2.next = 8; return (0,service_video/* savePhoto */.Ju)({ container_id: params.categoryId, container_type: 'Exercise', attachment_id: res === null || res === void 0 ? void 0 : res.id }); case 8: case "end": return _context2.stop(); } }, _callee2); })); return function takePhotoAndUpload(_x3) { return _ref3.apply(this, arguments); }; }(); (0,_react_17_0_2_react.useEffect)(function () { checkMediaDevices(); return function () { handleStop(); clearTimer(); }; }, []); (0,_react_17_0_2_react.useEffect)(function () { // clearTimer() if (status === 2 && time && number > 0) { calcPhoto(); setIsPause(1); // photograph(); } }, [time]); (0,_react_17_0_2_react.useEffect)(function () { if (isPause === 0) return; if (isPause === 2) { clearInterval(interval); } else { var n = 0; var id = setInterval(function () { if (phoneStep.includes(n)) { handlePhoto(); } n++; }, 1000); setInter(id); } return function () { return clearInterval(interval); }; }, [isPause]); (0,_react_17_0_2_react.useImperativeHandle)(ref, function () { return { handlePhoto: handlePhoto, handleTakePhoto: handleTakePhoto }; }); var clearTimer = function clearTimer() { setIsPause(2); }; var calcPhoto = function calcPhoto() { var step = time / number; var arr = []; function getRndInteger(min, max) { return parseInt(Math.floor(Math.random() * (max - min + 1)) + min); } new Array(number).fill(0).map(function (item, key) { if (take_photo) { arr.push(getRndInteger(step * key, step * (key + 1))); } else { if (key == 0) { arr.push(0); } else { arr.push(getRndInteger(step * key, step * (key + 1))); } } }); phoneStep = arr; setPhoneStep([].concat(arr)); console.log(arr); }; var checkMediaDevices = function checkMediaDevices() { if (navigator.mediaDevices === undefined) { navigator.mediaDevices = {}; } if (navigator.mediaDevices.getUserMedia === undefined) { navigator.mediaDevices.getUserMedia = function (constraints) { var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia; if (!getUserMedia) { return Promise.reject(new Error('getUserMedia is not implemented in this browser')); } return new Promise(function (resolve, reject) { getUserMedia.call(navigator, constraints, resolve, reject); }); }; } navigator.mediaDevices.getUserMedia({ video: { width: 640, height: 480 } }).then(function (stream) { streamRef.current = stream; supportCamera && supportCamera(2); setStatus(2); if ("srcObject" in video.current) { video.current.srcObject = stream; } else { video.current.src = window.URL.createObjectURL(stream); } video.current.onloadedmetadata = function (e) { video.current.play(); if (onUserMediaLoaded) { onUserMediaLoaded(); } }; video.current.addEventListener('ended', function () { //结束 console.log("播放结束"); clearTimer(); if (isExercise) { //在考试时才需要这个提示 message/* default */.ZP.error({ content: "您已经关闭了摄像头,请在10秒钟内恢复摄像头,否则将推出考试", duration: 10, key: 9998 }); } }, false); })["catch"](function (err) { setStatus(1); supportCamera && supportCamera(1); // 错误信息,以及用户未授权 if (err.message === "Permission denied" || err.name === 'NotAllowedError') { message/* default */.ZP.error('您已拒绝了获取摄像头'); } else { message/* default */.ZP.error('摄像头获取失败,或您已拒绝了获取摄像头'); } console.log("errname: " + err.name); console.log("err: " + err.message); }); }; var handlePhoto = function handlePhoto() { try { canvas.current.width = video.current.videoWidth; canvas.current.height = video.current.videoHeight; var context = canvas.current.getContext('2d'); context.drawImage(video.current, 0, 0, canvas.current.width, canvas.current.height); setSrc(canvas.current.toDataURL('image/png')); takePhotoAndUpload(canvas.current.toDataURL('image/png')); uploadFile(canvas.current.toDataURL('image/png')); } catch (e) {} }; var handleTakePhoto = function handleTakePhoto() { try { canvas.current.width = video.current.videoWidth; canvas.current.height = video.current.videoHeight; var context = canvas.current.getContext('2d'); context.drawImage(video.current, 0, 0, canvas.current.width, canvas.current.height); return canvas.current.toDataURL('image/png'); } catch (e) {} }; var streamRef = (0,_react_17_0_2_react.useRef)(); var handleStop = function handleStop() { try { var stream = streamRef.current; var tracks = stream.getTracks(); tracks.forEach(function (track) { track.stop(); }); video.current.srcObject = null; } catch (e) {} }; var uploadFile = /*#__PURE__*/function () { var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3(file) { var _res$data, _res$data2, _res$data3, _res$data4, _res$data5, _res$data6, _res$data7; var res, name, client, imgfile; return regeneratorRuntime_default()().wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return (0,fetch/* default */.ZP)('/api/buckets/get_upload_token.json', { method: "get" }); case 2: res = _context3.sent; res.data = JSON.parse((0,UploadFile/* decrypt */.pe)(res.data)); name = (0,v4/* default */.Z)(); client = new (aliyun_oss_sdk_default())({ endpoint: res === null || res === void 0 || (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.end_point, region: res === null || res === void 0 || (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.region, accessKeyId: res === null || res === void 0 || (_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : _res$data3.access_key_id, accessKeySecret: res === null || res === void 0 || (_res$data4 = res.data) === null || _res$data4 === void 0 ? void 0 : _res$data4.access_key_secret, bucket: res === null || res === void 0 || (_res$data5 = res.data) === null || _res$data5 === void 0 ? void 0 : _res$data5.bucket, stsToken: res === null || res === void 0 || (_res$data6 = res.data) === null || _res$data6 === void 0 ? void 0 : _res$data6.security_token }); imgfile = dataURLtoFile(file, name); client.multipartUpload("".concat(name, ".png"), imgfile, { timeout: 10 * 1000, partSize: 10485760, callback: { url: res === null || res === void 0 || (_res$data7 = res.data) === null || _res$data7 === void 0 ? void 0 : _res$data7.callback_url, host: res === null || res === void 0 ? void 0 : res.data.bucket_host, body: 'bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&my_var=${x:my_var}&login=' + params.login + '&container_id=' + params.categoryId + '&container_type=Exercise' } }).then(function (result) { console.log("result:", result); })["catch"](function (err) { console.log("err:", err); }); case 8: case "end": return _context3.stop(); } }, _callee3); })); return function uploadFile(_x4) { return _ref4.apply(this, arguments); }; }(); return /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, { children: status !== 3 && /*#__PURE__*/(0,jsx_runtime.jsxs)("aside", { className: CaptureVideomodules.video, id: "screenshot", children: [status === 0 && /*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: "\u6B63\u5728\u5F00\u542F\u6444\u50CF\u5934..." }), status === 1 && /*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: "\u6444\u50CF\u5934\u5F00\u542F\u5931\u8D25" }), status === 2 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { children: [/*#__PURE__*/(0,jsx_runtime.jsx)("video", { width: "288", ref: video, autoPlay: true }), /*#__PURE__*/(0,jsx_runtime.jsx)("canvas", { style: { display: "none" }, ref: canvas })] })] }) }); }); /* harmony default export */ var components_CaptureVideo = (CaptureVideo); /***/ }), /***/ 21528: /*!****************************************!*\ !*** ./src/components/Hooks/index.tsx ***! \****************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ y: function() { return /* binding */ useDisableAction; } /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301); var useDisableAction = function useDisableAction(disable) { (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (disable) { var handleKeyDown = function handleKeyDown(event) { if (event.key === "F12") { event.preventDefault(); // 执行你的自定义行为 console.log('F12被禁用'); } }; var handleContextmenu = function handleContextmenu(event) { event.preventDefault(); }; document.addEventListener("keydown", handleKeyDown); document.addEventListener("contextmenu", handleContextmenu); return function () { document.removeEventListener("keydown", handleKeyDown); document.removeEventListener("contextmenu", handleContextmenu); }; } }, [disable]); }; /***/ }), /***/ 48058: /*!*********************************************************!*\ !*** ./src/components/PreviewAll/index.tsx + 1 modules ***! \*********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: function() { return /* binding */ PreviewAll; } }); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectSpread2.js var objectSpread2 = __webpack_require__(26801); var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/regeneratorRuntime.js var regeneratorRuntime = __webpack_require__(10574); var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/asyncToGenerator.js var asyncToGenerator = __webpack_require__(39343); var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js var slicedToArray = __webpack_require__(11006); var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray); // EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js var _react_17_0_2_react = __webpack_require__(59301); ;// CONCATENATED MODULE: ./src/components/PreviewAll/index.less?modules // extracted by mini-css-extract-plugin /* harmony default export */ var PreviewAllmodules = ({"wrp":"wrp___dq7YK","bgBlack":"bgBlack___ARIUV","monaco":"monaco___VnZC3","darkBlue":"darkBlue___UprA9","close":"close___LKoWu","embed":"embed___hvpEJ"}); // 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/ArrowDownOutlined.js + 1 modules var ArrowDownOutlined = __webpack_require__(98915); // EXTERNAL MODULE: ./src/components/monaco-editor/index.jsx + 4 modules var monaco_editor = __webpack_require__(14654); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tooltip/index.js + 3 modules var tooltip = __webpack_require__(6848); // EXTERNAL MODULE: ./src/utils/util.tsx var util = __webpack_require__(27291); // EXTERNAL MODULE: ./src/service/exercise.ts var exercise = __webpack_require__(6303); // EXTERNAL MODULE: ./src/components/NoData/index.tsx var NoData = __webpack_require__(72020); // EXTERNAL MODULE: ./src/utils/env.ts + 1 modules var env = __webpack_require__(47015); // EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js var jsx_runtime = __webpack_require__(37712); ;// CONCATENATED MODULE: ./src/components/PreviewAll/index.tsx /* harmony default export */ var PreviewAll = (function (_ref) { var _data, _data2, _data3, _data4, _data5, _data6; var _ref$editOffice = _ref.editOffice, editOffice = _ref$editOffice === void 0 ? 'view' : _ref$editOffice, data = _ref.data, theme = _ref.theme, type = _ref.type, filename = _ref.filename, monacoEditor = _ref.monacoEditor, className = _ref.className, style = _ref.style, close = _ref.close, onClose = _ref.onClose, hasMask = _ref.hasMask, disabledDownload = _ref.disabledDownload, onImgDimensions = _ref.onImgDimensions, showNodata = _ref.showNodata; var _useState = (0,_react_17_0_2_react.useState)('https://view.officeapps.live.com/op/view.aspx?src=http://testgs.educoder.net//rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--03541f6234b93d7ac3b2d84e7eb0e6594a952945/1.ppt'), _useState2 = slicedToArray_default()(_useState, 2), src = _useState2[0], setSrc = _useState2[1]; var _useState3 = (0,_react_17_0_2_react.useState)(""), _useState4 = slicedToArray_default()(_useState3, 2), token = _useState4[0], setToken = _useState4[1]; var _useState5 = (0,_react_17_0_2_react.useState)(), _useState6 = slicedToArray_default()(_useState5, 2), officeData = _useState6[0], setOfficeData = _useState6[1]; var officePath = window.ENV === "build" ? "/react/build" : ""; var apiServer = location.host.startsWith("localhost") ? env/* default */.Z.PROXY_SERVER : env/* default */.Z.API_SERVER; // let size; var unit = 1024 * 1024; var maxSize = 10 * unit; var closeRef = (0,_react_17_0_2_react.useRef)(); if ((_data = data) !== null && _data !== void 0 && _data.startsWith("/api") && type !== "txt") { data = env/* default */.Z.API_SERVER + data; } // if (type === "office") { // size = parseUrl(data).filesize // if (size > maxSize) { // type = "other" // } // } if (filename) monacoEditor.filename = filename; (0,_react_17_0_2_react.useEffect)(function () { var _document$cookie; var cookies = (_document$cookie = document.cookie) === null || _document$cookie === void 0 || (_document$cookie = _document$cookie.replace(/\s/g, "")) === null || _document$cookie === void 0 ? void 0 : _document$cookie.split(";"); cookies === null || cookies === void 0 || cookies.map(function (item) { var i = item.split("="); if (i[0] === '_educoder_session') { setToken(i[1]); } }); }, []); (0,_react_17_0_2_react.useEffect)(function () { if (type === "office") getData(); }, [type, data]); var getData = /*#__PURE__*/function () { var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() { var _url, _id, res; return regeneratorRuntime_default()().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: console.log("data:", data); _url = data; if (!data.startsWith("http")) { _url = location.origin + _url; } _id = new URL(_url).pathname.split("/").pop(); _context.next = 6; return (0,exercise/* setEcsAttachment */.gJ)({ attachment_id: _id }); case 6: res = _context.sent; setOfficeData(res); case 8: case "end": return _context.stop(); } }, _callee); })); return function getData() { return _ref2.apply(this, arguments); }; }(); var handleClick = function handleClick() { if (data.startsWith("http") || data.startsWith('blob:')) { handleDown(); return; } (0,util/* downloadFile */.Sv)(filename || 'educoder', data, filename); }; var handleDown = function handleDown() { (0,util/* downLoadLink */.Nd)(filename || 'educoder', decodeURIComponent(data)); }; return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { style: objectSpread2_default()({}, style || {}), className: "".concat(hasMask && PreviewAllmodules.bgBlack, " ").concat(!!type ? PreviewAllmodules.wrp : "hide"), children: [close && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: PreviewAllmodules.close, ref: closeRef, children: [!!onImgDimensions && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, { title: "\u70B9\u51FB\u5BF9\u56FE\u7247\u8FDB\u884C\u6279\u6CE8", getPopupContainer: function getPopupContainer() { return closeRef.current; }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", { onClick: function onClick() { onClose(); onImgDimensions(); }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "icon-yulanpizhu" }) }) }), !disabledDownload && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, { title: "\u70B9\u51FB\u4E0B\u8F7D\u6B64\u6587\u4EF6", getPopupContainer: function getPopupContainer() { return closeRef.current; }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", { onClick: handleDown, children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "icon-quxiaozhiding" }) }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, { title: "\u5173\u95ED", getPopupContainer: function getPopupContainer() { return closeRef.current; }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "", onClick: onClose, children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "icon-guanbi1" }) }) })] }), /*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: "".concat(PreviewAllmodules[className], " ").concat(className, " ").concat(PreviewAllmodules.monaco, " ").concat(type === "txt" ? "show" : "hide"), children: type === "txt" && /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, { children: /*#__PURE__*/(0,jsx_runtime.jsx)(monaco_editor/* default */.ZP, objectSpread2_default()({}, monacoEditor)) }) }), type === "audio" && /*#__PURE__*/(0,jsx_runtime.jsx)("audio", { src: "".concat(((_data2 = data) === null || _data2 === void 0 ? void 0 : _data2.indexOf("http://")) > -1 || ((_data3 = data) === null || _data3 === void 0 ? void 0 : _data3.indexOf("https://")) > -1 ? "" : "data:audio/mp3;base64,").concat(data), autoPlay: true }), type === "video" && /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, { children: ((_data4 = data) === null || _data4 === void 0 ? void 0 : _data4.indexOf("http")) > -1 ? /*#__PURE__*/(0,jsx_runtime.jsx)("video", { controls: true, src: "".concat(data), autoPlay: true }) : /*#__PURE__*/(0,jsx_runtime.jsx)("video", { controls: true, src: "data:video/mp4;base64,".concat(data), autoPlay: true }) }), type === 'office' && officeData && /*#__PURE__*/(0,jsx_runtime.jsx)("iframe", { src: "".concat(officePath, "/office.html?key=").concat(officeData.key, "&url=").concat(apiServer + officeData.url, "&callbackUrl=").concat(apiServer + officeData.callbackUrl, "&fileType=").concat(officeData.fileType, "&title=").concat(officeData.title, "&model=").concat(editOffice, "&officeServer=").concat(env/* default */.Z.ONLYOFFICE, "&disabledDownload=").concat(!!disabledDownload) }), type === 'html' && /*#__PURE__*/(0,jsx_runtime.jsx)("iframe", { src: data + '&disposition=inline' }), type === 'pdf' && /*#__PURE__*/(0,jsx_runtime.jsx)("iframe", { src: "".concat(officePath, "/js/pdfview/index.html?url=").concat(data, "&disabledDownload=").concat(!!disabledDownload) }) // , type === "image" && /*#__PURE__*/(0,jsx_runtime.jsx)("img", { src: "".concat(((_data5 = data) === null || _data5 === void 0 ? void 0 : _data5.indexOf("http://")) > -1 || ((_data6 = data) === null || _data6 === void 0 ? void 0 : _data6.indexOf("https://")) > -1 ? "" : "data:image/png;base64,").concat(data) }), (type === "other" || type === "download") && /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, { children: showNodata ? /*#__PURE__*/(0,jsx_runtime.jsx)(NoData/* default */.Z, { customText: "\u5F53\u524D\u6587\u4EF6\u4E0D\u652F\u6301\u9884\u89C8\uFF0C\u53EF\u70B9\u51FB\u4E0B\u8F7D\u67E5\u770B", ButtonTwo: /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, { icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-xiazai4 font14" }), type: "primary", size: 'middle', onClick: handleClick, children: "\u4E0B\u8F7D" }) }) : /*#__PURE__*/(0,jsx_runtime.jsxs)(es_button/* default */.ZP, { type: "primary", size: 'middle', onClick: handleClick, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(ArrowDownOutlined/* default */.Z, {}), "\u70B9\u51FB\u4E0B\u8F7D"] }) })] }); }); /***/ }), /***/ 1949: /*!*********************************************************!*\ !*** ./src/components/QuestionEditor/Buttonloading.tsx ***! \*********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectSpread2.js */ 26801); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/regeneratorRuntime.js */ 10574); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/asyncToGenerator.js */ 39343); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js */ 11006); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var umi__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! umi */ 66660); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ 59301); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd */ 8591); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! antd */ 3113); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! antd */ 43418); /* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! js-base64 */ 24334); /* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(js_base64__WEBPACK_IMPORTED_MODULE_6__); /* harmony import */ var _utils_fetch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/utils/fetch */ 97174); /* harmony import */ var _pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/pages/MyProblem/service */ 1106); /* harmony import */ var _pages_MyProblem_TestCasePanel__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/pages/MyProblem/TestCasePanel */ 75051); /* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! moment */ 9498); /* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ 37712); /** * @description: 自测运行 * @param {*} * ButtonProps:按钮部分样式等参数 * ButtonText 按钮文字 * form 表单内容 * answerKey 填空字段 * items 为运行调试字段 * @return {*} */ var ButtonLoading = function ButtonLoading(_ref) { var ButtonProps = _ref.ButtonProps, ButtonText = _ref.ButtonText, form = _ref.form, answerKey = _ref.answerKey, _ref$hackidentifier = _ref.hackidentifier, hackidentifier = _ref$hackidentifier === void 0 ? "" : _ref$hackidentifier, _ref$items = _ref.items, items = _ref$items === void 0 ? {} : _ref$items; var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false), _useState2 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3___default()(_useState, 2), isloading = _useState2[0], setisloading = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(''), _useState4 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3___default()(_useState3, 2), identifier = _useState4[0], setidentifier = _useState4[1]; var param = (0,umi__WEBPACK_IMPORTED_MODULE_4__.useParams)(); var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)({}), _useState6 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3___default()(_useState5, 2), modalshow = _useState6[0], setmodalshow = _useState6[1]; var isEdit = param.type === 'edit'; var type = window.location.href.includes('problemset') ? 1 : 2; (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () { if (isEdit || hackidentifier) { setidentifier(hackidentifier || param.id); } }, [param]); (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () { return function () { sessionStorage.removeItem("projectFill"); }; }, []); function onUpdateCode(_x, _x2) { return _onUpdateCode.apply(this, arguments); } function _onUpdateCode() { _onUpdateCode = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee4(re, id) { var _stats$filter; var code, stats, codes, response; return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: code = form.getFieldValue("hack_codes"); stats = form.getFieldValue(answerKey); if (code.code) { _context4.next = 5; break; } antd__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .ZP.info('程序代码不能为空!'); return _context4.abrupt("return"); case 5: if (code.language) { _context4.next = 8; break; } antd__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .ZP.info('编程语言不能为空!'); return _context4.abrupt("return"); case 8: if (!(stats.length > 0 && ((_stats$filter = stats.filter(function (item) { return !item.answer_text; })) === null || _stats$filter === void 0 ? void 0 : _stats$filter.length) > 0)) { _context4.next = 11; break; } antd__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .ZP.info('填空项不能为空!'); return _context4.abrupt("return"); case 11: codes = code.code; if (stats.length > 0) { stats === null || stats === void 0 || stats.map(function (item) { if (item.multi_line) { codes = codes.substring(0, codes.indexOf('@▁▁@')) + item.answer_text + codes.substring(codes.indexOf('@▁▁@') + 4); } else { codes = codes.substring(0, codes.indexOf('@▁@')) + item.answer_text + codes.substring(codes.indexOf('@▁@') + 3); } }); } _context4.next = 15; return (0,_pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_8__/* .updateCode */ .n4)(id, re ? re : { code: js_base64__WEBPACK_IMPORTED_MODULE_6__.Base64.encode(codes), language: code.language }); case 15: response = _context4.sent; return _context4.abrupt("return", response); case 17: case "end": return _context4.stop(); } }, _callee4); })); return _onUpdateCode.apply(this, arguments); } function onUpdateCodes(_x3, _x4) { return _onUpdateCodes.apply(this, arguments); } function _onUpdateCodes() { _onUpdateCodes = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee5(re, id) { var _stats$filter2; var stats, codes, response; return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: stats = items.userAnswer; codes = js_base64__WEBPACK_IMPORTED_MODULE_6__.Base64.decode(items.code); debugger; if (!(stats.length > 0 && ((_stats$filter2 = stats.filter(function (item) { return !item.value; })) === null || _stats$filter2 === void 0 ? void 0 : _stats$filter2.length) > 0)) { _context5.next = 6; break; } antd__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .ZP.info('填空项不能为空!'); return _context5.abrupt("return"); case 6: if (stats.length > 0) { stats === null || stats === void 0 || stats.map(function (item) { if (item.multi_line) { codes = codes.substring(0, codes.indexOf('@▁▁@')) + item.value + codes.substring(codes.indexOf('@▁▁@') + 4); } else { codes = codes.substring(0, codes.indexOf('@▁@')) + item.value + codes.substring(codes.indexOf('@▁@') + 3); } }); } _context5.next = 9; return (0,_pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_8__/* .updateCode */ .n4)(id, re ? re : { code: js_base64__WEBPACK_IMPORTED_MODULE_6__.Base64.encode(codes), language: items.language }); case 9: response = _context5.sent; return _context5.abrupt("return", response); case 11: case "end": return _context5.stop(); } }, _callee5); })); return _onUpdateCodes.apply(this, arguments); } function getTimeStamp() { return new Date().getTime(); } return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(antd__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .ZP, _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({ loading: isloading }, ButtonProps), {}, { onClick: /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee3() { var _res, _response, executeCode, startTime, aa, res, formValues, _formValues$hack, _res2, _formValues$hack2, res1, response, _executeCode, _startTime; return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: if (!(ButtonText === '运行调试')) { _context3.next = 20; break; } setisloading(true); if (!isloading) { _context3.next = 4; break; } return _context3.abrupt("return"); case 4: _context3.next = 6; return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP)("/api/problems/".concat(identifier, "/start.json"), { method: 'get' }); case 6: _res = _context3.sent; _context3.next = 9; return onUpdateCodes(null, _res === null || _res === void 0 ? void 0 : _res.identifier); case 9: _response = _context3.sent; if (!((_response === null || _response === void 0 ? void 0 : _response.status) === 0)) { _context3.next = 18; break; } executeCode = /*#__PURE__*/function () { var _ref3 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee() { var _yield$getOperationRe, status, message, data, executeTime, isTimeOut; return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 2; return (0,_pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_8__/* .getOperationResult */ .rX)(_res === null || _res === void 0 ? void 0 : _res.identifier, 'submit'); case 2: _yield$getOperationRe = _context.sent; status = _yield$getOperationRe.status; message = _yield$getOperationRe.message; data = _yield$getOperationRe.data; executeTime = getTimeStamp(); isTimeOut = executeTime - startTime > 6 * 1000; if (status !== 0 && !isTimeOut) { setTimeout(executeCode, 1000); } if (!isTimeOut) { _context.next = 13; break; } antd__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z.error({ centered: true, okText: '知道啦', title: '调试代码超时' }); setisloading(false); return _context.abrupt("return"); case 13: if (status === 0) { setisloading(false); // let datas = await Fetch(`/api/myproblems/record_detail.json`, { // method: 'GET', // params: { // id: data?.id // } // }) setmodalshow(data); if (data.status === 2) { setisloading(false); antd__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z.error({ centered: true, okText: '知道啦', title: '调试代码超时' }); } } case 14: case "end": return _context.stop(); } }, _callee); })); return function executeCode() { return _ref3.apply(this, arguments); }; }(); startTime = getTimeStamp(); _context3.next = 15; return (0,_pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_8__/* .sumbitCode */ .bM)(_res === null || _res === void 0 ? void 0 : _res.identifier, {}); case 15: executeCode(); _context3.next = 19; break; case 18: setisloading(false); case 19: return _context3.abrupt("return"); case 20: aa = true; _context3.next = 23; return form.validateFields().then(function () { aa = false; }, function (errInfo) { var _errInfo$errorFields, _errInfo$errorFields2; if (errInfo.errorFields[0].name.includes("standard_answers")) { antd__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .ZP.error("填空项答案不能为空"); } else { antd__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .ZP.error(errInfo.errorFields[0].errors[0]); } if (((_errInfo$errorFields = errInfo.errorFields) === null || _errInfo$errorFields === void 0 ? void 0 : _errInfo$errorFields.length) === 0) { aa = false; } form.scrollToField(errInfo === null || errInfo === void 0 || (_errInfo$errorFields2 = errInfo.errorFields) === null || _errInfo$errorFields2 === void 0 || (_errInfo$errorFields2 = _errInfo$errorFields2[0]) === null || _errInfo$errorFields2 === void 0 ? void 0 : _errInfo$errorFields2.name, { behavior: 'smooth', block: 'center' }); aa = true; }); case 23: if (!aa) { _context3.next = 25; break; } return _context3.abrupt("return"); case 25: setisloading(true); if (!isloading) { _context3.next = 28; break; } return _context3.abrupt("return"); case 28: res = ''; formValues = form.getFieldsValue(); if (identifier) { _context3.next = 39; break; } _context3.next = 33; return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP)("/api/problems.json", { method: 'post', body: _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, formValues), {}, { hack: _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, formValues === null || formValues === void 0 ? void 0 : formValues.hack), {}, { sub_discipline_id: formValues === null || formValues === void 0 || (_formValues$hack = formValues.hack) === null || _formValues$hack === void 0 || (_formValues$hack = _formValues$hack.sub_discipline_id) === null || _formValues$hack === void 0 ? void 0 : _formValues$hack[1], difficult: formValues.difficulty, item_banks_group_id: formValues.item_banks_group_id }), hack_codes: _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, formValues.hack_codes), {}, { code: js_base64__WEBPACK_IMPORTED_MODULE_6__.Base64.encode(formValues.hack_codes.code) }), hack_sets: [_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, formValues.hack_sets)], is_blank: true }) }); case 33: res = _context3.sent; identifier = (_res2 = res) === null || _res2 === void 0 ? void 0 : _res2.identifier; sessionStorage.projectFill = identifier; setidentifier(identifier); _context3.next = 42; break; case 39: _context3.next = 41; return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP)("/api/problems/".concat(identifier, ".json"), { method: 'put', body: _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, formValues), {}, { hack: _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, formValues === null || formValues === void 0 ? void 0 : formValues.hack), {}, { sub_discipline_id: formValues === null || formValues === void 0 || (_formValues$hack2 = formValues.hack) === null || _formValues$hack2 === void 0 || (_formValues$hack2 = _formValues$hack2.sub_discipline_id) === null || _formValues$hack2 === void 0 ? void 0 : _formValues$hack2[1], difficult: formValues.difficulty, item_banks_group_id: formValues.item_banks_group_id }), hack_codes: _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, formValues.hack_codes), {}, { code: js_base64__WEBPACK_IMPORTED_MODULE_6__.Base64.encode(formValues.hack_codes.code) }), update_hack_sets: [_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, formValues.hack_sets)], is_blank: true }) }); case 41: res = _context3.sent; case 42: _context3.next = 44; return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP)("/api/problems/".concat(identifier, "/start.json"), { method: 'get' }); case 44: res1 = _context3.sent; _context3.next = 47; return onUpdateCode(null, res1 === null || res1 === void 0 ? void 0 : res1.identifier); case 47: response = _context3.sent; if (!((response === null || response === void 0 ? void 0 : response.status) === 0)) { _context3.next = 56; break; } _executeCode = /*#__PURE__*/function () { var _ref4 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee2() { var _yield$getOperationRe2, status, message, data, executeTime, isTimeOut; return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return (0,_pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_8__/* .getOperationResult */ .rX)(res1 === null || res1 === void 0 ? void 0 : res1.identifier, 'submit'); case 2: _yield$getOperationRe2 = _context2.sent; status = _yield$getOperationRe2.status; message = _yield$getOperationRe2.message; data = _yield$getOperationRe2.data; executeTime = getTimeStamp(); isTimeOut = executeTime - _startTime > (formValues.hack.time_limit + 3) * 1000; if (status !== 0 && !isTimeOut) { setTimeout(_executeCode, 1000); } if (!isTimeOut) { _context2.next = 13; break; } antd__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z.error({ centered: true, okText: '知道啦', title: '调试代码超时' }); setisloading(false); return _context2.abrupt("return"); case 13: if (status === 0) { setisloading(false); setmodalshow(data); if (data.status === 2) { setisloading(false); antd__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z.error({ centered: true, okText: '知道啦', title: '调试代码超时' }); } } case 14: case "end": return _context2.stop(); } }, _callee2); })); return function _executeCode() { return _ref4.apply(this, arguments); }; }(); _startTime = getTimeStamp(); _context3.next = 53; return (0,_pages_MyProblem_service__WEBPACK_IMPORTED_MODULE_8__/* .sumbitCode */ .bM)(res1 === null || res1 === void 0 ? void 0 : res1.identifier, {}); case 53: _executeCode(); _context3.next = 57; break; case 56: setisloading(false); case 57: case "end": return _context3.stop(); } }, _callee3); })), children: ButtonText })), (modalshow === null || modalshow === void 0 ? void 0 : modalshow.id) && modalshow.status !== 2 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(antd__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z, { open: (modalshow === null || modalshow === void 0 ? void 0 : modalshow.id) && modalshow.status !== 2, title: "\u8FD0\u884C\u7ED3\u679C", width: 1100, footer: false, onOk: function onOk() { setmodalshow({}); }, onCancel: function onCancel() { setmodalshow({}); }, children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", { style: { maxHeight: 600, overflow: 'auto', marginBottom: 15 }, children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", { style: { marginBottom: 20, display: 'flex', justifyContent: 'space-between', fontSize: 14 }, children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("span", { style: { color: '#666666' }, children: "\u72B6\u6001" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("span", { style: { marginLeft: 12, color: modalshow.status !== 0 && '#E30000' }, children: _pages_MyProblem_TestCasePanel__WEBPACK_IMPORTED_MODULE_9__/* .ExecuteDict */ .Im[modalshow.status] })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("span", { style: { color: '#666666' }, children: "\u63D0\u4EA4\u65F6\u95F4" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("span", { style: { marginLeft: 12 }, children: moment__WEBPACK_IMPORTED_MODULE_10___default()(modalshow.created_at).format('YYYY-MM-DD HH:mm:ss') })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("span", { style: { color: '#666666' }, children: "\u8BED\u8A00" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("span", { style: { marginLeft: 12 }, children: modalshow.language })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("span", { style: { color: '#666666' }, children: "\u6267\u884C\u7528\u65F6" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("span", { style: { marginLeft: 12 }, children: [modalshow.execute_time, "ms"] })] })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_pages_MyProblem_TestCasePanel__WEBPACK_IMPORTED_MODULE_9__/* .DetailCommitOut */ .Y4, _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, modalshow))] }) })] }); }; /* harmony default export */ __webpack_exports__.Z = (ButtonLoading); /***/ }), /***/ 55523: /*!*********************************************************!*\ !*** ./src/components/RenderHtml/index.tsx + 1 modules ***! \*********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: function() { return /* binding */ RenderHtml; } }); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectSpread2.js var objectSpread2 = __webpack_require__(26801); var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/toConsumableArray.js var toConsumableArray = __webpack_require__(93923); var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/createForOfIteratorHelper.js var createForOfIteratorHelper = __webpack_require__(98190); var createForOfIteratorHelper_default = /*#__PURE__*/__webpack_require__.n(createForOfIteratorHelper); // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js var slicedToArray = __webpack_require__(11006); var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray); // EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js var _react_17_0_2_react = __webpack_require__(59301); // EXTERNAL MODULE: ./node_modules/_katex@0.11.1@katex/dist/katex.min.css var katex_min = __webpack_require__(70657); // EXTERNAL MODULE: ./node_modules/_marked@2.0.7@marked/lib/marked.js var marked = __webpack_require__(32834); var marked_default = /*#__PURE__*/__webpack_require__.n(marked); // EXTERNAL MODULE: ./node_modules/_marked@2.0.7@marked/src/helpers.js var helpers = __webpack_require__(11690); ;// CONCATENATED MODULE: ./src/utils/marked.ts function indentCodeCompensation(raw, text) { var matchIndentToCode = raw.match(/^(\s+)(?:```)/); if (matchIndentToCode === null) { return text; } var indentToCode = matchIndentToCode[1]; return text.split('\n').map(function (node) { var matchIndentInNode = node.match(/^\s+/); if (matchIndentInNode === null) { return node; } var _matchIndentInNode = slicedToArray_default()(matchIndentInNode, 1), indentInNode = _matchIndentInNode[0]; if (indentInNode.length >= indentToCode.length) { return node.slice(indentToCode.length); } return node; }).join('\n'); } //兼容之前的 ##标题式写法 var toc = []; var ctx = ["