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__User__Detail__ExperIment...

4725 lines
234 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"use strict";
(self["webpackChunk"] = self["webpackChunk"] || []).push([[63157,66390],{
/***/ 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';
/***/ }),
/***/ 55335:
/*!****************************************************************!*\
!*** ./src/components/SelectEnvironment/index.tsx + 1 modules ***!
\****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"Z": function() { return /* binding */ components_SelectEnvironment; }
});
// 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/objectSpread2.js
var objectSpread2 = __webpack_require__(42122);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// 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/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: ./node_modules/antd/es/tooltip/index.js + 3 modules
var tooltip = __webpack_require__(83062);
// EXTERNAL MODULE: ./node_modules/antd/es/input/index.js + 5 modules
var input = __webpack_require__(79531);
// EXTERNAL MODULE: ./node_modules/antd/es/spin/index.js + 1 modules
var spin = __webpack_require__(57953);
// EXTERNAL MODULE: ./node_modules/antd/es/empty/index.js + 3 modules
var empty = __webpack_require__(32983);
// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(94184);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
;// CONCATENATED MODULE: ./src/components/SelectEnvironment/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var SelectEnvironmentmodules = ({"selectEnvironment":"selectEnvironment___LegvW","search":"search___ZMwsK","searchListWrap":"searchListWrap___iUv9S","searchList":"searchList___T1FBi","name":"name___t0Y2b","tag":"tag___ooWkq","searchListActive":"searchListActive___ahElk","spin":"spin___x2xMT","common":"common___ZhJvk","title":"title___p4_7m","tags":"tags___2fYZM","tagActive":"tagActive___tb54k","wrap":"wrap___I9ZtF","allList":"allList___h31KX","item":"item___PwiKQ","itemActive":"itemActive___JCEc6","line":"line___Qn6mz","apply":"apply___EhZKq","p1":"p1___LxfGu","p2":"p2___jiQhJ","list":"list___n7Ydz","items":"items___OB8qz","darklySelectEnvironment":"darklySelectEnvironment___K__cy"});
// EXTERNAL MODULE: ./src/assets/images/noEnvData.png
var noEnvData = __webpack_require__(36723);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var fetch = __webpack_require__(84519);
// EXTERNAL MODULE: ./node_modules/lodash/lodash.js
var lodash = __webpack_require__(96486);
// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(85893);
;// CONCATENATED MODULE: ./src/components/SelectEnvironment/index.tsx
var SelectEnvironment = function SelectEnvironment(_ref) {
var className = _ref.className,
dispatch = _ref.dispatch,
_ref$skin = _ref.skin,
skin = _ref$skin === void 0 ? 'white' : _ref$skin,
_ref$value = _ref.value,
value = _ref$value === void 0 ? null : _ref$value,
_ref$loading = _ref.loading,
loading = _ref$loading === void 0 ? false : _ref$loading,
_ref$data = _ref.data,
data = _ref$data === void 0 ? [] : _ref$data,
_ref$otherData = _ref.otherData,
otherData = _ref$otherData === void 0 ? [] : _ref$otherData,
_ref$tags = _ref.tags,
tags = _ref$tags === void 0 ? [] : _ref$tags,
_ref$onChange = _ref.onChange,
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
_ref$onSearchWord = _ref.onSearchWord,
onSearchWord = _ref$onSearchWord === void 0 ? function () {} : _ref$onSearchWord,
shixun_type = _ref.shixun_type,
extraContent = _ref.extraContent,
tab_type = _ref.tab_type,
is_create_mirror = _ref.is_create_mirror,
hiddenCreateOnline = _ref.hiddenCreateOnline;
var _useState = (0,react.useState)(''),
_useState2 = slicedToArray_default()(_useState, 2),
inputValue = _useState2[0],
setInputValue = _useState2[1];
var _useState3 = (0,react.useState)(false),
_useState4 = slicedToArray_default()(_useState3, 2),
visible = _useState4[0],
setVisible = _useState4[1];
var _useState5 = (0,react.useState)([]),
_useState6 = slicedToArray_default()(_useState5, 2),
options = _useState6[0],
setOptions = _useState6[1];
var _useState7 = (0,react.useState)(0),
_useState8 = slicedToArray_default()(_useState7, 2),
listActiveIndex = _useState8[0],
setListActiveIndex = _useState8[1];
var timer = (0,react.useRef)(null);
var quId = (0,react.useRef)(String(Math.floor(Math.random() * 1000000))).current;
var inputRef = (0,react.useRef)();
var timerSearch = (0,react.useRef)(null);
var endCount = (0,react.useRef)(0);
var optionsSave = (0,react.useRef)([]);
(0,react.useEffect)(function () {
window.addEventListener('keydown', handleKeyDown);
return function () {
window.removeEventListener('keydown', handleKeyDown);
};
}, [inputValue, visible, options]);
(0,react.useEffect)(function () {
setOptions([]);
}, [tab_type]);
var handleKeyDown = function handleKeyDown(e) {
if (!visible || e.keyCode !== 40 && e.keyCode !== 38) {
return;
}
var activeIndex = 0;
if (e.keyCode === 40 && visible) {
if (listActiveIndex < options.length - 1) {
activeIndex = listActiveIndex + 1;
} else {
activeIndex = 0;
}
console.log('下');
searchFuc(activeIndex, 'down');
}
if (e.keyCode === 38 && visible) {
if (listActiveIndex === 0) {
activeIndex = options.length - 1;
} else {
activeIndex = listActiveIndex - 1;
}
searchFuc(activeIndex, 'up');
}
setListActiveIndex(activeIndex);
optionsInit(inputValue, activeIndex, true);
};
//高亮字符串 string: 需要处理的字符串keyword键盘输入的内容
var heightLight = function heightLight(string, keyword) {
var regTrim = function regTrim(s) {
var imp = /[\^\.\\\|\(\)\*\+\-\$\[\]\?]/g;
var imp_c = {};
imp_c["^"] = "\\^";
imp_c["."] = "\\.";
imp_c["\\"] = "\\\\";
imp_c["|"] = "\\|";
imp_c["("] = "\\(";
imp_c[")"] = "\\)";
imp_c["*"] = "\\*";
imp_c["+"] = "\\+";
imp_c["-"] = "\\-";
imp_c["$"] = "\$";
imp_c["["] = "\\[";
imp_c["]"] = "\\]";
imp_c["?"] = "\\?";
s = s.replace(imp, function (o) {
return imp_c[o];
});
return s;
};
var reg = new RegExp(regTrim(keyword), "gi");
string = string.replace(reg, function (txt) {
return "<span style='color:#0152d9;'>" + txt + "</span>";
});
return string;
};
var optionsInit = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(searchText, activeList, move) {
var count, listDom, newItems;
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
count = endCount.current + 1;
endCount.current = count;
listDom = function listDom(list) {
var newItems = list === null || list === void 0 ? void 0 : list.map(function (er, index) {
var id = er.id,
name = er.name;
var param = objectSpread2_default()(objectSpread2_default()({}, er), {}, {
label: /*#__PURE__*/(0,jsx_runtime.jsxs)("ul", {
id: "search-".concat(quId, "-").concat(index),
onClick: function onClick() {
return onSelect(id, param);
},
className: index === activeList ? SelectEnvironmentmodules.searchListActive : SelectEnvironmentmodules.searchList,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("li", {
className: SelectEnvironmentmodules.name,
dangerouslySetInnerHTML: {
__html: heightLight(name, searchText)
}
}), er["private"] && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
title: "\u8BE5\u955C\u50CF\u9762\u5411\u6307\u5B9A\u7528\u6237\u5F00\u653E",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
className: SelectEnvironmentmodules.tag,
style: {
color: '#FF9D18',
border: '1px solid #FFCF8D',
fontSize: 10
},
children: "\u9650\u5B9A"
})
}), er.is_base && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
title: "\u4EC5\u63D0\u4F9B\u4E00\u4E2A\u57FA\u672C\u7684\u64CD\u4F5C\u7CFB\u7EDF\u73AF\u5883",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
className: SelectEnvironmentmodules.tag,
style: {
color: '#165DFF',
border: '1px solid #BACFFE',
fontSize: 10
},
children: "\u57FA\u7840"
})
})]
})
});
return param;
});
return newItems;
};
if (!move) {
_context2.next = 7;
break;
}
newItems = listDom(optionsSave.current);
setOptions(newItems);
return _context2.abrupt("return");
case 7:
clearTimeout(timerSearch.current);
timerSearch.current = setTimeout( /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var params, res, _res$data, _newItems, _res$data2;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
params = {
keywords: encodeURIComponent(searchText || ''),
page: 1,
limit: 100000,
tab_type: tab_type
};
shixun_type ? params["shixun_type"] = shixun_type : "";
_context.next = 4;
return (0,fetch/* default */.ZP)("/api/shixuns/search_image.json", {
method: 'get',
params: objectSpread2_default()(objectSpread2_default()({}, params), {}, {
is_create_mirror: is_create_mirror
})
});
case 4:
res = _context.sent;
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
_newItems = listDom((res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.mirrors) || []);
if (count === endCount.current) {
setOptions(_newItems);
optionsSave.current = (0,lodash.cloneDeep)((res === null || res === void 0 ? void 0 : (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.mirrors) || []);
}
}
case 6:
case "end":
return _context.stop();
}
}, _callee);
})), 300);
case 9:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return function optionsInit(_x, _x2, _x3) {
return _ref2.apply(this, arguments);
};
}();
var scrollFuc = function scrollFuc(id) {
var itemDom = document.getElementById("scroll-".concat(quId, "-").concat(id));
if (!itemDom) return;
var wrapDom = document.getElementById("scroll-".concat(quId));
wrapDom.scrollTo(0, itemDom.offsetTop);
};
var searchFuc = function searchFuc(index, direction) {
var itemDom = document.getElementById("search-".concat(quId, "-").concat(index));
if (!itemDom) return;
var wrapDom = document.getElementById("search-".concat(quId));
var isClient = itemDom.offsetTop - wrapDom.scrollTop > 0 && itemDom.offsetTop - wrapDom.scrollTop < wrapDom.clientHeight; //判断在盒子内
if (isClient) return; //在盒子内不滚动
if (direction === 'down') {
wrapDom.scrollTo(0, itemDom.offsetTop - wrapDom.clientHeight + itemDom.clientHeight);
} else {
wrapDom.scrollTo(0, itemDom.offsetTop);
}
};
var onSearch = function onSearch(searchText) {
optionsInit(searchText, 0);
};
var handlePressEnter = function handlePressEnter(v) {
var _options$listActiveIn;
if (!options.length) return;
var realId = options === null || options === void 0 ? void 0 : (_options$listActiveIn = options[listActiveIndex]) === null || _options$listActiveIn === void 0 ? void 0 : _options$listActiveIn.id;
onChange(realId);
setOptions([]);
setListActiveIndex(0);
// setInputValue(options?.[listActiveIndex]?.name)
scrollFuc(realId);
inputRef.current.blur();
};
var onSelect = function onSelect(id, option) {
onChange(id);
setOptions([]);
setListActiveIndex(0);
// setInputValue(option?.name)
scrollFuc(id);
};
var clear = function clear() {
setOptions([]);
setInputValue("");
onSearchWord('');
};
var activeClear = function activeClear(id) {
onChange(id);
setOptions([]);
// setInputValue('')
};
var renderIcon = function renderIcon() {
if (inputValue === '') {
return /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
style: {
pointerEvents: 'none'
},
className: "iconfont icon-sousuo2 c-grey-c"
});
}
return /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
onClick: function onClick(e) {
e.stopPropagation();
clear();
},
className: "iconfont icon-shanchu4 c-grey-c"
});
};
var handleApply = function handleApply() {
dispatch({
type: 'newShixuns/setActionTabs',
payload: {
key: 'NewShixuns-Apply'
}
});
};
var CreateImg = function CreateImg() {
dispatch({
type: 'newShixuns/setActionTabs',
payload: {
key: 'Create-Environment'
}
});
};
var onBlur = function onBlur() {
timer.current = setTimeout(function () {
setVisible(false);
setListActiveIndex(0);
}, 200);
//blur阻止了select事件
};
var isEmpty = !(data !== null && data !== void 0 && data.length) && !(otherData !== null && otherData !== void 0 && otherData.length);
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: classnames_default()(skin === 'night' ? SelectEnvironmentmodules.darklySelectEnvironment : SelectEnvironmentmodules.selectEnvironment, className),
children: [extraContent && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: {
marginTop: 20,
marginLeft: 20
},
children: extraContent
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: SelectEnvironmentmodules.search,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
suffix: renderIcon(),
bordered: false,
ref: inputRef,
value: inputValue,
onKeyDown: function onKeyDown(e) {
if (e.keyCode === 40 || e.keyCode === 38 || e.keyCode === 13) {
e.preventDefault();
}
},
size: 'middle',
onFocus: function onFocus() {
clearTimeout(timer.current);
if (inputValue) {
onSearch(inputValue);
}
setVisible(true);
},
onBlur: onBlur,
onChange: function onChange(e) {
setInputValue(e.target.value);
if (e.target.value) {
onSearch(e.target.value);
}
onSearchWord(e.target.value);
},
placeholder: "\u641C\u7D22\u60A8\u9700\u8981\u7684\u5B9E\u9A8C\u73AF\u5883",
onPressEnter: handlePressEnter
}), visible && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
id: "search-".concat(quId),
className: SelectEnvironmentmodules.searchListWrap,
children: options.map(function (e, i) {
return /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, {
children: [" ", e.label]
}, i);
})
})]
}), loading ? /*#__PURE__*/(0,jsx_runtime.jsx)(spin/* default */.Z, {
className: SelectEnvironmentmodules.spin
}) : /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, {
children: [!!tags.length && /*#__PURE__*/(0,jsx_runtime.jsxs)("aside", {
className: SelectEnvironmentmodules.common,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: SelectEnvironmentmodules.title,
children: "\u63A8\u8350\u73AF\u5883:"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("ul", {
className: SelectEnvironmentmodules.tags,
children: tags.map(function (e, i) {
return /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
onClick: function onClick() {
return activeClear(e.id);
},
className: value === e.id ? "".concat(SelectEnvironmentmodules.tag, " ").concat(SelectEnvironmentmodules.tagActive) : SelectEnvironmentmodules.tag,
children: e.name
}, i);
})
})]
}), isEmpty && /*#__PURE__*/(0,jsx_runtime.jsx)(empty/* default */.Z, {
style: {
margin: '60px 0'
},
image: noEnvData,
description: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "c-grey-999",
children: "\u6682\u65E0\u5B9E\u9A8C\u73AF\u5883"
})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("aside", {
className: SelectEnvironmentmodules.wrap,
id: "scroll-".concat(quId),
children: [data.map(function (item, i) {
var _item$image;
return !!(item !== null && item !== void 0 && (_item$image = item.image) !== null && _item$image !== void 0 && _item$image.length) ? /*#__PURE__*/(0,jsx_runtime.jsx)(List, {
data: item,
id: value,
handleClick: function handleClick(id) {
return activeClear(id);
}
}, i) : null;
}), /*#__PURE__*/(0,jsx_runtime.jsx)("ul", {
className: SelectEnvironmentmodules.allList,
children: otherData.map(function (item) {
return /*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
id: "scroll-".concat(quId, "-").concat(item.id),
className: item.id === value ? "".concat(SelectEnvironmentmodules.item, " ").concat(SelectEnvironmentmodules.itemActive) : SelectEnvironmentmodules.item,
onClick: function onClick() {
return onChange(item.id);
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: SelectEnvironmentmodules.name,
children: item.name
}), item["private"] && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
title: "\u8BE5\u955C\u50CF\u9762\u5411\u6307\u5B9A\u7528\u6237\u5F00\u653E",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: SelectEnvironmentmodules.tag,
style: {
color: '#FF9D18',
border: '1px solid #FFCF8D',
fontSize: 10
},
children: "\u9650\u5B9A"
})
}), item.is_base && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
title: "\u4EC5\u63D0\u4F9B\u4E00\u4E2A\u57FA\u672C\u7684\u64CD\u4F5C\u7CFB\u7EDF\u73AF\u5883",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: SelectEnvironmentmodules.tag,
style: {
color: '#165DFF',
border: '1px solid #BACFFE',
fontSize: 10
},
children: "\u57FA\u7840"
})
})]
}, "key-".concat(item.id));
})
})]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: SelectEnvironmentmodules.apply,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: SelectEnvironmentmodules.p1,
children: "\u6CA1\u6709\u5B9E\u9A8C\u73AF\u5883\uFF1F"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: SelectEnvironmentmodules.p2,
onClick: handleApply,
children: " \u7533\u8BF7\u65B0\u5EFA"
}), !hiddenCreateOnline && /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: SelectEnvironmentmodules.p2,
onClick: CreateImg,
children: " \u5728\u7EBF\u521B\u5EFA"
})]
})]
});
};
var List = function List(_ref4) {
var data = _ref4.data,
id = _ref4.id,
handleClick = _ref4.handleClick;
var _useState9 = (0,react.useState)(true),
_useState10 = slicedToArray_default()(_useState9, 2),
drop = _useState10[0],
setDrop = _useState10[1];
var name = data.name,
image = data.image;
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: SelectEnvironmentmodules.list,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("header", {
onClick: function onClick() {
return setDrop(!drop);
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: SelectEnvironmentmodules.title,
children: name
}), /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
style: {
transition: '0.5s',
transform: drop ? 'rotate(0deg)' : 'rotate(180deg)'
},
className: "iconfont icon-shangjiantou c-grey-999"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("ul", {
className: SelectEnvironmentmodules.items,
style: {
height: drop ? 'auto' : 0
},
children: [image.map(function (item) {
return /*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
className: item.id === id ? "".concat(SelectEnvironmentmodules.item, " ").concat(SelectEnvironmentmodules.itemActive) : SelectEnvironmentmodules.item,
onClick: function onClick() {
return handleClick(item.id);
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: SelectEnvironmentmodules.name,
children: item.name
}), item["private"] && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
title: "\u8BE5\u955C\u50CF\u9762\u5411\u6307\u5B9A\u7528\u6237\u5F00\u653E",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: SelectEnvironmentmodules.tag,
style: {
color: '#FF9D18',
border: '1px solid #FFCF8D',
fontSize: 10
},
children: "\u9650\u5B9A"
})
}), item.is_base && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
title: "\u4EC5\u63D0\u4F9B\u4E00\u4E2A\u57FA\u672C\u7684\u64CD\u4F5C\u7CFB\u7EDF\u73AF\u5883",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: SelectEnvironmentmodules.tag,
style: {
color: '#165DFF',
border: '1px solid #BACFFE',
fontSize: 10
},
children: "\u57FA\u7840"
})
})]
}, item.id);
}), /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
className: SelectEnvironmentmodules.line
})]
})]
});
};
/* harmony default export */ var components_SelectEnvironment = (SelectEnvironment);
/***/ }),
/***/ 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_local_v9_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_local_v9_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray.js */ 27424);
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ 67294);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd */ 79035);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd */ 25159);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd */ 71577);
/* harmony import */ var codemirror__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! codemirror */ 4631);
/* harmony import */ var codemirror__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(codemirror__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! codemirror/lib/codemirror.css */ 71749);
/* harmony import */ var codemirror_theme_blackboard_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! codemirror/theme/blackboard.css */ 30483);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ 85893);
var Option = antd__WEBPACK_IMPORTED_MODULE_7__/* ["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_2__.useState)('python'),
_useState2 = _root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1___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_6__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, _root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_local_v9_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_6__.jsx)(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"].Item */ .Z.Item, {
label: "\u4EE3\u7801\u8BED\u8A00",
name: "language",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(antd__WEBPACK_IMPORTED_MODULE_7__/* ["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_6__.jsx)(Option, {
value: item,
children: LanguageDesc[item][0]
}, item);
})
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"].Item */ .Z.Item, {
label: "\u4EE3\u7801\u5185\u5BB9",
name: "content",
rules: [{
required: true,
message: '请输入代码内容'
}],
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(MyCodeMirror, {
mode: mode
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
className: "flex-container flex-end",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .ZP, {
type: "primary",
htmlType: "submit",
style: {
marginRight: 10
},
children: "\u786E\u5B9A"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .ZP, {
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_2__.useRef)();
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(),
_useState4 = _root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1___default()(_useState3, 2),
cm = _useState4[0],
setCm = _useState4[1];
(0,react__WEBPACK_IMPORTED_MODULE_2__.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_2__.useEffect)(function () {
if (cm) {
cm.setOption('mode', mode);
}
}, [cm, mode]);
(0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {
if (cm) {
if (value !== cm.getValue() || value === '') {
setTimeout(function () {
cm.setValue(value || '');
}, 300);
}
}
}, [cm, value]);
(0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {
if (el.current && !cm) {
var instance = codemirror__WEBPACK_IMPORTED_MODULE_3___default().fromTextArea(el.current, _root_workspace_ppte5yg23_local_v9_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_6__.jsx)("div", {
className: "my-codemirror-container",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.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/@babel/runtime/helpers/createForOfIteratorHelper.js
var createForOfIteratorHelper = __webpack_require__(74704);
var createForOfIteratorHelper_default = /*#__PURE__*/__webpack_require__.n(createForOfIteratorHelper);
// 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/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,
showNullProgramButton = _ref2.showNullProgramButton,
onActionCallback = _ref2.onActionCallback,
fullScreen = _ref2.fullScreen,
insertTemp = _ref2.insertTemp,
hidetoolBar = _ref2.hidetoolBar;
var icons = [].concat(DEFAULTICONS, [{
title: "".concat(watch ? '关闭实时预览' : '开启实时预览'),
icon: "".concat(watch ? 'icon-eye-slash' : 'icon-eye'),
actionName: 'trigger-watch'
}]);
return /*#__PURE__*/(0,jsx_runtime.jsxs)("ul", {
className: "markdown-toolbar-container",
children: [!hidetoolBar && icons.map(function (item, index) {
return /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: item.actionName ? /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, objectSpread2_default()(objectSpread2_default()({}, item), {}, {
onActionCallback: onActionCallback
})) : /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "v-line"
})
}, index);
}), showNullButton ? /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, {
icon: "icon-edit insert-blank",
className: "btn-null",
title: "\u589E\u52A0\u586B\u7A7A",
actionName: "add-null-ch",
onActionCallback: onActionCallback,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "fill-tip",
children: "\u70B9\u51FB\u63D2\u5165\b\u586B\u7A7A\u9879"
})
})
}) : null, showNullProgramButton ? /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, {
icon: "icon-edit insert-blank",
className: "btn-null",
title: "\u589E\u52A0\u586B\u7A7A",
actionName: "add-signal",
onActionCallback: onActionCallback,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "fill-tip",
children: "\u6DFB\u52A0\u5355\u884C\u586B\u7A7A\u9879"
})
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, {
icon: "icon-uniE900 insert-blank",
className: "btn-null",
title: "\u589E\u52A0\u586B\u7A7A",
actionName: "add-multiple",
onActionCallback: onActionCallback,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "fill-tip",
children: "\u6DFB\u52A0\u591A\u884C\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 modal = __webpack_require__(12264);
// EXTERNAL MODULE: ./node_modules/antd/es/form/index.js + 17 modules
var es_form = __webpack_require__(25159);
// EXTERNAL MODULE: ./node_modules/antd/es/input/index.js + 5 modules
var input = __webpack_require__(79531);
// EXTERNAL MODULE: ./node_modules/antd/es/button/index.js
var es_button = __webpack_require__(71577);
;// 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 */.ZP, {
type: "primary",
htmlType: "submit",
style: {
marginRight: 10
},
children: "\u786E\u5B9A"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: "ghost",
onClick: onCancel,
children: "\u53D6\u6D88"
})]
})]
}));
});
// EXTERNAL MODULE: ./src/components/markdown-editor/code-block/index.tsx
var code_block = __webpack_require__(97501);
// EXTERNAL MODULE: ./node_modules/antd/es/message/index.js + 4 modules
var message = __webpack_require__(2453);
;// 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 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];
var nameRef = (0,react.useRef)();
function onSubmit(values) {
callback(objectSpread2_default()(objectSpread2_default()({}, values), {}, {
name: nameRef.current
}));
}
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];
nameRef.current = file.name;
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,
style: {
width: 470,
overflow: "hidden"
},
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: 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 */.ZP, {
type: "primary",
htmlType: "submit",
style: {
marginRight: 10
},
children: "\u786E\u5B9A"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: "default",
onClick: onCancel,
children: "\u53D6\u6D88"
})]
})]
}));
});
function UploadButton(_ref2) {
var onFileChange = _ref2.onFileChange;
return /*#__PURE__*/(0,jsx_runtime.jsxs)("label", {
className: "upload-button",
style: {
cursor: "pointer"
},
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/radio/index.js + 5 modules
var es_radio = __webpack_require__(78045);
// EXTERNAL MODULE: ./node_modules/antd/es/input-number/index.js + 21 modules
var input_number = __webpack_require__(31795);
;// 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 */.ZP, {
type: "primary",
htmlType: "submit",
style: {
marginRight: 10
},
children: "\u786E\u5B9A"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: "ghost",
onClick: onCancel,
children: "\u53D6\u6D88"
})]
})]
});
});
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
var env = __webpack_require__(59758);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var fetch = __webpack_require__(84519);
// EXTERNAL MODULE: ./node_modules/uuid/dist/esm-browser/v4.js + 4 modules
var v4 = __webpack_require__(25934);
// EXTERNAL MODULE: ./node_modules/antd/es/modal/index.js + 39 modules
var es_modal = __webpack_require__(72423);
;// 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 ADD_MULTI = '@▁▁@';
var ADD_SINGLE = '@▁@';
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 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"];
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$showNullProgramB = _ref.showNullProgramButton,
showNullProgramButton = _ref$showNullProgramB === void 0 ? false : _ref$showNullProgramB,
_ref$hidetoolBar = _ref.hidetoolBar,
hidetoolBar = _ref$hidetoolBar === void 0 ? false : _ref$hidetoolBar,
_ref$fullScreen = _ref.fullScreen,
fullScreen = _ref$fullScreen === void 0 ? false : _ref$fullScreen,
onBlur = _ref.onBlur,
onCMBeforeChange = _ref.onCMBeforeChange,
onFullScreen = _ref.onFullScreen,
_ref$className = _ref.className,
className = _ref$className === void 0 ? '' : _ref$className,
_ref$disablePaste = _ref.disablePaste,
disablePaste = _ref$disablePaste === void 0 ? false : _ref$disablePaste,
_ref$disabled = _ref.disabled,
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
_ref$disabledFill = _ref.disabledFill,
disabledFill = _ref$disabledFill === void 0 ? false : _ref$disabledFill,
_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 uuidRef = (0,react.useRef)((0,v4/* default */.Z)());
var openPhoneRef = (0,react.useRef)(false);
var timer = (0,react.useRef)();
var cmEl = (0,react.useRef)();
var containerEl = (0,react.useRef)();
var resizeBarEl = (0,react.useRef)();
var previewEl = (0,react.useRef)();
var checkFiles = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var _res$attachments;
var res;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return (0,fetch/* default */.ZP)("/api/attachments/distinct_hash_val.json", {
method: "post",
body: {
hash_val: uuidRef.current
}
});
case 2:
res = _context.sent;
if (!!(res !== null && res !== void 0 && (_res$attachments = res.attachments) !== null && _res$attachments !== void 0 && _res$attachments.length)) {
console.log("cm:", cm, cmEl);
res.attachments.map(function (item) {
if (item.content_type.indexOf("image") > -1) {
cm.replaceSelection("![,](/api/attachments/".concat(item.id, "?type=").concat(item.content_type, ")"));
} else if (item.content_type.indexOf("video") > -1) {
cm.replaceSelection("<video width=\"100%\" controls src=\"".concat(env/* default.API_SERVER */.Z.API_SERVER, "/api/attachments/").concat(data.id, "\"></video>"));
} else if (item.content_type.indexOf("pdf") > -1) {
cm.replaceSelection("<a href=\"".concat(env/* default.API_SERVER */.Z.API_SERVER, "/api/attachments/").concat(item.id, "?type=").concat(item.content_type, "&disposition=inline\" target=\"_blank\">").concat(item.name, "</a>"));
} else {
cm.replaceSelection("[".concat(item.name, "](").concat(env/* default.API_SERVER */.Z.API_SERVER, "/api/attachments/").concat(item.id, "?type=").concat(item.content_type, ")"));
}
});
}
case 4:
case "end":
return _context.stop();
}
}, _callee);
}));
return function checkFiles() {
return _ref2.apply(this, arguments);
};
}();
// useEffect(() => {
// setValue(defaultValue)
// cm?.setValue(defaultValue)
// },[])
(0,react.useEffect)(function () {
var scrollTop = window.scrollY || window.pageYOffset;
setValue(values);
cm === null || cm === void 0 ? void 0 : cm.setValue(values);
window.scrollTo(0, scrollTop);
}, [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;
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("<video width=\"100%\" controls src=\"".concat(env/* default.API_SERVER */.Z.API_SERVER, "/api/attachments/").concat(data.id, "\"></video>"));
} 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("<a href=\"".concat(env/* default.API_SERVER */.Z.API_SERVER, "/api/attachments/").concat(data.id, "?type=").concat(file.type, "&disposition=inline\" target=\"_blank\">").concat(file.name, "</a>"));
} else if (officeSix.includes(fileSix)) {
instance.replaceSelection("<a href=\"".concat(env/* default.API_SERVER */.Z.API_SERVER, "/api/attachments/").concat(data.id, "?type=office&disposition=inline\" target=\"_blank\">").concat(file.name, "</a>"));
} 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.warning */.ZP.warning("请使用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
});
instance.on("keyup", function (cm, event) {
if (event.keyCode === 8) {
if (cm.getValue() == "") {
instance.setOption("placeholder", placeholder);
} else {
instance.setOption("placeholder", null);
}
}
});
instance.on("keydown", function (cm, event) {
if (event.keyCode === 8) {
var pos = deleteAtSymbol(cm);
if (pos) {
event.preventDefault();
}
}
});
isFocus && instance.focus();
instance.on('paste', onPaste);
instance.on('dragleave', function (data, e) {
containerEl.current.classList.remove("mouse-hover-md");
});
instance.on('dragover', function (data, e) {
containerEl.current.classList.add("mouse-hover-md");
});
instance.on('drop', function (data, e) {
containerEl.current.classList.add("mouse-hover-md");
// var file;
var files;
// Check if files were dropped
files = e.dataTransfer.files;
if (files.length > 0) {
e.preventDefault();
e.stopPropagation();
// file = files[0];
// alert('File: ' + file.name);
// return false;
var _loop = function _loop() {
var file = files[i];
var fileSix = file.name.split(".").pop();
uploadImage(file, function (data) {
if (data.id) {
var _file$type4, _file$type5, _file$type6;
if ((file === null || file === void 0 ? void 0 : (_file$type4 = file.type) === null || _file$type4 === void 0 ? void 0 : _file$type4.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$type5 = file.type) === null || _file$type5 === void 0 ? void 0 : _file$type5.indexOf("video")) > -1) {
instance.replaceSelection("<video width=\"100%\" controls src=\"".concat(env/* default.API_SERVER */.Z.API_SERVER, "/api/attachments/").concat(data.id, "\"></video>"));
} else if ((file === null || file === void 0 ? void 0 : (_file$type6 = file.type) === null || _file$type6 === void 0 ? void 0 : _file$type6.indexOf("pdf")) > -1) {
instance.replaceSelection("<a href=\"".concat(env/* default.API_SERVER */.Z.API_SERVER, "/api/attachments/").concat(data.id, "?type=").concat(file.type, "&disposition=inline\" target=\"_blank\">").concat(file.name, "</a>"));
} else if (officeSix.includes(fileSix)) {
instance.replaceSelection("<a href=\"".concat(env/* default.API_SERVER */.Z.API_SERVER, "/api/attachments/").concat(data.id, "?type=office&disposition=inline\" target=\"_blank\">").concat(file.name, "</a>"));
} 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';
}
});
};
for (var i = 0; i < files.length; i++) {
_loop();
}
// files.map((file:any) => {
// })
}
});
if (disabled) {
instance.on("beforeChange", function (instances, change) {
if (change.origin === "paste" || change.origin === "+input") {
change.cancel();
}
});
}
setCm(instance);
return function () {
instance.off('paste', onPaste);
};
}
}, []);
var resizeEditorBodyHeight = (0,react.useCallback)(function () {
if (containerEl.current) {
try {
// let toolH = containerEl.current.getElementsByClassName('markdown-toolbar-container')[0].offsetHeight
// let mdBody = containerEl.current.getElementsByClassName('markdown-editor-body')[0]
// if (!isFull) {
// mdBody.style.height = `${h - toolH}px`
// } else {
// mdBody.style.height = `calc(100vh - ${toolH}px)`
// }
} catch (error) {
console.log(error, '---- to set md editor body height');
}
}
}, [h, containerEl, isFull]);
(0,react.useEffect)(function () {
function onLayout() {
var ro = new ResizeObserver_es/* default */.Z(function (entries) {
var _iterator = createForOfIteratorHelper_default()(entries),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var entry = _step.value;
if (entry.target.offsetHeight > 0 || entry.target.offsetWidth > 0) {
resizeEditorBodyHeight();
cm.setSize('100%', '100%');
cm.refresh();
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
});
ro.observe(cmEl.current.parentElement);
return ro;
}
if (cm) {
var ro = onLayout();
return function () {
var _cmEl$current, _cmEl$current2;
if ((_cmEl$current = cmEl.current) !== null && _cmEl$current !== void 0 && _cmEl$current.parentElement) ro.unobserve((_cmEl$current2 = cmEl.current) === null || _cmEl$current2 === void 0 ? void 0 : _cmEl$current2.parentElement);
};
}
}, [cm, resizeEditorBodyHeight]);
//keymap
(0,react.useEffect)(function () {
if (cm) {
var keymap = [];
var _loop2 = function _loop2() {
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++) {
_loop2();
}
timer.current = setInterval(function () {
if (openPhoneRef.current) {
checkFiles();
}
}, 4000);
return function () {
clearInterval(timer.current);
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]);
function deleteAtSymbol(cm, change) {
var doc = cm.getDoc();
var cursor = doc.getCursor();
var line = doc.getLine(cursor.line);
var ch = line.charAt(cursor.ch - 1);
var p1 = line.lastIndexOf("@▁@", cursor.ch);
var p2 = line.lastIndexOf("@▁▁@", cursor.ch);
var posStart = p1 > p2 ? p1 : p2;
var n = p1 > p2 ? 3 : 4;
if (ADD_MULTI.indexOf(ch) === -1) return null;
console.log("change1:", change, cm, line, cursor, posStart, p1, p2, ch);
if (posStart >= 0 && cursor.ch - posStart < 5) {
var posEnd = posStart + n;
doc.replaceRange("", {
line: cursor.line,
ch: posStart
}, {
line: cursor.line,
ch: posEnd
});
return {
line: cursor.line,
ch: posEnd
};
}
return null;
}
(0,react.useEffect)(function () {
if (cm) {
var onChangeHandler = function onChangeHandler(cm, change) {
var content = cm.getValue();
setValue(content);
setLastedUpdateTime(new Date().getTime());
cm.getScrollerElement().dispatchEvent(new CustomEvent('scroll'));
if (onChange) {
if (showNullProgramButton) {
onChange(content, formatProgramFill(content));
} else {
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 {
var scrollTop = window.scrollY || window.pageYOffset;
if (defaultValue !== cm.getValue()) {
cm.setValue(defaultValue);
setValue(defaultValue);
cm.setCursor(disabled ? 1 : cm.lineCount(), 0);
window.scrollTo(0, scrollTop);
}
}
}
}, [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('<br/>\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 'add-signal':
if (selection === '') {
cm.setCursor(cursor.line, cursor.ch);
}
cm.replaceSelection(ADD_SINGLE);
return cm.focus();
case 'add-multiple':
if (selection === '') {
cm.setCursor(cursor.line, cursor.ch);
}
cm.replaceSelection(ADD_MULTI);
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]);
var formatProgramFill = function formatProgramFill(str) {
var arr = [];
if (showNullProgramButton) {
var num = -1;
str = str.replace(/(@▁▁@|@▁@)/g, function (a, b, c) {
arr.push({
multiLine: !(a === ADD_SINGLE)
});
});
}
return arr;
};
function onCancelStorage() {
window.sessionStorage.removeItem(id);
setTip(false);
setLastedUpdateTime(0);
}
function onReset() {
setTip(false);
setLastedUpdateTime(0);
cm.setValue(window.sessionStorage.getItem(id));
}
function setValues(a, b) {
var content = cm.getValue();
content = content.replace(a, b);
setValue(content);
cm === null || cm === void 0 ? void 0 : cm.setValue(content);
}
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,
showNullProgramButton: showNullProgramButton,
onActionCallback: onActionCallback,
hidetoolBar: hidetoolBar,
uuid: uuidRef.current,
setOpenPhones: function setOpenPhones() {
openPhoneRef.current = true;
}
}), /*#__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, {
disabledFill: disabledFill,
showProgramFill: showNullProgramButton,
value: value
})]
}) : null]
})]
})
}), showResizeBar ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
ref: resizeBarEl,
className: "editor-resize"
}) : null, /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
children: TitleDesc[action] ? /*#__PURE__*/(0,jsx_runtime.jsx)(es_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_local_v9_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_local_v9_node_modules_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_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_local_v9_node_modules_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_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_local_v9_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_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_local_v9_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_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_local_v9_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default()(Dialog, _React$Component);
var _super = _root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default()(Dialog);
function Dialog(props) {
var _this;
_root_workspace_ppte5yg23_local_v9_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_local_v9_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]);
}
/***/ }),
/***/ 15497:
/*!*****************************************************************************!*\
!*** ./src/pages/Shixuns/Edit/body/Environment/Label/index.tsx + 1 modules ***!
\*****************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"Z": function() { return /* binding */ Environment_Label; }
});
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(67294);
;// CONCATENATED MODULE: ./src/pages/Shixuns/Edit/body/Environment/Label/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var Labelmodules = ({"label":"label___CZ1_z","left":"left___ZKFRV","right":"right___zVTRn","error":"error___oNJNo"});
// EXTERNAL MODULE: ./node_modules/antd/es/tooltip/index.js + 3 modules
var tooltip = __webpack_require__(83062);
// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(85893);
;// CONCATENATED MODULE: ./src/pages/Shixuns/Edit/body/Environment/Label/index.tsx
var Label = function Label(_ref) {
var name = _ref.name,
tooltipTitle = _ref.tooltipTitle,
children = _ref.children,
required = _ref.required,
errorKey = _ref.errorKey,
errorValue = _ref.errorValue,
errorName = _ref.errorName,
_ref$errorStyle = _ref.errorStyle,
errorStyle = _ref$errorStyle === void 0 ? {} : _ref$errorStyle,
_ref$nameWidth = _ref.nameWidth,
nameWidth = _ref$nameWidth === void 0 ? 112 : _ref$nameWidth,
_ref$align = _ref.align,
align = _ref$align === void 0 ? 'center' : _ref$align,
_ref$contentStyle = _ref.contentStyle,
contentStyle = _ref$contentStyle === void 0 ? {} : _ref$contentStyle;
return /*#__PURE__*/(0,jsx_runtime.jsx)(react.Fragment, {
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Labelmodules.label,
style: {
alignItems: align
},
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Labelmodules.left,
style: {
width: nameWidth
},
children: [required && /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: "*"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: name
}), !!tooltipTitle && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
title: tooltipTitle,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-xiaowenhao2"
})
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Labelmodules.right,
style: contentStyle,
children: [children, errorName && errorValue === errorKey && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Labelmodules.error,
style: errorStyle,
children: errorName
})]
})]
})
});
};
/* harmony default export */ var Environment_Label = (Label);
/***/ }),
/***/ 33508:
/*!*************************************************************************************!*\
!*** ./src/pages/Shixuns/Edit/body/Environment/MarkdownModal/index.tsx + 1 modules ***!
\*************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"Z": function() { return /* binding */ Environment_MarkdownModal; }
});
// 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/pages/Shixuns/Edit/body/Environment/MarkdownModal/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var MarkdownModalmodules = ({"mirrorModal":"mirrorModal___Pi3tF","right":"right___Hot5f","title":"title___jjMKh","content":"content___BmOkD","des":"des___oGTUM","modal":"modal___yy3VB"});
// EXTERNAL MODULE: ./node_modules/antd/es/modal/index.js + 39 modules
var modal = __webpack_require__(72423);
// 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/pages/Shixuns/Edit/body/Environment/MarkdownModal/index.tsx
var MarkdownModal = function MarkdownModal(_ref) {
var title = _ref.title,
children = _ref.children,
value = _ref.value;
var _useState = (0,react.useState)(false),
_useState2 = slicedToArray_default()(_useState, 2),
visible = _useState2[0],
setVisible = _useState2[1];
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
onClick: function onClick() {
return setVisible(true);
},
children: children
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(modal/* default */.Z, {
title: title,
open: visible,
width: 1000,
destroyOnClose: true,
centered: true,
onCancel: function onCancel() {
return setVisible(false);
},
className: MarkdownModalmodules.modal,
footer: null,
children: [typeof value === 'string' && /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
value: value || ''
}), Object.prototype.toString.call(value) === '[object Array]' && /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
children: value === null || value === void 0 ? void 0 : value.map(function (e, i) {
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("b", {
children: e.name || e.type_name
}), /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
value: e.description || ''
})]
}, i);
})
})]
})]
});
};
/* harmony default export */ var Environment_MarkdownModal = (MarkdownModal);
/***/ }),
/***/ 57944:
/*!***************************************************************************!*\
!*** ./src/pages/Shixuns/New/components/ApplyModal/index.tsx + 1 modules ***!
\***************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"Z": function() { return /* binding */ components_ApplyModal; }
});
// 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/slicedToArray.js
var slicedToArray = __webpack_require__(27424);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js
var objectWithoutProperties = __webpack_require__(70215);
var objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(67294);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts
var _umi_production_exports = __webpack_require__(88275);
// EXTERNAL MODULE: ./node_modules/antd/es/input/index.js + 5 modules
var input = __webpack_require__(79531);
// EXTERNAL MODULE: ./node_modules/antd/es/form/index.js + 17 modules
var es_form = __webpack_require__(25159);
// EXTERNAL MODULE: ./node_modules/antd/es/modal/index.js + 39 modules
var modal = __webpack_require__(72423);
// EXTERNAL MODULE: ./node_modules/antd/es/message/index.js + 4 modules
var message = __webpack_require__(2453);
// EXTERNAL MODULE: ./node_modules/antd/es/upload/index.js + 24 modules
var upload = __webpack_require__(31365);
// EXTERNAL MODULE: ./node_modules/antd/es/button/index.js
var es_button = __webpack_require__(71577);
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
var env = __webpack_require__(59758);
// EXTERNAL MODULE: ./src/assets/images/qrCode.png
var qrCode = __webpack_require__(55351);
;// CONCATENATED MODULE: ./src/pages/Shixuns/New/components/ApplyModal/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var ApplyModalmodules = ({"flexRow":"flexRow___JBN3B","flexColumn":"flexColumn___zXgFj","formWrap":"formWrap___aNgan","upload":"upload___yGdLQ","color0152d9":"color0152d9___zzEpS","colorCCC":"colorCCC___k4Dxq","footerWrap":"footerWrap___WrUZd","qrCode":"qrCode___GPwSg","a1":"a1___R6etl","code":"code___fCL_L","group":"group___n7tgy","groupNumber":"groupNumber___tw7hA","a2":"a2___GGjDE"});
// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(85893);
;// CONCATENATED MODULE: ./src/pages/Shixuns/New/components/ApplyModal/index.tsx
var _excluded = ["newShixuns", "globalSetting", "loading", "dispatch"];
var TextArea = input/* default.TextArea */.Z.TextArea;
var ApplyModal = function ApplyModal(_ref) {
var newShixuns = _ref.newShixuns,
globalSetting = _ref.globalSetting,
loading = _ref.loading,
dispatch = _ref.dispatch,
props = objectWithoutProperties_default()(_ref, _excluded);
var _Form$useForm = es_form/* default.useForm */.Z.useForm(),
_Form$useForm2 = slicedToArray_default()(_Form$useForm, 1),
form = _Form$useForm2[0];
var _useState = (0,react.useState)([]),
_useState2 = slicedToArray_default()(_useState, 2),
fileList = _useState2[0],
setFileList = _useState2[1];
var handleFileChange = function handleFileChange(info) {
var statusList = ["uploading", "done", "removed"];
if (statusList.includes(info.file.status)) {
setFileList(info.fileList);
}
};
var handleFileRemove = function handleFileRemove(file) {
if (!file.percent || file.percent == 100) {
var _file$response;
var id = (_file$response = file.response) === null || _file$response === void 0 ? void 0 : _file$response.id;
modal/* default.confirm */.Z.confirm({
centered: true,
title: '确定要删除这个附件吗?',
okText: '确定',
cancelText: '取消',
onOk: function () {
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var res;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return dispatch({
type: 'newShixuns/deleteAttachment',
payload: {
id: id
}
});
case 2:
res = _context.sent;
res && setFileList(fileList.filter(function (item) {
var _item$response;
return ((_item$response = item.response) === null || _item$response === void 0 ? void 0 : _item$response.id) !== id;
}));
case 4:
case "end":
return _context.stop();
}
}, _callee);
}));
function onOk() {
return _onOk.apply(this, arguments);
}
return onOk;
}()
});
return false;
}
};
var handleFileBeforeUpload = function handleFileBeforeUpload(file) {
if (fileList.length) {
return false;
}
var is150M = file.size / 1024 / 1024 > 50;
if (is150M) {
message/* default.info */.ZP.info('文件大小必须小于50MB');
return false;
}
return true;
};
var handleFinish = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(values) {
var _fileList$, _fileList$$response;
var _ref3, language, runtime, run_method, code, res;
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_ref3 = values || {}, language = _ref3.language, runtime = _ref3.env, run_method = _ref3.mode, code = _ref3.code;
_context2.next = 3;
return dispatch({
type: 'newShixuns/applyShixunMirror',
payload: {
language: language,
runtime: runtime,
run_method: run_method,
attachment_id: fileList === null || fileList === void 0 ? void 0 : (_fileList$ = fileList[0]) === null || _fileList$ === void 0 ? void 0 : (_fileList$$response = _fileList$.response) === null || _fileList$$response === void 0 ? void 0 : _fileList$$response.id
}
});
case 3:
res = _context2.sent;
dispatch({
type: 'newShixuns/setActionTabs',
payload: {}
});
if (res) {
message/* default.success */.ZP.success("新建申请已提交,请等待管理员审核。");
}
case 6:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return function handleFinish(_x) {
return _ref2.apply(this, arguments);
};
}();
var handleAfterClose = function handleAfterClose() {
form.resetFields();
setFileList([]);
};
return /*#__PURE__*/(0,jsx_runtime.jsxs)(modal/* default */.Z, {
centered: true,
keyboard: false,
closable: false,
destroyOnClose: true,
open: newShixuns.actionTabs.key === 'NewShixuns-Apply',
title: "\u7533\u8BF7\u65B0\u5EFA",
width: "1000px",
footer: null,
afterClose: handleAfterClose,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
className: ApplyModalmodules.qrCode,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("aside", {
className: ApplyModalmodules.a1,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: ApplyModalmodules.code,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
width: 120,
height: 120,
src: qrCode,
alt: "\u4E8C\u7EF4\u7801"
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: ApplyModalmodules.group,
children: "\u5B9E\u9A8C\u73AF\u5883\u7533\u8BF7QQ\u7FA4"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: ApplyModalmodules.groupNumber,
children: "\u7FA4\u53F7\uFF1A740157011"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("aside", {
className: ApplyModalmodules.a2,
children: ["\u5C0A\u656C\u7684\u8001\u5E08/\u540C\u5B66\u60A8\u597D\uFF0C", /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), "\u5982\u679C\u60A8\u60F3\u65B0\u5EFA\u5B9E\u9A8C\u73AF\u5883\uFF0C\u53EF\u4EE5\u626B\u63CF\u5DE6\u4FA7\u4E8C\u7EF4\u7801\u8FDB\u7FA4\uFF0C\u76F4\u63A5\u5411\u6211\u4EEC\u7684\u5DE5\u4F5C\u4EBA\u5458\u7533\u8BF7\u54E6~ \u4E5F\u53EF\u4EE5\u63D0\u4EA4\u4E0B\u9762\u7684\u8868\u5355\u7533\u8BF7\uFF0C\u6211\u4EEC\u7684\u5DE5\u4F5C\u4EBA\u5458\u6536\u5230\u7533\u8BF7\u4FE1\u606F\u5C06\u4F1A\u7B2C\u4E00\u65F6\u95F4\u8054\u7CFB\u60A8\uFF01"]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, {
className: ApplyModalmodules.formWrap,
form: form,
labelCol: {
span: 4
},
wrapperCol: {
span: 20
},
onFinish: handleFinish,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, {
label: "\u8BED\u8A00\uFF1A",
name: "language",
rules: [{
required: true,
message: '请填写该镜像语言'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {
placeholder: "\u8BF7\u586B\u5199\u8BE5\u955C\u50CF\u662F\u57FA\u4E8E\u4EC0\u4E48\u8BED\u8A00\uFF1A\u793A\u4F8B\uFF1APython",
rows: 4
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, {
label: "\u7CFB\u7EDF\u73AF\u5883\uFF1A",
name: "env",
rules: [{
required: true,
message: '请填写该镜像语言系统环境'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {
placeholder: "\u8BF7\u586B\u5199\u8BE5\u955C\u50CF\u662F\u57FA\u4E8E\u4EC0\u4E48linux\u7CFB\u7EDF\u73AF\u5883,\u4EE3\u7801\u8FD0\u884C\u73AF\u5883",
rows: 4
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, {
label: "\u6D4B\u8BD5\u4EE3\u7801\u8FD0\u884C\u65B9\u5F0F\uFF1A",
name: "mode",
rules: [{
required: true,
message: '请填写该镜像测试代码运行方式'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {
placeholder: "\u8BF7\u586B\u5199\u8BE5\u955C\u50CF\u4E2D\u6D4B\u8BD5\u4EE3\u7801\u8FD0\u884C\u65B9\u5F0F",
rows: 4
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default.Item */.Z.Item, {
label: "\u6D4B\u8BD5\u4EE3\u7801\uFF1A",
name: "code",
rules: [{
required: true,
message: '请上传附件'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: ApplyModalmodules.upload,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(upload/* default */.Z, {
fileList: fileList,
action: "".concat(env/* default.API_SERVER */.Z.API_SERVER, "/api/attachments.json?client_key=6d57f8c3dd186c5ada392546ace9620a"),
onChange: handleFileChange,
onRemove: handleFileRemove,
beforeUpload: handleFileBeforeUpload,
withCredentials: true,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "".concat(ApplyModalmodules.color0152d9, " current"),
children: "\u4E0A\u4F20\u9644\u4EF6"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "".concat(ApplyModalmodules.colorCCC, " ml10"),
children: "(\u5355\u4E2A\u6587\u4EF650M\u4EE5\u5185)"
})]
})
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: ApplyModalmodules.footerWrap,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default.Item */.Z.Item, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
className: "mr5",
size: 'middle',
onClick: function onClick() {
dispatch({
type: 'newShixuns/setActionTabs',
payload: {}
});
},
children: "\u53D6\u6D88"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
size: 'middle',
type: "primary",
htmlType: "submit",
loading: loading['newShixuns/applyShixunMirror'],
children: "\u4FDD\u5B58"
})]
})
})]
})]
});
};
/* harmony default export */ var components_ApplyModal = ((0,_umi_production_exports.connect)(function (_ref4) {
var newShixuns = _ref4.newShixuns,
loading = _ref4.loading,
globalSetting = _ref4.globalSetting;
return {
newShixuns: newShixuns,
globalSetting: globalSetting,
loading: loading.effects
};
})(ApplyModal));
/***/ }),
/***/ 88654:
/*!**********************************************************************!*\
!*** ./src/pages/Shixuns/New/components/CreateEnvironment/index.tsx ***!
\**********************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray.js */ 27424);
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 67294);
/* harmony import */ var umi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! umi */ 88275);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd */ 72423);
/* harmony import */ var _assets_images_qrCode_png__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/assets/images/qrCode.png */ 55351);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ 85893);
var CreateEnvironment = function CreateEnvironment(_ref) {
var _newShixuns$actionTab;
var newShixuns = _ref.newShixuns,
dispatch = _ref.dispatch,
user = _ref.user;
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),
_useState2 = _root_workspace_ppte5yg23_local_v9_node_modules_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2),
isCreateModel = _useState2[0],
setIsCreateModel = _useState2[1];
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
if (newShixuns.actionTabs.key === 'Create-Environment') {
createImg();
}
}, [newShixuns === null || newShixuns === void 0 ? void 0 : (_newShixuns$actionTab = newShixuns.actionTabs) === null || _newShixuns$actionTab === void 0 ? void 0 : _newShixuns$actionTab.key]);
var cancelImg = function cancelImg() {
dispatch({
type: 'newShixuns/setActionTabs',
payload: {}
});
};
var createImg = function createImg() {
var _user$userInfo, _user$userInfo2, _user$userInfo4;
//判断 #0不能1能2每日上限
cancelImg(); //取消Key值
if (((_user$userInfo = user.userInfo) === null || _user$userInfo === void 0 ? void 0 : _user$userInfo.mirror_marker_status) === 0) {
setIsCreateModel(true);
} else if (((_user$userInfo2 = user.userInfo) === null || _user$userInfo2 === void 0 ? void 0 : _user$userInfo2.mirror_marker_status) === 1) {
var _user$userInfo3;
umi__WEBPACK_IMPORTED_MODULE_2__.history.push("/users/".concat((_user$userInfo3 = user.userInfo) === null || _user$userInfo3 === void 0 ? void 0 : _user$userInfo3.login, "/experiment-img/add"));
} else if (((_user$userInfo4 = user.userInfo) === null || _user$userInfo4 === void 0 ? void 0 : _user$userInfo4.mirror_marker_status) === 2) {
antd__WEBPACK_IMPORTED_MODULE_5__/* ["default"].confirm */ .Z.confirm({
title: '您今日已达到申请上限,是否跳转至云主机列表?',
content: '提示:每天最多允许申请一台云主机',
okText: '跳转',
cancelText: "取消",
onOk: function onOk() {
var _user$userInfo5;
umi__WEBPACK_IMPORTED_MODULE_2__.history.push("/users/".concat((_user$userInfo5 = user.userInfo) === null || _user$userInfo5 === void 0 ? void 0 : _user$userInfo5.login, "/experiment-img"));
}
});
}
};
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
title: "\u52A0\u5165qq\u7FA4\u63D0\u793A",
open: isCreateModel,
footer: null,
onCancel: function onCancel() {
setIsCreateModel(false);
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
style: {
textAlign: 'center'
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("br", {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("img", {
width: 120,
height: 120,
style: {
marginTop: '20px'
},
src: _assets_images_qrCode_png__WEBPACK_IMPORTED_MODULE_3__,
alt: "\u4E8C\u7EF4\u7801"
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("img", {})]
});
};
/* harmony default export */ __webpack_exports__["Z"] = ((0,umi__WEBPACK_IMPORTED_MODULE_2__.connect)(function (_ref2) {
var newShixuns = _ref2.newShixuns,
user = _ref2.user,
globalSetting = _ref2.globalSetting;
return {
newShixuns: newShixuns,
globalSetting: globalSetting,
user: user
};
})(CreateEnvironment));
/***/ }),
/***/ 21309:
/*!***********************************************************************!*\
!*** ./src/pages/User/Detail/ExperImentImg/Add/index.tsx + 6 modules ***!
\***********************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"default": function() { return /* binding */ Add; }
});
// 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/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/slicedToArray.js
var slicedToArray = __webpack_require__(27424);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js
var objectWithoutProperties = __webpack_require__(70215);
var objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(67294);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts
var _umi_production_exports = __webpack_require__(88275);
// EXTERNAL MODULE: ./node_modules/antd/es/message/index.js + 4 modules
var message = __webpack_require__(2453);
// EXTERNAL MODULE: ./node_modules/antd/es/modal/index.js + 39 modules
var modal = __webpack_require__(72423);
// EXTERNAL MODULE: ./node_modules/antd/es/tooltip/index.js + 3 modules
var tooltip = __webpack_require__(83062);
// EXTERNAL MODULE: ./node_modules/antd/es/button/index.js
var es_button = __webpack_require__(71577);
// EXTERNAL MODULE: ./node_modules/antd/es/row/index.js
var row = __webpack_require__(71230);
// EXTERNAL MODULE: ./node_modules/antd/es/input/index.js + 5 modules
var input = __webpack_require__(79531);
// EXTERNAL MODULE: ./src/pages/tasks/vnc-view/index.less
var vnc_view = __webpack_require__(45954);
// EXTERNAL MODULE: ./src/components/markdown-editor/index.tsx + 10 modules
var markdown_editor = __webpack_require__(55373);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var fetch = __webpack_require__(84519);
;// CONCATENATED MODULE: ./src/pages/User/Detail/ExperImentImg/Add/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var Addmodules = ({"wrap":"wrap___ONdsC","content":"content___N0LEk","crumbs":"crumbs___ZMtFD","title":"title___zwDOY","upload":"upload___MSuSG","btn":"btn___VpNOC","activeBtn":"activeBtn___WARNi","head":"head___G0LuH","add":"add___ThO12","addDisable":"addDisable___ykVne","setting":"setting___ACQW6","tabs":"tabs___kF5MC","name":"name___APZDD","active":"active___hzqus","line":"line___DAGKO","resource":"resource___Gveup","mirror":"mirror___IBeiQ","interface":"interface___pzUyA","disabled":"disabled___d4p_T","port":"port___vS58L","grade":"grade___4_rtU","tabsBox":"tabsBox___DfBD9","tabTitle":"tabTitle___yxNTA","more":"more___hoice","system":"system___utj75","explain":"explain___ecqpL","btns":"btns___MTI71","template":"template___xdQbN","liWrap":"liWrap___z55nC","li":"li___GcxuL","tag":"tag___xVpLK","cpuWrap":"cpuWrap___Wi43O","activebtn":"activebtn___UamsA","activeTab":"activeTab___fzQvD","tab":"tab___UNT6N","disabledBtn":"disabledBtn___maLgB","doc":"doc___gT07l"});
// EXTERNAL MODULE: ./src/pages/Shixuns/Edit/body/Environment/Label/index.tsx + 1 modules
var Label = __webpack_require__(15497);
// EXTERNAL MODULE: ./src/components/ui-customization/index.tsx + 32 modules
var ui_customization = __webpack_require__(35567);
// EXTERNAL MODULE: ./node_modules/antd/es/empty/index.js + 3 modules
var empty = __webpack_require__(32983);
// EXTERNAL MODULE: ./src/service/shixuns.ts
var shixuns = __webpack_require__(56088);
// EXTERNAL MODULE: ./src/assets/images/noEnvData.png
var noEnvData = __webpack_require__(36723);
// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx + 1 modules
var RenderHtml = __webpack_require__(12768);
// EXTERNAL MODULE: ./src/components/SelectEnvironment/index.tsx + 1 modules
var SelectEnvironment = __webpack_require__(55335);
;// CONCATENATED MODULE: ./src/pages/User/Detail/ExperImentImg/components/MirrorModal/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var MirrorModalmodules = ({"mirrorModal":"mirrorModal___Or3Fz","right":"right___dmM3o","title":"title___qvx5b","content":"content___bgacR","des":"des___tTuzA","btns":"btns___AAZk3","confirm":"confirm___NIDd7","cancel":"cancel___oCK9D","modal":"modal___zo5el"});
// EXTERNAL MODULE: ./src/pages/Shixuns/New/components/ApplyModal/index.tsx + 1 modules
var ApplyModal = __webpack_require__(57944);
// EXTERNAL MODULE: ./src/pages/Shixuns/New/components/CreateEnvironment/index.tsx
var CreateEnvironment = __webpack_require__(88654);
// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(85893);
;// CONCATENATED MODULE: ./src/pages/User/Detail/ExperImentImg/components/MirrorModal/index.tsx
var MirrorModal = function MirrorModal(_ref) {
var _newShixuns$actionTab, _ref3;
var newShixuns = _ref.newShixuns,
user = _ref.user,
dispatch = _ref.dispatch,
tab_type = _ref.tab_type,
visible = _ref.visible,
onOk = _ref.onOk,
onCancel = _ref.onCancel,
_ref$useId = _ref.useId,
useId = _ref$useId === void 0 ? null : _ref$useId,
identifier = _ref.identifier,
shixun_environment_id = _ref.shixun_environment_id;
var _useState = (0,react.useState)(null),
_useState2 = slicedToArray_default()(_useState, 2),
activeId = _useState2[0],
setActiveId = _useState2[1];
var _useState3 = (0,react.useState)({}),
_useState4 = slicedToArray_default()(_useState3, 2),
detail = _useState4[0],
setDetail = _useState4[1];
var _useState5 = (0,react.useState)(""),
_useState6 = slicedToArray_default()(_useState5, 2),
keyword = _useState6[0],
setKeyword = _useState6[1];
var environmentData = newShixuns.environmentData;
var _environmentData$freq = environmentData.frequence_image,
frequence_image = _environmentData$freq === void 0 ? [] : _environmentData$freq,
_environmentData$envi = environmentData.environments,
environments = _environmentData$envi === void 0 ? [] : _environmentData$envi,
_environmentData$othe = environmentData.other_image,
other_image = _environmentData$othe === void 0 ? [] : _environmentData$othe;
var name = detail.name,
description = detail.description;
(0,react.useEffect)(function () {
if (visible) {
dispatch({
type: 'newShixuns/getEnvironmentData',
payload: {
is_create_mirror: 1,
tab_type: tab_type
}
});
setKeyword("");
setActiveId(useId);
}
}, [visible, useId]);
(0,react.useEffect)(function () {
if (newShixuns.actionTabs.key === 'NewShixuns-Apply') {
onCancel();
}
}, [newShixuns === null || newShixuns === void 0 ? void 0 : (_newShixuns$actionTab = newShixuns.actionTabs) === null || _newShixuns$actionTab === void 0 ? void 0 : _newShixuns$actionTab.key]);
(0,react.useEffect)(function () {
if (activeId === null) return;
getData();
}, [activeId]);
var getData = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var res;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return (0,shixuns/* getEnvironmentDetail */.Q1)({
mirror_repository_id: activeId,
identifier: identifier,
shixun_environment_id: shixun_environment_id
});
case 2:
res = _context.sent;
setDetail(res.data);
case 4:
case "end":
return _context.stop();
}
}, _callee);
}));
return function getData() {
return _ref2.apply(this, arguments);
};
}();
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
title: "\u9009\u62E9\u5B9E\u9A8C\u955C\u50CF",
open: visible,
width: 1000,
destroyOnClose: true,
centered: true,
onCancel: onCancel,
className: MirrorModalmodules.modal,
footer: null,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: MirrorModalmodules.mirrorModal,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(SelectEnvironment/* default */.Z, {
dispatch: dispatch,
value: activeId,
data: environments,
otherData: other_image,
tags: frequence_image,
onChange: function onChange(id) {
return setActiveId(id);
},
onSearchWord: function onSearchWord(value) {
return setKeyword(value);
},
hiddenCreateOnline: true,
tab_type: tab_type,
is_create_mirror: 1
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: MirrorModalmodules.right,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("header", {
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: MirrorModalmodules.title,
children: ["\u5B9E\u9A8C\u73AF\u5883:\xA0", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
dangerouslySetInnerHTML: {
__html: activeId === null ? '— —' : (_ref3 = name || "") === null || _ref3 === void 0 ? void 0 : _ref3.replace(new RegExp(keyword === null || keyword === void 0 ? void 0 : keyword.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "gi"), '<span style="color:#0152d9;background-color:#1890ff33">$&</span>')
}
})]
})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: MirrorModalmodules.content,
children: [activeId === null && /*#__PURE__*/(0,jsx_runtime.jsx)(empty/* default */.Z, {
image: noEnvData,
description: "\u8BF7\u9009\u62E9\u5B9E\u9A8C\u73AF\u5883"
}), activeId !== null && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: MirrorModalmodules.des,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
value: description,
highlightKeywords: keyword
})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: MirrorModalmodules.btns,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
onClick: function onClick() {
setActiveId(null);
setDetail({});
onCancel();
},
className: MirrorModalmodules.cancel,
children: "\u53D6\u6D88 "
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
onClick: function onClick() {
onOk(detail);
},
className: MirrorModalmodules.confirm,
type: "primary",
children: "\u4FDD\u5B58 "
})]
})]
})]
})]
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(ApplyModal/* default */.Z, {}), /*#__PURE__*/(0,jsx_runtime.jsx)(CreateEnvironment/* default */.Z, {})]
});
};
/* harmony default export */ var components_MirrorModal = ((0,_umi_production_exports.connect)(function (_ref4) {
var newShixuns = _ref4.newShixuns,
globalSetting = _ref4.globalSetting,
user = _ref4.user;
return {
newShixuns: newShixuns,
globalSetting: globalSetting,
user: user
};
})(MirrorModal));
// EXTERNAL MODULE: ./src/pages/Shixuns/Edit/body/Environment/MarkdownModal/index.tsx + 1 modules
var MarkdownModal = __webpack_require__(33508);
;// CONCATENATED MODULE: ./src/assets/images/user/nodata.png
var nodata_namespaceObject = "data:image/png;base64,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";
// 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/antd/es/upload/index.js + 24 modules
var upload = __webpack_require__(31365);
;// CONCATENATED MODULE: ./src/components/NewSliceUpload/request.ts
var getMd5List = /*#__PURE__*/function () {
var _ref = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(urlPrefix, params) {
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
return _context.abrupt("return", (0,fetch/* default */.ZP)("".concat(urlPrefix, "/file/v3/getMd5List"), {
method: 'get',
params: params
}, false, true));
case 1:
case "end":
return _context.stop();
}
}, _callee);
}));
return function getMd5List(_x, _x2) {
return _ref.apply(this, arguments);
};
}();
var checkFileExists = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(urlPrefix, params) {
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
return _context2.abrupt("return", (0,fetch/* default */.ZP)("".concat(urlPrefix, "/file/v3/fileExists"), {
method: 'get',
params: params
}, false, true));
case 1:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return function checkFileExists(_x3, _x4) {
return _ref2.apply(this, arguments);
};
}();
var prepareUpload = /*#__PURE__*/function () {
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3(urlPrefix, params) {
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
return _context3.abrupt("return", (0,fetch/* default */.ZP)("".concat(urlPrefix, "/file/v3/newFile"), {
method: 'post',
body: params
}, false, true));
case 1:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return function prepareUpload(_x5, _x6) {
return _ref3.apply(this, arguments);
};
}();
var filePatchUpload = /*#__PURE__*/function () {
var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4(urlPrefix, params) {
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
return _context4.abrupt("return", (0,fetch/* default */.ZP)("".concat(urlPrefix, "/file/v3/filePatchUpload"), {
method: 'post',
body: params
}, true, true));
case 1:
case "end":
return _context4.stop();
}
}, _callee4);
}));
return function filePatchUpload(_x7, _x8) {
return _ref4.apply(this, arguments);
};
}();
var filePatchMerge = /*#__PURE__*/function () {
var _ref5 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5(urlPrefix, params) {
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
while (1) switch (_context5.prev = _context5.next) {
case 0:
return _context5.abrupt("return", (0,fetch/* default */.ZP)("".concat(urlPrefix, "/file/v3/filePatchMerge"), {
method: 'post',
body: params
}, true, true));
case 1:
case "end":
return _context5.stop();
}
}, _callee5);
}));
return function filePatchMerge(_x9, _x10) {
return _ref5.apply(this, arguments);
};
}();
var downloadCheck = /*#__PURE__*/function () {
var _ref6 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6(urlPrefix, params) {
return regeneratorRuntime_default()().wrap(function _callee6$(_context6) {
while (1) switch (_context6.prev = _context6.next) {
case 0:
return _context6.abrupt("return", (0,fetch/* default */.ZP)("".concat(urlPrefix, "/file/v3/downloadCheck"), {
method: 'get',
params: params
}, false, true));
case 1:
case "end":
return _context6.stop();
}
}, _callee6);
}));
return function downloadCheck(_x11, _x12) {
return _ref6.apply(this, arguments);
};
}();
;// CONCATENATED MODULE: ./src/components/NewSliceUpload/index.tsx
var Dragger = upload/* default.Dragger */.Z.Dragger;
var shardSize = 15 * 1024 * 1024;
//测试环境
// let api='https://testfu.educoder.net';
//线上地址
// let api='https://fu.educoder.net';
var UploadFile = function UploadFile(_ref) {
var user = _ref.user,
setloading = _ref.setloading,
uploading = _ref.uploading,
successCallback = _ref.successCallback,
url = _ref.url;
var _useState = (0,react.useState)([]),
_useState2 = slicedToArray_default()(_useState, 2),
fileList = _useState2[0],
setFileList = _useState2[1];
var _useState3 = (0,react.useState)(false),
_useState4 = slicedToArray_default()(_useState3, 2),
startFlag = _useState4[0],
setStartFlag = _useState4[1];
var uploadIndex = (0,react.useRef)(0);
(0,react.useEffect)(function () {
if ((fileList === null || fileList === void 0 ? void 0 : fileList.length) > 0 && startFlag) {
startUpload(fileList === null || fileList === void 0 ? void 0 : fileList[0]);
}
}, [fileList, startFlag]);
(0,react.useEffect)(function () {
return function () {
uploadIndex.current++; //取消上传
};
}, []);
var clearStatus = function clearStatus() {
setFileList([]);
uploadIndex.current++;
currentIndex.current = 0;
finishedCount.current = 0;
currentRate.current = 0;
sharedCount.current = 0;
};
var updatePercent = function updatePercent(id) {
var intervalId = setInterval(function () {
downloadCheck(url, {
id: id
}).then(function (res) {
var _res$data, _res$data$;
if (res.status === '000000' && ((_res$data = res.data) === null || _res$data === void 0 ? void 0 : (_res$data$ = _res$data[0]) === null || _res$data$ === void 0 ? void 0 : _res$data$.isDownload) === 1) {
var _res$data2;
fileList[0]['percent'] = 100;
fileList[0]['status'] = 'success';
setFileList(toConsumableArray_default()(fileList));
// setloading(100)
message/* default.info */.ZP.info('上传成功');
successCallback(res === null || res === void 0 ? void 0 : (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2[0]);
clearInterval(intervalId);
}
if (res.status !== '000000') {
clearStatus();
}
});
}, 2000);
};
var startUpload = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(file) {
var _user$userInfo;
var patchNum, uploadCurrentIndex, md5Res, _md5Res$data, _md5Res$data$, _md5Res$data2, _md5Res$data2$, _user$userInfo2, fileExistRes, _fileExistRes$data, _fileExistRes$data$, _md5Res$data3, _md5Res$data3$, _md5Res$data4, _md5Res$data4$, _md5Res$data4$$md5Lis, _fileExistRes$data2, _fileExistRes$data3, _fileExistRes$data3$, _fileExistRes$data5, _fileExistRes$data6, _fileExistRes$data6$, _user$userInfo3, _md5Res$data6, _md5Res$data6$, _newFileRes$data, parentId, _fileExistRes$data4, _fileExistRes$data4$, _fileExistRes$data7, _fileExistRes$data7$, _md5Res$data5, _md5Res$data5$, newFileRes, _newFileRes$data2, _newFileRes$data2$, _md5Res$data7, _md5Res$data7$;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
patchNum = Math.ceil(file.size / shardSize);
uploadCurrentIndex = uploadIndex.current + 1;
uploadIndex.current = uploadCurrentIndex;
setStartFlag(false);
fileList[0]['status'] = 'uploading';
//获取md5列表
_context.next = 7;
return getMd5List(url, {
filename: file.name,
userId: (_user$userInfo = user.userInfo) === null || _user$userInfo === void 0 ? void 0 : _user$userInfo.login,
size: file.size,
patchNum: patchNum,
lastModified: "".concat(file.lastModified)
});
case 7:
md5Res = _context.sent;
if (!(md5Res.status === '000000')) {
_context.next = 41;
break;
}
_context.next = 11;
return checkFileExists(url, {
md5: ((_md5Res$data = md5Res.data) === null || _md5Res$data === void 0 ? void 0 : (_md5Res$data$ = _md5Res$data[0]) === null || _md5Res$data$ === void 0 ? void 0 : _md5Res$data$.fmd5) || ((_md5Res$data2 = md5Res.data) === null || _md5Res$data2 === void 0 ? void 0 : (_md5Res$data2$ = _md5Res$data2[0]) === null || _md5Res$data2$ === void 0 ? void 0 : _md5Res$data2$.md5),
size: file.size,
dirName: (_user$userInfo2 = user.userInfo) === null || _user$userInfo2 === void 0 ? void 0 : _user$userInfo2.login,
lastModified: "".concat(file.lastModified)
});
case 11:
fileExistRes = _context.sent;
if (!(fileExistRes.status === '000000')) {
_context.next = 38;
break;
}
if (!(uploadIndex.current !== uploadCurrentIndex)) {
_context.next = 15;
break;
}
return _context.abrupt("return");
case 15:
parentId = (_fileExistRes$data = fileExistRes.data) === null || _fileExistRes$data === void 0 ? void 0 : (_fileExistRes$data$ = _fileExistRes$data[0]) === null || _fileExistRes$data$ === void 0 ? void 0 : _fileExistRes$data$.id;
if (!(Array.isArray((_md5Res$data3 = md5Res.data) === null || _md5Res$data3 === void 0 ? void 0 : (_md5Res$data3$ = _md5Res$data3[0]) === null || _md5Res$data3$ === void 0 ? void 0 : _md5Res$data3$.md5List) && !((_md5Res$data4 = md5Res.data) !== null && _md5Res$data4 !== void 0 && (_md5Res$data4$ = _md5Res$data4[0]) !== null && _md5Res$data4$ !== void 0 && (_md5Res$data4$$md5Lis = _md5Res$data4$.md5List) !== null && _md5Res$data4$$md5Lis !== void 0 && _md5Res$data4$$md5Lis.length))) {
_context.next = 19;
break;
}
mergePatch(parentId, file, patchNum);
return _context.abrupt("return");
case 19:
if (!(((_fileExistRes$data2 = fileExistRes.data) === null || _fileExistRes$data2 === void 0 ? void 0 : _fileExistRes$data2.length) > 0 && ((_fileExistRes$data3 = fileExistRes.data) === null || _fileExistRes$data3 === void 0 ? void 0 : (_fileExistRes$data3$ = _fileExistRes$data3[0]) === null || _fileExistRes$data3$ === void 0 ? void 0 : _fileExistRes$data3$.type) === 1)) {
_context.next = 26;
break;
}
fileList[0]['percent'] = 100;
fileList[0]['status'] = 'success';
setFileList(toConsumableArray_default()(fileList));
message/* default.info */.ZP.info('秒传成功');
successCallback(fileExistRes === null || fileExistRes === void 0 ? void 0 : (_fileExistRes$data4 = fileExistRes.data) === null || _fileExistRes$data4 === void 0 ? void 0 : (_fileExistRes$data4$ = _fileExistRes$data4[0]) === null || _fileExistRes$data4$ === void 0 ? void 0 : _fileExistRes$data4$.item);
return _context.abrupt("return");
case 26:
if (!(((_fileExistRes$data5 = fileExistRes.data) === null || _fileExistRes$data5 === void 0 ? void 0 : _fileExistRes$data5.length) > 0 && ((_fileExistRes$data6 = fileExistRes.data) === null || _fileExistRes$data6 === void 0 ? void 0 : (_fileExistRes$data6$ = _fileExistRes$data6[0]) === null || _fileExistRes$data6$ === void 0 ? void 0 : _fileExistRes$data6$.type) === 0)) {
_context.next = 32;
break;
}
fileList[0]['percent'] = parseInt("".concat(((_fileExistRes$data7 = fileExistRes.data) === null || _fileExistRes$data7 === void 0 ? void 0 : (_fileExistRes$data7$ = _fileExistRes$data7[0]) === null || _fileExistRes$data7$ === void 0 ? void 0 : _fileExistRes$data7$.rate) * 100));
fileList[0]['status'] = 'uploading';
setFileList(toConsumableArray_default()(fileList));
startUploadQueue(parentId, file, (_md5Res$data5 = md5Res.data) === null || _md5Res$data5 === void 0 ? void 0 : (_md5Res$data5$ = _md5Res$data5[0]) === null || _md5Res$data5$ === void 0 ? void 0 : _md5Res$data5$.md5List, uploadCurrentIndex, patchNum);
return _context.abrupt("return");
case 32:
_context.next = 34;
return prepareUpload(url, {
dirName: (_user$userInfo3 = user.userInfo) === null || _user$userInfo3 === void 0 ? void 0 : _user$userInfo3.login,
md5: (_md5Res$data6 = md5Res.data) === null || _md5Res$data6 === void 0 ? void 0 : (_md5Res$data6$ = _md5Res$data6[0]) === null || _md5Res$data6$ === void 0 ? void 0 : _md5Res$data6$.fmd5,
name: file.name,
size: file.size
});
case 34:
newFileRes = _context.sent;
if (((_newFileRes$data = newFileRes.data) === null || _newFileRes$data === void 0 ? void 0 : _newFileRes$data.length) > 0) {
startUploadQueue((_newFileRes$data2 = newFileRes.data) === null || _newFileRes$data2 === void 0 ? void 0 : (_newFileRes$data2$ = _newFileRes$data2[0]) === null || _newFileRes$data2$ === void 0 ? void 0 : _newFileRes$data2$.id, file, (_md5Res$data7 = md5Res.data) === null || _md5Res$data7 === void 0 ? void 0 : (_md5Res$data7$ = _md5Res$data7[0]) === null || _md5Res$data7$ === void 0 ? void 0 : _md5Res$data7$.md5List, uploadCurrentIndex, patchNum);
}
_context.next = 39;
break;
case 38:
clearStatus();
case 39:
_context.next = 42;
break;
case 41:
clearStatus();
case 42:
case "end":
return _context.stop();
}
}, _callee);
}));
return function startUpload(_x) {
return _ref2.apply(this, arguments);
};
}();
var sharedCount = (0,react.useRef)(0);
var finishedCount = (0,react.useRef)(0);
var currentIndex = (0,react.useRef)(0);
var currentRate = (0,react.useRef)(0);
var startUploadQueue = function startUploadQueue(parentId, file, md5List, uploadCurrentIndex, patchNum) {
if (!parentId) {
return;
}
sharedCount.current = md5List.length;
var concurrentLimit = Math.min(4, md5List.length);
for (var i = 0; i < concurrentLimit; i++) {
uploadPatch("".concat(parentId), file, md5List, uploadCurrentIndex, patchNum);
}
};
function uploadPatch(parentId, file, md5List, uploadCurrentIndex, patchNum) {
var _md5List$currentIndex, _md5List$currentIndex2;
if (currentIndex.current >= sharedCount.current) {
return;
}
var md5 = (_md5List$currentIndex = md5List[currentIndex.current]) === null || _md5List$currentIndex === void 0 ? void 0 : _md5List$currentIndex.md5;
var md5Index = (_md5List$currentIndex2 = md5List[currentIndex.current]) === null || _md5List$currentIndex2 === void 0 ? void 0 : _md5List$currentIndex2.index;
var start = md5Index * shardSize;
var end = Math.min(file.size, start + shardSize);
var patch = file.slice(start, end);
var reader = new FileReader();
currentIndex.current++;
reader.readAsArrayBuffer(patch);
reader.onload = /*#__PURE__*/function () {
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(e) {
var _user$userInfo4;
var form, res, _res$data$2;
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
form = new FormData();
form.append("index", "".concat(md5Index));
form.append("parent", parentId);
form.append("size", patch.size);
form.append("patch", patch);
form.append("md5", md5);
form.append("userId", (_user$userInfo4 = user.userInfo) === null || _user$userInfo4 === void 0 ? void 0 : _user$userInfo4.login);
form.append("name", file.name + "-patch-" + md5Index);
// for (let [name, value] of form) {
// console.log(`${name} = ${value}`); // key1 = value1然后是 key2 = value2
// }
_context2.next = 10;
return filePatchUpload(url, form);
case 10:
res = _context2.sent;
if (!(uploadIndex.current !== uploadCurrentIndex)) {
_context2.next = 13;
break;
}
return _context2.abrupt("return");
case 13:
fileList[0]['percent'] = 0;
fileList[0]['status'] = 'uploading';
if (!(res.errorCode === "000000")) {
_context2.next = 26;
break;
}
finishedCount.current++;
mergePatch("".concat(parentId), file, patchNum);
currentRate.current = Math.max((_res$data$2 = res.data[0]) === null || _res$data$2 === void 0 ? void 0 : _res$data$2.rate, currentRate.current);
fileList[0]['percent'] = parseInt("".concat(currentRate.current * 100));
fileList[0]['status'] = 'uploading';
setFileList(toConsumableArray_default()(fileList));
uploadPatch("".concat(parentId), file, md5List, uploadCurrentIndex, patchNum);
return _context2.abrupt("return");
case 26:
// message.info('上传分片失败')
clearStatus();
case 27:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return function (_x2) {
return _ref3.apply(this, arguments);
};
}();
}
function mergePatch(_x3, _x4, _x5) {
return _mergePatch.apply(this, arguments);
}
function _mergePatch() {
_mergePatch = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4(parentId, file, patchNum) {
var _user$userInfo5;
var form, res, _res$data3, _res$data3$;
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
if (!(finishedCount.current < sharedCount.current)) {
_context4.next = 2;
break;
}
return _context4.abrupt("return");
case 2:
form = new FormData();
form.append("parent", parentId);
form.append("size", "".concat(file.size));
form.append("userId", (_user$userInfo5 = user.userInfo) === null || _user$userInfo5 === void 0 ? void 0 : _user$userInfo5.login);
form.append('patchNum', "".concat(patchNum));
_context4.next = 9;
return filePatchMerge(url, form);
case 9:
res = _context4.sent;
if (res.errorCode === "000000") {
// fileList[0]['percent'] = 99;
// fileList[0]['status'] = 'success';
updatePercent((_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : (_res$data3$ = _res$data3[0]) === null || _res$data3$ === void 0 ? void 0 : _res$data3$.id);
} else {
clearStatus();
}
case 11:
case "end":
return _context4.stop();
}
}, _callee4);
}));
return _mergePatch.apply(this, arguments);
}
return /*#__PURE__*/(0,jsx_runtime.jsxs)(Dragger, {
height: 200,
accept: ".gz,.bz2,.tar",
onRemove: function onRemove(file) {
clearStatus();
successCallback(null);
},
multiple: false,
fileList: fileList,
beforeUpload: /*#__PURE__*/function () {
var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3(file) {
var fileSize, name, allowedExtensions, fileExtension;
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
fileSize = 5 * 1024 * 1024 * 1024;
name = file.name.toLowerCase();
allowedExtensions = ['.gz', '.bz2', '.tar'];
fileExtension = name.substring(name.lastIndexOf('.'));
if (allowedExtensions.includes(fileExtension)) {
_context3.next = 7;
break;
}
message/* default.info */.ZP.info("\u4EC5\u652F\u6301\u4E0A\u4F20gz\u3001bz2\u3001tar\u3001tar.gz\u3001tar.bz2\u683C\u5F0F\u7684\u955C\u50CF\u6587\u4EF6");
return _context3.abrupt("return", false);
case 7:
if (!((file === null || file === void 0 ? void 0 : file.size) > fileSize)) {
_context3.next = 10;
break;
}
message/* default.info */.ZP.info("\u6587\u4EF6\u8D85\u8FC7".concat(fileSize / 1024 / 1024 / 1024, "GB\uFF0C\u4E0D\u7B26\u5408\u4E0A\u4F20\u8981\u6C42"));
return _context3.abrupt("return", false);
case 10:
clearStatus();
successCallback(null);
setStartFlag(true);
setFileList([file]);
return _context3.abrupt("return", false);
case 15:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return function (_x6) {
return _ref4.apply(this, arguments);
};
}(),
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-shangchuanwenjian1 font50",
style: {
color: '#A9C9FB '
}
})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "font14 mt30 mb20",
style: {
color: '#9096A3'
},
children: ["\u62D6\u62FD\u6587\u4EF6\u6216", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: {
color: '#3061D0',
marginLeft: 5
},
children: "\u70B9\u51FB\u6B64\u5904\u4E0A\u4F20"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
fontSize: 12,
color: "#9096A3"
},
children: ["\u4EC5\u652F\u6301\u4E0A\u4F20gz\u3001bz2\u3001tar\u3001tar.gz\u3001tar.bz2\u683C\u5F0F\u7684\u955C\u50CF\u6587\u4EF6\uFF0C\u4E0A\u4F20\u7684\u6587\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC75GB", /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), "\u5982\u679C\u6709\u4E0A\u4F20\u4E2D\u7684\u6587\u4EF6\uFF0C\u8BF7\u52FF\u5237\u65B0\u6216\u5173\u95ED\u6D4F\u89C8\u5668"]
})]
});
};
/* harmony default export */ var NewSliceUpload = ((0,_umi_production_exports.connect)(function (_ref5) {
var user = _ref5.user;
return {
user: user
};
})(UploadFile));
// EXTERNAL MODULE: ./src/utils/util.tsx
var util = __webpack_require__(29427);
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
var env = __webpack_require__(59758);
;// CONCATENATED MODULE: ./src/pages/User/Detail/ExperImentImg/Add/index.tsx
var _excluded = ["classroomList", "globalSetting", "loading", "user", "dispatch"];
var EditPage = function EditPage(_ref) {
var _location, _globalSetting$settin, _configData$cpu_memor, _configData$time_limi2;
var classroomList = _ref.classroomList,
globalSetting = _ref.globalSetting,
loading = _ref.loading,
user = _ref.user,
dispatch = _ref.dispatch,
props = objectWithoutProperties_default()(_ref, _excluded);
var _useState = (0,react.useState)(1),
_useState2 = slicedToArray_default()(_useState, 2),
methods = _useState2[0],
setMethods = _useState2[1];
var _useState3 = (0,react.useState)(1),
_useState4 = slicedToArray_default()(_useState3, 2),
tabs = _useState4[0],
setTabs = _useState4[1];
var _useState5 = (0,react.useState)(false),
_useState6 = slicedToArray_default()(_useState5, 2),
mirrorModal = _useState6[0],
setMirrorModal = _useState6[1];
var _useState7 = (0,react.useState)(true),
_useState8 = slicedToArray_default()(_useState7, 2),
isEmpty = _useState8[0],
setIsEmpty = _useState8[1];
var _useState9 = (0,react.useState)({}),
_useState10 = slicedToArray_default()(_useState9, 2),
mirrorInfo = _useState10[0],
setMirrorInfo = _useState10[1];
var _useState11 = (0,react.useState)(''),
_useState12 = slicedToArray_default()(_useState11, 2),
description = _useState12[0],
setDescription = _useState12[1];
var _useState13 = (0,react.useState)(false),
_useState14 = slicedToArray_default()(_useState13, 2),
configModal = _useState14[0],
setConfigModal = _useState14[1];
var _useState15 = (0,react.useState)({}),
_useState16 = slicedToArray_default()(_useState15, 2),
configData = _useState16[0],
setConfigData = _useState16[1];
var _useState17 = (0,react.useState)(),
_useState18 = slicedToArray_default()(_useState17, 2),
defaultDesc = _useState18[0],
setDefaultDesc = _useState18[1];
var _useState19 = (0,react.useState)(0),
_useState20 = slicedToArray_default()(_useState19, 2),
cpuId = _useState20[0],
setCpuId = _useState20[1];
var _useState21 = (0,react.useState)(0),
_useState22 = slicedToArray_default()(_useState21, 2),
timeId = _useState22[0],
setTimeId = _useState22[1];
var _useState23 = (0,react.useState)(''),
_useState24 = slicedToArray_default()(_useState23, 2),
mirrorError = _useState24[0],
setMirrorError = _useState24[1];
var _useState25 = (0,react.useState)(true),
_useState26 = slicedToArray_default()(_useState25, 2),
command = _useState26[0],
setCommand = _useState26[1]; //命令行
var _useState27 = (0,react.useState)(false),
_useState28 = slicedToArray_default()(_useState27, 2),
graphical = _useState28[0],
setGraphical = _useState28[1]; // 图像化
var _useState29 = (0,react.useState)(''),
_useState30 = slicedToArray_default()(_useState29, 2),
mirrorTypeError = _useState30[0],
setMirrorTypeError = _useState30[1];
var _useState31 = (0,react.useState)(''),
_useState32 = slicedToArray_default()(_useState31, 2),
fileError = _useState32[0],
setFileError = _useState32[1];
var _useState33 = (0,react.useState)({}),
_useState34 = slicedToArray_default()(_useState33, 2),
fileInfo = _useState34[0],
setFileInfo = _useState34[1];
var _useState35 = (0,react.useState)({}),
_useState36 = slicedToArray_default()(_useState35, 2),
publicMirrorInfo = _useState36[0],
setPublicMirrorInfo = _useState36[1]; //公共镜像数据
var _useState37 = (0,react.useState)({}),
_useState38 = slicedToArray_default()(_useState37, 2),
customizeMirrorInfo = _useState38[0],
setCustomizeMirrorInfo = _useState38[1]; //自定义镜像数据
var _useState39 = (0,react.useState)({}),
_useState40 = slicedToArray_default()(_useState39, 2),
shareMirrorInfo = _useState40[0],
setShareMirrorInfo = _useState40[1]; //共享镜像数据
var _useState41 = (0,react.useState)(),
_useState42 = slicedToArray_default()(_useState41, 2),
basicTypeName = _useState42[0],
setBasicTypeName = _useState42[1]; //基于基础镜像创建的镜像名称
var _useState43 = (0,react.useState)(),
_useState44 = slicedToArray_default()(_useState43, 2),
localTypeName = _useState44[0],
setLocalTypeName = _useState44[1]; //导入本地镜像创建的镜像名称
var _useState45 = (0,react.useState)(''),
_useState46 = slicedToArray_default()(_useState45, 2),
basicNameError = _useState46[0],
setBasicNameError = _useState46[1];
var _useState47 = (0,react.useState)(''),
_useState48 = slicedToArray_default()(_useState47, 2),
basicNameErrorText = _useState48[0],
setBasicNameErrorText = _useState48[1];
var _useState49 = (0,react.useState)(''),
_useState50 = slicedToArray_default()(_useState49, 2),
localNameError = _useState50[0],
setLocalNameError = _useState50[1];
var _useState51 = (0,react.useState)(''),
_useState52 = slicedToArray_default()(_useState51, 2),
localNameErrorText = _useState52[0],
setLocalNameErrorText = _useState52[1];
var _useState53 = (0,react.useState)(false),
_useState54 = slicedToArray_default()(_useState53, 2),
createBtnLoading = _useState54[0],
setCreateBtnLoading = _useState54[1];
var _useState55 = (0,react.useState)(false),
_useState56 = slicedToArray_default()(_useState55, 2),
btnLoading = _useState56[0],
setBtnLoading = _useState56[1];
var _useState57 = (0,react.useState)(false),
_useState58 = slicedToArray_default()(_useState57, 2),
modalBtnLoading = _useState58[0],
setModalBtnLoading = _useState58[1];
var methodsItems = [{
id: 1,
name: '基于基础镜像创建'
}, {
id: 2,
name: '导入本地镜像创建'
}];
var mirrorItems = [{
id: 1,
name: '公共镜像',
type: 'public'
}, {
id: 2,
name: '自定义镜像',
type: 'customize'
}, {
id: 3,
name: '共享镜像',
type: 'share'
}];
(0,react.useEffect)(function () {
getConfig();
dispatch({
type: 'globalSetting/footerToggle',
payload: false
});
}, []);
(0,react.useEffect)(function () {
document.title = '创建镜像';
}, [(_location = location) === null || _location === void 0 ? void 0 : _location.pathname]);
var getConfig = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var res, _res$data;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return (0,fetch/* default */.ZP)('/api/user_mirrors/other_info.json', {
method: 'get'
});
case 2:
res = _context.sent;
if (res.status === 0) {
setConfigData(res === null || res === void 0 ? void 0 : res.data);
setDefaultDesc(res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.default_mirror_desc);
}
case 4:
case "end":
return _context.stop();
}
}, _callee);
}));
return function getConfig() {
return _ref2.apply(this, arguments);
};
}();
var getNameError = /*#__PURE__*/function () {
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(typeName, isStart) {
var res;
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
if (methods === 1) setCreateBtnLoading(true);else setBtnLoading(true);
_context2.next = 3;
return (0,fetch/* default */.ZP)("/api/user_mirrors/check_mirror_name.json", {
method: 'post',
body: {
type_name: typeName
}
});
case 3:
res = _context2.sent;
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
if (methods === 1) {
setBasicNameError('');
setBasicNameErrorText('');
if (isStart) {
setConfigModal(true);
}
}
if (methods === 2) {
setLocalNameError('');
setLocalNameErrorText('');
if (isStart) {
creatMirrorByFile();
}
}
} else {
if (methods === 1) {
setBasicNameError('type_name');
setBasicNameErrorText(res === null || res === void 0 ? void 0 : res.message);
}
if (methods === 2) {
setLocalNameError('type_name');
setLocalNameErrorText(res === null || res === void 0 ? void 0 : res.message);
}
document.body.scrollIntoView();
}
setBtnLoading(false);
setCreateBtnLoading(false);
case 7:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return function getNameError(_x, _x2) {
return _ref3.apply(this, arguments);
};
}();
var creatMirrorByFile = /*#__PURE__*/function () {
var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
var res;
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
setBtnLoading(true);
_context3.next = 3;
return (0,fetch/* default */.ZP)("/api/user_mirrors.json", {
method: 'post',
body: {
create_method: 2,
type_name: localTypeName,
description: description,
is_support_vnc: graphical,
is_support_webssh: command,
file_path: fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.path,
file_id: fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.id,
file_old_name: fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.oldName,
file_new_name: fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.name,
filesize: fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.size
}
});
case 3:
res = _context3.sent;
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
message/* default.success */.ZP.success("创建成功");
_umi_production_exports.history.back();
setBtnLoading(false);
}
case 5:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return function creatMirrorByFile() {
return _ref4.apply(this, arguments);
};
}();
var getMirror = /*#__PURE__*/function () {
var _ref5 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
var res, _res$data2, _res$data2$environmen, _res$data3;
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return (0,fetch/* default */.ZP)('/api/shixuns/new.json', {
method: 'get',
params: {
is_create_mirror: 1,
tab_type: mirrorItems[Number(tabs) - 1].type
}
});
case 2:
res = _context4.sent;
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
if ((res === null || res === void 0 ? void 0 : (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : (_res$data2$environmen = _res$data2.environments) === null || _res$data2$environmen === void 0 ? void 0 : _res$data2$environmen.length) === 0 && (res === null || res === void 0 ? void 0 : (_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : _res$data3.other_image.length) === 0) {
setIsEmpty(true);
} else {
setIsEmpty(false);
}
}
case 4:
case "end":
return _context4.stop();
}
}, _callee4);
}));
return function getMirror() {
return _ref5.apply(this, arguments);
};
}();
var toExit = function toExit() {
var toNext = function toNext() {
_umi_production_exports.history.back();
};
var flag = false;
if (publicMirrorInfo !== null && publicMirrorInfo !== void 0 && publicMirrorInfo.id || customizeMirrorInfo !== null && customizeMirrorInfo !== void 0 && customizeMirrorInfo.id || shareMirrorInfo !== null && shareMirrorInfo !== void 0 && shareMirrorInfo.id || basicTypeName) flag = true;
if (fileInfo !== null && fileInfo !== void 0 && fileInfo.id || localTypeName || command === false || graphical === true) {
flag = true;
}
if (flag) {
modal/* default.confirm */.Z.confirm({
title: '离开此页提示',
content: '系统可能不会保存您所做的更改。',
okText: '离开',
cancelText: '取消',
onOk: function onOk() {
toNext();
}
});
} else {
toNext();
}
};
(0,react.useEffect)(function () {
getMirror();
}, [tabs]);
var handleConfirm = /*#__PURE__*/function () {
var _ref6 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5() {
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
while (1) switch (_context5.prev = _context5.next) {
case 0:
if (!(methods === 1)) {
_context5.next = 17;
break;
}
if (mirrorInfo !== null && mirrorInfo !== void 0 && mirrorInfo.id) {
_context5.next = 7;
break;
}
setMirrorError('mirror');
document.body.scrollIntoView();
return _context5.abrupt("return");
case 7:
setMirrorError('');
case 8:
if (basicTypeName) {
_context5.next = 15;
break;
}
setBasicNameError('type_name');
setBasicNameErrorText('镜像名称不能为空');
document.body.scrollIntoView();
return _context5.abrupt("return");
case 15:
_context5.next = 17;
return getNameError(basicTypeName, true);
case 17:
if (!(methods === 2)) {
_context5.next = 40;
break;
}
if (!(!command && !graphical)) {
_context5.next = 24;
break;
}
setMirrorTypeError('interface');
document.body.scrollIntoView();
return _context5.abrupt("return");
case 24:
setMirrorTypeError('');
case 25:
if (!((fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.id) != undefined)) {
_context5.next = 29;
break;
}
setFileError('');
_context5.next = 32;
break;
case 29:
setFileError('file');
document.body.scrollIntoView();
return _context5.abrupt("return");
case 32:
if (localTypeName) {
_context5.next = 39;
break;
}
setLocalNameError('type_name');
setLocalNameErrorText('镜像名称不能为空');
document.body.scrollIntoView();
return _context5.abrupt("return");
case 39:
getNameError(localTypeName, true);
case 40:
case "end":
return _context5.stop();
}
}, _callee5);
}));
return function handleConfirm() {
return _ref6.apply(this, arguments);
};
}();
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Addmodules.wrap,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Addmodules.content,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Addmodules.crumbs,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-fanhuijingxiang",
style: {
color: '#3061D0',
fontSize: 14,
cursor: "pointer"
},
onClick: toExit
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: {
paddingLeft: 8
},
children: "\u521B\u5EFA\u955C\u50CF"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
title: "",
className: Addmodules.doc,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
onClick: function onClick() {
(0,util/* openNewWindow */.xg)("".concat(env/* default.API_SERVER */.Z.API_SERVER, "/pdf/\u81EA\u5B9A\u4E49\u955C\u50CF\u64CD\u4F5C\u5E2E\u52A9\u6587\u6863.pdf"));
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-a-wenhaobeifen2"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: {
paddingLeft: 4
},
children: "\u5E2E\u52A9\u6587\u6863"
})]
})
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Addmodules.title,
children: "\u521B\u5EFA\u65B9\u5F0F\u4E0E\u6765\u6E90"
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
marginBottom: 60
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(Label/* default */.Z, {
required: true,
nameWidth: 100,
name: "\u521B\u5EFA\u65B9\u5F0F",
children: methodsItems.map(function (item) {
return /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: methods === item.id ? "primary" : "default",
style: {
marginRight: 20,
borderRadius: 2
},
className: methods === item.id ? Addmodules.activeBtn : Addmodules.btn,
onClick: function onClick() {
setMethods(item.id);
if (tabs === 1) {
setMirrorInfo(publicMirrorInfo);
if (publicMirrorInfo !== null && publicMirrorInfo !== void 0 && publicMirrorInfo.id) setMirrorError('');
}
if (tabs === 2) {
setMirrorInfo(customizeMirrorInfo);
if (customizeMirrorInfo !== null && customizeMirrorInfo !== void 0 && customizeMirrorInfo.id) setMirrorError('');
}
if (tabs === 3) {
setMirrorInfo(shareMirrorInfo);
if (shareMirrorInfo !== null && shareMirrorInfo !== void 0 && shareMirrorInfo.id) setMirrorError('');
}
},
children: item.name
});
})
}), methods === 1 && /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(Label/* default */.Z, {
required: true,
nameWidth: 100,
name: "\u57FA\u7840\u955C\u50CF",
children: /*#__PURE__*/(0,jsx_runtime.jsx)(ui_customization/* SuperiorTabs */.tp, {
dataSource: mirrorItems,
value: tabs,
onChange: function onChange(id) {
setTabs(id);
if (id === 1) {
setMirrorInfo(objectSpread2_default()({}, publicMirrorInfo));
if (publicMirrorInfo !== null && publicMirrorInfo !== void 0 && publicMirrorInfo.id) setMirrorError('');
}
if (id === 2) {
setMirrorInfo(objectSpread2_default()({}, customizeMirrorInfo));
if (customizeMirrorInfo !== null && customizeMirrorInfo !== void 0 && customizeMirrorInfo.id) setMirrorError('');
}
if (id === 3) {
setMirrorInfo(objectSpread2_default()({}, shareMirrorInfo));
if (shareMirrorInfo !== null && shareMirrorInfo !== void 0 && shareMirrorInfo.id) setMirrorError('');
}
}
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(Label/* default */.Z, {
nameWidth: 100,
errorKey: "mirror",
errorValue: mirrorError,
errorName: "\u8BF7\u9009\u62E9\u57FA\u7840\u955C\u50CF",
errorStyle: {
fontSize: 12,
paddingBottom: 8
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)(row/* default */.Z, {
align: "middle",
children: isEmpty === false ? /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [!!(mirrorInfo !== null && mirrorInfo !== void 0 && mirrorInfo.id) && /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
onClick: function onClick() {
setMirrorModal(true);
},
className: Addmodules.mirror,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: mirrorInfo === null || mirrorInfo === void 0 ? void 0 : mirrorInfo.name
}), /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-genghuan"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(MarkdownModal/* default */.Z, {
value: [{
description: mirrorInfo === null || mirrorInfo === void 0 ? void 0 : mirrorInfo.description,
name: mirrorInfo === null || mirrorInfo === void 0 ? void 0 : mirrorInfo.name
}],
title: "\u5B9E\u9A8C\u955C\u50CF\u8BF4\u660E",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: Addmodules.explain,
children: "\u5B9E\u9A8C\u955C\u50CF\u8BF4\u660E"
})
})]
}), !(mirrorInfo !== null && mirrorInfo !== void 0 && mirrorInfo.id) && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
onClick: function onClick() {
setMirrorModal(true);
},
className: Addmodules.mirror,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-tianjia3 font14 mr10"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: "\u9009\u62E9\u5B9E\u9A8C\u955C\u50CF"
})]
})]
}) : /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
src: nodata_namespaceObject,
style: {
width: '30px',
height: '32px'
}
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: {
paddingLeft: '10px'
},
children: "\u6682\u65E0\u6570\u636E~"
})]
})
})
})]
}), methods === 2 && /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(Label/* default */.Z, {
nameWidth: 100,
align: "start",
required: true,
name: "\u955C\u50CF\u6587\u4EF6",
errorKey: "file",
errorValue: fileError,
errorName: "\u8BF7\u4E0A\u4F20\u955C\u50CF\u6587\u4EF6",
errorStyle: {
fontSize: 12,
paddingBottom: 8
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)(NewSliceUpload, {
successCallback: function successCallback(e) {
if (!!e) {
setFileError('');
setFileInfo(objectSpread2_default()({}, e));
} else {
setFileInfo({});
}
},
url: globalSetting === null || globalSetting === void 0 ? void 0 : (_globalSetting$settin = globalSetting.setting) === null || _globalSetting$settin === void 0 ? void 0 : _globalSetting$settin.bigfiles_upload
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(Label/* default */.Z, {
required: true,
name: "\u955C\u50CF\u7C7B\u578B",
nameWidth: 100,
align: "start",
errorKey: "interface",
errorValue: mirrorTypeError,
errorName: "\u8BF7\u9009\u62E9\u955C\u50CF\u7C7B\u578B",
errorStyle: {
fontSize: 12,
paddingBottom: 8
},
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Addmodules["interface"],
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
onClick: function onClick() {
setCommand(!command);
if (!command || graphical === true) {
setMirrorTypeError('');
}
},
className: command ? Addmodules.active : '',
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "iconfont icon-xuanzhong9"
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-minglinghang"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: "\u547D\u4EE4\u884C\u7EC8\u7AEF"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("aside", {
children: "\u901A\u8FC7\u547D\u4EE4\u884C\u7EC8\u7AEF\u7684\u65B9\u5F0F\u8FDE\u63A5"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
onClick: function onClick() {
setGraphical(!graphical);
if (!graphical || command === true) {
setMirrorTypeError('');
}
},
className: graphical ? Addmodules.active : '',
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "iconfont icon-xuanzhong9"
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-tuxinghuazhuomian"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: "\u56FE\u5F62\u5316\u684C\u9762"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("aside", {
children: "\u901A\u8FC7\u56FE\u5F62\u5316\u684C\u9762\u7684\u65B9\u5F0F\u8FDE\u63A5"
})]
})]
})
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Addmodules.title,
style: {
marginTop: 0
},
children: "\u955C\u50CF\u4FE1\u606F"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(Label/* default */.Z, {
required: true,
nameWidth: 100,
name: "\u955C\u50CF\u540D\u79F0",
errorKey: "type_name",
errorValue: methods === 1 ? basicNameError : localNameError,
errorName: methods === 1 ? basicNameErrorText : localNameErrorText,
errorStyle: {
fontSize: 12,
paddingBottom: 8
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
value: methods === 1 ? basicTypeName : localTypeName
// maxLength={60}
,
onChange: function onChange(e) {
var value = e.target.value;
if (methods === 1) {
setBasicTypeName(value);
}
if (methods === 2) {
setLocalTypeName(value);
}
},
onBlur: function onBlur(e) {
var value = e.target.value;
//await getNameError(value,false)
if (value.length <= 60) {
var regex = /^[a-zA-Z][a-zA-Z0-9#+.\-/_:]*$/;
if (value.match(regex) || value === '') {
if (methods === 1) {
setBasicTypeName(value);
setBasicNameError('');
setBasicNameErrorText('');
} else if (methods === 2) {
setLocalTypeName(value);
setLocalNameError('');
setLocalNameErrorText('');
}
} else {
if (methods === 1) {
setBasicNameError('type_name');
setBasicNameErrorText('镜像名称只能以字母开头,仅支持字母、数字和特殊字符#+.-/_:');
} else if (methods === 2) {
setLocalNameError('type_name');
setLocalNameErrorText('镜像名称只能以字母开头,仅支持字母、数字和特殊字符#+.-/_:');
}
}
} else {
if (methods === 1) {
setBasicNameError('type_name');
setBasicNameErrorText('镜像名称不能超过60个字符');
} else if (methods === 2) {
setLocalNameError('type_name');
setLocalNameErrorText('镜像名称不能超过60个字符');
}
}
}
// bordered={false}
,
placeholder: "\u4F8B\u5982\uFF1APython3.6",
size: "large"
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(Label/* default */.Z, {
name: "\u955C\u50CF\u63CF\u8FF0",
nameWidth: 100,
align: "start",
children: /*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor/* default */.Z, {
fullScreen: false,
watch: true,
height: 500,
placeholder: '',
defaultValue: methods === 1 ? mirrorInfo === null || mirrorInfo === void 0 ? void 0 : mirrorInfo.description : defaultDesc,
onChange: function onChange(value) {
setDescription(value);
},
onBlur: function onBlur(value) {
setDescription(value);
}
})
})]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Addmodules.btns,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
style: {
marginRight: 40
},
onClick: toExit,
children: "\u53D6\u6D88"
}), methods === 1 && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: "primary",
onClick: handleConfirm,
loading: createBtnLoading,
children: "\u5F00\u59CB\u5236\u4F5C\u955C\u50CF"
}), methods === 2 && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
disabled: !(fileInfo !== null && fileInfo !== void 0 && fileInfo.id),
type: !(fileInfo !== null && fileInfo !== void 0 && fileInfo.id) ? "default" : "primary",
className: !(fileInfo !== null && fileInfo !== void 0 && fileInfo.id) ? Addmodules.disabledBtn : '',
onClick: function onClick() {
return handleConfirm();
},
loading: btnLoading,
children: "\u5F00\u59CB\u5BFC\u5165"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(components_MirrorModal, {
useId: mirrorInfo === null || mirrorInfo === void 0 ? void 0 : mirrorInfo.id,
tab_type: mirrorItems[Number(tabs) - 1].type,
visible: mirrorModal,
onCancel: function onCancel() {
setMirrorModal(false);
},
onOk: function onOk(value) {
if (tabs === 1) setPublicMirrorInfo(value);
if (tabs === 2) setCustomizeMirrorInfo(value);
if (tabs === 3) setShareMirrorInfo(value);
setMirrorInfo(value);
setMirrorModal(false);
setMirrorError('');
}
}), /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
centered: true,
maskClosable: false,
keyboard: false,
destroyOnClose: true,
open: configModal,
title: "\u9009\u62E9\u8FD0\u884C\u73AF\u5883",
width: "558px",
okText: "\u786E\u5B9A",
wrapClassName: Addmodules.auditModal,
confirmLoading: modalBtnLoading,
onCancel: function onCancel() {
setConfigModal(false);
},
onOk: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6() {
var _configData$time_limi;
var res, _res$data4;
return regeneratorRuntime_default()().wrap(function _callee6$(_context6) {
while (1) switch (_context6.prev = _context6.next) {
case 0:
setModalBtnLoading(true);
_context6.next = 3;
return (0,fetch/* default */.ZP)('/api/user_mirrors.json', {
method: 'post',
body: {
create_method: 1,
base_mirror_repository_id: mirrorInfo.id,
cpu_memory_limit: configData === null || configData === void 0 ? void 0 : configData.cpu_memory_limit_config[Number(cpuId)],
time_limit: configData === null || configData === void 0 ? void 0 : (_configData$time_limi = configData.time_limit_config[Number(timeId)]) === null || _configData$time_limi === void 0 ? void 0 : _configData$time_limi.value,
type_name: basicTypeName,
description: description
}
});
case 3:
res = _context6.sent;
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
message/* default.success */.ZP.success("创建成功");
_umi_production_exports.history.push("/shixuns/new/".concat(res === null || res === void 0 ? void 0 : (_res$data4 = res.data) === null || _res$data4 === void 0 ? void 0 : _res$data4.user_mirror_id, "/imagepreview?operation=create_image"));
}
setModalBtnLoading(false);
setConfigModal(false);
case 7:
case "end":
return _context6.stop();
}
}, _callee6);
})),
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
paddingTop: 20
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(Label/* default */.Z, {
required: true,
name: "\u914D\u7F6E",
align: "center",
nameWidth: 60
// errorName='请选择配置'
,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Addmodules.cpuWrap,
children: configData === null || configData === void 0 ? void 0 : (_configData$cpu_memor = configData.cpu_memory_limit_config) === null || _configData$cpu_memor === void 0 ? void 0 : _configData$cpu_memor.map(function (item, index) {
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: cpuId === index ? Addmodules.activebtn : Addmodules.btn,
onClick: function onClick() {
return setCpuId(index);
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: item
}), cpuId === index ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-xuanzhong9",
style: {
paddingRight: 12
}
})
}) : '']
});
})
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(Label/* default */.Z, {
required: true,
name: "\u65F6\u957F",
align: "center",
nameWidth: 60
// errorName='请选择时长'
,
children: configData === null || configData === void 0 ? void 0 : (_configData$time_limi2 = configData.time_limit_config) === null || _configData$time_limi2 === void 0 ? void 0 : _configData$time_limi2.map(function (item, index) {
return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: timeId === index ? Addmodules.activeTab : Addmodules.tab,
onClick: function onClick() {
return setTimeId(index);
},
children: item.name
});
})
})]
})
})]
});
};
/* harmony default export */ var Add = ((0,_umi_production_exports.connect)(function (_ref8) {
var classroomList = _ref8.classroomList,
loading = _ref8.loading,
globalSetting = _ref8.globalSetting,
user = _ref8.user;
return {
classroomList: classroomList,
globalSetting: globalSetting,
loading: loading.models.classroomList,
user: user
};
})(EditPage));
/***/ }),
/***/ 45954:
/*!*********************************************!*\
!*** ./src/pages/tasks/vnc-view/index.less ***!
\*********************************************/
/***/ (function() {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 36723:
/*!*****************************************!*\
!*** ./src/assets/images/noEnvData.png ***!
\*****************************************/
/***/ (function(module) {
module.exports = "data:image/png;base64,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";
/***/ })
}]);