|
|
"use strict";
|
|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[59133,81471],{
|
|
|
|
|
|
/***/ 75769:
|
|
|
/*!*******************************************************************************************************!*\
|
|
|
!*** ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/CheckOutlined.js + 1 modules ***!
|
|
|
\*******************************************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ icons_CheckOutlined; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/esm/extends.js
|
|
|
var esm_extends = __webpack_require__(26508);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.3.1@@ant-design/icons-svg/es/asn/CheckOutlined.js
|
|
|
// This icon file is generated automatically.
|
|
|
var CheckOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z" } }] }, "name": "check", "theme": "outlined" };
|
|
|
/* harmony default export */ var asn_CheckOutlined = (CheckOutlined);
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
|
var AntdIcon = __webpack_require__(91851);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/CheckOutlined.js
|
|
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var CheckOutlined_CheckOutlined = function CheckOutlined(props, ref) {
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
|
ref: ref,
|
|
|
icon: asn_CheckOutlined
|
|
|
}));
|
|
|
};
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var icons_CheckOutlined = (/*#__PURE__*/_react_17_0_2_react.forwardRef(CheckOutlined_CheckOutlined));
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 84922:
|
|
|
/*!******************************************************************************************************!*\
|
|
|
!*** ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/FormOutlined.js + 1 modules ***!
|
|
|
\******************************************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ icons_FormOutlined; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/esm/extends.js
|
|
|
var esm_extends = __webpack_require__(26508);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.3.1@@ant-design/icons-svg/es/asn/FormOutlined.js
|
|
|
// This icon file is generated automatically.
|
|
|
var FormOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M904 512h-56c-4.4 0-8 3.6-8 8v320H184V184h320c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V520c0-4.4-3.6-8-8-8z" } }, { "tag": "path", "attrs": { "d": "M355.9 534.9L354 653.8c-.1 8.9 7.1 16.2 16 16.2h.4l118-2.9c2-.1 4-.9 5.4-2.3l415.9-415c3.1-3.1 3.1-8.2 0-11.3L785.4 114.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-415.8 415a8.3 8.3 0 00-2.3 5.6zm63.5 23.6L779.7 199l45.2 45.1-360.5 359.7-45.7 1.1.7-46.4z" } }] }, "name": "form", "theme": "outlined" };
|
|
|
/* harmony default export */ var asn_FormOutlined = (FormOutlined);
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
|
var AntdIcon = __webpack_require__(91851);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/FormOutlined.js
|
|
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var FormOutlined_FormOutlined = function FormOutlined(props, ref) {
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
|
ref: ref,
|
|
|
icon: asn_FormOutlined
|
|
|
}));
|
|
|
};
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var icons_FormOutlined = (/*#__PURE__*/_react_17_0_2_react.forwardRef(FormOutlined_FormOutlined));
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 25238:
|
|
|
/*!************************************************************!*\
|
|
|
!*** ./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__(14279);
|
|
|
// 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"
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 35126:
|
|
|
/*!*******************************************************************!*\
|
|
|
!*** ./src/pages/Shixuns/Detail/Challenges/index.tsx + 4 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 */ Detail_Challenges; }
|
|
|
});
|
|
|
|
|
|
// 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/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 + 8 modules
|
|
|
var _umi_production_exports = __webpack_require__(7181);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/index.js + 18 modules
|
|
|
var typography = __webpack_require__(53877);
|
|
|
// 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/button/index.js
|
|
|
var es_button = __webpack_require__(3113);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/skeleton/index.js + 12 modules
|
|
|
var skeleton = __webpack_require__(59981);
|
|
|
// 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/divider/index.js + 1 modules
|
|
|
var divider = __webpack_require__(28103);
|
|
|
// 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: ./src/utils/env.ts + 1 modules
|
|
|
var env = __webpack_require__(26078);
|
|
|
// EXTERNAL MODULE: ./src/utils/util.tsx
|
|
|
var util = __webpack_require__(87885);
|
|
|
// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx + 1 modules
|
|
|
var RenderHtml = __webpack_require__(32666);
|
|
|
// EXTERNAL MODULE: ./src/components/image-preview/index.tsx + 1 modules
|
|
|
var image_preview = __webpack_require__(25238);
|
|
|
// EXTERNAL MODULE: ./src/pages/Shixuns/Detail/components/Right/index.tsx + 4 modules
|
|
|
var Right = __webpack_require__(81471);
|
|
|
// 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/_antd@5.9.0@antd/es/statistic/index.js + 5 modules
|
|
|
var statistic = __webpack_require__(31797);
|
|
|
// 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/modal/index.js + 16 modules
|
|
|
var modal = __webpack_require__(43418);
|
|
|
// 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/dropdown/index.js + 1 modules
|
|
|
var dropdown = __webpack_require__(38854);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/upload/index.js + 24 modules
|
|
|
var upload = __webpack_require__(6557);
|
|
|
// EXTERNAL MODULE: ./src/service/shixuns.ts
|
|
|
var shixuns = __webpack_require__(25544);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Shixuns/Detail/Challenges/components/Jupyter/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var Jupytermodules = ({"allTaskWrap":"allTaskWrap___5OgCm","titleTip":"titleTip___ygfdn","loading":"loading___QpGaQ","failWrap":"failWrap____s8of","failIcon":"failIcon___f9OxH","failReload":"failReload___q6MdJ","timeWrap":"timeWrap___FKccg","actionWrap":"actionWrap___Ud1IQ","zoom":"zoom___wkYch","iframeZoom":"iframeZoom___H5Nxp","previewWrapper":"previewWrapper___WYNMf","uploadWrapper":"uploadWrapper___IIOXt"});
|
|
|
// EXTERNAL MODULE: ./src/components/mediator.js
|
|
|
var mediator = __webpack_require__(14279);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/CaretDownOutlined.js + 1 modules
|
|
|
var CaretDownOutlined = __webpack_require__(28720);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/FormOutlined.js + 1 modules
|
|
|
var FormOutlined = __webpack_require__(84922);
|
|
|
// EXTERNAL MODULE: ./src/utils/authority.ts
|
|
|
var authority = __webpack_require__(71633);
|
|
|
// EXTERNAL MODULE: ./src/components/ui-customization/index.tsx + 34 modules
|
|
|
var ui_customization = __webpack_require__(56782);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Shixuns/Detail/Challenges/components/Jupyter/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Countdown = statistic/* default */.Z.Countdown;
|
|
|
var Status = /*#__PURE__*/function (Status) {
|
|
|
Status[Status["LoadingFail"] = 1] = "LoadingFail";
|
|
|
Status[Status["Loading"] = 2] = "Loading";
|
|
|
Status[Status["Finish"] = 3] = "Finish";
|
|
|
Status[Status["Preview"] = 4] = "Preview";
|
|
|
return Status;
|
|
|
}(Status || {});
|
|
|
var Jupyter = function Jupyter(_ref) {
|
|
|
var _user$userInfo, _user$userInfo2, _shixunsDetail$detail, _shixunsDetail$challe, _shixunsDetail$challe2;
|
|
|
var shixunsDetail = _ref.shixunsDetail,
|
|
|
user = _ref.user,
|
|
|
dispatch = _ref.dispatch;
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(Status.Loading),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
status = _useState2[0],
|
|
|
setStatus = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
jupyterUrl = _useState4[0],
|
|
|
setJupyterUrl = _useState4[1];
|
|
|
var tmpInfoRef = (0,_react_17_0_2_react.useRef)();
|
|
|
var port = (0,_react_17_0_2_react.useRef)();
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
time = _useState6[0],
|
|
|
setTime = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
endTime = _useState8[0],
|
|
|
setEndTime = _useState8[1];
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
isZoom = _useState10[0],
|
|
|
setIsZoom = _useState10[1];
|
|
|
var jupyterMessageFlag = (0,_react_17_0_2_react.useRef)(true);
|
|
|
var _useState11 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState12 = slicedToArray_default()(_useState11, 2),
|
|
|
isLoading = _useState12[0],
|
|
|
setIsLoading = _useState12[1];
|
|
|
var _useState13 = (0,_react_17_0_2_react.useState)(700),
|
|
|
_useState14 = slicedToArray_default()(_useState13, 2),
|
|
|
iframeHeight = _useState14[0],
|
|
|
setIframeHeight = _useState14[1];
|
|
|
var token = (0,_react_17_0_2_react.useRef)();
|
|
|
var _useState15 = (0,_react_17_0_2_react.useState)(""),
|
|
|
_useState16 = slicedToArray_default()(_useState15, 2),
|
|
|
monitoringUrl = _useState16[0],
|
|
|
setMonitoringUrl = _useState16[1];
|
|
|
var _useState17 = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState18 = slicedToArray_default()(_useState17, 2),
|
|
|
previewHtml = _useState18[0],
|
|
|
setPreviewHtml = _useState18[1];
|
|
|
var getJupyterPreviewHtml = /*#__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:
|
|
|
setStatus(Status.Loading);
|
|
|
_context.next = 3;
|
|
|
return (0,shixuns/* previewJupyter */.SG)({
|
|
|
identifier: params.id
|
|
|
});
|
|
|
case 3:
|
|
|
res = _context.sent;
|
|
|
if (!(res.status === 0)) {
|
|
|
_context.next = 8;
|
|
|
break;
|
|
|
}
|
|
|
setPreviewHtml(res.html_content);
|
|
|
setStatus(Status.Preview);
|
|
|
return _context.abrupt("return");
|
|
|
case 8:
|
|
|
setStatus(Status.LoadingFail);
|
|
|
case 9:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function getJupyterPreviewHtml() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (shixunsDetail.hasStartedEnv) {
|
|
|
handleGetTPMInfo();
|
|
|
} else {
|
|
|
getJupyterPreviewHtml();
|
|
|
}
|
|
|
}, [shixunsDetail]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
window.addEventListener('message', handleJupyterMessage);
|
|
|
return function () {
|
|
|
window.removeEventListener('message', handleJupyterMessage);
|
|
|
};
|
|
|
}, []);
|
|
|
var handleJupyterMessage = function handleJupyterMessage(e) {
|
|
|
var _e$data;
|
|
|
if (((_e$data = e.data) === null || _e$data === void 0 ? void 0 : _e$data.type) === "editHeight") {
|
|
|
var _e$data2;
|
|
|
var computedHeight = Math.max(((_e$data2 = e.data) === null || _e$data2 === void 0 ? void 0 : _e$data2.height) + 148, 700);
|
|
|
setIframeHeight(computedHeight);
|
|
|
}
|
|
|
if ((e === null || e === void 0 ? void 0 : e.data) === "jupytermessage" && jupyterMessageFlag.current) {
|
|
|
jupyterMessageFlag.current = false;
|
|
|
handleSaveTPM();
|
|
|
setTimeout(function () {
|
|
|
return jupyterMessageFlag.current = true;
|
|
|
}, 500);
|
|
|
}
|
|
|
};
|
|
|
var handleSaveTPM = /*#__PURE__*/function () {
|
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
|
|
|
var _tmpInfoRef$current;
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
_context2.next = 2;
|
|
|
return (0,shixuns/* saveWithTPM */.qA)({
|
|
|
identifier: params.id,
|
|
|
jupyter_port: port.current,
|
|
|
token: token.current,
|
|
|
jupyter_domain: (_tmpInfoRef$current = tmpInfoRef.current) === null || _tmpInfoRef$current === void 0 ? void 0 : _tmpInfoRef$current.domain
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context2.sent;
|
|
|
if (res.status === 0) {
|
|
|
message/* default */.ZP.success('保存成功!');
|
|
|
} else {
|
|
|
message/* default */.ZP.info(res.message);
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return function handleSaveTPM() {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleGetTPMInfo = /*#__PURE__*/function () {
|
|
|
var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
|
|
|
var _res$data;
|
|
|
var res, _res$data2, _res$data3, _parseUrl;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
setStatus(Status.Loading);
|
|
|
setIsLoading(true);
|
|
|
_context3.next = 4;
|
|
|
return (0,shixuns/* getInfoWithTPM */.Ui)({
|
|
|
identifier: params.id
|
|
|
})["finally"](function () {
|
|
|
return setIsLoading(false);
|
|
|
});
|
|
|
case 4:
|
|
|
res = _context3.sent;
|
|
|
tmpInfoRef.current = res;
|
|
|
setIsLoading(false);
|
|
|
setMonitoringUrl(res === null || res === void 0 ? void 0 : res.monitoring_url);
|
|
|
if (!(res !== null && res !== void 0 && (_res$data = res.data) !== null && _res$data !== void 0 && (_res$data = _res$data.data_list) !== null && _res$data !== void 0 && _res$data.length)) {
|
|
|
_context3.next = 11;
|
|
|
break;
|
|
|
}
|
|
|
mediator/* default */.Z.publish('pod-restrict-data', {
|
|
|
identifier: res === null || res === void 0 || (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.identifier,
|
|
|
data_list: res === null || res === void 0 || (_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : _res$data3.data_list
|
|
|
});
|
|
|
return _context3.abrupt("return");
|
|
|
case 11:
|
|
|
if (!(res !== null && res !== void 0 && res.url)) {
|
|
|
_context3.next = 18;
|
|
|
break;
|
|
|
}
|
|
|
handleGetTPMTimeInfo();
|
|
|
token.current = (_parseUrl = (0,util/* parseUrl */.en)(res === null || res === void 0 ? void 0 : res.url)) === null || _parseUrl === void 0 ? void 0 : _parseUrl.token;
|
|
|
setStatus(Status.Finish);
|
|
|
setJupyterUrl(res.url);
|
|
|
port.current = res.port;
|
|
|
return _context3.abrupt("return");
|
|
|
case 18:
|
|
|
setStatus(Status.LoadingFail);
|
|
|
case 19:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
return function handleGetTPMInfo() {
|
|
|
return _ref4.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleGetTPMTimeInfo = /*#__PURE__*/function () {
|
|
|
var _ref5 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
_context4.next = 2;
|
|
|
return (0,shixuns/* getTimeInfoWithTPM */.K_)({
|
|
|
identifier: params.id
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context4.sent;
|
|
|
if (!((res === null || res === void 0 ? void 0 : res.status) !== 0)) {
|
|
|
_context4.next = 5;
|
|
|
break;
|
|
|
}
|
|
|
return _context4.abrupt("return");
|
|
|
case 5:
|
|
|
if (res !== null && res !== void 0 && res.remainingSeconds) {
|
|
|
setTime(Date.now() + res.remainingSeconds * 1000);
|
|
|
setEndTime(res.remainingSeconds - 300 <= 0 ? Date.now() + 1000 : Date.now() + (res.remainingSeconds - 300) * 1000);
|
|
|
} else {
|
|
|
handleResetEnvModal();
|
|
|
}
|
|
|
case 6:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
}));
|
|
|
return function handleGetTPMTimeInfo() {
|
|
|
return _ref5.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleResetEnvModal = function handleResetEnvModal() {
|
|
|
modal/* default */.Z.confirm({
|
|
|
centered: true,
|
|
|
title: '重置环境',
|
|
|
okText: '确定',
|
|
|
cancelText: '取消',
|
|
|
zIndex: 9999,
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "tc",
|
|
|
children: "\u662F\u5426\u786E\u5B9A\u91CD\u7F6E\u73AF\u5883\uFF1F"
|
|
|
}),
|
|
|
onOk: function () {
|
|
|
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5() {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
|
|
|
while (1) switch (_context5.prev = _context5.next) {
|
|
|
case 0:
|
|
|
handleResetEnv();
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context5.stop();
|
|
|
}
|
|
|
}, _callee5);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
};
|
|
|
var handleResetEnv = /*#__PURE__*/function () {
|
|
|
var _ref6 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6() {
|
|
|
var _parseUrl2;
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee6$(_context6) {
|
|
|
while (1) switch (_context6.prev = _context6.next) {
|
|
|
case 0:
|
|
|
setStatus(Status.Loading);
|
|
|
_context6.next = 3;
|
|
|
return (0,shixuns/* resetWithTPM */.zH)({
|
|
|
identifier: params.id
|
|
|
});
|
|
|
case 3:
|
|
|
res = _context6.sent;
|
|
|
if (!((res === null || res === void 0 ? void 0 : res.status) !== 0)) {
|
|
|
_context6.next = 6;
|
|
|
break;
|
|
|
}
|
|
|
return _context6.abrupt("return");
|
|
|
case 6:
|
|
|
setStatus(Status.Finish);
|
|
|
setJupyterUrl(res.url);
|
|
|
port.current = res.port;
|
|
|
token.current = (_parseUrl2 = (0,util/* parseUrl */.en)(res === null || res === void 0 ? void 0 : res.url)) === null || _parseUrl2 === void 0 ? void 0 : _parseUrl2.token;
|
|
|
message/* default */.ZP.success('重置环境成功!');
|
|
|
case 11:
|
|
|
case "end":
|
|
|
return _context6.stop();
|
|
|
}
|
|
|
}, _callee6);
|
|
|
}));
|
|
|
return function handleResetEnv() {
|
|
|
return _ref6.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleEndTimeFinish = function handleEndTimeFinish() {
|
|
|
modal/* default */.Z.destroyAll();
|
|
|
modal/* default */.Z.confirm({
|
|
|
centered: true,
|
|
|
title: '服务中断提醒',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "tc font14",
|
|
|
children: ["jupyter\u5C06\u4E8E", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(Countdown, {
|
|
|
value: time,
|
|
|
format: "HH:mm:ss",
|
|
|
onFinish: handleTimeFinish
|
|
|
})
|
|
|
}), "\u65F6\u95F4\u540E\u670D\u52A1\u4E2D\u65AD\uFF0C\u662F\u5426\u9700\u8981\u5EF6\u957F\u4F7F\u7528\u65F6\u95F4\uFF1F"]
|
|
|
}),
|
|
|
okText: '立即延长',
|
|
|
cancelText: '不需要',
|
|
|
zIndex: 9999,
|
|
|
onOk: function () {
|
|
|
var _onOk2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee7() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee7$(_context7) {
|
|
|
while (1) switch (_context7.prev = _context7.next) {
|
|
|
case 0:
|
|
|
_context7.next = 2;
|
|
|
return (0,shixuns/* activeWithTPM */.q9)({
|
|
|
identifier: params.id
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context7.sent;
|
|
|
if (!(res.status === 0)) {
|
|
|
_context7.next = 7;
|
|
|
break;
|
|
|
}
|
|
|
_context7.next = 6;
|
|
|
return handleGetTPMTimeInfo();
|
|
|
case 6:
|
|
|
message/* default */.ZP.success('延长成功!');
|
|
|
case 7:
|
|
|
case "end":
|
|
|
return _context7.stop();
|
|
|
}
|
|
|
}, _callee7);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk2.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
};
|
|
|
var handleTimeFinish = function handleTimeFinish() {
|
|
|
modal/* default */.Z.destroyAll();
|
|
|
modal/* default */.Z.confirm({
|
|
|
centered: true,
|
|
|
title: '倒计时截止',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
className: "tc font14",
|
|
|
children: "\u670D\u52A1\u5DF2\u4E2D\u65AD\uFF0C\u662F\u5426\u786E\u8BA4\u91CD\u7F6E\u5B9E\u9A8C\u73AF\u5883\uFF1F"
|
|
|
}),
|
|
|
okText: '确定',
|
|
|
cancelText: '取消',
|
|
|
zIndex: 9999,
|
|
|
onOk: function onOk() {
|
|
|
handleResetEnv();
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
var handleChangeUpload = function handleChangeUpload(info) {
|
|
|
var _info$file$response;
|
|
|
var statusList = ["uploading", "done", "removed"];
|
|
|
if (statusList.includes(info.file.status) && ((_info$file$response = info.file.response) === null || _info$file$response === void 0 ? void 0 : _info$file$response.status) === 0) {
|
|
|
message/* default */.ZP.success('上传文件成功!');
|
|
|
// handleSaveTPM();
|
|
|
var jurl = jupyterUrl;
|
|
|
setJupyterUrl("");
|
|
|
setTimeout(function () {
|
|
|
setJupyterUrl(jurl);
|
|
|
}, 100);
|
|
|
}
|
|
|
};
|
|
|
var uploadProps = {
|
|
|
showUploadList: false,
|
|
|
multiple: false,
|
|
|
data: {
|
|
|
identifier: params.id
|
|
|
},
|
|
|
action: "".concat(env/* default */.Z.API_SERVER, "/api/jupyters/import_with_tpm.json"),
|
|
|
onChange: handleChangeUpload,
|
|
|
withCredentials: true,
|
|
|
beforeUpload: function beforeUpload(file) {
|
|
|
if (file.name.indexOf('.ipynb') === -1) {
|
|
|
message/* default */.ZP.info('请上传100m以内ipynb格式的文件!');
|
|
|
return false;
|
|
|
}
|
|
|
var isLt10M = file.size / 1024 / 1024 < 100;
|
|
|
if (!isLt10M) {
|
|
|
message/* default */.ZP.info('请上传100m以内ipynb格式的文件!');
|
|
|
}
|
|
|
return isLt10M;
|
|
|
}
|
|
|
};
|
|
|
var renderLoadingFail = function renderLoadingFail() {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Jupytermodules.loading,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Jupytermodules.failWrap,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-jiazaishibai1 ".concat(Jupytermodules.failIcon)
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
|
className: "font12",
|
|
|
children: ["\u52A0\u8F7D\u5B9E\u8BAD\u5931\u8D25\uFF0C", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: Jupytermodules.failReload,
|
|
|
onClick: handleGetTPMInfo,
|
|
|
children: "\u91CD\u65B0\u52A0\u8F7D"
|
|
|
})]
|
|
|
})]
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
var renderLoading = function renderLoading() {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Jupytermodules.loading,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(spin/* default */.Z, {
|
|
|
spinning: true
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
var renderContent = function renderContent() {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: isZoom ? Jupytermodules.iframeZoom : '',
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("iframe", {
|
|
|
onLoad: function onLoad(e) {
|
|
|
// setIframeHeight(document.getElementById('frame').contentWindow.document.getElementById("notebook").scrollHeight + 70)
|
|
|
},
|
|
|
src: jupyterUrl,
|
|
|
scrolling: "no",
|
|
|
allow: "camera;microphone",
|
|
|
id: "frame",
|
|
|
name: "framename",
|
|
|
width: "100%",
|
|
|
height: iframeHeight,
|
|
|
frameBorder: "0"
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(skeleton/* default */.Z, {
|
|
|
loading: isLoading,
|
|
|
active: true,
|
|
|
avatar: {
|
|
|
size: 40
|
|
|
},
|
|
|
paragraph: {
|
|
|
rows: 5
|
|
|
},
|
|
|
children: [" ", (_user$userInfo = user.userInfo) !== null && _user$userInfo !== void 0 && _user$userInfo.admin || (_user$userInfo2 = user.userInfo) !== null && _user$userInfo2 !== void 0 && _user$userInfo2.business || ((_shixunsDetail$detail = shixunsDetail.detail) === null || _shixunsDetail$detail === void 0 ? void 0 : _shixunsDetail$detail.identity) < 5 && ((_shixunsDetail$challe = shixunsDetail.challenges) === null || _shixunsDetail$challe === void 0 ? void 0 : _shixunsDetail$challe.shixun_status) < 3 ? /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: isZoom ? Jupytermodules.zoom : '',
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Jupytermodules.timeWrap,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(Countdown, {
|
|
|
value: time,
|
|
|
format: "HH:mm:ss",
|
|
|
onFinish: handleTimeFinish
|
|
|
}), endTime && /*#__PURE__*/(0,jsx_runtime.jsx)(Countdown, {
|
|
|
value: endTime,
|
|
|
format: "HH:mm:ss",
|
|
|
onFinish: handleEndTimeFinish
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Jupytermodules.allTaskWrap,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: "font16",
|
|
|
children: ["\u4EFB\u52A1\u8BE6\u60C5", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: Jupytermodules.titleTip,
|
|
|
children: "\uFF08\u8BF7\u5C06\u5B9E\u8BAD\u9898\u76EE\u5199\u5728\u4E0B\u65B9\u5E76\u4FDD\u5B58\uFF09"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Jupytermodules.actionWrap,
|
|
|
children: [status === Status.Finish && /*#__PURE__*/(0,jsx_runtime.jsx)(dropdown/* default */.Z, {
|
|
|
placement: "bottom",
|
|
|
trigger: ['click'],
|
|
|
menu: {
|
|
|
items: [{
|
|
|
key: '1',
|
|
|
label: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
target: "_blank",
|
|
|
href: monitoringUrl,
|
|
|
children: "\u8D44\u6E90\u76D1\u63A7"
|
|
|
}),
|
|
|
show: (0,authority/* isSuperAdmins */.Ny)()
|
|
|
}, {
|
|
|
key: '2',
|
|
|
label: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
onClick: handleResetEnvModal,
|
|
|
children: "\u91CD\u7F6E\u73AF\u5883"
|
|
|
}),
|
|
|
show: true
|
|
|
}, {
|
|
|
key: '3',
|
|
|
label: /*#__PURE__*/(0,jsx_runtime.jsx)(upload/* default */.Z, objectSpread2_default()(objectSpread2_default()({}, uploadProps), {}, {
|
|
|
className: Jupytermodules.uploadWrapper,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: "\u5BFC\u5165"
|
|
|
})
|
|
|
})),
|
|
|
show: true
|
|
|
}, {
|
|
|
key: '4',
|
|
|
label: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
target: "_blank",
|
|
|
href: "https://".concat(port.current).concat(env/* default */.Z.TERMINAL_URL, "/terminals/1"),
|
|
|
children: "\u547D\u4EE4\u884C\u7EC8\u7AEF"
|
|
|
}),
|
|
|
show: (_shixunsDetail$challe2 = shixunsDetail.challenges) === null || _shixunsDetail$challe2 === void 0 ? void 0 : _shixunsDetail$challe2.is_jupyter
|
|
|
}].filter(function (item) {
|
|
|
return item.show;
|
|
|
})
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(ui_customization/* CustomButton */.op, {
|
|
|
children: ["\u5DE5\u5177\u680F", /*#__PURE__*/(0,jsx_runtime.jsx)(CaretDownOutlined/* default */.Z, {})]
|
|
|
})
|
|
|
}), status === Status.Finish && /*#__PURE__*/(0,jsx_runtime.jsx)(ui_customization/* CustomButton */.op, {
|
|
|
className: "ml20",
|
|
|
onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee8() {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee8$(_context8) {
|
|
|
while (1) switch (_context8.prev = _context8.next) {
|
|
|
case 0:
|
|
|
_context8.next = 2;
|
|
|
return getJupyterPreviewHtml();
|
|
|
case 2:
|
|
|
setStatus(Status.Preview);
|
|
|
case 3:
|
|
|
case "end":
|
|
|
return _context8.stop();
|
|
|
}
|
|
|
}, _callee8);
|
|
|
})),
|
|
|
children: "\u9000\u51FA\u7F16\u8F91"
|
|
|
}), status === Status.Preview && /*#__PURE__*/(0,jsx_runtime.jsxs)(ui_customization/* CustomButton */.op, {
|
|
|
className: "ml20",
|
|
|
onClick: function onClick() {
|
|
|
if (!shixunsDetail.hasStartedEnv) {
|
|
|
dispatch({
|
|
|
type: 'shixunsDetail/save',
|
|
|
payload: {
|
|
|
hasStartedEnv: true
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
setStatus(Status.Finish);
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(FormOutlined/* default */.Z, {
|
|
|
style: {
|
|
|
marginRight: 6
|
|
|
}
|
|
|
}), "\u7F16\u8F91\u5B9E\u9A8C\u5185\u5BB9"]
|
|
|
}), isZoom ? /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: "c-blue current",
|
|
|
onClick: function onClick() {
|
|
|
return setIsZoom(!isZoom);
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tuichuquanping1 font16 mr5 ml20 "
|
|
|
}), "\u9000\u51FA\u5168\u5C4F"]
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: "c-blue current",
|
|
|
onClick: function onClick() {
|
|
|
return setIsZoom(!isZoom);
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-quanping1 mr5 font16 ml20 "
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
style: {
|
|
|
position: "relative",
|
|
|
top: -1
|
|
|
},
|
|
|
children: "\u5168\u5C4F"
|
|
|
})]
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: [status === Status.LoadingFail && renderLoadingFail(), status === Status.Loading && renderLoading(), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
display: status === Status.Finish ? 'block' : 'none'
|
|
|
},
|
|
|
children: renderContent()
|
|
|
}), status === Status.Preview && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Jupytermodules.previewWrapper,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("iframe", {
|
|
|
srcDoc: previewHtml,
|
|
|
height: 900,
|
|
|
style: {
|
|
|
border: 'none',
|
|
|
width: '100%'
|
|
|
}
|
|
|
})
|
|
|
})]
|
|
|
})]
|
|
|
}) : null]
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var components_Jupyter = ((0,_umi_production_exports.connect)(function (_ref8) {
|
|
|
var shixunsDetail = _ref8.shixunsDetail,
|
|
|
loading = _ref8.loading,
|
|
|
globalSetting = _ref8.globalSetting,
|
|
|
user = _ref8.user;
|
|
|
return {
|
|
|
shixunsDetail: shixunsDetail,
|
|
|
globalSetting: globalSetting,
|
|
|
user: user,
|
|
|
loading: loading.models.index
|
|
|
};
|
|
|
})(Jupyter));
|
|
|
;// CONCATENATED MODULE: ./src/pages/Shixuns/Detail/Challenges/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var Challengesmodules = ({"flex_box_center":"flex_box_center___x_Daw","flex_space_between":"flex_space_between___kdxlI","flex_box_vertical_center":"flex_box_vertical_center___gKJIW","flex_box_center_end":"flex_box_center_end___LrVET","flex_box_column":"flex_box_column___VnHmN","challenges":"challenges___vQ9Jp","leftWrap":"leftWrap___h8un5","introWrap":"introWrap___pR_HR","introContentWrap":"introContentWrap___xoLzf","introContent":"introContent___DMssT","introContentMaxHeight":"introContentMaxHeight___MNBoT","nodataImg":"nodataImg___eTL2A","nodataImgWidth128":"nodataImgWidth128___m8SK4","nodataText":"nodataText___idqrT","pass":"pass___PMMP0","wrapPassTitle":"wrapPassTitle___LkBME","wrapPassContent":"wrapPassContent___Vojq9","passList":"passList___r1FtD","subject":"subject___n0KNm","info":"info___dz1CA","infoTitle":"infoTitle___fGbqo","infoScare":"infoScare___UpwjI","editIcon":"editIcon___r2urB","status":"status___dqblY","preparePageWrapper":"preparePageWrapper___e_RMO","preparePageTitle":"preparePageTitle___o72v4","preparePageContent":"preparePageContent___BobxE","preparePageText":"preparePageText___CriF6","startBtn":"startBtn___KGHjl"});
|
|
|
;// CONCATENATED MODULE: ./src/assets/images/shixun/env-not-started.png
|
|
|
var env_not_started_namespaceObject = "data:image/png;base64,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";
|
|
|
;// CONCATENATED MODULE: ./src/pages/Shixuns/Detail/Challenges/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
var _excluded = ["shixunsDetail", "globalSetting", "loading", "user", "dispatch"];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Title = typography/* default */.Z.Title;
|
|
|
var NoData = function NoData(_ref) {
|
|
|
var editable = _ref.editable;
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: [editable ? /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
className: Challengesmodules.nodataImg,
|
|
|
src: "".concat(env/* default */.Z.IMG_SERVER, "/images/educoder/shixunnodata.png")
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
className: "".concat(Challengesmodules.nodataImg, " ").concat(Challengesmodules.nodataImgWidth128),
|
|
|
src: "".concat(env/* default */.Z.IMG_SERVER, "/images/educoder/nodata.png")
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
className: Challengesmodules.nodataText,
|
|
|
children: "\u6682\u65F6\u8FD8\u6CA1\u6709\u76F8\u5173\u6570\u636E\u54E6\uFF01"
|
|
|
})]
|
|
|
});
|
|
|
};
|
|
|
var PreparePage = function PreparePage(_ref2) {
|
|
|
var onStart = _ref2.onStart,
|
|
|
onPreview = _ref2.onPreview;
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Challengesmodules.preparePageWrapper,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(Title, {
|
|
|
level: 4,
|
|
|
className: Challengesmodules.preparePageTitle,
|
|
|
children: "\u5B9E\u9A8C\u5185\u5BB9"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Challengesmodules.preparePageContent,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
src: env_not_started_namespaceObject
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Challengesmodules.preparePageText,
|
|
|
children: "\u5F00\u53D1\u8005\u5728\u6B64\u7F16\u8F91\u8BBE\u8BA1\u5B9E\u9A8C"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
|
|
|
justify: "center",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
className: "".concat(Challengesmodules.startBtn, " mr20"),
|
|
|
onClick: onPreview,
|
|
|
children: "\u67E5\u770B\u5B9E\u9A8C\u5185\u5BB9"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
className: Challengesmodules.startBtn,
|
|
|
onClick: onStart,
|
|
|
children: "\u7F16\u8F91\u5B9E\u9A8C\u5185\u5BB9"
|
|
|
})]
|
|
|
})]
|
|
|
})]
|
|
|
});
|
|
|
};
|
|
|
var Challenges = function Challenges(_ref3) {
|
|
|
var _user$userInfo, _shixunsDetail$challe, _shixunsDetail$challe4, _shixunsDetail$challe5, _shixunsDetail$detail2, _shixunsDetail$detail3, _shixunsDetail$detail4;
|
|
|
var shixunsDetail = _ref3.shixunsDetail,
|
|
|
globalSetting = _ref3.globalSetting,
|
|
|
loading = _ref3.loading,
|
|
|
user = _ref3.user,
|
|
|
dispatch = _ref3.dispatch,
|
|
|
props = objectWithoutProperties_default()(_ref3, _excluded);
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(true),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
showReadFull = _useState2[0],
|
|
|
setShowReadFull = _useState2[1];
|
|
|
var location = (0,_umi_production_exports.useLocation)();
|
|
|
var shixunId = (0,_react_17_0_2_react.useRef)('');
|
|
|
var content = (0,_react_17_0_2_react.useRef)();
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
showExpansion = _useState4[0],
|
|
|
setShowExpansion = _useState4[1];
|
|
|
var editable = (_user$userInfo = user.userInfo) === null || _user$userInfo === void 0 || (_user$userInfo = _user$userInfo.shixun) === null || _user$userInfo === void 0 ? void 0 : _user$userInfo.editable;
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (content !== null && content !== void 0 && content.current) {
|
|
|
var _content$current;
|
|
|
content === null || content === void 0 || (_content$current = content.current) === null || _content$current === void 0 || _content$current.addEventListener('mousedown', util/* onPreviewImage */.Dw);
|
|
|
return function () {
|
|
|
var _content$current2;
|
|
|
content === null || content === void 0 || (_content$current2 = content.current) === null || _content$current2 === void 0 || _content$current2.removeEventListener('mousedown', util/* onPreviewImage */.Dw);
|
|
|
};
|
|
|
}
|
|
|
}, [content === null || content === void 0 ? void 0 : content.current]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var _location$pathname$sp;
|
|
|
shixunId.current = (_location$pathname$sp = location.pathname.split('/')) === null || _location$pathname$sp === void 0 ? void 0 : _location$pathname$sp[2];
|
|
|
dispatch({
|
|
|
type: 'shixunsDetail/getChallengesData',
|
|
|
payload: {
|
|
|
id: shixunId.current
|
|
|
}
|
|
|
});
|
|
|
}, [location.pathname]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (!content.current) {
|
|
|
return;
|
|
|
}
|
|
|
function onLayout() {
|
|
|
var _content$current3;
|
|
|
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;
|
|
|
setShowExpansion(entry.target.offsetHeight >= 385);
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
});
|
|
|
ro.observe((_content$current3 = content.current) === null || _content$current3 === void 0 ? void 0 : _content$current3.firstElementChild);
|
|
|
return ro;
|
|
|
}
|
|
|
var ro = onLayout();
|
|
|
return function () {
|
|
|
var _content$current4, _content$current5;
|
|
|
((_content$current4 = content.current) === null || _content$current4 === void 0 ? void 0 : _content$current4.firstElementChild) && ro.unobserve((_content$current5 = content.current) === null || _content$current5 === void 0 ? void 0 : _content$current5.firstElementChild);
|
|
|
};
|
|
|
}, [(_shixunsDetail$challe = shixunsDetail.challenges) === null || _shixunsDetail$challe === void 0 ? void 0 : _shixunsDetail$challe.description, content.current, loading['shixunsDetail/getChallengesData']]);
|
|
|
var toQuestionEdit = function toQuestionEdit(st, challenge_id) {
|
|
|
(0,util/* trackEvent */.L9)(['实践项目', '详情页', '关卡进入编辑实训']);
|
|
|
var path = "/shixuns/".concat(shixunId.current, "/edit/").concat(challenge_id, "/").concat(st === 1 ? 'editquestion' : 'editcheckpoint');
|
|
|
_umi_production_exports.history.push(path);
|
|
|
};
|
|
|
var renderCustomsPass = function renderCustomsPass() {
|
|
|
var _shixunsDetail$challe2, _shixunsDetail$challe3;
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Challengesmodules.pass,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Challengesmodules.wrapPassTitle,
|
|
|
children: "\u4EFB\u52A1\u5173\u5361"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Challengesmodules.wrapPassContent,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(skeleton/* default */.Z, {
|
|
|
loading: loading['shixunsDetail/getChallengesData'],
|
|
|
active: true,
|
|
|
avatar: {
|
|
|
size: 40
|
|
|
},
|
|
|
paragraph: {
|
|
|
rows: 5
|
|
|
},
|
|
|
children: (_shixunsDetail$challe2 = shixunsDetail.challenges) !== null && _shixunsDetail$challe2 !== void 0 && (_shixunsDetail$challe2 = _shixunsDetail$challe2.challenge_list) !== null && _shixunsDetail$challe2 !== void 0 && _shixunsDetail$challe2.length ? (_shixunsDetail$challe3 = shixunsDetail.challenges) === null || _shixunsDetail$challe3 === void 0 ? void 0 : _shixunsDetail$challe3.challenge_list.map(function (item, index) {
|
|
|
var _shixunsDetail$detail;
|
|
|
var st = item.st,
|
|
|
name = item.name,
|
|
|
finish_show_flag = item.finish_show_flag,
|
|
|
finish_status = item.finish_status,
|
|
|
challenge_id = item.challenge_id;
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Challengesmodules.passList,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Challengesmodules.subject,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: st === 0 ? '实践题' : '选择题',
|
|
|
children: st === 0 ? /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-shixunti",
|
|
|
style: {
|
|
|
color: '#0152d9'
|
|
|
}
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-xuanzeti3",
|
|
|
style: {
|
|
|
color: '#44D7B6'
|
|
|
}
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Challengesmodules.info,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Challengesmodules.infoTitle,
|
|
|
children: ["\u7B2C", index + 1, "\u5173", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: name
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Challengesmodules.infoScare,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
children: ["\u6B63\u5728\u6311\u6218", /*#__PURE__*/(0,jsx_runtime.jsxs)("b", {
|
|
|
children: [item.playing_count, "\u4EBA\u6B21"]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
children: ["\u5B8C\u6210\u6311\u6218", /*#__PURE__*/(0,jsx_runtime.jsxs)("b", {
|
|
|
children: [item.passed_count, "\u4EBA\u6B21"]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
children: ["\u53EF\u83B7\u7ECF\u9A8C", /*#__PURE__*/(0,jsx_runtime.jsxs)("b", {
|
|
|
children: [item.score, "\u70B9"]
|
|
|
})]
|
|
|
})]
|
|
|
})]
|
|
|
}), ((_shixunsDetail$detail = shixunsDetail.detail) === null || _shixunsDetail$detail === void 0 ? void 0 : _shixunsDetail$detail.power) && /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: Challengesmodules.editIcon,
|
|
|
onClick: function onClick() {
|
|
|
return toQuestionEdit(st, challenge_id);
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-xiugai2"
|
|
|
})
|
|
|
}), finish_show_flag && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: Challengesmodules.status,
|
|
|
children: [item.finish_status && /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
style: {
|
|
|
color: '#44D7B6'
|
|
|
},
|
|
|
children: "\u5DF2\u5B8C\u6210"
|
|
|
}), !item.finish_status && /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: "\u672A\u5B8C\u6210"
|
|
|
})]
|
|
|
})]
|
|
|
}, index);
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsx)(NoData, {
|
|
|
editable: editable
|
|
|
})
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
};
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
btnClicked = _useState6[0],
|
|
|
setBtnClicked = _useState6[1]; //只要点击过任意一个按钮就不再展示启动环境按钮和预览按钮了
|
|
|
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
|
|
|
className: Challengesmodules.challenges,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
|
|
|
className: Challengesmodules.leftWrap,
|
|
|
children: [((_shixunsDetail$challe4 = shixunsDetail.challenges) === null || _shixunsDetail$challe4 === void 0 ? void 0 : _shixunsDetail$challe4.description) && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Challengesmodules.introWrap,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: Challengesmodules.introContentWrap,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(skeleton/* default */.Z, {
|
|
|
loading: loading['shixunsDetail/getChallengesData'],
|
|
|
active: true,
|
|
|
avatar: {
|
|
|
size: 40
|
|
|
},
|
|
|
paragraph: {
|
|
|
rows: 5
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
ref: content,
|
|
|
className: "".concat(Challengesmodules.introContent, " ").concat(showReadFull ? Challengesmodules.introContentMaxHeight : ''),
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
|
|
|
value: (_shixunsDetail$challe5 = shixunsDetail.challenges) === null || _shixunsDetail$challe5 === void 0 ? void 0 : _shixunsDetail$challe5.description
|
|
|
})
|
|
|
}), showExpansion && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
onClick: function onClick() {
|
|
|
return setShowReadFull(!showReadFull);
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(divider/* default */.Z, {
|
|
|
dashed: false,
|
|
|
className: "",
|
|
|
style: {
|
|
|
cursor: 'pointer'
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
className: "font14 ".concat(Challengesmodules.color999),
|
|
|
children: [showReadFull ? '阅读全文 ' : '收起全文 ', /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont font14 ".concat(showReadFull ? 'icon-jiantou9' : 'icon-changyongtubiao-xianxingdaochu-zhuanqu-')
|
|
|
})]
|
|
|
})
|
|
|
})
|
|
|
})]
|
|
|
})
|
|
|
})
|
|
|
}), (_shixunsDetail$detail2 = shixunsDetail.detail) !== null && _shixunsDetail$detail2 !== void 0 && _shixunsDetail$detail2.is_jupyter || (_shixunsDetail$detail3 = shixunsDetail.detail) !== null && _shixunsDetail$detail3 !== void 0 && _shixunsDetail$detail3.is_jupyter_lab ? (_shixunsDetail$detail4 = shixunsDetail.detail) !== null && _shixunsDetail$detail4 !== void 0 && _shixunsDetail$detail4.power ? btnClicked ? /*#__PURE__*/(0,jsx_runtime.jsx)(components_Jupyter, {}) : /*#__PURE__*/(0,jsx_runtime.jsx)(PreparePage, {
|
|
|
onPreview: function onPreview() {
|
|
|
dispatch({
|
|
|
type: 'shixunsDetail/save',
|
|
|
payload: {
|
|
|
hasStartedEnv: false
|
|
|
}
|
|
|
});
|
|
|
setBtnClicked(true);
|
|
|
},
|
|
|
onStart: function onStart() {
|
|
|
dispatch({
|
|
|
type: 'shixunsDetail/save',
|
|
|
payload: {
|
|
|
hasStartedEnv: true
|
|
|
}
|
|
|
});
|
|
|
setBtnClicked(true);
|
|
|
}
|
|
|
}) : null : renderCustomsPass()]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(Right/* default */.Z, {}), /*#__PURE__*/(0,jsx_runtime.jsx)(image_preview/* default */.Z, {})]
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var Detail_Challenges = ((0,_umi_production_exports.connect)(function (_ref4) {
|
|
|
var shixunsDetail = _ref4.shixunsDetail,
|
|
|
loading = _ref4.loading,
|
|
|
globalSetting = _ref4.globalSetting,
|
|
|
user = _ref4.user;
|
|
|
return {
|
|
|
shixunsDetail: shixunsDetail,
|
|
|
globalSetting: globalSetting,
|
|
|
user: user,
|
|
|
loading: loading.effects
|
|
|
};
|
|
|
})(Challenges));
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 81471:
|
|
|
/*!*************************************************************************!*\
|
|
|
!*** ./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 + 8 modules
|
|
|
var _umi_production_exports = __webpack_require__(7181);
|
|
|
// 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__(43553);
|
|
|
// 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));
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 56762:
|
|
|
/*!************************************************************************!*\
|
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/_util/hooks/useForceUpdate.js ***!
|
|
|
\************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ Z: function() { return /* binding */ useForceUpdate; }
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301);
|
|
|
|
|
|
function useForceUpdate() {
|
|
|
const [, forceUpdate] = react__WEBPACK_IMPORTED_MODULE_0__.useReducer(x => x + 1, 0);
|
|
|
return forceUpdate;
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 28103:
|
|
|
/*!***********************************************************************!*\
|
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/divider/index.js + 1 modules ***!
|
|
|
\***********************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ divider; }
|
|
|
});
|
|
|
|
|
|
// 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/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js
|
|
|
var context = __webpack_require__(36355);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/style/index.js
|
|
|
var style = __webpack_require__(17313);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/genComponentStyleHook.js
|
|
|
var genComponentStyleHook = __webpack_require__(83116);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/statistic.js
|
|
|
var statistic = __webpack_require__(37613);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/divider/style/index.js
|
|
|
|
|
|
|
|
|
// ============================== Shared ==============================
|
|
|
const genSharedDividerStyle = token => {
|
|
|
const {
|
|
|
componentCls,
|
|
|
sizePaddingEdgeHorizontal,
|
|
|
colorSplit,
|
|
|
lineWidth,
|
|
|
textPaddingInline,
|
|
|
orientationMargin,
|
|
|
verticalMarginInline
|
|
|
} = token;
|
|
|
return {
|
|
|
[componentCls]: Object.assign(Object.assign({}, (0,style/* resetComponent */.Wf)(token)), {
|
|
|
borderBlockStart: `${lineWidth}px solid ${colorSplit}`,
|
|
|
// vertical
|
|
|
'&-vertical': {
|
|
|
position: 'relative',
|
|
|
top: '-0.06em',
|
|
|
display: 'inline-block',
|
|
|
height: '0.9em',
|
|
|
marginInline: verticalMarginInline,
|
|
|
marginBlock: 0,
|
|
|
verticalAlign: 'middle',
|
|
|
borderTop: 0,
|
|
|
borderInlineStart: `${lineWidth}px solid ${colorSplit}`
|
|
|
},
|
|
|
'&-horizontal': {
|
|
|
display: 'flex',
|
|
|
clear: 'both',
|
|
|
width: '100%',
|
|
|
minWidth: '100%',
|
|
|
margin: `${token.dividerHorizontalGutterMargin}px 0`
|
|
|
},
|
|
|
[`&-horizontal${componentCls}-with-text`]: {
|
|
|
display: 'flex',
|
|
|
alignItems: 'center',
|
|
|
margin: `${token.dividerHorizontalWithTextGutterMargin}px 0`,
|
|
|
color: token.colorTextHeading,
|
|
|
fontWeight: 500,
|
|
|
fontSize: token.fontSizeLG,
|
|
|
whiteSpace: 'nowrap',
|
|
|
textAlign: 'center',
|
|
|
borderBlockStart: `0 ${colorSplit}`,
|
|
|
'&::before, &::after': {
|
|
|
position: 'relative',
|
|
|
width: '50%',
|
|
|
borderBlockStart: `${lineWidth}px solid transparent`,
|
|
|
// Chrome not accept `inherit` in `border-top`
|
|
|
borderBlockStartColor: 'inherit',
|
|
|
borderBlockEnd: 0,
|
|
|
transform: 'translateY(50%)',
|
|
|
content: "''"
|
|
|
}
|
|
|
},
|
|
|
[`&-horizontal${componentCls}-with-text-left`]: {
|
|
|
'&::before': {
|
|
|
width: `${orientationMargin * 100}%`
|
|
|
},
|
|
|
'&::after': {
|
|
|
width: `${100 - orientationMargin * 100}%`
|
|
|
}
|
|
|
},
|
|
|
[`&-horizontal${componentCls}-with-text-right`]: {
|
|
|
'&::before': {
|
|
|
width: `${100 - orientationMargin * 100}%`
|
|
|
},
|
|
|
'&::after': {
|
|
|
width: `${orientationMargin * 100}%`
|
|
|
}
|
|
|
},
|
|
|
[`${componentCls}-inner-text`]: {
|
|
|
display: 'inline-block',
|
|
|
paddingBlock: 0,
|
|
|
paddingInline: textPaddingInline
|
|
|
},
|
|
|
'&-dashed': {
|
|
|
background: 'none',
|
|
|
borderColor: colorSplit,
|
|
|
borderStyle: 'dashed',
|
|
|
borderWidth: `${lineWidth}px 0 0`
|
|
|
},
|
|
|
[`&-horizontal${componentCls}-with-text${componentCls}-dashed`]: {
|
|
|
'&::before, &::after': {
|
|
|
borderStyle: 'dashed none none'
|
|
|
}
|
|
|
},
|
|
|
[`&-vertical${componentCls}-dashed`]: {
|
|
|
borderInlineStartWidth: lineWidth,
|
|
|
borderInlineEnd: 0,
|
|
|
borderBlockStart: 0,
|
|
|
borderBlockEnd: 0
|
|
|
},
|
|
|
[`&-plain${componentCls}-with-text`]: {
|
|
|
color: token.colorText,
|
|
|
fontWeight: 'normal',
|
|
|
fontSize: token.fontSize
|
|
|
},
|
|
|
[`&-horizontal${componentCls}-with-text-left${componentCls}-no-default-orientation-margin-left`]: {
|
|
|
'&::before': {
|
|
|
width: 0
|
|
|
},
|
|
|
'&::after': {
|
|
|
width: '100%'
|
|
|
},
|
|
|
[`${componentCls}-inner-text`]: {
|
|
|
paddingInlineStart: sizePaddingEdgeHorizontal
|
|
|
}
|
|
|
},
|
|
|
[`&-horizontal${componentCls}-with-text-right${componentCls}-no-default-orientation-margin-right`]: {
|
|
|
'&::before': {
|
|
|
width: '100%'
|
|
|
},
|
|
|
'&::after': {
|
|
|
width: 0
|
|
|
},
|
|
|
[`${componentCls}-inner-text`]: {
|
|
|
paddingInlineEnd: sizePaddingEdgeHorizontal
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
};
|
|
|
};
|
|
|
// ============================== Export ==============================
|
|
|
/* harmony default export */ var divider_style = ((0,genComponentStyleHook/* default */.Z)('Divider', token => {
|
|
|
const dividerToken = (0,statistic/* merge */.TS)(token, {
|
|
|
dividerHorizontalWithTextGutterMargin: token.margin,
|
|
|
dividerHorizontalGutterMargin: token.marginLG,
|
|
|
sizePaddingEdgeHorizontal: 0
|
|
|
});
|
|
|
return [genSharedDividerStyle(dividerToken)];
|
|
|
}, token => ({
|
|
|
textPaddingInline: '1em',
|
|
|
orientationMargin: 0.05,
|
|
|
verticalMarginInline: token.marginXS
|
|
|
})));
|
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/divider/index.js
|
|
|
"use client";
|
|
|
|
|
|
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
|
var t = {};
|
|
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
|
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
|
}
|
|
|
return t;
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const Divider = props => {
|
|
|
const {
|
|
|
getPrefixCls,
|
|
|
direction,
|
|
|
divider
|
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
|
const {
|
|
|
prefixCls: customizePrefixCls,
|
|
|
type = 'horizontal',
|
|
|
orientation = 'center',
|
|
|
orientationMargin,
|
|
|
className,
|
|
|
rootClassName,
|
|
|
children,
|
|
|
dashed,
|
|
|
plain,
|
|
|
style
|
|
|
} = props,
|
|
|
restProps = __rest(props, ["prefixCls", "type", "orientation", "orientationMargin", "className", "rootClassName", "children", "dashed", "plain", "style"]);
|
|
|
const prefixCls = getPrefixCls('divider', customizePrefixCls);
|
|
|
const [wrapSSR, hashId] = divider_style(prefixCls);
|
|
|
const orientationPrefix = orientation.length > 0 ? `-${orientation}` : orientation;
|
|
|
const hasChildren = !!children;
|
|
|
const hasCustomMarginLeft = orientation === 'left' && orientationMargin != null;
|
|
|
const hasCustomMarginRight = orientation === 'right' && orientationMargin != null;
|
|
|
const classString = _classnames_2_3_2_classnames_default()(prefixCls, divider === null || divider === void 0 ? void 0 : divider.className, hashId, `${prefixCls}-${type}`, {
|
|
|
[`${prefixCls}-with-text`]: hasChildren,
|
|
|
[`${prefixCls}-with-text${orientationPrefix}`]: hasChildren,
|
|
|
[`${prefixCls}-dashed`]: !!dashed,
|
|
|
[`${prefixCls}-plain`]: !!plain,
|
|
|
[`${prefixCls}-rtl`]: direction === 'rtl',
|
|
|
[`${prefixCls}-no-default-orientation-margin-left`]: hasCustomMarginLeft,
|
|
|
[`${prefixCls}-no-default-orientation-margin-right`]: hasCustomMarginRight
|
|
|
}, className, rootClassName);
|
|
|
const memoizedOrientationMargin = _react_17_0_2_react.useMemo(() => {
|
|
|
if (typeof orientationMargin === 'number') {
|
|
|
return orientationMargin;
|
|
|
}
|
|
|
if (/^\d+$/.test(orientationMargin)) {
|
|
|
return Number(orientationMargin);
|
|
|
}
|
|
|
return orientationMargin;
|
|
|
}, [orientationMargin]);
|
|
|
const innerStyle = Object.assign(Object.assign({}, hasCustomMarginLeft && {
|
|
|
marginLeft: memoizedOrientationMargin
|
|
|
}), hasCustomMarginRight && {
|
|
|
marginRight: memoizedOrientationMargin
|
|
|
});
|
|
|
// Warning children not work in vertical mode
|
|
|
if (false) {}
|
|
|
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement("div", Object.assign({
|
|
|
className: classString,
|
|
|
style: Object.assign(Object.assign({}, divider === null || divider === void 0 ? void 0 : divider.style), style)
|
|
|
}, restProps, {
|
|
|
role: "separator"
|
|
|
}), children && type !== 'vertical' && /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
|
className: `${prefixCls}-inner-text`,
|
|
|
style: innerStyle
|
|
|
}, children)));
|
|
|
};
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var divider = (Divider);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 92899:
|
|
|
/*!***************************************************************!*\
|
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/style/motion/move.js ***!
|
|
|
\***************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ Fm: function() { return /* binding */ initMoveMotion; }
|
|
|
/* harmony export */ });
|
|
|
/* unused harmony exports moveDownIn, moveDownOut, moveLeftIn, moveLeftOut, moveRightIn, moveRightOut, moveUpIn, moveUpOut */
|
|
|
/* harmony import */ var _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ant-design/cssinjs */ 84608);
|
|
|
/* harmony import */ var _motion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./motion */ 95406);
|
|
|
|
|
|
|
|
|
const moveDownIn = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveDownIn', {
|
|
|
'0%': {
|
|
|
transform: 'translate3d(0, 100%, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 0
|
|
|
},
|
|
|
'100%': {
|
|
|
transform: 'translate3d(0, 0, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 1
|
|
|
}
|
|
|
});
|
|
|
const moveDownOut = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveDownOut', {
|
|
|
'0%': {
|
|
|
transform: 'translate3d(0, 0, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 1
|
|
|
},
|
|
|
'100%': {
|
|
|
transform: 'translate3d(0, 100%, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 0
|
|
|
}
|
|
|
});
|
|
|
const moveLeftIn = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveLeftIn', {
|
|
|
'0%': {
|
|
|
transform: 'translate3d(-100%, 0, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 0
|
|
|
},
|
|
|
'100%': {
|
|
|
transform: 'translate3d(0, 0, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 1
|
|
|
}
|
|
|
});
|
|
|
const moveLeftOut = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveLeftOut', {
|
|
|
'0%': {
|
|
|
transform: 'translate3d(0, 0, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 1
|
|
|
},
|
|
|
'100%': {
|
|
|
transform: 'translate3d(-100%, 0, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 0
|
|
|
}
|
|
|
});
|
|
|
const moveRightIn = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveRightIn', {
|
|
|
'0%': {
|
|
|
transform: 'translate3d(100%, 0, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 0
|
|
|
},
|
|
|
'100%': {
|
|
|
transform: 'translate3d(0, 0, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 1
|
|
|
}
|
|
|
});
|
|
|
const moveRightOut = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveRightOut', {
|
|
|
'0%': {
|
|
|
transform: 'translate3d(0, 0, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 1
|
|
|
},
|
|
|
'100%': {
|
|
|
transform: 'translate3d(100%, 0, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 0
|
|
|
}
|
|
|
});
|
|
|
const moveUpIn = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveUpIn', {
|
|
|
'0%': {
|
|
|
transform: 'translate3d(0, -100%, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 0
|
|
|
},
|
|
|
'100%': {
|
|
|
transform: 'translate3d(0, 0, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 1
|
|
|
}
|
|
|
});
|
|
|
const moveUpOut = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveUpOut', {
|
|
|
'0%': {
|
|
|
transform: 'translate3d(0, 0, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 1
|
|
|
},
|
|
|
'100%': {
|
|
|
transform: 'translate3d(0, -100%, 0)',
|
|
|
transformOrigin: '0 0',
|
|
|
opacity: 0
|
|
|
}
|
|
|
});
|
|
|
const moveMotion = {
|
|
|
'move-up': {
|
|
|
inKeyframes: moveUpIn,
|
|
|
outKeyframes: moveUpOut
|
|
|
},
|
|
|
'move-down': {
|
|
|
inKeyframes: moveDownIn,
|
|
|
outKeyframes: moveDownOut
|
|
|
},
|
|
|
'move-left': {
|
|
|
inKeyframes: moveLeftIn,
|
|
|
outKeyframes: moveLeftOut
|
|
|
},
|
|
|
'move-right': {
|
|
|
inKeyframes: moveRightIn,
|
|
|
outKeyframes: moveRightOut
|
|
|
}
|
|
|
};
|
|
|
const initMoveMotion = (token, motionName) => {
|
|
|
const {
|
|
|
antCls
|
|
|
} = token;
|
|
|
const motionCls = `${antCls}-${motionName}`;
|
|
|
const {
|
|
|
inKeyframes,
|
|
|
outKeyframes
|
|
|
} = moveMotion[motionName];
|
|
|
return [(0,_motion__WEBPACK_IMPORTED_MODULE_1__/* .initMotion */ .R)(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {
|
|
|
[`
|
|
|
${motionCls}-enter,
|
|
|
${motionCls}-appear
|
|
|
`]: {
|
|
|
opacity: 0,
|
|
|
animationTimingFunction: token.motionEaseOutCirc
|
|
|
},
|
|
|
[`${motionCls}-leave`]: {
|
|
|
animationTimingFunction: token.motionEaseInOutCirc
|
|
|
}
|
|
|
}];
|
|
|
};
|
|
|
|
|
|
/***/ })
|
|
|
|
|
|
}]); |