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

907 lines
41 KiB

"use strict";
(self["webpackChunk"] = self["webpackChunk"] || []).push([[8785],{
/***/ 3921:
/*!**********************************************************!*\
!*** ./src/components/QuestionEditor/index.less?modules ***!
\**********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__) {
// extracted by mini-css-extract-plugin
/* harmony default export */ __webpack_exports__.Z = ({"wrap":"wrap___ilWvf","deleteIcon":"deleteIcon___JBDG8","keywordTag":"keywordTag___iieCb","questionTitleEditorWrap":"questionTitleEditorWrap___MHB5s","choiceWrap":"choiceWrap___QFkTc","choiceIndex":"choiceIndex___Mr2YO","judgementIndex":"judgementIndex___fUVWK","setAnswerBtn":"setAnswerBtn___Whox5","activeAnswer":"activeAnswer___fGU6Y","activeJudgementAnswer":"activeJudgementAnswer___wJv8P","actionWrapper":"actionWrapper___ERQ7k","addIcon":"addIcon___L9TE0","inputBorder":"inputBorder___Q5tRE","placeholder":"placeholder___p9sFY","blankWrapper":"blankWrapper___nC45e","blankInput":"blankInput___pEHsx","blankInputNumberWrapper":"blankInputNumberWrapper___uEHb0","addBtn":"addBtn___WR5ZI","blankIndex":"blankIndex___x9Pny","baseInputWrapper":"baseInputWrapper___eVsG7","collapseWrapper":"collapseWrapper___ZTysU","panelHeader":"panelHeader___QSN9g","open":"open___B6FU9","close":"close___QX19r","hide":"hide___mn25n"});
/***/ }),
/***/ 82520:
/*!****************************************************!*\
!*** ./src/components/tpi-code-setting/index.less ***!
\****************************************************/
/***/ (function() {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 87346:
/*!********************************************************!*\
!*** ./src/components/Knowledge/index.tsx + 1 modules ***!
\********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
N: function() { return /* binding */ Knowledge; }
});
// 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/select/index.js
var es_select = __webpack_require__(57809);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
var modal = __webpack_require__(43418);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/row/index.js
var row = __webpack_require__(95237);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/col/index.js
var col = __webpack_require__(43604);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 5 modules
var input = __webpack_require__(20008);
// 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__(64841);
;// CONCATENATED MODULE: ./src/components/Knowledge/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var Knowledgemodules = ({"wrap":"wrap___F7E3F","selectWrapper":"selectWrapper____kESB","tips":"tips___aHjQY","linkBtn":"linkBtn___uggVr","mainText":"mainText____S1I0"});
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.1@@ant-design/icons/es/icons/ExclamationCircleOutlined.js + 1 modules
var ExclamationCircleOutlined = __webpack_require__(6246);
;// CONCATENATED MODULE: ./src/components/Knowledge/index.tsx
/* provided dependency */ var React = __webpack_require__(/*! react */ 59301);
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 { Option } = es_select["default"];
const Knowledge = ({
subId,
value,
selectvalues,
disabled,
knowledgeOptions = [],
onChange = () => {
},
onAddKnowledgeFinish = () => {
}
}) => {
const addValue = (0,_react_17_0_2_react.useRef)();
const [values, setValues] = (0,_react_17_0_2_react.useState)([]);
value = value || [];
const handleChange = (e, valuesmap) => {
if (e) {
setValues([...valuesmap]);
onChange([...valuesmap]);
} else {
setValues([]);
onChange([]);
}
};
(0,_react_17_0_2_react.useEffect)(() => {
if ((selectvalues == null ? void 0 : selectvalues.length) > 0) {
setValues([...selectvalues]);
onChange([...selectvalues]);
}
}, [knowledgeOptions]);
(0,_react_17_0_2_react.useEffect)(() => {
if ((value == null ? void 0 : value.length) > 0) {
onChange([...value]);
}
}, [knowledgeOptions]);
const handleAdd = (e) => {
e.preventDefault();
addValue.current = "";
modal["default"].confirm({
centered: true,
width: 640,
okText: "\u786E\u5B9A",
cancelText: "\u53D6\u6D88",
icon: null,
title: "\u65B0\u5EFA\u77E5\u8BC6\u70B9",
className: "custom-modal-divider",
content: /* @__PURE__ */ React.createElement("div", { className: "font14" }, /* @__PURE__ */ React.createElement(row/* default */.Z, { className: "mb20" }, /* @__PURE__ */ React.createElement(col/* default */.Z, null, /* @__PURE__ */ React.createElement(ExclamationCircleOutlined/* default */.Z, { style: { color: "#FF8C29" } })), /* @__PURE__ */ React.createElement(col/* default */.Z, { className: `ml10 ${Knowledgemodules.mainText}` }, "\u65B0\u5EFA\u7684\u77E5\u8BC6\u70B9\u4EC5\u672C\u4EBA\u53EF\u89C1\uFF0C\u5E73\u53F0\u5BA1\u6838\u5217\u5165\u516C\u5F00\u77E5\u8BC6\u70B9\u540E\uFF0C\u5BF9\u6240\u6709\u7528\u6237\u53EF\u89C1\u3002", /* @__PURE__ */ React.createElement("br", null), "\u5E73\u53F0\u6709\u6743\u5220\u9664\u4E0D\u5408\u9002\u7684\u77E5\u8BC6\u70B9\uFF0C\u8BF7\u8BA4\u771F\u586B\u5199\u77E5\u8BC6\u70B9\u540D\u79F0\u3002")), /* @__PURE__ */ React.createElement(
input["default"],
{
maxLength: 20,
size: "middle",
showCount: true,
placeholder: "\u8BF7\u8F93\u5165\u77E5\u8BC6\u70B9\u540D\u79F0",
defaultValue: addValue.current,
onChange: (e2) => {
addValue.current = e2.target.value;
}
}
)),
onOk: () => {
return new Promise((resolve, reject) => __async(void 0, null, function* () {
if (!addValue.current) {
message/* default */.ZP.warning("\u8BF7\u8F93\u5165\u77E5\u8BC6\u70B9\u540D\u79F0");
return reject();
}
if (addValue.current.length > 20) {
message/* default */.ZP.warning("\u8BF7\u8F93\u5165\u4E0D\u8D85\u8FC720\u5B57\u7684\u77E5\u8BC6\u70B9\u540D\u79F0");
return reject();
}
const res = yield (0,fetch/* default */.ZP)(
`/api/tag_disciplines.json`,
{
method: "post",
body: {
name: addValue.current,
sub_discipline_id: subId
}
}
);
if ((res == null ? void 0 : res.status) === 0) {
onAddKnowledgeFinish({ id: res.tag_discipline_id, name: addValue.current, type: "personal" });
let value2 = selectvalues;
value2.push(res.tag_discipline_id);
onChange([...value2]);
setValues([...value2]);
onChange([...value2]);
}
return resolve();
}));
}
});
};
return /* @__PURE__ */ React.createElement(row/* default */.Z, { wrap: false, align: "middle", className: Knowledgemodules.wrap }, /* @__PURE__ */ React.createElement(col/* default */.Z, null, /* @__PURE__ */ React.createElement(
es_select["default"],
{
mode: "multiple",
disabled: !subId || disabled,
className: Knowledgemodules.selectWrapper,
placeholder: "\u8BF7\u9009\u62E9\u77E5\u8BC6\u70B9\uFF0C\u652F\u6301\u9009\u62E9\u591A\u4E2A",
onChange: handleChange,
style: {
width: 490
},
showSearch: true,
allowClear: true,
value: values
},
knowledgeOptions == null ? void 0 : knowledgeOptions.map((item) => /* @__PURE__ */ React.createElement(Option, { key: item.id, value: item.id }, /* @__PURE__ */ React.createElement("div", { style: { display: "flex", alignItems: "center" } }, /* @__PURE__ */ React.createElement("span", { style: { overflow: "hidden", whiteSpace: "nowrap", textOverflow: "ellipsis" } }, item.name), (item == null ? void 0 : item.type) === "personal" && /* @__PURE__ */ React.createElement("div", { style: { marginLeft: "5px", border: "1px solid #24C074", color: "#24C074", padding: "0 4px", borderRadius: "2px", fontSize: "12px", height: "20px", lineHeight: "20px" } }, "\u81EA\u7528"))))
)), subId && /* @__PURE__ */ React.createElement(col/* default */.Z, { className: "ml20" }, /* @__PURE__ */ React.createElement("span", { className: Knowledgemodules.tips }, "\u6CA1\u6709\u5408\u9002\u7684\u77E5\u8BC6\u70B9\uFF1F"), /* @__PURE__ */ React.createElement("span", { className: Knowledgemodules.linkBtn, onClick: handleAdd }, "\u65B0\u5EFA\u77E5\u8BC6\u70B9")));
};
/***/ }),
/***/ 98243:
/*!**********************************************************!*\
!*** ./src/components/QuestionEditor/MdEditorInForm.tsx ***!
\**********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ h: function() { return /* binding */ MdEditorInForm; },
/* harmony export */ x: function() { return /* binding */ RegularInput; }
/* harmony export */ });
/* harmony import */ var _components_markdown_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/components/markdown-editor */ 16393);
/* harmony import */ var _index_less_modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.less?modules */ 3921);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ 59301);
/* harmony import */ var _components_RenderHtml__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/RenderHtml */ 92936);
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 __objRest = (source, exclude) => {
var target = {};
for (var prop in source)
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
target[prop] = source[prop];
if (source != null && __getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(source)) {
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
target[prop] = source[prop];
}
return target;
};
const MdEditorInForm = (_a) => {
var _b = _a, { value, onChange, scrollId } = _b, props = __objRest(_b, ["value", "onChange", "scrollId"]);
return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_2__.createElement("div", { id: scrollId || "" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_2__.createElement(
_components_markdown_editor__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z,
__spreadProps(__spreadValues({}, props), {
defaultValue: value,
onChange: (a, b) => {
console.log("a:", a, b);
if (!!(b == null ? void 0 : b.length))
onChange(a, b);
else
onChange(a);
}
})
));
};
const RegularInput = ({ value, onChange, placeholder, height = 140, isEdit }) => {
return isEdit ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_2__.createElement(
_components_markdown_editor__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z,
{
watch: true,
isFocus: true,
height,
placeholder,
defaultValue: value,
onChange
}
) : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_2__.createElement("div", { style: { cursor: "pointer" } }, value ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_2__.createElement(_components_RenderHtml__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.inputBorder, value }) : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_2__.createElement("div", { className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.inputBorder} ${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.placeholder}` }, placeholder));
};
/***/ }),
/***/ 40004:
/*!*********************************************************!*\
!*** ./src/components/tpi-code-setting/CodeSetting.tsx ***!
\*********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.less */ 82520);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd */ 57809);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd */ 78673);
/* provided dependency */ var React = __webpack_require__(/*! react */ 59301);
const Option = antd__WEBPACK_IMPORTED_MODULE_1__["default"].Option;
/* harmony default export */ __webpack_exports__.Z = (({
isTheoretical,
onFontSizeChange,
cmFontSize,
cmCodeMode,
autoFormat,
onCodeModeChange,
onTabToSpace,
onAutoFormat,
formatDocument,
className = "",
tabToSpace,
children,
code_editor,
challenge
}) => {
const difficultyDesc = {
1: "\u7B80\u5355",
2: "\u4E2D\u7B49",
3: "\u56F0\u96BE"
};
return /* @__PURE__ */ React.createElement("div", { className: `tpi-code-setting ${className}` }, /* @__PURE__ */ React.createElement("h3", null, "\u4EE3\u7801\u683C\u5F0F"), /* @__PURE__ */ React.createElement("section", null, /* @__PURE__ */ React.createElement("div", { className: "file-item" }, /* @__PURE__ */ React.createElement("b", null, "\u663E\u793A\u6A21\u5F0F"), /* @__PURE__ */ React.createElement(
antd__WEBPACK_IMPORTED_MODULE_1__["default"],
{
bordered: false,
size: "small",
value: cmCodeMode,
onChange: onCodeModeChange
},
/* @__PURE__ */ React.createElement(Option, { value: "vs" }, "\u767D\u8272\u80CC\u666F"),
/* @__PURE__ */ React.createElement(Option, { value: "vs-dark" }, "\u9ED1\u8272\u80CC\u666F")
)), !isTheoretical && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: "file-item" }, /* @__PURE__ */ React.createElement("b", null, "\u5B57\u4F53\u5927\u5C0F"), /* @__PURE__ */ React.createElement(
antd__WEBPACK_IMPORTED_MODULE_1__["default"],
{
bordered: false,
size: "small",
value: cmFontSize,
onChange: onFontSizeChange
},
/* @__PURE__ */ React.createElement(Option, { value: 12 }, "12px"),
/* @__PURE__ */ React.createElement(Option, { value: 14 }, "14px"),
/* @__PURE__ */ React.createElement(Option, { value: 16 }, "16px"),
/* @__PURE__ */ React.createElement(Option, { value: 18 }, "18px"),
/* @__PURE__ */ React.createElement(Option, { value: 20 }, "20px"),
/* @__PURE__ */ React.createElement(Option, { value: 22 }, "22px")
)), /* @__PURE__ */ React.createElement("div", { className: "file-item" }, /* @__PURE__ */ React.createElement("b", null, "Tab\u8F6C\u6362"), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { checked: tabToSpace, onChange: onTabToSpace })), /* @__PURE__ */ React.createElement("div", { className: "file-item", onClick: formatDocument }, /* @__PURE__ */ React.createElement("b", { style: { cursor: "pointer" } }, "\u683C\u5F0F\u5316\u4EE3\u7801")))), !isTheoretical && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("h3", null, "\u5FEB\u6377\u952E"), /* @__PURE__ */ React.createElement("section", null, /* @__PURE__ */ React.createElement("div", { className: "file-item" }, /* @__PURE__ */ React.createElement("b", null, "\u4FDD\u5B58\u4EE3\u7801"), /* @__PURE__ */ React.createElement("span", null, "Ctrl + S")), /* @__PURE__ */ React.createElement("div", { className: "file-item" }, /* @__PURE__ */ React.createElement("b", null, "\u5524\u51FA\u5FEB\u6377\u952E\u5217\u8868"), /* @__PURE__ */ React.createElement("span", null, "F1 / Alt + F1")), /* @__PURE__ */ React.createElement("div", { className: "file-item" }, /* @__PURE__ */ React.createElement("b", null, "\u5DE6\u53F3\u7F29\u8FDB"), /* @__PURE__ */ React.createElement("span", null, "Ctrl + ]/[")), /* @__PURE__ */ React.createElement("div", { className: "file-item" }, /* @__PURE__ */ React.createElement("b", null, "\u8DF3\u5230\u5339\u914D\u7684\u62EC\u53F7"), /* @__PURE__ */ React.createElement("span", null, "Ctrl + Shift + \\")), /* @__PURE__ */ React.createElement("div", { className: "file-item" }, /* @__PURE__ */ React.createElement("b", null, "\u8F6C\u5230\u884C\u9996"), /* @__PURE__ */ React.createElement("span", null, "Home")), /* @__PURE__ */ React.createElement("div", { className: "file-item" }, /* @__PURE__ */ React.createElement("b", null, "\u8F6C\u5230\u884C\u5C3E"), /* @__PURE__ */ React.createElement("span", null, "End"))), children), !isTheoretical && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("h3", null, "\u5FEB\u6377\u952E"), /* @__PURE__ */ React.createElement("section", null, /* @__PURE__ */ React.createElement("div", { className: "file-item" }, /* @__PURE__ */ React.createElement("b", null, "\u5B9E\u8BAD\u96BE\u6613\u5EA6"), /* @__PURE__ */ React.createElement("span", null, difficultyDesc[challenge == null ? void 0 : challenge.difficulty])), /* @__PURE__ */ React.createElement("div", { className: "file-item" }, /* @__PURE__ */ React.createElement("b", null, "\u5B9E\u9A8C\u73AF\u5883"), /* @__PURE__ */ React.createElement("span", null, code_editor == null ? void 0 : code_editor.name)), /* @__PURE__ */ React.createElement("div", { className: "file-item" }, /* @__PURE__ */ React.createElement("b", null, "\u5B9E\u9A8C\u5BB9\u5668\u7F51\u7EDC"), /* @__PURE__ */ React.createElement("span", null, (code_editor == null ? void 0 : code_editor.close_internet) ? "\u5173\u95ED\u5916\u7F51" : "\u5F00\u542F\u5916\u7F51")))));
});
/***/ }),
/***/ 48458:
/*!*******************************************************************!*\
!*** ./src/pages/Problems/OjForm/CodePanel/index.tsx + 1 modules ***!
\*******************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ CodePanel; }
});
// 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/drawer/index.js + 9 modules
var drawer = __webpack_require__(43428);
// EXTERNAL MODULE: ./src/components/monaco-editor/index.jsx + 4 modules
var monaco_editor = __webpack_require__(16162);
// EXTERNAL MODULE: ./src/components/modal.tsx
var modal = __webpack_require__(9805);
// EXTERNAL MODULE: ./src/utils/urlTool.ts
var urlTool = __webpack_require__(23930);
;// CONCATENATED MODULE: ./src/pages/Problems/OjForm/CodePanel/index.less
// extracted by mini-css-extract-plugin
// EXTERNAL MODULE: ./src/components/tpi-code-setting/CodeSetting.tsx
var CodeSetting = __webpack_require__(40004);
;// CONCATENATED MODULE: ./src/pages/Problems/OjForm/CodePanel/index.tsx
/* provided dependency */ var React = __webpack_require__(/*! react */ 59301);
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));
const initialState = {
theme: (0,urlTool/* fromStore */.G)("cmCodeMode", "vs-dark"),
fontSize: (0,urlTool/* fromStore */.G)("cmFontSize", 14),
showEditorSetting: false,
tabToSpace: (0,urlTool/* fromStore */.G)("cmTabToSpace", true)
};
var Types = /* @__PURE__ */ ((Types2) => {
Types2[Types2["set_font_size"] = 0] = "set_font_size";
Types2[Types2["set_theme"] = 1] = "set_theme";
Types2[Types2["on_tab_to_space"] = 2] = "on_tab_to_space";
Types2[Types2["set_show_editor_setting"] = 3] = "set_show_editor_setting";
return Types2;
})(Types || {});
function reducer(state, action) {
switch (action.type) {
case 3 /* set_show_editor_setting */:
return __spreadProps(__spreadValues({}, state), { showEditorSetting: action.payload });
case 1 /* set_theme */:
return __spreadProps(__spreadValues({}, state), { theme: action.payload });
case 0 /* set_font_size */:
return __spreadProps(__spreadValues({}, state), { fontSize: action.payload });
case 2 /* on_tab_to_space */:
return __spreadProps(__spreadValues({}, state), { tabToSpace: action.payload });
default:
throw new Error();
}
}
/* harmony default export */ var CodePanel = (({ isLoading, value, onChange, language, onUpdateCode, ActionBarRender = (onShowCodeSetting) => {
return /* @__PURE__ */ React.createElement(DefaultActionBar, { onShowCodeSetting });
} }) => {
const [state, dispatch] = (0,_react_17_0_2_react.useReducer)(reducer, initialState);
const { theme, fontSize, showEditorSetting, tabToSpace } = state;
const timeRef = (0,_react_17_0_2_react.useRef)();
const valueRef = (0,_react_17_0_2_react.useRef)();
const codeSettingOption = {
onFontSizeChange: (val) => {
dispatch({
type: 0 /* set_font_size */,
payload: val
});
(0,urlTool/* toStore */.t)("cmFontSize", val);
},
tabToSpace,
cmFontSize: fontSize,
className: "oj",
cmCodeMode: theme,
onTabToSpace: (checked) => {
dispatch({
type: 2 /* on_tab_to_space */,
payload: checked
});
(0,urlTool/* toStore */.t)("cmTabToSpace", checked);
},
onCodeModeChange: (val) => {
dispatch({
type: 1 /* set_theme */,
payload: val
});
(0,urlTool/* toStore */.t)("cmCodeMode", val);
}
};
function onHideCodeSetting() {
dispatch({
type: 3 /* set_show_editor_setting */,
payload: false
});
}
function onShowCodeSetting() {
dispatch({
type: 3 /* set_show_editor_setting */,
payload: true
});
}
const editorOption = {
value,
language,
// onChange,
theme,
height: "calc(100% - 56px)",
options: {
fontSize,
insertSpaces: tabToSpace
},
onChange: (value2) => {
onChange(value2);
valueRef.current = value2;
clearTimeout(timeRef.current);
timeRef.current = setTimeout(() => {
onUpdateCode(valueRef.current);
}, 1e4);
},
onEditBlur: (value2) => {
if (!!valueRef.current)
onUpdateCode(valueRef.current);
}
};
return /* @__PURE__ */ React.createElement(_react_17_0_2_react.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: "code-panel-container" }, ActionBarRender(onShowCodeSetting), !isLoading && /* @__PURE__ */ React.createElement(monaco_editor/* default */.ZP, __spreadValues({}, editorOption))), /* @__PURE__ */ React.createElement(modal/* default */.Z, null, /* @__PURE__ */ React.createElement(
drawer/* default */.Z,
{
rootClassName: "oj",
title: null,
placement: "right",
closable: false,
open: showEditorSetting,
onClose: onHideCodeSetting
},
/* @__PURE__ */ React.createElement(CodeSetting/* default */.Z, __spreadValues({}, codeSettingOption))
)));
});
function DefaultActionBar({ onShowCodeSetting }) {
return /* @__PURE__ */ React.createElement("div", { className: "action-bar" }, /* @__PURE__ */ React.createElement("span", null, "\u5B66\u5458\u521D\u59CB\u4EE3\u7801\u6587\u4EF6"), /* @__PURE__ */ React.createElement("a", { onClick: onShowCodeSetting }, /* @__PURE__ */ React.createElement("i", { className: "iconfont icon-shezhi" })));
}
/***/ }),
/***/ 52604:
/*!**************************************************************************!*\
!*** ./src/pages/Problems/OjForm/CodeProgramPanel/index.tsx + 1 modules ***!
\**************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ CodeProgramPanel; }
});
// 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/drawer/index.js + 9 modules
var drawer = __webpack_require__(43428);
// EXTERNAL MODULE: ./src/components/monaco-editor/index.jsx + 4 modules
var monaco_editor = __webpack_require__(16162);
// EXTERNAL MODULE: ./src/components/tpi-code-setting/CodeSetting.tsx
var CodeSetting = __webpack_require__(40004);
// EXTERNAL MODULE: ./src/components/modal.tsx
var modal = __webpack_require__(9805);
// EXTERNAL MODULE: ./src/utils/urlTool.ts
var urlTool = __webpack_require__(23930);
;// CONCATENATED MODULE: ./src/pages/Problems/OjForm/CodeProgramPanel/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var CodeProgramPanelmodules = ({"code-panel-container":"code-panel-container___RFtv_","action-oj-bar":"action-oj-bar___ByFmZ","active":"active___s9gT5"});
// EXTERNAL MODULE: ./node_modules/_lodash@4.17.21@lodash/lodash.js
var lodash = __webpack_require__(89392);
;// CONCATENATED MODULE: ./src/pages/Problems/OjForm/CodeProgramPanel/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));
const initialState = {
theme: (0,urlTool/* fromStore */.G)("cmCodeMode", "vs-dark"),
fontSize: (0,urlTool/* fromStore */.G)("cmFontSize", 14),
showEditorSetting: false,
tabToSpace: (0,urlTool/* fromStore */.G)("cmTabToSpace", true)
};
var Types = /* @__PURE__ */ ((Types2) => {
Types2[Types2["set_font_size"] = 0] = "set_font_size";
Types2[Types2["set_theme"] = 1] = "set_theme";
Types2[Types2["on_tab_to_space"] = 2] = "on_tab_to_space";
Types2[Types2["set_show_editor_setting"] = 3] = "set_show_editor_setting";
return Types2;
})(Types || {});
function reducer(state, action) {
switch (action.type) {
case 3 /* set_show_editor_setting */:
return __spreadProps(__spreadValues({}, state), { showEditorSetting: action.payload });
case 1 /* set_theme */:
return __spreadProps(__spreadValues({}, state), { theme: action.payload });
case 0 /* set_font_size */:
return __spreadProps(__spreadValues({}, state), { fontSize: action.payload });
case 2 /* on_tab_to_space */:
return __spreadProps(__spreadValues({}, state), { tabToSpace: action.payload });
default:
throw new Error();
}
}
/* harmony default export */ var CodeProgramPanel = (({ isLoading, value = [], onChange }) => {
var _a;
const [state, dispatch] = (0,_react_17_0_2_react.useReducer)(reducer, initialState);
const { theme, fontSize, showEditorSetting, tabToSpace } = state;
const [language, setLanguage] = (0,_react_17_0_2_react.useState)("c");
const saveLanguageItems = (0,_react_17_0_2_react.useRef)([]);
(0,_react_17_0_2_react.useEffect)(() => {
if (!!(value == null ? void 0 : value.length)) {
saveLanguageItems.current = (0,lodash.cloneDeep)(value);
}
}, [value]);
const codeSettingOption = {
onFontSizeChange: (val) => {
dispatch({
type: 0 /* set_font_size */,
payload: val
});
(0,urlTool/* toStore */.t)("cmFontSize", val);
},
tabToSpace,
cmFontSize: fontSize,
className: "oj",
cmCodeMode: theme,
onTabToSpace: (checked) => {
dispatch({
type: 2 /* on_tab_to_space */,
payload: checked
});
(0,urlTool/* toStore */.t)("cmTabToSpace", checked);
},
onCodeModeChange: (val) => {
dispatch({
type: 1 /* set_theme */,
payload: val
});
(0,urlTool/* toStore */.t)("cmCodeMode", val);
}
};
function onHideCodeSetting() {
dispatch({
type: 3 /* set_show_editor_setting */,
payload: false
});
}
function onShowCodeSetting() {
dispatch({
type: 3 /* set_show_editor_setting */,
payload: true
});
}
function onCodeChange(v) {
var _a2;
const item = (_a2 = saveLanguageItems.current) == null ? void 0 : _a2.map((e) => {
if (e.language === language) {
e.code = v;
return e;
}
return e;
});
saveLanguageItems.current = (0,lodash.cloneDeep)(item);
onChange(item);
}
const editorOption = {
key: language,
value: (_a = value == null ? void 0 : value.find((e) => e.language === language)) == null ? void 0 : _a.code,
language,
onChange: onCodeChange,
theme,
height: "calc(100% - 56px)",
options: {
fontSize,
insertSpaces: tabToSpace
}
};
return /* @__PURE__ */ _react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: CodeProgramPanelmodules["code-panel-container"] }, /* @__PURE__ */ _react_17_0_2_react.createElement(DefaultActionBar, { languageItems: value, onLanguage: (v) => setLanguage(v), language, onShowCodeSetting }), !isLoading && /* @__PURE__ */ _react_17_0_2_react.createElement(monaco_editor/* default */.ZP, __spreadValues({}, editorOption))), /* @__PURE__ */ _react_17_0_2_react.createElement(modal/* default */.Z, null, /* @__PURE__ */ _react_17_0_2_react.createElement(
drawer/* default */.Z,
{
rootClassName: "oj",
title: null,
placement: "right",
closable: false,
open: showEditorSetting,
onClose: onHideCodeSetting
},
/* @__PURE__ */ _react_17_0_2_react.createElement(CodeSetting/* default */.Z, __spreadValues({}, codeSettingOption))
)));
});
function DefaultActionBar({ languageItems, language, onShowCodeSetting, onLanguage }) {
return /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: CodeProgramPanelmodules["action-oj-bar"] }, /* @__PURE__ */ _react_17_0_2_react.createElement("span", null, "\u5B66\u5458\u521D\u59CB\u4EE3\u7801\u6587\u4EF6"), languageItems == null ? void 0 : languageItems.map((e) => {
return /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: language === (e == null ? void 0 : e.language) ? CodeProgramPanelmodules.active : "", onClick: () => onLanguage(e == null ? void 0 : e.language), key: e == null ? void 0 : e.language }, e == null ? void 0 : e.language);
}), /* @__PURE__ */ _react_17_0_2_react.createElement("a", { onClick: onShowCodeSetting }, /* @__PURE__ */ _react_17_0_2_react.createElement("i", { className: "iconfont icon-shezhi" })));
}
/***/ }),
/***/ 25842:
/*!**********************************************!*\
!*** ./src/pages/Problems/OjForm/service.ts ***!
\**********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ GM: function() { return /* binding */ updateExerciseQuestion; },
/* harmony export */ MK: function() { return /* binding */ addExerciseQuestion; },
/* harmony export */ PR: function() { return /* binding */ getUser; },
/* harmony export */ ZS: function() { return /* binding */ cancelPublishProgrammingTopic; },
/* harmony export */ d1: function() { return /* binding */ getDisciplines; },
/* harmony export */ fu: function() { return /* binding */ getProgrammingTopic; },
/* harmony export */ j2: function() { return /* binding */ publishProgrammingTopic; },
/* harmony export */ l_: function() { return /* binding */ updateProgrammingTopic; },
/* harmony export */ uE: function() { return /* binding */ startChallenge; },
/* harmony export */ zQ: function() { return /* binding */ addProgrammingTopic; }
/* harmony export */ });
/* unused harmony export addTag */
/* harmony import */ var _utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils/fetch.ts */ 64841);
function getUser() {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .get */ .U2)("problems/new.json");
}
function getDisciplines(source = "question") {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .get */ .U2)(`disciplines.json`, { source });
}
function getProgrammingTopic(id) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .get */ .U2)(`problems/${id}/edit.json`);
}
function updateProgrammingTopic(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .put */ .gz)(`problems/${id}.json`, params);
}
function addProgrammingTopic(params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)(`problems.json`, params);
}
function addExerciseQuestion(exerciseId, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)(`exercises/${exerciseId}/exercise_questions.json`, params);
}
function updateExerciseQuestion(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .put */ .gz)(`exercise_questions/${id}.json`, params);
}
function publishProgrammingTopic(id) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)(`problems/${id}/publish.json`);
}
function cancelPublishProgrammingTopic(id) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)(`problems/${id}/cancel_publish.json`);
}
function startChallenge(id) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_0__/* .get */ .U2)(`problems/${id}/start.json`);
}
function addTag(sub_discipline_id, name) {
return post(`tag_disciplines.json`, {
name,
sub_discipline_id
});
}
/***/ }),
/***/ 4309:
/*!********************************************!*\
!*** ./src/pages/Problems/OjForm/util.tsx ***!
\********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ D0: function() { return /* binding */ getDisciplineOptions; },
/* harmony export */ R8: function() { return /* binding */ Keys; },
/* harmony export */ jw: function() { return /* binding */ getSelectOptions; },
/* harmony export */ y3: function() { return /* binding */ getDisciplineIds; }
/* harmony export */ });
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd */ 57809);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301);
const { Option } = antd__WEBPACK_IMPORTED_MODULE_1__["default"];
var Keys = /* @__PURE__ */ ((Keys2) => {
Keys2[Keys2["language"] = 0] = "language";
Keys2[Keys2["difficult"] = 1] = "difficult";
Keys2[Keys2["category"] = 2] = "category";
Keys2[Keys2["openOrNot"] = 3] = "openOrNot";
return Keys2;
})(Keys || {});
const Options = {
[0 /* language */]: [
{ title: "C", key: "C" },
{ title: "C++", key: "C++" },
{ title: "Python", key: "Python" },
{ title: "Java", key: "Java" },
{ title: "JavaScript", key: "JavaScript" },
{ title: "Ruby", key: "Ruby" }
],
[1 /* difficult */]: [
{ title: "\u7B80\u5355", key: 1 },
{ title: "\u4E2D\u7B49", key: 2 },
{ title: "\u56F0\u96BE", key: 3 }
],
[2 /* category */]: [
{ title: "\u7A0B\u5E8F\u8BBE\u8BA1", key: 1 },
{ title: "\u7B97\u6CD5", key: 2 }
],
[3 /* openOrNot */]: [
{ title: "\u516C\u5F00", key: 1 },
{ title: "\u79C1\u6709", key: 0 }
]
};
function getSelectOptions(name) {
return Options[name].map((item) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Option, { key: item.title, value: item.key }, " ", item.title, " "));
}
function getDisciplineOptions(data, result) {
data.map((value) => {
const { id, name, sub_disciplines } = value;
let item = {
value: id,
label: name
};
result.push(item);
if (sub_disciplines && sub_disciplines.length > 0) {
item.children = [];
getDisciplineOptions(sub_disciplines, item.children);
}
});
}
function getDisciplineIds(data, sub_disciplines_id) {
var _a;
let rs = [];
for (let index = 0; index < data.length; index++) {
const value = data[index];
if (((_a = value.sub_disciplines) == null ? void 0 : _a.length) > 0) {
rs[0] = value.id;
for (let j = 0; j < value.sub_disciplines.length; j++) {
const item = value.sub_disciplines[j];
if (item.id === sub_disciplines_id) {
rs[1] = item.id;
return [rs, item.tag_disciplines || item.sub_disciplines || []];
}
}
}
}
return [rs, []];
}
/***/ }),
/***/ 47464:
/*!***************************!*\
!*** ./src/utils/enum.ts ***!
\***************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ c: function() { return /* binding */ QuestionType; }
/* harmony export */ });
/* unused harmony export PageType */
var PageType = /* @__PURE__ */ ((PageType2) => {
PageType2["FirstPage"] = "firstPage";
PageType2["PrevPage"] = "prevPage";
PageType2["NextPage"] = "nextPage";
return PageType2;
})(PageType || {});
var QuestionType = /* @__PURE__ */ ((QuestionType2) => {
QuestionType2[QuestionType2["Single"] = 0] = "Single";
QuestionType2[QuestionType2["Multiple"] = 1] = "Multiple";
QuestionType2[QuestionType2["Judge"] = 2] = "Judge";
QuestionType2[QuestionType2["Fill"] = 3] = "Fill";
QuestionType2[QuestionType2["Subjective"] = 4] = "Subjective";
QuestionType2[QuestionType2["Shixun"] = 5] = "Shixun";
QuestionType2[QuestionType2["Program"] = 6] = "Program";
QuestionType2[QuestionType2["Combine"] = 7] = "Combine";
return QuestionType2;
})(QuestionType || {});
/***/ }),
/***/ 23930:
/*!******************************!*\
!*** ./src/utils/urlTool.ts ***!
\******************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ G: function() { return /* binding */ fromStore; },
/* harmony export */ t: function() { return /* binding */ toStore; }
/* harmony export */ });
/* harmony import */ var store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! store */ 7062);
/* harmony import */ var store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(store__WEBPACK_IMPORTED_MODULE_0__);
const isDev = (/* unused pure expression or super */ null && ("production" === "development"));
function toStore(key, val) {
let _config = store__WEBPACK_IMPORTED_MODULE_0___default().get("__ec");
if (!_config)
_config = {};
_config[key] = val;
store__WEBPACK_IMPORTED_MODULE_0___default().set("__ec", _config);
}
function fromStore(key, defaultVal) {
let _config = store__WEBPACK_IMPORTED_MODULE_0___default().get("__ec");
if (!_config)
return defaultVal;
return _config[key] === void 0 ? defaultVal : _config[key];
}
/***/ })
}]);