|
|
"use strict";
|
|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[22254,4977,11436,58356,94724],{
|
|
|
|
|
|
/***/ 60058:
|
|
|
/*!*************************************!*\
|
|
|
!*** ./src/pages/tasks/constant.js ***!
|
|
|
\*************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ $Y: function() { return /* binding */ SET_EDITOR_THEME; },
|
|
|
/* harmony export */ A0: function() { return /* binding */ HIDE_EVALUATE_LOADING; },
|
|
|
/* harmony export */ EP: function() { return /* binding */ HIDE_EVALUATE_RESULT; },
|
|
|
/* harmony export */ F_: function() { return /* binding */ MOVE_X; },
|
|
|
/* harmony export */ G9: function() { return /* binding */ UPDATE_TIMESTRAP; },
|
|
|
/* harmony export */ GB: function() { return /* binding */ FETCH_REP_CONTENT; },
|
|
|
/* harmony export */ GR: function() { return /* binding */ GET_DISCUSSES; },
|
|
|
/* harmony export */ GW: function() { return /* binding */ SET_SHOW_DIR; },
|
|
|
/* harmony export */ Hp: function() { return /* binding */ SHOW_TASK_LIST; },
|
|
|
/* harmony export */ Ir: function() { return /* binding */ FETCH_TASK_FAILURE; },
|
|
|
/* harmony export */ N$: function() { return /* binding */ EDIT_REP_CODE; },
|
|
|
/* harmony export */ NZ: function() { return /* binding */ HIDE_TIP_MODAL; },
|
|
|
/* harmony export */ Nv: function() { return /* binding */ HIDE_NOTICE; },
|
|
|
/* harmony export */ OA: function() { return /* binding */ HIDE_PICTURE_VIEW; },
|
|
|
/* harmony export */ OJ: function() { return /* binding */ SET_CHOOSE_ANSWERS; },
|
|
|
/* harmony export */ QF: function() { return /* binding */ ON_AUTO_FORMAT; },
|
|
|
/* harmony export */ RS: function() { return /* binding */ SHOW_REWARD_DIALOG; },
|
|
|
/* harmony export */ RY: function() { return /* binding */ SET_VNC_LOADING; },
|
|
|
/* harmony export */ Rj: function() { return /* binding */ SHOW_TIP_MODAL; },
|
|
|
/* harmony export */ SX: function() { return /* binding */ ACTIVE_DISCUSS_INDEX; },
|
|
|
/* harmony export */ Tp: function() { return /* binding */ SET_EDITOR_FONTSIZE; },
|
|
|
/* harmony export */ Ui: function() { return /* binding */ SHOW_EVALUATE_LOADING; },
|
|
|
/* harmony export */ V1: function() { return /* binding */ EVAL_CHOOSE_END; },
|
|
|
/* harmony export */ Vn: function() { return /* binding */ SET_REWARD; },
|
|
|
/* harmony export */ dL: function() { return /* binding */ SHOW_NOTICE; },
|
|
|
/* harmony export */ fo: function() { return /* binding */ DISABLE_DISCUSS; },
|
|
|
/* harmony export */ gK: function() { return /* binding */ TRIGGER_TAB_FIXED; },
|
|
|
/* harmony export */ hK: function() { return /* binding */ HIDE_TASK_LIST; },
|
|
|
/* harmony export */ i3: function() { return /* binding */ TRIGGER_RIGHT_PANEL_MASK; },
|
|
|
/* harmony export */ ib: function() { return /* binding */ SET_TASK_STAR; },
|
|
|
/* harmony export */ lS: function() { return /* binding */ TRIGGER_ENLARGE_UNITY3D; },
|
|
|
/* harmony export */ m5: function() { return /* binding */ SHOW_EVALUATE_RESULT; },
|
|
|
/* harmony export */ n4: function() { return /* binding */ FETCH_TASK_START; },
|
|
|
/* harmony export */ n_: function() { return /* binding */ SET_ACTIVE_INDEX; },
|
|
|
/* harmony export */ oP: function() { return /* binding */ SET_REPOS; },
|
|
|
/* harmony export */ p2: function() { return /* binding */ SET_EVALUATE_MESSAGE; },
|
|
|
/* harmony export */ pl: function() { return /* binding */ FETCH_ANSWER_INFO; },
|
|
|
/* harmony export */ rM: function() { return /* binding */ PLUS_DISCUSS; },
|
|
|
/* harmony export */ sM: function() { return /* binding */ GET_TASK_LIST; },
|
|
|
/* harmony export */ t2: function() { return /* binding */ CANCEL_REWARD_DIALOG; },
|
|
|
/* harmony export */ tD: function() { return /* binding */ SHOW_DISCUSSES_LOADING; },
|
|
|
/* harmony export */ u8: function() { return /* binding */ TOP_OR_DOWN_DISCUSS; },
|
|
|
/* harmony export */ um: function() { return /* binding */ ON_TAB_TO_SPACE; },
|
|
|
/* harmony export */ vm: function() { return /* binding */ SHOW_PICTURE_VIEW; },
|
|
|
/* harmony export */ wQ: function() { return /* binding */ MOVE_Y; },
|
|
|
/* harmony export */ wj: function() { return /* binding */ EVAL_CHOOSE_START; },
|
|
|
/* harmony export */ wt: function() { return /* binding */ SHOW_ANSWER_LOADING; },
|
|
|
/* harmony export */ yS: function() { return /* binding */ SET_ACTION_TYPE; },
|
|
|
/* harmony export */ yi: function() { return /* binding */ FETCH_TASK_SUCCESS; },
|
|
|
/* harmony export */ ym: function() { return /* binding */ SELECT_UNLOCK_ANSWER; },
|
|
|
/* harmony export */ z2: function() { return /* binding */ UPDATE_TASK_DATA; }
|
|
|
/* harmony export */ });
|
|
|
/* unused harmony exports CREATE_DISCUSS, SHOW_REP_LOADING, SET_REP_PATH, SET_EDITOR_SETTING, SHOW_PATH_LIST, HIDE_PATH_LIST, SET_TAB_INDEX, SET_SSH_TABS, SET_SSH_CONFIGDATA, SET_SSH_CONFIGDATAARR */
|
|
|
var FETCH_TASK_START = 'FETCH_TASK_START';
|
|
|
var FETCH_TASK_FAILURE = 'FETCH_TASK_FAILURE';
|
|
|
var FETCH_TASK_SUCCESS = 'FETCH_TASK_SUCCESS';
|
|
|
var UPDATE_TASK_DATA = 'UPDATE_TASK_DATA';
|
|
|
var HIDE_EVALUATE_RESULT = 'HIDE_EVALUATE_RESULT';
|
|
|
var SHOW_EVALUATE_RESULT = 'SHOW_EVALUATE_RESULT';
|
|
|
var UPDATE_TIMESTRAP = 'UPDATE_TIMESTRAP';
|
|
|
var MOVE_X = 'MOVE_X';
|
|
|
var MOVE_Y = 'MOVE_Y';
|
|
|
var TRIGGER_RIGHT_PANEL_MASK = 'TRIGGER_RIGHT_PANEL_MASK ';
|
|
|
|
|
|
//left_panel_action
|
|
|
var SET_ACTIVE_INDEX = 'SET_ACTIVE_INDEX';
|
|
|
var GET_TASK_LIST = 'GET_TASK_LIST';
|
|
|
var SHOW_TASK_LIST = 'SHOW_TASK_LIST';
|
|
|
var HIDE_TASK_LIST = 'HIDE_TASK_LIST';
|
|
|
var SET_TASK_STAR = 'SET_TASK_STAR';
|
|
|
var TRIGGER_ENLARGE_UNITY3D = 'TRIGGER_ENLARGE_UNITY3D ';
|
|
|
var TRIGGER_TAB_FIXED = 'TRIGGER_TAB_FIXED ';
|
|
|
|
|
|
//discuss action
|
|
|
var GET_DISCUSSES = 'GET_DISCUSSES';
|
|
|
var SHOW_DISCUSSES_LOADING = 'SHOW_DISCUSSES_LOADING';
|
|
|
var TOP_OR_DOWN_DISCUSS = 'TOP_OR_DOWN_DISCUSS';
|
|
|
var PLUS_DISCUSS = 'PLUS_DISCUSS';
|
|
|
var SET_ACTION_TYPE = 'SET_ACTION_TYPE';
|
|
|
var SHOW_REWARD_DIALOG = 'SHOW_REWARD_DIALOG';
|
|
|
var CANCEL_REWARD_DIALOG = 'CANCEL_REWARD_DIALOG';
|
|
|
var SET_REWARD = 'SET_REWARD';
|
|
|
var ACTIVE_DISCUSS_INDEX = 'ACTIVE_DISCUSS_INDEX';
|
|
|
var CREATE_DISCUSS = 'CREATE_DISCUSS';
|
|
|
var DISABLE_DISCUSS = 'DISABLE_DISCUSS';
|
|
|
|
|
|
//answer_panel_action
|
|
|
var SHOW_ANSWER_LOADING = 'SHOW_ANSWER_LOADING';
|
|
|
var FETCH_ANSWER_INFO = 'FETCH_ANSWER_INFO';
|
|
|
var HIDE_TIP_MODAL = 'HIGH_TIP_MODAL';
|
|
|
var SHOW_TIP_MODAL = 'SHOW_TIP_MODAL';
|
|
|
var SELECT_UNLOCK_ANSWER = 'SELECT_UNLOCK_ANSWER';
|
|
|
|
|
|
//choose_repository_action
|
|
|
var SET_CHOOSE_ANSWERS = 'SET_CHOOSE_ANSWERS';
|
|
|
var EVAL_CHOOSE_START = 'EVAL_CHOOSE_START';
|
|
|
var EVAL_CHOOSE_END = 'EVAL_CHOOSE_END';
|
|
|
|
|
|
//code_repository_action
|
|
|
var SHOW_REP_LOADING = 'SHOW_REP_loading';
|
|
|
var FETCH_REP_CONTENT = 'FETCH_REP_CONTENT';
|
|
|
var EDIT_REP_CODE = 'EDIT_REP_CONTENT';
|
|
|
var SET_REP_PATH = 'SET_REP_PATH';
|
|
|
var SHOW_EVALUATE_LOADING = 'SHOW_EVALUATE_LOADING';
|
|
|
var HIDE_EVALUATE_LOADING = 'HIDE_EVALUATE_LOADING';
|
|
|
var SET_EVALUATE_MESSAGE = 'SET_EVALUATE_MESSAGE';
|
|
|
var SET_SHOW_DIR = 'SET_SHOW_DIR';
|
|
|
var SET_EDITOR_SETTING = 'SET_EDITOR_SETTING';
|
|
|
var SET_EDITOR_THEME = 'SET_EDITOR_THEME';
|
|
|
var SET_EDITOR_FONTSIZE = 'SET_EDITOR_FONTSIZE';
|
|
|
var SET_REPOS = 'SET_REPOS';
|
|
|
var SHOW_PATH_LIST = 'SHOW_PATH_LIST';
|
|
|
var HIDE_PATH_LIST = 'HIDE_PATH_LIST';
|
|
|
var HIDE_PICTURE_VIEW = 'HIDE_PICTURE_VIEW';
|
|
|
var SHOW_PICTURE_VIEW = 'SHOW_PICTURE_VIEW';
|
|
|
var SHOW_NOTICE = 'SHOW_NOTICE';
|
|
|
var HIDE_NOTICE = 'HIDE_NOTICE';
|
|
|
var SET_TAB_INDEX = 'SET_TAB_INDEX';
|
|
|
var SET_SSH_TABS = 'SET_SSH_TABS';
|
|
|
var SET_SSH_CONFIGDATA = 'SET_SSH_CONFIGDATA';
|
|
|
var SET_SSH_CONFIGDATAARR = 'SET_SSH_CONFIGDATAARR';
|
|
|
var SET_VNC_LOADING = 'SET_VNC_LOADING ';
|
|
|
var ON_TAB_TO_SPACE = 'ON_TAB_TO_SPACE ';
|
|
|
var ON_AUTO_FORMAT = 'ON_AUTO_FORMAT ';
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 84637:
|
|
|
/*!*******************************************************!*\
|
|
|
!*** ./src/pages/tasks/left-panel/discuss/service.js ***!
|
|
|
\*******************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ KQ: function() { return /* binding */ submitDiscusses; },
|
|
|
/* harmony export */ KY: function() { return /* binding */ deleteDiscuss; },
|
|
|
/* harmony export */ OY: function() { return /* binding */ hiddenDiscuss; },
|
|
|
/* harmony export */ S8: function() { return /* binding */ rewardDiscuss; },
|
|
|
/* harmony export */ U_: function() { return /* binding */ aiReply; },
|
|
|
/* harmony export */ _Z: function() { return /* binding */ disableDiscuss; },
|
|
|
/* harmony export */ ae: function() { return /* binding */ plusDiscuss; },
|
|
|
/* harmony export */ o7: function() { return /* binding */ fetchDiscusses; },
|
|
|
/* harmony export */ rd: function() { return /* binding */ createDiscuss; },
|
|
|
/* harmony export */ wJ: function() { return /* binding */ topOrDownDiscuss; },
|
|
|
/* harmony export */ wg: function() { return /* binding */ replyDiscuss; }
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var _utils_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils/fetch */ 91506);
|
|
|
|
|
|
|
|
|
function fetchDiscusses(shixunIdentifier) {
|
|
|
var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .get */ .U2)("/discusses.json", {
|
|
|
container_type: "Shixun",
|
|
|
container_identifier: shixunIdentifier,
|
|
|
page: page - 1
|
|
|
});
|
|
|
}
|
|
|
function topOrDownDiscuss(id, top) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)("/discusses/".concat(id, "/top_or_down_discuss.json"), {
|
|
|
top: top
|
|
|
});
|
|
|
}
|
|
|
function disableDiscuss(id, is_disable) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)("/discusses/".concat(id, "/disable_or_open_discuss.json"), {
|
|
|
is_disable: !!is_disable
|
|
|
});
|
|
|
}
|
|
|
function plusDiscuss(id, user_praise) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)("/discusses/".concat(id, "/plus.json"), {
|
|
|
container_type: 'Discuss',
|
|
|
type: user_praise ? 1 : 0
|
|
|
});
|
|
|
}
|
|
|
function hiddenDiscuss(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)("/discusses/".concat(id, "/hidden.json"), params);
|
|
|
}
|
|
|
function rewardDiscuss(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)("/discusses/".concat(id, "/reward_code.json"), params);
|
|
|
}
|
|
|
function deleteDiscuss(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .ZP)("/api/discusses/".concat(id, ".json"), {
|
|
|
method: 'delete'
|
|
|
});
|
|
|
}
|
|
|
function replyDiscuss(id, content) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)("/discusses/".concat(id, "/reply.json"), {
|
|
|
container_type: 'Shixun',
|
|
|
content: content
|
|
|
});
|
|
|
}
|
|
|
function createDiscuss(params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)("/discusses.json", params);
|
|
|
}
|
|
|
function aiReply(params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)("/discusses/ai_reply.json", params);
|
|
|
}
|
|
|
function submitDiscusses(id, content) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)("/discusses/".concat(id, "/turing.json"), content);
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 80330:
|
|
|
/*!*********************************!*\
|
|
|
!*** ./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 */ 78130);
|
|
|
|
|
|
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"] */ .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';
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 67589:
|
|
|
/*!**************************************************************!*\
|
|
|
!*** ./src/components/ImageDimensions/index.tsx + 1 modules ***!
|
|
|
\**************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ components_ImageDimensions; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/regeneratorRuntime.js
|
|
|
var regeneratorRuntime = __webpack_require__(10574);
|
|
|
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/asyncToGenerator.js
|
|
|
var asyncToGenerator = __webpack_require__(39343);
|
|
|
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(11006);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
;// CONCATENATED MODULE: ./src/components/ImageDimensions/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var ImageDimensionsmodules = ({"imageDimensions":"imageDimensions___a7crR","img":"img___Kroat","fullWidth":"fullWidth___c492T"});
|
|
|
// EXTERNAL MODULE: ./node_modules/_classnames@2.3.2@classnames/index.js
|
|
|
var _classnames_2_3_2_classnames = __webpack_require__(12124);
|
|
|
var _classnames_2_3_2_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_3_2_classnames);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/spin/index.js + 1 modules
|
|
|
var spin = __webpack_require__(71418);
|
|
|
// EXTERNAL MODULE: ./node_modules/_markerjs3@2.29.1@markerjs3/markerjs2.esm.js
|
|
|
var markerjs2_esm = __webpack_require__(2859);
|
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
|
var fetch = __webpack_require__(91506);
|
|
|
// EXTERNAL MODULE: ./src/utils/util.tsx
|
|
|
var util = __webpack_require__(22739);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/components/ImageDimensions/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var ImageDimensions = function ImageDimensions(_ref) {
|
|
|
var data = _ref.data,
|
|
|
className = _ref.className,
|
|
|
fullWidth = _ref.fullWidth,
|
|
|
_ref$style = _ref.style,
|
|
|
style = _ref$style === void 0 ? {} : _ref$style,
|
|
|
onClose = _ref.onClose,
|
|
|
onOk = _ref.onOk,
|
|
|
showFullTools = _ref.showFullTools,
|
|
|
noAssociationId = _ref.noAssociationId;
|
|
|
var imgRef = (0,_react_17_0_2_react.useRef)(null);
|
|
|
var markerArea = (0,_react_17_0_2_react.useRef)(null);
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
loading = _useState2[0],
|
|
|
setLoading = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)('正在加载中'),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
loadingText = _useState4[0],
|
|
|
setLoadingText = _useState4[1];
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (data !== null && data !== void 0 && data.visible) {
|
|
|
document.body.setAttribute('data-custom', 'y-hidden');
|
|
|
} else {
|
|
|
document.body.removeAttribute('data-custom');
|
|
|
}
|
|
|
if (data !== null && data !== void 0 && data.src) {
|
|
|
getImg();
|
|
|
}
|
|
|
}, [data === null || data === void 0 ? void 0 : data.visible]);
|
|
|
var getImg = /*#__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:
|
|
|
setLoading(true);
|
|
|
setLoadingText('正在加载中');
|
|
|
_context.next = 4;
|
|
|
return (0,util/* toDataUrl */.ZJ)(data === null || data === void 0 ? void 0 : data.src);
|
|
|
case 4:
|
|
|
res = _context.sent;
|
|
|
imgRef.current.src = "";
|
|
|
imgRef.current.src = res;
|
|
|
imgRef.current.onload = function () {
|
|
|
initMarkerjs();
|
|
|
};
|
|
|
setLoading(false);
|
|
|
setLoadingText('');
|
|
|
case 10:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function getImg() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var onSave = /*#__PURE__*/function () {
|
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(event) {
|
|
|
var res, result;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
setLoading(true);
|
|
|
setLoadingText('正在保存中');
|
|
|
_context2.next = 4;
|
|
|
return (0,fetch/* default */.ZP)('/api/attachments.json', {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
file_type: 'base64',
|
|
|
original_filename: data.title,
|
|
|
file: event.dataUrl
|
|
|
}
|
|
|
});
|
|
|
case 4:
|
|
|
res = _context2.sent;
|
|
|
if (!(res !== null && res !== void 0 && res.id && !noAssociationId)) {
|
|
|
_context2.next = 12;
|
|
|
break;
|
|
|
}
|
|
|
_context2.next = 8;
|
|
|
return (0,fetch/* default */.ZP)("/api/attachments/".concat(data.id, "/add_subitem.json"), {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
subitem_id: res === null || res === void 0 ? void 0 : res.id,
|
|
|
settings: JSON.stringify(event.state)
|
|
|
}
|
|
|
});
|
|
|
case 8:
|
|
|
result = _context2.sent;
|
|
|
if (result.status === 0) {
|
|
|
onOk();
|
|
|
}
|
|
|
_context2.next = 13;
|
|
|
break;
|
|
|
case 12:
|
|
|
if (res !== null && res !== void 0 && res.id) {
|
|
|
onOk(res);
|
|
|
}
|
|
|
case 13:
|
|
|
setLoading(false);
|
|
|
setLoadingText('');
|
|
|
case 15:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return function onSave(_x) {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var dealDom = function dealDom() {
|
|
|
// 删除标签
|
|
|
// 找到href为"https://markerjs.com/"的a标签
|
|
|
var targetLink = document.querySelector('a[href="https://markerjs.com/"]');
|
|
|
if (targetLink && targetLink.parentNode) {
|
|
|
targetLink.parentNode.style.display = 'none';
|
|
|
}
|
|
|
|
|
|
// 设置title
|
|
|
var item = [{
|
|
|
name: '[data-action="select"]',
|
|
|
title: '选择'
|
|
|
}, {
|
|
|
name: '[data-action="delete"]',
|
|
|
title: '删除元素'
|
|
|
}, {
|
|
|
name: '[data-action="undo"]',
|
|
|
title: '撤销'
|
|
|
}, {
|
|
|
name: '[data-type-name="FrameMarker"]',
|
|
|
title: '矩形'
|
|
|
}, {
|
|
|
name: '[data-type-name="FreehandMarker"]',
|
|
|
title: '画线'
|
|
|
}, {
|
|
|
name: '[data-type-name="ArrowMarker"]',
|
|
|
title: '箭头'
|
|
|
}, {
|
|
|
name: '[data-type-name="TextMarker"]',
|
|
|
title: '文本'
|
|
|
}, {
|
|
|
name: '[data-type-name="EllipseMarker"]',
|
|
|
title: '椭圆'
|
|
|
}, {
|
|
|
name: '[data-type-name="HighlightMarker"]',
|
|
|
title: '方块'
|
|
|
}, {
|
|
|
name: '[data-type-name="CalloutMarker"]',
|
|
|
title: '注释'
|
|
|
}, {
|
|
|
name: '[data-action="render"]',
|
|
|
title: '保存'
|
|
|
}, {
|
|
|
name: '[data-action="close"]',
|
|
|
title: '退出'
|
|
|
}];
|
|
|
item.forEach(function (e) {
|
|
|
var targetElement = document.querySelector(e.name);
|
|
|
if (targetElement) {
|
|
|
targetElement.setAttribute('title', e.title);
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
var initMarkerjs = function initMarkerjs() {
|
|
|
markerArea.current = new markerjs2_esm/* MarkerArea */.hP(imgRef.current);
|
|
|
markerArea.current.addEventListener('render', onSave);
|
|
|
markerArea.current.addEventListener('beforeclose', onClose);
|
|
|
if (showFullTools) {
|
|
|
markerArea.current.availableMarkerTypes = markerArea.current.ALL_MARKER_TYPES;
|
|
|
markerArea.current.uiStyleSettings.redoButtonVisible = true;
|
|
|
markerArea.current.uiStyleSettings.notesButtonVisible = true;
|
|
|
markerArea.current.uiStyleSettings.zoomButtonVisible = true;
|
|
|
markerArea.current.uiStyleSettings.zoomOutButtonVisible = true;
|
|
|
markerArea.current.uiStyleSettings.clearButtonVisible = true;
|
|
|
}
|
|
|
window.markerArea = markerArea.current.uiStyleSettings;
|
|
|
markerArea.current.show();
|
|
|
if (data !== null && data !== void 0 && data.snapshotData) {
|
|
|
markerArea.current.restoreState(data.snapshotData);
|
|
|
}
|
|
|
setTimeout(function () {
|
|
|
dealDom();
|
|
|
}, 300);
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(_react_17_0_2_react.Fragment, {
|
|
|
children: (data === null || data === void 0 ? void 0 : data.visible) && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: _classnames_2_3_2_classnames_default()(ImageDimensionsmodules.imageDimensions, className, fullWidth ? ImageDimensionsmodules.fullWidth : ""),
|
|
|
style: style,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(spin/* default */.Z, {
|
|
|
spinning: loading,
|
|
|
tip: loadingText,
|
|
|
style: {
|
|
|
position: 'absolute'
|
|
|
}
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
className: ImageDimensionsmodules.img,
|
|
|
ref: imgRef
|
|
|
// crossOrigin='anonymous'
|
|
|
// src={data?.src}
|
|
|
})]
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
|
|
|
/* harmony default export */ var components_ImageDimensions = (ImageDimensions);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 73208:
|
|
|
/*!*****************************************!*\
|
|
|
!*** ./src/components/NoData/index.tsx ***!
|
|
|
\*****************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectSpread2.js */ 26801);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 59301);
|
|
|
/* harmony import */ var _assets_images_icons_nodata_png__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/assets/images/icons/nodata.png */ 93314);
|
|
|
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd */ 3113);
|
|
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ 37712);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var noData = function noData(_ref) {
|
|
|
var img = _ref.img,
|
|
|
_ref$buttonProps = _ref.buttonProps,
|
|
|
buttonProps = _ref$buttonProps === void 0 ? {} : _ref$buttonProps,
|
|
|
_ref$styles = _ref.styles,
|
|
|
styles = _ref$styles === void 0 ? {} : _ref$styles,
|
|
|
customText = _ref.customText,
|
|
|
ButtonText = _ref.ButtonText,
|
|
|
ButtonClick = _ref.ButtonClick,
|
|
|
Buttonclass = _ref.Buttonclass,
|
|
|
ButtonTwo = _ref.ButtonTwo,
|
|
|
imgStyles = _ref.imgStyles,
|
|
|
_ref$loading = _ref.loading,
|
|
|
loading = _ref$loading === void 0 ? false : _ref$loading;
|
|
|
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("section", {
|
|
|
className: "tc animated fadeIn",
|
|
|
style: _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, {
|
|
|
color: '#999',
|
|
|
margin: '100px auto',
|
|
|
visibility: loading ? 'hidden' : 'visible'
|
|
|
}), styles),
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("img", {
|
|
|
src: img || _assets_images_icons_nodata_png__WEBPACK_IMPORTED_MODULE_2__,
|
|
|
style: _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, imgStyles)
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("p", {
|
|
|
className: "mt20 font14",
|
|
|
children: customText || '暂时还没有相关数据哦!'
|
|
|
}), ButtonText && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .ZP, _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({
|
|
|
className: Buttonclass,
|
|
|
onClick: ButtonClick
|
|
|
}, buttonProps), {}, {
|
|
|
children: ButtonText
|
|
|
})), ButtonTwo && ButtonTwo]
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ __webpack_exports__.Z = (noData);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 19480:
|
|
|
/*!*********************************************************!*\
|
|
|
!*** ./src/components/PreviewAll/index.tsx + 1 modules ***!
|
|
|
\*********************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ PreviewAll; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectSpread2.js
|
|
|
var objectSpread2 = __webpack_require__(26801);
|
|
|
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/regeneratorRuntime.js
|
|
|
var regeneratorRuntime = __webpack_require__(10574);
|
|
|
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/asyncToGenerator.js
|
|
|
var asyncToGenerator = __webpack_require__(39343);
|
|
|
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(11006);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
;// CONCATENATED MODULE: ./src/components/PreviewAll/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var PreviewAllmodules = ({"wrp":"wrp___dq7YK","bgBlack":"bgBlack___ARIUV","monaco":"monaco___VnZC3","darkBlue":"darkBlue___UprA9","close":"close___LKoWu","embed":"embed___hvpEJ"});
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
|
|
|
var es_button = __webpack_require__(3113);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/ArrowDownOutlined.js + 1 modules
|
|
|
var ArrowDownOutlined = __webpack_require__(98915);
|
|
|
// EXTERNAL MODULE: ./src/components/monaco-editor/index.jsx + 4 modules
|
|
|
var monaco_editor = __webpack_require__(68574);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tooltip/index.js + 3 modules
|
|
|
var tooltip = __webpack_require__(6848);
|
|
|
// EXTERNAL MODULE: ./src/utils/util.tsx
|
|
|
var util = __webpack_require__(22739);
|
|
|
// EXTERNAL MODULE: ./src/service/exercise.ts
|
|
|
var exercise = __webpack_require__(35367);
|
|
|
// EXTERNAL MODULE: ./src/components/NoData/index.tsx
|
|
|
var NoData = __webpack_require__(73208);
|
|
|
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
|
|
|
var env = __webpack_require__(78130);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/components/PreviewAll/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* harmony default export */ var PreviewAll = (function (_ref) {
|
|
|
var _data, _data2, _data3, _data4, _data5, _data6;
|
|
|
var _ref$editOffice = _ref.editOffice,
|
|
|
editOffice = _ref$editOffice === void 0 ? 'view' : _ref$editOffice,
|
|
|
data = _ref.data,
|
|
|
theme = _ref.theme,
|
|
|
type = _ref.type,
|
|
|
filename = _ref.filename,
|
|
|
monacoEditor = _ref.monacoEditor,
|
|
|
className = _ref.className,
|
|
|
style = _ref.style,
|
|
|
close = _ref.close,
|
|
|
onClose = _ref.onClose,
|
|
|
hasMask = _ref.hasMask,
|
|
|
disabledDownload = _ref.disabledDownload,
|
|
|
onImgDimensions = _ref.onImgDimensions,
|
|
|
showNodata = _ref.showNodata;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)('https://view.officeapps.live.com/op/view.aspx?src=http://testgs.educoder.net//rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--03541f6234b93d7ac3b2d84e7eb0e6594a952945/1.ppt'),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
src = _useState2[0],
|
|
|
setSrc = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(""),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
token = _useState4[0],
|
|
|
setToken = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
officeData = _useState6[0],
|
|
|
setOfficeData = _useState6[1];
|
|
|
var officePath = window.ENV === "build" ? "/react/build" : "";
|
|
|
var apiServer = location.host.startsWith("localhost") ? env/* default */.Z.PROXY_SERVER : env/* default */.Z.API_SERVER;
|
|
|
// let size;
|
|
|
var unit = 1024 * 1024;
|
|
|
var maxSize = 10 * unit;
|
|
|
var closeRef = (0,_react_17_0_2_react.useRef)();
|
|
|
if ((_data = data) !== null && _data !== void 0 && _data.startsWith("/api") && type !== "txt") {
|
|
|
data = env/* default */.Z.API_SERVER + data;
|
|
|
}
|
|
|
var getFileExtension = function getFileExtension(url) {
|
|
|
var filename = url.substring(url.lastIndexOf('/') + 1);
|
|
|
var extension = filename.split('.').pop();
|
|
|
return extension;
|
|
|
};
|
|
|
if (filename) monacoEditor.filename = filename;
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var _document$cookie;
|
|
|
var cookies = (_document$cookie = document.cookie) === null || _document$cookie === void 0 || (_document$cookie = _document$cookie.replace(/\s/g, "")) === null || _document$cookie === void 0 ? void 0 : _document$cookie.split(";");
|
|
|
cookies === null || cookies === void 0 || cookies.map(function (item) {
|
|
|
var i = item.split("=");
|
|
|
if (i[0] === '_educoder_session') {
|
|
|
setToken(i[1]);
|
|
|
}
|
|
|
});
|
|
|
}, []);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (type === "office") {
|
|
|
if (data.indexOf("bigfilescdn.") > -1) {
|
|
|
setOfficeData({
|
|
|
url: data,
|
|
|
fileType: getFileExtension(data),
|
|
|
model: data.indexOf("model=edit") ? "edit" : "view"
|
|
|
});
|
|
|
} else {
|
|
|
getData();
|
|
|
}
|
|
|
}
|
|
|
}, [type, data]);
|
|
|
var getData = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var _url, _id, res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
console.log("data:", data);
|
|
|
_url = data;
|
|
|
if (!data.startsWith("http")) {
|
|
|
_url = location.origin + _url;
|
|
|
}
|
|
|
_id = new URL(_url).pathname.split("/").pop();
|
|
|
_context.next = 6;
|
|
|
return (0,exercise/* setEcsAttachment */.gJ)({
|
|
|
attachment_id: _id
|
|
|
});
|
|
|
case 6:
|
|
|
res = _context.sent;
|
|
|
res.url = apiServer + res.url;
|
|
|
setOfficeData(res);
|
|
|
case 9:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function getData() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleClick = function handleClick() {
|
|
|
if (data.startsWith("http") || data.startsWith('blob:')) {
|
|
|
handleDown();
|
|
|
return;
|
|
|
}
|
|
|
(0,util/* downloadFile */.Sv)(filename || 'educoder', data, filename);
|
|
|
};
|
|
|
var handleDown = function handleDown() {
|
|
|
(0,util/* downLoadLink */.Nd)(filename || 'educoder', decodeURIComponent(data));
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: objectSpread2_default()({}, style || {}),
|
|
|
className: "".concat(hasMask && PreviewAllmodules.bgBlack, " ").concat(!!type ? PreviewAllmodules.wrp : "hide"),
|
|
|
children: [close && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: PreviewAllmodules.close,
|
|
|
ref: closeRef,
|
|
|
children: [!!onImgDimensions && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: "\u70B9\u51FB\u5BF9\u56FE\u7247\u8FDB\u884C\u6279\u6CE8",
|
|
|
getPopupContainer: function getPopupContainer() {
|
|
|
return closeRef.current;
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
onClick: function onClick() {
|
|
|
onClose();
|
|
|
onImgDimensions();
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "icon-yulanpizhu"
|
|
|
})
|
|
|
})
|
|
|
}), !disabledDownload && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: "\u70B9\u51FB\u4E0B\u8F7D\u6B64\u6587\u4EF6",
|
|
|
getPopupContainer: function getPopupContainer() {
|
|
|
return closeRef.current;
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
onClick: handleDown,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "icon-quxiaozhiding"
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: "\u5173\u95ED",
|
|
|
getPopupContainer: function getPopupContainer() {
|
|
|
return closeRef.current;
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "",
|
|
|
onClick: onClose,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "icon-guanbi1"
|
|
|
})
|
|
|
})
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "".concat(PreviewAllmodules[className], " ").concat(className, " ").concat(PreviewAllmodules.monaco, " ").concat(type === "txt" ? "show" : "hide"),
|
|
|
children: type === "txt" && /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(monaco_editor/* default */.ZP, objectSpread2_default()({}, monacoEditor))
|
|
|
})
|
|
|
}), type === "audio" && /*#__PURE__*/(0,jsx_runtime.jsx)("audio", {
|
|
|
src: "".concat(((_data2 = data) === null || _data2 === void 0 ? void 0 : _data2.indexOf("http://")) > -1 || ((_data3 = data) === null || _data3 === void 0 ? void 0 : _data3.indexOf("https://")) > -1 ? "" : "data:audio/mp3;base64,").concat(data),
|
|
|
autoPlay: true
|
|
|
}), type === "video" && /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
|
|
|
children: ((_data4 = data) === null || _data4 === void 0 ? void 0 : _data4.indexOf("http")) > -1 ? /*#__PURE__*/(0,jsx_runtime.jsx)("video", {
|
|
|
controls: true,
|
|
|
src: "".concat(data),
|
|
|
autoPlay: true
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsx)("video", {
|
|
|
controls: true,
|
|
|
src: "data:video/mp4;base64,".concat(data),
|
|
|
autoPlay: true
|
|
|
})
|
|
|
}), type === 'office' && officeData && /*#__PURE__*/(0,jsx_runtime.jsx)("iframe", {
|
|
|
src: "".concat(officePath, "/office.html?key=").concat(officeData.key, "&url=").concat(btoa(officeData.url), "&callbackUrl=").concat(apiServer + officeData.callbackUrl, "&fileType=").concat(officeData.fileType, "&title=").concat(officeData.title, "&model=").concat(editOffice, "&officeServer=").concat(env/* default */.Z.ONLYOFFICE, "&disabledDownload=").concat(!!disabledDownload)
|
|
|
}), type === 'html' && /*#__PURE__*/(0,jsx_runtime.jsx)("iframe", {
|
|
|
src: data + '&disposition=inline'
|
|
|
}), type === 'pdf' && /*#__PURE__*/(0,jsx_runtime.jsx)("iframe", {
|
|
|
src: "".concat(officePath, "/js/pdfview/index.html?url=").concat(data, "&disabledDownload=").concat(!!disabledDownload)
|
|
|
}) //<embed className={styles.embed + "#toolbar=0"} src={data} />
|
|
|
, type === "image" && /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
src: "".concat(((_data5 = data) === null || _data5 === void 0 ? void 0 : _data5.indexOf("http://")) > -1 || ((_data6 = data) === null || _data6 === void 0 ? void 0 : _data6.indexOf("https://")) > -1 ? "" : "data:image/png;base64,").concat(data)
|
|
|
}), (type === "other" || type === "download") && /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
|
|
|
children: showNodata ? /*#__PURE__*/(0,jsx_runtime.jsx)(NoData/* default */.Z, {
|
|
|
customText: "\u5F53\u524D\u6587\u4EF6\u4E0D\u652F\u6301\u9884\u89C8\uFF0C\u53EF\u70B9\u51FB\u4E0B\u8F7D\u67E5\u770B",
|
|
|
ButtonTwo: /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-xiazai4 font14"
|
|
|
}),
|
|
|
type: "primary",
|
|
|
size: 'middle',
|
|
|
onClick: handleClick,
|
|
|
children: "\u4E0B\u8F7D"
|
|
|
})
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsxs)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
size: 'middle',
|
|
|
onClick: handleClick,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(ArrowDownOutlined/* default */.Z, {}), "\u70B9\u51FB\u4E0B\u8F7D"]
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 11436:
|
|
|
/*!*********************************************************!*\
|
|
|
!*** ./src/components/RenderHtml/index.tsx + 1 modules ***!
|
|
|
\*********************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ RenderHtml; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectSpread2.js
|
|
|
var objectSpread2 = __webpack_require__(26801);
|
|
|
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/toConsumableArray.js
|
|
|
var toConsumableArray = __webpack_require__(93923);
|
|
|
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/createForOfIteratorHelper.js
|
|
|
var createForOfIteratorHelper = __webpack_require__(98190);
|
|
|
var createForOfIteratorHelper_default = /*#__PURE__*/__webpack_require__.n(createForOfIteratorHelper);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(11006);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
// EXTERNAL MODULE: ./node_modules/_katex@0.11.1@katex/dist/katex.min.css
|
|
|
var katex_min = __webpack_require__(16622);
|
|
|
// EXTERNAL MODULE: ./node_modules/_marked@2.0.7@marked/lib/marked.js
|
|
|
var marked = __webpack_require__(32834);
|
|
|
var marked_default = /*#__PURE__*/__webpack_require__.n(marked);
|
|
|
// EXTERNAL MODULE: ./node_modules/_marked@2.0.7@marked/src/helpers.js
|
|
|
var helpers = __webpack_require__(11690);
|
|
|
;// CONCATENATED MODULE: ./src/utils/marked.ts
|
|
|
|
|
|
|
|
|
|
|
|
function indentCodeCompensation(raw, text) {
|
|
|
var matchIndentToCode = raw.match(/^(\s+)(?:```)/);
|
|
|
if (matchIndentToCode === null) {
|
|
|
return text;
|
|
|
}
|
|
|
var indentToCode = matchIndentToCode[1];
|
|
|
return text.split('\n').map(function (node) {
|
|
|
var matchIndentInNode = node.match(/^\s+/);
|
|
|
if (matchIndentInNode === null) {
|
|
|
return node;
|
|
|
}
|
|
|
var _matchIndentInNode = slicedToArray_default()(matchIndentInNode, 1),
|
|
|
indentInNode = _matchIndentInNode[0];
|
|
|
if (indentInNode.length >= indentToCode.length) {
|
|
|
return node.slice(indentToCode.length);
|
|
|
}
|
|
|
return node;
|
|
|
}).join('\n');
|
|
|
}
|
|
|
//兼容之前的 ##标题式写法
|
|
|
var toc = [];
|
|
|
var ctx = ["<ul>"];
|
|
|
var renderer = new (marked_default()).Renderer();
|
|
|
var headingRegex = /^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/;
|
|
|
function cleanToc() {
|
|
|
toc.length = 0;
|
|
|
ctx = ["<ul>"];
|
|
|
}
|
|
|
var lines = {
|
|
|
overflow: "hidden",
|
|
|
WebkitBoxOrient: "vertical",
|
|
|
display: "-webkit-box",
|
|
|
WebkitLineClamp: 2
|
|
|
};
|
|
|
function buildToc(coll, k, level, ctx) {
|
|
|
if (k >= coll.length || coll[k].level <= level) {
|
|
|
return k;
|
|
|
}
|
|
|
var node = coll[k];
|
|
|
ctx.push("<li><a href='#" + node.anchor + "'>" + node.text + "</a>");
|
|
|
k++;
|
|
|
var childCtx = [];
|
|
|
k = buildToc(coll, k, node.level, childCtx);
|
|
|
if (childCtx.length > 0) {
|
|
|
ctx.push("<ul>");
|
|
|
childCtx.forEach(function (idm) {
|
|
|
ctx.push(idm);
|
|
|
});
|
|
|
ctx.push("</ul>");
|
|
|
}
|
|
|
ctx.push("</li>");
|
|
|
k = buildToc(coll, k, level, ctx);
|
|
|
return k;
|
|
|
}
|
|
|
function getTocContent() {
|
|
|
buildToc(toc, 0, 0, ctx);
|
|
|
ctx.push("</ul>");
|
|
|
return ctx.join("");
|
|
|
}
|
|
|
var tokenizer = {
|
|
|
heading: function heading(src) {
|
|
|
var cap = headingRegex.exec(src);
|
|
|
if (cap) {
|
|
|
return {
|
|
|
type: 'heading',
|
|
|
raw: cap[0],
|
|
|
depth: cap[1].length,
|
|
|
text: cap[2]
|
|
|
};
|
|
|
}
|
|
|
},
|
|
|
fences: function fences(src) {
|
|
|
var cap = this.rules.block.fences.exec(src);
|
|
|
if (cap) {
|
|
|
var raw = cap[0];
|
|
|
var text = indentCodeCompensation(raw, cap[3] || '');
|
|
|
var lang = cap[2] ? cap[2].trim() : cap[2];
|
|
|
if (['latex', 'katex', 'math'].indexOf(lang) >= 0) {
|
|
|
var id = next_id();
|
|
|
var expression = text;
|
|
|
text = id;
|
|
|
math_expressions[id] = {
|
|
|
type: 'block',
|
|
|
expression: expression
|
|
|
};
|
|
|
}
|
|
|
return {
|
|
|
type: 'code',
|
|
|
raw: raw,
|
|
|
lang: lang,
|
|
|
text: text
|
|
|
};
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
var latexRegex = /(?:\${2})([^\n`]+?)(?:\${2})/gi;
|
|
|
var katex_count = 0;
|
|
|
var next_id = function next_id() {
|
|
|
return "__special_katext_id_".concat(katex_count++, "__");
|
|
|
};
|
|
|
var math_expressions = {};
|
|
|
function getMathExpressions() {
|
|
|
return math_expressions;
|
|
|
}
|
|
|
function resetMathExpressions() {
|
|
|
katex_count = 0;
|
|
|
math_expressions = {};
|
|
|
}
|
|
|
function replace_math_with_ids(text) {
|
|
|
text = text.replace(latexRegex, function (_match, expression) {
|
|
|
var id = next_id();
|
|
|
math_expressions[id] = {
|
|
|
type: 'inline',
|
|
|
expression: expression
|
|
|
};
|
|
|
return id;
|
|
|
});
|
|
|
return text;
|
|
|
}
|
|
|
var original_listitem = renderer.listitem;
|
|
|
renderer.listitem = function (text) {
|
|
|
return original_listitem(replace_math_with_ids(text));
|
|
|
};
|
|
|
var original_paragraph = renderer.paragraph;
|
|
|
renderer.paragraph = function (text) {
|
|
|
return original_paragraph(replace_math_with_ids(text));
|
|
|
};
|
|
|
var original_tablecell = renderer.tablecell;
|
|
|
renderer.tablecell = function (content, flags) {
|
|
|
return original_tablecell(replace_math_with_ids(content), flags);
|
|
|
};
|
|
|
renderer.code = function (code, infostring, escaped) {
|
|
|
var lang = (infostring || '').match(/\S*/)[0];
|
|
|
if (!lang) {
|
|
|
return '<pre class="prettyprint linenums"><code>' + (escaped ? code : (0,helpers.escape)(code, true)) + '</code></pre>';
|
|
|
}
|
|
|
if (['latex', 'katex', 'math'].indexOf(lang) >= 0) {
|
|
|
return "<p class='editormd-tex'>".concat(code, "</p>");
|
|
|
} else {
|
|
|
return "<pre class=\"prettyprint linenums\"><code class=\"language-".concat(infostring, "\">").concat(escaped ? code : (0,helpers.escape)(code, true), "</code></pre>\n");
|
|
|
}
|
|
|
};
|
|
|
renderer.heading = function (text, level, raw) {
|
|
|
var anchor = this.options.headerPrefix + raw.toLowerCase().replace(/[^\w\\u4e00-\\u9fa5]]+/g, '-');
|
|
|
toc.push({
|
|
|
anchor: anchor,
|
|
|
level: level,
|
|
|
text: text
|
|
|
});
|
|
|
return '<h' + level + ' id="' + anchor + '">' + text + '</h' + level + '>';
|
|
|
};
|
|
|
marked_default().setOptions({
|
|
|
silent: true,
|
|
|
gfm: true,
|
|
|
pedantic: false
|
|
|
});
|
|
|
marked_default().use({
|
|
|
tokenizer: tokenizer,
|
|
|
renderer: renderer
|
|
|
});
|
|
|
/* harmony default export */ var utils_marked = ((marked_default()));
|
|
|
// EXTERNAL MODULE: ./node_modules/_code-prettify@0.1.0@code-prettify/src/prettify.js
|
|
|
var prettify = __webpack_require__(64018);
|
|
|
// EXTERNAL MODULE: ./node_modules/_hls.js@1.4.13@hls.js/dist/hls.mjs
|
|
|
var dist_hls = __webpack_require__(9029);
|
|
|
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
|
|
|
var env = __webpack_require__(78130);
|
|
|
// EXTERNAL MODULE: ./node_modules/_katex@0.11.1@katex/dist/katex.js
|
|
|
var katex = __webpack_require__(15342);
|
|
|
// EXTERNAL MODULE: ./node_modules/_uuid@8.3.0@uuid/dist/esm-browser/v4.js + 4 modules
|
|
|
var v4 = __webpack_require__(1012);
|
|
|
// EXTERNAL MODULE: ./src/components/PreviewAll/index.tsx + 1 modules
|
|
|
var PreviewAll = __webpack_require__(19480);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/components/RenderHtml/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var ADD_MULTI = '@▁▁@';
|
|
|
var ADD_SINGLE = '@▁@';
|
|
|
var preRegex = /<pre[^>]*>/g;
|
|
|
function _unescape(str) {
|
|
|
var div = document.createElement('div');
|
|
|
div.innerHTML = str;
|
|
|
return div.childNodes.length === 0 ? '' : div.childNodes[0].nodeValue;
|
|
|
}
|
|
|
/* harmony default export */ var RenderHtml = (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,
|
|
|
_ref$stylesPrev = _ref.stylesPrev,
|
|
|
stylesPrev = _ref$stylesPrev === void 0 ? {} : _ref$stylesPrev,
|
|
|
highlightKeywords = _ref.highlightKeywords,
|
|
|
showProgramFill = _ref.showProgramFill,
|
|
|
isProgramFill = _ref.isProgramFill,
|
|
|
_ref$disabledFill = _ref.disabledFill,
|
|
|
disabledFill = _ref$disabledFill === void 0 ? false : _ref$disabledFill,
|
|
|
programFillValue = _ref.programFillValue,
|
|
|
_ref$onFillChange = _ref.onFillChange,
|
|
|
onFillChange = _ref$onFillChange === void 0 ? function (value) {} : _ref$onFillChange,
|
|
|
_ref$onFillBlur = _ref.onFillBlur,
|
|
|
onFillBlur = _ref$onFillBlur === void 0 ? function () {} : _ref$onFillBlur;
|
|
|
var str = String(value);
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(""),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
data = _useState2[0],
|
|
|
setData = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)("office"),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
type = _useState4[0],
|
|
|
setType = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
projectValue = _useState6[0],
|
|
|
setProjectValue = _useState6[1];
|
|
|
var classNamesRef = (0,_react_17_0_2_react.useRef)("a" + (0,v4/* default */.Z)());
|
|
|
var formObj = {};
|
|
|
var createInput = function createInput(a, num) {
|
|
|
// const wrap = document.createElement("span")
|
|
|
// wrap.className =
|
|
|
var input = document.createElement(a === ADD_SINGLE ? "input" : "textarea");
|
|
|
input.style.width = "100%";
|
|
|
input.style.height = a === ADD_SINGLE ? "40px" : "151px";
|
|
|
input.rows = 5;
|
|
|
input.spellcheck = false;
|
|
|
input.name = "edu-program-fill";
|
|
|
input.placeholder = "请输入";
|
|
|
input.dataset.id = num;
|
|
|
var key = Object.keys(formObj).length;
|
|
|
formObj[key] = input;
|
|
|
return "<span class=\"edu-program-fill-wrap ".concat(a === ADD_SINGLE ? "" : "show", "\" style=\"width:").concat(a === ADD_SINGLE ? "200px" : "100%", "\"><span>").concat(input.outerHTML, "<span class=\"edu-program-fill-score\"></span></span></span>");
|
|
|
};
|
|
|
var formatMD = function formatMD(rs) {
|
|
|
return rs.replace(/<style.*?>([\s\S]+?)<\/style>/gim, function (_, css) {
|
|
|
var _css = css.replace(/(\n|\r)/g, "").split("}");
|
|
|
var arr = [];
|
|
|
_css.map(function (item) {
|
|
|
if (item != '') {
|
|
|
arr.push(".".concat(classNamesRef.current, " ").concat(item));
|
|
|
}
|
|
|
});
|
|
|
return "<style>".concat(arr.join("}"), "</style>");
|
|
|
});
|
|
|
};
|
|
|
var html = (0,_react_17_0_2_react.useMemo)(function () {
|
|
|
try {
|
|
|
var reg = /\(\s+\/api\/attachments\/|\(\/api\/attachments\/|\(\/attachments\/download\//g;
|
|
|
var reg2 = /\"\/api\/attachments\/|\"\/attachments\/download\//g;
|
|
|
var reg3 = /\(\s+\/files\/uploads\/|\"\/files\/uploads\//g;
|
|
|
str = str.replace(reg, "(" + env/* default */.Z.API_SERVER + "/api/attachments/").replace(reg2, '"' + env/* default */.Z.API_SERVER + "/api/attachments/").replace(reg3, '"' + env/* default */.Z.API_SERVER + "/files/uploads/").replaceAll("http://video.educoder", "https://video.educoder").replaceAll("http://www.educoder.net/api", "https://data.educoder.net/api").replaceAll("https://www.educoder.net/api", "https://data.educoder.net/api").replace(/\r\n/g, "\n");
|
|
|
// str = str.replace(new RegExp("(?<!\\n)\\n(?!\\n)", "g"), " \n")
|
|
|
} catch (e) {}
|
|
|
;
|
|
|
if (showProgramFill) {
|
|
|
var num = -1;
|
|
|
str = str.replaceAll("<", "<").replaceAll(">", ">").replace(/(@▁▁@|@▁@)/g, function (a, b, c) {
|
|
|
++num;
|
|
|
return createInput(a, num);
|
|
|
});
|
|
|
return "<pre style=\"background:#fff;padding:4px\">".concat(formatMD(str || ""), "</pre>");
|
|
|
}
|
|
|
var rs = utils_marked(str);
|
|
|
rs = formatMD(rs);
|
|
|
var math_expressions = getMathExpressions();
|
|
|
if (str.match(/\[TOC\]/)) {
|
|
|
rs = rs.replace('<p>[TOC]</p>', getTocContent());
|
|
|
cleanToc();
|
|
|
}
|
|
|
rs = rs.replace(/(__special_katext_id_\d+__)/g, function (_match, capture) {
|
|
|
var _math_expressions$cap = math_expressions[capture],
|
|
|
type = _math_expressions$cap.type,
|
|
|
expression = _math_expressions$cap.expression;
|
|
|
return (0,katex.renderToString)(_unescape(expression) || '', {
|
|
|
displayMode: type === 'block',
|
|
|
throwOnError: false,
|
|
|
output: 'html'
|
|
|
});
|
|
|
});
|
|
|
rs = rs.replace(/▁/g, '▁▁▁');
|
|
|
resetMathExpressions();
|
|
|
// return dompurify.sanitize(rs)
|
|
|
var dom = document.createElement('div');
|
|
|
dom.innerHTML = rs;
|
|
|
if (highlightKeywords) {
|
|
|
var escapedKeywords = highlightKeywords.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
|
findKeyword(dom, escapedKeywords);
|
|
|
return dom.innerHTML;
|
|
|
}
|
|
|
if (showTextOnly) {
|
|
|
return dom.innerText;
|
|
|
}
|
|
|
setTimeout(function () {
|
|
|
return onLoad();
|
|
|
}, 500);
|
|
|
return dom.innerHTML;
|
|
|
}, [str, highlightKeywords]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (el.current) {
|
|
|
var inputs = el.current.querySelectorAll(["input", "textarea"]);
|
|
|
inputs.forEach(function (input) {
|
|
|
input.oninput = onInput;
|
|
|
input.onblur = onBlur;
|
|
|
});
|
|
|
}
|
|
|
}, [projectValue]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (!!(programFillValue !== null && programFillValue !== void 0 && programFillValue.length)) {
|
|
|
var scoreDom = el.current.querySelectorAll(".edu-program-fill-score");
|
|
|
var dom = el.current.querySelectorAll('[name="edu-program-fill"]');
|
|
|
var _iterator = createForOfIteratorHelper_default()(dom.entries()),
|
|
|
_step;
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var _programFillValue$k;
|
|
|
var _step$value = slicedToArray_default()(_step.value, 2),
|
|
|
k = _step$value[0],
|
|
|
i = _step$value[1];
|
|
|
i.value = (_programFillValue$k = programFillValue[k]) === null || _programFillValue$k === void 0 ? void 0 : _programFillValue$k.value;
|
|
|
if (programFillValue[k].type === "warning") {
|
|
|
i.className = "program-fill-warning";
|
|
|
} else if (programFillValue[k].type === "success") {
|
|
|
i.className = "program-fill-success";
|
|
|
} else {
|
|
|
i.className = "";
|
|
|
}
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
var _iterator2 = createForOfIteratorHelper_default()(scoreDom.entries()),
|
|
|
_step2;
|
|
|
try {
|
|
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
|
var _programFillValue$_k, _programFillValue$_k2;
|
|
|
var _step2$value = slicedToArray_default()(_step2.value, 2),
|
|
|
_k = _step2$value[0],
|
|
|
_i = _step2$value[1];
|
|
|
_i.innerHTML = (_programFillValue$_k = programFillValue[_k]) !== null && _programFillValue$_k !== void 0 && _programFillValue$_k.score ? "".concat((_programFillValue$_k2 = programFillValue[_k]) === null || _programFillValue$_k2 === void 0 ? void 0 : _programFillValue$_k2.score, "\u5206") : "";
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator2.e(err);
|
|
|
} finally {
|
|
|
_iterator2.f();
|
|
|
}
|
|
|
setProjectValue(programFillValue);
|
|
|
}
|
|
|
}, [programFillValue]);
|
|
|
var onInput = function onInput(e) {
|
|
|
projectValue[e.target.dataset.id] = projectValue[e.target.dataset.id] || {};
|
|
|
projectValue[e.target.dataset.id]["value"] = e.target.value;
|
|
|
setProjectValue(toConsumableArray_default()(projectValue));
|
|
|
onFillChange(projectValue, e.target.dataset.id);
|
|
|
};
|
|
|
var onBlur = function onBlur(e) {
|
|
|
projectValue[e.target.dataset.id] = projectValue[e.target.dataset.id] || {};
|
|
|
projectValue[e.target.dataset.id]["value"] = e.target.value;
|
|
|
setProjectValue(toConsumableArray_default()(projectValue));
|
|
|
onFillBlur(projectValue, e.target.dataset.id);
|
|
|
};
|
|
|
function findKeyword(node, keyword) {
|
|
|
return node.childNodes.forEach(function (childNode) {
|
|
|
if (childNode.childNodes.length > 0) {
|
|
|
findKeyword(childNode, keyword);
|
|
|
} else if (childNode.nodeName !== "IMG") {
|
|
|
if (childNode.innerHTML) {
|
|
|
var _childNode$innerHTML;
|
|
|
childNode.innerHTML = (_childNode$innerHTML = childNode.innerHTML) === null || _childNode$innerHTML === void 0 ? void 0 : _childNode$innerHTML.replace(new RegExp(keyword, "gi"), '<span style="color:#0152d9;background-color:#1890ff33">$&</span>');
|
|
|
} else {
|
|
|
var dom = document.createElement("span");
|
|
|
dom.innerHTML = childNode.textContent.replace(new RegExp(keyword, "gi"), '<span style="color:#0152d9;background-color:#1890ff33">$&</span>');
|
|
|
childNode.replaceWith(dom);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// return dom.childNodes.forEach((node:any) => {
|
|
|
// console.log("nodeLen:",node.childNodes.length)
|
|
|
// if(node.childNodes.length > 0){
|
|
|
// debugger
|
|
|
// // findKeyword(dom.childNodes,keyword)
|
|
|
// }else{
|
|
|
// if(node.nodeName !== "#text"){
|
|
|
// node.innerHTML = node.innerHTML.replaceAll(keyword,`<span class="c-blue">${keyword}</span>`)
|
|
|
// console.log("node:",node,dom,node.nodeName,node.innerHTML,node.childNodes.length)
|
|
|
// debugger
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
// return node
|
|
|
// });
|
|
|
}
|
|
|
|
|
|
var el = (0,_react_17_0_2_react.useRef)();
|
|
|
lines['WebkitLineClamp'] = showLines;
|
|
|
if (showLines) {
|
|
|
style = objectSpread2_default()(objectSpread2_default()({}, style), lines);
|
|
|
}
|
|
|
function onAncherHandler(e) {
|
|
|
var target = e.target;
|
|
|
if (target.tagName.toUpperCase() === 'A') {
|
|
|
var ancher = target.getAttribute('href');
|
|
|
if (ancher.indexOf("office") > -1) {
|
|
|
e.preventDefault();
|
|
|
setData(ancher);
|
|
|
setType("office");
|
|
|
} else if (ancher.indexOf("application/pdf") > -1) {
|
|
|
e.preventDefault();
|
|
|
setData(ancher);
|
|
|
setType("pdf");
|
|
|
} else if (ancher.indexOf("text/html") > -1) {
|
|
|
e.preventDefault();
|
|
|
setData(ancher);
|
|
|
setType("html");
|
|
|
} else if (ancher.startsWith('#')) {
|
|
|
e.preventDefault();
|
|
|
var viewEl = document.getElementById(ancher.replace('#', ''));
|
|
|
if (viewEl) {
|
|
|
viewEl.scrollIntoView(true);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
var onLoad = function onLoad() {
|
|
|
var _el$current;
|
|
|
var videoElement = (_el$current = el.current) === null || _el$current === void 0 ? void 0 : _el$current.querySelectorAll('video');
|
|
|
videoElement === null || videoElement === void 0 || videoElement.forEach(function (item) {
|
|
|
item.oncontextmenu = function () {
|
|
|
return false;
|
|
|
};
|
|
|
if (item.src.indexOf('.m3u8') > -1) {
|
|
|
if (item.canPlayType('application/vnd.apple.mpegurl')) {} else if (dist_hls/* default */.Z.isSupported()) {
|
|
|
var hls = new dist_hls/* default */.Z();
|
|
|
hls.loadSource(item.src);
|
|
|
hls.attachMedia(item);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (el.current && html) {
|
|
|
if (html.match(preRegex)) {
|
|
|
window.PR.prettyPrint();
|
|
|
}
|
|
|
}
|
|
|
if (el.current) {
|
|
|
el.current.addEventListener('click', onAncherHandler);
|
|
|
return function () {
|
|
|
var _el$current2;
|
|
|
(_el$current2 = el.current) === null || _el$current2 === void 0 || _el$current2.removeEventListener('click', onAncherHandler);
|
|
|
resetMathExpressions();
|
|
|
cleanToc();
|
|
|
};
|
|
|
}
|
|
|
}, [html, el.current, onAncherHandler]);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [showTextOnly && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
ref: el,
|
|
|
children: html
|
|
|
}), !showTextOnly && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
ref: el,
|
|
|
style: objectSpread2_default()({}, style),
|
|
|
className: "".concat(className ? className : '', " ").concat(disabledFill ? "disabled-fill" : "", " markdown-body ").concat(classNamesRef.current),
|
|
|
dangerouslySetInnerHTML: {
|
|
|
__html: html
|
|
|
}
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(PreviewAll/* default */.Z, {
|
|
|
close: true,
|
|
|
data: data,
|
|
|
type: !!(data !== null && data !== void 0 && data.length) ? type : "",
|
|
|
style: objectSpread2_default()({}, stylesPrev),
|
|
|
onClose: function onClose() {
|
|
|
return setData("");
|
|
|
}
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 40807:
|
|
|
/*!******************************************************!*\
|
|
|
!*** ./src/components/Spinner/index.tsx + 1 modules ***!
|
|
|
\******************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ Spinner; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 15 modules
|
|
|
var _umi_production_exports = __webpack_require__(49266);
|
|
|
;// CONCATENATED MODULE: ./src/components/Spinner/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var Spinnermodules = ({"ldsRing":"ldsRing___mpBZC","idsRingWrapper":"idsRingWrapper___Of9_n","ldsring":"ldsring___o0w2t"});
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/components/Spinner/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* harmony default export */ var Spinner = (function (_ref) {
|
|
|
var message = _ref.message,
|
|
|
className = _ref.className,
|
|
|
children = _ref.children,
|
|
|
_ref$style = _ref.style,
|
|
|
style = _ref$style === void 0 ? {} : _ref$style;
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "".concat(Spinnermodules.idsRingWrapper, " ").concat(className),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Spinnermodules.ldsRing,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {})]
|
|
|
}), message ? /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
style: style,
|
|
|
children: message
|
|
|
}) : null, /*#__PURE__*/(0,jsx_runtime.jsx)(_umi_production_exports.Outlet, {})]
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 16664:
|
|
|
/*!************************************************************!*\
|
|
|
!*** ./src/components/image-preview/index.tsx + 1 modules ***!
|
|
|
\************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ image_preview; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(11006);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
;// CONCATENATED MODULE: ./src/components/image-preview/index.less
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
// EXTERNAL MODULE: ./src/components/mediator.js
|
|
|
var mediator = __webpack_require__(6655);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/image/index.js + 26 modules
|
|
|
var es_image = __webpack_require__(89536);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/components/image-preview/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* harmony default export */ var image_preview = (function () {
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(''),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
url = _useState2[0],
|
|
|
setUrl = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(0),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
deg = _useState4[0],
|
|
|
setDeg = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
width = _useState6[0],
|
|
|
setwidth = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
height = _useState8[0],
|
|
|
setheight = _useState8[1];
|
|
|
// const [movable, setmovable] = useState<any>(false);
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
down = _useState10[0],
|
|
|
setdown = _useState10[1];
|
|
|
var saveUrl = (0,_react_17_0_2_react.useRef)('');
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var unSub = mediator/* default */.Z.subscribe('preview-image', function (value) {
|
|
|
setUrl(value);
|
|
|
// window.document.body
|
|
|
// document.body.style.height='100%'
|
|
|
console.log(imgref.current);
|
|
|
document.body.style.overflow = 'hidden';
|
|
|
});
|
|
|
return unSub;
|
|
|
}, []);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
document.addEventListener('keydown', onViewEscClose);
|
|
|
return function () {
|
|
|
document.removeEventListener('keydown', onViewEscClose);
|
|
|
};
|
|
|
}, []);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
saveUrl.current = url;
|
|
|
}, [url]);
|
|
|
function onViewEscClose(e) {
|
|
|
if (e.keyCode == 27 && saveUrl.current) {
|
|
|
onClose();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// https://data.educoder.net/api/attachments/1571649
|
|
|
function onClose() {
|
|
|
// document.body.style.height='100%'
|
|
|
document.body.style.overflow = 'auto';
|
|
|
setwidth(undefined);
|
|
|
setheight(undefined);
|
|
|
setDeg(0);
|
|
|
setUrl('');
|
|
|
}
|
|
|
function onRotate() {
|
|
|
setDeg(deg + 90);
|
|
|
}
|
|
|
function big() {
|
|
|
width = imgref.current.width * 1.1;
|
|
|
height = imgref.current.height * 1.1;
|
|
|
setheight(height);
|
|
|
setwidth(width);
|
|
|
}
|
|
|
function small() {
|
|
|
width = imgref.current.width / 1.1;
|
|
|
height = imgref.current.height / 1.1;
|
|
|
setheight(height);
|
|
|
setwidth(width);
|
|
|
}
|
|
|
var maskRef = (0,_react_17_0_2_react.useRef)();
|
|
|
var previewWrapperRef = (0,_react_17_0_2_react.useRef)();
|
|
|
var imgref = (0,_react_17_0_2_react.useRef)();
|
|
|
var handleMaskClick = function handleMaskClick(e) {
|
|
|
if (e.nativeEvent.target === maskRef.current || e.nativeEvent.target === previewWrapperRef.current) {
|
|
|
onClose();
|
|
|
}
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(_react_17_0_2_react.Fragment, {
|
|
|
children: !url ? null : /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "preview-wrp-group",
|
|
|
ref: previewWrapperRef,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_image/* default */.Z, {
|
|
|
className: "image-preview",
|
|
|
src: url,
|
|
|
style: {
|
|
|
display: 'none'
|
|
|
}
|
|
|
|
|
|
// ref={imgref}
|
|
|
,
|
|
|
preview: {
|
|
|
visible: true,
|
|
|
src: url,
|
|
|
movable: false,
|
|
|
onVisibleChange: function onVisibleChange(value) {
|
|
|
setUrl('');
|
|
|
}
|
|
|
},
|
|
|
alt: "\u9884\u89C8\u5927\u56FE"
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 79669:
|
|
|
/*!*************************************************************!*\
|
|
|
!*** ./src/components/markdown-editor/code-block/index.tsx ***!
|
|
|
\*************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ h: function() { return /* binding */ MyCodeMirror; }
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectSpread2.js */ 26801);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js */ 11006);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ 59301);
|
|
|
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd */ 57809);
|
|
|
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd */ 78241);
|
|
|
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd */ 3113);
|
|
|
/* harmony import */ var codemirror__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! codemirror */ 89780);
|
|
|
/* 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 */ 7042);
|
|
|
/* harmony import */ var codemirror_theme_blackboard_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! codemirror/theme/blackboard.css */ 93202);
|
|
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ 37712);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Option = antd__WEBPACK_IMPORTED_MODULE_7__["default"].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_SJ5m_develop_node_modules_babel_runtime_7_23_2_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_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_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"] */ .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"], {
|
|
|
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"] */ .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_SJ5m_develop_node_modules_babel_runtime_7_23_2_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_SJ5m_develop_node_modules_babel_runtime_7_23_2_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
|
|
|
})
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 55952:
|
|
|
/*!***************************************************************!*\
|
|
|
!*** ./src/components/markdown-editor/index.tsx + 14 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@7.23.2@@babel/runtime/helpers/createForOfIteratorHelper.js
|
|
|
var createForOfIteratorHelper = __webpack_require__(98190);
|
|
|
var createForOfIteratorHelper_default = /*#__PURE__*/__webpack_require__.n(createForOfIteratorHelper);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(11006);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/defineProperty.js
|
|
|
var defineProperty = __webpack_require__(22060);
|
|
|
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/lib/codemirror.js
|
|
|
var codemirror = __webpack_require__(89780);
|
|
|
var codemirror_default = /*#__PURE__*/__webpack_require__.n(codemirror);
|
|
|
// EXTERNAL MODULE: ./node_modules/_resize-observer-polyfill@1.5.1@resize-observer-polyfill/dist/ResizeObserver.es.js
|
|
|
var ResizeObserver_es = __webpack_require__(76374);
|
|
|
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/lib/codemirror.css
|
|
|
var lib_codemirror = __webpack_require__(7042);
|
|
|
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/addon/edit/closetag.js
|
|
|
var closetag = __webpack_require__(6313);
|
|
|
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/addon/edit/closebrackets.js
|
|
|
var closebrackets = __webpack_require__(25717);
|
|
|
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/addon/display/placeholder.js
|
|
|
var placeholder = __webpack_require__(99498);
|
|
|
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/mode/markdown/markdown.js
|
|
|
var markdown = __webpack_require__(25419);
|
|
|
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/mode/stex/stex.js
|
|
|
var stex = __webpack_require__(67549);
|
|
|
;// 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__(11436);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// 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_17_0_2_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@7.23.2@@babel/runtime/helpers/objectSpread2.js
|
|
|
var objectSpread2 = __webpack_require__(26801);
|
|
|
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: 'md-iconfont icon-bold',
|
|
|
actionName: 'bold'
|
|
|
}, {
|
|
|
title: '斜体',
|
|
|
icon: 'md-iconfont icon-italic',
|
|
|
actionName: 'italic'
|
|
|
}, '|', {
|
|
|
title: '无序列表',
|
|
|
icon: 'md-iconfont icon-unorder-list',
|
|
|
actionName: 'list-ul'
|
|
|
}, {
|
|
|
title: '有序列表',
|
|
|
icon: 'md-iconfont icon-order-list',
|
|
|
actionName: 'list-ol'
|
|
|
}, '|', {
|
|
|
title: '行内代码',
|
|
|
icon: 'md-iconfont icon-code',
|
|
|
actionName: 'code'
|
|
|
}, {
|
|
|
title: '代码块(多语言风格)',
|
|
|
icon: 'md-iconfont icon-file-code',
|
|
|
actionName: 'code-block'
|
|
|
}, {
|
|
|
title: '链接',
|
|
|
icon: 'md-iconfont icon-link',
|
|
|
actionName: 'link'
|
|
|
}, '|', {
|
|
|
title: '行内公式',
|
|
|
icon: 'md-iconfont icon-sum',
|
|
|
actionName: 'inline-latex'
|
|
|
}, {
|
|
|
title: '多行公式',
|
|
|
icon: 'md-iconfont icon-formula',
|
|
|
actionName: 'latex'
|
|
|
}, '|', {
|
|
|
title: '添加图片',
|
|
|
icon: 'md-iconfont icon-picture',
|
|
|
actionName: 'upload-image'
|
|
|
}, {
|
|
|
title: '插入画图',
|
|
|
icon: 'iconfont icon-sheji',
|
|
|
actionName: 'draw-image'
|
|
|
}, {
|
|
|
title: '插入流程图',
|
|
|
icon: 'iconfont icon-liucheng',
|
|
|
actionName: 'add-flowchart'
|
|
|
}, {
|
|
|
title: '表格',
|
|
|
icon: 'md-iconfont icon-table',
|
|
|
actionName: 'add-table'
|
|
|
}, '|', {
|
|
|
title: '换行',
|
|
|
icon: 'md-iconfont icon-minus',
|
|
|
actionName: 'line-break'
|
|
|
}, {
|
|
|
title: '清空',
|
|
|
icon: 'md-iconfont 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: "".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,
|
|
|
extraUse = _ref2.extraUse;
|
|
|
var icons = [].concat(DEFAULTICONS, [{
|
|
|
title: "".concat(watch ? '关闭实时预览' : '开启实时预览'),
|
|
|
icon: "".concat(watch ? 'md-iconfont icon-eye-slash' : 'md-iconfont 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: "md-iconfont 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: "md-iconfont 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: "md-iconfont 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: "md-iconfont 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"
|
|
|
})
|
|
|
})
|
|
|
}), extraUse && /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
|
|
|
children: extraUse
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
|
|
|
className: "btn-full-screen",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, {
|
|
|
icon: "".concat(fullScreen ? 'md-iconfont icon-shrink' : 'md-iconfont icon-enlarge'),
|
|
|
title: fullScreen ? '关闭全屏' : '开启全屏',
|
|
|
actionName: "trigger-full-screen",
|
|
|
onActionCallback: onActionCallback
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
// EXTERNAL MODULE: ./src/components/modal.tsx
|
|
|
var modal = __webpack_require__(83016);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/form/index.js + 19 modules
|
|
|
var es_form = __webpack_require__(78241);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 5 modules
|
|
|
var input = __webpack_require__(1056);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
|
|
|
var es_button = __webpack_require__(3113);
|
|
|
;// 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 */.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 */.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__(79669);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules
|
|
|
var message = __webpack_require__(8591);
|
|
|
;// 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__(80330);
|
|
|
;// CONCATENATED MODULE: ./src/components/markdown-editor/upload-image/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var useForm = es_form/* default */.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];
|
|
|
function onSubmit(values) {
|
|
|
callback(values);
|
|
|
}
|
|
|
function onAddUrl(data, file) {
|
|
|
if (data.status === -1) {
|
|
|
message/* default */.ZP.error(data.message);
|
|
|
return;
|
|
|
}
|
|
|
form.setFieldsValue({
|
|
|
src: "/api/attachments/".concat(data.id),
|
|
|
type: file.type
|
|
|
});
|
|
|
}
|
|
|
function onFileChange(e) {
|
|
|
var file = e.target.files[0];
|
|
|
uploadImage(file, onAddUrl);
|
|
|
}
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, objectSpread2_default()(objectSpread2_default()({
|
|
|
form: form
|
|
|
}, upload_image_formItemLayout), {}, {
|
|
|
className: "upload-image-panel",
|
|
|
onFinish: onSubmit,
|
|
|
style: {
|
|
|
width: 470,
|
|
|
overflow: "hidden"
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.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 */.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 */.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 */.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@5.9.0@antd/es/row/index.js
|
|
|
var row = __webpack_require__(95237);
|
|
|
// EXTERNAL MODULE: ./src/components/ImageDimensions/index.tsx + 1 modules
|
|
|
var ImageDimensions = __webpack_require__(67589);
|
|
|
;// CONCATENATED MODULE: ./src/components/markdown-editor/draw-image/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* harmony default export */ var draw_image = (function (_ref) {
|
|
|
var callback = _ref.callback,
|
|
|
onCancel = _ref.onCancel;
|
|
|
var canvas = document.createElement('canvas');
|
|
|
var context = canvas.getContext('2d');
|
|
|
canvas.width = 1000;
|
|
|
canvas.height = 800;
|
|
|
context.fillStyle = '#ffffff';
|
|
|
context.fillRect(0, 0, canvas.width, canvas.height);
|
|
|
var base64Image = canvas.toDataURL('image/png');
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(row/* default */.Z, {
|
|
|
style: {
|
|
|
height: "100vh"
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(ImageDimensions/* default */.Z, {
|
|
|
fullWidth: true,
|
|
|
noAssociationId: true,
|
|
|
showFullTools: true,
|
|
|
data: {
|
|
|
src: base64Image,
|
|
|
visible: true,
|
|
|
title: String(Date.now())
|
|
|
},
|
|
|
onOk: function onOk(data) {
|
|
|
callback({
|
|
|
src: data.url
|
|
|
});
|
|
|
},
|
|
|
onClose: onCancel
|
|
|
})
|
|
|
});
|
|
|
});
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/regeneratorRuntime.js
|
|
|
var regeneratorRuntime = __webpack_require__(10574);
|
|
|
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/asyncToGenerator.js
|
|
|
var asyncToGenerator = __webpack_require__(39343);
|
|
|
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/toConsumableArray.js
|
|
|
var toConsumableArray = __webpack_require__(93923);
|
|
|
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_gojs3@2.3.10@gojs3/release/go-module.js
|
|
|
var go_module = __webpack_require__(12378);
|
|
|
;// CONCATENATED MODULE: ./public/js/go/DrawCommandHandler.js
|
|
|
|
|
|
|
|
|
/*
|
|
|
* Copyright (C) 1998-2023 by Northwoods Software Corporation. All Rights Reserved.
|
|
|
*/
|
|
|
|
|
|
/*
|
|
|
* This is an extension and not part of the main GoJS library.
|
|
|
* Note that the API for this class may change with any version, even point releases.
|
|
|
* If you intend to use an extension in production, you should copy the code to your own source directory.
|
|
|
* Extensions can be found in the GoJS kit under the extensions or extensionsJSM folders.
|
|
|
* See the Extensions intro page (https://gojs.net/latest/intro/extensions.html) for more information.
|
|
|
*/
|
|
|
|
|
|
/**
|
|
|
* @constructor
|
|
|
* @extends CommandHandler
|
|
|
* @class
|
|
|
* This CommandHandler class allows the user to position selected Parts in a diagram
|
|
|
* relative to the first part selected, in addition to overriding the doKeyDown method
|
|
|
* of the CommandHandler for handling the arrow keys in additional manners.
|
|
|
* <p>
|
|
|
* Typical usage:
|
|
|
* <pre>
|
|
|
* new go.Diagram("myDiagramDiv",
|
|
|
* {
|
|
|
* commandHandler: $(DrawCommandHandler),
|
|
|
* . . .
|
|
|
* }
|
|
|
* )
|
|
|
* </pre>
|
|
|
* or:
|
|
|
* <pre>
|
|
|
* myDiagram.commandHandler = new DrawCommandHandler();
|
|
|
* </pre>
|
|
|
*/
|
|
|
function DrawCommandHandler() {
|
|
|
go.CommandHandler.call(this);
|
|
|
this._arrowKeyBehavior = "move";
|
|
|
this._pasteOffset = new go.Point(10, 10);
|
|
|
this._lastPasteOffset = new go.Point(0, 0);
|
|
|
}
|
|
|
go.Diagram.inherit(DrawCommandHandler, go.CommandHandler);
|
|
|
|
|
|
/**
|
|
|
* This controls whether or not the user can invoke the {@link #alignLeft}, {@link #alignRight},
|
|
|
* {@link #alignTop}, {@link #alignBottom}, {@link #alignCenterX}, {@link #alignCenterY} commands.
|
|
|
* @this {DrawCommandHandler}
|
|
|
* @return {boolean}
|
|
|
* This returns true:
|
|
|
* if the diagram is not {@link Diagram#isReadOnly},
|
|
|
* if the model is not {@link Model#isReadOnly}, and
|
|
|
* if there are at least two selected {@link Part}s.
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.canAlignSelection = function () {
|
|
|
var diagram = this.diagram;
|
|
|
if (diagram === null || diagram.isReadOnly || diagram.isModelReadOnly) return false;
|
|
|
if (diagram.selection.count < 2) return false;
|
|
|
return true;
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Aligns selected parts along the left-most edge of the left-most part.
|
|
|
* @this {DrawCommandHandler}
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.alignLeft = function () {
|
|
|
var diagram = this.diagram;
|
|
|
diagram.startTransaction("aligning left");
|
|
|
var minPosition = Infinity;
|
|
|
diagram.selection.each(function (current) {
|
|
|
if (current instanceof go.Link) return; // skips over go.Link
|
|
|
minPosition = Math.min(current.position.x, minPosition);
|
|
|
});
|
|
|
diagram.selection.each(function (current) {
|
|
|
if (current instanceof go.Link) return; // skips over go.Link
|
|
|
current.move(new go.Point(minPosition, current.position.y));
|
|
|
});
|
|
|
diagram.commitTransaction("aligning left");
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Aligns selected parts at the right-most edge of the right-most part.
|
|
|
* @this {DrawCommandHandler}
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.alignRight = function () {
|
|
|
var diagram = this.diagram;
|
|
|
diagram.startTransaction("aligning right");
|
|
|
var maxPosition = -Infinity;
|
|
|
diagram.selection.each(function (current) {
|
|
|
if (current instanceof go.Link) return; // skips over go.Link
|
|
|
var rightSideLoc = current.actualBounds.x + current.actualBounds.width;
|
|
|
maxPosition = Math.max(rightSideLoc, maxPosition);
|
|
|
});
|
|
|
diagram.selection.each(function (current) {
|
|
|
if (current instanceof go.Link) return; // skips over go.Link
|
|
|
current.move(new go.Point(maxPosition - current.actualBounds.width, current.position.y));
|
|
|
});
|
|
|
diagram.commitTransaction("aligning right");
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Aligns selected parts at the top-most edge of the top-most part.
|
|
|
* @this {DrawCommandHandler}
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.alignTop = function () {
|
|
|
var diagram = this.diagram;
|
|
|
diagram.startTransaction("alignTop");
|
|
|
var minPosition = Infinity;
|
|
|
diagram.selection.each(function (current) {
|
|
|
if (current instanceof go.Link) return; // skips over go.Link
|
|
|
minPosition = Math.min(current.position.y, minPosition);
|
|
|
});
|
|
|
diagram.selection.each(function (current) {
|
|
|
if (current instanceof go.Link) return; // skips over go.Link
|
|
|
current.move(new go.Point(current.position.x, minPosition));
|
|
|
});
|
|
|
diagram.commitTransaction("alignTop");
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Aligns selected parts at the bottom-most edge of the bottom-most part.
|
|
|
* @this {DrawCommandHandler}
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.alignBottom = function () {
|
|
|
var diagram = this.diagram;
|
|
|
diagram.startTransaction("aligning bottom");
|
|
|
var maxPosition = -Infinity;
|
|
|
diagram.selection.each(function (current) {
|
|
|
if (current instanceof go.Link) return; // skips over go.Link
|
|
|
var bottomSideLoc = current.actualBounds.y + current.actualBounds.height;
|
|
|
maxPosition = Math.max(bottomSideLoc, maxPosition);
|
|
|
});
|
|
|
diagram.selection.each(function (current) {
|
|
|
if (current instanceof go.Link) return; // skips over go.Link
|
|
|
current.move(new go.Point(current.actualBounds.x, maxPosition - current.actualBounds.height));
|
|
|
});
|
|
|
diagram.commitTransaction("aligning bottom");
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Aligns selected parts at the x-value of the center point of the first selected part.
|
|
|
* @this {DrawCommandHandler}
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.alignCenterX = function () {
|
|
|
var diagram = this.diagram;
|
|
|
var firstSelection = diagram.selection.first();
|
|
|
if (!firstSelection) return;
|
|
|
diagram.startTransaction("aligning Center X");
|
|
|
var centerX = firstSelection.actualBounds.x + firstSelection.actualBounds.width / 2;
|
|
|
diagram.selection.each(function (current) {
|
|
|
if (current instanceof go.Link) return; // skips over go.Link
|
|
|
current.move(new go.Point(centerX - current.actualBounds.width / 2, current.actualBounds.y));
|
|
|
});
|
|
|
diagram.commitTransaction("aligning Center X");
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Aligns selected parts at the y-value of the center point of the first selected part.
|
|
|
* @this {DrawCommandHandler}
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.alignCenterY = function () {
|
|
|
var diagram = this.diagram;
|
|
|
var firstSelection = diagram.selection.first();
|
|
|
if (!firstSelection) return;
|
|
|
diagram.startTransaction("aligning Center Y");
|
|
|
var centerY = firstSelection.actualBounds.y + firstSelection.actualBounds.height / 2;
|
|
|
diagram.selection.each(function (current) {
|
|
|
if (current instanceof go.Link) return; // skips over go.Link
|
|
|
current.move(new go.Point(current.actualBounds.x, centerY - current.actualBounds.height / 2));
|
|
|
});
|
|
|
diagram.commitTransaction("aligning Center Y");
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Aligns selected parts top-to-bottom in order of the order selected.
|
|
|
* Distance between parts can be specified. Default distance is 0.
|
|
|
* @this {DrawCommandHandler}
|
|
|
* @param {number} distance
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.alignColumn = function (distance) {
|
|
|
var diagram = this.diagram;
|
|
|
diagram.startTransaction("align Column");
|
|
|
if (distance === undefined) distance = 0; // for aligning edge to edge
|
|
|
distance = parseFloat(distance);
|
|
|
var selectedParts = new Array();
|
|
|
diagram.selection.each(function (current) {
|
|
|
if (current instanceof go.Link) return; // skips over go.Link
|
|
|
selectedParts.push(current);
|
|
|
});
|
|
|
for (var i = 0; i < selectedParts.length - 1; i++) {
|
|
|
var current = selectedParts[i];
|
|
|
// adds distance specified between parts
|
|
|
var curBottomSideLoc = current.actualBounds.y + current.actualBounds.height + distance;
|
|
|
var next = selectedParts[i + 1];
|
|
|
next.move(new go.Point(current.actualBounds.x, curBottomSideLoc));
|
|
|
}
|
|
|
diagram.commitTransaction("align Column");
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Aligns selected parts left-to-right in order of the order selected.
|
|
|
* Distance between parts can be specified. Default distance is 0.
|
|
|
* @this {DrawCommandHandler}
|
|
|
* @param {number} distance
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.alignRow = function (distance) {
|
|
|
if (distance === undefined) distance = 0; // for aligning edge to edge
|
|
|
distance = parseFloat(distance);
|
|
|
var diagram = this.diagram;
|
|
|
diagram.startTransaction("align Row");
|
|
|
var selectedParts = new Array();
|
|
|
diagram.selection.each(function (current) {
|
|
|
if (current instanceof go.Link) return; // skips over go.Link
|
|
|
selectedParts.push(current);
|
|
|
});
|
|
|
for (var i = 0; i < selectedParts.length - 1; i++) {
|
|
|
var current = selectedParts[i];
|
|
|
// adds distance specified between parts
|
|
|
var curRightSideLoc = current.actualBounds.x + current.actualBounds.width + distance;
|
|
|
var next = selectedParts[i + 1];
|
|
|
next.move(new go.Point(curRightSideLoc, current.actualBounds.y));
|
|
|
}
|
|
|
diagram.commitTransaction("align Row");
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* This controls whether or not the user can invoke the {@link #rotate} command.
|
|
|
* @this {DrawCommandHandler}
|
|
|
* @param {number=} angle the positive (clockwise) or negative (counter-clockwise) change in the rotation angle of each Part, in degrees.
|
|
|
* @return {boolean}
|
|
|
* This returns true:
|
|
|
* if the diagram is not {@link Diagram#isReadOnly},
|
|
|
* if the model is not {@link Model#isReadOnly}, and
|
|
|
* if there is at least one selected {@link Part}.
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.canRotate = function (number) {
|
|
|
var diagram = this.diagram;
|
|
|
if (diagram === null || diagram.isReadOnly || diagram.isModelReadOnly) return false;
|
|
|
if (diagram.selection.count < 1) return false;
|
|
|
return true;
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Change the angle of the parts connected with the given part. This is in the command handler
|
|
|
* so it can be easily accessed for the purpose of creating commands that change the rotation of a part.
|
|
|
* @this {DrawCommandHandler}
|
|
|
* @param {number=} angle the positive (clockwise) or negative (counter-clockwise) change in the rotation angle of each Part, in degrees.
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.rotate = function (angle) {
|
|
|
if (angle === undefined) angle = 90;
|
|
|
var diagram = this.diagram;
|
|
|
diagram.startTransaction("rotate " + angle.toString());
|
|
|
var diagram = this.diagram;
|
|
|
diagram.selection.each(function (current) {
|
|
|
if (current instanceof go.Link || current instanceof go.Group) return; // skips over Links and Groups
|
|
|
current.angle += angle;
|
|
|
});
|
|
|
diagram.commitTransaction("rotate " + angle.toString());
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Change the z-ordering of selected parts to pull them forward, in front of all other parts
|
|
|
* in their respective layers.
|
|
|
* All unselected parts in each layer with a selected Part with a non-numeric {@link Part#zOrder} will get a zOrder of zero.
|
|
|
* @this {DrawCommandHandler}
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.pullToFront = function () {
|
|
|
var diagram = this.diagram;
|
|
|
diagram.startTransaction("pullToFront");
|
|
|
// find the affected Layers
|
|
|
var layers = new go.Map();
|
|
|
diagram.selection.each(function (part) {
|
|
|
layers.set(part.layer, 0);
|
|
|
});
|
|
|
// find the maximum zOrder in each Layer
|
|
|
layers.iteratorKeys.each(function (layer) {
|
|
|
var max = 0;
|
|
|
layer.parts.each(function (part) {
|
|
|
if (part.isSelected) return;
|
|
|
var z = part.zOrder;
|
|
|
if (isNaN(z)) {
|
|
|
part.zOrder = 0;
|
|
|
} else {
|
|
|
max = Math.max(max, z);
|
|
|
}
|
|
|
});
|
|
|
layers.set(layer, max);
|
|
|
});
|
|
|
// assign each selected Part.zOrder to the computed value for each Layer
|
|
|
diagram.selection.each(function (part) {
|
|
|
DrawCommandHandler._assignZOrder(part, layers.get(part.layer) + 1);
|
|
|
});
|
|
|
diagram.commitTransaction("pullToFront");
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Change the z-ordering of selected parts to push them backward, behind of all other parts
|
|
|
* in their respective layers.
|
|
|
* All unselected parts in each layer with a selected Part with a non-numeric {@link Part#zOrder} will get a zOrder of zero.
|
|
|
* @this {DrawCommandHandler}
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.pushToBack = function () {
|
|
|
var diagram = this.diagram;
|
|
|
diagram.startTransaction("pushToBack");
|
|
|
// find the affected Layers
|
|
|
var layers = new go.Map();
|
|
|
diagram.selection.each(function (part) {
|
|
|
layers.set(part.layer, 0);
|
|
|
});
|
|
|
// find the minimum zOrder in each Layer
|
|
|
layers.iteratorKeys.each(function (layer) {
|
|
|
var min = 0;
|
|
|
layer.parts.each(function (part) {
|
|
|
if (part.isSelected) return;
|
|
|
var z = part.zOrder;
|
|
|
if (isNaN(z)) {
|
|
|
part.zOrder = 0;
|
|
|
} else {
|
|
|
min = Math.min(min, z);
|
|
|
}
|
|
|
});
|
|
|
layers.set(layer, min);
|
|
|
});
|
|
|
// assign each selected Part.zOrder to the computed value for each Layer
|
|
|
diagram.selection.each(function (part) {
|
|
|
DrawCommandHandler._assignZOrder(part,
|
|
|
// make sure a group's nested nodes are also behind everything else
|
|
|
layers.get(part.layer) - 1 - DrawCommandHandler._findGroupDepth(part));
|
|
|
});
|
|
|
diagram.commitTransaction("pushToBack");
|
|
|
};
|
|
|
DrawCommandHandler._assignZOrder = function (part, z, root) {
|
|
|
if (root === undefined) root = part;
|
|
|
if (part.layer === root.layer) part.zOrder = z;
|
|
|
if (part instanceof go.Group) {
|
|
|
part.memberParts.each(function (m) {
|
|
|
DrawCommandHandler._assignZOrder(m, z + 1, root);
|
|
|
});
|
|
|
}
|
|
|
};
|
|
|
DrawCommandHandler._findGroupDepth = function (part) {
|
|
|
if (part instanceof go.Group) {
|
|
|
var d = 0;
|
|
|
part.memberParts.each(function (m) {
|
|
|
d = Math.max(d, DrawCommandHandler._findGroupDepth(m));
|
|
|
});
|
|
|
return d + 1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* This implements custom behaviors for arrow key keyboard events.
|
|
|
* Set {@link #arrowKeyBehavior} to "select", "move" (the default), "scroll" (the standard behavior), or "none"
|
|
|
* to affect the behavior when the user types an arrow key.
|
|
|
* @this {DrawCommandHandler}*/
|
|
|
DrawCommandHandler.prototype.doKeyDown = function () {
|
|
|
var diagram = this.diagram;
|
|
|
if (diagram === null) return;
|
|
|
var e = diagram.lastInput;
|
|
|
|
|
|
// determines the function of the arrow keys
|
|
|
if (e.key === "Up" || e.key === "Down" || e.key === "Left" || e.key === "Right") {
|
|
|
var behavior = this.arrowKeyBehavior;
|
|
|
if (behavior === "none") {
|
|
|
// no-op
|
|
|
return;
|
|
|
} else if (behavior === "select") {
|
|
|
this._arrowKeySelect();
|
|
|
return;
|
|
|
} else if (behavior === "move") {
|
|
|
this._arrowKeyMove();
|
|
|
return;
|
|
|
} else if (behavior === "tree") {
|
|
|
this._arrowKeyTree();
|
|
|
return;
|
|
|
}
|
|
|
// otherwise drop through to get the default scrolling behavior
|
|
|
}
|
|
|
|
|
|
// otherwise still does all standard commands
|
|
|
go.CommandHandler.prototype.doKeyDown.call(this);
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Collects in an Array all of the non-Link Parts currently in the Diagram.
|
|
|
* @this {DrawCommandHandler}
|
|
|
* @return {Array}
|
|
|
*/
|
|
|
DrawCommandHandler.prototype._getAllParts = function () {
|
|
|
var allParts = new Array();
|
|
|
this.diagram.nodes.each(function (node) {
|
|
|
allParts.push(node);
|
|
|
});
|
|
|
this.diagram.parts.each(function (part) {
|
|
|
allParts.push(part);
|
|
|
});
|
|
|
// note that this ignores Links
|
|
|
return allParts;
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* To be called when arrow keys should move the Diagram.selection.
|
|
|
* @this {DrawCommandHandler}
|
|
|
*/
|
|
|
DrawCommandHandler.prototype._arrowKeyMove = function () {
|
|
|
var diagram = this.diagram;
|
|
|
var e = diagram.lastInput;
|
|
|
// moves all selected parts in the specified direction
|
|
|
var vdistance = 0;
|
|
|
var hdistance = 0;
|
|
|
// if control is being held down, move pixel by pixel. Else, moves by grid cell size
|
|
|
if (e.control || e.meta) {
|
|
|
vdistance = 1;
|
|
|
hdistance = 1;
|
|
|
} else if (diagram.grid !== null) {
|
|
|
var cellsize = diagram.grid.gridCellSize;
|
|
|
hdistance = cellsize.width;
|
|
|
vdistance = cellsize.height;
|
|
|
}
|
|
|
diagram.startTransaction("arrowKeyMove");
|
|
|
diagram.selection.each(function (part) {
|
|
|
if (e.key === "Up") {
|
|
|
part.move(new go.Point(part.actualBounds.x, part.actualBounds.y - vdistance));
|
|
|
} else if (e.key === "Down") {
|
|
|
part.move(new go.Point(part.actualBounds.x, part.actualBounds.y + vdistance));
|
|
|
} else if (e.key === "Left") {
|
|
|
part.move(new go.Point(part.actualBounds.x - hdistance, part.actualBounds.y));
|
|
|
} else if (e.key === "Right") {
|
|
|
part.move(new go.Point(part.actualBounds.x + hdistance, part.actualBounds.y));
|
|
|
}
|
|
|
});
|
|
|
diagram.commitTransaction("arrowKeyMove");
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* To be called when arrow keys should change selection.
|
|
|
* @this {DrawCommandHandler}
|
|
|
*/
|
|
|
DrawCommandHandler.prototype._arrowKeySelect = function () {
|
|
|
var diagram = this.diagram;
|
|
|
var e = diagram.lastInput;
|
|
|
// with a part selected, arrow keys change the selection
|
|
|
// arrow keys + shift selects the additional part in the specified direction
|
|
|
// arrow keys + control toggles the selection of the additional part
|
|
|
var nextPart = null;
|
|
|
if (e.key === "Up") {
|
|
|
nextPart = this._findNearestPartTowards(270);
|
|
|
} else if (e.key === "Down") {
|
|
|
nextPart = this._findNearestPartTowards(90);
|
|
|
} else if (e.key === "Left") {
|
|
|
nextPart = this._findNearestPartTowards(180);
|
|
|
} else if (e.key === "Right") {
|
|
|
nextPart = this._findNearestPartTowards(0);
|
|
|
}
|
|
|
if (nextPart !== null) {
|
|
|
if (e.shift) {
|
|
|
nextPart.isSelected = true;
|
|
|
} else if (e.control || e.meta) {
|
|
|
nextPart.isSelected = !nextPart.isSelected;
|
|
|
} else {
|
|
|
diagram.select(nextPart);
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Finds the nearest selectable Part in the specified direction, based on their center points.
|
|
|
* if it doesn't find anything, it just returns the current Part.
|
|
|
* @this {DrawCommandHandler}
|
|
|
* @param {number} dir the direction, in degrees
|
|
|
* @return {Part} the closest Part found in the given direction
|
|
|
*/
|
|
|
DrawCommandHandler.prototype._findNearestPartTowards = function (dir) {
|
|
|
var originalPart = this.diagram.selection.first();
|
|
|
if (originalPart === null) return null;
|
|
|
var originalPoint = originalPart.actualBounds.center;
|
|
|
var allParts = this._getAllParts();
|
|
|
var closestDistance = Infinity;
|
|
|
var closest = originalPart; // if no parts meet the criteria, the same part remains selected
|
|
|
|
|
|
for (var i = 0; i < allParts.length; i++) {
|
|
|
var nextPart = allParts[i];
|
|
|
if (nextPart === originalPart) continue; // skips over currently selected part
|
|
|
if (!nextPart.canSelect()) continue;
|
|
|
var nextPoint = nextPart.actualBounds.center;
|
|
|
var angle = originalPoint.directionPoint(nextPoint);
|
|
|
var anglediff = this._angleCloseness(angle, dir);
|
|
|
if (anglediff <= 45) {
|
|
|
// if this part's center is within the desired direction's sector,
|
|
|
var distance = originalPoint.distanceSquaredPoint(nextPoint);
|
|
|
distance *= 1 + Math.sin(anglediff * Math.PI / 180); // the more different from the intended angle, the further it is
|
|
|
if (distance < closestDistance) {
|
|
|
// and if it's closer than any other part,
|
|
|
closestDistance = distance; // remember it as a better choice
|
|
|
closest = nextPart;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return closest;
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @this {DrawCommandHandler}
|
|
|
* @param {number} a
|
|
|
* @param {number} dir
|
|
|
* @return {number}
|
|
|
*/
|
|
|
DrawCommandHandler.prototype._angleCloseness = function (a, dir) {
|
|
|
return Math.min(Math.abs(dir - a), Math.min(Math.abs(dir + 360 - a), Math.abs(dir - 360 - a)));
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* To be called when arrow keys should change the selected node in a tree and expand or collapse subtrees.
|
|
|
* @this {DrawCommandHandler}
|
|
|
*/
|
|
|
DrawCommandHandler.prototype._arrowKeyTree = function () {
|
|
|
var diagram = this.diagram;
|
|
|
var selected = diagram.selection.first();
|
|
|
if (!(selected instanceof go.Node)) return;
|
|
|
var e = diagram.lastInput;
|
|
|
if (e.key === "Right") {
|
|
|
if (selected.isTreeLeaf) {
|
|
|
// no-op
|
|
|
} else if (!selected.isTreeExpanded) {
|
|
|
if (diagram.commandHandler.canExpandTree(selected)) {
|
|
|
diagram.commandHandler.expandTree(selected); // expands the tree
|
|
|
}
|
|
|
} else {
|
|
|
// already expanded -- select the first child node
|
|
|
var first = this._sortTreeChildrenByY(selected).first();
|
|
|
if (first !== null) diagram.select(first);
|
|
|
}
|
|
|
} else if (e.key === "Left") {
|
|
|
if (!selected.isTreeLeaf && selected.isTreeExpanded) {
|
|
|
if (diagram.commandHandler.canCollapseTree(selected)) {
|
|
|
diagram.commandHandler.collapseTree(selected); // collapses the tree
|
|
|
}
|
|
|
} else {
|
|
|
// either a leaf or is already collapsed -- select the parent node
|
|
|
var parent = selected.findTreeParentNode();
|
|
|
if (parent !== null) diagram.select(parent);
|
|
|
}
|
|
|
} else if (e.key === "Up") {
|
|
|
var parent = selected.findTreeParentNode();
|
|
|
if (parent !== null) {
|
|
|
var list = this._sortTreeChildrenByY(parent);
|
|
|
var idx = list.indexOf(selected);
|
|
|
if (idx > 0) {
|
|
|
// if there is a previous sibling
|
|
|
var prev = list.elt(idx - 1);
|
|
|
// keep looking at the last child until it's a leaf or collapsed
|
|
|
while (prev !== null && prev.isTreeExpanded && !prev.isTreeLeaf) {
|
|
|
var children = this._sortTreeChildrenByY(prev);
|
|
|
prev = children.last();
|
|
|
}
|
|
|
if (prev !== null) diagram.select(prev);
|
|
|
} else {
|
|
|
// no previous sibling -- select parent
|
|
|
diagram.select(parent);
|
|
|
}
|
|
|
}
|
|
|
} else if (e.key === "Down") {
|
|
|
// if at an expanded parent, select the first child
|
|
|
if (selected.isTreeExpanded && !selected.isTreeLeaf) {
|
|
|
var first = this._sortTreeChildrenByY(selected).first();
|
|
|
if (first !== null) diagram.select(first);
|
|
|
} else {
|
|
|
while (selected !== null) {
|
|
|
var parent = selected.findTreeParentNode();
|
|
|
if (parent === null) break;
|
|
|
var list = this._sortTreeChildrenByY(parent);
|
|
|
var idx = list.indexOf(selected);
|
|
|
if (idx < list.length - 1) {
|
|
|
// select next lower node
|
|
|
diagram.select(list.elt(idx + 1));
|
|
|
break;
|
|
|
} else {
|
|
|
// already at bottom of list of children
|
|
|
selected = parent;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// make sure the selection is now in the viewport, but not necessarily centered
|
|
|
var sel = diagram.selection.first();
|
|
|
if (sel !== null) diagram.scrollToRect(sel.actualBounds);
|
|
|
};
|
|
|
DrawCommandHandler.prototype._sortTreeChildrenByY = function (node) {
|
|
|
var list = new go.List().addAll(node.findTreeChildrenNodes());
|
|
|
list.sort(function (a, b) {
|
|
|
var aloc = a.location;
|
|
|
var bloc = b.location;
|
|
|
if (aloc.y < bloc.y) return -1;
|
|
|
if (aloc.y > bloc.y) return 1;
|
|
|
if (aloc.x < bloc.x) return -1;
|
|
|
if (aloc.x > bloc.x) return 1;
|
|
|
return 0;
|
|
|
});
|
|
|
return list;
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Reset the last offset for pasting.
|
|
|
* @this {DrawCommandHandler}
|
|
|
* @param {Iterable.<Part>} coll a collection of {@link Part}s.
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.copyToClipboard = function (coll) {
|
|
|
go.CommandHandler.prototype.copyToClipboard.call(this, coll);
|
|
|
this._lastPasteOffset.set(this.pasteOffset);
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Paste from the clipboard with an offset incremented on each paste, and reset when copied.
|
|
|
* @this {DrawCommandHandler}
|
|
|
* @return {Set.<Part>} a collection of newly pasted {@link Part}s
|
|
|
*/
|
|
|
DrawCommandHandler.prototype.pasteFromClipboard = function () {
|
|
|
var coll = go.CommandHandler.prototype.pasteFromClipboard.call(this);
|
|
|
this.diagram.moveParts(coll, this._lastPasteOffset);
|
|
|
this._lastPasteOffset.add(this.pasteOffset);
|
|
|
return coll;
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Gets or sets the arrow key behavior. Possible values are "move", "select", "scroll", and "tree".
|
|
|
* The default value is "move".
|
|
|
* @name DrawCommandHandler#arrowKeyBehavior
|
|
|
|
|
|
* @return {string}
|
|
|
*/
|
|
|
Object.defineProperty(DrawCommandHandler.prototype, "arrowKeyBehavior", {
|
|
|
get: function get() {
|
|
|
return this._arrowKeyBehavior;
|
|
|
},
|
|
|
set: function set(val) {
|
|
|
if (val !== "move" && val !== "select" && val !== "scroll" && val !== "tree" && val !== "none") {
|
|
|
throw new Error("DrawCommandHandler.arrowKeyBehavior must be either \"move\", \"select\", \"scroll\", \"tree\", or \"none\", not: " + val);
|
|
|
}
|
|
|
this._arrowKeyBehavior = val;
|
|
|
}
|
|
|
});
|
|
|
|
|
|
/**
|
|
|
* Gets or sets the offset at which each repeated pasteSelection() puts the new copied parts from the clipboard.
|
|
|
* The default value is (10,10).
|
|
|
* @name DrawCommandHandler#pasteOffset
|
|
|
|
|
|
* @return {Point}
|
|
|
*/
|
|
|
Object.defineProperty(DrawCommandHandler.prototype, "pasteOffset", {
|
|
|
get: function get() {
|
|
|
return this._pasteOffset;
|
|
|
},
|
|
|
set: function set(val) {
|
|
|
if (!(val instanceof go.Point)) throw new Error("DrawCommandHandler.pasteOffset must be a Point, not: " + val);
|
|
|
this._pasteOffset.set(val);
|
|
|
}
|
|
|
});
|
|
|
/* harmony default export */ var go_DrawCommandHandler = (DrawCommandHandler);
|
|
|
// EXTERNAL MODULE: ./public/js/go/Figures.js
|
|
|
var Figures = __webpack_require__(71515);
|
|
|
// EXTERNAL MODULE: ./node_modules/_gojs-react@1.1.2@gojs-react/lib/esm/gojsreact.js + 1 modules
|
|
|
var gojsreact = __webpack_require__(85160);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
|
|
|
var es_modal = __webpack_require__(43418);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/col/index.js
|
|
|
var col = __webpack_require__(43604);
|
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
|
var fetch = __webpack_require__(91506);
|
|
|
;// CONCATENATED MODULE: ./src/components/markdown-editor/flow-chart/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var flow_chartmodules = ({"myPaletteDiv":"myPaletteDiv___Xjz2I","maxH60":"maxH60___Pd4Re"});
|
|
|
;// CONCATENATED MODULE: ./src/components/markdown-editor/flow-chart/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
window.go = go_module;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function FlowChart(_ref) {
|
|
|
var onCancel = _ref.onCancel,
|
|
|
callback = _ref.callback;
|
|
|
var myDiagram = (0,_react_17_0_2_react.useRef)();
|
|
|
var myDiagramDivRef = (0,_react_17_0_2_react.useRef)();
|
|
|
var myPaletteDivRef = (0,_react_17_0_2_react.useRef)();
|
|
|
var hidedenContentRef = (0,_react_17_0_2_react.useRef)(false);
|
|
|
var modalRef = (0,_react_17_0_2_react.useRef)(false);
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(0),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
updateModal = _useState2[0],
|
|
|
setUpdateModal = _useState2[1];
|
|
|
function initDiagram() {
|
|
|
var $ = go_module.GraphObject.make;
|
|
|
var colors = {
|
|
|
red: "#ff3333",
|
|
|
blue: "#3358ff",
|
|
|
green: "#25ad23",
|
|
|
magenta: "#d533ff",
|
|
|
purple: "#7d33ff",
|
|
|
orange: "#ff6233",
|
|
|
brown: "#8e571e",
|
|
|
white: "#ffffff",
|
|
|
black: "#000000",
|
|
|
beige: "#fffcd5",
|
|
|
extralightblue: "#d5ebff",
|
|
|
extralightred: "#f2dfe0",
|
|
|
lightblue: "#a5d2fa",
|
|
|
lightgray: "#cccccc",
|
|
|
lightgreen: "#b3e6b3",
|
|
|
lightred: "#fcbbbd"
|
|
|
};
|
|
|
myDiagram.current = new go_module.Diagram(myDiagramDivRef.current, {
|
|
|
padding: 20,
|
|
|
// extra space when scrolled all the way
|
|
|
grid: $(go_module.Panel, "Grid",
|
|
|
// a simple 10x10 grid
|
|
|
$(go_module.Shape, "LineH", {
|
|
|
stroke: "lightgray",
|
|
|
strokeWidth: 0.5
|
|
|
}), $(go_module.Shape, "LineV", {
|
|
|
stroke: "lightgray",
|
|
|
strokeWidth: 0.5
|
|
|
})),
|
|
|
"draggingTool.isGridSnapEnabled": true,
|
|
|
handlesDragDropForTopLevelParts: true,
|
|
|
mouseDrop: function mouseDrop(e) {
|
|
|
var ok = e.diagram.commandHandler.addTopLevelParts(e.diagram.selection, true);
|
|
|
if (!ok) e.diagram.currentTool.doCancel();
|
|
|
},
|
|
|
commandHandler: $(go_DrawCommandHandler),
|
|
|
// support offset copy-and-paste
|
|
|
"clickCreatingTool.archetypeNodeData": {
|
|
|
text: "未命名",
|
|
|
fill: null,
|
|
|
stroke: null,
|
|
|
borderColor: "rgba(0,0,0,0)"
|
|
|
},
|
|
|
// create a new node by double-clicking in background
|
|
|
"PartCreated": function PartCreated(e) {
|
|
|
var node = e.subject; // the newly inserted Node -- now need to snap its location to the grid
|
|
|
node.location = node.location.copy().snapToGridPoint(e.diagram.grid.gridOrigin, e.diagram.grid.gridCellSize);
|
|
|
setTimeout(function () {
|
|
|
// and have the user start editing its text
|
|
|
e.diagram.commandHandler.editTextBlock();
|
|
|
}, 20);
|
|
|
},
|
|
|
"commandHandler.archetypeGroupData": {
|
|
|
isGroup: true,
|
|
|
text: "NEW GROUP"
|
|
|
},
|
|
|
"SelectionGrouped": function SelectionGrouped(e) {
|
|
|
var group = e.subject;
|
|
|
setTimeout(function () {
|
|
|
// and have the user start editing its text
|
|
|
e.diagram.commandHandler.editTextBlock();
|
|
|
});
|
|
|
},
|
|
|
"LinkRelinked": function LinkRelinked(e) {
|
|
|
// re-spread the connections of other links connected with both old and new nodes
|
|
|
var oldnode = e.parameter.part;
|
|
|
oldnode.invalidateConnectedLinks();
|
|
|
var link = e.subject;
|
|
|
if (e.diagram.toolManager.linkingTool.isForwards) {
|
|
|
link.toNode.invalidateConnectedLinks();
|
|
|
} else {
|
|
|
link.fromNode.invalidateConnectedLinks();
|
|
|
}
|
|
|
},
|
|
|
"undoManager.isEnabled": true
|
|
|
});
|
|
|
|
|
|
// Node template
|
|
|
|
|
|
myDiagram.current.nodeTemplate = $(go_module.Node, "Auto", {
|
|
|
locationSpot: go_module.Spot.Center,
|
|
|
locationObjectName: "SHAPE",
|
|
|
desiredSize: new go_module.Size(120, 60),
|
|
|
minSize: new go_module.Size(40, 40),
|
|
|
resizable: true,
|
|
|
resizeCellSize: new go_module.Size(10, 10),
|
|
|
rotatable: true
|
|
|
// rotateObjectName: "SHAPE", // rotate the Shape without rotating the label
|
|
|
},
|
|
|
// these Bindings are TwoWay because the DraggingTool and ResizingTool modify the target properties
|
|
|
new go_module.Binding("location", "loc", go_module.Point.parse).makeTwoWay(go_module.Point.stringify), new go_module.Binding("desiredSize", "size", go_module.Size.parse).makeTwoWay(go_module.Size.stringify), $(go_module.Shape, {
|
|
|
// the border
|
|
|
name: "SHAPE",
|
|
|
fill: colors.white,
|
|
|
cursor: "pointer",
|
|
|
portId: "",
|
|
|
fromLinkable: true,
|
|
|
toLinkable: true,
|
|
|
fromLinkableDuplicates: true,
|
|
|
toLinkableDuplicates: true,
|
|
|
fromSpot: go_module.Spot.AllSides,
|
|
|
toSpot: go_module.Spot.AllSides
|
|
|
}, new go_module.Binding("figure"), new go_module.Binding("fill"), new go_module.Binding("stroke", "borderColor"), new go_module.Binding("strokeWidth", "thickness"), new go_module.Binding("strokeDashArray", "dash")),
|
|
|
// this Shape prevents mouse events from reaching the middle of the port
|
|
|
$(go_module.Shape, {
|
|
|
width: 100,
|
|
|
height: 20,
|
|
|
strokeWidth: 0,
|
|
|
fill: "transparent"
|
|
|
}), $(go_module.TextBlock, {
|
|
|
margin: 1,
|
|
|
textAlign: "center",
|
|
|
overflow: go_module.TextBlock.OverflowEllipsis,
|
|
|
editable: true
|
|
|
},
|
|
|
// this Binding is TwoWay due to the user editing the text with the TextEditingTool
|
|
|
new go_module.Binding("text").makeTwoWay(), new go_module.Binding("stroke", "color")));
|
|
|
myDiagram.current.nodeTemplate.toolTip = $("ToolTip",
|
|
|
// show some detailed information
|
|
|
$(go_module.Panel, "Vertical", {
|
|
|
maxSize: new go_module.Size(200, NaN)
|
|
|
},
|
|
|
// limit width but not height
|
|
|
$(go_module.TextBlock, {
|
|
|
font: "bold 10pt sans-serif",
|
|
|
textAlign: "center"
|
|
|
}, new go_module.Binding("text")), $(go_module.TextBlock, {
|
|
|
font: "10pt sans-serif",
|
|
|
textAlign: "center"
|
|
|
}, new go_module.Binding("text", "details"))));
|
|
|
|
|
|
// Node selection adornment
|
|
|
// Include four large triangular buttons so that the user can easily make a copy
|
|
|
// of the node, move it to be in that direction relative to the original node,
|
|
|
// and add a link to the new node.
|
|
|
|
|
|
function makeArrowButton(spot, fig) {
|
|
|
var maker = function maker(e, shape) {
|
|
|
e.handled = true;
|
|
|
e.diagram.model.commit(function (m) {
|
|
|
var selnode = shape.part.adornedPart;
|
|
|
// create a new node in the direction of the spot
|
|
|
var p = new go_module.Point().setRectSpot(selnode.actualBounds, spot);
|
|
|
p.subtract(selnode.location);
|
|
|
p.scale(2, 2);
|
|
|
p.x += Math.sign(p.x) * 130;
|
|
|
p.y += Math.sign(p.y) * 130;
|
|
|
p.add(selnode.location);
|
|
|
p.snapToGridPoint(e.diagram.grid.gridOrigin, e.diagram.grid.gridCellSize);
|
|
|
// make the new node a copy of the selected node
|
|
|
var nodedata = m.copyNodeData(selnode.data);
|
|
|
// add to same group as selected node
|
|
|
m.setGroupKeyForNodeData(nodedata, m.getGroupKeyForNodeData(selnode.data));
|
|
|
m.addNodeData(nodedata); // add to model
|
|
|
// create a link from the selected node to the new node
|
|
|
var linkdata = {
|
|
|
from: selnode.key,
|
|
|
to: m.getKeyForNodeData(nodedata)
|
|
|
};
|
|
|
m.addLinkData(linkdata); // add to model
|
|
|
// move the new node to the computed location, select it, and start to edit it
|
|
|
var newnode = e.diagram.findNodeForData(nodedata);
|
|
|
newnode.location = p;
|
|
|
e.diagram.select(newnode);
|
|
|
setTimeout(function () {
|
|
|
e.diagram.commandHandler.editTextBlock();
|
|
|
}, 20);
|
|
|
});
|
|
|
};
|
|
|
return $(go_module.Shape, {
|
|
|
figure: fig,
|
|
|
alignment: spot,
|
|
|
alignmentFocus: spot.opposite(),
|
|
|
width: spot.equals(go_module.Spot.Top) || spot.equals(go_module.Spot.Bottom) ? 25 : 18,
|
|
|
height: spot.equals(go_module.Spot.Top) || spot.equals(go_module.Spot.Bottom) ? 18 : 25,
|
|
|
fill: "orange",
|
|
|
stroke: colors.white,
|
|
|
strokeWidth: 4,
|
|
|
mouseEnter: function mouseEnter(e, shape) {
|
|
|
return shape.fill = "dodgerblue";
|
|
|
},
|
|
|
mouseLeave: function mouseLeave(e, shape) {
|
|
|
return shape.fill = "orange";
|
|
|
},
|
|
|
isActionable: true,
|
|
|
// needed because it's in an Adornment
|
|
|
click: maker,
|
|
|
contextClick: maker
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// create a button that brings up the context menu
|
|
|
function CMButton(options) {
|
|
|
return $(go_module.Shape, {
|
|
|
fill: "orange",
|
|
|
stroke: "rgba(0, 0, 0, 0)",
|
|
|
strokeWidth: 15,
|
|
|
background: "transparent",
|
|
|
geometryString: "F1 M0 0 b 0 360 -4 0 4 z M10 0 b 0 360 -4 0 4 z M20 0 b 0 360 -4 0 4",
|
|
|
// M10 0 A2 2 0 1 0 14 10 M20 0 A2 2 0 1 0 24 10,
|
|
|
isActionable: true,
|
|
|
cursor: "context-menu",
|
|
|
mouseEnter: function mouseEnter(e, shape) {
|
|
|
return shape.fill = "dodgerblue";
|
|
|
},
|
|
|
mouseLeave: function mouseLeave(e, shape) {
|
|
|
return shape.fill = "orange";
|
|
|
},
|
|
|
click: function click(e, shape) {
|
|
|
e.diagram.commandHandler.showContextMenu(shape.part.adornedPart);
|
|
|
}
|
|
|
}, options || {});
|
|
|
}
|
|
|
myDiagram.current.nodeTemplate.selectionAdornmentTemplate = $(go_module.Adornment, "Spot", $(go_module.Placeholder, {
|
|
|
padding: 10
|
|
|
}), makeArrowButton(go_module.Spot.Top, "TriangleUp"), makeArrowButton(go_module.Spot.Left, "TriangleLeft"), makeArrowButton(go_module.Spot.Right, "TriangleRight"), makeArrowButton(go_module.Spot.Bottom, "TriangleDown"), CMButton({
|
|
|
alignment: new go_module.Spot(0.75, 0)
|
|
|
}));
|
|
|
|
|
|
// Common context menu button definitions
|
|
|
|
|
|
// All buttons in context menu work on both click and contextClick,
|
|
|
// in case the user context-clicks on the button.
|
|
|
// All buttons modify the node data, not the Node, so the Bindings need not be TwoWay.
|
|
|
|
|
|
// A button-defining helper function that returns a click event handler.
|
|
|
// PROPNAME is the name of the data property that should be set to the given VALUE.
|
|
|
function ClickFunction(propname, value) {
|
|
|
return function (e, obj) {
|
|
|
e.handled = true; // don't let the click bubble up
|
|
|
e.diagram.model.commit(function (m) {
|
|
|
m.set(obj.part.adornedPart.data, propname, value);
|
|
|
});
|
|
|
};
|
|
|
}
|
|
|
|
|
|
// Create a context menu button for setting a data property with a color value.
|
|
|
function ColorButton(color, propname) {
|
|
|
if (!propname) propname = "color";
|
|
|
return $(go_module.Shape, {
|
|
|
width: 16,
|
|
|
height: 16,
|
|
|
stroke: "lightgray",
|
|
|
fill: color,
|
|
|
margin: 1,
|
|
|
background: "transparent",
|
|
|
mouseEnter: function mouseEnter(e, shape) {
|
|
|
return shape.stroke = "dodgerblue";
|
|
|
},
|
|
|
mouseLeave: function mouseLeave(e, shape) {
|
|
|
return shape.stroke = "lightgray";
|
|
|
},
|
|
|
click: ClickFunction(propname, color),
|
|
|
contextClick: ClickFunction(propname, color)
|
|
|
});
|
|
|
}
|
|
|
function LightFillButtons() {
|
|
|
// used by multiple context menus
|
|
|
return [$("ContextMenuButton", $(go_module.Panel, "Horizontal", ColorButton(colors.white, "fill"), ColorButton(colors.beige, "fill"), ColorButton(colors.extralightblue, "fill"), ColorButton(colors.extralightred, "fill"))), $("ContextMenuButton", $(go_module.Panel, "Horizontal", ColorButton(colors.lightgray, "fill"), ColorButton(colors.lightgreen, "fill"), ColorButton(colors.lightblue, "fill"), ColorButton(colors.lightred, "fill")))];
|
|
|
}
|
|
|
function DarkColorButtons() {
|
|
|
// used by multiple context menus
|
|
|
return [$("ContextMenuButton", $(go_module.Panel, "Horizontal", ColorButton(colors.black), ColorButton(colors.green), ColorButton(colors.blue), ColorButton(colors.red))), $("ContextMenuButton", $(go_module.Panel, "Horizontal", ColorButton(colors.white), ColorButton(colors.magenta), ColorButton(colors.purple), ColorButton(colors.orange)))];
|
|
|
}
|
|
|
|
|
|
// Create a context menu button for setting a data property with a stroke width value.
|
|
|
function ThicknessButton(sw, propname) {
|
|
|
if (!propname) propname = "thickness";
|
|
|
return $(go_module.Shape, "LineH", {
|
|
|
width: 16,
|
|
|
height: 16,
|
|
|
strokeWidth: sw,
|
|
|
margin: 1,
|
|
|
background: "transparent",
|
|
|
mouseEnter: function mouseEnter(e, shape) {
|
|
|
return shape.background = "dodgerblue";
|
|
|
},
|
|
|
mouseLeave: function mouseLeave(e, shape) {
|
|
|
return shape.background = "transparent";
|
|
|
},
|
|
|
click: ClickFunction(propname, sw),
|
|
|
contextClick: ClickFunction(propname, sw)
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// Create a context menu button for setting a data property with a stroke dash Array value.
|
|
|
function DashButton(dash, propname) {
|
|
|
if (!propname) propname = "dash";
|
|
|
return $(go_module.Shape, "LineH", {
|
|
|
width: 24,
|
|
|
height: 16,
|
|
|
strokeWidth: 2,
|
|
|
strokeDashArray: dash,
|
|
|
margin: 1,
|
|
|
background: "transparent",
|
|
|
mouseEnter: function mouseEnter(e, shape) {
|
|
|
return shape.background = "dodgerblue";
|
|
|
},
|
|
|
mouseLeave: function mouseLeave(e, shape) {
|
|
|
return shape.background = "transparent";
|
|
|
},
|
|
|
click: ClickFunction(propname, dash),
|
|
|
contextClick: ClickFunction(propname, dash)
|
|
|
});
|
|
|
}
|
|
|
function StrokeOptionsButtons() {
|
|
|
// used by multiple context menus
|
|
|
return [$("ContextMenuButton", $(go_module.Panel, "Horizontal", ThicknessButton(1), ThicknessButton(2), ThicknessButton(3), ThicknessButton(4))), $("ContextMenuButton", $(go_module.Panel, "Horizontal", DashButton(null), DashButton([2, 4]), DashButton([4, 4])))];
|
|
|
}
|
|
|
|
|
|
// Node context menu
|
|
|
|
|
|
function FigureButton(fig, propname) {
|
|
|
if (!propname) propname = "figure";
|
|
|
return $(go_module.Shape, {
|
|
|
width: 32,
|
|
|
height: 32,
|
|
|
scale: 0.5,
|
|
|
fill: "lightgray",
|
|
|
figure: fig,
|
|
|
margin: 1,
|
|
|
background: "transparent",
|
|
|
mouseEnter: function mouseEnter(e, shape) {
|
|
|
return shape.fill = "dodgerblue";
|
|
|
},
|
|
|
mouseLeave: function mouseLeave(e, shape) {
|
|
|
return shape.fill = "lightgray";
|
|
|
},
|
|
|
click: ClickFunction(propname, fig),
|
|
|
contextClick: ClickFunction(propname, fig)
|
|
|
});
|
|
|
}
|
|
|
myDiagram.current.nodeTemplate.contextMenu = $("ContextMenu",
|
|
|
// $("ContextMenuButton",
|
|
|
// $(go.TextBlock, 'Move Up', {
|
|
|
// // Associate the custom command to move the node up
|
|
|
// click: (e, obj) => {
|
|
|
// const node = obj.part.adornedPart;
|
|
|
// myDiagram.current.commandHandler['MoveNodeUp'].execute(myDiagram.current);
|
|
|
// }
|
|
|
// })
|
|
|
// ),
|
|
|
// $("ContextMenuButton",
|
|
|
// $(go.TextBlock, 'Move Up', {
|
|
|
// // Associate the custom command to move the node up
|
|
|
// click: (e, obj) => {
|
|
|
// const node = obj.part.adornedPart;
|
|
|
// myDiagram.current.commandHandler['moveNodeUpCommand'].execute(myDiagram.current);
|
|
|
// }
|
|
|
// })
|
|
|
// ),
|
|
|
$("ContextMenuButton", $(go_module.Panel, "Horizontal", FigureButton("Rectangle"), FigureButton("RoundedRectangle"), FigureButton("Ellipse"), FigureButton("Diamond"))), $("ContextMenuButton", $(go_module.Panel, "Horizontal", FigureButton("Parallelogram2"), FigureButton("ManualOperation"), FigureButton("Procedure"), FigureButton("Cylinder1"))), $("ContextMenuButton", $(go_module.Panel, "Horizontal", FigureButton("Terminator"), FigureButton("CreateRequest"), FigureButton("Document"), FigureButton("TriangleDown"))), LightFillButtons(), DarkColorButtons(), StrokeOptionsButtons());
|
|
|
|
|
|
// Group template
|
|
|
|
|
|
myDiagram.current.groupTemplate = $(go_module.Group, "Spot", {
|
|
|
layerName: "Background",
|
|
|
ungroupable: true,
|
|
|
locationSpot: go_module.Spot.Center,
|
|
|
selectionObjectName: "BODY",
|
|
|
computesBoundsAfterDrag: true,
|
|
|
// allow dragging out of a Group that uses a Placeholder
|
|
|
handlesDragDropForMembers: true,
|
|
|
// don't need to define handlers on Nodes and Links
|
|
|
mouseDrop: function mouseDrop(e, grp) {
|
|
|
// add dropped nodes as members of the group
|
|
|
var ok = grp.addMembers(grp.diagram.selection, true);
|
|
|
if (!ok) grp.diagram.currentTool.doCancel();
|
|
|
},
|
|
|
avoidable: false
|
|
|
}, new go_module.Binding("location", "loc", go_module.Point.parse).makeTwoWay(go_module.Point.stringify), $(go_module.Panel, "Auto", {
|
|
|
name: "BODY"
|
|
|
}, $(go_module.Shape, {
|
|
|
parameter1: 10,
|
|
|
fill: colors.white,
|
|
|
strokeWidth: 2,
|
|
|
cursor: "pointer",
|
|
|
fromLinkable: true,
|
|
|
toLinkable: true,
|
|
|
fromLinkableDuplicates: true,
|
|
|
toLinkableDuplicates: true,
|
|
|
fromSpot: go_module.Spot.AllSides,
|
|
|
toSpot: go_module.Spot.AllSides
|
|
|
}, new go_module.Binding("fill"), new go_module.Binding("stroke", "color"), new go_module.Binding("strokeWidth", "thickness"), new go_module.Binding("strokeDashArray", "dash")), $(go_module.Placeholder, {
|
|
|
background: "transparent",
|
|
|
margin: 20
|
|
|
})), $(go_module.TextBlock, {
|
|
|
alignment: go_module.Spot.Top,
|
|
|
alignmentFocus: go_module.Spot.Bottom,
|
|
|
font: "bold 12pt sans-serif",
|
|
|
editable: true
|
|
|
}, new go_module.Binding("text"), new go_module.Binding("stroke", "color")));
|
|
|
myDiagram.current.groupTemplate.selectionAdornmentTemplate = $(go_module.Adornment, "Spot", $(go_module.Panel, "Auto", $(go_module.Shape, {
|
|
|
fill: null,
|
|
|
stroke: "dodgerblue",
|
|
|
strokeWidth: 3
|
|
|
}), $(go_module.Placeholder, {
|
|
|
margin: 1.5
|
|
|
})), CMButton({
|
|
|
alignment: go_module.Spot.TopRight,
|
|
|
alignmentFocus: go_module.Spot.BottomRight
|
|
|
}));
|
|
|
|
|
|
// 右键
|
|
|
myDiagram.current.groupTemplate.contextMenu = $("ContextMenu", LightFillButtons(), DarkColorButtons(), StrokeOptionsButtons());
|
|
|
|
|
|
// Link template
|
|
|
|
|
|
myDiagram.current.linkTemplate = $(go_module.Link, {
|
|
|
layerName: "Foreground",
|
|
|
routing: go_module.Link.AvoidsNodes,
|
|
|
corner: 10,
|
|
|
fromShortLength: 10,
|
|
|
toShortLength: 15,
|
|
|
// assume arrowhead at "to" end, need to avoid bad appearance when path is thick
|
|
|
relinkableFrom: true,
|
|
|
relinkableTo: true,
|
|
|
reshapable: true,
|
|
|
resegmentable: true
|
|
|
}, new go_module.Binding("fromSpot", "fromSpot", go_module.Spot.parse), new go_module.Binding("toSpot", "toSpot", go_module.Spot.parse), new go_module.Binding("fromShortLength", "dir", function (dir) {
|
|
|
return dir >= 1 ? 10 : 0;
|
|
|
}), new go_module.Binding("toShortLength", "dir", function (dir) {
|
|
|
return dir >= 1 ? 10 : 0;
|
|
|
}), new go_module.Binding("points").makeTwoWay(),
|
|
|
// TwoWay due to user reshaping with LinkReshapingTool
|
|
|
|
|
|
$(go_module.Shape, {
|
|
|
strokeWidth: 2
|
|
|
}, new go_module.Binding("stroke", "color"), new go_module.Binding("strokeWidth", "thickness"), new go_module.Binding("strokeDashArray", "dash")), $(go_module.Shape,
|
|
|
// custom arrowheads to create the lifted effect
|
|
|
{
|
|
|
segmentIndex: 0,
|
|
|
segmentOffset: new go_module.Point(15, 0),
|
|
|
segmentOrientation: go_module.Link.OrientAlong,
|
|
|
alignmentFocus: go_module.Spot.Right,
|
|
|
figure: "circle",
|
|
|
width: 10,
|
|
|
strokeWidth: 0
|
|
|
}, new go_module.Binding("fill", "color"), new go_module.Binding("visible", "dir", function (dir) {
|
|
|
return dir === 1;
|
|
|
})), $(go_module.Shape, {
|
|
|
segmentIndex: -1,
|
|
|
segmentOffset: new go_module.Point(-10, 6),
|
|
|
segmentOrientation: go_module.Link.OrientPlus90,
|
|
|
alignmentFocus: go_module.Spot.Right,
|
|
|
figure: "triangle",
|
|
|
width: 12,
|
|
|
height: 12,
|
|
|
strokeWidth: 0
|
|
|
}, new go_module.Binding("fill", "color"), new go_module.Binding("visible", "dir", function (dir) {
|
|
|
return dir >= 1;
|
|
|
}), new go_module.Binding("width", "thickness", function (t) {
|
|
|
return 7 + 3 * t;
|
|
|
}),
|
|
|
// custom arrowhead must scale with the size of the while
|
|
|
new go_module.Binding("height", "thickness", function (t) {
|
|
|
return 7 + 3 * t;
|
|
|
}),
|
|
|
// while remaining centered on line
|
|
|
new go_module.Binding("segmentOffset", "thickness", function (t) {
|
|
|
return new go_module.Point(-15, 4 + 1.5 * t);
|
|
|
})), $(go_module.Shape, {
|
|
|
segmentIndex: 0,
|
|
|
segmentOffset: new go_module.Point(15, -6),
|
|
|
segmentOrientation: go_module.Link.OrientMinus90,
|
|
|
alignmentFocus: go_module.Spot.Right,
|
|
|
figure: "triangle",
|
|
|
width: 12,
|
|
|
height: 12,
|
|
|
strokeWidth: 0
|
|
|
}, new go_module.Binding("fill", "color"), new go_module.Binding("visible", "dir", function (dir) {
|
|
|
return dir === 2;
|
|
|
}), new go_module.Binding("width", "thickness", function (t) {
|
|
|
return 7 + 3 * t;
|
|
|
}), new go_module.Binding("height", "thickness", function (t) {
|
|
|
return 7 + 3 * t;
|
|
|
}), new go_module.Binding("segmentOffset", "thickness", function (t) {
|
|
|
return new go_module.Point(-15, 4 + 1.5 * t);
|
|
|
})), $(go_module.TextBlock, {
|
|
|
alignmentFocus: new go_module.Spot(0, 1, -4, 0),
|
|
|
editable: true
|
|
|
}, new go_module.Binding("text").makeTwoWay(),
|
|
|
// TwoWay due to user editing with TextEditingTool
|
|
|
new go_module.Binding("stroke", "color")));
|
|
|
myDiagram.current.linkTemplate.selectionAdornmentTemplate = $(go_module.Adornment,
|
|
|
// use a special selection Adornment that does not obscure the link path itself
|
|
|
$(go_module.Shape, {
|
|
|
// this uses a pathPattern with a gap in it, in order to avoid drawing on top of the link path Shape
|
|
|
isPanelMain: true,
|
|
|
stroke: "transparent",
|
|
|
strokeWidth: 6,
|
|
|
pathPattern: makeAdornmentPathPattern(2) // == thickness or strokeWidth
|
|
|
}, new go_module.Binding("pathPattern", "thickness", makeAdornmentPathPattern)), CMButton({
|
|
|
alignmentFocus: new go_module.Spot(0, 0, -6, -4)
|
|
|
}));
|
|
|
function makeAdornmentPathPattern(w) {
|
|
|
return $(go_module.Shape, {
|
|
|
stroke: "dodgerblue",
|
|
|
strokeWidth: 2,
|
|
|
strokeCap: "square",
|
|
|
geometryString: "M0 0 M4 2 H3 M4 " + (w + 4).toString() + " H3"
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// Link context menu
|
|
|
// All buttons in context menu work on both click and contextClick,
|
|
|
// in case the user context-clicks on the button.
|
|
|
// All buttons modify the link data, not the Link, so the Bindings need not be TwoWay.
|
|
|
|
|
|
function ArrowButton(num) {
|
|
|
var geo = "M0 0 M8 16 M0 8 L16 8 M12 11 L16 8 L12 5";
|
|
|
if (num === 0) {
|
|
|
geo = "M0 0 M16 16 M0 8 L16 8";
|
|
|
} else if (num === 2) {
|
|
|
geo = "M0 0 M16 16 M0 8 L16 8 M12 11 L16 8 L12 5 M4 11 L0 8 L4 5";
|
|
|
}
|
|
|
return $(go_module.Shape, {
|
|
|
geometryString: geo,
|
|
|
margin: 2,
|
|
|
background: "transparent",
|
|
|
mouseEnter: function mouseEnter(e, shape) {
|
|
|
return shape.background = "dodgerblue";
|
|
|
},
|
|
|
mouseLeave: function mouseLeave(e, shape) {
|
|
|
return shape.background = "transparent";
|
|
|
},
|
|
|
click: ClickFunction("dir", num),
|
|
|
contextClick: ClickFunction("dir", num)
|
|
|
});
|
|
|
}
|
|
|
function AllSidesButton(to) {
|
|
|
var setter = function setter(e, shape) {
|
|
|
e.handled = true;
|
|
|
e.diagram.model.commit(function (m) {
|
|
|
var link = shape.part.adornedPart;
|
|
|
m.set(link.data, to ? "toSpot" : "fromSpot", go_module.Spot.stringify(go_module.Spot.AllSides));
|
|
|
// re-spread the connections of other links connected with the node
|
|
|
(to ? link.toNode : link.fromNode).invalidateConnectedLinks();
|
|
|
});
|
|
|
};
|
|
|
return $(go_module.Shape, {
|
|
|
width: 12,
|
|
|
height: 12,
|
|
|
fill: "transparent",
|
|
|
mouseEnter: function mouseEnter(e, shape) {
|
|
|
return shape.background = "dodgerblue";
|
|
|
},
|
|
|
mouseLeave: function mouseLeave(e, shape) {
|
|
|
return shape.background = "transparent";
|
|
|
},
|
|
|
click: setter,
|
|
|
contextClick: setter
|
|
|
});
|
|
|
}
|
|
|
function SpotButton(spot, to) {
|
|
|
var ang = 0;
|
|
|
var side = go_module.Spot.RightSide;
|
|
|
if (spot.equals(go_module.Spot.Top)) {
|
|
|
ang = 270;
|
|
|
side = go_module.Spot.TopSide;
|
|
|
} else if (spot.equals(go_module.Spot.Left)) {
|
|
|
ang = 180;
|
|
|
side = go_module.Spot.LeftSide;
|
|
|
} else if (spot.equals(go_module.Spot.Bottom)) {
|
|
|
ang = 90;
|
|
|
side = go_module.Spot.BottomSide;
|
|
|
}
|
|
|
if (!to) ang -= 180;
|
|
|
var setter = function setter(e, shape) {
|
|
|
e.handled = true;
|
|
|
e.diagram.model.commit(function (m) {
|
|
|
var link = shape.part.adornedPart;
|
|
|
m.set(link.data, to ? "toSpot" : "fromSpot", go_module.Spot.stringify(side));
|
|
|
// re-spread the connections of other links connected with the node
|
|
|
(to ? link.toNode : link.fromNode).invalidateConnectedLinks();
|
|
|
});
|
|
|
};
|
|
|
return $(go_module.Shape, {
|
|
|
alignment: spot,
|
|
|
alignmentFocus: spot.opposite(),
|
|
|
geometryString: "M0 0 M12 12 M12 6 L1 6 L4 4 M1 6 L4 8",
|
|
|
angle: ang,
|
|
|
background: "transparent",
|
|
|
mouseEnter: function mouseEnter(e, shape) {
|
|
|
return shape.background = "dodgerblue";
|
|
|
},
|
|
|
mouseLeave: function mouseLeave(e, shape) {
|
|
|
return shape.background = "transparent";
|
|
|
},
|
|
|
click: setter,
|
|
|
contextClick: setter
|
|
|
});
|
|
|
}
|
|
|
myDiagram.current.linkTemplate.contextMenu = $("ContextMenu", DarkColorButtons(), StrokeOptionsButtons(), $("ContextMenuButton", $(go_module.Panel, "Horizontal", ArrowButton(0), ArrowButton(1), ArrowButton(2))), $("ContextMenuButton", $(go_module.Panel, "Horizontal", $(go_module.Panel, "Spot", AllSidesButton(false), SpotButton(go_module.Spot.Top, false), SpotButton(go_module.Spot.Left, false), SpotButton(go_module.Spot.Right, false), SpotButton(go_module.Spot.Bottom, false)), $(go_module.Panel, "Spot", {
|
|
|
margin: new go_module.Margin(0, 0, 0, 2)
|
|
|
}, AllSidesButton(true), SpotButton(go_module.Spot.Top, true), SpotButton(go_module.Spot.Left, true), SpotButton(go_module.Spot.Right, true), SpotButton(go_module.Spot.Bottom, true)))));
|
|
|
var initData = "{ \"class\": \"GraphLinksModel\",\n \"nodeDataArray\": [\n{\"text\":\"Find Problem\",\"key\":-9,\"loc\":\"-20 -140\",\"color\":\"#3358ff\",\"fill\":\"white\",\"figure\":\"Procedure\",\"thickness\":3},\n{\"text\":\"What do we want?\",\"key\":-10,\"loc\":\"-65 -324.305\",\"group\":-16,\"figure\":\"Ellipse\",\"fill\":\"white\"},\n{\"text\":\"What do our users want?\",\"key\":-11,\"loc\":\"105 -334.305\",\"group\":-20,\"figure\":\"Ellipse\",\"fill\":\"#ffffff\",\"color\":\"black\"},\n{\"text\":\"Meetings\",\"key\":-12,\"loc\":\"-65 -444.305\",\"group\":-16,\"figure\":\"TriangleDown\",\"fill\":\"#ffffff\"},\n{\"text\":\"Reviews\",\"key\":-13,\"loc\":\"105 -454.305\",\"group\":-20,\"figure\":\"TriangleDown\",\"fill\":\"#ffffff\",\"color\":\"black\"},\n{\"text\":\"Can we solve it?\",\"key\":-14,\"loc\":\"190 -140\",\"color\":\"#7d33ff\",\"fill\":\"#ffffff\",\"figure\":\"Diamond\",\"size\":\"140 80\",\"thickness\":3},\n{\"isGroup\":true,\"text\":\"Internal\",\"key\":-16,\"loc\":\"-65 -384.305\",\"fill\":\"#d5ebff\",\"dash\":null,\"thickness\":1,\"group\":-22},\n{\"isGroup\":true,\"text\":\"External\",\"key\":-20,\"loc\":\"105 -394.305\",\"fill\":\"#d5ebff\",\"dash\":null,\"thickness\":1,\"group\":-22},\n{\"isGroup\":true,\"text\":\"Sources\",\"key\":-22,\"loc\":\"20 -400\",\"fill\":\"#a5d2fa\",\"dash\":[4,4],\"color\":\"#3358ff\"}\n],\n \"linkDataArray\": [\n{\"from\":-12,\"to\":-10,\"points\":[-65,-414.305,-65,-404.305,-65,-384.305,-65,-384.305,-65,-364.305,-65,-354.305],\"dash\":null,\"dir\":1},\n{\"from\":-13,\"to\":-11,\"points\":[105,-424.305,105,-414.305,105,-394.305,105,-394.305,105,-374.305,105,-364.305],\"dash\":null,\"color\":\"#000000\",\"dir\":1},\n{\"from\":-10,\"to\":-9,\"points\":[-65,-294.305,-65,-284.305,-65,-232.1525,-40,-232.1525,-40,-180,-40,-170],\"dir\":2,\"dash\":[4,4]},\n{\"from\":-11,\"to\":-9,\"points\":[105,-304.305,105,-294.305,105,-237.1525,0,-237.1525,0,-180,0,-170],\"dash\":[4,4],\"dir\":2},\n{\"from\":-9,\"to\":-14,\"points\":[40,-150,58,-150,80,-150,80,-153.33333333333331,102,-153.33333333333331,120,-153.33333333333331],\"dir\":1,\"color\":\"#3358ff\"},\n{\"from\":-14,\"to\":-9,\"points\":[190,-100,190,-90,-20,-90,-20,-95,-20,-100,-20,-110],\"fromSpot\":\"BottomSide\",\"toSpot\":\"BottomSide\",\"text\":\"No\",\"color\":\"#ff3333\",\"thickness\":2,\"dir\":1},\n{\"from\":-9,\"to\":-14,\"points\":[40,-130,58,-130,80,-130,80,-126.66666666666666,102,-126.66666666666666,120,-126.66666666666666]}\n]}";
|
|
|
// myDiagram.current.model = go.Model.fromJson(initData);
|
|
|
|
|
|
// start
|
|
|
var builtIn = ["Rectangle", "Square", "RoundedRectangle", "Border", "Ellipse", "Circle", "TriangleRight", "TriangleDown", "TriangleLeft", "TriangleUp", "Triangle", "Diamond", "LineH", "LineV", "None", "BarH", "BarV", "MinusLine", "PlusLine", "XLine", "LineRight", "LineDown", "LineLeft", "LineUp"];
|
|
|
function isBuiltIn(shapeName) {
|
|
|
console.log("shapeName:", shapeName);
|
|
|
return builtIn.indexOf(shapeName) >= 0;
|
|
|
}
|
|
|
var myPalette = new go_module.Palette(myPaletteDivRef.current,
|
|
|
// must name or refer to the DIV HTML element
|
|
|
{
|
|
|
maxSelectionCount: 1,
|
|
|
// nodeTemplateMap: myDiagram.current.nodeTemplateMap, // share the templates used by myDiagram.current
|
|
|
linkTemplate:
|
|
|
// simplify the link template, just in this Palette
|
|
|
$(go_module.Link, {
|
|
|
// because the GridLayout.alignment is Location and the nodes have locationSpot == Spot.Center,
|
|
|
// to line up the Link in the same manner we have to pretend the Link has the same location spot
|
|
|
locationSpot: go_module.Spot.Center,
|
|
|
selectionAdornmentTemplate: $(go_module.Adornment, "Link", {
|
|
|
locationSpot: go_module.Spot.Center
|
|
|
}, $(go_module.Shape, {
|
|
|
isPanelMain: true,
|
|
|
fill: null,
|
|
|
stroke: "deepskyblue",
|
|
|
strokeWidth: 0
|
|
|
}), $(go_module.Shape,
|
|
|
// the arrowhead
|
|
|
{
|
|
|
toArrow: "Standard",
|
|
|
stroke: null
|
|
|
}))
|
|
|
}, {
|
|
|
routing: go_module.Link.AvoidsNodes,
|
|
|
curve: go_module.Link.JumpOver,
|
|
|
corner: 5,
|
|
|
toShortLength: 4
|
|
|
}, new go_module.Binding("points"), $(go_module.Shape,
|
|
|
// the link path shape
|
|
|
{
|
|
|
isPanelMain: true,
|
|
|
strokeWidth: 2
|
|
|
}), $(go_module.Shape,
|
|
|
// the arrowhead
|
|
|
{
|
|
|
toArrow: "Standard",
|
|
|
stroke: null
|
|
|
})),
|
|
|
model: new go_module.GraphLinksModel([
|
|
|
// specify the contents of the Palette
|
|
|
{
|
|
|
text: "未命名",
|
|
|
"size": "100 100",
|
|
|
fill: null,
|
|
|
stroke: "#000"
|
|
|
}].concat(toConsumableArray_default()(go_module.Shape.getFigureGenerators().toArray().map(function (item) {
|
|
|
return {
|
|
|
text: "未命名",
|
|
|
"size": "100 100",
|
|
|
figure: item.key,
|
|
|
fill: "white",
|
|
|
stroke: "#666",
|
|
|
borderColor: "#000"
|
|
|
};
|
|
|
})))) // [
|
|
|
// // the Palette also has a disconnected Link, which the user can drag-and-drop
|
|
|
// { points: new go.List(/*go.Point*/).addAll([new go.Point(0, 0), new go.Point(30, 0), new go.Point(30, 40), new go.Point(60, 40)]) }
|
|
|
// ]
|
|
|
});
|
|
|
|
|
|
// $("ContextMenuButton",
|
|
|
// $(go.Panel, "Horizontal",
|
|
|
// FigureButton("Rectangle"), FigureButton("RoundedRectangle"), FigureButton("Ellipse"), FigureButton("Diamond")
|
|
|
// )
|
|
|
// ),
|
|
|
// $("ContextMenuButton",
|
|
|
// $(go.Panel, "Horizontal",
|
|
|
// FigureButton("Parallelogram2"), FigureButton("ManualOperation"), FigureButton("Procedure"), FigureButton("Cylinder1")
|
|
|
// )
|
|
|
// ),
|
|
|
// $("ContextMenuButton",
|
|
|
// $(go.Panel, "Horizontal",
|
|
|
// FigureButton("Terminator"), FigureButton("CreateRequest"), FigureButton("Document"), FigureButton("TriangleDown")
|
|
|
// )
|
|
|
// ),
|
|
|
|
|
|
myPalette.nodeTemplate = $(go_module.Node, "Auto", {
|
|
|
locationSpot: go_module.Spot.Center
|
|
|
}, new go_module.Binding("location", "location", go_module.Point.parse).makeTwoWay(go_module.Point.stringify), $(go_module.Shape, "Circle", {
|
|
|
fill: "white",
|
|
|
stroke: "gray",
|
|
|
strokeWidth: 2,
|
|
|
width: 20,
|
|
|
height: 20,
|
|
|
portId: "",
|
|
|
fromLinkable: true,
|
|
|
toLinkable: true,
|
|
|
fromLinkableDuplicates: true,
|
|
|
toLinkableDuplicates: true,
|
|
|
fromLinkableSelfNode: true,
|
|
|
toLinkableSelfNode: true
|
|
|
}, new go_module.Binding("stroke").makeTwoWay(), new go_module.Binding("fill").makeTwoWay(), new go_module.Binding("figure")), $(go_module.TextBlock, {
|
|
|
margin: new go_module.Margin(5, 5, 3, 5),
|
|
|
font: "10pt sans-serif",
|
|
|
minSize: new go_module.Size(16, 16),
|
|
|
maxSize: new go_module.Size(10, NaN),
|
|
|
textAlign: "center",
|
|
|
editable: true
|
|
|
}, new go_module.Binding("key").makeTwoWay()));
|
|
|
// end
|
|
|
|
|
|
setTimeout(function () {
|
|
|
myDiagram.current.grid = $(go_module.Panel, "Grid", $(go_module.Shape, "LineH", {
|
|
|
stroke: "lightgray",
|
|
|
strokeWidth: 0.5
|
|
|
}), $(go_module.Shape, "LineV", {
|
|
|
stroke: "lightgray",
|
|
|
strokeWidth: 0.5
|
|
|
}));
|
|
|
myDiagram.current.grid.visible = true; // 隐藏网格
|
|
|
myDiagram.current.grid.gridCellStroke = "darkgray"; // 设置网格线的颜色
|
|
|
myDiagram.current.grid.gridCellStrokeWidth = 1; // 设置网格线的粗细
|
|
|
}, 300);
|
|
|
window.myDiagrams = myDiagram.current;
|
|
|
return myDiagram.current;
|
|
|
}
|
|
|
var save = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var imgs, res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
// console.log(JSON.stringify(myDiagram.current.model.toJson()))
|
|
|
imgs = myDiagram.current.makeImage();
|
|
|
_context.next = 3;
|
|
|
return (0,fetch/* default */.ZP)('/api/attachments.json', {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
file_type: 'base64',
|
|
|
original_filename: Date.now(),
|
|
|
file: imgs.src
|
|
|
}
|
|
|
});
|
|
|
case 3:
|
|
|
res = _context.sent;
|
|
|
callback({
|
|
|
src: res.url
|
|
|
});
|
|
|
case 5:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function save() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
setUpdateModal(updateModal + 1);
|
|
|
}, []);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
ref: modalRef,
|
|
|
className: hidedenContentRef.current ? "".concat(flow_chartmodules.maxH60, " body-overflow-initial") : "body-overflow-initial",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
|
width: 1200,
|
|
|
icon: null,
|
|
|
footer: null,
|
|
|
closable: true,
|
|
|
visible: !!updateModal,
|
|
|
destroyOnClose: true,
|
|
|
maskClosable: false,
|
|
|
getContainer: modalRef.current,
|
|
|
title: /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
flex: 1,
|
|
|
children: "\u63D2\u5165\u6D41\u7A0B\u56FE"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
onClick: function onClick() {
|
|
|
hidedenContentRef.current = !hidedenContentRef.current;
|
|
|
setUpdateModal(updateModal + 1);
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "current c-blue mr30",
|
|
|
style: {
|
|
|
fontWeight: 400
|
|
|
},
|
|
|
children: "\u5C55\u5F00/\u6536\u8D77"
|
|
|
})
|
|
|
})]
|
|
|
}),
|
|
|
onCancel: onCancel,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
width: "100%",
|
|
|
height: "80vh",
|
|
|
overflow: "hidden",
|
|
|
position: "relative"
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
display: "flex",
|
|
|
height: "100%"
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
width: "300px",
|
|
|
height: "100%"
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
background: "#fff",
|
|
|
position: "relative",
|
|
|
zIndex: 12,
|
|
|
fontSize: 16,
|
|
|
color: "#3061d0"
|
|
|
},
|
|
|
children: "\u56FE\u5F62\u5E93"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
height: "calc(100% - 50px)"
|
|
|
},
|
|
|
className: flow_chartmodules.myPaletteDiv,
|
|
|
ref: myPaletteDivRef
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
flex: 1,
|
|
|
position: "relative"
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(gojsreact/* ReactDiagram */.FI, {
|
|
|
initDiagram: initDiagram,
|
|
|
divClassName: "diagram-component",
|
|
|
style: {
|
|
|
height: "80vh"
|
|
|
}
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
ref: myDiagramDivRef
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "tr",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
size: "large",
|
|
|
onClick: save,
|
|
|
style: {
|
|
|
position: "absolute",
|
|
|
right: 0,
|
|
|
bottom: 0,
|
|
|
zIndex: 8
|
|
|
},
|
|
|
type: "primary",
|
|
|
children: "\u4FDD\u5B58\u5230\u7F16\u8F91\u5668"
|
|
|
})
|
|
|
})]
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
}
|
|
|
/* harmony default export */ var flow_chart = (FlowChart);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/radio/index.js + 5 modules
|
|
|
var es_radio = __webpack_require__(5112);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input-number/index.js + 14 modules
|
|
|
var input_number = __webpack_require__(85731);
|
|
|
;// 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 */.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 */.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 */.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__(78130);
|
|
|
;// CONCATENATED MODULE: ./src/components/markdown-editor/constant.ts
|
|
|
var LINK = 'link';
|
|
|
var UPLOAD_IMAGE = 'upload-image';
|
|
|
var ADD_FLOWCHART = 'add-flowchart';
|
|
|
var DRAW_IMAGE = 'draw-image';
|
|
|
var FLOW_CHART = 'add-flowchart';
|
|
|
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__(47169);
|
|
|
;// 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 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, DRAW_IMAGE, '添加画图'), defineProperty_default()(_TitleDesc, ADD_FLOWCHART, '插入流程图'), 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,
|
|
|
extraUse = _ref.extraUse;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(null),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
cm = _useState2[0],
|
|
|
setCm = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(defaultValue),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
value = _useState4[0],
|
|
|
setValue = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(watch),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
preview = _useState6[0],
|
|
|
setPreview = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)(fullScreen),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
isFull = _useState8[0],
|
|
|
setIsFull = _useState8[1];
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)(''),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
action = _useState10[0],
|
|
|
setAction = _useState10[1];
|
|
|
var _useState11 = (0,_react_17_0_2_react.useState)(0),
|
|
|
_useState12 = slicedToArray_default()(_useState11, 2),
|
|
|
lastedUpdateTime = _useState12[0],
|
|
|
setLastedUpdateTime = _useState12[1];
|
|
|
var _useState13 = (0,_react_17_0_2_react.useState)(height),
|
|
|
_useState14 = slicedToArray_default()(_useState13, 2),
|
|
|
h = _useState14[0],
|
|
|
setH = _useState14[1];
|
|
|
var _useState15 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState16 = slicedToArray_default()(_useState15, 2),
|
|
|
tip = _useState16[0],
|
|
|
setTip = _useState16[1];
|
|
|
var cmEl = (0,_react_17_0_2_react.useRef)();
|
|
|
var containerEl = (0,_react_17_0_2_react.useRef)();
|
|
|
var resizeBarEl = (0,_react_17_0_2_react.useRef)();
|
|
|
var previewEl = (0,_react_17_0_2_react.useRef)();
|
|
|
|
|
|
// useEffect(() => {
|
|
|
// setValue(defaultValue)
|
|
|
// cm?.setValue(defaultValue)
|
|
|
// },[])
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var scrollTop = window.scrollY || window.pageYOffset;
|
|
|
setValue(values);
|
|
|
cm === null || cm === void 0 || cm.setValue(values);
|
|
|
window.scrollTo(0, scrollTop);
|
|
|
}, [values]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
onFullScreen === null || onFullScreen === void 0 || onFullScreen(isFull);
|
|
|
}, [isFull]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (cmEl.current) {
|
|
|
var onPaste = function onPaste(_, e) {
|
|
|
if (disablePaste) {
|
|
|
e.preventDefault();
|
|
|
return;
|
|
|
}
|
|
|
var clipboardData = e.clipboardData;
|
|
|
if (clipboardData) {
|
|
|
var types = clipboardData.types.toString();
|
|
|
var items = clipboardData.items;
|
|
|
var officeSix = ["pptm", "pptx", "ppt", "pot", "pps", "ppa", "potx", "ppsx", "ppam", "pptm", "potm", "ppsm", "doc", "docx", "dot", "dotx", "docm", "dotm", "xls", "xlsx", "csv", "xlt", "xla", "xltx", "xlsm", "xltm", "xlam", "xlsb"];
|
|
|
if (types === 'Files' || clipboardData.types.indexOf("Files") > -1) {
|
|
|
e.preventDefault();
|
|
|
if (mode == "stex") return;
|
|
|
try {
|
|
|
var _items$;
|
|
|
var item = items[1];
|
|
|
if (((_items$ = items[0]) === null || _items$ === void 0 ? void 0 : _items$.kind) === 'file') {
|
|
|
item = items[0];
|
|
|
}
|
|
|
var file = item.getAsFile();
|
|
|
var fileSix = file.name.split(".").pop();
|
|
|
// console.log("item:", item, file, item?.type?.match(/^video\//i))
|
|
|
uploadImage(file, function (data) {
|
|
|
if (data.id) {
|
|
|
var _file$type, _file$type2, _file$type3;
|
|
|
if ((file === null || file === void 0 || (_file$type = file.type) === null || _file$type === void 0 ? void 0 : _file$type.indexOf("image")) > -1) {
|
|
|
instance.replaceSelection(".concat(data.content_type, ")"));
|
|
|
} else if ((file === null || file === 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 */.Z.API_SERVER, "/api/attachments/").concat(data.id, "\"></video>"));
|
|
|
} else if ((file === null || file === 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 */.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 */.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 */.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 */.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);
|
|
|
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_17_0_2_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_17_0_2_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_17_0_2_react.useEffect)(function () {
|
|
|
if (cm) {
|
|
|
var keymap = [];
|
|
|
var _loop = function _loop() {
|
|
|
var _Object$entries$_i = slicedToArray_default()(_Object$entries[_i], 2),
|
|
|
k = _Object$entries$_i[0],
|
|
|
value = _Object$entries$_i[1];
|
|
|
var map = defineProperty_default()({}, k, function () {
|
|
|
onActionCallback(value);
|
|
|
});
|
|
|
keymap.push(map);
|
|
|
cm.addKeyMap(map);
|
|
|
};
|
|
|
for (var _i = 0, _Object$entries = Object.entries(DEFAULTKEYMAP); _i < _Object$entries.length; _i++) {
|
|
|
_loop();
|
|
|
}
|
|
|
return function () {
|
|
|
for (var _i2 = 0, _keymap = keymap; _i2 < _keymap.length; _i2++) {
|
|
|
var m = _keymap[_i2];
|
|
|
cm.removeKeyMap(m);
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
}, [cm]);
|
|
|
(0,_react_17_0_2_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_17_0_2_react.useEffect)(function () {
|
|
|
setPreview(watch);
|
|
|
}, [cm, watch]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (cm) {
|
|
|
isFocus && cm.focus();
|
|
|
}
|
|
|
}, [cm, isFocus]);
|
|
|
(0,_react_17_0_2_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_17_0_2_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_17_0_2_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_17_0_2_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_17_0_2_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_17_0_2_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 DRAW_IMAGE:
|
|
|
setAction(DRAW_IMAGE);
|
|
|
return;
|
|
|
case ADD_FLOWCHART:
|
|
|
setAction(ADD_FLOWCHART);
|
|
|
return;
|
|
|
case ADD_TABLE:
|
|
|
setAction(ADD_TABLE);
|
|
|
return;
|
|
|
default:
|
|
|
throw new Error();
|
|
|
}
|
|
|
}, [cm, preview, isFull]);
|
|
|
var ExecutePluginAction = (0,_react_17_0_2_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:
|
|
|
case DRAW_IMAGE:
|
|
|
case FLOW_CHART:
|
|
|
var src = values.src,
|
|
|
alt = values.alt;
|
|
|
if (alt) {
|
|
|
cm.replaceSelection(".concat(src, " \"").concat(alt, "\" )"));
|
|
|
} else {
|
|
|
cm.replaceSelection(""));
|
|
|
}
|
|
|
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_17_0_2_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_FLOWCHART:
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(flow_chart, {
|
|
|
callback: ExecutePluginAction,
|
|
|
onCancel: onCancel
|
|
|
})
|
|
|
// <iframe src='/knowledgegraph/blockEditor.html' style={{width:"80vw",height:"80vh"}} frameBorder={0} />
|
|
|
;
|
|
|
|
|
|
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_17_0_2_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_17_0_2_react.useEffect)(function () {
|
|
|
setH(height);
|
|
|
}, [height]);
|
|
|
var fixedWidth = processSize(width);
|
|
|
var fixedHeight = processSize(h);
|
|
|
var style = {
|
|
|
width: fixedWidth,
|
|
|
height: fixedHeight
|
|
|
};
|
|
|
var saveTime = (0,_react_17_0_2_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));
|
|
|
}
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_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,
|
|
|
extraUse: extraUse
|
|
|
}), /*#__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, action === DRAW_IMAGE && /*#__PURE__*/(0,jsx_runtime.jsx)(draw_image, {
|
|
|
callback: ExecutePluginAction,
|
|
|
onCancel: onCancel
|
|
|
}), action === ADD_FLOWCHART && /*#__PURE__*/(0,jsx_runtime.jsx)(flow_chart, {
|
|
|
callback: ExecutePluginAction,
|
|
|
onCancel: onCancel
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
children: TitleDesc[action] && action !== DRAW_IMAGE && action !== ADD_FLOWCHART ? /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
title: TitleDesc[action],
|
|
|
open: true,
|
|
|
onCancel: onCancel,
|
|
|
footer: null,
|
|
|
destroyOnClose: true,
|
|
|
width: action === ADD_FLOWCHART ? "1200px" : 520,
|
|
|
height: action === ADD_FLOWCHART ? "80vh" : null,
|
|
|
className: "markdown-popup-form",
|
|
|
children: PluginEl
|
|
|
}) : null
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 83016:
|
|
|
/*!**********************************!*\
|
|
|
!*** ./src/components/modal.tsx ***!
|
|
|
\**********************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ Z: function() { return /* binding */ Dialog; }
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/classCallCheck.js */ 94312);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/createClass.js */ 24127);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/inherits.js */ 93242);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/createSuper.js */ 10564);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3__);
|
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ 59301);
|
|
|
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-dom */ 4676);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Dialog = /*#__PURE__*/function (_React$Component) {
|
|
|
_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default()(Dialog, _React$Component);
|
|
|
var _super = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default()(Dialog);
|
|
|
function Dialog(props) {
|
|
|
var _this;
|
|
|
_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0___default()(this, Dialog);
|
|
|
_this = _super.call(this, props);
|
|
|
var doc = window.document;
|
|
|
_this.node = doc.createElement('div');
|
|
|
doc.body.appendChild(_this.node);
|
|
|
return _this;
|
|
|
}
|
|
|
_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_2_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);
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 47169:
|
|
|
/*!****************************************!*\
|
|
|
!*** ./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 */ 59301);
|
|
|
|
|
|
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]);
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 85195:
|
|
|
/*!****************************************************************!*\
|
|
|
!*** ./src/pages/Shixuns/Detail/Discuss/index.tsx + 2 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 */ Discuss; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(11006);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectWithoutProperties.js
|
|
|
var objectWithoutProperties = __webpack_require__(27161);
|
|
|
var objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 15 modules
|
|
|
var _umi_production_exports = __webpack_require__(49266);
|
|
|
// EXTERNAL MODULE: ./src/pages/tasks/left-panel/discuss/index.jsx + 8 modules
|
|
|
var discuss = __webpack_require__(4963);
|
|
|
// EXTERNAL MODULE: ./src/pages/Shixuns/Detail/components/Right/index.tsx + 4 modules
|
|
|
var Right = __webpack_require__(94724);
|
|
|
// EXTERNAL MODULE: ./src/components/image-preview/index.tsx + 1 modules
|
|
|
var image_preview = __webpack_require__(16664);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Shixuns/Detail/Discuss/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var Discussmodules = ({"bg":"bg___GVdDO","wrap":"wrap___ROzHg","btn":"btn___g5tGP"});
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/regeneratorRuntime.js
|
|
|
var regeneratorRuntime = __webpack_require__(10574);
|
|
|
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectSpread2.js
|
|
|
var objectSpread2 = __webpack_require__(26801);
|
|
|
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/asyncToGenerator.js
|
|
|
var asyncToGenerator = __webpack_require__(39343);
|
|
|
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
|
|
|
var modal = __webpack_require__(43418);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/table/index.js + 85 modules
|
|
|
var table = __webpack_require__(72315);
|
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
|
var fetch = __webpack_require__(91506);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Shixuns/Detail/Discuss/modal.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var CustomModal = function CustomModal(_ref) {
|
|
|
var visible = _ref.visible,
|
|
|
onOK = _ref.onOK,
|
|
|
_onCancel = _ref.onCancel;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
list = _useState2[0],
|
|
|
setList = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(true),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
loading = _useState4[0],
|
|
|
setLoading = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(0),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
total = _useState6[0],
|
|
|
setTotal = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)({
|
|
|
page: 1,
|
|
|
limit: 10
|
|
|
}),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
params = _useState8[0],
|
|
|
setParams = _useState8[1];
|
|
|
var urlParams = (0,_umi_production_exports.useParams)();
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (visible) {
|
|
|
getData(params);
|
|
|
}
|
|
|
}, [visible]);
|
|
|
var columns = [{
|
|
|
title: '姓名',
|
|
|
dataIndex: 'name',
|
|
|
key: 'name',
|
|
|
align: 'left',
|
|
|
ellipsis: true
|
|
|
}, {
|
|
|
title: '学校',
|
|
|
dataIndex: 'school_name',
|
|
|
key: 'school_name',
|
|
|
align: 'left',
|
|
|
ellipsis: true
|
|
|
}, {
|
|
|
title: '禁止时间',
|
|
|
dataIndex: 'created_at',
|
|
|
key: 'created_at',
|
|
|
align: 'left'
|
|
|
}, {
|
|
|
title: '禁止次数',
|
|
|
dataIndex: 'disable_count',
|
|
|
key: 'disable_count',
|
|
|
align: 'left'
|
|
|
}, {
|
|
|
title: '审批操作',
|
|
|
dataIndex: 'action',
|
|
|
key: 'action',
|
|
|
align: 'left',
|
|
|
render: function render(v, re) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
onClick: function onClick() {
|
|
|
return onRestoreDiscuss(re);
|
|
|
},
|
|
|
className: "c-light-primary current",
|
|
|
children: "\u6062\u590D\u8BC4\u8BBA\u529F\u80FD"
|
|
|
});
|
|
|
}
|
|
|
}];
|
|
|
var onRestoreDiscuss = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(re) {
|
|
|
var res, newPage;
|
|
|
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/discuss_disable_users/cancel.json", {
|
|
|
method: "post",
|
|
|
body: {
|
|
|
container_id: urlParams === null || urlParams === void 0 ? void 0 : urlParams.id,
|
|
|
container_type: 'Shixun',
|
|
|
user_id: re.id
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context.sent;
|
|
|
if (res.status === 0) {
|
|
|
newPage = list.length === 1 && params.page !== 1 ? params.page - 1 : params.page;
|
|
|
getData(objectSpread2_default()(objectSpread2_default()({}, params), {}, {
|
|
|
page: newPage
|
|
|
}));
|
|
|
setParams(objectSpread2_default()(objectSpread2_default()({}, params), {}, {
|
|
|
page: newPage
|
|
|
}));
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function onRestoreDiscuss(_x) {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var getData = /*#__PURE__*/function () {
|
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(record) {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
setLoading(true);
|
|
|
_context2.next = 3;
|
|
|
return (0,fetch/* default */.ZP)("/api/discuss_disable_users.json", {
|
|
|
method: "get",
|
|
|
params: objectSpread2_default()({
|
|
|
container_id: urlParams === null || urlParams === void 0 ? void 0 : urlParams.id,
|
|
|
container_type: 'Shixun'
|
|
|
}, record)
|
|
|
});
|
|
|
case 3:
|
|
|
res = _context2.sent;
|
|
|
if (res !== null && res !== void 0 && res.data) {
|
|
|
console.log(res.data);
|
|
|
setList(res === null || res === void 0 ? void 0 : res.data);
|
|
|
setTotal((res === null || res === void 0 ? void 0 : res.count) || 0);
|
|
|
}
|
|
|
setLoading(false);
|
|
|
case 6:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return function getData(_x2) {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleChangePage = function handleChangePage(page, limit) {
|
|
|
var newParams = objectSpread2_default()(objectSpread2_default()({}, params), {}, {
|
|
|
page: page,
|
|
|
limit: limit
|
|
|
});
|
|
|
setParams(newParams);
|
|
|
getData(newParams);
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
title: "\u7981\u6B62\u8BC4\u8BBA\u7528\u6237\u5217\u8868",
|
|
|
open: visible,
|
|
|
footer: null,
|
|
|
centered: true,
|
|
|
onCancel: function onCancel() {
|
|
|
setParams({
|
|
|
page: 1,
|
|
|
limit: 10
|
|
|
});
|
|
|
_onCancel();
|
|
|
},
|
|
|
width: 900,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, {
|
|
|
dataSource: list,
|
|
|
rowKey: function rowKey(v) {
|
|
|
return v.id;
|
|
|
},
|
|
|
columns: columns,
|
|
|
loading: loading,
|
|
|
pagination: {
|
|
|
pageSize: params.limit,
|
|
|
total: total,
|
|
|
current: params.page,
|
|
|
onChange: handleChangePage,
|
|
|
showQuickJumper: true,
|
|
|
hideOnSinglePage: true,
|
|
|
position: ["bottomCenter"]
|
|
|
}
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var Discuss_modal = (CustomModal);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
|
|
|
var es_button = __webpack_require__(3113);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Shixuns/Detail/Discuss/index.tsx
|
|
|
|
|
|
|
|
|
var _excluded = ["shixunsDetail", "globalSetting", "loading", "user", "dispatch"];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var ShixunDiscuss = function ShixunDiscuss(_ref) {
|
|
|
var _user$userInfo, _shixunsDetail$detail, _user$userInfo2;
|
|
|
var shixunsDetail = _ref.shixunsDetail,
|
|
|
globalSetting = _ref.globalSetting,
|
|
|
loading = _ref.loading,
|
|
|
user = _ref.user,
|
|
|
dispatch = _ref.dispatch,
|
|
|
props = objectWithoutProperties_default()(_ref, _excluded);
|
|
|
var own = (_user$userInfo = user.userInfo) === null || _user$userInfo === void 0 || (_user$userInfo = _user$userInfo.shixun) === null || _user$userInfo === void 0 ? void 0 : _user$userInfo.own;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
visible = _useState2[0],
|
|
|
setVisible = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(0),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
keyIndex = _useState4[0],
|
|
|
setKeyIndex = _useState4[1];
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
|
|
|
className: Discussmodules.bg,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Discussmodules.wrap,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Discussmodules.btn,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "font16 c-grey-333 bold",
|
|
|
children: "\u5B9E\u8DF5\u9879\u76EE\u8BC4\u8BBA"
|
|
|
}), own && /*#__PURE__*/(0,jsx_runtime.jsxs)(es_button/* default */.ZP, {
|
|
|
onClick: function onClick() {
|
|
|
return setVisible(true);
|
|
|
},
|
|
|
type: "link",
|
|
|
children: ["\u7981\u6B62\u8BC4\u8BBA\u7528\u6237\u5217\u8868", /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-lujing font14 ml5"
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(discuss/* default */.Z, {
|
|
|
activeIndex: 3,
|
|
|
shixunIdentifier: (_shixunsDetail$detail = shixunsDetail.detail) === null || _shixunsDetail$detail === void 0 ? void 0 : _shixunsDetail$detail.identifier,
|
|
|
identity: (_user$userInfo2 = user.userInfo) === null || _user$userInfo2 === void 0 ? void 0 : _user$userInfo2.role,
|
|
|
user: user.userInfo,
|
|
|
isShixunDetail: true,
|
|
|
allowDisableDiscuss: own
|
|
|
}, keyIndex)]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(Right/* default */.Z, {}), /*#__PURE__*/(0,jsx_runtime.jsx)(image_preview/* default */.Z, {}), /*#__PURE__*/(0,jsx_runtime.jsx)(Discuss_modal, {
|
|
|
visible: visible,
|
|
|
onCancel: function onCancel() {
|
|
|
setVisible(false);
|
|
|
setKeyIndex(keyIndex + 1);
|
|
|
}
|
|
|
})]
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var Discuss = ((0,_umi_production_exports.connect)(function (_ref2) {
|
|
|
var shixunsDetail = _ref2.shixunsDetail,
|
|
|
loading = _ref2.loading,
|
|
|
globalSetting = _ref2.globalSetting,
|
|
|
user = _ref2.user;
|
|
|
return {
|
|
|
shixunsDetail: shixunsDetail,
|
|
|
globalSetting: globalSetting,
|
|
|
user: user,
|
|
|
loading: loading
|
|
|
};
|
|
|
})(ShixunDiscuss));
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 94724:
|
|
|
/*!*************************************************************************!*\
|
|
|
!*** ./src/pages/Shixuns/Detail/components/Right/index.tsx + 4 modules ***!
|
|
|
\*************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ components_Right; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(11006);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectWithoutProperties.js
|
|
|
var objectWithoutProperties = __webpack_require__(27161);
|
|
|
var objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 15 modules
|
|
|
var _umi_production_exports = __webpack_require__(49266);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/progress/index.js + 13 modules
|
|
|
var progress = __webpack_require__(93948);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tooltip/index.js + 3 modules
|
|
|
var tooltip = __webpack_require__(6848);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Shixuns/Detail/components/Right/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var Rightmodules = ({"flex_box_center":"flex_box_center___PT9hL","flex_space_between":"flex_space_between___n2Hu5","flex_box_vertical_center":"flex_box_vertical_center___dwn6D","flex_box_center_end":"flex_box_center_end___TwHBO","flex_box_column":"flex_box_column___eAUqU","rightWrap":"rightWrap___Y_2WO","learnWrap":"learnWrap___mca1k","learnTopWrap":"learnTopWrap___cn6Tj","courseWrap":"courseWrap___N3Z6X","pathWrap":"pathWrap___QSdXs","pathImg":"pathImg___VjPqu","pathContentItem":"pathContentItem___sxOSQ","pathContentWrap":"pathContentWrap___WttwX","pathContentName":"pathContentName___evsEv","pathContent":"pathContent___fz4ds","pathContentCount":"pathContentCount___Jlv3G","recommandTrainingWrap":"recommandTrainingWrap___F1gpg","recommandContent":"recommandContent___JZYAA","recommandLevel":"recommandLevel___McDUw","color0152d9":"color0152d9___JWNjt","color999":"color999___npg2L","color888":"color888___l_1AP","color333":"color333___ec_mY","iconDeleteColor":"iconDeleteColor___aZjDG","iconMoveColor":"iconMoveColor___z4k0w","iconEditColor":"iconEditColor___wxNTY","skillWrap":"skillWrap___j6j3B","skillTopWrap":"skillTopWrap___kIJbE","time":"time___dTwAe","titleImg":"titleImg___I8kT9"});
|
|
|
;// CONCATENATED MODULE: ./src/assets/images/icons/learn.svg
|
|
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
|
var __defProp = Object.defineProperty;
|
|
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
|
var __defNormalProp = function __defNormalProp(obj, key, value) {
|
|
|
return key in obj ? __defProp(obj, key, {
|
|
|
enumerable: true,
|
|
|
configurable: true,
|
|
|
writable: true,
|
|
|
value: value
|
|
|
}) : obj[key] = value;
|
|
|
};
|
|
|
var __spreadValues = function __spreadValues(a, b) {
|
|
|
for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
|
if (__getOwnPropSymbols) {
|
|
|
var _iterator = _createForOfIteratorHelper(__getOwnPropSymbols(b)),
|
|
|
_step;
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var prop = _step.value;
|
|
|
if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
}
|
|
|
return a;
|
|
|
};
|
|
|
|
|
|
var SvgLearn = function SvgLearn(props) {
|
|
|
return /* @__PURE__ */React.createElement("svg", __spreadValues({
|
|
|
width: 22,
|
|
|
height: 22,
|
|
|
xmlns: "http://www.w3.org/2000/svg"
|
|
|
}, props), /* @__PURE__ */React.createElement("title", null, "\u5B66\u4E60\u8FDB\u5EA6"), /* @__PURE__ */React.createElement("g", {
|
|
|
fill: "none",
|
|
|
fillRule: "evenodd"
|
|
|
}, /* @__PURE__ */React.createElement("path", {
|
|
|
d: "M10 2c.02 0 .03.75.032 1.839l.03 8.16H9.19l-3.932 6.005h.98L10.062 12H20c0 5.523-4.477 10-10 10S0 17.523 0 12 4.477 2 10 2Zm-.348 12.938c-.463 0-.834.147-1.113.443-.279.295-.418.693-.418 1.193 0 .453.13.819.39 1.096.261.277.606.416 1.036.416.458 0 .827-.148 1.105-.443.279-.296.418-.691.418-1.186 0-.482-.124-.855-.373-1.121-.248-.266-.597-.399-1.045-.399Zm-.039.71c.185 0 .333.074.444.221.11.147.166.358.166.631 0 .583-.209.875-.625.875-.414 0-.621-.281-.621-.844 0-.588.212-.883.636-.883Zm-3.715-3.78c-.468 0-.84.148-1.115.446-.275.299-.412.695-.412 1.19 0 .453.13.818.389 1.094.259.276.605.414 1.037.414.46 0 .83-.147 1.105-.442.276-.294.414-.686.414-1.175 0-.477-.124-.85-.373-1.122-.248-.27-.597-.406-1.045-.406Zm-.023.71c.401 0 .602.283.602.848 0 .583-.21.875-.63.875-.41 0-.617-.28-.617-.84 0-.589.215-.883.645-.883Z",
|
|
|
fill: "#1890FF"
|
|
|
}), /* @__PURE__ */React.createElement("path", {
|
|
|
d: "M11 0c5.982 0 10.848 4.774 10.997 10.72L22 11h-3.667c0-3.974-3.16-7.21-7.105-7.33L11 3.667V0Z",
|
|
|
fill: "#B6D0FC",
|
|
|
fillRule: "nonzero"
|
|
|
})));
|
|
|
};
|
|
|
|
|
|
/* harmony default export */ var learn = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTAgMmMuMDIgMCAuMDMuNzUuMDMyIDEuODM5bC4wMyA4LjE2SDkuMTlsLTMuOTMyIDYuMDA1aC45OEwxMC4wNjIgMTJIMjBjMCA1LjUyMy00LjQ3NyAxMC0xMCAxMFMwIDE3LjUyMyAwIDEyIDQuNDc3IDIgMTAgMlptLS4zNDggMTIuOTM4Yy0uNDYzIDAtLjgzNC4xNDctMS4xMTMuNDQzLS4yNzkuMjk1LS40MTguNjkzLS40MTggMS4xOTMgMCAuNDUzLjEzLjgxOS4zOSAxLjA5Ni4yNjEuMjc3LjYwNi40MTYgMS4wMzYuNDE2LjQ1OCAwIC44MjctLjE0OCAxLjEwNS0uNDQzLjI3OS0uMjk2LjQxOC0uNjkxLjQxOC0xLjE4NiAwLS40ODItLjEyNC0uODU1LS4zNzMtMS4xMjEtLjI0OC0uMjY2LS41OTctLjM5OS0xLjA0NS0uMzk5Wm0tLjAzOS43MWMuMTg1IDAgLjMzMy4wNzQuNDQ0LjIyMS4xMS4xNDcuMTY2LjM1OC4xNjYuNjMxIDAgLjU4My0uMjA5Ljg3NS0uNjI1Ljg3NS0uNDE0IDAtLjYyMS0uMjgxLS42MjEtLjg0NCAwLS41ODguMjEyLS44ODMuNjM2LS44ODNabS0zLjcxNS0zLjc4Yy0uNDY4IDAtLjg0LjE0OC0xLjExNS40NDYtLjI3NS4yOTktLjQxMi42OTUtLjQxMiAxLjE5IDAgLjQ1My4xMy44MTguMzg5IDEuMDk0LjI1OS4yNzYuNjA1LjQxNCAxLjAzNy40MTQuNDYgMCAuODMtLjE0NyAxLjEwNS0uNDQyLjI3Ni0uMjk0LjQxNC0uNjg2LjQxNC0xLjE3NSAwLS40NzctLjEyNC0uODUtLjM3My0xLjEyMi0uMjQ4LS4yNy0uNTk3LS40MDYtMS4wNDUtLjQwNlptLS4wMjMuNzFjLjQwMSAwIC42MDIuMjgzLjYwMi44NDggMCAuNTgzLS4yMS44NzUtLjYzLjg3NS0uNDEgMC0uNjE3LS4yOC0uNjE3LS44NCAwLS41ODkuMjE1LS44ODMuNjQ1LS44ODNaIiBmaWxsPSIjMTg5MEZGIi8+PHBhdGggZD0iTTExIDBjNS45ODIgMCAxMC44NDggNC43NzQgMTAuOTk3IDEwLjcyTDIyIDExaC0zLjY2N2MwLTMuOTc0LTMuMTYtNy4yMS03LjEwNS03LjMzTDExIDMuNjY3VjBaIiBmaWxsPSIjQjZEMEZDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L2c+PC9zdmc+");
|
|
|
;// CONCATENATED MODULE: ./src/assets/images/icons/course.svg
|
|
|
function course_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = course_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
|
function course_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return course_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return course_arrayLikeToArray(o, minLen); }
|
|
|
function course_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
|
var course_defProp = Object.defineProperty;
|
|
|
var course_getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
|
var course_hasOwnProp = Object.prototype.hasOwnProperty;
|
|
|
var course_propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
|
var course_defNormalProp = function __defNormalProp(obj, key, value) {
|
|
|
return key in obj ? course_defProp(obj, key, {
|
|
|
enumerable: true,
|
|
|
configurable: true,
|
|
|
writable: true,
|
|
|
value: value
|
|
|
}) : obj[key] = value;
|
|
|
};
|
|
|
var course_spreadValues = function __spreadValues(a, b) {
|
|
|
for (var prop in b || (b = {})) if (course_hasOwnProp.call(b, prop)) course_defNormalProp(a, prop, b[prop]);
|
|
|
if (course_getOwnPropSymbols) {
|
|
|
var _iterator = course_createForOfIteratorHelper(course_getOwnPropSymbols(b)),
|
|
|
_step;
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var prop = _step.value;
|
|
|
if (course_propIsEnum.call(b, prop)) course_defNormalProp(a, prop, b[prop]);
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
}
|
|
|
return a;
|
|
|
};
|
|
|
|
|
|
var SvgCourse = function SvgCourse(props) {
|
|
|
return /* @__PURE__ */React.createElement("svg", course_spreadValues({
|
|
|
width: 22,
|
|
|
height: 20,
|
|
|
xmlns: "http://www.w3.org/2000/svg"
|
|
|
}, props), /* @__PURE__ */React.createElement("title", null, "\u6240\u5C5E\u8BFE\u7A0B"), /* @__PURE__ */React.createElement("g", {
|
|
|
fillRule: "nonzero",
|
|
|
fill: "none"
|
|
|
}, /* @__PURE__ */React.createElement("path", {
|
|
|
d: "M1.248.026h2.495c.833 0 1.249.415 1.249 1.243v17.39c0 .829-.416 1.243-1.249 1.243H1.248C.416 19.902 0 19.488 0 18.66V1.27C0 .44.416.025 1.248.025ZM7.488.026h2.496c.832 0 1.248.415 1.248 1.243v17.39c0 .829-.416 1.243-1.248 1.243H7.488c-.832 0-1.248-.414-1.248-1.242V1.27c0-.83.416-1.244 1.248-1.244Z",
|
|
|
fill: "#5091FF"
|
|
|
}), /* @__PURE__ */React.createElement("path", {
|
|
|
d: "m13.404.688 2.412-.646c.32-.085.66-.04.947.124.287.165.496.437.582.755l4.522 16.8a1.242 1.242 0 0 1-.883 1.52l-2.411.644a1.249 1.249 0 0 1-1.528-.879L12.522 2.208a1.238 1.238 0 0 1 .124-.943c.166-.285.439-.494.758-.579v.002Z",
|
|
|
fill: "#B6D0FC"
|
|
|
})));
|
|
|
};
|
|
|
|
|
|
/* harmony default export */ var course = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMS4yNDguMDI2aDIuNDk1Yy44MzMgMCAxLjI0OS40MTUgMS4yNDkgMS4yNDN2MTcuMzljMCAuODI5LS40MTYgMS4yNDMtMS4yNDkgMS4yNDNIMS4yNDhDLjQxNiAxOS45MDIgMCAxOS40ODggMCAxOC42NlYxLjI3QzAgLjQ0LjQxNi4wMjUgMS4yNDguMDI1Wk03LjQ4OC4wMjZoMi40OTZjLjgzMiAwIDEuMjQ4LjQxNSAxLjI0OCAxLjI0M3YxNy4zOWMwIC44MjktLjQxNiAxLjI0My0xLjI0OCAxLjI0M0g3LjQ4OGMtLjgzMiAwLTEuMjQ4LS40MTQtMS4yNDgtMS4yNDJWMS4yN2MwLS44My40MTYtMS4yNDQgMS4yNDgtMS4yNDRaIiBmaWxsPSIjNTA5MUZGIi8+PHBhdGggZD0ibTEzLjQwNC42ODggMi40MTItLjY0NmMuMzItLjA4NS42Ni0uMDQuOTQ3LjEyNC4yODcuMTY1LjQ5Ni40MzcuNTgyLjc1NWw0LjUyMiAxNi44YTEuMjQyIDEuMjQyIDAgMCAxLS44ODMgMS41MmwtMi40MTEuNjQ0YTEuMjQ5IDEuMjQ5IDAgMCAxLTEuNTI4LS44NzlMMTIuNTIyIDIuMjA4YTEuMjM4IDEuMjM4IDAgMCAxIC4xMjQtLjk0M2MuMTY2LS4yODUuNDM5LS40OTQuNzU4LS41Nzl2LjAwMloiIGZpbGw9IiNCNkQwRkMiLz48L2c+PC9zdmc+");
|
|
|
;// CONCATENATED MODULE: ./src/assets/images/icons/star.svg
|
|
|
function star_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = star_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
|
function star_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return star_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return star_arrayLikeToArray(o, minLen); }
|
|
|
function star_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
|
var star_defProp = Object.defineProperty;
|
|
|
var star_getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
|
var star_hasOwnProp = Object.prototype.hasOwnProperty;
|
|
|
var star_propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
|
var star_defNormalProp = function __defNormalProp(obj, key, value) {
|
|
|
return key in obj ? star_defProp(obj, key, {
|
|
|
enumerable: true,
|
|
|
configurable: true,
|
|
|
writable: true,
|
|
|
value: value
|
|
|
}) : obj[key] = value;
|
|
|
};
|
|
|
var star_spreadValues = function __spreadValues(a, b) {
|
|
|
for (var prop in b || (b = {})) if (star_hasOwnProp.call(b, prop)) star_defNormalProp(a, prop, b[prop]);
|
|
|
if (star_getOwnPropSymbols) {
|
|
|
var _iterator = star_createForOfIteratorHelper(star_getOwnPropSymbols(b)),
|
|
|
_step;
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var prop = _step.value;
|
|
|
if (star_propIsEnum.call(b, prop)) star_defNormalProp(a, prop, b[prop]);
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
}
|
|
|
return a;
|
|
|
};
|
|
|
|
|
|
var SvgStar = function SvgStar(props) {
|
|
|
return /* @__PURE__ */React.createElement("svg", star_spreadValues({
|
|
|
width: 22,
|
|
|
height: 22,
|
|
|
xmlns: "http://www.w3.org/2000/svg"
|
|
|
}, props), /* @__PURE__ */React.createElement("title", null, "\u63A8\u8350\u5B9E\u8BAD"), /* @__PURE__ */React.createElement("g", {
|
|
|
fillRule: "nonzero",
|
|
|
fill: "none"
|
|
|
}, /* @__PURE__ */React.createElement("path", {
|
|
|
d: "M15.503 21.896a2.067 2.067 0 0 1-.87-.201 451.987 451.987 0 0 1-4.376-2.11c-1.466.69-2.931 1.384-4.396 2.08-.674.299-1.33.26-1.816-.096-.458-.335-.685-.912-.624-1.579.173-1.56.465-3.693.574-4.485a188.029 188.029 0 0 1-3.587-3.922 1.5 1.5 0 0 1-.3-1.51c.213-.574.76-.982 1.472-1.086l4.655-.853A512.95 512.95 0 0 1 8.787 3.73c.717-1.344 1.426-1.344 1.8-1.209.407.134.792.531 1.177 1.223.829 1.433 2.08 3.642 2.504 4.391l4.61.858c.678.1 1.218.507 1.428 1.084a1.507 1.507 0 0 1-.286 1.504 192.808 192.808 0 0 1-3.556 3.944c.104.788.388 2.927.573 4.479.071.685-.152 1.269-.616 1.609a1.55 1.55 0 0 1-.916.284h-.002Z",
|
|
|
fill: "#5091FF"
|
|
|
}), /* @__PURE__ */React.createElement("path", {
|
|
|
d: "M21.706 4.462a.557.557 0 0 1-.247.073c-.45.03-1.122.067-1.397.08l-.778 1.2c-.122.18-.29.265-.464.24-.163-.02-.306-.14-.39-.329a60.81 60.81 0 0 1-.529-1.278 53.009 53.009 0 0 1-1.476-.518.475.475 0 0 1-.3-.36.533.533 0 0 1 .2-.505l1.025-.91c-.011-.516-.02-1.032-.028-1.548-.024-.463.15-.568.264-.585.121-.026.275.024.474.151.419.262 1.06.667 1.277.804l1.27-.448a.49.49 0 0 1 .515.08c.124.11.183.28.155.441-.09.526-.186 1.052-.29 1.574.145.194.536.722.814 1.11.12.172.152.36.088.518a.435.435 0 0 1-.185.21h.002ZM2.859 5.83a.287.287 0 0 1-.093-.091 62.17 62.17 0 0 1-.382-.603 49.99 49.99 0 0 0-.7-.045c-.106-.01-.185-.063-.218-.146a.276.276 0 0 1 .04-.255c.14-.197.334-.46.407-.557a28.397 28.397 0 0 1-.149-.786.243.243 0 0 1 .076-.223.25.25 0 0 1 .264-.037l.64.228c.108-.068.431-.27.644-.398.19-.128.278-.075.314-.03.04.047.059.128.054.25l-.019.768.506.453a.258.258 0 0 1 .095.249.238.238 0 0 1-.147.178c-.245.092-.49.18-.736.265-.047.113-.171.42-.264.64-.044.095-.115.159-.197.168a.208.208 0 0 1-.135-.028Z",
|
|
|
fill: "#B6D0FC"
|
|
|
})));
|
|
|
};
|
|
|
|
|
|
/* harmony default export */ var star = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMTUuNTAzIDIxLjg5NmEyLjA2NyAyLjA2NyAwIDAgMS0uODctLjIwMSA0NTEuOTg3IDQ1MS45ODcgMCAwIDEtNC4zNzYtMi4xMWMtMS40NjYuNjktMi45MzEgMS4zODQtNC4zOTYgMi4wOC0uNjc0LjI5OS0xLjMzLjI2LTEuODE2LS4wOTYtLjQ1OC0uMzM1LS42ODUtLjkxMi0uNjI0LTEuNTc5LjE3My0xLjU2LjQ2NS0zLjY5My41NzQtNC40ODVhMTg4LjAyOSAxODguMDI5IDAgMCAxLTMuNTg3LTMuOTIyIDEuNSAxLjUgMCAwIDEtLjMtMS41MWMuMjEzLS41NzQuNzYtLjk4MiAxLjQ3Mi0xLjA4Nmw0LjY1NS0uODUzQTUxMi45NSA1MTIuOTUgMCAwIDEgOC43ODcgMy43M2MuNzE3LTEuMzQ0IDEuNDI2LTEuMzQ0IDEuOC0xLjIwOS40MDcuMTM0Ljc5Mi41MzEgMS4xNzcgMS4yMjMuODI5IDEuNDMzIDIuMDggMy42NDIgMi41MDQgNC4zOTFsNC42MS44NThjLjY3OC4xIDEuMjE4LjUwNyAxLjQyOCAxLjA4NGExLjUwNyAxLjUwNyAwIDAgMS0uMjg2IDEuNTA0IDE5Mi44MDggMTkyLjgwOCAwIDAgMS0zLjU1NiAzLjk0NGMuMTA0Ljc4OC4zODggMi45MjcuNTczIDQuNDc5LjA3MS42ODUtLjE1MiAxLjI2OS0uNjE2IDEuNjA5YTEuNTUgMS41NSAwIDAgMS0uOTE2LjI4NGgtLjAwMloiIGZpbGw9IiM1MDkxRkYiLz48cGF0aCBkPSJNMjEuNzA2IDQuNDYyYS41NTcuNTU3IDAgMCAxLS4yNDcuMDczYy0uNDUuMDMtMS4xMjIuMDY3LTEuMzk3LjA4bC0uNzc4IDEuMmMtLjEyMi4xOC0uMjkuMjY1LS40NjQuMjQtLjE2My0uMDItLjMwNi0uMTQtLjM5LS4zMjlhNjAuODEgNjAuODEgMCAwIDEtLjUyOS0xLjI3OCA1My4wMDkgNTMuMDA5IDAgMCAxLTEuNDc2LS41MTguNDc1LjQ3NSAwIDAgMS0uMy0uMzYuNTMzLjUzMyAwIDAgMSAuMi0uNTA1bDEuMDI1LS45MWMtLjAxMS0uNTE2LS4wMi0xLjAzMi0uMDI4LTEuNTQ4LS4wMjQtLjQ2My4xNS0uNTY4LjI2NC0uNTg1LjEyMS0uMDI2LjI3NS4wMjQuNDc0LjE1MS40MTkuMjYyIDEuMDYuNjY3IDEuMjc3LjgwNGwxLjI3LS40NDhhLjQ5LjQ5IDAgMCAxIC41MTUuMDhjLjEyNC4xMS4xODMuMjguMTU1LjQ0MS0uMDkuNTI2LS4xODYgMS4wNTItLjI5IDEuNTc0LjE0NS4xOTQuNTM2LjcyMi44MTQgMS4xMS4xMi4xNzIuMTUyLjM2LjA4OC41MThhLjQzNS40MzUgMCAwIDEtLjE4NS4yMWguMDAyWk0yLjg1OSA1LjgzYS4yODcuMjg3IDAgMCAxLS4wOTMtLjA5MSA2Mi4xNyA2Mi4xNyAwIDAgMS0uMzgyLS42MDMgNDkuOTkgNDkuOTkgMCAwIDAtLjctLjA0NWMtLjEwNi0uMDEtLjE4NS0uMDYzLS4yMTgtLjE0NmEuMjc2LjI3NiAwIDAgMSAuMDQtLjI1NWMuMTQtLjE5Ny4zMzQtLjQ2LjQwNy0uNTU3YTI4LjM5NyAyOC4zOTcgMCAwIDEtLjE0OS0uNzg2LjI0My4yNDMgMCAwIDEgLjA3Ni0uMjIzLjI1LjI1IDAgMCAxIC4yNjQtLjAzN2wuNjQuMjI4Yy4xMDgtLjA2OC40MzEtLjI3LjY0NC0uMzk4LjE5LS4xMjguMjc4LS4wNzUuMzE0LS4wMy4wNC4wNDcuMDU5LjEyOC4wNTQuMjVsLS4wMTkuNzY4LjUwNi40NTNhLjI1OC4yNTggMCAwIDEgLjA5NS4yNDkuMjM4LjIzOCAwIDAgMS0uMTQ3LjE3OGMtLjI0NS4wOTItLjQ5LjE4LS43MzYuMjY1LS4wNDcuMTEzLS4xNzEuNDItLjI2NC42NC0uMDQ0LjA5NS0uMTE1LjE1OS0uMTk3LjE2OGEuMjA4LjIwOCAwIDAgMS0uMTM1LS4wMjhaIiBmaWxsPSIjQjZEMEZDIi8+PC9nPjwvc3ZnPg==");
|
|
|
// EXTERNAL MODULE: ./node_modules/_echarts-for-react@2.0.16@echarts-for-react/lib/index.js
|
|
|
var lib = __webpack_require__(42441);
|
|
|
// EXTERNAL MODULE: ./src/components/ImagesIcon/index.ts + 32 modules
|
|
|
var ImagesIcon = __webpack_require__(12416);
|
|
|
// EXTERNAL MODULE: ./node_modules/_echarts-wordcloud@1.1.3@echarts-wordcloud/index.js
|
|
|
var _echarts_wordcloud_1_1_3_echarts_wordcloud = __webpack_require__(56047);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Shixuns/Detail/components/Right/index.tsx
|
|
|
|
|
|
|
|
|
var _excluded = ["shixunsDetail", "user", "globalSetting", "loading", "dispatch"];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Right = function Right(_ref) {
|
|
|
var _shixunsDetail$rightD2, _shixunsDetail$rightD3, _shixunsDetail$rightD4, _shixunsDetail$detail, _shixunsDetail$detail2, _user$userInfo, _shixunsDetail$rightD5, _shixunsDetail$rightD6, _shixunsDetail$rightD7, _shixunsDetail$rightD8, _shixunsDetail$rightD9, _shixunsDetail$rightD10, _shixunsDetail$rightD11, _shixunsDetail$detail3, _shixunsDetail$rightD12, _shixunsDetail$rightD13, _shixunsDetail$rightD14;
|
|
|
var shixunsDetail = _ref.shixunsDetail,
|
|
|
user = _ref.user,
|
|
|
globalSetting = _ref.globalSetting,
|
|
|
loading = _ref.loading,
|
|
|
dispatch = _ref.dispatch,
|
|
|
props = objectWithoutProperties_default()(_ref, _excluded);
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(true),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
showExpandAll = _useState2[0],
|
|
|
setShowExpandAll = _useState2[1];
|
|
|
var getOption = function getOption() {
|
|
|
var _shixunsDetail$rightD;
|
|
|
var maskImage = new Image();
|
|
|
// 此为词云图呈现形状的图片base64码,可选,可以自定义图片
|
|
|
maskImage.src = ImagesIcon/* hbIcon */.yt;
|
|
|
// "data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI1NnB4IiBoZWlnaHQ9IjI1NnB4IiB2aWV3Qm94PSIwIDAgNTQ4LjE3NiA1NDguMTc2IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1NDguMTc2IDU0OC4xNzY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNTI0LjE4MywyOTcuMDY1Yy0xNS45ODUtMTkuODkzLTM2LjI2NS0zMi42OTEtNjAuODE1LTM4LjM5OWM3LjgxLTExLjk5MywxMS43MDQtMjUuMTI2LDExLjcwNC0zOS4zOTkgICBjMC0yMC4xNzctNy4xMzktMzcuNDAxLTIxLjQwOS01MS42NzhjLTE0LjI3My0xNC4yNzItMzEuNDk4LTIxLjQxMS01MS42NzUtMjEuNDExYy0xOC4yNzEsMC0zNC4wNzEsNS45MDEtNDcuMzksMTcuNzAzICAgYy0xMS4yMjUtMjcuMDI4LTI5LjA3NS00OC45MTctNTMuNTI5LTY1LjY2N2MtMjQuNDYtMTYuNzQ2LTUxLjcyOC0yNS4xMjUtODEuODAyLTI1LjEyNWMtNDAuMzQ5LDAtNzQuODAyLDE0LjI3OS0xMDMuMzUzLDQyLjgzICAgYy0yOC41NTMsMjguNTQ0LTQyLjgyNSw2Mi45OTktNDIuODI1LDEwMy4zNTFjMCwyLjg1NiwwLjE5MSw2Ljk0NSwwLjU3MSwxMi4yNzVjLTIyLjA3OCwxMC4yNzktMzkuODc2LDI1LjgzOC01My4zODksNDYuNjg2ICAgQzYuNzU5LDI5OS4wNjcsMCwzMjIuMDU1LDAsMzQ3LjE4YzAsMzUuMjExLDEyLjUxNyw2NS4zMzMsMzcuNTQ0LDkwLjM1OWMyNS4wMjgsMjUuMDMzLDU1LjE1LDM3LjU0OCw5MC4zNjIsMzcuNTQ4aDMxMC42MzYgICBjMzAuMjU5LDAsNTYuMDk2LTEwLjcxNSw3Ny41MTItMzIuMTIxYzIxLjQxMy0yMS40MTIsMzIuMTIxLTQ3LjI0OSwzMi4xMjEtNzcuNTE1ICAgQzU0OC4xNzIsMzM5Ljc1Nyw1NDAuMTc0LDMxNi45NTIsNTI0LjE4MywyOTcuMDY1eiIgZmlsbD0iI0ZGRkZGRiIvPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=";
|
|
|
|
|
|
var wordData = (shixunsDetail === null || shixunsDetail === void 0 || (_shixunsDetail$rightD = shixunsDetail.rightData) === null || _shixunsDetail$rightD === void 0 || (_shixunsDetail$rightD = _shixunsDetail$rightD.tags) === null || _shixunsDetail$rightD === void 0 ? void 0 : _shixunsDetail$rightD.map(function (item, key) {
|
|
|
return {
|
|
|
name: item.tag_name,
|
|
|
value: key
|
|
|
};
|
|
|
})) || [];
|
|
|
var option = {
|
|
|
backgroundColor: "#fff",
|
|
|
tooltip: {
|
|
|
pointFormat: "{series.name}</b>"
|
|
|
},
|
|
|
series: [{
|
|
|
type: "wordCloud",
|
|
|
sizeRange: [10, 30],
|
|
|
rotationRange: [-90, 90],
|
|
|
rotationStep: 45,
|
|
|
gridSize: 2,
|
|
|
shape: 'pentagon',
|
|
|
//circle pentagon
|
|
|
maskImage: maskImage,
|
|
|
// 呈现形状图片, 可选
|
|
|
textStyle: {
|
|
|
normal: {
|
|
|
color: function color() {
|
|
|
return "rgb(" + Math.round(Math.random() * 255) + ", " + Math.round(Math.random() * 255) + ", " + Math.round(Math.random() * 255) + ")";
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
// Folllowing left/top/width/height/right/bottom are used for positioning the word cloud
|
|
|
// Default to be put in the center and has 75% x 80% size.
|
|
|
left: "center",
|
|
|
top: "center",
|
|
|
right: null,
|
|
|
bottom: null,
|
|
|
width: "100%",
|
|
|
height: "100%",
|
|
|
data: wordData
|
|
|
}]
|
|
|
};
|
|
|
return option;
|
|
|
};
|
|
|
console.log('----', shixunsDetail);
|
|
|
var progressPercent = (_shixunsDetail$rightD2 = shixunsDetail.rightData) !== null && _shixunsDetail$rightD2 !== void 0 && _shixunsDetail$rightD2.complete_count ? Number((_shixunsDetail$rightD3 = shixunsDetail.rightData) === null || _shixunsDetail$rightD3 === void 0 ? void 0 : _shixunsDetail$rightD3.complete_count) / Number((_shixunsDetail$rightD4 = shixunsDetail.rightData) === null || _shixunsDetail$rightD4 === void 0 ? void 0 : _shixunsDetail$rightD4.challenge_count) * 100 : 0;
|
|
|
return shixunsDetail.rightData ? /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
|
|
|
className: Rightmodules.rightWrap,
|
|
|
children: [!((_shixunsDetail$detail = shixunsDetail.detail) !== null && _shixunsDetail$detail !== void 0 && _shixunsDetail$detail.is_jupyter) && ((_shixunsDetail$detail2 = shixunsDetail.detail) === null || _shixunsDetail$detail2 === void 0 || (_shixunsDetail$detail2 = _shixunsDetail$detail2.task_operation) === null || _shixunsDetail$detail2 === void 0 ? void 0 : _shixunsDetail$detail2[2]) && (user === null || user === void 0 || (_user$userInfo = user.userInfo) === null || _user$userInfo === void 0 ? void 0 : _user$userInfo.login) && !!((_shixunsDetail$rightD5 = shixunsDetail.rightData) !== null && _shixunsDetail$rightD5 !== void 0 && _shixunsDetail$rightD5.complete_count) && ((_shixunsDetail$rightD6 = shixunsDetail.rightData) === null || _shixunsDetail$rightD6 === void 0 ? void 0 : _shixunsDetail$rightD6.complete_count) > 0 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Rightmodules.learnWrap,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Rightmodules.learnTopWrap,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
className: Rightmodules.titleImg,
|
|
|
src: learn,
|
|
|
alt: ""
|
|
|
}), "\u5B66\u4E60\u8FDB\u5EA6"]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: "".concat(Rightmodules.color888, " font14"),
|
|
|
children: ["\u5DF2\u5B8C\u6210 ", ((_shixunsDetail$rightD7 = shixunsDetail.rightData) === null || _shixunsDetail$rightD7 === void 0 ? void 0 : _shixunsDetail$rightD7.complete_count) || 0, " \u5173 / \u5171", ((_shixunsDetail$rightD8 = shixunsDetail.rightData) === null || _shixunsDetail$rightD8 === void 0 ? void 0 : _shixunsDetail$rightD8.challenge_count) || 0, " \u5173"]
|
|
|
})
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(progress/* default */.Z, {
|
|
|
percent: progressPercent,
|
|
|
showInfo: false,
|
|
|
status: "active",
|
|
|
strokeColor: {
|
|
|
'0%': '#29BD8B',
|
|
|
'100%': '#29BD8B'
|
|
|
}
|
|
|
})]
|
|
|
}), !!((_shixunsDetail$rightD9 = shixunsDetail.rightData) !== null && _shixunsDetail$rightD9 !== void 0 && (_shixunsDetail$rightD9 = _shixunsDetail$rightD9.paths) !== null && _shixunsDetail$rightD9 !== void 0 && _shixunsDetail$rightD9.length) && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Rightmodules.courseWrap,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
|
className: "mb20 font16",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
className: Rightmodules.titleImg,
|
|
|
src: course,
|
|
|
alt: ""
|
|
|
}), "\u6240\u5C5E\u8BFE\u7A0B"]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: (_shixunsDetail$rightD10 = shixunsDetail.rightData) === null || _shixunsDetail$rightD10 === void 0 ? void 0 : _shixunsDetail$rightD10.paths.map(function (item, key) {
|
|
|
if (key > 2) {
|
|
|
return null;
|
|
|
}
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Rightmodules.pathWrap,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
href: "/paths/".concat(item.id),
|
|
|
target: "_blank",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
alt: "\u5B9E\u8BAD",
|
|
|
src: "".concat(item.image_url),
|
|
|
className: Rightmodules.pathImg
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Rightmodules.pathContentWrap,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
href: "/paths/".concat(item.id),
|
|
|
target: "_blank",
|
|
|
className: Rightmodules.pathContentName,
|
|
|
children: item.name
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
|
className: Rightmodules.pathContent,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
placement: "bottom",
|
|
|
title: "\u7AE0\u8282",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: Rightmodules.pathContentCount,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-shixun mr3"
|
|
|
}), item.stages_count]
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
placement: "bottom",
|
|
|
title: "\u5B66\u4E60\u4EBA\u6570",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: Rightmodules.pathContentCount,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-chengyuan mr3"
|
|
|
}), item.members_count]
|
|
|
})
|
|
|
})]
|
|
|
})]
|
|
|
})]
|
|
|
}, item.id);
|
|
|
})
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {}), !!((_shixunsDetail$rightD11 = shixunsDetail.rightData) !== null && _shixunsDetail$rightD11 !== void 0 && (_shixunsDetail$rightD11 = _shixunsDetail$rightD11.recommands) !== null && _shixunsDetail$rightD11 !== void 0 && _shixunsDetail$rightD11.length) && user.userInfo.main_site && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Rightmodules.recommandTrainingWrap,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
|
className: "mb20 font16",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
className: Rightmodules.titleImg,
|
|
|
src: star,
|
|
|
alt: ""
|
|
|
}), (shixunsDetail === null || shixunsDetail === void 0 || (_shixunsDetail$detail3 = shixunsDetail.detail) === null || _shixunsDetail$detail3 === void 0 || (_shixunsDetail$detail3 = _shixunsDetail$detail3.disciplines) === null || _shixunsDetail$detail3 === void 0 ? void 0 : _shixunsDetail$detail3.length) > 0 ? '相关推荐' : '热门推荐']
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: (_shixunsDetail$rightD12 = shixunsDetail.rightData) === null || _shixunsDetail$rightD12 === void 0 ? void 0 : _shixunsDetail$rightD12.recommands.map(function (item, key) {
|
|
|
if (key > 2) {
|
|
|
return null;
|
|
|
}
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Rightmodules.pathContentItem,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
href: "/shixuns/".concat(item.identifier, "/challenges"),
|
|
|
target: "_blank",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
src: "".concat(item.pic),
|
|
|
className: Rightmodules.pathImg
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Rightmodules.pathContentWrap,
|
|
|
style: {
|
|
|
marginBottom: -4
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
placement: "bottom",
|
|
|
title: item.name,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
href: "/shixuns/".concat(item.identifier, "/challenges"),
|
|
|
target: "_blank",
|
|
|
className: Rightmodules.pathContentName,
|
|
|
children: item.name
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
|
className: "".concat(Rightmodules.pathContent, " ").concat(Rightmodules.recommandContent),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
children: [item.stu_num, " \u4EBA\u5B66\u4E60"]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: Rightmodules.recommandLevel,
|
|
|
children: item.level
|
|
|
})]
|
|
|
})]
|
|
|
})]
|
|
|
}, key);
|
|
|
})
|
|
|
})]
|
|
|
}), ((_shixunsDetail$rightD13 = shixunsDetail.rightData) === null || _shixunsDetail$rightD13 === void 0 || (_shixunsDetail$rightD13 = _shixunsDetail$rightD13.tags) === null || _shixunsDetail$rightD13 === void 0 ? void 0 : _shixunsDetail$rightD13.length) > 0 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Rightmodules.skillWrap,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
className: "".concat(Rightmodules.skillTopWrap, " font16 mb20"),
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
children: ["\u6280\u80FD\u6807\u7B7E", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "ml5 c-grey-c",
|
|
|
children: (_shixunsDetail$rightD14 = shixunsDetail.rightData) === null || _shixunsDetail$rightD14 === void 0 || (_shixunsDetail$rightD14 = _shixunsDetail$rightD14.tags) === null || _shixunsDetail$rightD14 === void 0 ? void 0 : _shixunsDetail$rightD14.length
|
|
|
})]
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(lib/* default */.Z, {
|
|
|
option: getOption(),
|
|
|
style: {
|
|
|
height: 370
|
|
|
},
|
|
|
opts: {
|
|
|
renderer: 'svg'
|
|
|
} // use svg to render the chart.
|
|
|
})]
|
|
|
})]
|
|
|
}) : null;
|
|
|
};
|
|
|
/* harmony default export */ var components_Right = ((0,_umi_production_exports.connect)(function (_ref2) {
|
|
|
var shixunsDetail = _ref2.shixunsDetail,
|
|
|
user = _ref2.user,
|
|
|
loading = _ref2.loading,
|
|
|
globalSetting = _ref2.globalSetting;
|
|
|
return {
|
|
|
shixunsDetail: shixunsDetail,
|
|
|
user: user,
|
|
|
globalSetting: globalSetting,
|
|
|
loading: loading.models.index
|
|
|
};
|
|
|
})(Right));
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 60116:
|
|
|
/*!*********************************************************************************!*\
|
|
|
!*** ./src/pages/tasks/left-panel/discuss/discuss-editor/index.tsx + 1 modules ***!
|
|
|
\*********************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ discuss_editor; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/regeneratorRuntime.js
|
|
|
var regeneratorRuntime = __webpack_require__(10574);
|
|
|
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/asyncToGenerator.js
|
|
|
var asyncToGenerator = __webpack_require__(39343);
|
|
|
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(11006);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/left-panel/discuss/discuss-editor/index.less
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules
|
|
|
var message = __webpack_require__(8591);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tooltip/index.js + 3 modules
|
|
|
var tooltip = __webpack_require__(6848);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/spin/index.js + 1 modules
|
|
|
var spin = __webpack_require__(71418);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/row/index.js
|
|
|
var row = __webpack_require__(95237);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/col/index.js
|
|
|
var col = __webpack_require__(43604);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/pagination/index.js + 10 modules
|
|
|
var pagination = __webpack_require__(41867);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
|
|
|
var es_button = __webpack_require__(3113);
|
|
|
// EXTERNAL MODULE: ./src/components/markdown-editor/index.tsx + 14 modules
|
|
|
var markdown_editor = __webpack_require__(55952);
|
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
|
var fetch = __webpack_require__(91506);
|
|
|
// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx + 1 modules
|
|
|
var RenderHtml = __webpack_require__(11436);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/left-panel/discuss/discuss-editor/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* harmony default export */ var discuss_editor = (function (_ref) {
|
|
|
var id = _ref.id,
|
|
|
activeDiscussIndex = _ref.activeDiscussIndex,
|
|
|
onReplyDiscuss = _ref.onReplyDiscuss,
|
|
|
adminOrOperator = _ref.adminOrOperator;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(''),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
value = _useState2[0],
|
|
|
setValue = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
isOpen = _useState4[0],
|
|
|
setIsOpen = _useState4[1];
|
|
|
function onChange(v) {
|
|
|
setValue(v);
|
|
|
}
|
|
|
function onCommit() {
|
|
|
if (!value) {
|
|
|
message/* default */.ZP.info('回复内容不能为空!');
|
|
|
return;
|
|
|
}
|
|
|
// console.log('--------','0');
|
|
|
|
|
|
// if(!getAuthentication()){
|
|
|
// Modal.confirm({
|
|
|
// title: '提示',
|
|
|
// centered: true,
|
|
|
// content: <div className="tc">您需要去完成您的职业认证,才能使用此功能</div>,
|
|
|
// okText: `立即完善`,
|
|
|
// cancelText: "稍后完善",
|
|
|
// onOk: () => {
|
|
|
// openNewWindow('/account/certification');
|
|
|
// }
|
|
|
// })
|
|
|
|
|
|
// }
|
|
|
// console.log('-------',getAuthentication());
|
|
|
|
|
|
onReplyDiscuss(id, value);
|
|
|
setValue('');
|
|
|
}
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (activeDiscussIndex != id) {
|
|
|
setIsOpen(false);
|
|
|
}
|
|
|
}, [activeDiscussIndex]);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "discuss-item-editor",
|
|
|
style: {
|
|
|
display: activeDiscussIndex === id ? 'block' : 'none',
|
|
|
width: '100%'
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor/* default */.Z, {
|
|
|
miniToolbar: true,
|
|
|
startInit: activeDiscussIndex === id,
|
|
|
defaultValue: value,
|
|
|
id: id,
|
|
|
noStorage: true,
|
|
|
watch: false,
|
|
|
height: 155,
|
|
|
placeholder: "\u6211\u8981\u56DE\u590D",
|
|
|
showResizeBar: true,
|
|
|
onChange: onChange,
|
|
|
extraUse: adminOrOperator && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
color: "#fff",
|
|
|
open: isOpen,
|
|
|
destroyTooltipOnHide: true,
|
|
|
title: RecommendAnswer({
|
|
|
id: id,
|
|
|
isOpen: isOpen,
|
|
|
activeDiscussIndex: activeDiscussIndex,
|
|
|
onChange: onChange,
|
|
|
setIsOpen: setIsOpen
|
|
|
}),
|
|
|
overlayStyle: {
|
|
|
maxWidth: 600
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
title: isOpen ? "关闭推荐" : "打开推荐",
|
|
|
onClick: function onClick() {
|
|
|
return setIsOpen(!isOpen);
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-dianzan11"
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
onClick: onCommit,
|
|
|
className: "btn-send",
|
|
|
children: "\u53D1\u9001"
|
|
|
})]
|
|
|
}, id);
|
|
|
});
|
|
|
var RecommendAnswer = function RecommendAnswer(props) {
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
loading = _useState6[0],
|
|
|
setLoading = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
resData = _useState8[0],
|
|
|
setResData = _useState8[1];
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)(1),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
answerIndex = _useState10[0],
|
|
|
setAnswerIndex = _useState10[1];
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (props !== null && props !== void 0 && props.isOpen) {
|
|
|
getData();
|
|
|
} else {
|
|
|
setAnswerIndex(1);
|
|
|
setResData([]);
|
|
|
}
|
|
|
}, [props === null || props === void 0 ? void 0 : props.isOpen]);
|
|
|
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:
|
|
|
setLoading(true);
|
|
|
_context.next = 3;
|
|
|
return (0,fetch/* default */.ZP)("/api/discusses/".concat(props === null || props === void 0 ? void 0 : props.id, "/recommend_answer.json"), {
|
|
|
method: 'get'
|
|
|
});
|
|
|
case 3:
|
|
|
res = _context.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) == 0) {
|
|
|
setResData(res === null || res === void 0 ? void 0 : res.answer);
|
|
|
}
|
|
|
setLoading(false);
|
|
|
case 6:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function getData() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(spin/* default */.Z, {
|
|
|
spinning: loading,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
color: "#000"
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
|
|
|
className: "font14",
|
|
|
style: {
|
|
|
maxHeight: 500,
|
|
|
overflow: "auto"
|
|
|
},
|
|
|
value: (resData === null || resData === void 0 ? void 0 : resData[answerIndex - 1]) || ""
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
|
|
|
justify: "end",
|
|
|
align: "middle",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(pagination/* default */.Z, {
|
|
|
simple: true,
|
|
|
current: answerIndex,
|
|
|
pageSize: 1,
|
|
|
total: (resData === null || resData === void 0 ? void 0 : resData.length) || 0,
|
|
|
onChange: function onChange(page) {
|
|
|
setAnswerIndex(page);
|
|
|
}
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
props === null || props === void 0 || props.onChange(resData === null || resData === void 0 ? void 0 : resData[answerIndex - 1]);
|
|
|
props === null || props === void 0 || props.setIsOpen(false);
|
|
|
case 2:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
})),
|
|
|
children: "\u586B\u5165\u6587\u672C\u6846"
|
|
|
})
|
|
|
})]
|
|
|
})]
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 4963:
|
|
|
/*!******************************************************************!*\
|
|
|
!*** ./src/pages/tasks/left-panel/discuss/index.jsx + 8 modules ***!
|
|
|
\******************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ discuss; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/regeneratorRuntime.js
|
|
|
var regeneratorRuntime = __webpack_require__(10574);
|
|
|
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/asyncToGenerator.js
|
|
|
var asyncToGenerator = __webpack_require__(39343);
|
|
|
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(11006);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectSpread2.js
|
|
|
var objectSpread2 = __webpack_require__(26801);
|
|
|
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/left-panel/discuss/index.less
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
// EXTERNAL MODULE: ./src/components/Spinner/index.tsx + 1 modules
|
|
|
var Spinner = __webpack_require__(40807);
|
|
|
// EXTERNAL MODULE: ./src/components/modal.tsx
|
|
|
var modal = __webpack_require__(83016);
|
|
|
// EXTERNAL MODULE: ./src/components/NoData/index.tsx
|
|
|
var NoData = __webpack_require__(73208);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
|
|
|
var es_modal = __webpack_require__(43418);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
|
|
|
var es_button = __webpack_require__(3113);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/pagination/index.js + 10 modules
|
|
|
var pagination = __webpack_require__(41867);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input-number/index.js + 14 modules
|
|
|
var input_number = __webpack_require__(85731);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/form/index.js + 19 modules
|
|
|
var es_form = __webpack_require__(78241);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/row/index.js
|
|
|
var row = __webpack_require__(95237);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/col/index.js
|
|
|
var col = __webpack_require__(43604);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/popover/index.js
|
|
|
var popover = __webpack_require__(60324);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/skeleton/index.js + 12 modules
|
|
|
var skeleton = __webpack_require__(59981);
|
|
|
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 15 modules
|
|
|
var _umi_production_exports = __webpack_require__(49266);
|
|
|
// EXTERNAL MODULE: ./src/components/mediator.js
|
|
|
var mediator = __webpack_require__(6655);
|
|
|
// EXTERNAL MODULE: ./src/pages/tasks/left-panel/discuss/service.js
|
|
|
var service = __webpack_require__(84637);
|
|
|
// EXTERNAL MODULE: ./src/components/ImagesIcon/index.ts + 32 modules
|
|
|
var ImagesIcon = __webpack_require__(12416);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/left-panel/discuss/components/AiAnswer.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Interest = function Interest(_ref) {
|
|
|
var pathsList = _ref.pathsList,
|
|
|
dispatch = _ref.dispatch;
|
|
|
var _Form$useForm = es_form/* default */.Z.useForm(),
|
|
|
_Form$useForm2 = slicedToArray_default()(_Form$useForm, 1),
|
|
|
form = _Form$useForm2[0];
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
subjects = _useState2[0],
|
|
|
setSubjects = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(true),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
loading = _useState4[0],
|
|
|
setLoading = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
visible = _useState6[0],
|
|
|
setVisible = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)({}),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
keyword = _useState8[0],
|
|
|
setKeyword = _useState8[1];
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)({
|
|
|
keyword: keyword,
|
|
|
robot: true,
|
|
|
page: 1
|
|
|
}),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
query = _useState10[0],
|
|
|
setQuery = _useState10[1];
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
// if (pathsList.actionTabs.key === '立即发布') {
|
|
|
// setIsShowStep1(true)
|
|
|
// } else {
|
|
|
// setIsShowStep1(false);
|
|
|
// }
|
|
|
mediator/* default */.Z.subscribe('ai-replay-show', function (data) {
|
|
|
setKeyword(data);
|
|
|
setVisible(true);
|
|
|
});
|
|
|
}, []);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (keyword !== null && keyword !== void 0 && keyword.id) getData();
|
|
|
}, [keyword]);
|
|
|
var getData = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(nextPage) {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
setLoading(true);
|
|
|
_context.next = 3;
|
|
|
return (0,service/* aiReply */.U_)(objectSpread2_default()(objectSpread2_default()({}, query), {}, {
|
|
|
keyword: keyword === null || keyword === void 0 ? void 0 : keyword.content,
|
|
|
id: keyword === null || keyword === void 0 ? void 0 : keyword.id
|
|
|
}));
|
|
|
case 3:
|
|
|
res = _context.sent;
|
|
|
setLoading(false);
|
|
|
if (res !== null && res !== void 0 && res.data) {
|
|
|
query.page++;
|
|
|
setQuery(objectSpread2_default()({}, query));
|
|
|
setSubjects(res === null || res === void 0 ? void 0 : res.data);
|
|
|
}
|
|
|
case 6:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function getData(_x) {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleOk = /*#__PURE__*/function () {
|
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
getData();
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return function handleOk() {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var content = /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
src: ImagesIcon/* qrCodeIcon */.wC,
|
|
|
width: 150
|
|
|
})
|
|
|
});
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
|
title: '其他回答',
|
|
|
mask: true,
|
|
|
open: visible,
|
|
|
okText: "换一换",
|
|
|
cancelText: "",
|
|
|
onOk: handleOk,
|
|
|
width: 800,
|
|
|
height: 500,
|
|
|
footer: /*#__PURE__*/(0,jsx_runtime.jsx)(row/* default */.Z, {
|
|
|
align: "middle",
|
|
|
justify: "center",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(col/* default */.Z, {
|
|
|
className: "tc",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
onClick: getData,
|
|
|
children: "\u6362\u4E00\u6362"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(popover/* default */.Z, {
|
|
|
content: content,
|
|
|
title: "\u5934\u6B4C\u6559\u5E08\u4EA4\u6D41\u793E\u533A",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "dashed",
|
|
|
children: "\u4EBA\u5DE5\u670D\u52A1"
|
|
|
})
|
|
|
})]
|
|
|
})
|
|
|
}),
|
|
|
onCancel: function onCancel() {
|
|
|
setVisible(false);
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("aside", {
|
|
|
style: {
|
|
|
minHeight: 300
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(row/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(skeleton/* default */.Z, {
|
|
|
loading: loading,
|
|
|
children: [subjects === null || subjects === void 0 ? void 0 : subjects.map(function (item) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
style: {
|
|
|
background: "#e9f3f1",
|
|
|
padding: "8px 20px",
|
|
|
marginBottom: 10,
|
|
|
borderRadius: 20
|
|
|
},
|
|
|
span: 24,
|
|
|
children: item.text
|
|
|
});
|
|
|
}), !(subjects !== null && subjects !== void 0 && subjects.length) && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
width: "100%",
|
|
|
textAlign: "center"
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
src: ImagesIcon/* qrCodeIcon */.wC,
|
|
|
width: 150
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), "\u5934\u6B4C\u6559\u5E08\u4EA4\u6D41\u793E\u533A"]
|
|
|
})]
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var AiAnswer = ((0,_umi_production_exports.connect)(function (_ref4) {
|
|
|
var pathsList = _ref4.pathsList;
|
|
|
return {
|
|
|
pathsList: pathsList
|
|
|
};
|
|
|
})(Interest));
|
|
|
// EXTERNAL MODULE: ./src/pages/tasks/constant.js
|
|
|
var constant = __webpack_require__(60058);
|
|
|
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
|
|
|
var env = __webpack_require__(78130);
|
|
|
// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx + 1 modules
|
|
|
var RenderHtml = __webpack_require__(11436);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules
|
|
|
var message = __webpack_require__(8591);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tooltip/index.js + 3 modules
|
|
|
var tooltip = __webpack_require__(6848);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/left-panel/discuss/discuss-item/index.less
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
// EXTERNAL MODULE: ./src/pages/tasks/left-panel/discuss/discuss-editor/index.tsx + 1 modules
|
|
|
var discuss_editor = __webpack_require__(60116);
|
|
|
// EXTERNAL MODULE: ./src/components/image-preview/index.tsx + 1 modules
|
|
|
var image_preview = __webpack_require__(16664);
|
|
|
// EXTERNAL MODULE: ./src/utils/authority.ts
|
|
|
var authority = __webpack_require__(13186);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/left-panel/discuss/discuss-item/image/appoint1.svg
|
|
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
|
var __defProp = Object.defineProperty;
|
|
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
|
var __defNormalProp = function __defNormalProp(obj, key, value) {
|
|
|
return key in obj ? __defProp(obj, key, {
|
|
|
enumerable: true,
|
|
|
configurable: true,
|
|
|
writable: true,
|
|
|
value: value
|
|
|
}) : obj[key] = value;
|
|
|
};
|
|
|
var __spreadValues = function __spreadValues(a, b) {
|
|
|
for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
|
if (__getOwnPropSymbols) {
|
|
|
var _iterator = _createForOfIteratorHelper(__getOwnPropSymbols(b)),
|
|
|
_step;
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var prop = _step.value;
|
|
|
if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
}
|
|
|
return a;
|
|
|
};
|
|
|
|
|
|
var SvgAppoint1 = function SvgAppoint1(props) {
|
|
|
return /* @__PURE__ */React.createElement("svg", __spreadValues({
|
|
|
width: 10,
|
|
|
height: 9,
|
|
|
xmlns: "http://www.w3.org/2000/svg"
|
|
|
}, props), /* @__PURE__ */React.createElement("title", null, "\u6EE1\u610F"), /* @__PURE__ */React.createElement("path", {
|
|
|
d: "M10 2.731H5.141V0h-1.96L1.675 2.643H0v6.18h7.865L10 2.732Zm-9.431.487h.836v5.03H.569v-5.03Zm8.626.088L7.463 8.249h-5.49V3.218h.031L3.511.575h1.062v2.73h4.622Z",
|
|
|
fill: "#000",
|
|
|
fillRule: "nonzero"
|
|
|
}));
|
|
|
};
|
|
|
|
|
|
/* harmony default export */ var appoint1 = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iOSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTAgMi43MzFINS4xNDFWMGgtMS45NkwxLjY3NSAyLjY0M0gwdjYuMThoNy44NjVMMTAgMi43MzJabS05LjQzMS40ODdoLjgzNnY1LjAzSC41Njl2LTUuMDNabTguNjI2LjA4OEw3LjQ2MyA4LjI0OWgtNS40OVYzLjIxOGguMDMxTDMuNTExLjU3NWgxLjA2MnYyLjczaDQuNjIyWiIgZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJub256ZXJvIi8+PC9zdmc+");
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/left-panel/discuss/discuss-item/image/appoint2.svg
|
|
|
function appoint2_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = appoint2_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
|
function appoint2_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return appoint2_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return appoint2_arrayLikeToArray(o, minLen); }
|
|
|
function appoint2_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
|
var appoint2_defProp = Object.defineProperty;
|
|
|
var appoint2_getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
|
var appoint2_hasOwnProp = Object.prototype.hasOwnProperty;
|
|
|
var appoint2_propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
|
var appoint2_defNormalProp = function __defNormalProp(obj, key, value) {
|
|
|
return key in obj ? appoint2_defProp(obj, key, {
|
|
|
enumerable: true,
|
|
|
configurable: true,
|
|
|
writable: true,
|
|
|
value: value
|
|
|
}) : obj[key] = value;
|
|
|
};
|
|
|
var appoint2_spreadValues = function __spreadValues(a, b) {
|
|
|
for (var prop in b || (b = {})) if (appoint2_hasOwnProp.call(b, prop)) appoint2_defNormalProp(a, prop, b[prop]);
|
|
|
if (appoint2_getOwnPropSymbols) {
|
|
|
var _iterator = appoint2_createForOfIteratorHelper(appoint2_getOwnPropSymbols(b)),
|
|
|
_step;
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var prop = _step.value;
|
|
|
if (appoint2_propIsEnum.call(b, prop)) appoint2_defNormalProp(a, prop, b[prop]);
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
}
|
|
|
return a;
|
|
|
};
|
|
|
|
|
|
var SvgAppoint2 = function SvgAppoint2(props) {
|
|
|
return /* @__PURE__ */React.createElement("svg", appoint2_spreadValues({
|
|
|
width: 10,
|
|
|
height: 9,
|
|
|
xmlns: "http://www.w3.org/2000/svg"
|
|
|
}, props), /* @__PURE__ */React.createElement("title", null, "\u6EE1\u610F"), /* @__PURE__ */React.createElement("path", {
|
|
|
d: "M10 2.731H5.141V0h-1.96L1.675 2.643H0v6.18h7.865L10 2.732Zm-9.431.487h.836v5.03H.569v-5.03Zm8.626.088L7.463 8.249h-5.49V3.218h.031L3.511.575h1.062v2.73h4.622Z",
|
|
|
fill: "#0152D9",
|
|
|
fillRule: "nonzero"
|
|
|
}));
|
|
|
};
|
|
|
|
|
|
/* harmony default export */ var appoint2 = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iOSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTAgMi43MzFINS4xNDFWMGgtMS45NkwxLjY3NSAyLjY0M0gwdjYuMThoNy44NjVMMTAgMi43MzJabS05LjQzMS40ODdoLjgzNnY1LjAzSC41Njl2LTUuMDNabTguNjI2LjA4OEw3LjQ2MyA4LjI0OWgtNS40OVYzLjIxOGguMDMxTDMuNTExLjU3NWgxLjA2MnYyLjczaDQuNjIyWiIgZmlsbD0iIzAxNTJEOSIgZmlsbC1ydWxlPSJub256ZXJvIi8+PC9zdmc+");
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/left-panel/discuss/discuss-item/image/disappoint1.svg
|
|
|
function disappoint1_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = disappoint1_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
|
function disappoint1_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return disappoint1_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return disappoint1_arrayLikeToArray(o, minLen); }
|
|
|
function disappoint1_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
|
var disappoint1_defProp = Object.defineProperty;
|
|
|
var disappoint1_getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
|
var disappoint1_hasOwnProp = Object.prototype.hasOwnProperty;
|
|
|
var disappoint1_propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
|
var disappoint1_defNormalProp = function __defNormalProp(obj, key, value) {
|
|
|
return key in obj ? disappoint1_defProp(obj, key, {
|
|
|
enumerable: true,
|
|
|
configurable: true,
|
|
|
writable: true,
|
|
|
value: value
|
|
|
}) : obj[key] = value;
|
|
|
};
|
|
|
var disappoint1_spreadValues = function __spreadValues(a, b) {
|
|
|
for (var prop in b || (b = {})) if (disappoint1_hasOwnProp.call(b, prop)) disappoint1_defNormalProp(a, prop, b[prop]);
|
|
|
if (disappoint1_getOwnPropSymbols) {
|
|
|
var _iterator = disappoint1_createForOfIteratorHelper(disappoint1_getOwnPropSymbols(b)),
|
|
|
_step;
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var prop = _step.value;
|
|
|
if (disappoint1_propIsEnum.call(b, prop)) disappoint1_defNormalProp(a, prop, b[prop]);
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
}
|
|
|
return a;
|
|
|
};
|
|
|
|
|
|
var SvgDisappoint1 = function SvgDisappoint1(props) {
|
|
|
return /* @__PURE__ */React.createElement("svg", disappoint1_spreadValues({
|
|
|
width: 10,
|
|
|
height: 9,
|
|
|
xmlns: "http://www.w3.org/2000/svg"
|
|
|
}, props), /* @__PURE__ */React.createElement("title", null, "\u4E0D\u6EE1\u610F"), /* @__PURE__ */React.createElement("path", {
|
|
|
d: "M7.865 0H0v6.18h1.675l1.506 2.644h1.96V6.092H10L7.865 0ZM.57.575h.836v5.03H.569V.576Zm4.003 4.943v2.73H3.51L2.004 5.607h-.03V.576h5.489l1.732 4.942H4.572Z",
|
|
|
fill: "#000",
|
|
|
fillRule: "nonzero"
|
|
|
}));
|
|
|
};
|
|
|
|
|
|
/* harmony default export */ var disappoint1 = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iOSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNy44NjUgMEgwdjYuMThoMS42NzVsMS41MDYgMi42NDRoMS45NlY2LjA5MkgxMEw3Ljg2NSAwWk0uNTcuNTc1aC44MzZ2NS4wM0guNTY5Vi41NzZabTQuMDAzIDQuOTQzdjIuNzNIMy41MUwyLjAwNCA1LjYwN2gtLjAzVi41NzZoNS40ODlsMS43MzIgNC45NDJINC41NzJaIiBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=");
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/left-panel/discuss/discuss-item/image/disappoint2.svg
|
|
|
function disappoint2_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = disappoint2_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
|
function disappoint2_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return disappoint2_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return disappoint2_arrayLikeToArray(o, minLen); }
|
|
|
function disappoint2_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
|
var disappoint2_defProp = Object.defineProperty;
|
|
|
var disappoint2_getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
|
var disappoint2_hasOwnProp = Object.prototype.hasOwnProperty;
|
|
|
var disappoint2_propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
|
var disappoint2_defNormalProp = function __defNormalProp(obj, key, value) {
|
|
|
return key in obj ? disappoint2_defProp(obj, key, {
|
|
|
enumerable: true,
|
|
|
configurable: true,
|
|
|
writable: true,
|
|
|
value: value
|
|
|
}) : obj[key] = value;
|
|
|
};
|
|
|
var disappoint2_spreadValues = function __spreadValues(a, b) {
|
|
|
for (var prop in b || (b = {})) if (disappoint2_hasOwnProp.call(b, prop)) disappoint2_defNormalProp(a, prop, b[prop]);
|
|
|
if (disappoint2_getOwnPropSymbols) {
|
|
|
var _iterator = disappoint2_createForOfIteratorHelper(disappoint2_getOwnPropSymbols(b)),
|
|
|
_step;
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var prop = _step.value;
|
|
|
if (disappoint2_propIsEnum.call(b, prop)) disappoint2_defNormalProp(a, prop, b[prop]);
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
}
|
|
|
return a;
|
|
|
};
|
|
|
|
|
|
var SvgDisappoint2 = function SvgDisappoint2(props) {
|
|
|
return /* @__PURE__ */React.createElement("svg", disappoint2_spreadValues({
|
|
|
width: 10,
|
|
|
height: 9,
|
|
|
xmlns: "http://www.w3.org/2000/svg"
|
|
|
}, props), /* @__PURE__ */React.createElement("title", null, "\u4E0D\u6EE1\u610F"), /* @__PURE__ */React.createElement("path", {
|
|
|
d: "M7.865 0H0v6.18h1.675l1.506 2.644h1.96V6.092H10L7.865 0ZM.57.575h.836v5.03H.569V.576Zm4.003 4.943v2.73H3.51L2.004 5.607h-.03V.576h5.489l1.732 4.942H4.572Z",
|
|
|
fill: "#0152D9",
|
|
|
fillRule: "nonzero"
|
|
|
}));
|
|
|
};
|
|
|
|
|
|
/* harmony default export */ var disappoint2 = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iOSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNy44NjUgMEgwdjYuMThoMS42NzVsMS41MDYgMi42NDRoMS45NlY2LjA5MkgxMEw3Ljg2NSAwWk0uNTcuNTc1aC44MzZ2NS4wM0guNTY5Vi41NzZabTQuMDAzIDQuOTQzdjIuNzNIMy41MUwyLjAwNCA1LjYwN2gtLjAzVi41NzZoNS40ODlsMS43MzIgNC45NDJINC41NzJaIiBmaWxsPSIjMDE1MkQ5IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=");
|
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
|
var fetch = __webpack_require__(91506);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/left-panel/discuss/discuss-item/index.jsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// import {isCommonSuperAdmin} from '@/utils/authority'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function SecondLevelDiscuss(_ref) {
|
|
|
var data = _ref.data,
|
|
|
index = _ref.index,
|
|
|
adminOrOperator = _ref.adminOrOperator,
|
|
|
parentDiscussIndex = _ref.parentDiscussIndex,
|
|
|
shixunIdentifier = _ref.shixunIdentifier,
|
|
|
user = _ref.user,
|
|
|
onSetRewardData = _ref.onSetRewardData,
|
|
|
onSetActionType = _ref.onSetActionType,
|
|
|
onHandleSubmitDiscusses = _ref.onHandleSubmitDiscusses,
|
|
|
onTopOrDownDiscuss = _ref.onTopOrDownDiscuss,
|
|
|
handleChildrenPlus = _ref.handleChildrenPlus,
|
|
|
anserAuthor = _ref.anserAuthor,
|
|
|
onPlus = _ref.onPlus,
|
|
|
onHandleRepaly = _ref.onHandleRepaly,
|
|
|
userInfomation = _ref.userInfomation;
|
|
|
var author = data.author,
|
|
|
can_delete = data.can_delete,
|
|
|
content = data.content,
|
|
|
hidden = data.hidden,
|
|
|
id = data.id,
|
|
|
reward = data.reward,
|
|
|
time = data.time,
|
|
|
reply_status = data.reply_status,
|
|
|
user_praise = data.user_praise,
|
|
|
praise_count = data.praise_count;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
isHover = _useState2[0],
|
|
|
setHover = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
isHoverSecond = _useState4[0],
|
|
|
setHoverSecond = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
isHoverSatisfied = _useState6[0],
|
|
|
setHoverSatisfied = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
isHoverDisSatisfied = _useState8[0],
|
|
|
setHoverDisSatisfied = _useState8[1];
|
|
|
var handleQuestions = function handleQuestions() {
|
|
|
if (!isHover) return;
|
|
|
onHandleSubmitDiscusses(id, {
|
|
|
reply_status: 2
|
|
|
});
|
|
|
};
|
|
|
var handleRobot = function handleRobot() {
|
|
|
if (!isHoverSecond) return;
|
|
|
onHandleSubmitDiscusses(id, {
|
|
|
reply_status: 3
|
|
|
});
|
|
|
};
|
|
|
var handleSatisfy = function handleSatisfy() {
|
|
|
onHandleSubmitDiscusses(id, {
|
|
|
reply_status: 1
|
|
|
});
|
|
|
};
|
|
|
var handleVerySatisfy = function handleVerySatisfy() {
|
|
|
onHandleSubmitDiscusses(id, {
|
|
|
reply_status: 4
|
|
|
});
|
|
|
};
|
|
|
var renderRatify = function renderRatify() {
|
|
|
switch (reply_status) {
|
|
|
case 0:
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
whiteSpace: "nowrap"
|
|
|
},
|
|
|
onClick: handleSatisfy,
|
|
|
className: "whether-satisfied ".concat(isHoverSatisfied ? 'cursorPoint blue-text-color' : ''),
|
|
|
onMouseEnter: function onMouseEnter() {
|
|
|
setHoverSatisfied(true);
|
|
|
},
|
|
|
onMouseLeave: function onMouseLeave() {
|
|
|
setHoverSatisfied(false);
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
src: isHoverSatisfied ? appoint2 : appoint1,
|
|
|
className: "whether-img SVGColor"
|
|
|
}), "\u6EE1\u610F"]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(popover/* default */.Z, {
|
|
|
placement: "bottomLeft",
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "content",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "content-disappoint",
|
|
|
children: "\u62B1\u6B49\u8BA9\u4F60\u5931\u671B\u4E86\uFF0C\u8BF7\u7EE7\u7EED\u5C1D\u8BD5:"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "radius-box marg15 height30-line black6c-optcity ".concat(isHover ? 'blue-background cursorPoint blue-background-write' : 'gray-background'),
|
|
|
onMouseEnter: function onMouseEnter() {
|
|
|
setHover(true);
|
|
|
},
|
|
|
onMouseLeave: function onMouseLeave() {
|
|
|
setHover(false);
|
|
|
},
|
|
|
onClick: handleQuestions,
|
|
|
children: ["\u8BF7", author === null || author === void 0 ? void 0 : author.name.trim(), "\u8001\u5E08\u518D\u5C1D\u8BD5\u56DE\u7B54\u4E00\u6B21\u3002"]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "radius-box marg15 height30-line black6c-optcity ".concat(isHoverSecond ? 'blue-background cursorPoint blue-background-write' : 'gray-background'),
|
|
|
onMouseEnter: function onMouseEnter() {
|
|
|
setHoverSecond(true);
|
|
|
},
|
|
|
onMouseLeave: function onMouseLeave() {
|
|
|
setHoverSecond(false);
|
|
|
},
|
|
|
onClick: handleRobot,
|
|
|
children: "\u53EF\u80FD\u542F\u7528\u4E86\u673A\u5668\u4EBA\uFF0C\u8BF7\u5176\u4ED6\u8001\u5E08\u56DE\u7B54\u3002"
|
|
|
})]
|
|
|
}),
|
|
|
trigger: "click",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
whiteSpace: "nowrap"
|
|
|
},
|
|
|
className: "whether-satisfied ".concat(isHoverDisSatisfied ? 'cursorPoint blue-text-color' : ''),
|
|
|
onMouseEnter: function onMouseEnter() {
|
|
|
setHoverDisSatisfied(true);
|
|
|
},
|
|
|
onMouseLeave: function onMouseLeave() {
|
|
|
setHoverDisSatisfied(false);
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
src: isHoverDisSatisfied ? disappoint2 : disappoint1,
|
|
|
className: "whether-img SVGColor"
|
|
|
}), "\u4E0D\u6EE1\u610F"]
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
case 1:
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
whiteSpace: "nowrap"
|
|
|
},
|
|
|
className: "radius-box cursorPoint height30 ".concat(index > 0 ? 'gray-background' : 'blue-background'),
|
|
|
onClick: handleVerySatisfy,
|
|
|
children: "\u6211\u5F88\u6EE1\u610F"
|
|
|
});
|
|
|
case 2:
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
whiteSpace: "nowrap"
|
|
|
},
|
|
|
className: "radius-box height30 ".concat(index > 0 ? 'gray-background' : 'blue-background'),
|
|
|
children: "\u4E0D\u6EE1\u610F \u7B49\u5F85\u8001\u5E08\u518D\u6B21\u56DE\u7B54"
|
|
|
});
|
|
|
case 3:
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
whiteSpace: "nowrap"
|
|
|
},
|
|
|
className: "radius-box height30 ".concat(index > 0 ? 'gray-background' : 'blue-background'),
|
|
|
children: "\u4E0D\u6EE1\u610F \u7B49\u5F85\u5176\u4ED6\u8001\u5E08\u518D\u6B21\u56DE\u7B54"
|
|
|
});
|
|
|
case 4:
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
whiteSpace: "nowrap"
|
|
|
},
|
|
|
className: "radius-box height30 ".concat(index > 0 ? 'gray-background' : 'blue-background'),
|
|
|
children: "\u6211\u5F88\u6EE1\u610F"
|
|
|
});
|
|
|
default:
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, {});
|
|
|
}
|
|
|
};
|
|
|
function onRewardDialog() {
|
|
|
onSetRewardData({
|
|
|
id: id,
|
|
|
index: index,
|
|
|
user_id: author.user_id,
|
|
|
parentDiscussIndex: parentDiscussIndex
|
|
|
});
|
|
|
}
|
|
|
function onHiddenDiscuss() {
|
|
|
onSetActionType({
|
|
|
id: id,
|
|
|
index: index,
|
|
|
params: {
|
|
|
hidden: !hidden ? '1' : '0',
|
|
|
container_identifier: shixunIdentifier
|
|
|
},
|
|
|
type: 'hidden-discuss',
|
|
|
parentDiscussIndex: parentDiscussIndex,
|
|
|
message: !hidden ? '确定要隐藏该条回复吗' : '确定要取消隐藏该条回复吗'
|
|
|
});
|
|
|
}
|
|
|
function onDeleteDiscuss() {
|
|
|
onSetActionType({
|
|
|
id: id,
|
|
|
index: index,
|
|
|
type: 'delete-discuss',
|
|
|
parentDiscussIndex: parentDiscussIndex,
|
|
|
message: '确定要删除该条回复吗'
|
|
|
});
|
|
|
}
|
|
|
var handleChildrenPlusClick = function handleChildrenPlusClick() {
|
|
|
onHandleRepaly(id, !user_praise, parentDiscussIndex, index);
|
|
|
};
|
|
|
var canDelete = adminOrOperator || can_delete || author.user_id === user.user_id || author.login === user.login;
|
|
|
var anserReplay = (0,_umi_production_exports.useLocation)().pathname.split('/')[1] === 'tasks';
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "second-level-discuss",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "discuss-info-body",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "discuss-info",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
href: "/users/".concat(author.login),
|
|
|
target: "_blank",
|
|
|
children: author.name
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "grey",
|
|
|
children: time
|
|
|
}), reward ? /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
className: "c-orange gift",
|
|
|
title: "\u5DF2\u5956\u52B1\u91D1\u5E01".concat(reward),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-gift c-orange "
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: reward
|
|
|
})]
|
|
|
}) : null]
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
|
|
|
className: "discuss-content ".concat(index > 0 ? 'content-gray' : ''),
|
|
|
value: content
|
|
|
// onClick={handleClick}
|
|
|
})]
|
|
|
}), anserReplay && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "btn-group-succes",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "btn-group-gratify",
|
|
|
children: renderRatify()
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "btn-group-other",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "discuss-info-body",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "btn-group",
|
|
|
children: [adminOrOperator && /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
onClick: /*#__PURE__*/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,fetch/* default */.ZP)("/api/discusses/".concat(data.id, "/update_faq_data.json"), {
|
|
|
method: 'get'
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) == 0) {
|
|
|
message/* default */.ZP.success("添加成功");
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
})),
|
|
|
children: "\u52A0\u5165\u5E38\u89C1\u95EE\u9898\u5E93"
|
|
|
}), user.identity === 1 ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
onClick: onRewardDialog,
|
|
|
title: '给TA奖励金币',
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-jiangli"
|
|
|
})
|
|
|
}) : null, adminOrOperator ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
onClick: onHiddenDiscuss,
|
|
|
title: hidden ? '取消隐藏' : '隐藏评论',
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: hidden ? 'iconfont icon-yincangbiyan' : 'fa fa-eye'
|
|
|
})
|
|
|
}) : null, canDelete ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
onClick: onDeleteDiscuss,
|
|
|
title: "\u5220\u9664",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-shanchu"
|
|
|
})
|
|
|
}) : null, /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
onClick: handleChildrenPlusClick,
|
|
|
className: user_praise ? 'c-orange' : '',
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: user_praise ? 'iconfont icon-dianzan mr3' : 'iconfont icon-dianzan-xian mr3 '
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: praise_count ? praise_count : ''
|
|
|
})]
|
|
|
})]
|
|
|
})
|
|
|
})
|
|
|
})]
|
|
|
})]
|
|
|
});
|
|
|
}
|
|
|
/* harmony default export */ var discuss_item = (function (_ref3) {
|
|
|
var data = _ref3.data,
|
|
|
index = _ref3.index,
|
|
|
shixunIdentifier = _ref3.shixunIdentifier,
|
|
|
adminOrOperator = _ref3.adminOrOperator,
|
|
|
identity = _ref3.identity,
|
|
|
onTopOrDownDiscuss = _ref3.onTopOrDownDiscuss,
|
|
|
onPlusDiscuss = _ref3.onPlusDiscuss,
|
|
|
onDisableDiscuss = _ref3.onDisableDiscuss,
|
|
|
onSetActionType = _ref3.onSetActionType,
|
|
|
onSetRewardData = _ref3.onSetRewardData,
|
|
|
user = _ref3.user,
|
|
|
activeDiscussIndex = _ref3.activeDiscussIndex,
|
|
|
onReplyDiscuss = _ref3.onReplyDiscuss,
|
|
|
onSetActiveDiscussIndex = _ref3.onSetActiveDiscussIndex,
|
|
|
allowDisableDiscuss = _ref3.allowDisableDiscuss,
|
|
|
onHandleSubmitDiscusses = _ref3.onHandleSubmitDiscusses,
|
|
|
onHandleRepaly = _ref3.onHandleRepaly,
|
|
|
userInfomation = _ref3.userInfomation;
|
|
|
var content = data.content,
|
|
|
children = data.children,
|
|
|
game_url = data.game_url,
|
|
|
hidden = data.hidden,
|
|
|
id = data.id,
|
|
|
position = data.position,
|
|
|
praise_count = data.praise_count,
|
|
|
reward = data.reward,
|
|
|
sticky = data.sticky,
|
|
|
time = data.time,
|
|
|
user_praise = data.user_praise,
|
|
|
game_passed = data.game_passed,
|
|
|
ai_reply_text = data.ai_reply_text,
|
|
|
ai_reply_flag = data.ai_reply_flag,
|
|
|
author = data.author,
|
|
|
disable_discuss_status = data.disable_discuss_status,
|
|
|
reply_status = data.reply_status;
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
showPlusAnimate = _useState10[0],
|
|
|
setShowPlusAnimate = _useState10[1];
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (showPlusAnimate) {
|
|
|
setTimeout(function () {
|
|
|
return setShowPlusAnimate(false);
|
|
|
}, 800);
|
|
|
}
|
|
|
}, [showPlusAnimate]);
|
|
|
function onActiveDiscussIndex() {
|
|
|
var _userInfo;
|
|
|
if (!((_userInfo = (0,authority/* userInfo */.eY)()) !== null && _userInfo !== void 0 && _userInfo.authentication)) {
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
title: '提示',
|
|
|
className: 'custom-modal-divider ',
|
|
|
icon: null,
|
|
|
content: '需要通过实名验证后,才能进行评论操作',
|
|
|
okText: '前往实名验证',
|
|
|
cancelText: '取消',
|
|
|
onOk: function onOk() {
|
|
|
window.open("/account/certification");
|
|
|
}
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
console.log(id, "idi---------------------------");
|
|
|
onSetActiveDiscussIndex(id);
|
|
|
}
|
|
|
function onTopOrDown() {
|
|
|
onTopOrDownDiscuss(id, !sticky, index);
|
|
|
}
|
|
|
function onPlus() {
|
|
|
onPlusDiscuss(id, !user_praise, index);
|
|
|
}
|
|
|
function onRewardDialog() {
|
|
|
onSetRewardData({
|
|
|
id: id,
|
|
|
index: index,
|
|
|
user_id: author.user_id
|
|
|
});
|
|
|
}
|
|
|
function onDeleteDiscuss() {
|
|
|
onSetActionType({
|
|
|
id: id,
|
|
|
index: index,
|
|
|
type: 'delete-discuss',
|
|
|
message: '确定要删除该条回复吗'
|
|
|
});
|
|
|
}
|
|
|
function onHiddenDiscuss() {
|
|
|
onSetActionType({
|
|
|
id: id,
|
|
|
index: index,
|
|
|
params: {
|
|
|
hidden: !hidden ? '1' : '0',
|
|
|
container_identifier: shixunIdentifier
|
|
|
},
|
|
|
type: 'hidden-discuss',
|
|
|
message: !hidden ? '确定要隐藏该条回复吗' : '确定要取消隐藏该条回复吗'
|
|
|
});
|
|
|
}
|
|
|
function onDisable() {
|
|
|
onDisableDiscuss(id, disable_discuss_status === 0 ? 2 : 0, index);
|
|
|
}
|
|
|
var handleClick = function handleClick(e) {
|
|
|
var _e$target = e.target,
|
|
|
nodeName = _e$target.nodeName,
|
|
|
src = _e$target.src;
|
|
|
if (nodeName === 'IMG') {
|
|
|
mediator/* default */.Z.publish('preview-image', src);
|
|
|
console.log('src:', src);
|
|
|
}
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "discuss-item-container",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
href: "/users/".concat(author.login),
|
|
|
target: "_blank",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
alt: "\u7528\u6237\u5934\u50CF",
|
|
|
height: "50",
|
|
|
src: "".concat(env/* default */.Z.IMG_SERVER, "/images/").concat(author.image_url),
|
|
|
width: "50"
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "discuss-info",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
href: "/users/".concat(author.login),
|
|
|
target: "_blank",
|
|
|
children: author.name
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "grey",
|
|
|
children: time
|
|
|
}), position ? /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: "c-green",
|
|
|
children: [" [\u7B2C", position, "\u5173] "]
|
|
|
}) : null, game_url ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
href: game_url,
|
|
|
target: "_blank",
|
|
|
className: "view-code",
|
|
|
title: "\u70B9\u51FB\u67E5\u770BTA\u7684\u4EE3\u7801\u9875\u9762",
|
|
|
children: "\u67E5\u770B"
|
|
|
}) : null, allowDisableDiscuss && /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [disable_discuss_status === 0 && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: '禁止该用户在此项目的评论功能',
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
onClick: onDisable,
|
|
|
className: "c-red current",
|
|
|
children: "\u7981\u6B62\u8BC4\u8BBA\u529F\u80FD"
|
|
|
})
|
|
|
}), disable_discuss_status === 2 && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: '恢复该用户在此实践项目的评论功能',
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
onClick: onDisable,
|
|
|
className: "c-light-primary current",
|
|
|
children: "\u6062\u590D\u8BC4\u8BBA\u529F\u80FD"
|
|
|
})
|
|
|
}), disable_discuss_status === 1 && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: '该用户已被系统管理员禁言',
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "c-red",
|
|
|
children: "\u88AB\u7BA1\u7406\u5458\u7981\u6B62\u8BC4\u8BBA"
|
|
|
})
|
|
|
})]
|
|
|
}), sticky ? /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "top",
|
|
|
children: "\u7F6E\u9876"
|
|
|
}) : null, reward ? /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
className: "c-orange gift",
|
|
|
title: "\u5DF2\u5956\u52B1\u91D1\u5E01".concat(reward),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-gift c-orange "
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: reward
|
|
|
})]
|
|
|
}) : null, identity <= 5 ? /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
style: {
|
|
|
flex: '1',
|
|
|
textAlign: 'right',
|
|
|
color: game_passed === 1 ? '#29bd8b' : ''
|
|
|
},
|
|
|
children: game_passed === 1 ? '已通关' : '未通关'
|
|
|
}) : null]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
onClick: handleClick,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
|
|
|
className: "discuss-content",
|
|
|
value: content
|
|
|
})
|
|
|
}), ai_reply_flag && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
padding: 10,
|
|
|
borderRadius: 4,
|
|
|
background: '#f4f4f4'
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
padding: '6px 0'
|
|
|
},
|
|
|
children: ai_reply_text
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_button/* default */.ZP, {
|
|
|
style: {
|
|
|
background: '#d1e5f9',
|
|
|
borderRadius: 25,
|
|
|
border: 'none',
|
|
|
display: 'inline-flex',
|
|
|
justifyItems: 'center',
|
|
|
alignItems: 'center'
|
|
|
},
|
|
|
onClick: function onClick() {
|
|
|
return setShowPlusAnimate(true);
|
|
|
},
|
|
|
className: "mr10 mr5 relative c-blue",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: showPlusAnimate ? 'plus-one-animate' : 'hide',
|
|
|
style: {
|
|
|
position: 'absolute'
|
|
|
},
|
|
|
children: [' ', "+1"]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "c-blue icon-duiwoyouyong mr5"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "c-blue",
|
|
|
children: "\u5BF9\u6211\u6709\u7528"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "c-orange current",
|
|
|
onClick: function onClick() {
|
|
|
mediator/* default */.Z.publish('ai-replay-show', {
|
|
|
content: content,
|
|
|
id: id
|
|
|
});
|
|
|
},
|
|
|
children: "\u5176\u4ED6\u56DE\u7B54"
|
|
|
})]
|
|
|
}), children && children.length > 0 ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "reply-discuss-containerActive",
|
|
|
onClick: handleClick,
|
|
|
children: children.map(function (item, i) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(SecondLevelDiscuss, {
|
|
|
data: item,
|
|
|
index: i,
|
|
|
userInfomation: userInfomation,
|
|
|
onTopOrDownDiscuss: onTopOrDownDiscuss,
|
|
|
shixunIdentifier: shixunIdentifier,
|
|
|
onHandleSubmitDiscusses: onHandleSubmitDiscusses,
|
|
|
adminOrOperator: adminOrOperator,
|
|
|
user: user,
|
|
|
onSetRewardData: onSetRewardData,
|
|
|
onSetActionType: onSetActionType,
|
|
|
parentDiscussIndex: index,
|
|
|
anserAuthor: author,
|
|
|
onHandleRepaly: onHandleRepaly
|
|
|
}, item.id);
|
|
|
})
|
|
|
}) : null, /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "btn-group",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "btn-group-other",
|
|
|
children: [user.identity === 1 ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
onClick: onRewardDialog,
|
|
|
title: '给TA奖励金币',
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-jiangli"
|
|
|
})
|
|
|
}) : null, adminOrOperator ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
onClick: onHiddenDiscuss,
|
|
|
title: hidden ? '取消隐藏' : '隐藏评论',
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: hidden ? 'iconfont icon-yincangbiyan' : 'fa fa-eye'
|
|
|
})
|
|
|
}) : null, identity <= 5 ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
onClick: onTopOrDown,
|
|
|
className: sticky ? 'btn-top' : 'btn-down',
|
|
|
title: sticky ? '取消置顶' : '置顶',
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-zhiding1 "
|
|
|
})
|
|
|
}) : null, adminOrOperator && (!children || children.length == 0) ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
onClick: onDeleteDiscuss,
|
|
|
title: "\u5220\u9664",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-shanchu"
|
|
|
})
|
|
|
}) : null, /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
onClick: onActiveDiscussIndex,
|
|
|
title: "\u56DE\u590D",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-huifu1"
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
onClick: onPlus,
|
|
|
className: user_praise ? 'c-orange' : '',
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: user_praise ? 'iconfont icon-dianzan mr3' : 'iconfont icon-dianzan-xian mr3 '
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: praise_count ? praise_count : ''
|
|
|
})]
|
|
|
})]
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(discuss_editor/* default */.Z, {
|
|
|
id: id,
|
|
|
activeDiscussIndex: activeDiscussIndex,
|
|
|
onReplyDiscuss: onReplyDiscuss,
|
|
|
adminOrOperator: adminOrOperator
|
|
|
})]
|
|
|
})]
|
|
|
}, id);
|
|
|
});
|
|
|
// EXTERNAL MODULE: ./src/utils/util.tsx
|
|
|
var util = __webpack_require__(22739);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/left-panel/discuss/index.jsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var initialState = {
|
|
|
showRewardDialog: false,
|
|
|
data: null,
|
|
|
page: 1,
|
|
|
loading: false,
|
|
|
actionType: null,
|
|
|
activeDiscussIndex: null
|
|
|
};
|
|
|
function reducer(state, action) {
|
|
|
switch (action.type) {
|
|
|
case constant/* SHOW_DISCUSSES_LOADING */.tD:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
loading: true
|
|
|
});
|
|
|
case constant/* SHOW_REWARD_DIALOG */.RS:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showRewardDialog: true
|
|
|
});
|
|
|
case constant/* CANCEL_REWARD_DIALOG */.t2:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showRewardDialog: false
|
|
|
});
|
|
|
case constant/* GET_DISCUSSES */.GR:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
case constant/* TOP_OR_DOWN_DISCUSS */.u8:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
case constant/* PLUS_DISCUSS */.rM:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
case constant/* DISABLE_DISCUSS */.fo:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
case constant/* SET_ACTION_TYPE */.yS:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
case constant/* SET_REWARD */.Vn:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
case constant/* ACTIVE_DISCUSS_INDEX */.SX:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
default:
|
|
|
throw new Error();
|
|
|
}
|
|
|
}
|
|
|
/* harmony default export */ var discuss = (function (_ref) {
|
|
|
var shixunIdentifier = _ref.shixunIdentifier,
|
|
|
identity = _ref.identity,
|
|
|
activeIndex = _ref.activeIndex,
|
|
|
user = _ref.user,
|
|
|
allowDisableDiscuss = _ref.allowDisableDiscuss,
|
|
|
userInfo = _ref.userInfo,
|
|
|
_ref$isShixunDetail = _ref.isShixunDetail,
|
|
|
isShixunDetail = _ref$isShixunDetail === void 0 ? false : _ref$isShixunDetail,
|
|
|
taskData = _ref.taskData,
|
|
|
chatgpt = _ref.chatgpt,
|
|
|
to_user_id = _ref.to_user_id,
|
|
|
challengeId = _ref.challengeId;
|
|
|
var _useReducer = (0,_react_17_0_2_react.useReducer)(reducer, initialState),
|
|
|
_useReducer2 = slicedToArray_default()(_useReducer, 2),
|
|
|
state = _useReducer2[0],
|
|
|
dispatch = _useReducer2[1];
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(true),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
open = _useState2[0],
|
|
|
setOpen = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(null),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
timeRefersh = _useState4[0],
|
|
|
settimeRefersh = _useState4[1];
|
|
|
var page = state.page,
|
|
|
loading = state.loading,
|
|
|
data = state.data,
|
|
|
actionType = state.actionType,
|
|
|
showRewardDialog = state.showRewardDialog,
|
|
|
activeDiscussIndex = state.activeDiscussIndex;
|
|
|
var rewardData = (0,_react_17_0_2_react.useRef)();
|
|
|
var discussEl = (0,_react_17_0_2_react.useRef)();
|
|
|
var refresh = (0,_react_17_0_2_react.useRef)();
|
|
|
function getDiscusses(_x, _x2) {
|
|
|
return _getDiscusses.apply(this, arguments);
|
|
|
}
|
|
|
function _getDiscusses() {
|
|
|
_getDiscusses = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(value, bool) {
|
|
|
var response;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
if (!loading) {
|
|
|
_context2.next = 2;
|
|
|
break;
|
|
|
}
|
|
|
return _context2.abrupt("return");
|
|
|
case 2:
|
|
|
_context2.prev = 2;
|
|
|
dispatch({
|
|
|
type: constant/* SHOW_DISCUSSES_LOADING */.tD
|
|
|
});
|
|
|
_context2.next = 6;
|
|
|
return (0,service/* fetchDiscusses */.o7)(shixunIdentifier, value);
|
|
|
case 6:
|
|
|
response = _context2.sent;
|
|
|
console.log("activeDiscussIndex", activeDiscussIndex);
|
|
|
dispatch({
|
|
|
type: constant/* GET_DISCUSSES */.GR,
|
|
|
payload: {
|
|
|
activeDiscussIndex: bool ? activeDiscussIndex : null,
|
|
|
page: value,
|
|
|
data: response,
|
|
|
loading: false
|
|
|
}
|
|
|
});
|
|
|
_context2.next = 14;
|
|
|
break;
|
|
|
case 11:
|
|
|
_context2.prev = 11;
|
|
|
_context2.t0 = _context2["catch"](2);
|
|
|
console.log(_context2.t0);
|
|
|
case 14:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2, null, [[2, 11]]);
|
|
|
}));
|
|
|
return _getDiscusses.apply(this, arguments);
|
|
|
}
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (activeIndex === 3 && chatgpt) {
|
|
|
clearInterval(refresh.current);
|
|
|
refresh.current = setInterval(function () {
|
|
|
getDiscusses(page, true);
|
|
|
}, 5000);
|
|
|
} else {
|
|
|
console.log("清除定时器");
|
|
|
return function () {
|
|
|
clearInterval(refresh.current);
|
|
|
};
|
|
|
}
|
|
|
return function () {
|
|
|
clearInterval(refresh.current);
|
|
|
};
|
|
|
}, [chatgpt, activeIndex, activeDiscussIndex]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (!open) {
|
|
|
clearInterval(timeRefersh);
|
|
|
settimeRefersh(setInterval(function () {
|
|
|
getDiscusses(page, true);
|
|
|
}, 5000));
|
|
|
}
|
|
|
return function () {
|
|
|
clearInterval(timeRefersh);
|
|
|
};
|
|
|
}, [open, page, activeDiscussIndex]);
|
|
|
function onPaginationChange(value) {
|
|
|
getDiscusses(value);
|
|
|
}
|
|
|
function onPlusDiscuss(_x3, _x4, _x5) {
|
|
|
return _onPlusDiscuss.apply(this, arguments);
|
|
|
}
|
|
|
function _onPlusDiscuss() {
|
|
|
_onPlusDiscuss = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3(id, user_praise, index) {
|
|
|
var response;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
_context3.prev = 0;
|
|
|
_context3.next = 3;
|
|
|
return (0,service/* plusDiscuss */.ae)(id, user_praise);
|
|
|
case 3:
|
|
|
response = _context3.sent;
|
|
|
comments[index].user_praise = user_praise;
|
|
|
comments[index].praise_count = response.praise_count;
|
|
|
dispatch({
|
|
|
type: constant/* PLUS_DISCUSS */.rM,
|
|
|
payload: {
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
comments: comments
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
_context3.next = 12;
|
|
|
break;
|
|
|
case 9:
|
|
|
_context3.prev = 9;
|
|
|
_context3.t0 = _context3["catch"](0);
|
|
|
console.log(_context3.t0);
|
|
|
case 12:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3, null, [[0, 9]]);
|
|
|
}));
|
|
|
return _onPlusDiscuss.apply(this, arguments);
|
|
|
}
|
|
|
function onHandleRepaly(_x6, _x7, _x8, _x9) {
|
|
|
return _onHandleRepaly.apply(this, arguments);
|
|
|
}
|
|
|
function _onHandleRepaly() {
|
|
|
_onHandleRepaly = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4(id, user_praise, index, i) {
|
|
|
var response;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
_context4.prev = 0;
|
|
|
_context4.next = 3;
|
|
|
return (0,service/* plusDiscuss */.ae)(id, user_praise);
|
|
|
case 3:
|
|
|
response = _context4.sent;
|
|
|
comments[index].children[i].user_praise = user_praise;
|
|
|
comments[index].children[i].praise_count = response.praise_count;
|
|
|
dispatch({
|
|
|
type: constant/* PLUS_DISCUSS */.rM,
|
|
|
payload: {
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
comments: comments
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
_context4.next = 12;
|
|
|
break;
|
|
|
case 9:
|
|
|
_context4.prev = 9;
|
|
|
_context4.t0 = _context4["catch"](0);
|
|
|
console.log(_context4.t0);
|
|
|
case 12:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4, null, [[0, 9]]);
|
|
|
}));
|
|
|
return _onHandleRepaly.apply(this, arguments);
|
|
|
}
|
|
|
function onDisableDiscuss(_x10, _x11, _x12) {
|
|
|
return _onDisableDiscuss.apply(this, arguments);
|
|
|
}
|
|
|
function _onDisableDiscuss() {
|
|
|
_onDisableDiscuss = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5(id, disable_discuss_status, index) {
|
|
|
var response, select_user_id, newComments;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
|
|
|
while (1) switch (_context5.prev = _context5.next) {
|
|
|
case 0:
|
|
|
_context5.prev = 0;
|
|
|
_context5.next = 3;
|
|
|
return (0,service/* disableDiscuss */._Z)(id, disable_discuss_status);
|
|
|
case 3:
|
|
|
response = _context5.sent;
|
|
|
if (!(response.status !== 0)) {
|
|
|
_context5.next = 6;
|
|
|
break;
|
|
|
}
|
|
|
return _context5.abrupt("return");
|
|
|
case 6:
|
|
|
select_user_id = comments[index].author.user_id;
|
|
|
newComments = comments.map(function (e) {
|
|
|
if (e.author.user_id === select_user_id) {
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, e), {}, {
|
|
|
disable_discuss_status: disable_discuss_status
|
|
|
});
|
|
|
}
|
|
|
return e;
|
|
|
});
|
|
|
dispatch({
|
|
|
type: constant/* DISABLE_DISCUSS */.fo,
|
|
|
payload: {
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
comments: newComments
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
_context5.next = 14;
|
|
|
break;
|
|
|
case 11:
|
|
|
_context5.prev = 11;
|
|
|
_context5.t0 = _context5["catch"](0);
|
|
|
console.log(_context5.t0);
|
|
|
case 14:
|
|
|
case "end":
|
|
|
return _context5.stop();
|
|
|
}
|
|
|
}, _callee5, null, [[0, 11]]);
|
|
|
}));
|
|
|
return _onDisableDiscuss.apply(this, arguments);
|
|
|
}
|
|
|
function onTopOrDownDiscuss(_x13, _x14, _x15) {
|
|
|
return _onTopOrDownDiscuss.apply(this, arguments);
|
|
|
}
|
|
|
function _onTopOrDownDiscuss() {
|
|
|
_onTopOrDownDiscuss = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6(id, sticky, index) {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee6$(_context6) {
|
|
|
while (1) switch (_context6.prev = _context6.next) {
|
|
|
case 0:
|
|
|
_context6.prev = 0;
|
|
|
_context6.next = 3;
|
|
|
return (0,service/* topOrDownDiscuss */.wJ)(id, sticky);
|
|
|
case 3:
|
|
|
comments[index].sticky = sticky;
|
|
|
dispatch({
|
|
|
type: constant/* TOP_OR_DOWN_DISCUSS */.u8,
|
|
|
payload: {
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
comments: comments
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
getDiscusses(state.page);
|
|
|
_context6.next = 11;
|
|
|
break;
|
|
|
case 8:
|
|
|
_context6.prev = 8;
|
|
|
_context6.t0 = _context6["catch"](0);
|
|
|
console.log(_context6.t0);
|
|
|
case 11:
|
|
|
case "end":
|
|
|
return _context6.stop();
|
|
|
}
|
|
|
}, _callee6, null, [[0, 8]]);
|
|
|
}));
|
|
|
return _onTopOrDownDiscuss.apply(this, arguments);
|
|
|
}
|
|
|
function onCancelAction() {
|
|
|
dispatch({
|
|
|
type: constant/* SET_ACTION_TYPE */.yS,
|
|
|
payload: {
|
|
|
actionType: null
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function onProcessAction() {
|
|
|
return _onProcessAction.apply(this, arguments);
|
|
|
}
|
|
|
function _onProcessAction() {
|
|
|
_onProcessAction = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee7() {
|
|
|
var id, params, type, index, parentDiscussIndex, secondDicusses, i, _i;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee7$(_context7) {
|
|
|
while (1) switch (_context7.prev = _context7.next) {
|
|
|
case 0:
|
|
|
id = actionType.id, params = actionType.params, type = actionType.type, index = actionType.index, parentDiscussIndex = actionType.parentDiscussIndex;
|
|
|
if (!(type === 'hidden-discuss')) {
|
|
|
_context7.next = 6;
|
|
|
break;
|
|
|
}
|
|
|
_context7.next = 4;
|
|
|
return (0,service/* hiddenDiscuss */.OY)(id, params);
|
|
|
case 4:
|
|
|
if (!parentDiscussIndex) {
|
|
|
comments[index].hidden = params.hidden == 1 ? true : false;
|
|
|
} else {
|
|
|
comments[parentDiscussIndex].children[index].hidden = params.hidden == 1 ? true : false;
|
|
|
}
|
|
|
dispatch({
|
|
|
type: constant/* SET_ACTION_TYPE */.yS,
|
|
|
payload: {
|
|
|
actionType: null,
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
comments: comments
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
case 6:
|
|
|
if (!(type === 'delete-discuss')) {
|
|
|
_context7.next = 31;
|
|
|
break;
|
|
|
}
|
|
|
_context7.next = 9;
|
|
|
return (0,service/* deleteDiscuss */.KY)(id);
|
|
|
case 9:
|
|
|
if (!(parentDiscussIndex || parentDiscussIndex === 0)) {
|
|
|
_context7.next = 22;
|
|
|
break;
|
|
|
}
|
|
|
secondDicusses = comments[parentDiscussIndex].children;
|
|
|
i = secondDicusses.length - 1;
|
|
|
case 12:
|
|
|
if (!(i >= 0)) {
|
|
|
_context7.next = 19;
|
|
|
break;
|
|
|
}
|
|
|
if (!(secondDicusses[i].id === id)) {
|
|
|
_context7.next = 16;
|
|
|
break;
|
|
|
}
|
|
|
secondDicusses.splice(i, 1);
|
|
|
return _context7.abrupt("break", 19);
|
|
|
case 16:
|
|
|
i--;
|
|
|
_context7.next = 12;
|
|
|
break;
|
|
|
case 19:
|
|
|
comments[parentDiscussIndex].children = secondDicusses;
|
|
|
_context7.next = 30;
|
|
|
break;
|
|
|
case 22:
|
|
|
_i = comments.length - 1;
|
|
|
case 23:
|
|
|
if (!(_i >= 0)) {
|
|
|
_context7.next = 30;
|
|
|
break;
|
|
|
}
|
|
|
if (!(comments[_i].id === id)) {
|
|
|
_context7.next = 27;
|
|
|
break;
|
|
|
}
|
|
|
comments.splice(_i, 1);
|
|
|
return _context7.abrupt("break", 30);
|
|
|
case 27:
|
|
|
_i--;
|
|
|
_context7.next = 23;
|
|
|
break;
|
|
|
case 30:
|
|
|
dispatch({
|
|
|
type: constant/* SET_ACTION_TYPE */.yS,
|
|
|
payload: {
|
|
|
actionType: null,
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
comments: comments
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
case 31:
|
|
|
case "end":
|
|
|
return _context7.stop();
|
|
|
}
|
|
|
}, _callee7);
|
|
|
}));
|
|
|
return _onProcessAction.apply(this, arguments);
|
|
|
}
|
|
|
function onSetActionType(value) {
|
|
|
dispatch({
|
|
|
type: constant/* SET_ACTION_TYPE */.yS,
|
|
|
payload: {
|
|
|
actionType: value
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function onCancelRewardDialog() {
|
|
|
dispatch({
|
|
|
type: constant/* CANCEL_REWARD_DIALOG */.t2
|
|
|
});
|
|
|
}
|
|
|
function onRewardDiscuss() {
|
|
|
return _onRewardDiscuss.apply(this, arguments);
|
|
|
}
|
|
|
function _onRewardDiscuss() {
|
|
|
_onRewardDiscuss = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee8() {
|
|
|
var _rewardData$current, id, index, score, user_id, parentDiscussIndex, response;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee8$(_context8) {
|
|
|
while (1) switch (_context8.prev = _context8.next) {
|
|
|
case 0:
|
|
|
_rewardData$current = rewardData.current, id = _rewardData$current.id, index = _rewardData$current.index, score = _rewardData$current.score, user_id = _rewardData$current.user_id, parentDiscussIndex = _rewardData$current.parentDiscussIndex;
|
|
|
_context8.next = 3;
|
|
|
return (0,service/* rewardDiscuss */.S8)(id, {
|
|
|
container_type: 'Discusses',
|
|
|
score: score,
|
|
|
user_id: user_id
|
|
|
});
|
|
|
case 3:
|
|
|
response = _context8.sent;
|
|
|
if (!parentDiscussIndex) {
|
|
|
comments[index].reward = response.code;
|
|
|
} else {
|
|
|
comments[parentDiscussIndex].children[index].reward = response.code;
|
|
|
}
|
|
|
dispatch({
|
|
|
type: constant/* SET_REWARD */.Vn,
|
|
|
payload: {
|
|
|
showRewardDialog: false,
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
comments: comments
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
rewardData.current = null;
|
|
|
case 7:
|
|
|
case "end":
|
|
|
return _context8.stop();
|
|
|
}
|
|
|
}, _callee8);
|
|
|
}));
|
|
|
return _onRewardDiscuss.apply(this, arguments);
|
|
|
}
|
|
|
function onSetRewardData(value) {
|
|
|
rewardData.current = value;
|
|
|
dispatch({
|
|
|
type: constant/* SHOW_REWARD_DIALOG */.RS
|
|
|
});
|
|
|
}
|
|
|
function onSetDiscussScore(value) {
|
|
|
rewardData.current.score = value;
|
|
|
}
|
|
|
function onReplyDiscuss(_x16, _x17) {
|
|
|
return _onReplyDiscuss.apply(this, arguments);
|
|
|
}
|
|
|
function _onReplyDiscuss() {
|
|
|
_onReplyDiscuss = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee9(id, value) {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee9$(_context9) {
|
|
|
while (1) switch (_context9.prev = _context9.next) {
|
|
|
case 0:
|
|
|
_context9.prev = 0;
|
|
|
_context9.next = 3;
|
|
|
return (0,service/* replyDiscuss */.wg)(id, value);
|
|
|
case 3:
|
|
|
res = _context9.sent;
|
|
|
if (!(res.status === -3)) {
|
|
|
_context9.next = 8;
|
|
|
break;
|
|
|
}
|
|
|
es_modal/* default */.Z.info({
|
|
|
title: '提示',
|
|
|
className: 'custom-modal-divider ',
|
|
|
icon: null,
|
|
|
content: '你的账号因为发布了不当内容,现已将评论功能屏蔽。',
|
|
|
okText: '确定'
|
|
|
});
|
|
|
onSetActiveDiscussIndex(null);
|
|
|
return _context9.abrupt("return");
|
|
|
case 8:
|
|
|
getDiscusses(page);
|
|
|
_context9.next = 14;
|
|
|
break;
|
|
|
case 11:
|
|
|
_context9.prev = 11;
|
|
|
_context9.t0 = _context9["catch"](0);
|
|
|
console.log(_context9.t0);
|
|
|
case 14:
|
|
|
case "end":
|
|
|
return _context9.stop();
|
|
|
}
|
|
|
}, _callee9, null, [[0, 11]]);
|
|
|
}));
|
|
|
return _onReplyDiscuss.apply(this, arguments);
|
|
|
}
|
|
|
function onSubmitDiscusses(_x18, _x19) {
|
|
|
return _onSubmitDiscusses.apply(this, arguments);
|
|
|
}
|
|
|
function _onSubmitDiscusses() {
|
|
|
_onSubmitDiscusses = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee10(id, value) {
|
|
|
var _yield$submitDiscusse, status;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee10$(_context10) {
|
|
|
while (1) switch (_context10.prev = _context10.next) {
|
|
|
case 0:
|
|
|
_context10.prev = 0;
|
|
|
_context10.next = 3;
|
|
|
return (0,service/* submitDiscusses */.KQ)(id, value);
|
|
|
case 3:
|
|
|
_yield$submitDiscusse = _context10.sent;
|
|
|
status = _yield$submitDiscusse.status;
|
|
|
if (!(status !== 1)) {
|
|
|
_context10.next = 7;
|
|
|
break;
|
|
|
}
|
|
|
return _context10.abrupt("return");
|
|
|
case 7:
|
|
|
getDiscusses(page);
|
|
|
_context10.next = 13;
|
|
|
break;
|
|
|
case 10:
|
|
|
_context10.prev = 10;
|
|
|
_context10.t0 = _context10["catch"](0);
|
|
|
console.log(_context10.t0);
|
|
|
case 13:
|
|
|
case "end":
|
|
|
return _context10.stop();
|
|
|
}
|
|
|
}, _callee10, null, [[0, 10]]);
|
|
|
}));
|
|
|
return _onSubmitDiscusses.apply(this, arguments);
|
|
|
}
|
|
|
function onSetActiveDiscussIndex(value) {
|
|
|
if (activeDiscussIndex === value) {
|
|
|
dispatch({
|
|
|
type: constant/* ACTIVE_DISCUSS_INDEX */.SX,
|
|
|
payload: {
|
|
|
activeDiscussIndex: null
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
dispatch({
|
|
|
type: constant/* ACTIVE_DISCUSS_INDEX */.SX,
|
|
|
payload: {
|
|
|
activeDiscussIndex: value
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
function init() {
|
|
|
return _init.apply(this, arguments);
|
|
|
}
|
|
|
function _init() {
|
|
|
_init = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
if (!(activeIndex === 3 && !data && shixunIdentifier)) {
|
|
|
_context.next = 3;
|
|
|
break;
|
|
|
}
|
|
|
_context.next = 3;
|
|
|
return getDiscusses(page);
|
|
|
case 3:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return _init.apply(this, arguments);
|
|
|
}
|
|
|
init();
|
|
|
}, [shixunIdentifier, activeIndex, page, dispatch]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var unSub = mediator/* default */.Z.subscribe('create-discuss', function () {
|
|
|
clearInterval(refresh.current);
|
|
|
getDiscusses(page);
|
|
|
if (chatgpt) {
|
|
|
refresh.current = setInterval(function () {
|
|
|
getDiscusses(page);
|
|
|
}, 5000);
|
|
|
}
|
|
|
});
|
|
|
return unSub;
|
|
|
}, [shixunIdentifier]);
|
|
|
if (!data) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(Spinner/* default */.Z, {});
|
|
|
}
|
|
|
// 开启实时刷新调用的函数
|
|
|
var handleRefresh = function handleRefresh() {
|
|
|
setOpen(!open);
|
|
|
if (!open) {
|
|
|
clearInterval(timeRefersh);
|
|
|
} else {
|
|
|
settimeRefersh(setInterval(function () {
|
|
|
getDiscusses(page, true);
|
|
|
}, 5000));
|
|
|
}
|
|
|
};
|
|
|
var disscuss_count = data.disscuss_count,
|
|
|
comments = data.comments,
|
|
|
all = data.all,
|
|
|
can_hidden = data.can_hidden;
|
|
|
console.log(to_user_id, "to_user_id");
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "discuss-container",
|
|
|
ref: discussEl,
|
|
|
children: [chatgpt && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
style: {
|
|
|
"float": 'right',
|
|
|
marginBottom: 10
|
|
|
},
|
|
|
onClick: function onClick() {
|
|
|
(0,util/* openNewWindow */.xg)("/chatgpt?id=".concat(to_user_id, "&position=").concat(challengeId));
|
|
|
},
|
|
|
children: "\u8FDB\u5165\u5386\u53F2\u95EE\u7B54"
|
|
|
}), (taskData === null || taskData === void 0 ? void 0 : taskData.myshixun_manager) && !chatgpt && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
style: {
|
|
|
"float": 'right',
|
|
|
marginBottom: 10
|
|
|
},
|
|
|
type: "primary",
|
|
|
onClick: handleRefresh,
|
|
|
children: open ? '开启实时刷新' : '停止实时刷新'
|
|
|
}), disscuss_count === 0 ? /*#__PURE__*/(0,jsx_runtime.jsx)(NoData/* default */.Z, {
|
|
|
styles: {
|
|
|
clear: 'both'
|
|
|
}
|
|
|
}) : null, comments.map(function (item, index) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(discuss_item, {
|
|
|
user: user,
|
|
|
userInfomation: userInfo,
|
|
|
data: item,
|
|
|
index: index,
|
|
|
identity: identity,
|
|
|
onPaginationChange: onPaginationChange,
|
|
|
shixunIdentifier: shixunIdentifier,
|
|
|
onSetActionType: onSetActionType,
|
|
|
onTopOrDownDiscuss: onTopOrDownDiscuss,
|
|
|
adminOrOperator: can_hidden,
|
|
|
onPlusDiscuss: onPlusDiscuss,
|
|
|
onDisableDiscuss: onDisableDiscuss,
|
|
|
onSetRewardData: onSetRewardData,
|
|
|
activeDiscussIndex: activeDiscussIndex,
|
|
|
onHandleSubmitDiscusses: onSubmitDiscusses,
|
|
|
onSetActiveDiscussIndex: onSetActiveDiscussIndex,
|
|
|
onReplyDiscuss: onReplyDiscuss,
|
|
|
allowDisableDiscuss: allowDisableDiscuss,
|
|
|
onHandleRepaly: onHandleRepaly
|
|
|
}, item.id);
|
|
|
}), disscuss_count > 10 ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "pagination-container",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(pagination/* default */.Z, {
|
|
|
showQuickJumper: true,
|
|
|
showSizeChanger: false,
|
|
|
onChange: onPaginationChange,
|
|
|
current: page,
|
|
|
total: disscuss_count
|
|
|
})
|
|
|
}) : null, /*#__PURE__*/(0,jsx_runtime.jsx)(AiAnswer, {})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(modal/* default */.Z, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
title: "\u63D0\u793A",
|
|
|
open: !!actionType,
|
|
|
onOk: onProcessAction,
|
|
|
onCancel: onCancelAction,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
children: actionType ? actionType.message : ''
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
width: 400,
|
|
|
title: "\u5956\u52B1\u8BBE\u7F6E",
|
|
|
open: showRewardDialog,
|
|
|
onCancel: onCancelRewardDialog,
|
|
|
onOk: onRewardDiscuss,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {
|
|
|
placeholder: "\u8BF7\u8F93\u5165\u5956\u52B1\u7684\u91D1\u5E01\u6570\u91CF",
|
|
|
min: 1,
|
|
|
onChange: onSetDiscussScore,
|
|
|
style: {
|
|
|
width: '228px'
|
|
|
}
|
|
|
})
|
|
|
})]
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 93314:
|
|
|
/*!********************************************!*\
|
|
|
!*** ./src/assets/images/icons/nodata.png ***!
|
|
|
\********************************************/
|
|
|
/***/ (function(module) {
|
|
|
|
|
|
module.exports = "data:image/png;base64,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";
|
|
|
|
|
|
/***/ })
|
|
|
|
|
|
}]); |