"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[48431,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'; /***/ }), /***/ 75490: /*!************************************************************!*\ !*** ./src/components/image-preview/index.tsx + 1 modules ***! \************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { "Z": function() { return /* binding */ image_preview; } }); // EXTERNAL MODULE: ./node_modules/antd/es/button/style/index.js + 1 modules var style = __webpack_require__(29913); // EXTERNAL MODULE: ./node_modules/antd/es/button/index.js var es_button = __webpack_require__(71577); // 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/image-preview/index.less // extracted by mini-css-extract-plugin // EXTERNAL MODULE: ./src/components/mediator.js var mediator = __webpack_require__(91562); // EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/ReloadOutlined.js + 1 modules var ReloadOutlined = __webpack_require__(33160); // EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/DownloadOutlined.js var DownloadOutlined = __webpack_require__(69753); // EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/CloseOutlined.js var CloseOutlined = __webpack_require__(28508); // EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js var jsx_runtime = __webpack_require__(85893); ;// CONCATENATED MODULE: ./src/components/image-preview/index.tsx /* harmony default export */ var image_preview = (function () { var _useState = (0,react.useState)(''), _useState2 = slicedToArray_default()(_useState, 2), url = _useState2[0], setUrl = _useState2[1]; var _useState3 = (0,react.useState)(0), _useState4 = slicedToArray_default()(_useState3, 2), deg = _useState4[0], setDeg = _useState4[1]; var saveUrl = (0,react.useRef)(''); (0,react.useEffect)(function () { var unSub = mediator/* default.subscribe */.Z.subscribe('preview-image', function (value) { setUrl(value); // window.document.body // document.body.style.height='100%' document.body.style.overflow = 'hidden'; }); return unSub; }, []); (0,react.useEffect)(function () { document.addEventListener('keydown', onViewEscClose); return function () { document.removeEventListener('keydown', onViewEscClose); }; }, []); (0,react.useEffect)(function () { saveUrl.current = url; }, [url]); function onViewEscClose(e) { if (e.keyCode == 27 && saveUrl.current) { onClose(); } } // https://data.educoder.net/api/attachments/1571649 function onClose() { // document.body.style.height='100%' document.body.style.overflow = 'auto'; setUrl(''); } function onRotate() { setDeg(deg + 90); } var maskRef = (0,react.useRef)(); var previewWrapperRef = (0,react.useRef)(); var handleMaskClick = function handleMaskClick(e) { if (e.nativeEvent.target === maskRef.current || e.nativeEvent.target === previewWrapperRef.current) { onClose(); } }; return /*#__PURE__*/(0,jsx_runtime.jsx)(react.Fragment, { children: !url ? null : /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "image-preview-container", ref: maskRef, onClick: handleMaskClick, children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: "button-group", children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(es_button/* default */.Z, { onClick: onRotate, children: ["\u65CB\u8F6C", /*#__PURE__*/(0,jsx_runtime.jsx)(ReloadOutlined/* default */.Z, {})] }), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_button/* default */.Z, { href: url, children: ["\u4E0B\u8F7D", /*#__PURE__*/(0,jsx_runtime.jsx)(DownloadOutlined/* default */.Z, {})] }), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_button/* default */.Z, { onClick: onClose, children: ["\u5173\u95ED", /*#__PURE__*/(0,jsx_runtime.jsx)(CloseOutlined/* default */.Z, {})] })] }), /*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: "preview-wrp-group", ref: previewWrapperRef, children: /*#__PURE__*/(0,jsx_runtime.jsx)("img", { className: "image-preview", src: url, alt: "\u9884\u89C8\u5927\u56FE", style: { transform: "rotate(".concat(deg, "deg)") } }) })] }) }); }); /***/ }), /***/ 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", 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$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); 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(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); /***/ }), /***/ 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]); } /***/ }), /***/ 92170: /*!******************************************************************************************!*\ !*** ./src/pages/Classrooms/Lists/Exercise/Export/components/Head/index.tsx + 5 modules ***! \******************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { "Z": function() { return /* binding */ components_Head; } }); // EXTERNAL MODULE: ./node_modules/antd/es/table/style/index.js + 1 modules var 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/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/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/@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/@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/objectSpread2.js var objectSpread2 = __webpack_require__(42122); var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2); // 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); // EXTERNAL MODULE: ./src/.umi-production/exports.ts + 8 modules var _umi_production_exports = __webpack_require__(89214); // EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/SettingOutlined.js + 1 modules var SettingOutlined = __webpack_require__(42952); ;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Exercise/Export/components/Head/index.less?modules // extracted by mini-css-extract-plugin /* harmony default export */ var Headmodules = ({"wrap":"wrap___SSpd0","img":"img___nbd2O","table":"table___fcP71","totalScore":"totalScore___YxSMe","people":"people___bf9pK","glassSeal":"glassSeal___dYhKO","paperHeader":"paperHeader___gYUbq","exportBtn":"exportBtn___nyRYQ"}); // EXTERNAL MODULE: ./src/service/exercise.ts var service_exercise = __webpack_require__(51412); // EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx + 1 modules var RenderHtml = __webpack_require__(12768); // EXTERNAL MODULE: ./src/utils/util.tsx var util = __webpack_require__(29427); // 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 modal = __webpack_require__(85402); // 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/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/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/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/upload/style/index.js + 1 modules var upload_style = __webpack_require__(13759); // EXTERNAL MODULE: ./node_modules/antd/es/upload/index.js + 20 modules var upload = __webpack_require__(7426); // 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/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/@ant-design/icons/es/icons/PlusOutlined.js var PlusOutlined = __webpack_require__(51042); ;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Exercise/Export/components/ExportSetting/index.less?modules // extracted by mini-css-extract-plugin /* harmony default export */ var ExportSettingmodules = ({"modalWrapper":"modalWrapper___rWDvO","exportSettingWrapper":"exportSettingWrapper___pCClH","imgPreviewPart":"imgPreviewPart___PCv0Y","tips":"tips___EVeBl","pottedLine":"pottedLine___AaY68","text":"text___ho3u_"}); // EXTERNAL MODULE: ./src/utils/fetch.ts var fetch = __webpack_require__(84519); // EXTERNAL MODULE: ./src/components/ImagesIcon/index.ts + 31 modules var ImagesIcon = __webpack_require__(44190); // EXTERNAL MODULE: ./src/components/mediator.js var mediator = __webpack_require__(91562); // EXTERNAL MODULE: ./src/utils/env.ts + 1 modules var env = __webpack_require__(59758); // EXTERNAL MODULE: ./src/components/markdown-editor/index.tsx + 10 modules var markdown_editor = __webpack_require__(55373); // EXTERNAL MODULE: ./src/components/image-preview/index.tsx + 1 modules var image_preview = __webpack_require__(75490); ;// CONCATENATED MODULE: ./src/assets/images/classrooms/halfDottedLine.png var halfDottedLine_namespaceObject = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAAECAYAAADLcnBRAAAAAXNSR0IArs4c6QAAAcNJREFUSEvtlT1oFFEURs+dndmAqGBAMCAoKAqChT+lYGER6xQLlsGdXWMQFETbtREhjQgmuxmLdJIEi1SxCdjYRpCQbkEhoihioYjMneyVCDtMCuG+fqedc9437775ZoTRNZrAaAL/nYDs3bFZTmjB0dA5Jbt8kRfseD2b4YgOOOXlh1wCv6XHttezFWq6wQUvX+WSa7yTBrte19qcUzjg5cs9RfRlgR9ez5oc1xrHvHyZE/NNnvPR69kdDmvOGS9f5gh/pMtWiJe3uRzCl1kTvJcOude1Gc7qgENevswxPvwrSN6kB7RCF5CIuWSRB16vSGkMjGUvX3LCZj3jkteze4zrT757+X0FSRgPeXHzJpsQXsYoohEvsup9Rk2ZM+O+lx9ykdCLM255PU2ZNOO1l6+cUb+ecdrrWYdYd1Avv++MxjgZUnpNeWPG1dCsCJrDgsyKcD10AYFXccaS19MWVzAeevkK108y7no9u83BQnnp5atcnHBD5vnldTXlKYT/FanxJOny1ptTtJm2AVNefsgZrNcz5r2etbhYGI+8fCXncz3zf2StQ1R8Yi00Z4+Pa9yULl+9rqY8Bs57+ZKLePYXdsiA6BdYLZkAAAAASUVORK5CYII="; ;// CONCATENATED MODULE: ./src/assets/images/classrooms/dottedLine.png var dottedLine_namespaceObject = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAn4AAAAECAYAAAAQ9jLuAAAAAXNSR0IArs4c6QAABLVJREFUaEPtmVuIVVUYgL+1z17H0S6kliWaJdlVS7pQBHajoLAMKpjo8hKdfc7MiNmoaA8Fx4IIjMzIuZx9sijLrkRGGURQdHkJjSy7G2bqWHaTKbO99pw/ztRs9rz9ax58qHPeDnzf+tf6/7XWXmtvQ+vXykArA60MtDLQykArA60MtDLwv8iAaY5SFnKCSznGd8R2iL2mzi6tJ51MdA1O0vIjnIUDpp/PtJ48T8G9xdlaPs/Zy/nItDOkdaXCGQ4maPlsTAHbTS+/aj0pMd0VOE7LZ3FC9pm1fKf1ZBFHuoRTtHwWx3DQ9PGpj5dUOM+Hz2JNZaupkmhd6eRU1+AILZ/FEXaYGj9pPSkz1RmmafncXPjF9PKt1pNlHOYGOV3L59aRM/187ONJmXOcIfBxmqydwDazmj+1nnQxyw1xlJbPxtTG92YNP2g96WCKE2Zo+SxOgd9MD99oPanS5gaYo+Vzc65hamzx8aTCXAfWxxmuUYEvTA+/az0pMdMVmKzlszFZ9phH2dP8P+Y6G3aaPn7Uxj5kde5mvDvAbG2//tN1FnabGgPaXMhCJruUmVo+t18Oml6+1HpSpegGOEvL5znbx2ZjEK0rHcxxQpuWz82Hr02N/VpPysxwhilaPovz75lt+OCXlOgHyr6NmIBVtsZyrZdGtDeE57R8xhm2FGPO1XrSzSQ3yM9aflShLZN8DmRJaXiT9j5kBgHtYY0XtH10EatEWKblR7jA0B/GdGg9F3GlCG9o+VyNthdjZmk9qRK6XTgtP6pG4zjR5zDrIt4W4RLfWAGUwjqPaT0XcbcI92n5XO42FGNu1nquwoUyxAdafoQzsM/W/TYLF/GHyBguNpa5ppet2j66EhsFFmj5jAtYUqyxWuslZe6gwRotn8vd67bO1VpPImY78bsINds2hr9s7PfgcCUGBP9LoQm4yNZ4TzumpMRTwK1aPstdwEpbo9r87yJeFeEa3zaA7mKdh7VeErEY0fNZXw2v2Vjfv+EHfcon2n7l5tNBW2e8j+dK7BU41scZnlMh82wf72u9JGI9wi1aPjemqq2zUuulFW5rDLFOy+dq9K6NuVjrSRfHu4SdWj7P2emM83nJkER8hXCyb6zAMD+M2aT10hI9DejU8rncPWRjlo4c/BYaw1XejcBLYcwTWs+VmYewQsvnuO025k6tJ10cnjo2aPk8F1pu8rkFu2h4c/F+i0mBB3wWY3ORSIPrfccksKkY06P1mm94UtEv3pF2BQaKsf7yIFWCdDevaPs1qkYFbve5/buI+4EzvWMFPGL7eVPrpRVulIb/gxF4x8Y8qI0jZU5LhVVaPlej/cXYr38u4kVgnG+ssMAi08cOrdc8NAMXaPlsIxPqYV0/j9IKC6Shn6e5/nxoY+7V9q95I0+FtVo+xzkb+63zJOJJAxN9Y4UBK3y+pLiIJcBlvnGM8ExY/2c/dmXuQTjfuw2Iw5iNWi+NuFYg0vKHvM5CYuvc4NO/MdfZstz08Lk2liuzFOFSLZ+tRXg6jHlW67mIK4DFWj7HbbMxd2k9KXN0Kjyu5Uc9a6ZxnamSat00ok/w/+ojQrVYZ7M2TlKm0wjztXyuRi+HMev+Bu2qoBRawxtVAAAAAElFTkSuQmCC"; // EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js var jsx_runtime = __webpack_require__(85893); ;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/Exercise/Export/components/ExportSetting/index.tsx var TextArea = input/* default.TextArea */.Z.TextArea; var ExportSetting = function ExportSetting(_ref) { var _data$file_list; var exercise = _ref.exercise, loading = _ref.loading, dispatch = _ref.dispatch; var workSetting = exercise.workSetting; var params = (0,_umi_production_exports.useParams)(); params.category = params.categoryId || params.exerciseId; params.categoryId = params.categoryId || params.exerciseId; var _useState = (0,react.useState)(false), _useState2 = slicedToArray_default()(_useState, 2), disabled = _useState2[0], setDisabled = _useState2[1]; var _useState3 = (0,react.useState)(false), _useState4 = slicedToArray_default()(_useState3, 2), pageLoading = _useState4[0], setPageLoading = _useState4[1]; var _useState5 = (0,react.useState)({ file_list: [], attachment_id: '', //卷头左角标附件id show_title: false, //展示试卷标题 show_body: false, //展示考试内容 show_info: false, //展示题量、分值、考试时长 show_table: false, //展示得分、评分表格 show_user: false, //密封线区域设置姓名 show_no: false, //密封线区域设置学号 show_group: false, //密封线区域设置专业班级 show_phone: false, //密封线区域设置手机号 show_school_name: false, //密封区域设置学校/单位 export_page_num: 40, //每页导出最大试题数 show_desc: false, //考试说明选择框 description: '' // 考试说明内容 }), _useState6 = slicedToArray_default()(_useState5, 2), data = _useState6[0], setData = _useState6[1]; (0,react.useEffect)(function () { setDefaultData(); }, [workSetting]); (0,react.useEffect)(function () { dispatch({ type: 'exercise/getWorkSetting', payload: objectSpread2_default()({}, params) }); }, []); var setDefaultData = function setDefaultData() { var _res$exercise_header2, _res$exercise_header3, _res$exercise_header4, _res$exercise_header5; var res = JSON.parse(JSON.stringify(workSetting)); Object.keys(data).forEach(function (item) { var _res$exercise_header; data[item] = res === null || res === void 0 ? void 0 : (_res$exercise_header = res['exercise_header']) === null || _res$exercise_header === void 0 ? void 0 : _res$exercise_header[item]; }); data.file_list = res !== null && res !== void 0 && (_res$exercise_header2 = res['exercise_header']) !== null && _res$exercise_header2 !== void 0 && _res$exercise_header2.attachment_id ? [{ uid: res === null || res === void 0 ? void 0 : (_res$exercise_header3 = res['exercise_header']) === null || _res$exercise_header3 === void 0 ? void 0 : _res$exercise_header3.attachment_id, id: res === null || res === void 0 ? void 0 : (_res$exercise_header4 = res['exercise_header']) === null || _res$exercise_header4 === void 0 ? void 0 : _res$exercise_header4.attachment_id, url: res === null || res === void 0 ? void 0 : (_res$exercise_header5 = res['exercise_header']) === null || _res$exercise_header5 === void 0 ? void 0 : _res$exercise_header5.photo_url }] : []; setData(data); }; var handleSubmit = function handleSubmit() { var _bodyData$file_list, _bodyData$file_list$, _bodyData$file_list$$; var bodyData = JSON.parse(JSON.stringify(data)); bodyData.categoryId = params.categoryId; bodyData.attachment_id = ((_bodyData$file_list = bodyData.file_list) === null || _bodyData$file_list === void 0 ? void 0 : (_bodyData$file_list$ = _bodyData$file_list[0]) === null || _bodyData$file_list$ === void 0 ? void 0 : (_bodyData$file_list$$ = _bodyData$file_list$.response) === null || _bodyData$file_list$$ === void 0 ? void 0 : _bodyData$file_list$$.id) || null; handleUpdate(bodyData); }; var handleUpdate = /*#__PURE__*/function () { var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(bodyData) { var res; return regeneratorRuntime_default()().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: setPageLoading(true); _context.next = 3; return (0,fetch/* default */.ZP)("/api/exercises/".concat(params === null || params === void 0 ? void 0 : params.categoryId, "/foramt_settings.json"), { method: 'post', body: bodyData }); case 3: res = _context.sent; if (res.status === 0) { message/* default.success */.ZP.success('更新成功'); dispatch({ type: 'exercise/getCommonHeader', payload: objectSpread2_default()({}, params) }); dispatch({ type: 'exercise/getWorkSetting', payload: objectSpread2_default()({}, params) }); dispatch({ type: 'exercise/getExerciseExportHeadData', payload: { id: params.exerciseId || params.categoryId, identify: params.userId || null } }); setPageLoading(false); } case 5: case "end": return _context.stop(); } }, _callee); })); return function handleUpdate(_x) { return _ref2.apply(this, arguments); }; }(); var uploadProps = { disabled: disabled, multiple: false, listType: "picture-card", onPreview: function onPreview(file) { mediator/* default.publish */.Z.publish('preview-image', file.thumbUrl || file.url); }, withCredentials: true, fileList: data.file_list, beforeUpload: function beforeUpload(file) { var fileSize = file.size / 1024; if (fileSize > 200) { message/* default.error */.ZP.error("\u8BE5\u6587\u4EF6\u65E0\u6CD5\u4E0A\u4F20\u3002\u8D85\u8FC7\u6587\u4EF6\u5927\u5C0F\u9650\u5236(200KB),\u5EFA\u8BAE\u4E0A\u4F20\u5230\u767E\u5EA6\u4E91\u7B49\u5176\u5B83\u5171\u4EAB\u5DE5\u5177\u91CC\uFF0C\u7136\u540E\u518Dtxt\u6587\u6863\u91CC\u7ED9\u51FA\u94FE\u63A5\u4EE5\u53CA\u5171\u4EAB\u5BC6\u7801\u5E76\u4E0A\u4F20"); return false; } return true; }, action: "".concat(env/* default.API_SERVER */.Z.API_SERVER, "/api/attachments.json"), onChange: function onChange(info) { var fileList = info.fileList.filter(function (file) { return !!file.status; }); data.file_list = fileList; setData(Object.assign({}, data)); }, onRemove: function () { var _onRemove = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(file) { return regeneratorRuntime_default()().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: data.file_list = []; setData(Object.assign({}, data)); return _context2.abrupt("return", true); case 3: case "end": return _context2.stop(); } }, _callee2); })); function onRemove(_x2) { return _onRemove.apply(this, arguments); } return onRemove; }() }; return /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, { title: "\u5BFC\u51FA\u8BBE\u7F6E", className: ExportSettingmodules.modalWrapper, width: 900, centered: true, open: exercise.actionTabs.key === 'exportSetting', onOk: function onOk() { return handleSubmit(); }, onCancel: function onCancel() { setDefaultData(); dispatch({ type: 'exercise/setActionTabs', payload: {} }); }, children: /*#__PURE__*/(0,jsx_runtime.jsxs)("section", { className: ExportSettingmodules.exportSettingWrapper, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(spin/* default */.Z, { spinning: loading['exercise/getWorkSetting'] || pageLoading, children: /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, { wrap: false, justify: "space-between", children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(col/* default */.Z, { children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, { align: "middle", children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: "\u5377\u5934\u5DE6\u89D2\u6807" }), /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: ExportSettingmodules.tips, children: "\u56FE\u7247\u5EFA\u8BAE\u5C3A\u5BF8\uFF1A700px*500px\uFF0C\u5927\u5C0F\u8BF7\u52FF\u8D85\u8FC7200k" })] }), /*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: "mt15", children: /*#__PURE__*/(0,jsx_runtime.jsx)(upload/* default */.Z, objectSpread2_default()(objectSpread2_default()({}, uploadProps), {}, { children: !((_data$file_list = data.file_list) !== null && _data$file_list !== void 0 && _data$file_list.length) && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { children: [/*#__PURE__*/(0,jsx_runtime.jsx)(PlusOutlined/* default */.Z, {}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", { style: { marginTop: 8 }, children: "\u4E0A\u4F20" })] }) })) }), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, { span: 24, className: "mt15", children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, { checked: data.show_title, disabled: disabled, onChange: function onChange(e) { data.show_title = e.target.checked; setData(Object.assign({}, data)); }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: "\u5C55\u793A\u8BD5\u5377\u6807\u9898" }) }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, { span: 24, className: "mt15", children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, { checked: data.show_body, disabled: disabled, onChange: function onChange(e) { data.show_body = e.target.checked; setData(Object.assign({}, data)); }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: "\u5C55\u793A\u8003\u8BD5\u5185\u5BB9\uFF08\u5373\u672C\u8BD5\u5377\u6240\u5C5E\u8BFE\u7A0B\u540D\u79F0\uFF09" }) }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, { span: 24, className: "mt15", children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, { checked: data.show_info, disabled: disabled, onChange: function onChange(e) { data.show_info = e.target.checked; setData(Object.assign({}, data)); }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: "\u5C55\u793A\u9898\u91CF\u3001\u5206\u503C\u3001\u8003\u8BD5\u65F6\u957F" }) }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, { span: 24, className: "mt15", children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, { checked: data.show_table, disabled: disabled, onChange: function onChange(e) { data.show_table = e.target.checked; setData(Object.assign({}, data)); }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: "\u5C55\u793A\u5F97\u5206\u3001\u8BC4\u5206\u8868\u683C" }) }) }), /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, { align: "middle", className: "mt20 ".concat(ExportSettingmodules.pottedLine), children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, { children: /*#__PURE__*/(0,jsx_runtime.jsx)("img", { src: halfDottedLine_namespaceObject, alt: "" }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, { className: ExportSettingmodules.text, children: "\u5BC6\u5C01\u7EBF\u533A\u57DF\u8BBE\u7F6E" }), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, { children: /*#__PURE__*/(0,jsx_runtime.jsx)("img", { src: halfDottedLine_namespaceObject, alt: "" }) })] }), /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, { className: "mt15", justify: "center", style: { width: 320 }, children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, { className: "pl8", checked: data.show_user, disabled: disabled, onChange: function onChange(e) { data.show_user = e.target.checked; setData(Object.assign({}, data)); }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: "\u59D3\u540D" }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, { checked: data.show_no, disabled: disabled, onChange: function onChange(e) { data.show_no = e.target.checked; setData(Object.assign({}, data)); }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: "\u5B66\u53F7" }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, { checked: data.show_group, disabled: disabled, onChange: function onChange(e) { data.show_group = e.target.checked; setData(Object.assign({}, data)); }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: "\u4E13\u4E1A\u73ED\u7EA7" }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, { checked: data.show_school_name, disabled: disabled, onChange: function onChange(e) { data.show_school_name = e.target.checked; setData(Object.assign({}, data)); }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: "\u5B66\u6821/\u5355\u4F4D" }) }), /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, { checked: data.show_phone, disabled: disabled, onChange: function onChange(e) { data.show_phone = e.target.checked; setData(Object.assign({}, data)); }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: "\u624B\u673A\u53F7" }) })] }), /*#__PURE__*/(0,jsx_runtime.jsx)("img", { src: dottedLine_namespaceObject, alt: "", className: "mt15", style: { width: 320 } }), /*#__PURE__*/(0,jsx_runtime.jsxs)(col/* default */.Z, { span: 24, className: "mt15", children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", { children: "\u6BCF\u9875\u5BFC\u51FA\u6700\u5927\u8BD5\u9898\u6570\uFF1A" }), /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, { size: "large", min: 1, value: !data.export_page_num ? 40 : data.export_page_num, onChange: function onChange(value) { data.export_page_num = value; setData(objectSpread2_default()({}, data)); } }), /*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "ml10", children: "\u9898" })] }) // // { // data.export_page_num = e.target.checked // setData(Object.assign({}, data)) // }} // > //
每页导出题目数
//
// , /*#__PURE__*/(0,jsx_runtime.jsx)(row/* default */.Z, { className: "mt15", children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, { checked: data.show_desc, disabled: disabled, onChange: function onChange(e) { data.show_desc = e.target.checked; setData(Object.assign({}, data)); }, children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: "\u8003\u8BD5\u8BF4\u660E" }) }) }), data.show_desc && /*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: "mt15", children: /*#__PURE__*/ // disabled ? //