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

1 line
72 KiB

(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[109],{"7ahc":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MyCodeMirror; });\n/* harmony import */ var _Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"k1fw\");\n/* harmony import */ var _Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"0Owb\");\n/* harmony import */ var antd_es_button_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"+L6B\");\n/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"2/Rp\");\n/* harmony import */ var antd_es_form_style__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"y8nQ\");\n/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"Vl3Y\");\n/* harmony import */ var _Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\"tJVT\");\n/* harmony import */ var antd_es_select_style__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(\"OaEy\");\n/* harmony import */ var antd_es_select__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(\"2fM7\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(\"q1tI\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var codemirror_lib_codemirror_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(\"VrN/\");\n/* harmony import */ var codemirror_lib_codemirror_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(codemirror_lib_codemirror_js__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(\"p77/\");\n/* harmony import */ var codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_11__);\n\n\n\n\n\n\n\n\n\n\n\n\nvar Option = antd_es_select__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"].Option; //https://github.com/codemirror/CodeMirror/issues/4838\n\nvar formItemLayout = {\n labelCol: {\n span: 4\n },\n wrapperCol: {\n span: 20\n }\n};\nvar LanguageDesc = {\n asp: ['ASP', 'vbscript'],\n actionscript: ['ActionScript(3.0)/Flash/Flex', 'clike'],\n bash: ['Bash/Bat', 'shell'],\n css: ['CSS', 'css'],\n c: ['C', 'clike'],\n cpp: ['C++', 'clike'],\n csharp: ['C#', 'clike'],\n coffeescript: ['CoffeeScript', 'coffeescript'],\n d: ['D', 'd'],\n dart: ['Dart', 'dart'],\n delphi: ['Delphi/Pascal', 'pascal'],\n erlang: ['Erlang', 'erlang'],\n go: ['Golang', 'go'],\n groovy: ['Groovy', 'groovy'],\n html: ['HTML', 'text/html'],\n java: ['Java', 'clike'],\n json: ['JSON', 'text/json'],\n javascript: ['Javascript', 'javascript'],\n lua: ['Lua', 'lua'],\n less: ['LESS', 'css'],\n markdown: ['Markdown', 'gfm'],\n 'objective-c': ['Objective-C', 'clike'],\n php: ['PHP', 'php'],\n perl: ['Perl', 'perl'],\n python: ['Python', 'python'],\n r: ['R', 'r'],\n rst: ['reStructedText', 'rst'],\n ruby: ['Ruby', 'ruby'],\n sql: ['SQL', 'sql'],\n sass: ['SASS/SCSS', 'sass'],\n shell: ['Shell', 'shell'],\n scala: ['Scala', 'clike'],\n swift: ['Swift', 'clike'],\n vb: ['VB/VBScript', 'vb'],\n xml: ['XML', 'text/xml'],\n yaml: ['YAML', 'yaml']\n};\n/* harmony default export */ __webpack_exports__[\"b\"] = ((_ref) => {\n var callback = _ref.callback,\n onCancel = _ref.onCancel;\n\n var _useState = Object(react__WEBPACK_IMPORTED_MODULE_9__[\"useState\"])('python'),\n _useState2 = Object(_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(_useState, 2),\n mode = _useState2[0],\n setMode = _useState2[1];\n\n function onSetMode(value) {\n setMode(LanguageDesc[value][1]);\n }\n\n function onSubmit(values) {\n callback(values);\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"], Object(_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])({}, formItemLayout, {\n className: \"code-block-panel\",\n initialValues: {\n language: 'python',\n content: ''\n },\n onFinish: onSubmit\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].Item, {\n label: \"\\u4EE3\\u7801\\u8BED\\u8A00\",\n name: \"language\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"], {\n onChange: onSetMode\n }, Object.keys(LanguageDesc).map(item => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(Option, {\n key: item,\n value: item\n }, LanguageDesc[item][0])))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].Item, {\n label: \"\\u4EE3\\u7801\\u5185\\u5BB9\",\n name: \"content\",\n rules: [{\n required: true,\n message: '\u8bf7\u8f93\u5165\u4ee3\u7801\u5185\u5bb9'\n }]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(MyCodeMirror, {\n mode: mode\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(\"div\", {\n className: \"flex-container flex-end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(antd_es_button__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"], {\n type: \"primary\",\n htmlType: \"submit\",\n style: {\n marginRight: 10\n }\n }, \"\\u786E\\u5B9A\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(antd_es_button__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"], {\n type: \"ghost\",\n onClick: onCancel\n }, \"\\u53D6\\u6D88\")));\n});\nfunction MyCodeMirror(_ref2) {\n var value = _ref2.value,\n onChange = _ref2.onChange,\n mode = _ref2.mode,\n _ref2$options = _ref2.options,\n options = _ref2$options === void 0 ? {} : _ref2$options;\n var el = Object(react__WEBPACK_IMPORTED_MODULE_9__[\"useRef\"])();\n\n var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_9__[\"useState\"])(),\n _useState4 = Object(_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(_useState3, 2),\n cm = _useState4[0],\n setCm = _useState4[1];\n\n Object(react__WEBPACK_IMPORTED_MODULE_9__[\"useEffect\"])(() => {\n if (cm) {\n function onChangeHandler(cm) {\n var content = cm.getValue();\n onChange && onChange(content);\n }\n\n cm.on('change', onChangeHandler);\n return () => {\n cm.off('change', onChangeHandler);\n };\n }\n }, [cm, onChange]);\n Object(react__WEBPACK_IMPORTED_MODULE_9__[\"useEffect\"])(() => {\n if (cm) {\n cm.setOption('mode', mode);\n }\n }, [cm, mode]);\n Object(react__WEBPACK_IMPORTED_MODULE_9__[\"useEffect\"])(() => {\n if (cm) {\n if (value !== cm.getValue()) {\n cm.setValue(value || '');\n }\n }\n }, [cm, value]);\n Object(react__WEBPACK_IMPORTED_MODULE_9__[\"useEffect\"])(() => {\n if (el.current && !cm) {\n var instance = codemirror_lib_codemirror_js__WEBPACK_IMPORTED_MODULE_10___default.a.fromTextArea(el.current, Object(_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({\n mode,\n lineNumbers: true,\n lineWrapping: true,\n autoCloseBrackets: true,\n tabSize: 4,\n autofocus: true,\n autoCloseTags: true\n }, options));\n setCm(instance);\n }\n }, [el.current, cm]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(\"div\", {\n className: \"my-codemirror-container\"\n }, ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(\"textarea\", {\n ref: el\n }), ' ');\n}\n\n//# sourceURL=webpack:///./src/components/markdown-editor/code-block/index.tsx?")},"9Bee":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__("q1tI");\nvar react_default = /*#__PURE__*/__webpack_require__.n(react);\n\n// EXTERNAL MODULE: ./node_modules/katex/dist/katex.min.css\nvar katex_min = __webpack_require__("vg9a");\n\n// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules\nvar slicedToArray = __webpack_require__("tJVT");\n\n// EXTERNAL MODULE: ./node_modules/marked/lib/marked.js\nvar marked = __webpack_require__("DlQD");\nvar marked_default = /*#__PURE__*/__webpack_require__.n(marked);\n\n// EXTERNAL MODULE: ./node_modules/marked/src/helpers.js\nvar helpers = __webpack_require__("rUJ1");\n\n// CONCATENATED MODULE: ./src/utils/marked.ts\n\n\n\n\nfunction indentCodeCompensation(raw, text) {\n var matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n var indentToCode = matchIndentToCode[1];\n return text.split(\'\\n\').map(node => {\n var matchIndentInNode = node.match(/^\\s+/);\n\n if (matchIndentInNode === null) {\n return node;\n }\n\n var _matchIndentInNode = Object(slicedToArray["a" /* default */])(matchIndentInNode, 1),\n indentInNode = _matchIndentInNode[0];\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n }).join(\'\\n\');\n}\n\n//\u517c\u5bb9\u4e4b\u524d\u7684 ##\u6807\u9898\u5f0f\u5199\u6cd5\nvar toc = [];\nvar ctx = ["<ul>"];\nvar renderer = new marked_default.a.Renderer();\nvar headingRegex = /^ *(#{1,6}) *([^\\n]+?) *(?:#+ *)?(?:\\n+|$)/;\nfunction cleanToc() {\n toc.length = 0;\n ctx = ["<ul>"];\n}\n\nfunction buildToc(coll, k, level, ctx) {\n if (k >= coll.length || coll[k].level <= level) {\n return k;\n }\n\n var node = coll[k];\n ctx.push("<li><a href=\'#" + node.anchor + "\'>" + node.text + "</a>");\n k++;\n var childCtx = [];\n k = buildToc(coll, k, node.level, childCtx);\n\n if (childCtx.length > 0) {\n ctx.push("<ul>");\n childCtx.forEach(function (idm) {\n ctx.push(idm);\n });\n ctx.push("</ul>");\n }\n\n ctx.push("</li>");\n k = buildToc(coll, k, level, ctx);\n return k;\n}\n\nfunction getTocContent() {\n buildToc(toc, 0, 0, ctx);\n ctx.push("</ul>");\n return ctx.join("");\n}\nvar tokenizer = {\n heading(src) {\n var cap = headingRegex.exec(src);\n\n if (cap) {\n return {\n type: \'heading\',\n raw: cap[0],\n depth: cap[1].length,\n text: cap[2]\n };\n }\n },\n\n fences(src) {\n var cap = this.rules.block.fences.exec(src);\n\n if (cap) {\n var raw = cap[0];\n var text = indentCodeCompensation(raw, cap[3] || \'\');\n var lang = cap[2] ? cap[2].trim() : cap[2];\n\n if ([\'latex\', \'katex\', \'math\'].indexOf(lang) >= 0) {\n var id = next_id();\n var expression = text;\n text = id;\n marked_math_expressions[id] = {\n type: \'block\',\n expression\n };\n }\n\n return {\n type: \'code\',\n raw,\n lang,\n text\n };\n }\n }\n\n};\nvar latexRegex = /(?:\\${2})([^\\n`]+?)(?:\\${2})/gi;\nvar katex_count = 0;\n\nvar next_id = () => "__special_katext_id_".concat(katex_count++, "__");\n\nvar marked_math_expressions = {};\nfunction getMathExpressions() {\n return marked_math_expressions;\n}\nfunction resetMathExpressions() {\n katex_count = 0;\n marked_math_expressions = {};\n}\n\nfunction replace_math_with_ids(text) {\n text = text.replace(latexRegex, (_match, expression) => {\n var id = next_id();\n marked_math_expressions[id] = {\n type: \'inline\',\n expression\n };\n return id;\n });\n return text;\n}\n\nvar original_listitem = renderer.listitem;\n\nrenderer.listitem = function (text) {\n return original_listitem(replace_math_with_ids(text));\n};\n\nvar original_paragraph = renderer.paragraph;\n\nrenderer.paragraph = function (text) {\n return original_paragraph(replace_math_with_ids(text));\n};\n\nvar original_tablecell = renderer.tablecell;\n\nrenderer.tablecell = function (content, flags) {\n return original_tablecell(replace_math_with_ids(content), flags);\n};\n\nrenderer.code = function (code, infostring, escaped) {\n var lang = (infostring || \'\').match(/\\S*/)[0];\n\n if (!lang) {\n return \'<pre class="prettyprint linenums"><code>\' + (escaped ? code : Object(helpers["escape"])(code, true)) + \'</code></pre>\';\n }\n\n if ([\'latex\', \'katex\', \'math\'].indexOf(lang) >= 0) {\n return "<p class=\'editormd-tex\'>".concat(code, "</p>");\n } else {\n return "<pre class=\\"prettyprint linenums\\"><code class=\\"language-".concat(infostring, "\\">").concat(escaped ? code : Object(helpers["escape"])(code, true), "</code></pre>\\n");\n }\n};\n\nrenderer.heading = function (text, level, raw) {\n var anchor = this.options.headerPrefix + raw.toLowerCase().replace(/[^\\w\\\\u4e00-\\\\u9fa5]]+/g, \'-\');\n toc.push({\n anchor,\n level,\n text\n });\n return \'<h\' + level + \' id="\' + anchor + \'">\' + text + \'</h\' + level + \'>\';\n};\n\nmarked_default.a.setOptions({\n silent: true,\n smartypants: true,\n gfm: true,\n pedantic: false\n});\nmarked_default.a.use({\n tokenizer,\n renderer\n});\n/* harmony default export */ var utils_marked = (marked_default.a);\n// EXTERNAL MODULE: ./node_modules/code-prettify/src/prettify.js\nvar prettify = __webpack_require__("SJMd");\n\n// EXTERNAL MODULE: ./node_modules/katex/dist/katex.js\nvar katex = __webpack_require__("Oy/b");\n\n// CONCATENATED MODULE: ./src/components/RenderHtml/index.tsx\n\n\n\n\n\nvar preRegex = /<pre[^>]*>/g;\n\nfunction _unescape(str) {\n var div = document.createElement(\'div\');\n div.innerHTML = str;\n return div.childNodes.length === 0 ? "" : div.childNodes[0].nodeValue;\n}\n\n/* harmony default export */ var RenderHtml = __webpack_exports__["a"] = ((_ref) => {\n var _ref$value = _ref.value,\n value = _ref$value === void 0 ? \'\' : _ref$value,\n className = _ref.className,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style;\n var str = String(value);\n var html = Object(react["useMemo"])(() => {\n var rs = utils_marked(str);\n var math_expressions = getMathExpressions();\n\n if (str.match(/\\[TOC\\]/)) {\n rs = rs.replace("<p>[TOC]</p>", getTocContent());\n cleanToc();\n }\n\n rs = rs.replace(/(__special_katext_id_\\d+__)/g, (_match, capture) => {\n var _math_expressions$cap = math_expressions[capture],\n type = _math_expressions$cap.type,\n expression = _math_expressions$cap.expression;\n return Object(katex["renderToString"])(_unescape(expression) || \'\', {\n displayMode: type === \'block\',\n throwOnError: false,\n output: \'html\'\n });\n });\n rs = rs.replace(/\u2581/g, "\u2581\u2581\u2581");\n resetMathExpressions();\n return rs;\n }, [str]);\n var el = Object(react["useRef"])();\n\n function onAncherHandler(e) {\n var target = e.target;\n\n if (target.tagName.toUpperCase() === \'A\') {\n var ancher = target.getAttribute(\'href\');\n\n if (ancher.startsWith(\'#\')) {\n e.preventDefault();\n var viewEl = document.getElementById(ancher.replace(\'#\', \'\'));\n\n if (viewEl) {\n viewEl.parentNode.scrollTop = viewEl.offsetTop;\n }\n }\n }\n }\n\n Object(react["useEffect"])(() => {\n if (el.current && html) {\n if (html.match(preRegex)) {\n window.PR.prettyPrint();\n }\n }\n\n if (el.current) {\n el.current.addEventListener(\'click\', onAncherHandler);\n return () => {\n el.current.removeEventListener(\'click\', onAncherHandler);\n resetMathExpressions();\n cleanToc();\n };\n }\n }, [html, el.current, onAncherHandler]);\n return /*#__PURE__*/react_default.a.createElement("div", {\n ref: el,\n style: style,\n className: "".concat(className ? className : \'\', " markdown-body"),\n dangerouslySetInnerHTML: {\n __html: html\n }\n });\n});\n\n//# sourceURL=webpack:///./src/components/RenderHtml/index.tsx_+_1_modules?')},"9VGf":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useInterval; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction useInterval(callback, delay) {\n var savedCallback = Object(react__WEBPACK_IMPORTED_MODULE_0__["useRef"])(); // \u4fdd\u5b58\u65b0\u56de\u8c03\n\n Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(() => {\n savedCallback.current = callback;\n }); // \u5efa\u7acb interval\n\n Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(() => {\n function tick() {\n savedCallback.current();\n }\n\n if (delay !== null) {\n var id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n\n//# sourceURL=webpack:///./src/components/useInterval.tsx?')},BjJ7:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isCompileOk; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getTreeData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return processTreeData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return debounce; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isProd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return apiPref; });\nfunction isCompileOk(rs) {\n var flag = true;\n\n if (rs.length > 0) {\n for (var i = 0; i < rs.length; i++) {\n if (rs[i].compile_success == 0 || !rs[i].compile_success) {\n flag = false;\n break;\n }\n }\n } else {\n flag = false;\n }\n\n return flag;\n}\nfunction getTreeData(data) {\n var parentKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \'\';\n var result = [];\n\n for (var i = 0; i < data.length; i++) {\n var item = data[i];\n var key = parentKey ? "".concat(parentKey, "/").concat(item.name) : "".concat(item.name);\n result.push({\n title: item.name,\n isLeaf: item.type === \'tree\' ? false : true,\n key\n });\n }\n\n return result;\n}\nfunction processTreeData(repos, key, newData) {\n for (var i = 0; i < repos.length; i++) {\n var item = repos[i];\n\n if (item.key === key) {\n item.children = newData;\n break;\n }\n\n if (item.children) {\n processTreeData(item.children, key, newData);\n }\n }\n\n return repos;\n}\nfunction debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\nvar isProd = window.location.href.indexOf(\'test-\') > 0 || window.location.href.indexOf(\'localhost\') > 0 ? false : true;\nvar apiPref = isProd ? \'https://www.educoder.net\' : \'https://test-newweb.educoder.net\';\n\n//# sourceURL=webpack:///./src/pages/tasks/util.js?')},HmJG:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n\n//# sourceURL=webpack:///./src/components/markdown-editor/upload-image/index.less?")},M8RZ:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("i8i4");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar modalContainer = document.createElement(\'div\');\n/* harmony default export */ __webpack_exports__["a"] = ((_ref) => {\n var children = _ref.children;\n Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(() => {\n document.body.append(modalContainer);\n return () => {\n try {\n document.body.removeChild(modalContainer);\n } catch (e) {}\n };\n }, []);\n return Object(react_dom__WEBPACK_IMPORTED_MODULE_1__["createPortal"])(children, modalContainer);\n});\n\n//# sourceURL=webpack:///./src/components/modal.tsx?')},Ot1p:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('\n// EXTERNAL MODULE: ./node_modules/antd/es/modal/style/index.js\nvar modal_style = __webpack_require__("2qtc");\n\n// EXTERNAL MODULE: ./node_modules/antd/es/modal/index.js + 10 modules\nvar modal = __webpack_require__("kLXV");\n\n// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js\nvar createForOfIteratorHelper = __webpack_require__("rAM+");\n\n// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules\nvar slicedToArray = __webpack_require__("tJVT");\n\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__("q1tI");\nvar react_default = /*#__PURE__*/__webpack_require__.n(react);\n\n// EXTERNAL MODULE: ./node_modules/codemirror/lib/codemirror.js\nvar codemirror = __webpack_require__("VrN/");\nvar codemirror_default = /*#__PURE__*/__webpack_require__.n(codemirror);\n\n// EXTERNAL MODULE: ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js\nvar ResizeObserver_es = __webpack_require__("bdgK");\n\n// EXTERNAL MODULE: ./node_modules/codemirror/lib/codemirror.css\nvar lib_codemirror = __webpack_require__("p77/");\n\n// EXTERNAL MODULE: ./node_modules/codemirror/addon/edit/closetag.js\nvar closetag = __webpack_require__("Bd2K");\n\n// EXTERNAL MODULE: ./node_modules/codemirror/addon/edit/closebrackets.js\nvar closebrackets = __webpack_require__("ELLl");\n\n// EXTERNAL MODULE: ./node_modules/codemirror/addon/display/placeholder.js\nvar display_placeholder = __webpack_require__("19Vz");\n\n// EXTERNAL MODULE: ./node_modules/codemirror/mode/markdown/markdown.js\nvar markdown = __webpack_require__("lZu9");\n\n// EXTERNAL MODULE: ./src/components/markdown-editor/index.less\nvar markdown_editor = __webpack_require__("kSUc");\n\n// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx + 1 modules\nvar RenderHtml = __webpack_require__("9Bee");\n\n// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__("0Owb");\n\n// EXTERNAL MODULE: ./src/components/markdown-editor/toolbar/index.less\nvar toolbar = __webpack_require__("dejd");\n\n// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/components/IconFont.js\nvar IconFont = __webpack_require__("R+Pm");\n\n// CONCATENATED MODULE: ./src/components/markdown-editor/toolbar/index.tsx\n\n\n\n\nvar toolbar_IconFont = Object(IconFont["a" /* default */])({\n scriptUrl: \'//at.alicdn.com/t/font_1941035_wtddfbx3cga.js\'\n});\nvar DEFAULTICONS = [{\n title: \'\u7c97\u4f53\',\n icon: \'icon-bold\',\n actionName: \'bold\'\n}, {\n title: \'\u659c\u4f53\',\n icon: \'icon-italic\',\n actionName: \'italic\'\n}, \'|\', {\n title: \'\u65e0\u5e8f\u5217\u8868\',\n icon: \'icon-unorder-list\',\n actionName: \'list-ul\'\n}, {\n title: \'\u6709\u5e8f\u5217\u8868\',\n icon: \'icon-order-list\',\n actionName: \'list-ol\'\n}, \'|\', {\n title: \'\u884c\u5185\u4ee3\u7801\',\n icon: \'icon-code\',\n actionName: \'code\'\n}, {\n title: \'\u4ee3\u7801\u5757\uff08\u591a\u8bed\u8a00\u98ce\u683c\uff09\',\n icon: \'icon-file-code\',\n actionName: \'code-block\'\n}, {\n title: \'\u94fe\u63a5\',\n icon: \'icon-link\',\n actionName: \'link\'\n}, \'|\', {\n title: \'\u884c\u5185\u516c\u5f0f\',\n icon: \'icon-sum\',\n actionName: \'inline-latex\'\n}, {\n title: \'\u591a\u884c\u516c\u5f0f\',\n icon: \'icon-formula\',\n actionName: \'latex\'\n}, \'|\', {\n title: \'\u6dfb\u52a0\u56fe\u7247\',\n icon: \'icon-picture\',\n actionName: \'upload-image\'\n}, {\n title: \'\u8868\u683c\',\n icon: \'icon-table\',\n actionName: \'add-table\'\n}, \'|\', {\n title: \'\u6362\u884c\',\n icon: \'icon-minus\',\n actionName: \'line-break\'\n}, {\n title: \'\u6e05\u7a7a\',\n icon: \'icon-eraser\',\n actionName: \'eraser\'\n}];\n\nfunction AButton(_ref) {\n var onActionCallback = _ref.onActionCallback,\n title = _ref.title,\n icon = _ref.icon,\n actionName = _ref.actionName,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? \'\' : _ref$className,\n children = _ref.children;\n\n function onAction() {\n onActionCallback(actionName);\n }\n\n return /*#__PURE__*/react_default.a.createElement("a", {\n title: title,\n className: className,\n onClick: onAction\n }, /*#__PURE__*/react_default.a.createElement(toolbar_IconFont, {\n type: icon\n }), children);\n}\n\n/* harmony default export */ var markdown_editor_toolbar = ((_ref2) => {\n var watch = _ref2.watch,\n showNullButton = _ref2.showNullButton,\n onActionCallback = _ref2.onActionCallback;\n var icons = [...DEFAULTICONS, {\n title: "".concat(watch ? \'\u5173\u95ed\u5b9e\u65f6\u9884\u89c8\' : \'\u5f00\u542f\u5b9e\u65f6\u9884\u89c8\'),\n icon: "".concat(watch ? \'icon-eye-slash\' : \'icon-eye\'),\n actionName: \'trigger-watch\'\n }];\n return /*#__PURE__*/react_default.a.createElement("ul", {\n className: "markdown-toolbar-container"\n }, icons.map((item, index) => /*#__PURE__*/react_default.a.createElement("li", {\n key: index\n }, item.actionName ? /*#__PURE__*/react_default.a.createElement(AButton, Object(esm_extends["a" /* default */])({}, item, {\n onActionCallback: onActionCallback\n })) : /*#__PURE__*/react_default.a.createElement("span", {\n className: "v-line"\n }))), showNullButton ? /*#__PURE__*/react_default.a.createElement("li", null, /*#__PURE__*/react_default.a.createElement(AButton, {\n icon: "icon-edit",\n className: "btn-null",\n title: "\\u589E\\u52A0\\u586B\\u7A7A",\n actionName: "add-null-ch",\n onActionCallback: onActionCallback\n }, /*#__PURE__*/react_default.a.createElement("span", {\n className: "fill-tip"\n }, "\\u70B9\\u51FB\\u63D2\\u5165\\b\\u586B\\u7A7A\\u9879"))) : null);\n});\n// EXTERNAL MODULE: ./src/components/modal.tsx\nvar components_modal = __webpack_require__("M8RZ");\n\n// EXTERNAL MODULE: ./node_modules/antd/es/button/style/index.js\nvar button_style = __webpack_require__("+L6B");\n\n// EXTERNAL MODULE: ./node_modules/antd/es/button/index.js\nvar es_button = __webpack_require__("2/Rp");\n\n// EXTERNAL MODULE: ./node_modules/antd/es/form/style/index.js\nvar form_style = __webpack_require__("y8nQ");\n\n// EXTERNAL MODULE: ./node_modules/antd/es/form/index.js + 9 modules\nvar es_form = __webpack_require__("Vl3Y");\n\n// EXTERNAL MODULE: ./node_modules/antd/es/input/style/index.js\nvar input_style = __webpack_require__("5NDa");\n\n// EXTERNAL MODULE: ./node_modules/antd/es/input/index.js + 8 modules\nvar input = __webpack_require__("5rEg");\n\n// CONCATENATED MODULE: ./src/components/markdown-editor/link/index.tsx\n\n\n\n\n\n\n\n\nvar formItemLayout = {\n labelCol: {\n span: 4\n },\n wrapperCol: {\n span: 20\n }\n};\n/* harmony default export */ var markdown_editor_link = ((_ref) => {\n var callback = _ref.callback,\n onCancel = _ref.onCancel;\n\n function onSubmit(values) {\n callback(values);\n }\n\n return /*#__PURE__*/react_default.a.createElement(es_form["a" /* default */], Object(esm_extends["a" /* default */])({}, formItemLayout, {\n initialValues: {\n link: \'http://\',\n title: \'\'\n },\n className: "link-panel",\n onFinish: onSubmit\n }), /*#__PURE__*/react_default.a.createElement(es_form["a" /* default */].Item, {\n label: "\\u94FE\\u63A5\\u5730\\u5740",\n name: "link",\n rules: [{\n required: true,\n message: \'\u8bf7\u8f93\u5165\u94fe\u63a5\u5730\u5740\'\n }]\n }, /*#__PURE__*/react_default.a.createElement(input["a" /* default */], null)), /*#__PURE__*/react_default.a.createElement(es_form["a" /* default */].Item, {\n label: "\\u94FE\\u63A5\\u6807\\u9898",\n name: "title",\n rules: [{\n required: true,\n message: \'\u8bf7\u8f93\u5165\u94fe\u63a5\u6807\u9898\'\n }]\n }, /*#__PURE__*/react_default.a.createElement(input["a" /* default */], null)), /*#__PURE__*/react_default.a.createElement("div", {\n className: "flex-container flex-end"\n }, /*#__PURE__*/react_default.a.createElement(es_button["a" /* default */], {\n type: "primary",\n htmlType: "submit",\n style: {\n marginRight: 10\n }\n }, "\\u786E\\u5B9A"), /*#__PURE__*/react_default.a.createElement(es_button["a" /* default */], {\n type: "ghost",\n onClick: onCancel\n }, "\\u53D6\\u6D88")));\n});\n// EXTERNAL MODULE: ./src/components/markdown-editor/code-block/index.tsx\nvar code_block = __webpack_require__("7ahc");\n\n// EXTERNAL MODULE: ./src/components/markdown-editor/upload-image/index.less\nvar upload_image = __webpack_require__("HmJG");\n\n// EXTERNAL MODULE: ./src/pages/tasks/util.js\nvar util = __webpack_require__("BjJ7");\n\n// CONCATENATED MODULE: ./src/components/markdown-editor/upload-image/index.tsx\n\n\n\n\n\n\n\n\n\n\n\nvar useForm = es_form["a" /* default */].useForm;\nvar upload_image_style = {\n width: 280,\n marginRight: 10\n};\nvar upload_image_formItemLayout = {\n labelCol: {\n span: 5\n },\n wrapperCol: {\n span: 19\n }\n};\n/* harmony default export */ var markdown_editor_upload_image = ((_ref) => {\n var callback = _ref.callback,\n onCancel = _ref.onCancel;\n\n var _useForm = useForm(),\n _useForm2 = Object(slicedToArray["a" /* default */])(_useForm, 1),\n form = _useForm2[0];\n\n function onSubmit(values) {\n callback(values);\n }\n\n function onAddUrl(data) {\n form.setFieldsValue({\n src: "/api/attachments/".concat(data.id)\n });\n }\n\n function onFileChange(e) {\n var file = e.target.files[0];\n uploadImage(file, onAddUrl);\n }\n\n return /*#__PURE__*/react_default.a.createElement(es_form["a" /* default */], Object(esm_extends["a" /* default */])({\n form: form\n }, upload_image_formItemLayout, {\n className: "upload-image-panel",\n onFinish: onSubmit\n }), /*#__PURE__*/react_default.a.createElement(es_form["a" /* default */].Item, {\n label: "\\u56FE\\u7247\\u5730\\u5740",\n required: true\n }, /*#__PURE__*/react_default.a.createElement("div", {\n className: "flex-container"\n }, /*#__PURE__*/react_default.a.createElement(es_form["a" /* default */].Item, {\n noStyle: true,\n name: "src",\n rules: [{\n required: true,\n message: \'\u8bf7\u8f93\u5165\u56fe\u7247\u5730\u5740\'\n }]\n }, /*#__PURE__*/react_default.a.createElement(input["a" /* default */], {\n style: upload_image_style\n })), /*#__PURE__*/react_default.a.createElement(UploadButton, {\n onFileChange: onFileChange\n }))), /*#__PURE__*/react_default.a.createElement(es_form["a" /* default */].Item, {\n label: "\\u56FE\\u7247\\u63CF\\u8FF0",\n name: "alt",\n rules: [{\n required: true,\n message: \'\u8bf7\u8f93\u5165\u56fe\u7247\u63cf\u8ff0\'\n }]\n }, /*#__PURE__*/react_default.a.createElement(input["a" /* default */], {\n style: {\n width: 264\n }\n })), /*#__PURE__*/react_default.a.createElement(es_form["a" /* default */].Item, {\n style: {\n textAlign: "right"\n }\n }, /*#__PURE__*/react_default.a.createElement(es_button["a" /* default */], {\n type: "primary",\n htmlType: "submit",\n style: {\n marginRight: 10\n }\n }, "\\u786E\\u5B9A"), /*#__PURE__*/react_default.a.createElement(es_button["a" /* default */], {\n type: "ghost",\n onClick: onCancel\n }, "\\u53D6\\u6D88")));\n});\n\nfunction UploadButton(_ref2) {\n var onFileChange = _ref2.onFileChange;\n return /*#__PURE__*/react_default.a.createElement("a", {\n className: "upload-button"\n }, "\\u672C\\u5730\\u4E0A\\u4F20", /*#__PURE__*/react_default.a.createElement("input", {\n type: "file",\n accept: "image/*",\n onChange: onFileChange\n }));\n}\n\nfunction uploadImage(file, callback) {\n var formData = new FormData();\n formData.append(\'editormd-image-file\', file);\n formData.append(\'file_param_name\', \'editormd-image-file\');\n formData.append(\'byxhr\', \'true\');\n var xhr = new window.XMLHttpRequest();\n xhr.withCredentials = true;\n xhr.addEventListener(\'load\', function (response) {\n callback(JSON.parse(response.target.responseText));\n }, false);\n xhr.addEventListener(\'error\', function (error) {\n console.error(error);\n }, false);\n xhr.open(\'POST\', "".concat(util["a" /* apiPref */], "/api/attachments.json"));\n xhr.send(formData);\n}\n// EXTERNAL MODULE: ./node_modules/antd/es/input-number/style/index.js\nvar input_number_style = __webpack_require__("giR+");\n\n// EXTERNAL MODULE: ./node_modules/antd/es/input-number/index.js + 1 modules\nvar input_number = __webpack_require__("fyUT");\n\n// EXTERNAL MODULE: ./node_modules/antd/es/radio/style/index.js\nvar radio_style = __webpack_require__("7Kak");\n\n// EXTERNAL MODULE: ./node_modules/antd/es/radio/index.js\nvar es_radio = __webpack_require__("9yH6");\n\n// CONCATENATED MODULE: ./src/components/markdown-editor/add-table-panel/index.tsx\n\n\n\n\n\n\n\n\n\nvar RadioGroup = es_radio["default"].Group;\nvar add_table_panel_style = {\n margin: \'0 8px\'\n};\n/* harmony default export */ var add_table_panel = ((_ref) => {\n var callback = _ref.callback,\n onCancel = _ref.onCancel;\n\n function onSubmit(values) {\n callback(values);\n }\n\n return /*#__PURE__*/react_default.a.createElement(es_form["a" /* default */], {\n className: "add-table-panel",\n initialValues: {\n row: 3,\n col: 2,\n align: \'default\'\n },\n onFinish: onSubmit\n }, /*#__PURE__*/react_default.a.createElement("div", {\n className: "flex-container"\n }, /*#__PURE__*/react_default.a.createElement("span", {\n style: add_table_panel_style\n }, "\\u5355\\u5143\\u683C\\u6570\\uFF1A"), /*#__PURE__*/react_default.a.createElement("span", {\n style: add_table_panel_style\n }, "\\u884C\\u6570"), /*#__PURE__*/react_default.a.createElement(es_form["a" /* default */].Item, {\n name: "row",\n rules: [{\n required: true,\n message: \'\u8bf7\u8f93\u5165\u884c\u6570\'\n }]\n }, /*#__PURE__*/react_default.a.createElement(input_number["a" /* default */], null)), /*#__PURE__*/react_default.a.createElement("span", {\n style: add_table_panel_style\n }, "\\u5217\\u6570"), /*#__PURE__*/react_default.a.createElement(es_form["a" /* default */].Item, {\n name: "col",\n rules: [{\n required: true,\n message: \'\u8bf7\u8f93\u5165\u5217\u6570\'\n }]\n }, /*#__PURE__*/react_default.a.createElement(input_number["a" /* default */], null))), /*#__PURE__*/react_default.a.createElement("div", {\n className: "flex-container",\n style: {\n marginTop: 12\n }\n }, /*#__PURE__*/react_default.a.createElement("span", {\n style: add_table_panel_style\n }, "\\u5BF9\\u9F50\\u65B9\\u5F0F\\uFF1A"), /*#__PURE__*/react_default.a.createElement(es_form["a" /* default */].Item, {\n name: "align"\n }, /*#__PURE__*/react_default.a.createElement(RadioGroup, null, /*#__PURE__*/react_default.a.createElement(es_radio["default"], {\n value: "default"\n }, /*#__PURE__*/react_default.a.createElement("i", {\n className: "fa fa-align-justify"\n })), /*#__PURE__*/react_default.a.createElement(es_radio["default"], {\n value: "left"\n }, /*#__PURE__*/react_default.a.createElement("i", {\n className: "fa fa-align-left"\n })), /*#__PURE__*/react_default.a.createElement(es_radio["default"], {\n value: "center"\n }, /*#__PURE__*/react_default.a.createElement("i", {\n className: "fa fa-align-center"\n })), /*#__PURE__*/react_default.a.createElement(es_radio["default"], {\n value: "right"\n }, /*#__PURE__*/react_default.a.createElement("i", {\n className: "fa fa-align-right"\n }))))), /*#__PURE__*/react_default.a.createElement("div", {\n className: "flex-container flex-end"\n }, /*#__PURE__*/react_default.a.createElement(es_button["a" /* default */], {\n type: "primary",\n htmlType: "submit",\n style: {\n marginRight: 10\n }\n }, \' \', "\\u786E\\u5B9A", \' \'), /*#__PURE__*/react_default.a.createElement(es_button["a" /* default */], {\n type: "ghost",\n onClick: onCancel\n }, \' \', "\\u53D6\\u6D88", \' \')));\n});\n// EXTERNAL MODULE: ./src/.umi-production/core/umiExports.ts + 17 modules\nvar umiExports = __webpack_require__("9kvl");\n\n// CONCATENATED MODULE: ./src/components/markdown-editor/constant.ts\nvar LINK = \'link\';\nvar UPLOAD_IMAGE = \'upload-image\';\nvar CODE_BLOCK = \'code-block\';\nvar ADD_TABLE = \'add-table\';\nvar HRLINE = \'------------\';\nvar ALIGNSIGN = {\n default: HRLINE,\n left: ":".concat(HRLINE),\n center: ":".concat(HRLINE, ":"),\n right: "".concat(HRLINE, ":")\n};\n// EXTERNAL MODULE: ./src/components/useInterval.tsx\nvar useInterval = __webpack_require__("9VGf");\n\n// CONCATENATED MODULE: ./src/components/markdown-editor/index.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar pending = 0;\nvar TimeTicket = 10;\nvar StorageTimeTicket = 10000;\nvar NULL_CH = \'\u2581\';\n\nfunction processSize(size) {\n return !/^\\d+$/.test(size) ? size : "".concat(size, "px");\n}\n\nvar isMac = navigator.platform.toUpperCase().indexOf(\'MAC\') >= 0;\nvar key = isMac ? \'Cmd\' : \'Ctrl\';\nvar DEFAULTKEYMAP = {\n [key + \'-B\']: \'bold\',\n [key + \'-I\']: \'italic\'\n};\nvar TitleDesc = {\n [LINK]: \'\u6dfb\u52a0\u94fe\u63a5\',\n [CODE_BLOCK]: \'\u6dfb\u52a0\u4ee3\u7801\u5757\',\n [UPLOAD_IMAGE]: \'\u6dfb\u52a0\u56fe\u7247\',\n [ADD_TABLE]: \'\u6dfb\u52a0\u8868\u683c\'\n}; //https://codemirror.net/demo\n//The height can be set through CSS (by giving the .CodeMirror class a height property), or by calling the cm\'s setSize method.\n\n/* harmony default export */ var components_markdown_editor = __webpack_exports__["a"] = ((_ref) => {\n var _ref$defaultValue = _ref.defaultValue,\n defaultValue = _ref$defaultValue === void 0 ? \'\' : _ref$defaultValue,\n onChange = _ref.onChange,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? \'100%\' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? 400 : _ref$height,\n _ref$miniToolbar = _ref.miniToolbar,\n miniToolbar = _ref$miniToolbar === void 0 ? false : _ref$miniToolbar,\n _ref$isFocus = _ref.isFocus,\n isFocus = _ref$isFocus === void 0 ? false : _ref$isFocus,\n watch = _ref.watch,\n _ref$id = _ref.id,\n id = _ref$id === void 0 ? \'markdown-editor-id\' : _ref$id,\n _ref$showResizeBar = _ref.showResizeBar,\n showResizeBar = _ref$showResizeBar === void 0 ? false : _ref$showResizeBar,\n _ref$noStorage = _ref.noStorage,\n noStorage = _ref$noStorage === void 0 ? false : _ref$noStorage,\n _ref$showNullButton = _ref.showNullButton,\n showNullButton = _ref$showNullButton === void 0 ? false : _ref$showNullButton,\n onBlur = _ref.onBlur,\n onCMBeforeChange = _ref.onCMBeforeChange,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? \'\' : _ref$className,\n _ref$placeholder = _ref.placeholder,\n placeholder = _ref$placeholder === void 0 ? \'\' : _ref$placeholder;\n\n var _useState = Object(react["useState"])(null),\n _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),\n cm = _useState2[0],\n setCm = _useState2[1];\n\n var _useState3 = Object(react["useState"])(defaultValue),\n _useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),\n value = _useState4[0],\n setValue = _useState4[1];\n\n var _useState5 = Object(react["useState"])(watch),\n _useState6 = Object(slicedToArray["a" /* default */])(_useState5, 2),\n preview = _useState6[0],\n setPreview = _useState6[1];\n\n var _useState7 = Object(react["useState"])(\'\'),\n _useState8 = Object(slicedToArray["a" /* default */])(_useState7, 2),\n action = _useState8[0],\n setAction = _useState8[1];\n\n var _useState9 = Object(react["useState"])(0),\n _useState10 = Object(slicedToArray["a" /* default */])(_useState9, 2),\n lastedUpdateTime = _useState10[0],\n setLastedUpdateTime = _useState10[1];\n\n var _useState11 = Object(react["useState"])(height),\n _useState12 = Object(slicedToArray["a" /* default */])(_useState11, 2),\n h = _useState12[0],\n setH = _useState12[1];\n\n var _useState13 = Object(react["useState"])(false),\n _useState14 = Object(slicedToArray["a" /* default */])(_useState13, 2),\n tip = _useState14[0],\n setTip = _useState14[1];\n\n var cmEl = Object(react["useRef"])();\n var resizeBarEl = Object(react["useRef"])();\n var previewEl = Object(react["useRef"])();\n Object(react["useEffect"])(() => {\n if (cmEl.current) {\n var instance = codemirror_default.a.fromTextArea(cmEl.current, {\n mode: \'markdown\',\n lineNumbers: miniToolbar ? false : true,\n lineWrapping: true,\n value: defaultValue,\n autoCloseTags: true,\n autoCloseBrackets: true\n });\n\n function onPaste(_, e) {\n var clipboardData = e.clipboardData;\n\n if (clipboardData) {\n var types = clipboardData.types.toString();\n var items = clipboardData.items;\n\n if (types === \'text/html,Files\' || types === \'Files\') {\n var item = items[1];\n\n if (types === \'Files\') {\n item = items[0];\n }\n\n if (item.kind === \'file\' && item.type.match(/^image\\//i)) {\n uploadImage(item.getAsFile(), data => {\n if (data.id) {\n instance.replaceSelection("![,](/api/attachments/".concat(data.id, ")"));\n } else {\n umiExports["c" /* history */].replace(\'/user/login\', {\n from: umiExports["c" /* history */].location.pathname\n });\n }\n });\n }\n } else {\n //toMarkdown ?\n // let html = clipboardData.getData(\'text/html\')\n return true;\n }\n }\n\n return true;\n }\n\n instance.on(\'paste\', onPaste);\n\n function onLayout() {\n var ro = new ResizeObserver_es["default"](entries => {\n var _iterator = Object(createForOfIteratorHelper["a" /* default */])(entries),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var entry = _step.value;\n\n if (entry.target.offsetHeight > 0 || entry.target.offsetWidth > 0) {\n instance.setSize(\'100%\', \'100%\');\n instance.refresh();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n });\n ro.observe(cmEl.current.parentElement);\n return ro;\n }\n\n var ro = onLayout();\n setCm(instance);\n return () => {\n ro.unobserve(cmEl.current.parentElement);\n instance.off(\'paste\', onPaste);\n };\n }\n }, []); //keymap\n\n Object(react["useEffect"])(() => {\n if (cm) {\n var keymap = [];\n\n var _loop = function _loop() {\n var _ref2 = _Object$entries[_i];\n _ref3 = Object(slicedToArray["a" /* default */])(_ref2, 2);\n var k = _ref3[0];\n var value = _ref3[1];\n var map = {\n [k]: () => {\n onActionCallback(value);\n }\n };\n keymap.push(map);\n cm.addKeyMap(map);\n };\n\n for (var _i = 0, _Object$entries = Object.entries(DEFAULTKEYMAP); _i < _Object$entries.length; _i++) {\n var _ref3;\n\n _loop();\n }\n\n return () => {\n var _iterator2 = Object(createForOfIteratorHelper["a" /* default */])(keymap),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var m = _step2.value;\n cm.removeKeyMap(m);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n };\n }\n }, [cm]);\n Object(useInterval["a" /* default */])(() => {\n if (!noStorage && lastedUpdateTime > 0) {\n var currentTime = new Date().getTime();\n var lastedValue = window.sessionStorage.getItem(id);\n\n if (currentTime >= lastedUpdateTime + StorageTimeTicket && (!lastedValue || lastedValue !== value)) {\n window.sessionStorage.setItem(id, value);\n setTip(true);\n }\n }\n }, StorageTimeTicket);\n Object(react["useEffect"])(() => {\n setPreview(watch);\n }, [cm, watch]);\n Object(react["useEffect"])(() => {\n if (cm) {\n isFocus && cm.focus();\n }\n }, [cm, isFocus]);\n Object(react["useEffect"])(() => {\n if (preview && cm) {\n var scrollEl = cm.getScrollerElement();\n\n function syncScroll(e) {\n var target = e.target;\n\n if (previewEl.current) {\n previewEl.current.scrollTop = previewEl.current.scrollHeight * target.scrollTop / target.scrollHeight;\n }\n }\n\n scrollEl.addEventListener(\'scroll\', syncScroll);\n return () => {\n scrollEl.removeEventListener(\'scroll\', syncScroll);\n };\n }\n }, [cm, preview]);\n Object(react["useEffect"])(() => {\n if (cm && onCMBeforeChange) {\n function onChangeHandler(cm, change) {\n onCMBeforeChange(cm, change);\n }\n\n cm.on(\'beforeChange\', onChangeHandler);\n return () => {\n cm.off(\'beforeChange\', onChangeHandler);\n };\n }\n }, [cm, onCMBeforeChange]);\n Object(react["useEffect"])(() => {\n if (cm && onBlur) {\n function onBlurHandler() {\n onBlur(cm.getValue());\n }\n\n cm.on(\'blur\', onBlurHandler);\n return () => {\n cm.off(\'blur\', onBlurHandler);\n };\n }\n }, [cm, onBlur]);\n Object(react["useEffect"])(() => {\n if (cm) {\n function onChangeHandler(cm) {\n var content = cm.getValue();\n clearTimeout(pending);\n pending = setTimeout(() => {\n setValue(content);\n setLastedUpdateTime(new Date().getTime());\n cm.getScrollerElement().dispatchEvent(new CustomEvent(\'scroll\'));\n onChange && onChange(content);\n }, TimeTicket);\n }\n\n cm.on(\'change\', onChangeHandler);\n return () => {\n cm.off(\'change\', onChangeHandler);\n };\n }\n }, [cm, onChange]);\n Object(react["useEffect"])(() => {\n if (cm) {\n if (defaultValue === null || defaultValue === undefined) {\n cm.setValue(\'\');\n setValue(\'\');\n } else {\n if (defaultValue !== cm.getValue()) {\n cm.setValue(defaultValue);\n setValue(defaultValue);\n }\n }\n }\n }, [cm, defaultValue]);\n Object(react["useEffect"])(() => {\n if (cm && height) {\n cm.setSize(\'100%\', "calc(".concat(processSize(height), " - ").concat(miniToolbar ? \'28px\' : \'38px\', " )"));\n }\n }, [cm, height]);\n var onActionCallback = Object(react["useCallback"])(actionName => {\n var cursor = cm.getCursor();\n var selection = cm.getSelection();\n var selectionText = selection.split(\'\\n\');\n\n switch (actionName) {\n case \'bold\':\n cm.replaceSelection(\'**\' + selection + \'**\');\n\n if (selection === \'\') {\n cm.setCursor(cursor.line, cursor.ch + 2);\n }\n\n return cm.focus();\n\n case \'italic\':\n cm.replaceSelection(\'*\' + selection + \'*\');\n\n if (selection === \'\') {\n cm.setCursor(cursor.line, cursor.ch + 1);\n }\n\n return cm.focus();\n\n case \'code\':\n cm.replaceSelection(\'`\' + selection + \'`\');\n\n if (selection === \'\') {\n cm.setCursor(cursor.line, cursor.ch + 1);\n }\n\n return cm.focus();\n\n case \'inline-latex\':\n cm.replaceSelection(\'`$$\' + selection + \'$$`\');\n\n if (selection === \'\') {\n cm.setCursor(cursor.line, cursor.ch + 3);\n }\n\n return cm.focus();\n\n case \'latex\':\n cm.replaceSelection("```latex\\n" + selection + "\\n```");\n cm.setCursor(cursor.line + 1, selection.length + 1);\n return cm.focus();\n\n case \'line-break\':\n cm.replaceSelection(\'<br/>\\n\');\n return cm.focus();\n\n case \'list-ul\':\n if (selection === \'\') {\n cm.replaceSelection(\'- \' + selection);\n } else {\n cm.replaceSelection(selectionText.map(item => item === \'\' ? \'\' : "- ".concat(item)).join(\'\\n\'));\n }\n\n return cm.focus();\n\n case \'list-ol\':\n if (selection === \'\') {\n cm.replaceSelection(\'1. \' + selection);\n } else {\n cm.replaceSelection(selectionText.map((item, index) => item === \'\' ? \'\' : "".concat(index + 1, ". ").concat(item)).join(\'\\n\'));\n }\n\n return cm.focus();\n\n case \'add-null-ch\':\n if (selection === \'\') {\n cm.setCursor(cursor.line, cursor.ch + 1);\n }\n\n cm.replaceSelection(NULL_CH);\n return cm.focus();\n\n case \'eraser\':\n cm.setValue(\'\');\n return cm.focus();\n\n case \'trigger-watch\':\n setPreview(!preview);\n return cm.focus();\n\n case LINK:\n setAction(LINK);\n return;\n\n case CODE_BLOCK:\n setAction(CODE_BLOCK);\n return;\n\n case UPLOAD_IMAGE:\n setAction(UPLOAD_IMAGE);\n return;\n\n case ADD_TABLE:\n setAction(ADD_TABLE);\n return;\n\n default:\n throw new Error();\n }\n }, [cm, preview]);\n var ExecutePluginAction = Object(react["useCallback"])(values => {\n setAction(\'\');\n\n switch (action) {\n case LINK:\n var title = values.title,\n link = values.link;\n cm.replaceSelection("[".concat(title, "](").concat(link, ")"));\n return cm.focus();\n\n case CODE_BLOCK:\n var language = values.language,\n content = values.content;\n cm.replaceSelection([\'```\' + language, content, \'```\'].join(\'\\n\'));\n return cm.focus();\n\n case UPLOAD_IMAGE:\n var src = values.src,\n alt = values.alt;\n cm.replaceSelection("![ ".concat(alt, " ]( ").concat(src, " \\"").concat(alt, "\\" )"));\n return cm.focus();\n\n case ADD_TABLE:\n var row = values.row,\n col = values.col,\n align = values.align;\n var table = \'\\n\';\n\n for (var r = 0; r < row; r++) {\n var rows = [];\n var heads = [];\n\n for (var c = 0; c < col; c++) {\n if (r === 1) {\n heads.push(ALIGNSIGN[align]);\n }\n\n rows.push(\' \');\n }\n\n if (r === 1) {\n table += "| ".concat(heads.join(\' | \'), " |\\n");\n }\n\n table += "| ".concat(rows.join(col === 1 ? \'\' : \' | \'), " |\\n");\n }\n\n cm.replaceSelection(table + \'\\n\');\n return cm.focus();\n\n default:\n throw new Error();\n }\n }, [cm, action]);\n var PluginEl = Object(react["useMemo"])(() => {\n switch (action) {\n case LINK:\n return /*#__PURE__*/react_default.a.createElement(markdown_editor_link, {\n callback: ExecutePluginAction,\n onCancel: onCancel\n });\n\n case CODE_BLOCK:\n return /*#__PURE__*/react_default.a.createElement(code_block["b" /* default */], {\n callback: ExecutePluginAction,\n onCancel: onCancel\n });\n\n case UPLOAD_IMAGE:\n return /*#__PURE__*/react_default.a.createElement(markdown_editor_upload_image, {\n callback: ExecutePluginAction,\n onCancel: onCancel\n });\n\n case ADD_TABLE:\n return /*#__PURE__*/react_default.a.createElement(add_table_panel, {\n callback: ExecutePluginAction,\n onCancel: onCancel\n });\n\n default:\n return null;\n }\n }, [action]);\n\n function onCancel() {\n setAction(\'\');\n }\n\n Object(react["useEffect"])(() => {\n if (resizeBarEl.current) {\n var resizeBar = resizeBarEl.current;\n var dragging = false;\n var startY = 0;\n\n function onMouseDown(e) {\n dragging = true;\n startY = e.pageY;\n }\n\n function onMouseUp() {\n dragging = false;\n }\n\n function onMouseMove(e) {\n if (dragging) {\n var delta = e.pageY - startY;\n\n if (delta < 0) {\n delta = 0;\n }\n\n if (delta > 300) {\n delta = 300;\n }\n\n var resizeH = height + delta + \'px\';\n setH(resizeH);\n }\n }\n\n resizeBar.addEventListener(\'mousedown\', onMouseDown);\n document.addEventListener(\'mousemove\', onMouseMove);\n document.addEventListener(\'mouseup\', onMouseUp);\n return () => {\n resizeBar.removeEventListener(\'mousedown\', onMouseDown);\n document.removeEventListener(\'mousemove\', onMouseMove);\n document.removeEventListener(\'mouseup\', onMouseUp);\n };\n }\n }, [cm, resizeBarEl]);\n Object(react["useEffect"])(() => {\n setH(height);\n }, [height]);\n var fixedWidth = processSize(width);\n var fixedHeight = processSize(h);\n var style = {\n width: fixedWidth,\n height: fixedHeight\n };\n var saveTime = Object(react["useMemo"])(() => {\n if (lastedUpdateTime) {\n var d = new Date(lastedUpdateTime);\n\n var _h = d.getHours();\n\n var m = d.getMinutes();\n var s = d.getSeconds();\n _h = _h < 10 ? \'0\' + _h : _h;\n m = m < 10 ? \'0\' + m : m;\n s = s < 10 ? \'0\' + s : s;\n return "".concat(_h, ":").concat(m, ":").concat(s);\n }\n\n return 0;\n }, [lastedUpdateTime]);\n\n function onCancelStorage() {\n window.sessionStorage.removeItem(id);\n setTip(false);\n setLastedUpdateTime(0);\n }\n\n function onReset() {\n setTip(false);\n setLastedUpdateTime(0);\n cm.setValue(window.sessionStorage.getItem(id));\n }\n\n return /*#__PURE__*/react_default.a.createElement(react["Fragment"], null, /*#__PURE__*/react_default.a.createElement("div", {\n className: "markdown-editor-container ".concat(className, " ").concat(preview ? \'on-preview\' : \'\', " ").concat(miniToolbar ? \'mini\' : \'\'),\n style: style\n }, /*#__PURE__*/react_default.a.createElement(markdown_editor_toolbar, {\n watch: preview,\n showNullButton: showNullButton,\n onActionCallback: onActionCallback\n }), /*#__PURE__*/react_default.a.createElement("div", {\n className: "markdown-editor-body"\n }, /*#__PURE__*/react_default.a.createElement("div", {\n className: "codemirror-container"\n }, /*#__PURE__*/react_default.a.createElement("textarea", {\n ref: cmEl,\n placeholder: placeholder\n })), preview ? /*#__PURE__*/react_default.a.createElement("div", {\n ref: previewEl,\n className: "preview-container"\n }, /*#__PURE__*/react_default.a.createElement(RenderHtml["a" /* default */], {\n value: value\n })) : null)), tip ? /*#__PURE__*/react_default.a.createElement("div", {\n className: "markdown-tip"\n }, "\\u60A8\\u4E0A\\u6B21\\u6709\\u5DF2\\u4FDD\\u5B58\\u7684\\u6570\\u5E74\\uFF0C\\u662F\\u5426", /*#__PURE__*/react_default.a.createElement("a", {\n onClick: onReset\n }, "\\u6062\\u590D"), " ? /", \' \', /*#__PURE__*/react_default.a.createElement("a", {\n onClick: onCancelStorage\n }, "\\u4E0D\\u6062\\u590D"), " \\uFF08\\u6570\\u636E\\u5DF2\\u4E8E ", saveTime, " \\u4FDD\\u5B58\\uFF09") : null, showResizeBar ? /*#__PURE__*/react_default.a.createElement("a", {\n ref: resizeBarEl,\n className: "editor-resize"\n }) : null, /*#__PURE__*/react_default.a.createElement(components_modal["a" /* default */], null, TitleDesc[action] ? /*#__PURE__*/react_default.a.createElement(modal["a" /* default */], {\n centered: true,\n title: TitleDesc[action],\n visible: true,\n onCancel: onCancel,\n footer: null\n }, PluginEl) : null));\n});\n\n//# sourceURL=webpack:///./src/components/markdown-editor/index.tsx_+_5_modules?')},X8EC:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var antd_es_button_style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("+L6B");\n/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2/Rp");\n/* harmony import */ var antd_es_input_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("5NDa");\n/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("5rEg");\n/* harmony import */ var _Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("k1fw");\n/* harmony import */ var _Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("WmNS");\n/* harmony import */ var _Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("9og8");\n/* harmony import */ var antd_es_form_style__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("y8nQ");\n/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("Vl3Y");\n/* harmony import */ var _Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("tJVT");\n/* harmony import */ var _Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("PpiC");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("q1tI");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var umi__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("9kvl");\n/* harmony import */ var _components_markdown_editor__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("Ot1p");\n/* harmony import */ var _index_less_modules__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("hxT0");\n/* harmony import */ var _index_less_modules__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_index_less_modules__WEBPACK_IMPORTED_MODULE_14__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar NewCoursePage = (_ref) => {\n var user = _ref.user,\n newCourse = _ref.newCourse,\n globalSetting = _ref.globalSetting,\n loading = _ref.loading,\n dispatch = _ref.dispatch,\n props = Object(_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"])(_ref, ["user", "newCourse", "globalSetting", "loading", "dispatch"]);\n\n var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].useForm(),\n _Form$useForm2 = Object(_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"])(_Form$useForm, 1),\n form = _Form$useForm2[0];\n\n var _useState = Object(react__WEBPACK_IMPORTED_MODULE_11__["useState"])({}),\n _useState2 = Object(_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"])(_useState, 2),\n formValue = _useState2[0],\n setFormValue = _useState2[1];\n\n var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_11__["useState"])(),\n _useState4 = Object(_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"])(_useState3, 2),\n isEdit = _useState4[0],\n setIsEdit = _useState4[1];\n\n var pathId = Object(react__WEBPACK_IMPORTED_MODULE_11__["useRef"])();\n Object(react__WEBPACK_IMPORTED_MODULE_11__["useEffect"])(() => {\n var _ref2;\n\n pathId.current = (_ref2 = props.match.params) === null || _ref2 === void 0 ? void 0 : _ref2.pathId;\n setIsEdit(!!pathId.current);\n\n if (pathId.current) {\n getEditCourseData();\n }\n }, []);\n\n var getEditCourseData = /*#__PURE__*/function () {\n var _ref3 = Object(_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])( /*#__PURE__*/_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default.a.mark(function _callee() {\n var res;\n return _Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default.a.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return dispatch({\n type: \'newCourse/getEditCourseData\',\n payload: {\n id: pathId.current\n }\n });\n\n case 2:\n res = _context.sent;\n\n if (res) {\n form.setFieldsValue({\n name: res.name\n });\n form.setFieldsValue({\n intro: res.description\n });\n form.setFieldsValue({\n notice: res.learning_notes\n });\n setFormValue({\n name: res.name,\n intro: res.description,\n notice: res.learning_notes\n });\n }\n\n case 4:\n case "end":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function getEditCourseData() {\n return _ref3.apply(this, arguments);\n };\n }();\n\n var handleFinish = /*#__PURE__*/function () {\n var _ref4 = Object(_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])( /*#__PURE__*/_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default.a.mark(function _callee2(values) {\n var _ref5, name, description, learning_notes, type, res;\n\n return _Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default.a.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _ref5 = values || {}, name = _ref5.name, description = _ref5.intro, learning_notes = _ref5.notice;\n type = isEdit ? \'newCourse/editCourse\' : \'newCourse/submitCourse\';\n _context2.next = 4;\n return dispatch({\n type,\n payload: {\n id: pathId.current,\n name,\n description,\n learning_notes\n }\n });\n\n case 4:\n res = _context2.sent;\n res && umi__WEBPACK_IMPORTED_MODULE_12__[/* history */ "c"].push("/paths/".concat(res.subject_id));\n\n case 6:\n case "end":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function handleFinish(_x) {\n return _ref4.apply(this, arguments);\n };\n }();\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement("section", {\n className: _index_less_modules__WEBPACK_IMPORTED_MODULE_14___default.a.bg\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement("div", {\n className: _index_less_modules__WEBPACK_IMPORTED_MODULE_14___default.a.titleWrap\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement("span", null, isEdit ? \'\u7f16\u8f91\' : \'\u521b\u5efa\', "\\u5B9E\\u8DF5\\u8BFE\\u7A0B")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"], {\n form: form,\n className: _index_less_modules__WEBPACK_IMPORTED_MODULE_14___default.a.formWrap,\n scrollToFirstError: true,\n layout: "vertical",\n onValuesChange: () => {\n console.log("onchange: ", form.getFieldsValue());\n setFormValue(Object(_Users_xiejianxiong_xjx_code_zq_ppte5yg23_node_modules_umijs_babel_preset_umi_node_modules_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])({}, form.getFieldsValue()));\n },\n onFinish: handleFinish\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement("div", {\n className: _index_less_modules__WEBPACK_IMPORTED_MODULE_14___default.a.fieldWrap\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].Item, {\n name: "name",\n label: "\\u5B9E\\u8DF5\\u8BFE\\u7A0B\\u540D\\u79F0:",\n rules: [{\n required: true,\n message: "\u8bf7\u8f93\u5165\u5b9e\u8df5\u8bfe\u7a0b\u540d\u79f0"\n }]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"], {\n maxLength: 60,\n placeholder: "\\u4F8B\\u5982\\uFF1A\\u4ECEPython\\u7A0B\\u5E8F\\u8BBE\\u8BA1-\\u5165\\u95E8\\u7CBE\\u901A"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement("div", {\n className: _index_less_modules__WEBPACK_IMPORTED_MODULE_14___default.a.mdWrap\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].Item, {\n name: "intro",\n label: "\\u7B80\\u4ECB:",\n rules: [{\n required: true,\n message: "\u8bf7\u8f93\u5165\u5b9e\u8df5\u8bfe\u7a0b\u7684\u7b80\u4ecb"\n }, {\n max: 8000,\n message: \'\u5b9e\u8df5\u8bfe\u7a0b\u7684\u7b80\u4ecb\u6700\u5927\u9650\u52368000\u4e2a\u5b57\u7b26\'\n }]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement(_components_markdown_editor__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"], {\n watch: true,\n defaultValue: formValue.intro\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement("div", {\n className: _index_less_modules__WEBPACK_IMPORTED_MODULE_14___default.a.mdWrap\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].Item, {\n name: "notice",\n label: "\\u5B66\\u4E60\\u987B\\u77E5:",\n rules: [{\n required: true,\n message: "\u8bf7\u8f93\u5165\u5b9e\u8df5\u8bfe\u7a0b\u7684\u5b66\u4e60\u987b\u77e5"\n }, {\n max: 2000,\n message: \'\u5b9e\u8df5\u8bfe\u7a0b\u7684\u5b66\u4e60\u987b\u77e5\u6700\u5927\u9650\u52362000\u4e2a\u5b57\u7b26\'\n }]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement(_components_markdown_editor__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"], {\n watch: true,\n defaultValue: formValue.notice\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement("div", {\n className: _index_less_modules__WEBPACK_IMPORTED_MODULE_14___default.a.backgroundFa\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement("div", {\n className: "pt40 mb30"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement(antd_es_button__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"], {\n size: "large",\n type: "primary",\n className: "".concat(_index_less_modules__WEBPACK_IMPORTED_MODULE_14___default.a.button, " mr20"),\n htmlType: "submit",\n loading: loading[\'newCourse/editCourse\'] || loading[\'newCourse/submitCourse\']\n }, "\\u63D0\\u4EA4"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement(antd_es_button__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"], {\n size: "large",\n type: "primary",\n ghost: true,\n className: _index_less_modules__WEBPACK_IMPORTED_MODULE_14___default.a.button,\n onClick: () => umi__WEBPACK_IMPORTED_MODULE_12__[/* history */ "c"].push(isEdit ? "/paths/".concat(pathId.current) : \'/paths\')\n }, "\\u53D6\\u6D88"))))));\n};\n\n/* harmony default export */ __webpack_exports__["default"] = (Object(umi__WEBPACK_IMPORTED_MODULE_12__[/* connect */ "a"])((_ref6) => {\n var user = _ref6.user,\n newCourse = _ref6.newCourse,\n loading = _ref6.loading,\n globalSetting = _ref6.globalSetting;\n return {\n user,\n newCourse,\n globalSetting,\n loading: loading.effects\n };\n})(NewCoursePage));\n\n//# sourceURL=webpack:///./src/pages/Paths/New/index.tsx?')},dejd:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n\n//# sourceURL=webpack:///./src/components/markdown-editor/toolbar/index.less?")},hxT0:function(module,exports,__webpack_require__){eval('// extracted by mini-css-extract-plugin\nmodule.exports = {"bg":"bg___2samk","flexRow":"flexRow___2Ocys","flexJustifyCenter":"flexJustifyCenter___14s6l","flexAlignEnd":"flexAlignEnd___1lHt8","flexAlignCenter":"flexAlignCenter___2PtCV","flexColumn":"flexColumn___2Ssa4","formWrap":"formWrap___3Fcg8","titleWrap":"titleWrap___3U2TN","fieldWrap":"fieldWrap___3K6pg","mdWrap":"mdWrap___3o_rf","backgroundFa":"backgroundFa___3dwFi","button":"button___1vOOT"};\n\n//# sourceURL=webpack:///./src/pages/Paths/New/index.less?')},kSUc:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n\n//# sourceURL=webpack:///./src/components/markdown-editor/index.less?")}}]);