"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[86913,67570],{ /***/ 96403: /*!*********************************!*\ !*** ./src/pages/tasks/util.js ***! \*********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* 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 */ 59758); 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"].API_SERVER */ .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'; /***/ }), /***/ 76695: /*!*************************************************************!*\ !*** ./src/components/SplitContainer/index.tsx + 1 modules ***! \*************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { "Z": function() { return /* binding */ SplitContainer; } }); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js var slicedToArray = __webpack_require__(27424); var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray); // EXTERNAL MODULE: ./node_modules/react/index.js var react = __webpack_require__(67294); ;// CONCATENATED MODULE: ./src/components/SplitContainer/index.less // extracted by mini-css-extract-plugin // EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js var jsx_runtime = __webpack_require__(85893); ;// CONCATENATED MODULE: ./src/components/SplitContainer/index.tsx /* harmony default export */ var SplitContainer = (function (_ref) { var _ref$defaultX = _ref.defaultX, defaultX = _ref$defaultX === void 0 ? '40%' : _ref$defaultX, leftChild = _ref.leftChild, rightChild = _ref.rightChild, className = _ref.className, _ref$hideResize = _ref.hideResize, hideResize = _ref$hideResize === void 0 ? false : _ref$hideResize; var _useState = (0,react.useState)(defaultX), _useState2 = slicedToArray_default()(_useState, 2), moveX = _useState2[0], setMoveX = _useState2[1]; var resizeXFlag = (0,react.useRef)(); function onResizeStart() { resizeXFlag.current = true; } (0,react.useEffect)(function () { function onMove(e) { if (resizeXFlag.current) { setMoveX(e.pageX); } } function onMouseUp() { resizeXFlag.current = false; } window.addEventListener('mousemove', onMove); window.addEventListener('mouseup', onMouseUp); return function () { window.removeEventListener('mousemove', onMove); window.removeEventListener('mouseup', onMouseUp); }; }, []); var leftPanelWidth = typeof moveX === 'number' && moveX !== 0.01 ? "".concat(moveX, "px") : defaultX; var rightPanelWidth = "calc(100% - ".concat(hideResize ? "0px" : "4px", " - ").concat(leftPanelWidth, ")"); return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "split-panel-container ".concat(className), children: [/*#__PURE__*/(0,jsx_runtime.jsx)("section", { style: { width: leftPanelWidth, display: moveX === 0.01 ? 'none' : '' }, children: leftChild }), /*#__PURE__*/(0,jsx_runtime.jsx)("section", { className: "resize-x-bar", onMouseDown: onResizeStart, children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", { className: "btn-resize", children: /*#__PURE__*/(0,jsx_runtime.jsx)("svg", { width: "16", height: "13", viewBox: "0 0 16 13", children: /*#__PURE__*/(0,jsx_runtime.jsx)("path", { d: "M12.245 7.53H5.647v1.882h6.598v2.823L16 8.471l-3.755-3.765V7.53zM10.353 4.706H3.755v2.823L0 3.765 3.755 0v2.824h6.598v1.882z" }) }) }) }), /*#__PURE__*/(0,jsx_runtime.jsx)("section", { style: { width: rightPanelWidth }, children: rightChild })] }); }); /***/ }), /***/ 97501: /*!*************************************************************!*\ !*** ./src/components/markdown-editor/code-block/index.tsx ***! \*************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "h": function() { return /* binding */ MyCodeMirror; } /* harmony export */ }); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/objectSpread2.js */ 42122); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var antd_es_button_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/button/style */ 29913); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/button */ 71577); /* harmony import */ var antd_es_form_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/form/style */ 75627); /* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! antd/es/form */ 51018); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray.js */ 27424); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var antd_es_select_style__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/select/style */ 95985); /* harmony import */ var antd_es_select__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/select */ 34041); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ 67294); /* harmony import */ var codemirror__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! codemirror */ 4631); /* harmony import */ var codemirror__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(codemirror__WEBPACK_IMPORTED_MODULE_6__); /* harmony import */ var codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! codemirror/lib/codemirror.css */ 71749); /* harmony import */ var codemirror_theme_blackboard_css__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! codemirror/theme/blackboard.css */ 30483); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ 85893); var Option = antd_es_select__WEBPACK_IMPORTED_MODULE_10__/* ["default"].Option */ .Z.Option; //https://github.com/codemirror/CodeMirror/issues/4838 var formItemLayout = { labelCol: { span: 4 }, wrapperCol: { span: 20 } }; var LanguageDesc = { asp: ['ASP', 'vbscript'], actionscript: ['ActionScript(3.0)/Flash/Flex', 'clike'], bash: ['Bash/Bat', 'shell'], css: ['CSS', 'css'], c: ['C', 'clike'], cpp: ['C++', 'clike'], csharp: ['C#', 'clike'], coffeescript: ['CoffeeScript', 'coffeescript'], d: ['D', 'd'], dart: ['Dart', 'dart'], delphi: ['Delphi/Pascal', 'pascal'], erlang: ['Erlang', 'erlang'], go: ['Golang', 'go'], groovy: ['Groovy', 'groovy'], html: ['HTML', 'text/html'], java: ['Java', 'clike'], json: ['JSON', 'text/json'], javascript: ['Javascript', 'javascript'], lua: ['Lua', 'lua'], less: ['LESS', 'css'], markdown: ['Markdown', 'gfm'], 'objective-c': ['Objective-C', 'clike'], php: ['PHP', 'php'], perl: ['Perl', 'perl'], python: ['Python', 'python'], r: ['R', 'r'], rst: ['reStructedText', 'rst'], ruby: ['Ruby', 'ruby'], sql: ['SQL', 'sql'], sass: ['SASS/SCSS', 'sass'], shell: ['Shell', 'shell'], scala: ['Scala', 'clike'], swift: ['Swift', 'clike'], vb: ['VB/VBScript', 'vb'], xml: ['XML', 'text/xml'], yaml: ['YAML', 'yaml'] }; /* harmony default export */ __webpack_exports__["Z"] = (function (_ref) { var callback = _ref.callback, onCancel = _ref.onCancel; var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)('python'), _useState2 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3___default()(_useState, 2), mode = _useState2[0], setMode = _useState2[1]; function onSetMode(value) { setMode(LanguageDesc[value][1]); } function onSubmit(values) { callback(values); } return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(antd_es_form__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, formItemLayout), {}, { className: "code-block-panel", initialValues: { language: 'python', content: '' }, onFinish: onSubmit, children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(antd_es_form__WEBPACK_IMPORTED_MODULE_11__/* ["default"].Item */ .Z.Item, { label: "\u4EE3\u7801\u8BED\u8A00", name: "language", children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(antd_es_select__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, { getPopupContainer: function getPopupContainer(trigger) { return trigger.parentNode; }, onChange: onSetMode, children: Object.keys(LanguageDesc).map(function (item) { return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(Option, { value: item, children: LanguageDesc[item][0] }, item); }) }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(antd_es_form__WEBPACK_IMPORTED_MODULE_11__/* ["default"].Item */ .Z.Item, { label: "\u4EE3\u7801\u5185\u5BB9", name: "content", rules: [{ required: true, message: '请输入代码内容' }], children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(MyCodeMirror, { mode: mode }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", { className: "flex-container flex-end", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(antd_es_button__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, { type: "primary", htmlType: "submit", style: { marginRight: 10 }, children: "\u786E\u5B9A" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(antd_es_button__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, { type: "ghost", onClick: onCancel, children: "\u53D6\u6D88" })] })] })); }); function MyCodeMirror(_ref2) { var value = _ref2.value, onChange = _ref2.onChange, mode = _ref2.mode, _ref2$options = _ref2.options, options = _ref2$options === void 0 ? {} : _ref2$options; var el = (0,react__WEBPACK_IMPORTED_MODULE_5__.useRef)(); var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(), _useState4 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3___default()(_useState3, 2), cm = _useState4[0], setCm = _useState4[1]; (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () { if (cm) { var onChangeHandler = function onChangeHandler(cm) { var content = cm.getValue(); onChange && onChange(content); }; cm.on('change', onChangeHandler); return function () { cm.off('change', onChangeHandler); }; } }, [cm, onChange]); (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () { if (cm) { cm.setOption('mode', mode); } }, [cm, mode]); (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () { if (cm) { if (value !== cm.getValue() || value === '') { setTimeout(function () { cm.setValue(value || ''); }, 300); } } }, [cm, value]); (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () { if (el.current && !cm) { var instance = codemirror__WEBPACK_IMPORTED_MODULE_6___default().fromTextArea(el.current, _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({ mode: mode, lineNumbers: true, lineWrapping: true, autoCloseBrackets: true, tabSize: 4, autofocus: true, autoCloseTags: true, matchBrackets: true, styleActiveLine: true }, options)); setCm(instance); } }, [el.current, cm]); return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { className: "my-codemirror-container", children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("textarea", { ref: el }) }); } /***/ }), /***/ 55373: /*!***************************************************************!*\ !*** ./src/components/markdown-editor/index.tsx + 10 modules ***! \***************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { "Z": function() { return /* binding */ markdown_editor; } }); // EXTERNAL MODULE: ./node_modules/antd/es/modal/style/index.js + 1 modules var style = __webpack_require__(35611); // EXTERNAL MODULE: ./node_modules/antd/es/modal/index.js + 7 modules var modal = __webpack_require__(85402); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js var createForOfIteratorHelper = __webpack_require__(74704); var createForOfIteratorHelper_default = /*#__PURE__*/__webpack_require__.n(createForOfIteratorHelper); // EXTERNAL MODULE: ./node_modules/antd/es/message/style/index.js + 1 modules var message_style = __webpack_require__(14934); // EXTERNAL MODULE: ./node_modules/antd/es/message/index.js + 1 modules var message = __webpack_require__(12461); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js var slicedToArray = __webpack_require__(27424); var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js var defineProperty = __webpack_require__(38416); var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty); // EXTERNAL MODULE: ./node_modules/react/index.js var react = __webpack_require__(67294); // EXTERNAL MODULE: ./node_modules/codemirror/lib/codemirror.js var codemirror = __webpack_require__(4631); var codemirror_default = /*#__PURE__*/__webpack_require__.n(codemirror); // EXTERNAL MODULE: ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js var ResizeObserver_es = __webpack_require__(91033); // EXTERNAL MODULE: ./node_modules/codemirror/lib/codemirror.css var lib_codemirror = __webpack_require__(71749); // EXTERNAL MODULE: ./node_modules/codemirror/addon/edit/closetag.js var closetag = __webpack_require__(57341); // EXTERNAL MODULE: ./node_modules/codemirror/addon/edit/closebrackets.js var closebrackets = __webpack_require__(82801); // EXTERNAL MODULE: ./node_modules/codemirror/addon/display/placeholder.js var placeholder = __webpack_require__(88386); // EXTERNAL MODULE: ./node_modules/codemirror/mode/markdown/markdown.js var markdown = __webpack_require__(49047); // EXTERNAL MODULE: ./node_modules/codemirror/mode/stex/stex.js var stex = __webpack_require__(80785); ;// CONCATENATED MODULE: ./src/components/markdown-editor/index.less // extracted by mini-css-extract-plugin // EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx + 1 modules var RenderHtml = __webpack_require__(12768); // EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js var jsx_runtime = __webpack_require__(85893); ;// CONCATENATED MODULE: ./src/components/RenderHtml/stex.tsx // const latexjs = require('latex-l.js/dist/latex.js'); // import "latex-l.js/dist/css/base.css" /* harmony default export */ var RenderHtml_stex = (function (_ref) { var _ref$value = _ref.value, value = _ref$value === void 0 ? '' : _ref$value, className = _ref.className, showTextOnly = _ref.showTextOnly, showLines = _ref.showLines, _ref$style = _ref.style, style = _ref$style === void 0 ? {} : _ref$style; var html = (0,react.useMemo)(function () { // try { // const latex = value || 'This is some text'; // let generator = new latexjs.default.HtmlGenerator({ hyphenate: true }) // let doc = latexjs.default.parse(latex, { generator: generator }).htmlDocument() // return doc.body.innerHTML // }catch(e){ // console.log("e:",e) // return "错误的latex语法,请检查" // } return ""; }, [value]); return /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, { children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { dangerouslySetInnerHTML: { __html: html } }) }); }); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectSpread2.js var objectSpread2 = __webpack_require__(42122); var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2); ;// CONCATENATED MODULE: ./src/components/markdown-editor/toolbar/index.less // extracted by mini-css-extract-plugin ;// CONCATENATED MODULE: ./src/components/markdown-editor/css/iconfont.css // extracted by mini-css-extract-plugin ;// CONCATENATED MODULE: ./src/components/markdown-editor/toolbar/index.tsx var DEFAULTICONS = [{ title: '粗体', icon: 'icon-bold', actionName: 'bold' }, { title: '斜体', icon: 'icon-italic', actionName: 'italic' }, '|', { title: '无序列表', icon: 'icon-unorder-list', actionName: 'list-ul' }, { title: '有序列表', icon: 'icon-order-list', actionName: 'list-ol' }, '|', { title: '行内代码', icon: 'icon-code', actionName: 'code' }, { title: '代码块(多语言风格)', icon: 'icon-file-code', actionName: 'code-block' }, { title: '链接', icon: 'icon-link', actionName: 'link' }, '|', { title: '行内公式', icon: 'icon-sum', actionName: 'inline-latex' }, { title: '多行公式', icon: 'icon-formula', actionName: 'latex' }, '|', { title: '添加图片', icon: 'icon-picture', actionName: 'upload-image' }, { title: '表格', icon: 'icon-table', actionName: 'add-table' }, '|', { title: '换行', icon: 'icon-minus', actionName: 'line-break' }, { title: '清空', icon: 'icon-eraser', actionName: 'eraser' }]; function AButton(_ref) { var onActionCallback = _ref.onActionCallback, title = _ref.title, icon = _ref.icon, actionName = _ref.actionName, _ref$className = _ref.className, className = _ref$className === void 0 ? '' : _ref$className, children = _ref.children; function onAction() { onActionCallback(actionName); } return /*#__PURE__*/(0,jsx_runtime.jsxs)("a", { title: title, className: className, onClick: onAction, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "md-iconfont ".concat(icon) }), children] }); } /* harmony default export */ var toolbar = (function (_ref2) { var watch = _ref2.watch, showNullButton = _ref2.showNullButton, onActionCallback = _ref2.onActionCallback, fullScreen = _ref2.fullScreen, insertTemp = _ref2.insertTemp, hidetoolBar = _ref2.hidetoolBar; var icons = [].concat(DEFAULTICONS, [{ title: "".concat(watch ? '关闭实时预览' : '开启实时预览'), icon: "".concat(watch ? 'icon-eye-slash' : 'icon-eye'), actionName: 'trigger-watch' }]); return /*#__PURE__*/(0,jsx_runtime.jsxs)("ul", { className: "markdown-toolbar-container", children: [!hidetoolBar && icons.map(function (item, index) { return /*#__PURE__*/(0,jsx_runtime.jsx)("li", { children: item.actionName ? /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, objectSpread2_default()(objectSpread2_default()({}, item), {}, { onActionCallback: onActionCallback })) : /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "v-line" }) }, index); }), showNullButton ? /*#__PURE__*/(0,jsx_runtime.jsx)("li", { children: /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, { icon: "icon-edit insert-blank", className: "btn-null", title: "\u589E\u52A0\u586B\u7A7A", actionName: "add-null-ch", onActionCallback: onActionCallback, children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "fill-tip", children: "\u70B9\u51FB\u63D2\u5165\b\u586B\u7A7A\u9879" }) }) }) : null, insertTemp && /*#__PURE__*/(0,jsx_runtime.jsx)("li", { children: /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, { icon: "icon-edit", className: "btn-null", title: "\u63D2\u5165\u6A21\u677F", actionName: "inster-template-".concat(insertTemp), onActionCallback: onActionCallback, children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "fill-tip", children: "\u63D2\u5165\u6A21\u677F" }) }) }), /*#__PURE__*/(0,jsx_runtime.jsx)("li", { className: "btn-full-screen", children: /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, { icon: "".concat(fullScreen ? 'icon-shrink' : 'icon-enlarge'), title: fullScreen ? '关闭全屏' : '开启全屏', actionName: "trigger-full-screen", onActionCallback: onActionCallback }) })] }); }); // EXTERNAL MODULE: ./src/components/modal.tsx var components_modal = __webpack_require__(12264); // EXTERNAL MODULE: ./node_modules/antd/es/button/style/index.js + 1 modules var button_style = __webpack_require__(29913); // EXTERNAL MODULE: ./node_modules/antd/es/button/index.js var es_button = __webpack_require__(71577); // EXTERNAL MODULE: ./node_modules/antd/es/form/style/index.js + 1 modules var form_style = __webpack_require__(75627); // EXTERNAL MODULE: ./node_modules/antd/es/form/index.js + 17 modules var es_form = __webpack_require__(51018); // EXTERNAL MODULE: ./node_modules/antd/es/input/style/index.js + 1 modules var input_style = __webpack_require__(69463); // EXTERNAL MODULE: ./node_modules/antd/es/input/index.js + 5 modules var input = __webpack_require__(75008); ;// CONCATENATED MODULE: ./src/components/markdown-editor/link/index.tsx var formItemLayout = { labelCol: { span: 4 }, wrapperCol: { span: 20 } }; /* harmony default export */ var markdown_editor_link = (function (_ref) { var callback = _ref.callback, onCancel = _ref.onCancel; function onSubmit(values) { callback(values); } return /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, objectSpread2_default()(objectSpread2_default()({}, formItemLayout), {}, { initialValues: { link: 'http://', title: '' }, className: "link-panel", onFinish: onSubmit, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { label: "\u94FE\u63A5\u5730\u5740", name: "link", rules: [{ required: true, message: '请输入链接地址' }], children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {}) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { label: "\u94FE\u63A5\u6807\u9898", name: "title", rules: [{ required: true, message: '请输入链接标题' }], children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {}) }), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "flex-container flex-end", children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { type: "primary", htmlType: "submit", style: { marginRight: 10 }, children: "\u786E\u5B9A" }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { type: "ghost", onClick: onCancel, children: "\u53D6\u6D88" })] })] })); }); // EXTERNAL MODULE: ./src/components/markdown-editor/code-block/index.tsx var code_block = __webpack_require__(97501); ;// CONCATENATED MODULE: ./src/components/markdown-editor/upload-image/index.less // extracted by mini-css-extract-plugin // EXTERNAL MODULE: ./src/pages/tasks/util.js var util = __webpack_require__(96403); ;// CONCATENATED MODULE: ./src/components/markdown-editor/upload-image/index.tsx var useForm = es_form/* default.useForm */.Z.useForm; var upload_image_style = { width: 280, marginRight: 10 }; var upload_image_formItemLayout = { labelCol: { span: 5 }, wrapperCol: { span: 19 } }; /* harmony default export */ var upload_image = (function (_ref) { var callback = _ref.callback, onCancel = _ref.onCancel; var _useForm = useForm(), _useForm2 = slicedToArray_default()(_useForm, 1), form = _useForm2[0]; function onSubmit(values) { callback(values); } function onAddUrl(data, file) { if (data.status === -1) { message/* default.error */.ZP.error(data.message); return; } form.setFieldsValue({ src: "/api/attachments/".concat(data.id), type: file.type }); } function onFileChange(e) { var file = e.target.files[0]; uploadImage(file, onAddUrl); } return /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, objectSpread2_default()(objectSpread2_default()({ form: form }, upload_image_formItemLayout), {}, { className: "upload-image-panel", onFinish: onSubmit, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { label: "\u56FE\u7247\u5730\u5740", required: true, children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "flex-container", children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { noStyle: true, name: "src", rules: [{ required: true, message: '请输入图片地址' }], children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, { style: upload_image_style }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(UploadButton, { onFileChange: onFileChange })] }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { label: "\u56FE\u7247\u63CF\u8FF0", name: "alt" // rules={[{ required: true, message: '请输入图片描述' }]} , children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, { style: { width: 264 } }) }), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default.Item */.Z.Item, { style: { textAlign: "right" }, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { type: "primary", htmlType: "submit", style: { marginRight: 10 }, children: "\u786E\u5B9A" }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { type: "ghost", onClick: onCancel, children: "\u53D6\u6D88" })] })] })); }); function UploadButton(_ref2) { var onFileChange = _ref2.onFileChange; return /*#__PURE__*/(0,jsx_runtime.jsxs)("a", { className: "upload-button", children: ["\u672C\u5730\u4E0A\u4F20", /*#__PURE__*/(0,jsx_runtime.jsx)("input", { type: "file", onChange: onFileChange })] }); } function uploadImage(file, callback) { if (!file) { throw new String('没有文件'); return; } var formData = new FormData(); formData.append('editormd-image-file', file); formData.append('file_param_name', 'editormd-image-file'); formData.append('byxhr', 'true'); var xhr = new window.XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener('load', function (response) { callback(JSON.parse(response.target.responseText), file); }, false); xhr.addEventListener('error', function (error) { console.error(error); }, false); xhr.open('POST', "".concat(util/* apiPref */.KI, "/api/attachments.json")); xhr.send(formData); } // EXTERNAL MODULE: ./node_modules/antd/es/input-number/style/index.js + 1 modules var input_number_style = __webpack_require__(25359); // EXTERNAL MODULE: ./node_modules/antd/es/input-number/index.js + 9 modules var input_number = __webpack_require__(87799); // EXTERNAL MODULE: ./node_modules/antd/es/radio/style/index.js + 1 modules var radio_style = __webpack_require__(83822); // EXTERNAL MODULE: ./node_modules/antd/es/radio/index.js + 4 modules var es_radio = __webpack_require__(29924); ;// CONCATENATED MODULE: ./src/components/markdown-editor/add-table-panel/index.tsx var RadioGroup = es_radio/* default.Group */.ZP.Group; var add_table_panel_style = { margin: '0 8px' }; /* harmony default export */ var add_table_panel = (function (_ref) { var callback = _ref.callback, onCancel = _ref.onCancel; function onSubmit(values) { callback(values); } return /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, { className: "add-table-panel", initialValues: { row: 3, col: 2, align: 'default' }, onFinish: onSubmit, children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "flex-container", style: { alignItems: "baseline" }, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", { style: add_table_panel_style, children: "\u5355\u5143\u683C\u6570\uFF1A" }), /*#__PURE__*/(0,jsx_runtime.jsx)("span", { style: add_table_panel_style, children: "\u884C\u6570" }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { name: "row", rules: [{ required: true, message: '请输入行数' }], children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {}) }), /*#__PURE__*/(0,jsx_runtime.jsx)("span", { style: add_table_panel_style, children: "\u5217\u6570" }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { name: "col", rules: [{ required: true, message: '请输入列数' }], children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {}) })] }), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "flex-container", style: { marginTop: 12, alignItems: "baseline" }, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", { style: add_table_panel_style, children: "\u5BF9\u9F50\u65B9\u5F0F\uFF1A" }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { name: "align", children: /*#__PURE__*/(0,jsx_runtime.jsxs)(RadioGroup, { children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, { value: "default", children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "fa fa-align-justify" }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, { value: "left", children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "fa fa-align-left" }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, { value: "center", children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "fa fa-align-center" }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, { value: "right", children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "fa fa-align-right" }) })] }) })] }), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "flex-container flex-end", children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { type: "primary", htmlType: "submit", style: { marginRight: 10 }, children: "\u786E\u5B9A" }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { type: "ghost", onClick: onCancel, children: "\u53D6\u6D88" })] })] }); }); // EXTERNAL MODULE: ./src/utils/env.ts + 1 modules var env = __webpack_require__(59758); ;// CONCATENATED MODULE: ./src/components/markdown-editor/constant.ts var LINK = 'link'; var UPLOAD_IMAGE = 'upload-image'; var CODE_BLOCK = 'code-block'; var ADD_TABLE = 'add-table'; var HRLINE = '------------'; var ALIGNSIGN = { "default": HRLINE, left: ":".concat(HRLINE), center: ":".concat(HRLINE, ":"), right: "".concat(HRLINE, ":") }; // EXTERNAL MODULE: ./src/components/useInterval.tsx var useInterval = __webpack_require__(61891); ;// CONCATENATED MODULE: ./src/components/markdown-editor/index.tsx var _DEFAULTKEYMAP, _TitleDesc; function noop() {} var pending = 0; var StorageTimeTicket = 10000; var NULL_CH = '▁'; var TEMP1 = '\n**模板标题**\n模板正文内容,可输入文本内容和粘贴图片等操作'; //课程须知模板 function processSize(size) { return !/^\d+$/.test(size) ? size : "".concat(size, "px"); } var isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0; var key = isMac ? 'Cmd' : 'Ctrl'; var DEFAULTKEYMAP = (_DEFAULTKEYMAP = {}, defineProperty_default()(_DEFAULTKEYMAP, key + '-B', 'bold'), defineProperty_default()(_DEFAULTKEYMAP, key + '-I', 'italic'), _DEFAULTKEYMAP); var TitleDesc = (_TitleDesc = {}, defineProperty_default()(_TitleDesc, LINK, '添加链接'), defineProperty_default()(_TitleDesc, CODE_BLOCK, '添加代码块'), defineProperty_default()(_TitleDesc, UPLOAD_IMAGE, '添加图片'), defineProperty_default()(_TitleDesc, ADD_TABLE, '添加表格'), _TitleDesc); //https://codemirror.net/demo //The height can be set through CSS (by giving the .CodeMirror class a height property), or by calling the cm's setSize method. /* harmony default export */ var markdown_editor = (function (_ref) { var _ref$defaultValue = _ref.defaultValue, defaultValue = _ref$defaultValue === void 0 ? '' : _ref$defaultValue, onChange = _ref.onChange, _ref$width = _ref.width, width = _ref$width === void 0 ? '100%' : _ref$width, _ref$height = _ref.height, height = _ref$height === void 0 ? 400 : _ref$height, _ref$miniToolbar = _ref.miniToolbar, miniToolbar = _ref$miniToolbar === void 0 ? false : _ref$miniToolbar, _ref$isFocus = _ref.isFocus, isFocus = _ref$isFocus === void 0 ? false : _ref$isFocus, watch = _ref.watch, insertTemp = _ref.insertTemp, _ref$mode = _ref.mode, mode = _ref$mode === void 0 ? "markdown" : _ref$mode, _ref$id = _ref.id, id = _ref$id === void 0 ? 'markdown-editor-id' : _ref$id, _ref$showResizeBar = _ref.showResizeBar, showResizeBar = _ref$showResizeBar === void 0 ? false : _ref$showResizeBar, _ref$noStorage = _ref.noStorage, noStorage = _ref$noStorage === void 0 ? false : _ref$noStorage, _ref$showNullButton = _ref.showNullButton, showNullButton = _ref$showNullButton === void 0 ? false : _ref$showNullButton, _ref$hidetoolBar = _ref.hidetoolBar, hidetoolBar = _ref$hidetoolBar === void 0 ? false : _ref$hidetoolBar, _ref$fullScreen = _ref.fullScreen, fullScreen = _ref$fullScreen === void 0 ? false : _ref$fullScreen, onBlur = _ref.onBlur, onCMBeforeChange = _ref.onCMBeforeChange, onFullScreen = _ref.onFullScreen, _ref$className = _ref.className, className = _ref$className === void 0 ? '' : _ref$className, _ref$disablePaste = _ref.disablePaste, disablePaste = _ref$disablePaste === void 0 ? false : _ref$disablePaste, _ref$disabled = _ref.disabled, disabled = _ref$disabled === void 0 ? false : _ref$disabled, _ref$placeholder = _ref.placeholder, placeholder = _ref$placeholder === void 0 ? '' : _ref$placeholder, _ref$values = _ref.values, values = _ref$values === void 0 ? '' : _ref$values; var _useState = (0,react.useState)(null), _useState2 = slicedToArray_default()(_useState, 2), cm = _useState2[0], setCm = _useState2[1]; var _useState3 = (0,react.useState)(defaultValue), _useState4 = slicedToArray_default()(_useState3, 2), value = _useState4[0], setValue = _useState4[1]; var _useState5 = (0,react.useState)(watch), _useState6 = slicedToArray_default()(_useState5, 2), preview = _useState6[0], setPreview = _useState6[1]; var _useState7 = (0,react.useState)(fullScreen), _useState8 = slicedToArray_default()(_useState7, 2), isFull = _useState8[0], setIsFull = _useState8[1]; var _useState9 = (0,react.useState)(''), _useState10 = slicedToArray_default()(_useState9, 2), action = _useState10[0], setAction = _useState10[1]; var _useState11 = (0,react.useState)(0), _useState12 = slicedToArray_default()(_useState11, 2), lastedUpdateTime = _useState12[0], setLastedUpdateTime = _useState12[1]; var _useState13 = (0,react.useState)(height), _useState14 = slicedToArray_default()(_useState13, 2), h = _useState14[0], setH = _useState14[1]; var _useState15 = (0,react.useState)(false), _useState16 = slicedToArray_default()(_useState15, 2), tip = _useState16[0], setTip = _useState16[1]; var cmEl = (0,react.useRef)(); var containerEl = (0,react.useRef)(); var resizeBarEl = (0,react.useRef)(); var previewEl = (0,react.useRef)(); // useEffect(() => { // setValue(defaultValue) // cm?.setValue(defaultValue) // },[]) (0,react.useEffect)(function () { setValue(values); cm === null || cm === void 0 ? void 0 : cm.setValue(values); }, [values]); (0,react.useEffect)(function () { onFullScreen === null || onFullScreen === void 0 ? void 0 : onFullScreen(isFull); }, [isFull]); (0,react.useEffect)(function () { if (cmEl.current) { var onPaste = function onPaste(_, e) { if (disablePaste) { e.preventDefault(); return; } var clipboardData = e.clipboardData; if (clipboardData) { var types = clipboardData.types.toString(); var items = clipboardData.items; var officeSix = ["pptm", "pptx", "ppt", "pot", "pps", "ppa", "potx", "ppsx", "ppam", "pptm", "potm", "ppsm", "doc", "docx", "dot", "dotx", "docm", "dotm", "xls", "xlsx", "csv", "xlt", "xla", "xltx", "xlsm", "xltm", "xlam", "xlsb"]; if (types === 'Files' || clipboardData.types.indexOf("Files") > -1) { e.preventDefault(); if (mode == "stex") return; try { var _items$; var item = items[1]; if (((_items$ = items[0]) === null || _items$ === void 0 ? void 0 : _items$.kind) === 'file') { item = items[0]; } var file = item.getAsFile(); var fileSix = file.name.split(".").pop(); // console.log("item:", item, file, item?.type?.match(/^video\//i)) uploadImage(file, function (data) { if (data.id) { var _file$type, _file$type2, _file$type3; if ((file === null || file === void 0 ? void 0 : (_file$type = file.type) === null || _file$type === void 0 ? void 0 : _file$type.indexOf("image")) > -1) { instance.replaceSelection("![,](/api/attachments/".concat(data.id, "?type=").concat(data.content_type, ")")); } else if ((file === null || file === void 0 ? void 0 : (_file$type2 = file.type) === null || _file$type2 === void 0 ? void 0 : _file$type2.indexOf("video")) > -1) { instance.replaceSelection("")); } else if ((file === null || file === void 0 ? void 0 : (_file$type3 = file.type) === null || _file$type3 === void 0 ? void 0 : _file$type3.indexOf("pdf")) > -1) { instance.replaceSelection("").concat(file.name, "")); } else if (officeSix.includes(fileSix)) { instance.replaceSelection("").concat(file.name, "")); } else { instance.replaceSelection("[".concat(file.name, "](").concat(env/* default.API_SERVER */.Z.API_SERVER, "/api/attachments/").concat(data.id, "?type=").concat(data.content_type, ")")); } } else { if ((data === null || data === void 0 ? void 0 : data.status) === 401) document.location.href = '/user/login'; } }); } catch (e) { message/* default.warn */.ZP.warn("请使用chrome浏览器粘贴"); } return true; } else { //toMarkdown ? // let html = clipboardData.getData('text/html') return true; } } return true; }; var instance = codemirror_default().fromTextArea(cmEl.current, { mode: mode, // inputStyle: 'contenteditable', lineNumbers: miniToolbar ? false : true, lineWrapping: true, value: defaultValue, autoCloseTags: true, autoCloseBrackets: true }); isFocus && instance.focus(); instance.on('paste', onPaste); if (disabled) { instance.on("beforeChange", function (instances, change) { if (change.origin === "paste" || change.origin === "+input") { change.cancel(); } }); } setCm(instance); return function () { instance.off('paste', onPaste); }; } }, []); var resizeEditorBodyHeight = (0,react.useCallback)(function () { if (containerEl.current) { try { // let toolH = containerEl.current.getElementsByClassName('markdown-toolbar-container')[0].offsetHeight // let mdBody = containerEl.current.getElementsByClassName('markdown-editor-body')[0] // if (!isFull) { // mdBody.style.height = `${h - toolH}px` // } else { // mdBody.style.height = `calc(100vh - ${toolH}px)` // } } catch (error) { console.log(error, '---- to set md editor body height'); } } }, [h, containerEl, isFull]); (0,react.useEffect)(function () { function onLayout() { var ro = new ResizeObserver_es/* default */.Z(function (entries) { var _iterator = createForOfIteratorHelper_default()(entries), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var entry = _step.value; if (entry.target.offsetHeight > 0 || entry.target.offsetWidth > 0) { resizeEditorBodyHeight(); cm.setSize('100%', '100%'); cm.refresh(); } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } }); ro.observe(cmEl.current.parentElement); return ro; } if (cm) { var ro = onLayout(); return function () { var _cmEl$current, _cmEl$current2; if ((_cmEl$current = cmEl.current) !== null && _cmEl$current !== void 0 && _cmEl$current.parentElement) ro.unobserve((_cmEl$current2 = cmEl.current) === null || _cmEl$current2 === void 0 ? void 0 : _cmEl$current2.parentElement); }; } }, [cm, resizeEditorBodyHeight]); //keymap (0,react.useEffect)(function () { if (cm) { var keymap = []; var _loop = function _loop() { var _Object$entries$_i = slicedToArray_default()(_Object$entries[_i], 2), k = _Object$entries$_i[0], value = _Object$entries$_i[1]; var map = defineProperty_default()({}, k, function () { onActionCallback(value); }); keymap.push(map); cm.addKeyMap(map); }; for (var _i = 0, _Object$entries = Object.entries(DEFAULTKEYMAP); _i < _Object$entries.length; _i++) { _loop(); } return function () { for (var _i2 = 0, _keymap = keymap; _i2 < _keymap.length; _i2++) { var m = _keymap[_i2]; cm.removeKeyMap(m); } }; } }, [cm]); (0,react.useEffect)(function () { if (fullScreen !== isFull) { setIsFull(fullScreen); } }, [fullScreen]); (0,useInterval/* default */.Z)(function () { if (!noStorage && lastedUpdateTime > 0) { var currentTime = new Date().getTime(); var lastedValue = window.sessionStorage.getItem(id); if (currentTime >= lastedUpdateTime + StorageTimeTicket && (!lastedValue || lastedValue !== value)) { window.sessionStorage.setItem(id, value); setTip(true); } } }, StorageTimeTicket); (0,react.useEffect)(function () { setPreview(watch); }, [cm, watch]); (0,react.useEffect)(function () { if (cm) { isFocus && cm.focus(); } }, [cm, isFocus]); (0,react.useEffect)(function () { if (preview && cm) { var syncScroll = function syncScroll(e) { var target = e.target; if (previewEl.current) { var ratio = target.scrollTop / target.scrollHeight; previewEl.current.scrollTop = previewEl.current.scrollHeight * ratio; } }; var scrollEl = cm.getScrollerElement(); scrollEl.addEventListener('scroll', syncScroll); return function () { scrollEl.removeEventListener('scroll', syncScroll); }; } }, [cm, preview]); (0,react.useEffect)(function () { if (cm && onCMBeforeChange) { var onChangeHandler = function onChangeHandler(cm, change) { onCMBeforeChange(cm, change); }; cm.on('beforeChange', onChangeHandler); return function () { cm.off('beforeChange', onChangeHandler); }; } }, [cm, onCMBeforeChange]); (0,react.useEffect)(function () { if (cm && onBlur) { var onBlurHandler = function onBlurHandler() { onBlur(cm.getValue()); }; cm.on('blur', onBlurHandler); return function () { cm.off('blur', onBlurHandler); }; } }, [cm, onBlur]); (0,react.useEffect)(function () { if (cm) { var onChangeHandler = function onChangeHandler(cm) { var content = cm.getValue(); setValue(content); setLastedUpdateTime(new Date().getTime()); cm.getScrollerElement().dispatchEvent(new CustomEvent('scroll')); onChange && onChange(content); }; cm.on('change', onChangeHandler); return function () { cm.off('change', onChangeHandler); }; } }, [cm, onChange]); (0,react.useEffect)(function () { if (cm) { // isFocus && cm.focus() if (defaultValue === null || defaultValue === undefined) { cm.setValue(''); setValue(''); } else { if (defaultValue !== cm.getValue()) { cm.setValue(defaultValue); setValue(defaultValue); cm.setCursor(disabled ? 1 : cm.lineCount(), 0); } } } }, [cm, defaultValue]); var onActionCallback = (0,react.useCallback)(function (actionName) { var cursor = cm.getCursor(); var selection = cm.getSelection(); var selectionText = selection.split('\n'); switch (actionName) { case 'bold': cm.replaceSelection('**' + selection + '**'); if (selection === '') { cm.setCursor(cursor.line, cursor.ch + 2); } return cm.focus(); case 'italic': cm.replaceSelection('*' + selection + '*'); if (selection === '') { cm.setCursor(cursor.line, cursor.ch + 1); } return cm.focus(); case 'code': cm.replaceSelection('`' + selection + '`'); if (selection === '') { cm.setCursor(cursor.line, cursor.ch + 1); } return cm.focus(); case 'inline-latex': cm.replaceSelection('`$$' + selection + '$$`'); if (selection === '') { cm.setCursor(cursor.line, cursor.ch + 3); } return cm.focus(); case 'latex': cm.replaceSelection("```latex\n" + selection + "\n```"); cm.setCursor(cursor.line + 1, selection.length + 1); return cm.focus(); case 'line-break': cm.replaceSelection('
\n'); return cm.focus(); case 'list-ul': if (selection === '') { cm.replaceSelection('- ' + selection); } else { cm.replaceSelection(selectionText.map(function (item) { return item === '' ? '' : "- ".concat(item); }).join('\n')); } return cm.focus(); case 'list-ol': if (selection === '') { cm.replaceSelection('1. ' + selection); } else { cm.replaceSelection(selectionText.map(function (item, index) { return item === '' ? '' : "".concat(index + 1, ". ").concat(item); }).join('\n')); } return cm.focus(); case 'add-null-ch': if (selection === '') { cm.setCursor(cursor.line, cursor.ch); } cm.replaceSelection(NULL_CH); return cm.focus(); case 'inster-template-1': if (selection === '') { cm.setCursor(cursor.line, cursor.ch); } cm.replaceSelection(TEMP1); return cm.focus(); case 'eraser': cm.setValue(''); return cm.focus(); case 'trigger-watch': setPreview(!preview); return cm.focus(); case 'trigger-full-screen': setIsFull(!isFull); return cm.focus(); case LINK: setAction(LINK); return; case CODE_BLOCK: setAction(CODE_BLOCK); return; case UPLOAD_IMAGE: setAction(UPLOAD_IMAGE); return; case ADD_TABLE: setAction(ADD_TABLE); return; default: throw new Error(); } }, [cm, preview, isFull]); var ExecutePluginAction = (0,react.useCallback)(function (values) { setAction(''); switch (action) { case LINK: var title = values.title, link = values.link; cm.replaceSelection("[".concat(title, "](").concat(link, ")")); return cm.focus(); case CODE_BLOCK: var language = values.language, content = values.content; cm.replaceSelection(['```' + language, content, '```'].join('\n')); return cm.focus(); case UPLOAD_IMAGE: var src = values.src, alt = values.alt; if (alt) { cm.replaceSelection("![ ".concat(alt, " ]( ").concat(src, " \"").concat(alt, "\" )")); } else { cm.replaceSelection("![,](".concat(src, ")")); } return cm.focus(); case ADD_TABLE: var row = values.row, col = values.col, align = values.align; var table = '\n'; for (var r = 0; r < row; r++) { var rows = []; var heads = []; for (var c = 0; c < col; c++) { if (r === 1) { heads.push(ALIGNSIGN[align]); } rows.push(' '); } if (r === 1) { table += "| ".concat(heads.join(' | '), " |\n"); } table += "| ".concat(rows.join(col === 1 ? '' : ' | '), " |\n"); } cm.replaceSelection(table + '\n'); return cm.focus(); default: throw new Error(); } }, [cm, action]); var PluginEl = (0,react.useMemo)(function () { switch (action) { case LINK: return /*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor_link, { callback: ExecutePluginAction, onCancel: onCancel }); case CODE_BLOCK: return /*#__PURE__*/(0,jsx_runtime.jsx)(code_block/* default */.Z, { callback: ExecutePluginAction, onCancel: onCancel }); case UPLOAD_IMAGE: return /*#__PURE__*/(0,jsx_runtime.jsx)(upload_image, { callback: ExecutePluginAction, onCancel: onCancel }); case ADD_TABLE: return /*#__PURE__*/(0,jsx_runtime.jsx)(add_table_panel, { callback: ExecutePluginAction, onCancel: onCancel }); default: return null; } }, [action]); function onCancel() { setAction(''); } (0,react.useEffect)(function () { if (resizeBarEl.current) { var onMouseDown = function onMouseDown(e) { dragging = true; startY = e.pageY; }; var onMouseUp = function onMouseUp() { dragging = false; }; var onMouseMove = function onMouseMove(e) { if (dragging) { var delta = e.pageY - startY; if (delta < 0) { delta = 0; } if (delta > 300) { delta = 300; } var resizeH = height + delta + 'px'; setH(resizeH); } }; var resizeBar = resizeBarEl.current; var dragging = false; var startY = 0; resizeBar.addEventListener('mousedown', onMouseDown); document.addEventListener('mousemove', onMouseMove); document.addEventListener('mouseup', onMouseUp); return function () { resizeBar.removeEventListener('mousedown', onMouseDown); document.removeEventListener('mousemove', onMouseMove); document.removeEventListener('mouseup', onMouseUp); }; } }, [cm, resizeBarEl]); (0,react.useEffect)(function () { setH(height); }, [height]); var fixedWidth = processSize(width); var fixedHeight = processSize(h); var style = { width: fixedWidth, height: fixedHeight }; var saveTime = (0,react.useMemo)(function () { if (lastedUpdateTime) { var d = new Date(lastedUpdateTime); var _h = d.getHours(); var m = d.getMinutes(); var s = d.getSeconds(); _h = _h < 10 ? '0' + _h : _h; m = m < 10 ? '0' + m : m; s = s < 10 ? '0' + s : s; return "".concat(_h, ":").concat(m, ":").concat(s); } return 0; }, [lastedUpdateTime]); function onCancelStorage() { window.sessionStorage.removeItem(id); setTip(false); setLastedUpdateTime(0); } function onReset() { setTip(false); setLastedUpdateTime(0); cm.setValue(window.sessionStorage.getItem(id)); } return /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, { children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: "markdown-editor-wrapper", ref: containerEl, children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "markdown-editor-container ".concat(className, " ").concat(preview ? 'on-preview' : '', " ").concat(miniToolbar ? 'mini' : '', " ").concat(isFull ? 'full-screen' : ''), style: style, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(toolbar, { insertTemp: insertTemp, watch: preview, fullScreen: isFull, showNullButton: showNullButton, onActionCallback: onActionCallback, hidetoolBar: hidetoolBar }), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "markdown-editor-body", children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: "codemirror-container", children: /*#__PURE__*/(0,jsx_runtime.jsx)("textarea", { ref: cmEl, placeholder: placeholder }) }), preview ? /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { ref: previewEl, className: "preview-container", children: [mode === "stex" && /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml_stex, { value: value }), mode !== "stex" && /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, { value: value })] }) : null] })] }) }), showResizeBar ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", { ref: resizeBarEl, className: "editor-resize" }) : null, /*#__PURE__*/(0,jsx_runtime.jsx)(components_modal/* default */.Z, { children: TitleDesc[action] ? /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, { centered: true, title: TitleDesc[action], open: true, onCancel: onCancel, footer: null, className: "markdown-popup-form", children: PluginEl }) : null })] }); }); /***/ }), /***/ 12264: /*!**********************************!*\ !*** ./src/components/modal.tsx ***! \**********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": function() { return /* binding */ Dialog; } /* harmony export */ }); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck.js */ 56690); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass.js */ 89728); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits.js */ 61655); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createSuper.js */ 26389); /* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ 67294); /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-dom */ 73935); var Dialog = /*#__PURE__*/function (_React$Component) { _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default()(Dialog, _React$Component); var _super = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default()(Dialog); function Dialog(props) { var _this; _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0___default()(this, Dialog); _this = _super.call(this, props); var doc = window.document; _this.node = doc.createElement('div'); doc.body.appendChild(_this.node); return _this; } _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1___default()(Dialog, [{ key: "render", value: function render() { var children = this.props.children; return /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_5__.createPortal)(children, this.node); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { window.document.body.removeChild(this.node); } }]); return Dialog; }(react__WEBPACK_IMPORTED_MODULE_4__.Component); /***/ }), /***/ 77696: /*!*********************************************************!*\ !*** ./src/components/tpi-code-setting/CodeSetting.tsx ***! \*********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony import */ var antd_es_switch_style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/switch/style */ 5812); /* harmony import */ var antd_es_switch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/switch */ 94594); /* harmony import */ var antd_es_select_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/select/style */ 95985); /* harmony import */ var antd_es_select__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/select */ 34041); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ 67294); /* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index.less */ 12867); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ 85893); var Option = antd_es_select__WEBPACK_IMPORTED_MODULE_5__/* ["default"].Option */ .Z.Option; /* harmony default export */ __webpack_exports__["Z"] = (function (_ref) { var onFontSizeChange = _ref.onFontSizeChange, cmFontSize = _ref.cmFontSize, cmCodeMode = _ref.cmCodeMode, autoFormat = _ref.autoFormat, onCodeModeChange = _ref.onCodeModeChange, onTabToSpace = _ref.onTabToSpace, onAutoFormat = _ref.onAutoFormat, formatDocument = _ref.formatDocument, _ref$className = _ref.className, className = _ref$className === void 0 ? '' : _ref$className, tabToSpace = _ref.tabToSpace, children = _ref.children; return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { className: "tpi-code-setting ".concat(className), children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("h3", { children: "\u4EE3\u7801\u683C\u5F0F" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("section", { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { className: "file-item", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("b", { children: "\u663E\u793A\u6A21\u5F0F" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(antd_es_select__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { bordered: false, size: "small", value: cmCodeMode, onChange: onCodeModeChange, children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Option, { value: 'vs', children: "\u767D\u8272\u80CC\u666F" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Option, { value: 'vs-dark', children: "\u9ED1\u8272\u80CC\u666F" })] })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { className: "file-item", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("b", { children: "\u5B57\u4F53\u5927\u5C0F" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(antd_es_select__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { bordered: false, size: "small", value: cmFontSize, onChange: onFontSizeChange, children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Option, { value: 12, children: "12px" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Option, { value: 14, children: "14px" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Option, { value: 16, children: "16px" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Option, { value: 18, children: "18px" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Option, { value: 20, children: "20px" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Option, { value: 22, children: "22px" })] })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { className: "file-item", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("b", { children: "Tab\u8F6C\u6362" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(antd_es_switch__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { checked: tabToSpace, onChange: onTabToSpace })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", { className: "file-item", onClick: formatDocument, children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("b", { style: { cursor: "pointer" }, children: "\u683C\u5F0F\u5316\u4EE3\u7801" }) })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("h3", { children: "\u5FEB\u6377\u952E" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("section", { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { className: "file-item", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("b", { children: "\u4FDD\u5B58\u4EE3\u7801" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", { children: "Ctrl + S" })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { className: "file-item", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("b", { children: "\u5524\u51FA\u5FEB\u6377\u952E\u5217\u8868" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", { children: "F1 / Alt + F1" })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { className: "file-item", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("b", { children: "\u5DE6\u53F3\u7F29\u8FDB" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", { children: "Ctrl + ]/[" })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { className: "file-item", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("b", { children: "\u8DF3\u5230\u5339\u914D\u7684\u62EC\u53F7" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", { children: "Ctrl + Shift + \\" })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { className: "file-item", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("b", { children: "\u8F6C\u5230\u884C\u9996" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", { children: "Home" })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { className: "file-item", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("b", { children: "\u8F6C\u5230\u884C\u5C3E" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", { children: "End" })] })] }), children] }); }); /***/ }), /***/ 61891: /*!****************************************!*\ !*** ./src/components/useInterval.tsx ***! \****************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": function() { return /* binding */ useInterval; } /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 67294); function useInterval(callback, delay) { var savedCallback = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(); // 保存新回调 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { savedCallback.current = callback; }); // 建立 interval (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { function tick() { savedCallback.current(); } if (delay !== null) { var id = setInterval(tick, delay); return function () { return clearInterval(id); }; } }, [delay]); } /***/ }), /***/ 16347: /*!************************************************************!*\ !*** ./src/pages/Question/AddOrEdit/index.tsx + 7 modules ***! \************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "Types": function() { return /* binding */ AddOrEdit_Types; }, "default": function() { return /* binding */ AddOrEdit; } }); // EXTERNAL MODULE: ./node_modules/antd/es/popconfirm/style/index.js + 1 modules var style = __webpack_require__(33219); // EXTERNAL MODULE: ./node_modules/antd/es/popconfirm/index.js + 1 modules var popconfirm = __webpack_require__(65360); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js var objectDestructuringEmpty = __webpack_require__(13012); var objectDestructuringEmpty_default = /*#__PURE__*/__webpack_require__.n(objectDestructuringEmpty); // EXTERNAL MODULE: ./node_modules/antd/es/space/style/index.js + 1 modules var space_style = __webpack_require__(6516); // EXTERNAL MODULE: ./node_modules/antd/es/space/index.js + 1 modules var space = __webpack_require__(26713); // EXTERNAL MODULE: ./node_modules/antd/es/checkbox/style/index.js + 1 modules var checkbox_style = __webpack_require__(82000); // EXTERNAL MODULE: ./node_modules/antd/es/checkbox/index.js + 2 modules var es_checkbox = __webpack_require__(32808); // EXTERNAL MODULE: ./node_modules/antd/es/radio/style/index.js + 1 modules var radio_style = __webpack_require__(83822); // EXTERNAL MODULE: ./node_modules/antd/es/radio/index.js + 4 modules var es_radio = __webpack_require__(29924); // EXTERNAL MODULE: ./node_modules/antd/es/input-number/style/index.js + 1 modules var input_number_style = __webpack_require__(25359); // EXTERNAL MODULE: ./node_modules/antd/es/input-number/index.js + 9 modules var input_number = __webpack_require__(87799); // EXTERNAL MODULE: ./node_modules/antd/es/select/style/index.js + 1 modules var select_style = __webpack_require__(95985); // EXTERNAL MODULE: ./node_modules/antd/es/select/index.js var es_select = __webpack_require__(34041); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/toConsumableArray.js var toConsumableArray = __webpack_require__(861); var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js var createForOfIteratorHelper = __webpack_require__(74704); var createForOfIteratorHelper_default = /*#__PURE__*/__webpack_require__.n(createForOfIteratorHelper); // EXTERNAL MODULE: ./node_modules/antd/es/spin/style/index.js + 1 modules var spin_style = __webpack_require__(22536); // EXTERNAL MODULE: ./node_modules/antd/es/spin/index.js var spin = __webpack_require__(11382); // EXTERNAL MODULE: ./node_modules/antd/es/table/style/index.js + 1 modules var table_style = __webpack_require__(71854); // EXTERNAL MODULE: ./node_modules/antd/es/table/index.js + 58 modules var table = __webpack_require__(67250); // EXTERNAL MODULE: ./node_modules/antd/es/button/style/index.js + 1 modules var button_style = __webpack_require__(29913); // EXTERNAL MODULE: ./node_modules/antd/es/button/index.js var es_button = __webpack_require__(71577); // EXTERNAL MODULE: ./node_modules/antd/es/row/style/index.js var row_style = __webpack_require__(13062); // EXTERNAL MODULE: ./node_modules/antd/es/row/index.js var row = __webpack_require__(71230); // EXTERNAL MODULE: ./node_modules/antd/es/col/style/index.js var col_style = __webpack_require__(89032); // EXTERNAL MODULE: ./node_modules/antd/es/col/index.js var col = __webpack_require__(15746); // EXTERNAL MODULE: ./node_modules/antd/es/message/style/index.js + 1 modules var message_style = __webpack_require__(14934); // EXTERNAL MODULE: ./node_modules/antd/es/message/index.js + 1 modules var message = __webpack_require__(12461); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js var regeneratorRuntime = __webpack_require__(17061); var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js var asyncToGenerator = __webpack_require__(17156); var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator); // EXTERNAL MODULE: ./node_modules/antd/es/form/style/index.js + 1 modules var form_style = __webpack_require__(75627); // EXTERNAL MODULE: ./node_modules/antd/es/form/index.js + 17 modules var es_form = __webpack_require__(51018); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js var slicedToArray = __webpack_require__(27424); var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectSpread2.js var objectSpread2 = __webpack_require__(42122); var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2); // EXTERNAL MODULE: ./node_modules/antd/es/collapse/style/index.js + 1 modules var collapse_style = __webpack_require__(49263); // EXTERNAL MODULE: ./node_modules/antd/es/collapse/index.js + 6 modules var collapse = __webpack_require__(54907); // EXTERNAL MODULE: ./node_modules/antd/es/modal/style/index.js + 1 modules var modal_style = __webpack_require__(35611); // EXTERNAL MODULE: ./node_modules/antd/es/modal/index.js + 7 modules var es_modal = __webpack_require__(85402); // EXTERNAL MODULE: ./node_modules/antd/es/input/style/index.js + 1 modules var input_style = __webpack_require__(69463); // EXTERNAL MODULE: ./node_modules/antd/es/input/index.js + 5 modules var input = __webpack_require__(75008); // EXTERNAL MODULE: ./node_modules/react/index.js var react = __webpack_require__(67294); ;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/index.less?modules // extracted by mini-css-extract-plugin /* harmony default export */ var AddOrEditmodules = ({"header":"header___N_IdR","field":"field___XG_dh","oj-form-container":"oj-form-container___syYzK","oj-left-panel":"oj-left-panel___L082x","oj-form-info":"oj-form-info___q0IU5","footer":"footer___pGCM2","result":"result___LM9Ms","passText":"passText___nUoL4","noPassText":"noPassText___ECHHG","pass":"pass___tDubp","noPass":"noPass___ilYvg","test-case-name":"test-case-name___MI_KD","btn-remove-case":"btn-remove-case___OiaTQ","icon-tag":"icon-tag___D86WO","btn_back":"btn_back___FyaSY","testJi":"testJi___NDviK","upBtn":"upBtn___FiZX4","oj-problems":"oj-problems___xb70g","row":"row___v036E","a":"a___yRaYH","b":"b___gWQyu","inputTwo":"inputTwo___IZ9og","inputOne":"inputOne____NmcT","cusModal":"cusModal___fJ5gm","oj-custom-large-spin":"oj-custom-large-spin___Aar0g","MdEditor":"MdEditor___hgoes"}); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js var defineProperty = __webpack_require__(38416); var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty); // EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js var jsx_runtime = __webpack_require__(85893); ;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/util.tsx var _Options; var Option = es_select/* default.Option */.Z.Option; var Keys; (function (Keys) { Keys[Keys["language"] = 0] = "language"; Keys[Keys["difficulty"] = 1] = "difficulty"; Keys[Keys["category"] = 2] = "category"; Keys[Keys["openOrNot"] = 3] = "openOrNot"; })(Keys || (Keys = {})); var Options = (_Options = {}, defineProperty_default()(_Options, Keys.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' }]), defineProperty_default()(_Options, Keys.difficulty, [{ title: '简单', key: 1 }, { title: '适中', key: 2 }, { title: '困难', key: 3 }]), defineProperty_default()(_Options, Keys.category, [{ title: '程序设计', key: 1 }, { title: '算法', key: 2 }]), defineProperty_default()(_Options, Keys.openOrNot, [{ title: '公开', key: 1 }, { title: '私有', key: 0 }]), _Options); function getSelectOptions(name) { return Options[name].map(function (item) { return /*#__PURE__*/(0,jsx_runtime.jsxs)(Option, { value: item.key, children: [" ", item.title, " "] }, item.title); }); } function getDisciplineOptions(data, result) { data.map(function (value) { var id = value.id, name = value.name, sub_disciplines = value.sub_disciplines; var 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 rs = []; for (var index = 0; index < data.length; index++) { var _value$sub_discipline; var value = data[index]; if (((_value$sub_discipline = value.sub_disciplines) === null || _value$sub_discipline === void 0 ? void 0 : _value$sub_discipline.length) > 0) { rs[0] = value.id; for (var j = 0; j < value.sub_disciplines.length; j++) { var 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, []]; } // EXTERNAL MODULE: ./src/.umi-production/exports.ts + 8 modules var _umi_production_exports = __webpack_require__(89214); // EXTERNAL MODULE: ./node_modules/js-base64/base64.js var base64 = __webpack_require__(19575); // EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/PoweroffOutlined.js + 1 modules var PoweroffOutlined = __webpack_require__(81088); // EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/CloseCircleOutlined.js var CloseCircleOutlined = __webpack_require__(31662); // EXTERNAL MODULE: ./src/components/markdown-editor/index.tsx + 10 modules var markdown_editor = __webpack_require__(55373); // EXTERNAL MODULE: ./src/utils/fetch.ts var fetch = __webpack_require__(84519); ;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/service.ts function addProgrammingTopic(params) { return (0,fetch/* post */.v_)("practices.json", params); } function getUser() { return (0,fetch/* get */.U2)('problems/new.json'); } function getProgrammingTopic(id) { return (0,fetch/* get */.U2)("practices/".concat(id, "/edit.json")); } function updateProgrammingTopic(id, params) { return (0,fetch/* put */.gz)("practices/".concat(id), params); } function addExerciseQuestion(exerciseId, params) { return post("exercises/".concat(exerciseId, "/exercise_questions.json"), params); } function updateExerciseQuestion(id, params) { return put("exercise_questions/".concat(id, ".json"), params); } // EXTERNAL MODULE: ./src/components/SplitContainer/index.tsx + 1 modules var SplitContainer = __webpack_require__(76695); // EXTERNAL MODULE: ./node_modules/antd/es/drawer/style/index.js + 1 modules var drawer_style = __webpack_require__(11400); // EXTERNAL MODULE: ./node_modules/antd/es/drawer/index.js + 6 modules var drawer = __webpack_require__(63463); // EXTERNAL MODULE: ./src/components/monaco-editor/index.jsx + 3 modules var monaco_editor = __webpack_require__(8691); // EXTERNAL MODULE: ./src/components/tpi-code-setting/CodeSetting.tsx var CodeSetting = __webpack_require__(77696); // EXTERNAL MODULE: ./src/components/modal.tsx var modal = __webpack_require__(12264); // EXTERNAL MODULE: ./src/utils/urlTool.ts var urlTool = __webpack_require__(63778); ;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/CodePanel/index.less?modules // extracted by mini-css-extract-plugin /* harmony default export */ var CodePanelmodules = ({"code-panel-container":"code-panel-container___BZjjl","action-oj-bar":"action-oj-bar___xbXpK","active":"active___EMVKI"}); ;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/CodePanel/index.tsx //@ts-ignore var 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; (function (Types) { Types[Types["set_font_size"] = 0] = "set_font_size"; Types[Types["set_theme"] = 1] = "set_theme"; Types[Types["on_tab_to_space"] = 2] = "on_tab_to_space"; Types[Types["set_show_editor_setting"] = 3] = "set_show_editor_setting"; })(Types || (Types = {})); function reducer(state, action) { switch (action.type) { case Types.set_show_editor_setting: return objectSpread2_default()(objectSpread2_default()({}, state), {}, { showEditorSetting: action.payload }); case Types.set_theme: return objectSpread2_default()(objectSpread2_default()({}, state), {}, { theme: action.payload }); case Types.set_font_size: return objectSpread2_default()(objectSpread2_default()({}, state), {}, { fontSize: action.payload }); case Types.on_tab_to_space: return objectSpread2_default()(objectSpread2_default()({}, state), {}, { tabToSpace: action.payload }); default: throw new Error(); } } /* harmony default export */ var CodePanel = (function (_ref) { var value = _ref.value, onChange = _ref.onChange, language = _ref.language, onLanguage = _ref.onLanguage, languageItems = _ref.languageItems, _ref$ActionBarRender = _ref.ActionBarRender, ActionBarRender = _ref$ActionBarRender === void 0 ? function (onShowCodeSetting) { return /*#__PURE__*/(0,jsx_runtime.jsx)(DefaultActionBar, { languageItems: languageItems, onLanguage: onLanguage, language: language, onShowCodeSetting: onShowCodeSetting }); } : _ref$ActionBarRender; var _useReducer = (0,react.useReducer)(reducer, initialState), _useReducer2 = slicedToArray_default()(_useReducer, 2), state = _useReducer2[0], dispatch = _useReducer2[1]; var theme = state.theme, fontSize = state.fontSize, showEditorSetting = state.showEditorSetting, tabToSpace = state.tabToSpace; console.log(value, language, 'value'); var codeSettingOption = { onFontSizeChange: function onFontSizeChange(val) { dispatch({ type: Types.set_font_size, payload: val }); (0,urlTool/* toStore */.t)('cmFontSize', val); }, tabToSpace: tabToSpace, cmFontSize: fontSize, className: 'oj', cmCodeMode: theme, onTabToSpace: function onTabToSpace(checked) { dispatch({ type: Types.on_tab_to_space, payload: checked }); (0,urlTool/* toStore */.t)('cmTabToSpace', checked); }, onCodeModeChange: function onCodeModeChange(val) { dispatch({ type: Types.set_theme, payload: val }); (0,urlTool/* toStore */.t)('cmCodeMode', val); } }; function onHideCodeSetting() { dispatch({ type: Types.set_show_editor_setting, payload: false }); } function onShowCodeSetting() { dispatch({ type: Types.set_show_editor_setting, payload: true }); } var editorOption = { value: value, language: language, onChange: onChange, theme: theme, height: 'calc(100% - 56px)', options: { fontSize: fontSize, insertSpaces: tabToSpace } }; return /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, { children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: CodePanelmodules["code-panel-container"], children: [ActionBarRender(onShowCodeSetting), /*#__PURE__*/(0,jsx_runtime.jsx)(monaco_editor/* default */.ZP, objectSpread2_default()({}, editorOption), language)] }), /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, { children: /*#__PURE__*/(0,jsx_runtime.jsx)(drawer/* default */.Z, { className: "oj", title: null, placement: "right", closable: false, open: showEditorSetting, onClose: onHideCodeSetting, children: /*#__PURE__*/(0,jsx_runtime.jsx)(CodeSetting/* default */.Z, objectSpread2_default()({}, codeSettingOption)) }) })] }); }); function DefaultActionBar(_ref2) { var languageItems = _ref2.languageItems, language = _ref2.language, onShowCodeSetting = _ref2.onShowCodeSetting, onLanguage = _ref2.onLanguage; return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: CodePanelmodules["action-oj-bar"], children: [languageItems === null || languageItems === void 0 ? void 0 : languageItems.map(function (e) { return /*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: language === (e === null || e === void 0 ? void 0 : e.language) ? CodePanelmodules.active : '', onClick: function onClick() { return onLanguage(e === null || e === void 0 ? void 0 : e.language); }, children: e === null || e === void 0 ? void 0 : e.language }, e === null || e === void 0 ? void 0 : e.language); }), /*#__PURE__*/(0,jsx_runtime.jsx)("a", { onClick: onShowCodeSetting, children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-shezhi" }) })] }); } // EXTERNAL MODULE: ./node_modules/antd/es/tabs/style/index.js + 1 modules var tabs_style = __webpack_require__(99558); // EXTERNAL MODULE: ./node_modules/antd/es/tabs/index.js + 22 modules var tabs = __webpack_require__(3381); ;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/ManageModal/index.less?modules // extracted by mini-css-extract-plugin /* harmony default export */ var ManageModalmodules = ({"flex_box_center":"flex_box_center___4yAaY","flex_space_between":"flex_space_between___YaUgM","flex_box_vertical_center":"flex_box_vertical_center___zR3dp","flex_box_center_end":"flex_box_center_end___rwgS5","flex_box_column":"flex_box_column___LhFeP","wrap":"wrap___xTL91","in":"in___eSY86","btns":"btns___UdEGI","customModal":"customModal___CL0OL"}); ;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/ManageModal/index.tsx var ManageModal = function ManageModal(_ref) { var visible = _ref.visible, onOK = _ref.onOK, onCancel = _ref.onCancel; var _useState = (0,react.useState)(false), _useState2 = slicedToArray_default()(_useState, 2), loading = _useState2[0], setLoading = _useState2[1]; var _useState3 = (0,react.useState)(false), _useState4 = slicedToArray_default()(_useState3, 2), btnLoading = _useState4[0], setBtnLoading = _useState4[1]; var _useState5 = (0,react.useState)('1'), _useState6 = slicedToArray_default()(_useState5, 2), active = _useState6[0], setActive = _useState6[1]; var _useState7 = (0,react.useState)(''), _useState8 = slicedToArray_default()(_useState7, 2), text = _useState8[0], setText = _useState8[1]; var _useState9 = (0,react.useState)([]), _useState10 = slicedToArray_default()(_useState9, 2), dataSource = _useState10[0], setDataSource = _useState10[1]; var add = /*#__PURE__*/function () { var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() { var res; return regeneratorRuntime_default()().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: if (text) { _context.next = 3; break; } message/* default.warn */.ZP.warn("\u9898\u76EE".concat(title, "\u4E0D\u80FD\u4E3A\u7A7A")); return _context.abrupt("return"); case 3: setBtnLoading(true); _context.next = 6; return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", { method: 'post', body: { target: visible, name: text } }); case 6: res = _context.sent; if (!((res === null || res === void 0 ? void 0 : res.status) === 0)) { _context.next = 10; break; } onOK(); return _context.abrupt("return"); case 10: setBtnLoading(false); case 11: case "end": return _context.stop(); } }, _callee); })); return function add() { return _ref2.apply(this, arguments); }; }(); var getPointData = /*#__PURE__*/function () { var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() { var search, res, _args2 = arguments; return regeneratorRuntime_default()().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: search = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : ''; setLoading(true); _context2.next = 4; return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", { method: 'get', params: { target: visible, search: search } }); case 4: res = _context2.sent; setDataSource(res.tag_disciplines || []); setLoading(false); case 7: case "end": return _context2.stop(); } }, _callee2); })); return function getPointData() { return _ref3.apply(this, arguments); }; }(); var rename = function rename(r) { var text = r.name; es_modal/* default.confirm */.Z.confirm({ icon: null, className: 'custom-modal-divider', centered: true, title: '重命名', content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, { defaultValue: text, placeholder: "\u8BF7\u8F93\u5165".concat(title, "\u540D\u79F0\uFF0C\u4E0D\u8D85\u8FC720\u4E2A\u5B57"), maxLength: 20, onChange: function onChange(e) { text = e.target.value; } }) }), okText: '确认', cancelText: '取消', onOk: function () { var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() { var res; return regeneratorRuntime_default()().wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: if (text) { _context3.next = 3; break; } message/* default.warn */.ZP.warn("\u9898\u76EE".concat(title, "\u4E0D\u80FD\u4E3A\u7A7A")); return _context3.abrupt("return", Promise.reject()); case 3: _context3.next = 5; return (0,fetch/* default */.ZP)("/api/tag_disciplines/".concat(r.id, "/rename.json"), { method: 'post', body: { id: r.id, name: text } }); case 5: res = _context3.sent; if ((res === null || res === void 0 ? void 0 : res.status) === 0) { getPointData(); } case 7: case "end": return _context3.stop(); } }, _callee3); })); function onOk() { return _onOk.apply(this, arguments); } return onOk; }() }); }; var del = function del(r) { es_modal/* default.confirm */.Z.confirm({ icon: null, className: 'custom-modal-divider', centered: true, width: 570, title: '删除', content: visible === 'practice' ? /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { children: ["\u786E\u8BA4\u5C06\u9898\u76EE\u6765\u6E90\u201C", /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "c-light-primary", children: r.name }), "\u201D\u5220\u9664\u5417\uFF1F", /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), "\u5220\u9664\u540E\uFF0C\u4F1A\u5C06\u76F8\u5173\u9898\u76EE\u4E2D\u7684\u6765\u6E90\u8FDB\u884C\u6E05\u9664\u3002"] }) : /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { children: ["\u786E\u8BA4\u5C06\u9898\u76EE\u77E5\u8BC6\u70B9\u201C", /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "c-light-primary", children: r.name }), "\u201D\u5220\u9664\u5417\uFF1F", /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), "\u5220\u9664\u540E\uFF0C\u4F1A\u5C06\u76F8\u5173\u9898\u76EE\u4E2D\u7684\u77E5\u8BC6\u70B9\u8FDB\u884C\u6E05\u9664\u3002"] }), okText: '确认', cancelText: '取消', onOk: function () { var _onOk2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() { var res; return regeneratorRuntime_default()().wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return (0,fetch/* default */.ZP)("/api/tag_disciplines/".concat(r.id, ".json"), { method: 'delete', body: { id: r.id } }); case 2: res = _context4.sent; if ((res === null || res === void 0 ? void 0 : res.status) === 0) { getPointData(); } case 4: case "end": return _context4.stop(); } }, _callee4); })); function onOk() { return _onOk2.apply(this, arguments); } return onOk; }() }); }; var handleSearch = function handleSearch(e) { getPointData(e); }; var title = visible === 'practice' ? '知识点' : '来源'; return /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, { afterClose: function afterClose() { setBtnLoading(false); setLoading(false); setText(''); setActive('1'); setDataSource([]); }, centered: true, keyboard: false, width: 600, title: "".concat(title, "\u7BA1\u7406"), open: !!visible, className: ManageModalmodules.customModal, footer: null, onCancel: onCancel, children: /*#__PURE__*/(0,jsx_runtime.jsx)("section", { className: ManageModalmodules.wrap, children: /*#__PURE__*/(0,jsx_runtime.jsxs)(tabs/* default */.Z, { activeKey: active, onChange: function onChange(key) { setText(''); setActive(key); getPointData(); }, children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(tabs/* default.TabPane */.Z.TabPane, { tab: "\u65B0\u589E".concat(title), children: [/*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, { value: text, onChange: function onChange(e) { return setText(e.target.value); }, className: ManageModalmodules["in"], placeholder: "\u8F93\u5165".concat(title, "\u540D\u79F0\uFF0C\u4E0D\u8D85\u8FC720\u4E2A\u5B57"), maxLength: 20 }), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: ManageModalmodules.btns, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { onClick: onCancel, className: "mr20", children: "\u53D6\u6D88 " }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { loading: btnLoading, onClick: add, type: "primary", children: "\u786E\u8BA4\u65B0\u5EFA" })] })] }, "1"), /*#__PURE__*/(0,jsx_runtime.jsxs)(tabs/* default.TabPane */.Z.TabPane, { tab: "\u5DF2\u6709".concat(title), children: [/*#__PURE__*/(0,jsx_runtime.jsx)(input/* default.Search */.Z.Search, { allowClear: true, onSearch: handleSearch, value: text, onChange: function onChange(e) { return setText(e.target.value); }, className: ManageModalmodules["in"], placeholder: "\u8F93\u5165".concat(title, "\u540D\u79F0\u8FDB\u884C\u67E5\u8BE2") }), /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, { dataSource: dataSource, bordered: false, loading: loading, scroll: dataSource.length > 7 ? { y: 300 } : {}, style: { padding: '0 40px 20px 40px' }, columns: [{ title: "".concat(title, "\u540D\u79F0"), dataIndex: 'name', ellipsis: true }, { title: '操作', dataIndex: 'action', width: 120, render: function render(v, r) { return /*#__PURE__*/(0,jsx_runtime.jsxs)("span", { children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", { onClick: function onClick() { return rename(r); }, className: "current mr10 c-light-primary", children: "\u91CD\u547D\u540D" }), /*#__PURE__*/(0,jsx_runtime.jsx)("span", { onClick: function onClick() { return del(r); }, className: "current c-grey-666", children: "\u5220\u9664" })] }); } }], pagination: false })] }, "2")] }) }) }); }; /* harmony default export */ var AddOrEdit_ManageModal = (ManageModal); // EXTERNAL MODULE: ./src/utils/env.ts + 1 modules var env = __webpack_require__(59758); // EXTERNAL MODULE: ./src/pages/Shixuns/Edit/body/Level/Challenges/components/UploadFile/index.tsx + 2 modules var UploadFile = __webpack_require__(29201); // EXTERNAL MODULE: ./node_modules/moment/moment.js var moment = __webpack_require__(30381); var moment_default = /*#__PURE__*/__webpack_require__.n(moment); // EXTERNAL MODULE: ./src/utils/util.tsx var util = __webpack_require__(29427); // EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx + 1 modules var RenderHtml = __webpack_require__(12768); // EXTERNAL MODULE: ./src/utils/authority.ts var authority = __webpack_require__(7); ;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/index.tsx //@ts-ignore var TextArea = input/* default.TextArea */.Z.TextArea; var AddOrEdit_confirm = es_modal/* default.confirm */.Z.confirm; var Panel = collapse/* default.Panel */.Z.Panel; var AddOrEdit_initialState = { loading: true, user: null, status: 0, data: undefined, lastedUpdateTime: 0 }; var AddOrEdit_Types; (function (Types) { Types[Types["SET_INITAL_DATA"] = 0] = "SET_INITAL_DATA"; Types[Types["SET_LOADING"] = 1] = "SET_LOADING"; Types[Types["SET_STATUS"] = 2] = "SET_STATUS"; })(AddOrEdit_Types || (AddOrEdit_Types = {})); var initText = '#### 题目描述\n现有一个整型数组 `nums`,请编写程序将数组 `nums` 中的所有 `$$0$$` 移动到数组的末尾,但不改变非零元素在数组中的相对位置。请在原数组 `nums` 上进行操作。\n#### 输入输出格式\n**输入格式**\n第一行有一个整数 `numsSize`,表示数组 `nums` 的大小;\n第二行有 `numsSize` 个整数,表示数组 `nums` 的所有元素,每个整数用一个空格隔开。\n**输出格式**\n一行输出数组 `nums` 的所有元素,有 `numsSize` 个整数,每个整数用一个空格隔开。\n#### 输入输出样例1\n**输入**\n`4`\n`0 1 2 3`\n**输出**\n`1 2 3 0`\n**解释(可选)**\nXXXXX\n#### 输入输出样例2\n**输入**\n`5`\n`1 1 0 1 0`\n**输出**\n`1 1 1 0 0`\n**解释(可选)**\nXXXXX\n#### 说明提示\n-`1≤n≤100`'; function AddOrEdit_reducer(state, action) { switch (action.type) { case AddOrEdit_Types.SET_INITAL_DATA: return objectSpread2_default()(objectSpread2_default()({}, state), action.payload); case AddOrEdit_Types.SET_LOADING: return objectSpread2_default()(objectSpread2_default()({}, state), {}, { loading: action.payload }); case AddOrEdit_Types.SET_STATUS: return objectSpread2_default()(objectSpread2_default()({}, state), {}, { status: action.payload }); default: throw new Error(); } } /* harmony default export */ var AddOrEdit = (function () { var _data$hack, _data$hack2, _languageItems$find; var location = (0,_umi_production_exports.useLocation)(); var _useParams = (0,_umi_production_exports.useParams)(), id = _useParams.id; var _Form$useForm = es_form/* default.useForm */.Z.useForm(), _Form$useForm2 = slicedToArray_default()(_Form$useForm, 1), form = _Form$useForm2[0]; var _useState = (0,react.useState)(), _useState2 = slicedToArray_default()(_useState, 2), formValue = _useState2[0], setFormValue = _useState2[1]; var _useState3 = (0,react.useState)(false), _useState4 = slicedToArray_default()(_useState3, 2), visible = _useState4[0], setVisible = _useState4[1]; var _useState5 = (0,react.useState)([]), _useState6 = slicedToArray_default()(_useState5, 2), uploadData = _useState6[0], setUploadData = _useState6[1]; var _useState7 = (0,react.useState)([]), _useState8 = slicedToArray_default()(_useState7, 2), pointData = _useState8[0], setPointData = _useState8[1]; var _useState9 = (0,react.useState)([]), _useState10 = slicedToArray_default()(_useState9, 2), sourceData = _useState10[0], setSourceData = _useState10[1]; var _useState11 = (0,react.useState)([]), _useState12 = slicedToArray_default()(_useState11, 2), dataSource = _useState12[0], setDataSource = _useState12[1]; var _useState13 = (0,react.useState)([]), _useState14 = slicedToArray_default()(_useState13, 2), languageItems = _useState14[0], setLanguageItems = _useState14[1]; var _useState15 = (0,react.useState)('C'), _useState16 = slicedToArray_default()(_useState15, 2), language = _useState16[0], setLanguage = _useState16[1]; var _useReducer = (0,react.useReducer)(AddOrEdit_reducer, AddOrEdit_initialState), _useReducer2 = slicedToArray_default()(_useReducer, 2), state = _useReducer2[0], dispatch = _useReducer2[1]; var loading = state.loading, data = state.data, user = state.user, status = state.status; var hack_sets = data === null || data === void 0 ? void 0 : data.hack_sets; var test_set_average = data === null || data === void 0 ? void 0 : (_data$hack = data.hack) === null || _data$hack === void 0 ? void 0 : _data$hack.test_set_average; var _useState17 = (0,react.useState)(false), _useState18 = slicedToArray_default()(_useState17, 2), ischecked = _useState18[0], setischecked = _useState18[1]; var saveLanguageItems = (0,react.useRef)([]); var _useState19 = (0,react.useState)(false), _useState20 = slicedToArray_default()(_useState19, 2), btnOneLoading = _useState20[0], setBtnOneLoading = _useState20[1]; var _useState21 = (0,react.useState)(false), _useState22 = slicedToArray_default()(_useState21, 2), btnTwoLoading = _useState22[0], setBtnTwoLoading = _useState22[1]; var btnClickStatus = (0,react.useRef)(true); var _useState23 = (0,react.useState)({}), _useState24 = slicedToArray_default()(_useState23, 2), reviewData = _useState24[0], setReviewData = _useState24[1]; (0,react.useEffect)(function () { (0,_umi_production_exports.getDvaApp)()._store.dispatch({ type: 'globalSetting/headerFooterToggle', payload: false }); (0,_umi_production_exports.getDvaApp)()._store.dispatch({ type: 'globalSetting/onlyShowBackTopToggle', payload: true }); return function () { (0,_umi_production_exports.getDvaApp)()._store.dispatch({ type: 'globalSetting/headerFooterToggle', payload: true }); (0,_umi_production_exports.getDvaApp)()._store.dispatch({ type: 'globalSetting/onlyShowBackTopToggle', payload: false }); }; }, []); (0,react.useEffect)(function () { setTimeout(function () { document.title = '在线刷题'; }, 400); }); var getPointData = /*#__PURE__*/function () { var _ref = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() { var res1, res2; return regeneratorRuntime_default()().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 2; return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", { method: 'get', params: { target: 'practice' // position: 'index' } }); case 2: res1 = _context.sent; _context.next = 5; return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", { method: 'get', params: { target: 'practice_source' // position: 'index' } }); case 5: res2 = _context.sent; setPointData(res1.tag_disciplines || []); setSourceData(res2.tag_disciplines || []); case 8: case "end": return _context.stop(); } }, _callee); })); return function getPointData() { return _ref.apply(this, arguments); }; }(); var initLanguage = [{ language: 'C', code: '' }, { language: 'C++', code: '' }, { language: 'Java', code: '' }, { language: 'Python', code: '' }]; var initData = (0,react.useCallback)( /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() { var response, _user, _language, _hack_sets, practice_codes, description, difficulty, name, open_or_not, time_limit, _test_set_average, test_set_score, _status, tag_discipline_ids, source_discipline_ids, item_banks_group_id, _response$is_file, is_file, hide_actual_output, review_privilege, review_description, review, new_hack_sets, rs, newCodes, _yield$getUser, _user2; return regeneratorRuntime_default()().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: dispatch({ type: AddOrEdit_Types.SET_LOADING, payload: true }); if (!id) { _context2.next = 19; break; } _context2.next = 4; return getProgrammingTopic(id); case 4: response = _context2.sent; _user = response.user, _language = response.language, _hack_sets = response.practice_sets, practice_codes = response.practice_codes, description = response.description, difficulty = response.difficulty, name = response.name, open_or_not = response.open_or_not, time_limit = response.time_limit, _test_set_average = response.test_set_average, test_set_score = response.test_set_score, _status = response.status, tag_discipline_ids = response.tag_discipline_ids, source_discipline_ids = response.source_discipline_ids, item_banks_group_id = response.item_banks_group_id, _response$is_file = response.is_file, is_file = _response$is_file === void 0 ? false : _response$is_file, hide_actual_output = response.hide_actual_output, review_privilege = response.review_privilege, review_description = response.review_description; review = { review_privilege: review_privilege, status: _status, review_description: review_description, name: name }; setReviewData(review); setischecked(hide_actual_output); new_hack_sets = is_file ? [{ input: '', output: '', score: 100, position: 1 }] : _hack_sets; if (is_file) { setUploadData(_hack_sets); form.setFieldsValue({ hack_sets: new_hack_sets }); } else { setUploadData([]); } //@ts-ignore rs = { loading: true, user: _user, status: _status, data: { hack: { difficulty: difficulty, name: name, description: description, open_or_not: open_or_not, time_limit: time_limit, test_set_average: _test_set_average, test_set_score: test_set_score, tag_discipline_ids: tag_discipline_ids, source_discipline_ids: source_discipline_ids, is_file: is_file }, hack_sets: new_hack_sets } }; dispatch({ type: AddOrEdit_Types.SET_INITAL_DATA, payload: rs }); setFormValue({ hack: { difficulty: difficulty, name: name, description: description, open_or_not: open_or_not, time_limit: time_limit, test_set_average: _test_set_average, test_set_score: test_set_score, tag_discipline_ids: tag_discipline_ids, source_discipline_ids: source_discipline_ids, is_file: is_file } }); newCodes = practice_codes === null || practice_codes === void 0 ? void 0 : practice_codes.map(function (e) { return objectSpread2_default()(objectSpread2_default()({}, e), {}, { code: base64.Base64.decode(e === null || e === void 0 ? void 0 : e.code) }); }); setLanguageItems(newCodes); saveLanguageItems.current = newCodes; _context2.next = 27; break; case 19: _context2.next = 21; return getUser(); case 21: _yield$getUser = _context2.sent; _user2 = _yield$getUser.user; dispatch({ type: AddOrEdit_Types.SET_INITAL_DATA, payload: { loading: true, status: 0, user: _user2, data: { hack: { difficulty: '', time_limit: 3, description: initText, test_set_score: true, test_set_average: true, open_or_not: true, name: '', is_file: false }, hack_sets: [{ input: '', output: '', score: 100, position: 1 }] } } }); setFormValue({ hack: { difficulty: '', time_limit: 3, description: '', test_set_average: true, open_or_not: true, name: '', is_file: false } }); setLanguageItems(initLanguage); saveLanguageItems.current = initLanguage; case 27: dispatch({ type: AddOrEdit_Types.SET_LOADING, payload: false }); case 28: case "end": return _context2.stop(); } }, _callee2); })), [id]); (0,react.useEffect)(function () { try { initData(); getPointData(); } catch (error) { console.log(error, '----'); } }, []); function onSubmit(_x, _x2) { return _onSubmit.apply(this, arguments); } function _onSubmit() { _onSubmit = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee8(values, type) { var _res; var _values, hack_sets, hack, update_hack_sets, new_hack_sets, sumScore, new_list, _iterator, _step, item, res, newLanguageItems, _res2, _res2$similar_practic, _res3, _res4, _res5; return regeneratorRuntime_default()().wrap(function _callee8$(_context8) { while (1) switch (_context8.prev = _context8.next) { case 0: _values = objectSpread2_default()({}, values), hack_sets = _values.hack_sets, hack = _values.hack; hack.hide_actual_output = ischecked; update_hack_sets = []; new_hack_sets = []; sumScore = 0; new_list = hack !== null && hack !== void 0 && hack.is_file ? uploadData.map(function (e, i) { return objectSpread2_default()(objectSpread2_default()({}, e), {}, { position: i + 1 }); }) : hack_sets.map(function (e) { return objectSpread2_default()(objectSpread2_default()({}, e), {}, { is_file: false }); }); _iterator = createForOfIteratorHelper_default()(new_list); try { for (_iterator.s(); !(_step = _iterator.n()).done;) { item = _step.value; sumScore += item.score; if (item.id && item.id >= 0) { update_hack_sets.push(item); } else { new_hack_sets.push(item); } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } if (new_list !== null && new_list !== void 0 && new_list.length) { _context8.next = 11; break; } message/* default.error */.ZP.error('测试集不能为空'); return _context8.abrupt("return"); case 11: if (!(sumScore !== 100 && !hack.test_set_score)) { _context8.next = 14; break; } message/* default.error */.ZP.error('测试集的评分占比之和必须等于100'); return _context8.abrupt("return"); case 14: if (!(new_list !== null && new_list !== void 0 && new_list.some(function (e) { return !e.output; }))) { _context8.next = 17; break; } message/* default.error */.ZP.error('测试集输出不能为空'); return _context8.abrupt("return"); case 17: if (btnClickStatus.current) { setBtnOneLoading(true); } else { setBtnTwoLoading(true); } //编辑 newLanguageItems = languageItems === null || languageItems === void 0 ? void 0 : languageItems.map(function (e) { return objectSpread2_default()(objectSpread2_default()({}, e), {}, { code: base64.Base64.encode(e === null || e === void 0 ? void 0 : e.code) }); }); if (!id) { _context8.next = 25; break; } _context8.next = 22; return updateProgrammingTopic(id, { practice: hack, practice_codes: newLanguageItems, practice_sets: new_hack_sets, update_practice_sets: update_hack_sets }); case 22: res = _context8.sent; _context8.next = 28; break; case 25: _context8.next = 27; return addProgrammingTopic({ practice: hack, practice_codes: newLanguageItems, practice_sets: new_list, publish: !btnClickStatus.current }); case 27: res = _context8.sent; case 28: setBtnOneLoading(false); setBtnTwoLoading(false); if (!(((_res = res) === null || _res === void 0 ? void 0 : _res.status) === 0)) { _context8.next = 46; break; } if (!((_res2 = res) !== null && _res2 !== void 0 && (_res2$similar_practic = _res2.similar_practice) !== null && _res2$similar_practic !== void 0 && _res2$similar_practic.length)) { _context8.next = 35; break; } setVisible(true); setDataSource((_res3 = res) === null || _res3 === void 0 ? void 0 : _res3.similar_practice); return _context8.abrupt("return"); case 35: if (!id) { _context8.next = 44; break; } message/* default.success */.ZP.success('保存成功'); if (btnClickStatus.current) { _context8.next = 42; break; } _context8.next = 40; return (0,fetch/* default */.ZP)("/api/practices/".concat(id, "/start"), { method: 'get' }); case 40: _res4 = _context8.sent; if ((_res4 === null || _res4 === void 0 ? void 0 : _res4.status) === 0) { _umi_production_exports.history.push("/problems/".concat(_res4 === null || _res4 === void 0 ? void 0 : _res4.identifier, "/oj/").concat(id)); } case 42: _context8.next = 46; break; case 44: message/* default.success */.ZP.success('新建成功'); _umi_production_exports.history.replace("/problems/".concat((_res5 = res) === null || _res5 === void 0 ? void 0 : _res5.identifier, "/ojedit")); case 46: case "end": return _context8.stop(); } }, _callee8); })); return _onSubmit.apply(this, arguments); } function onBack() { _umi_production_exports.history.replace('/problems'); } var handleUploadRatio = function handleUploadRatio(testSetData) { var score = Math.floor(100 / testSetData.length); var lastScore = score + 100 % testSetData.length; testSetData = testSetData.map(function (item, index) { if (index === testSetData.length - 1) { return objectSpread2_default()(objectSpread2_default()({}, item), {}, { score: lastScore }); } return objectSpread2_default()(objectSpread2_default()({}, item), {}, { score: score }); }); setUploadData(testSetData); }; function onChangeScore(e) { if (!e.target.value) { handleUploadRatio(uploadData); } dispatch({ type: AddOrEdit_Types.SET_INITAL_DATA, payload: { data: objectSpread2_default()(objectSpread2_default()({}, data), {}, { hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, { test_set_score: e.target.value }) }) } }); } function onChangeFile(e) { dispatch({ type: AddOrEdit_Types.SET_INITAL_DATA, payload: { data: objectSpread2_default()(objectSpread2_default()({}, data), {}, { hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, { is_file: e.target.value }) }) } }); } function onChangehide(e) { setischecked(e.target.checked); } function onChangeAverage(e) { var value = e.target.value; if (value) { handleUploadRatio(uploadData); } dispatch({ type: AddOrEdit_Types.SET_INITAL_DATA, payload: { data: objectSpread2_default()(objectSpread2_default()({}, data), {}, { hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, { test_set_average: value }) }) } }); } function onAddTestCase() { var rs = form.getFieldValue('hack_sets'); var len = rs.length + 1; var averageMark = Math.floor(100 / len); var remainder = 100 % len; rs.map(function (item, index) { if (test_set_average) { item.score = averageMark; } item.position = index + 1; return item; }); rs.push({ input: '', output: '', position: len, score: test_set_average ? averageMark + remainder : 0 }); form.setFieldsValue({ hack_sets: rs }); dispatch({ type: AddOrEdit_Types.SET_INITAL_DATA, payload: { data: objectSpread2_default()(objectSpread2_default()({}, data), {}, { hack_sets: rs }) } }); } (0,react.useEffect)(function () { if (test_set_average) { var len = hack_sets === null || hack_sets === void 0 ? void 0 : hack_sets.length; var averageMark = Math.floor(100 / len); var remainder = 100 % len; hack_sets === null || hack_sets === void 0 ? void 0 : hack_sets.map(function (item, index) { item.score = averageMark; item.position = index + 1; if (index === len - 1) { item.score = averageMark + remainder; } return item; }); dispatch({ type: AddOrEdit_Types.SET_INITAL_DATA, payload: { data: objectSpread2_default()(objectSpread2_default()({}, data), {}, { hack_sets: hack_sets }) } }); form.setFieldsValue({ hack_sets: hack_sets }); } }, [test_set_average]); function onRemoveTestCase(index) { var sets = form.getFieldValue('hack_sets'); var len = (sets === null || sets === void 0 ? void 0 : sets.length) - 1; var averageMark = Math.ceil(100 / len); var remainder = 100 % len; sets.splice(index, 1); sets === null || sets === void 0 ? void 0 : sets.map(function (item, index) { if (test_set_average) { item.score = averageMark; if (index === len - 1) { item.score = averageMark + remainder; } } item.position = index + 1; return item; }); dispatch({ type: AddOrEdit_Types.SET_INITAL_DATA, payload: { data: objectSpread2_default()(objectSpread2_default()({}, data), {}, { hack_sets: sets }) } }); form.setFieldsValue({ hack_sets: sets }); } function onChangeLanguage(language) { setLanguage(language); } var onChangeLanguageValue = function onChangeLanguageValue(e) { var _saveLanguageItems$cu; var index = (_saveLanguageItems$cu = saveLanguageItems.current) === null || _saveLanguageItems$cu === void 0 ? void 0 : _saveLanguageItems$cu.findIndex(function (e) { return e.language === language; }); saveLanguageItems.current[index].code = e; setLanguageItems(saveLanguageItems.current); }; var handleValuesChange = function handleValuesChange(changedValues) { setFormValue(objectSpread2_default()({}, form.getFieldsValue())); }; var skip = /*#__PURE__*/function () { var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3(v) { var res; 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/practices/".concat(v, "/start"), { method: 'get' }); case 2: res = _context3.sent; if ((res === null || res === void 0 ? void 0 : res.status) === 0) { (0,util/* openNewWindow */.xg)("/problems/".concat(res === null || res === void 0 ? void 0 : res.identifier, "/oj/").concat(v)); } case 4: case "end": return _context3.stop(); } }, _callee3); })); return function skip(_x3) { return _ref3.apply(this, arguments); }; }(); var getPassResult = /*#__PURE__*/function () { var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() { var response, name, status, review_privilege, review_description, review; return regeneratorRuntime_default()().wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return getProgrammingTopic(id); case 2: response = _context4.sent; name = response.name, status = response.status, review_privilege = response.review_privilege, review_description = response.review_description; review = { review_privilege: review_privilege, status: status, review_description: review_description, name: name }; setReviewData(review); case 6: case "end": return _context4.stop(); } }, _callee4); })); return function getPassResult() { return _ref4.apply(this, arguments); }; }(); var handleNoPass = function handleNoPass() { var text = ''; es_modal/* default.confirm */.Z.confirm({ icon: null, width: 700, className: 'custom-modal-divider', centered: true, title: '不通过原因', content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: "mt20", children: /*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor/* default */.Z, { className: AddOrEditmodules.MdEditor, defaultValue: text, onChange: function onChange(e) { text = e; } }) }), okText: '确认', cancelText: '取消', onOk: function () { var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5() { var res; return regeneratorRuntime_default()().wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: if (text) { _context5.next = 3; break; } message/* default.warn */.ZP.warn("\u4E0D\u901A\u8FC7\u539F\u56E0\u4E0D\u80FD\u4E3A\u7A7A"); return _context5.abrupt("return", Promise.reject()); case 3: _context5.next = 5; return (0,fetch/* default */.ZP)("/api/practices/".concat(id, "/review.json"), { method: 'post', body: { op: 'fail', description: text } }); case 5: res = _context5.sent; if ((res === null || res === void 0 ? void 0 : res.status) === 0) { message/* default.success */.ZP.success('提交成功'); getPassResult(); } case 7: case "end": return _context5.stop(); } }, _callee5); })); function onOk() { return _onOk.apply(this, arguments); } return onOk; }() }); }; var handlePass = /*#__PURE__*/function () { var _ref5 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee7() { return regeneratorRuntime_default()().wrap(function _callee7$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: es_modal/* default.confirm */.Z.confirm({ icon: null, // width: 700, className: "custom-modal-divider", centered: true, title: '提示', content: "\u786E\u8BA4\u5C06\u9898\u76EE\u300A".concat(reviewData === null || reviewData === void 0 ? void 0 : reviewData.name, "\u300B\u7684\u5BA1\u6838\u901A\u8FC7\u5417\uFF1F"), okText: '确认', cancelText: "取消", onOk: function () { var _onOk2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6() { var res; return regeneratorRuntime_default()().wrap(function _callee6$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return (0,fetch/* default */.ZP)("/api/practices/".concat(id, "/review.json"), { method: 'post', body: { op: 'pass' } }); case 2: res = _context6.sent; if ((res === null || res === void 0 ? void 0 : res.status) === 0) { message/* default.success */.ZP.success('提交成功'); getPassResult(); } case 4: case "end": return _context6.stop(); } }, _callee6); })); function onOk() { return _onOk2.apply(this, arguments); } return onOk; }() }); case 1: case "end": return _context7.stop(); } }, _callee7); })); return function handlePass() { return _ref5.apply(this, arguments); }; }(); var handleNoPassReason = function handleNoPassReason() { var modal = es_modal/* default.confirm */.Z.confirm({ icon: null, width: 700, className: "".concat(AddOrEditmodules.cusModal, " custom-modal-divider"), centered: true, title: /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, { children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, { flex: "1", children: "\u4E0D\u901A\u8FC7\u539F\u56E0" }), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, { children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "iconfont icon-guanbi7 font12 current c-grey-c", onClick: function onClick() { return modal.destroy(); } }) })] }), content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, { className: "mt20", value: (reviewData === null || reviewData === void 0 ? void 0 : reviewData.review_description) || '' }) }) }); }; return /*#__PURE__*/(0,jsx_runtime.jsxs)(spin/* default */.Z, { spinning: loading, size: "large", className: AddOrEditmodules["oj-custom-large-spin"], children: [!data ? null : /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, { children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("header", { className: AddOrEditmodules.header, children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", { children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", { src: "".concat(env/* default.IMG_SERVER */.Z.IMG_SERVER, "/images/").concat(user === null || user === void 0 ? void 0 : user.image_url), alt: "user", width: 30 }), /*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: user === null || user === void 0 ? void 0 : user.name })] }), /*#__PURE__*/(0,jsx_runtime.jsxs)("h2", { children: [" ", data === null || data === void 0 ? void 0 : (_data$hack2 = data.hack) === null || _data$hack2 === void 0 ? void 0 : _data$hack2.name, " "] }), id ? /*#__PURE__*/(0,jsx_runtime.jsxs)("a", { className: AddOrEditmodules.btn_back, onClick: onBack, children: [' ', /*#__PURE__*/(0,jsx_runtime.jsx)(PoweroffOutlined/* default */.Z, {}), "\u9000\u51FA"] }) : null] }), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, { form: form, initialValues: data, layout: "vertical", className: AddOrEditmodules["oj-form-container"], onValuesChange: handleValuesChange, onFinish: onSubmit, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(SplitContainer/* default */.Z, { hideResize: true, className: AddOrEditmodules["oj-problems"], leftChild: /*#__PURE__*/(0,jsx_runtime.jsx)(LeftPanel, { formValue: formValue, onRemoveTestCase: onRemoveTestCase, onAddTestCase: onAddTestCase, hack: data.hack, onChangeScore: onChangeScore, onChangehide: onChangehide, onChangeAverage: onChangeAverage, onChangeFile: onChangeFile, uploadData: uploadData, setUploadData: setUploadData, handleUploadRatio: handleUploadRatio, ischecked: ischecked, pointData: pointData, sourceData: sourceData, getPointData: getPointData }), rightChild: /*#__PURE__*/(0,jsx_runtime.jsx)(CodePanel, { value: languageItems === null || languageItems === void 0 ? void 0 : (_languageItems$find = languageItems.find(function (e) { return e.language === language; })) === null || _languageItems$find === void 0 ? void 0 : _languageItems$find.code, onChange: onChangeLanguageValue, onLanguage: onChangeLanguage, languageItems: languageItems, language: language }) }), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules.footer, children: [!!id && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules.result, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: "\u5BA1\u6838\u7ED3\u679C:" }), reviewData !== null && reviewData !== void 0 && reviewData.review_privilege ? /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", { onClick: handlePass, className: AddOrEditmodules.pass, children: "\u901A\u8FC7" }), /*#__PURE__*/(0,jsx_runtime.jsx)("div", { onClick: handleNoPass, className: AddOrEditmodules.noPass, children: "\u4E0D\u901A\u8FC7" })] }) : /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { children: [(reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 0 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules.passText, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-tongguo" }), "\u672A\u53D1\u5E03"] }), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 1 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules.passText, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-tongguo" }), "\u5DF2\u516C\u5F00"] }), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 2 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules.passText, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-tongguo" }), "\u672A\u5BA1\u6279"] }), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 3 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules.passText, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-tongguo" }), "\u5BA1\u6838\u4E2D"] }), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 4 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules.passText, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-tongguo" }), "\u5BA1\u6838\u5B8C\u6210\u5F85\u516C\u5F00"] }), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 5 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules.noPassText, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-weitongguo1" }), "\u5BA1\u6838\u4E0D\u901A\u8FC7", /*#__PURE__*/(0,jsx_runtime.jsx)("span", { onClick: handleNoPassReason, children: "\u67E5\u770B\u539F\u56E0" })] })] })] }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { type: "primary", ghost: true, onClick: onBack, children: "\u9000\u51FA\u7F16\u8F91" }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { disabled: btnTwoLoading, loading: btnOneLoading, type: "primary", onClick: function onClick() { btnClickStatus.current = true; form.submit(); }, children: "\u4FDD\u5B58 " }), id ? /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { disabled: btnOneLoading, loading: btnTwoLoading, style: { background: '#2FC25B', border: 0 }, type: "primary", onClick: function onClick() { btnClickStatus.current = false; form.submit(); }, children: "\u7ACB\u5373\u4F53\u9A8C" }) : /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { disabled: btnOneLoading, loading: btnTwoLoading, type: "primary", onClick: function onClick() { btnClickStatus.current = false; form.submit(); }, children: "\u4FDD\u5B58\u5E76\u53D1\u5E03\u5BA1\u6838" })] })] })] }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, { centered: true, destroyOnClose: true, footer: null, open: visible, onCancel: function onCancel() { return setVisible(false); }, title: "\u76F8\u4F3C\u6027\u68C0\u6D4B", width: "600px", children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { children: [/*#__PURE__*/(0,jsx_runtime.jsx)("p", { className: "font14", children: "\u7ECF\u7CFB\u7EDF\u68C0\u6D4B\u53D1\u73B0\uFF0C\u672C\u9898\u76EE\u4E0E\u7CFB\u7EDF\u4E2D\u5DF2\u521B\u5EFA\u7684\u9898\u76EE\u9AD8\u5EA6\u96F7\u540C\uFF0C\u8BF7\u8C03\u6574\u9898\u76EE\u540E\u518D\u8FDB\u884C\u4FDD\u5B58" }), /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, { dataSource: dataSource, bordered: false, scroll: dataSource.length > 7 ? { y: 300 } : {}, columns: [{ title: '相似题题目', dataIndex: 'name', ellipsis: true, render: function render(v, r) { return /*#__PURE__*/(0,jsx_runtime.jsx)("span", { onClick: function onClick() { return skip(r === null || r === void 0 ? void 0 : r.identifier); }, style: { textDecorationLine: 'underline' }, className: "current c-light-primary", children: v }); } }, { title: '创建时间', dataIndex: 'create_time', width: 170, render: function render(v) { var _moment; return (_moment = moment_default()(v)) === null || _moment === void 0 ? void 0 : _moment.format('YYYY-MM-DD HH:mm'); } }], pagination: false })] }) })] }); }); function LeftPanel(_ref6) { var _formValue$hack, _formValue$hack$name; var ischecked = _ref6.ischecked, formValue = _ref6.formValue, hack = _ref6.hack, onChangeAverage = _ref6.onChangeAverage, onChangeScore = _ref6.onChangeScore, onChangehide = _ref6.onChangehide, onChangeFile = _ref6.onChangeFile, onAddTestCase = _ref6.onAddTestCase, onRemoveTestCase = _ref6.onRemoveTestCase, uploadData = _ref6.uploadData, setUploadData = _ref6.setUploadData, handleUploadRatio = _ref6.handleUploadRatio, pointData = _ref6.pointData, sourceData = _ref6.sourceData, getPointData = _ref6.getPointData; var test_set_average = hack.test_set_average, test_set_score = hack.test_set_score; var _useState25 = (0,react.useState)(false), _useState26 = slicedToArray_default()(_useState25, 2), showUploadFile = _useState26[0], setShowUploadFile = _useState26[1]; var _useState27 = (0,react.useState)(false), _useState28 = slicedToArray_default()(_useState27, 2), manageVisible = _useState28[0], setManageVisible = _useState28[1]; var handleRemove = function handleRemove(item, key) { var newList = toConsumableArray_default()(uploadData); newList.splice(key, 1); if (test_set_average) { handleUploadRatio(newList); } else { setUploadData(newList); } }; var handleInputChange = function handleInputChange(e, key) { console.log(e, key); var testData = uploadData.map(function (test, testIndex) { if (testIndex === key) { return objectSpread2_default()(objectSpread2_default()({}, test), {}, { score: e.target.value ? Number(e.target.value) : 0 }); } return test; }); setUploadData(testData); }; var addUploadData = function addUploadData(files) { var newList = uploadData.concat(files); if (hack.test_set_average) { handleUploadRatio(newList); } else { setUploadData(newList); } }; function onStopPropagation(e) { e.stopPropagation(); } function addPoint() { if ((0,authority/* isSuperAdmins */.Ny)()) { setManageVisible('practice'); return; } var text = ''; es_modal/* default.confirm */.Z.confirm({ icon: null, className: 'custom-modal-divider', centered: true, title: '新建知识点', content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, { placeholder: "\u8BF7\u8F93\u5165\u77E5\u8BC6\u70B9\u540D\u79F0\uFF0C\u4E0D\u8D85\u8FC720\u4E2A\u5B57", maxLength: 20, onChange: function onChange(e) { text = e.target.value; } }) }), okText: '确认', cancelText: '取消', onOk: function () { var _onOk3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee9() { var res; return regeneratorRuntime_default()().wrap(function _callee9$(_context9) { while (1) switch (_context9.prev = _context9.next) { case 0: _context9.next = 2; return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", { method: 'post', body: { target: 'practice', name: text } }); case 2: res = _context9.sent; if ((res === null || res === void 0 ? void 0 : res.status) === 0) { getPointData(); } case 4: case "end": return _context9.stop(); } }, _callee9); })); function onOk() { return _onOk3.apply(this, arguments); } return onOk; }() }); } function addOrigin() { if ((0,authority/* isSuperAdmins */.Ny)()) { setManageVisible('practice_source'); return; } var text = ''; es_modal/* default.confirm */.Z.confirm({ icon: null, className: 'custom-modal-divider', centered: true, title: '新建来源', content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, { placeholder: "\u8BF7\u8F93\u5165\u6765\u6E90\u540D\u79F0\uFF0C\u4E0D\u8D85\u8FC720\u4E2A\u5B57", maxLength: 20, onChange: function onChange(e) { text = e.target.value; } }) }), okText: '确认', cancelText: '取消', onOk: function () { var _onOk4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee10() { var res; return regeneratorRuntime_default()().wrap(function _callee10$(_context10) { while (1) switch (_context10.prev = _context10.next) { case 0: _context10.next = 2; return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", { method: 'post', body: { target: 'practice_source', name: text } }); case 2: res = _context10.sent; if ((res === null || res === void 0 ? void 0 : res.status) === 0) { getPointData(); } case 4: case "end": return _context10.stop(); } }, _callee10); })); function onOk() { return _onOk4.apply(this, arguments); } return onOk; }() }); } return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules["oj-left-panel"], children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules["oj-form-info"], children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { label: "\u9898\u76EE\u540D\u79F0", name: ['hack', 'name'], rules: [{ required: true, message: '请输入题目名称' }], className: AddOrEditmodules.inputOne, children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, { bordered: false, maxLength: 60, placeholder: "\u8BF7\u8F93\u5165\u9898\u76EE\u540D\u79F0", suffix: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", { children: [(formValue === null || formValue === void 0 ? void 0 : (_formValue$hack = formValue.hack) === null || _formValue$hack === void 0 ? void 0 : (_formValue$hack$name = _formValue$hack.name) === null || _formValue$hack$name === void 0 ? void 0 : _formValue$hack$name.length) || 0, "/", /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "c-grey-999", children: "60" })] }) }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { name: ['hack', 'description'], valuePropName: "defaultValue", rules: [{ required: true, message: '请输入描述内容' }], children: /*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor/* default */.Z, { placeholder: "\u8BF7\u8F93\u5165\u9898\u76EE\u63CF\u8FF0\u2026", miniToolbar: true, id: "moop_cases_content", noStorage: true, height: 200 }) }), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules.row, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: AddOrEditmodules.a, children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { label: "\u96BE\u6613\u5EA6", name: ['hack', 'difficulty'], rules: [{ required: true, message: '请选择难易度' }], children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_select/* default */.Z, { children: getSelectOptions(Keys.difficulty) }) }) }), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules.b, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { label: '题目来源' // rules={[{ required: true, message: '请选择题目来源' }]} , name: ['hack', 'source_discipline_ids'], children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_select/* default */.Z, { placeholder: "\u9009\u62E9\u9898\u76EE\u6765\u6E90", showSearch: false, mode: "multiple", showArrow: true, getPopupContainer: function getPopupContainer(trigger) { return trigger.parentNode; }, children: sourceData.map(function (e) { return /*#__PURE__*/(0,jsx_runtime.jsx)(es_select/* default.Option */.Z.Option, { value: e.id, children: e.name }, e.id); }) }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { style: { padding: '0 18px' }, type: "primary", ghost: true, onClick: function onClick() { return addOrigin(); }, children: (0,authority/* isSuperAdmins */.Ny)() ? '来源管理' : '新建来源' })] })] }), /*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: AddOrEditmodules.row, children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules.b, style: { width: '100%', marginLeft: 0 }, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { label: '知识点', rules: [{ required: true, message: '请选择知识点' }], name: ['hack', 'tag_discipline_ids'], children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_select/* default */.Z, { placeholder: "\u9009\u62E9\u77E5\u8BC6\u70B9", showSearch: false, mode: "multiple", showArrow: true, getPopupContainer: function getPopupContainer(trigger) { return trigger.parentNode; }, children: pointData.map(function (e) { return /*#__PURE__*/(0,jsx_runtime.jsx)(es_select/* default.Option */.Z.Option, { value: e.id, children: e.name }, e.id); }) }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { type: "primary", ghost: true, onClick: function onClick() { return addPoint(); }, children: (0,authority/* isSuperAdmins */.Ny)() ? '知识点管理' : '新建知识点' })] }) }), /*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: AddOrEditmodules.field, children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { label: '单个测试集评测时长限制', name: ['hack', 'time_limit'], rules: [{ required: true, message: '请输入单个测试集评测时长限制' }, { type: 'number', min: 3, message: '最小限制时间是3秒' }], className: AddOrEditmodules.inputTwo, extra: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", { style: { position: 'absolute', left: 200, top: 11, color: '#333' }, children: ["\u79D2", /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "ml5 c-grey-999", children: "(\u4EE3\u7801\u6267\u884C\u6240\u5141\u8BB8\u7684\u6700\u5927\u65F6\u957F)" })] }), children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, { style: { width: 185 }, min: 3 }) }) }), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "tst-case-info", children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("h3", { className: "flex-container", style: { justifyContent: 'space-between' }, children: [' ', "\u6D4B\u8BD5\u7528\u4F8B\u4E0E\u7CFB\u7EDF\u8BC4\u5206\u89C4\u5219", !hack.is_file && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { style: { height: 40 }, type: "primary", ghost: true, onClick: onAddTestCase, children: "\u6DFB\u52A0\u6D4B\u8BD5\u7528\u4F8B" })] }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { name: ['hack', 'test_set_score'], children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default.Group */.ZP.Group, { onChange: onChangeScore, children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default */.ZP, { value: true, children: ["\u901A\u8FC7\u5168\u90E8\u6D4B\u8BD5\u96C6", /*#__PURE__*/(0,jsx_runtime.jsxs)("span", { className: "tip", children: [' ', "\uFF08\u5B66\u5458\u8BC4\u6D4B\uFF0C\u4EC5\u5F53\u6240\u6709\u6D4B\u8BD5\u96C6\u90FD\u6B63\u786E\u65F6\uFF0C\u624D\u83B7\u5F97\u4E00\u6B21\u6027\u5956\u52B1\uFF09"] })] }), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default */.ZP, { value: false, children: ["\u901A\u8FC7\u90E8\u5206\u6D4B\u8BD5\u96C6", /*#__PURE__*/(0,jsx_runtime.jsxs)("span", { className: "tip", children: [' ', "\uFF08\u5B66\u5458\u8BC4\u6D4B\uFF0C\u901A\u8FC7\u6D4B\u8BD5\u96C6\u5373\u53EF\u83B7\u5F97\u5BF9\u5E94\u5956\u52B1\uFF09"] })] })] }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, { style: { marginBottom: '5px' }, checked: ischecked, onChange: onChangehide, children: "\u9690\u85CF\u5B9E\u9645\u8F93\u51FA \uFF08\u9009\u4E2D\uFF0C\u5219\u5728\u5B66\u751F\u505A\u9898\u8FC7\u7A0B\u4E2D\u65E0\u6CD5\u770B\u5230\u5B9E\u9645\u8F93\u51FA\u7ED3\u679C\uFF0C\u4EC5\u5C55\u793A\u662F\u5426\u8BC4\u6D4B\u662F\u5426\u901A\u8FC7\uFF09" }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { className: AddOrEditmodules.testJi, name: ['hack', 'is_file'], label: "\u7528\u4F8B\u7C7B\u578B:", children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default.Group */.ZP.Group, { onChange: onChangeFile, children: /*#__PURE__*/(0,jsx_runtime.jsxs)(space/* default */.Z, { direction: "horizontal", children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, { value: false, children: "\u6587\u672C" }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, { value: true, children: "\u6587\u4EF6" })] }) }) }), !hack.test_set_score && /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { name: ['hack', 'test_set_average'], label: "\u7CFB\u7EDF\u8BC4\u5206\u5360\u6BD4", children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default.Group */.ZP.Group, { onChange: onChangeAverage, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, { value: true, children: "\u5747\u5206\u6BD4\u4F8B" }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, { value: false, children: "\u81EA\u5B9A\u4E49\u6BD4\u4F8B" })] }) }), hack.is_file && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: AddOrEditmodules.upBtn, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, { ghost: true, type: "primary", className: "mb20", onClick: function onClick() { return setShowUploadFile(true); }, children: "\u6279\u91CF\u4E0A\u4F20\u6D4B\u8BD5\u7528\u4F8B" }), /*#__PURE__*/(0,jsx_runtime.jsx)(UploadFile/* UploadTable */.Y2, { disabled: hack === null || hack === void 0 ? void 0 : hack.test_set_average, inputChange: handleInputChange, showScore: !hack.test_set_score, data: uploadData, onRemove: handleRemove })] }), !hack.is_file && /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.List */.Z.List, { name: "hack_sets", children: function children(fields, _ref7) { objectDestructuringEmpty_default()(_ref7); return /*#__PURE__*/(0,jsx_runtime.jsx)(collapse/* default */.Z, { accordion: true, children: fields.map(function (field, index) { return /*#__PURE__*/(0,jsx_runtime.jsxs)(Panel, { header: /*#__PURE__*/(0,jsx_runtime.jsxs)("a", { className: AddOrEditmodules["test-case-name"], children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", { children: ["\u6D4B\u8BD5\u7528\u4F8B", index + 1] }), !test_set_score ? /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { name: [field.name, 'score'], fieldKey: [field.fieldKey, 'score'], rules: [{ required: true, message: "\u8BF7\u8F93\u5165\u6D4B\u8BD5\u96C6".concat(index + 1, "\u8BC4\u5206") }], children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, { onClick: onStopPropagation, min: 0, max: 100, disabled: test_set_average }) }), /*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: "%" })] }) : null] }), extra: index > 0 ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", { onClick: onStopPropagation, children: /*#__PURE__*/(0,jsx_runtime.jsx)(popconfirm/* default */.Z, { okText: "\u786E\u5B9A", cancelText: "\u53D6\u6D88", title: '确定删除测试集' + (index + 1), onConfirm: function onConfirm() { onRemoveTestCase(index); }, children: /*#__PURE__*/(0,jsx_runtime.jsx)(CloseCircleOutlined/* default */.Z, { className: AddOrEditmodules["btn-remove-case"] }) }) }) : null, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { label: "\u8F93\u5165", name: [field.name, 'input'], fieldKey: [field.fieldKey, 'input'], children: /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {}) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, { label: "\u8F93\u51FA", name: [field.name, 'output'], fieldKey: [field.fieldKey, 'output'], rules: [{ required: true, message: '请输入输出内容' }], children: /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {}) })] }, "".concat(field.key, "--").concat(index)); }) }); } })] })] }), /*#__PURE__*/(0,jsx_runtime.jsx)(UploadFile/* default */.ZP, { rootIdentifier: null, visible: showUploadFile, onClose: function onClose() { return setShowUploadFile(false); }, onOK: addUploadData }), /*#__PURE__*/(0,jsx_runtime.jsx)(AddOrEdit_ManageModal, { visible: manageVisible, onCancel: function onCancel() { setManageVisible(false); getPointData(); }, onOK: function onOK() { setManageVisible(false); getPointData(); } })] }); } /***/ }), /***/ 63778: /*!******************************!*\ !*** ./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 */ 58971); /* harmony import */ var store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(store__WEBPACK_IMPORTED_MODULE_0__); var isDev = (/* unused pure expression or super */ null && ("production" === 'development')); function toStore(key, val) { var _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) { var _config = store__WEBPACK_IMPORTED_MODULE_0___default().get('__ec'); if (!_config) return defaultVal; return _config[key] === undefined ? defaultVal : _config[key]; } /***/ }), /***/ 12867: /*!****************************************************!*\ !*** ./src/components/tpi-code-setting/index.less ***! \****************************************************/ /***/ (function() { // extracted by mini-css-extract-plugin /***/ }) }]);