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

10827 lines
488 KiB

This file contains ambiguous Unicode characters!

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

(self["webpackChunk"] = self["webpackChunk"] || []).push([[36270,4977],{
/***/ 71417:
/*!*********************************************************!*\
!*** ./src/components/MathematicalGraphics/js/index.js ***!
\*********************************************************/
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = (__webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/typeof.js */ 31468)["default"]);
(function () {
if (typeof window.GGBApplet == "function") {
console.warn("deployggb.js was loaded twice");
return;
}
var isRenderGGBElementEnabled = false;
var scriptLoadStarted = false;
var html5AppletsToProcess = null;
var ggbHTML5LoadedCodebaseIsWebSimple = false;
var ggbHTML5LoadedCodebaseVersion = null;
var ggbHTML5LoadedScript = null;
var GGBApplet = function GGBApplet() {
"use strict";
var applet = {};
var ggbVersion = "5.0";
var parameters = {};
var views = null;
var html5NoWebSimple = false;
var html5NoWebSimpleParamExists = false;
var appletID = null;
var initComplete = false;
var html5OverwrittenCodebaseVersion = null;
var html5OverwrittenCodebase = null;
for (var i = 0; i < arguments.length; i++) {
var p = arguments[i];
if (p !== null) {
switch (_typeof(p)) {
case "number":
ggbVersion = p.toFixed(1);
break;
case "string":
if (p.match(new RegExp("^[0-9]\\.[0-9]+$"))) {
ggbVersion = p;
} else {
appletID = p;
}
break;
case "object":
if (typeof p.is3D !== "undefined") {
views = p;
} else {
parameters = p;
}
break;
case "boolean":
html5NoWebSimple = p;
html5NoWebSimpleParamExists = true;
break;
}
}
}
if (views === null) {
views = {
is3D: false,
AV: false,
SV: false,
CV: false,
EV2: false,
CP: false,
PC: false,
DA: false,
FI: false,
PV: false,
macro: false
};
if (parameters.material_id !== undefined && !html5NoWebSimpleParamExists) {
html5NoWebSimple = true;
}
}
if (appletID !== null && parameters.id === undefined) {
parameters.id = appletID;
}
var jnlpFilePath = "";
var html5Codebase = "";
var isHTML5Offline = false;
var loadedAppletType = null;
var html5CodebaseVersion = null;
var html5CodebaseScript = null;
var html5CodebaseIsWebSimple = false;
var previewImagePath = null;
var previewLoadingPath = null;
var previewPlayPath = null;
var fonts_css_url = null;
var jnlpBaseDir = null;
if (parameters.height !== undefined) {
parameters.height = Math.round(parameters.height);
}
if (parameters.width !== undefined) {
parameters.width = Math.round(parameters.width);
}
var parseVersion = function parseVersion(d) {
return parseFloat(d) > 4 ? parseFloat(d) : 5;
};
applet.setHTML5Codebase = function (codebase, offline) {
html5OverwrittenCodebase = codebase;
setHTML5CodebaseInternal(codebase, offline);
};
applet.setJavaCodebase = applet.setJavaCodebaseVersion = applet.isCompiledInstalled = applet.setPreCompiledScriptPath = applet.setPreCompiledResourcePath = function () {};
applet.setHTML5CodebaseVersion = function (version, offline) {
var numVersion = parseFloat(version);
if (numVersion !== NaN && numVersion < 5) {
console.log("The GeoGebra HTML5 codebase version " + numVersion + " is deprecated. Using version latest instead.");
return;
}
html5OverwrittenCodebaseVersion = version;
setDefaultHTML5CodebaseForVersion(version, offline);
};
applet.getHTML5CodebaseVersion = function () {
return html5CodebaseVersion;
};
applet.getParameters = function () {
return parameters;
};
applet.setFontsCSSURL = function (url) {
fonts_css_url = url;
};
applet.setGiacJSURL = function (url) {};
applet.setJNLPFile = function (newJnlpFilePath) {
jnlpFilePath = newJnlpFilePath;
};
applet.setJNLPBaseDir = function (baseDir) {};
applet.inject = function () {
function isOwnIFrame() {
return window.frameElement && window.frameElement.getAttribute("data-singleton");
}
var type = "auto";
var container_ID = parameters.id;
var container;
var noPreview = false;
for (var i = 0; i < arguments.length; i++) {
var p = arguments[i];
if (typeof p === "string") {
p = p.toLowerCase();
if (p.match(/^(prefer)?(java|html5|compiled|auto|screenshot)$/)) {
type = p;
} else {
container_ID = arguments[i];
}
} else if (typeof p === "boolean") {
noPreview = p;
} else if (p instanceof HTMLElement) {
container = p;
}
}
continueInject();
function continueInject() {
if (!initComplete) {
setTimeout(continueInject, 200);
return;
}
type = detectAppletType(type);
var appletElem = container || document.getElementById(container_ID);
if (!appletElem) {
console.log("possibly bug on ajax loading? ");
return;
}
applet.removeExistingApplet(appletElem, false);
if (parameters.width === undefined && appletElem.clientWidth) {
parameters.width = appletElem.clientWidth;
}
if (parameters.height === undefined && appletElem.clientHeight) {
parameters.height = appletElem.clientHeight;
}
if (!(parameters.width && parameters.height) && type === "html5") {
delete parameters.width;
delete parameters.height;
}
loadedAppletType = type;
if (type === "screenshot") {
injectScreenshot(appletElem, parameters);
} else {
var playButton = false;
if (parameters.hasOwnProperty("playButton") && parameters.playButton || parameters.hasOwnProperty("clickToLoad") && parameters.clickToLoad) {
playButton = true;
} else if (parameters.hasOwnProperty("playButtonAutoDecide") && parameters.playButtonAutoDecide) {
playButton = (!isInIframe() || isOwnIFrame()) && isMobileDevice();
}
if (playButton) {
loadedAppletType = "screenshot";
injectPlayButton(appletElem, parameters, noPreview, type);
} else {
injectHTML5Applet(appletElem, parameters, noPreview);
}
}
}
return;
};
function isInIframe() {
try {
return window.self !== window.top;
} catch (e) {
return true;
}
}
function isMobileDevice() {
if (parameters.hasOwnProperty("screenshotGenerator") && parameters.screenshotGenerator) {
return false;
}
return Math.max(screen.width, screen.height) < 800;
}
applet.getViews = function () {
return views;
};
applet.isJavaInstalled = function () {
return false;
};
var fetchParametersFromApi = function fetchParametersFromApi(successCallback) {
var onSuccess = function onSuccess(text) {
var jsonData = JSON.parse(text);
var isGeoGebra = function isGeoGebra(element) {
return element.type == "G" || element.type == "E";
};
var item = jsonData.elements ? jsonData.elements.filter(isGeoGebra)[0] : jsonData;
if (!item || !item.url) {
onError();
return;
}
parameters.fileName = item.url;
updateAppletSettings(item.settings || {});
views.is3D = true;
var imageDir = "https://www.geogebra.org/images/";
applet.setPreviewImage(previewImagePath || item.previewUrl, imageDir + "GeoGebra_loading.png", imageDir + "applet_play.png");
successCallback();
};
var onError = function onError() {
parameters.onError && parameters.onError();
log("Error: Fetching material (id " + parameters.material_id + ") failed.", parameters);
};
var host = location.host.match(/(www|stage|beta|groot|alpha).geogebra.(org|net)/) ? location.host : "www.geogebra.org";
var path = "/materials/" + parameters.material_id + "?scope=basic";
sendCorsRequest("https://" + host + "/api/proxy.php?path=" + encodeURIComponent(path), onSuccess, onError);
};
function updateAppletSettings(settings) {
var parameterNames = ["width", "height", "showToolBar", "showMenuBar", "showAlgebraInput", "allowStyleBar", "showResetIcon", "enableLabelDrags", "enableShiftDragZoom", "enableRightClick", "appName"];
["enableLabelDrags", "enableShiftDragZoom", "enableRightClick"].forEach(function (name) {
settings[name] = !!settings[name];
});
parameterNames.forEach(function (name) {
if (parameters[name] === undefined && settings[name] !== undefined) {
parameters[name] = settings[name];
}
});
if (parameters.showToolBarHelp === undefined) {
parameters.showToolBarHelp = parameters.showToolBar;
}
}
function sendCorsRequest(url, onSuccess, onError) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.onload = function () {
onSuccess(xhr.responseText);
};
xhr.onerror = onError;
xhr.send();
}
applet.isHTML5Installed = function () {
return true;
};
applet.getLoadedAppletType = function () {
return loadedAppletType;
};
applet.setPreviewImage = function (previewFilePath, loadingFilePath, playFilePath) {
previewImagePath = previewFilePath;
previewLoadingPath = loadingFilePath;
previewPlayPath = playFilePath;
};
applet.removeExistingApplet = function (appletParent, showScreenshot) {
var i;
if (typeof appletParent === "string") {
appletParent = document.getElementById(appletParent);
}
loadedAppletType = null;
var removedID = null;
for (i = 0; i < appletParent.childNodes.length; i++) {
var currentChild = appletParent.childNodes[i];
var className = currentChild.className;
if (className === "applet_screenshot") {
if (showScreenshot) {
currentChild.style.display = "block";
loadedAppletType = "screenshot";
} else {
currentChild.style.display = "none";
}
} else if (className !== "applet_scaler prerender") {
appletParent.removeChild(currentChild);
removedID = className && className.indexOf("appletParameters") != -1 ? currentChild.id : null;
i--;
}
}
var appName = parameters.id !== undefined ? parameters.id : removedID;
var app = window[appName];
if (app && typeof app.getBase64 === "function") {
app.remove();
window[appName] = null;
}
};
applet.refreshHitPoints = function () {
if (parseVersion(ggbHTML5LoadedCodebaseVersion) >= 5) {
return true;
}
var app = applet.getAppletObject();
if (app) {
if (typeof app.recalculateEnvironments === "function") {
app.recalculateEnvironments();
return true;
}
}
return false;
};
applet.startAnimation = function () {
var app = applet.getAppletObject();
if (app) {
if (typeof app.startAnimation === "function") {
app.startAnimation();
return true;
}
}
return false;
};
applet.stopAnimation = function () {
var app = applet.getAppletObject();
if (app) {
if (typeof app.stopAnimation === "function") {
app.stopAnimation();
return true;
}
}
return false;
};
applet.getAppletObject = function () {
var appName = parameters.id !== undefined ? parameters.id : "ggbApplet";
return window[appName];
};
applet.resize = function () {};
var appendParam = function appendParam(applet, name, value) {
var param = document.createElement("param");
param.setAttribute("name", name);
param.setAttribute("value", value);
applet.appendChild(param);
};
var valBoolean = function valBoolean(value) {
return value && value !== "false";
};
var injectHTML5Applet = function injectHTML5Applet(appletElem, parameters, noPreview) {
if (parseVersion(html5CodebaseVersion) <= 4.2) {
noPreview = true;
}
var loadScript = !isRenderGGBElementEnabled && !scriptLoadStarted;
if (!isRenderGGBElementEnabled && !scriptLoadStarted || ggbHTML5LoadedCodebaseVersion !== html5CodebaseVersion || ggbHTML5LoadedCodebaseIsWebSimple && !html5CodebaseIsWebSimple) {
loadScript = true;
isRenderGGBElementEnabled = false;
scriptLoadStarted = false;
}
var article = document.createElement("div");
article.classList.add("appletParameters", "notranslate");
var oriWidth = parameters.width;
var oriHeight = parameters.height;
parameters.disableAutoScale = parameters.disableAutoScale === undefined ? GGBAppletUtils.isFlexibleWorksheetEditor() : parameters.disableAutoScale;
if (parameters.width !== undefined) {
if (parseVersion(html5CodebaseVersion) <= 4.4) {
if (valBoolean(parameters.showToolBar)) {
parameters.height -= 7;
}
if (valBoolean(parameters.showAlgebraInput)) {
parameters.height -= 37;
}
if (parameters.width < 605 && valBoolean(parameters.showToolBar)) {
parameters.width = 605;
oriWidth = 605;
}
} else {
var minWidth = 100;
if (valBoolean(parameters.showToolBar) || valBoolean(parameters.showMenuBar)) {
if (parameters.hasOwnProperty("customToolBar")) {
parameters.customToolbar = parameters.customToolBar;
}
minWidth = valBoolean(parameters.showMenuBar) ? 245 : 155;
}
if (oriWidth < minWidth) {
parameters.width = minWidth;
oriWidth = minWidth;
}
}
}
article.style.border = "none";
article.style.display = "inline-block";
for (var key in parameters) {
if (parameters.hasOwnProperty(key) && key !== "appletOnLoad") {
article.setAttribute("data-param-" + key, parameters[key]);
}
}
if (fonts_css_url) {
article.setAttribute("data-param-fontscssurl", fonts_css_url);
}
applet.resize = function () {
GGBAppletUtils.responsiveResize(appletElem, parameters);
};
window.addEventListener("resize", function (evt) {
applet.resize();
});
var oriAppletOnload = typeof parameters.appletOnLoad === "function" ? parameters.appletOnLoad : function () {};
if (!noPreview && parameters.width !== undefined) {
if (!parameters.hasOwnProperty("showSplash")) {
article.setAttribute("data-param-showSplash", "false");
}
var previewPositioner = appletElem.querySelector(".applet_scaler.prerender");
var preRendered = previewPositioner !== null;
if (!preRendered) {
var previewContainer = createScreenShotDiv(oriWidth, oriHeight, parameters.borderColor, false);
previewPositioner = document.createElement("div");
previewPositioner.className = "applet_scaler";
previewPositioner.style.position = "relative";
previewPositioner.style.display = "block";
previewPositioner.style.width = oriWidth + "px";
previewPositioner.style.height = oriHeight + "px";
} else {
var previewContainer = previewPositioner.querySelector(".ggb_preview");
}
if (window.GGBT_spinner) {
window.GGBT_spinner.attachSpinner(previewPositioner, "66%");
}
if (parseVersion(html5CodebaseVersion) >= 5) {
parameters.appletOnLoad = function (api) {
var preview = appletElem.querySelector(".ggb_preview");
if (preview) {
preview.parentNode.removeChild(preview);
}
if (window.GGBT_spinner) {
window.GGBT_spinner.removeSpinner(previewPositioner);
}
if (window.GGBT_wsf_view) {
$(window).trigger("resize");
}
oriAppletOnload(api);
};
if (!preRendered) {
previewPositioner.appendChild(previewContainer);
}
} else {
article.appendChild(previewContainer);
}
previewPositioner.appendChild(article);
if (!preRendered) {
appletElem.appendChild(previewPositioner);
}
setTimeout(function () {
applet.resize();
}, 1);
} else {
var appletScaler = document.createElement("div");
appletScaler.className = "applet_scaler";
appletScaler.style.position = "relative";
appletScaler.style.display = "block";
appletScaler.appendChild(article);
appletElem.appendChild(appletScaler);
parameters.appletOnLoad = function (api) {
applet.resize();
oriAppletOnload(api);
};
}
function renderGGBElementWithParams(article, parameters) {
if (parameters && typeof parameters.appletOnLoad === "function" && typeof renderGGBElement === "function") {
renderGGBElement(article, parameters.appletOnLoad);
} else {
renderGGBElement(article);
}
log("GeoGebra HTML5 applet injected and rendered with previously loaded codebase.", parameters);
}
function renderGGBElementOnTube(a, parameters) {
if (typeof renderGGBElement === "undefined") {
if (html5AppletsToProcess === null) {
html5AppletsToProcess = [];
}
html5AppletsToProcess.push({
article: a,
params: parameters
});
window.renderGGBElementReady = function () {
isRenderGGBElementEnabled = true;
if (html5AppletsToProcess !== null && html5AppletsToProcess.length) {
html5AppletsToProcess.forEach(function (obj) {
renderGGBElementWithParams(obj.article, obj.params);
});
html5AppletsToProcess = null;
}
};
if (parseVersion(html5CodebaseVersion) < 5) {
a.className += " geogebraweb";
}
} else {
renderGGBElementWithParams(a, parameters);
}
}
if (loadScript) {
scriptLoadStarted = true;
for (var i = 0; i < article.childNodes.length; i++) {
var tag = article.childNodes[i].tagName;
if (tag === "TABLE") {
article.removeChild(article.childNodes[i]);
i--;
}
}
if (ggbHTML5LoadedScript !== null) {
var el = document.querySelector('script[src="' + ggbHTML5LoadedScript + '"]');
if (el !== undefined && el !== null) {
el.parentNode.removeChild(el);
}
}
var script = document.createElement("script");
var scriptLoaded = function scriptLoaded() {
renderGGBElementOnTube(article, parameters);
};
script.src = html5Codebase + html5CodebaseScript;
ggbHTML5LoadedCodebaseIsWebSimple = html5CodebaseIsWebSimple;
ggbHTML5LoadedCodebaseVersion = html5CodebaseVersion;
ggbHTML5LoadedScript = script.src;
log("GeoGebra HTML5 codebase loaded: '" + html5Codebase + "'.", parameters);
if (!html5OverwrittenCodebase && (!html5OverwrittenCodebaseVersion || html5OverwrittenCodebaseVersion == "5.0")) {
if (html5CodebaseIsWebSimple) {
webSimple.succeeded = webSimple.succeeded || webSimple();
} else {
web3d.succeeded = web3d.succeeded || web3d();
}
scriptLoaded();
} else if (html5Codebase.requirejs) {
__webpack_require__.e(/*! AMD require */ 4320).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(/*! ./web3d */ 4320)]; (scriptLoaded).apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__);}.bind(this))['catch'](__webpack_require__.oe);
} else {
script.onload = scriptLoaded;
appletElem.appendChild(script);
}
} else {
renderGGBElementOnTube(article, parameters);
}
parameters.height = oriHeight;
parameters.width = oriWidth;
};
var injectScreenshot = function injectScreenshot(appletElem, parameters, showPlayButton) {
var previewContainer = createScreenShotDiv(parameters.width, parameters.height, parameters.borderColor, showPlayButton);
var previewPositioner = document.createElement("div");
previewPositioner.style.position = "relative";
previewPositioner.style.display = "block";
previewPositioner.style.width = parameters.width + "px";
previewPositioner.style.height = parameters.height + "px";
previewPositioner.className = "applet_screenshot applet_scaler" + (showPlayButton ? " applet_screenshot_play" : "");
previewPositioner.appendChild(previewContainer);
var scale = GGBAppletUtils.getScale(parameters, appletElem, showPlayButton);
if (showPlayButton) {
appletElem.appendChild(getPlayButton());
if (!window.GGBT_wsf_view) {
appletElem.style.position = "relative";
}
} else if (window.GGBT_spinner) {
window.GGBT_spinner.attachSpinner(previewPositioner, "66%");
}
appletElem.appendChild(previewPositioner);
if (scale !== 1 && !isNaN(scale)) {
GGBAppletUtils.scaleElement(previewPositioner, scale);
previewPositioner.style.width = parameters.width + "px";
previewPositioner.style.height = parameters.height + "px";
previewPositioner.parentNode.style.width = parameters.width * scale + "px";
previewPositioner.parentNode.style.height = parameters.height * scale + "px";
}
applet.resize = function () {
resizeScreenshot(appletElem, previewContainer, previewPositioner, showPlayButton);
};
window.addEventListener("resize", function (evt) {
applet.resize();
});
applet.resize();
};
function resizeScreenshot(appletElem, previewContainer, previewPositioner, showPlayButton) {
if (!appletElem.contains(previewContainer)) {
return;
}
if (_typeof(window.GGBT_wsf_view) === "object" && window.GGBT_wsf_view.isFullscreen()) {
if (appletElem.id !== "fullscreencontent") {
return;
}
window.GGBT_wsf_view.setCloseBtnPosition(appletElem);
}
var scale = GGBAppletUtils.getScale(parameters, appletElem, showPlayButton);
if (previewPositioner.parentNode !== null) {
if (!isNaN(scale) && scale !== 1) {
GGBAppletUtils.scaleElement(previewPositioner, scale);
previewPositioner.parentNode.style.width = parameters.width * scale + "px";
previewPositioner.parentNode.style.height = parameters.height * scale + "px";
} else {
GGBAppletUtils.scaleElement(previewPositioner, 1);
previewPositioner.parentNode.style.width = parameters.width + "px";
previewPositioner.parentNode.style.height = parameters.height + "px";
}
}
if (_typeof(window.GGBT_wsf_view) === "object" && window.GGBT_wsf_view.isFullscreen()) {
GGBAppletUtils.positionCenter(appletElem);
}
if (_typeof(window.GGBT_ws_header_footer) === "object") {
window.GGBT_ws_header_footer.setWsScrollerHeight();
}
}
applet.onExitFullscreen = function (fullscreenContainer, appletElem) {
appletElem.appendChild(fullscreenContainer);
};
var injectPlayButton = function injectPlayButton(appletElem, parameters, noPreview, type) {
injectScreenshot(appletElem, parameters, true);
var play = function play() {
var elems = [];
for (i = 0; i < appletElem.childNodes.length; i++) {
elems.push(appletElem.childNodes[i]);
}
if (window.GGBT_wsf_view) {
var content = window.GGBT_wsf_view.renderFullScreen(appletElem, parameters.id);
var container = document.getElementById("fullscreencontainer");
var oldcontent = jQuery(appletElem).find(".fullscreencontent");
if (oldcontent.length > 0) {
content.remove();
oldcontent.attr("id", "fullscreencontent").show();
jQuery(container).append(oldcontent);
window.dispatchEvent(new Event("resize"));
} else {
injectHTML5Applet(content, parameters, false);
}
window.GGBT_wsf_view.launchFullScreen(container);
} else {
loadedAppletType = type;
injectHTML5Applet(appletElem, parameters, false);
}
if (!window.GGBT_wsf_view) {
for (i = 0; i < elems.length; i++) {
appletElem.removeChild(elems[i]);
}
}
};
var imgs = appletElem.getElementsByClassName("ggb_preview_play");
for (var i = 0; i < imgs.length; i++) {
imgs[i].addEventListener("click", play, false);
imgs[i].addEventListener("ontouchstart", play, false);
}
if (typeof window.ggbAppletPlayerOnload === "function") {
window.ggbAppletPlayerOnload(appletElem);
}
if (isMobileDevice() && window.GGBT_wsf_view) {
$(".wsf-element-fullscreen-button").remove();
}
};
var getPlayButton = function getPlayButton() {
var playButtonContainer = document.createElement("div");
playButtonContainer.className = "ggb_preview_play icon-applet-play";
if (!window.GGBT_wsf_view) {
var css = "" + ".icon-applet-play {" + " width: 100%;" + " height: 100%;box-sizing: border-box;position: absolute;z-index: 1001;cursor: pointer;border-width: 0px;" + " background-color: transparent;background-repeat: no-repeat;left: 0;top: 0;background-position: center center;" + ' background-image: url("https://www.geogebra.org/images/worksheet/icon-start-applet.png");' + "}" + ".icon-applet-play:hover {" + 'background-image: url("https://www.geogebra.org/images/worksheet/icon-start-applet-hover.png");' + "}";
var style = document.createElement("style");
if (style.styleSheet) {
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
document.getElementsByTagName("head")[0].appendChild(style);
}
return playButtonContainer;
};
var createScreenShotDiv = function createScreenShotDiv(oriWidth, oriHeight, borderColor, showPlayButton) {
var previewContainer = document.createElement("div");
previewContainer.className = "ggb_preview";
previewContainer.style.position = "absolute";
previewContainer.style.zIndex = "90";
previewContainer.style.width = oriWidth - 2 + "px";
previewContainer.style.height = oriHeight - 2 + "px";
previewContainer.style.top = "0px";
previewContainer.style.left = "0px";
previewContainer.style.overflow = "hidden";
previewContainer.style.backgroundColor = "white";
var bc = "lightgrey";
if (borderColor !== undefined) {
if (borderColor === "none") {
bc = "transparent";
} else {
bc = borderColor;
}
}
previewContainer.style.border = "1px solid " + bc;
var preview = document.createElement("img");
preview.style.position = "relative";
preview.style.zIndex = "1000";
preview.style.top = "-1px";
preview.style.left = "-1px";
if (previewImagePath !== null) {
preview.setAttribute("src", previewImagePath);
}
preview.style.opacity = .7;
if (previewLoadingPath !== null) {
var previewOverlay;
var pWidth, pHeight;
if (!showPlayButton) {
previewOverlay = document.createElement("img");
previewOverlay.style.position = "absolute";
previewOverlay.style.zIndex = "1001";
previewOverlay.style.opacity = 1;
preview.style.opacity = .3;
pWidth = 360;
if (pWidth > oriWidth / 4 * 3) {
pWidth = oriWidth / 4 * 3;
}
pHeight = pWidth / 5.8;
previewOverlay.setAttribute("src", previewLoadingPath);
previewOverlay.setAttribute("width", pWidth);
previewOverlay.setAttribute("height", pHeight);
var pX = (oriWidth - pWidth) / 2;
var pY = (oriHeight - pHeight) / 2;
previewOverlay.style.left = pX + "px";
previewOverlay.style.top = pY + "px";
previewContainer.appendChild(previewOverlay);
}
}
previewContainer.appendChild(preview);
return previewContainer;
};
var detectAppletType = function detectAppletType(preferredType) {
preferredType = preferredType.toLowerCase();
if (preferredType === "html5" || preferredType === "screenshot") {
return preferredType;
}
return "html5";
};
var modules = ["web", "webSimple", "web3d", "tablet", "tablet3d", "phone"];
var setDefaultHTML5CodebaseForVersion = function setDefaultHTML5CodebaseForVersion(version, offline) {
html5CodebaseVersion = version;
if (offline) {
setHTML5CodebaseInternal(html5CodebaseVersion, true);
return;
}
var hasWebSimple = !html5NoWebSimple;
if (hasWebSimple) {
var v = parseVersion(html5CodebaseVersion);
if (!isNaN(v) && v < 4.4) {
hasWebSimple = false;
}
}
var protocol, codebase;
if (window.location.protocol.substr(0, 4) === "http") {
protocol = window.location.protocol;
} else {
protocol = "http:";
}
var index = html5CodebaseVersion.indexOf("//");
if (index > 0) {
codebase = html5CodebaseVersion;
} else if (index === 0) {
codebase = protocol + html5CodebaseVersion;
} else {
codebase = "https://www.geogebra.org/apps/5.2.814.0/";
}
for (var key in modules) {
if (html5CodebaseVersion.slice(modules[key].length * -1) === modules[key] || html5CodebaseVersion.slice((modules[key].length + 1) * -1) === modules[key] + "/") {
setHTML5CodebaseInternal(codebase, false);
return;
}
}
if (!GGBAppletUtils.isFlexibleWorksheetEditor() && hasWebSimple && !views.is3D && !views.AV && !views.SV && !views.CV && !views.EV2 && !views.CP && !views.PC && !views.DA && !views.FI && !views.PV && !valBoolean(parameters.showToolBar) && !valBoolean(parameters.showMenuBar) && !valBoolean(parameters.showAlgebraInput) && !valBoolean(parameters.enableRightClick) && (!parameters.appName || parameters.appName == "classic")) {
codebase += "webSimple/";
} else {
codebase += "web3d/";
}
setHTML5CodebaseInternal(codebase, false);
};
var setHTML5CodebaseInternal = function setHTML5CodebaseInternal(codebase, offline) {
if (codebase.requirejs) {
html5Codebase = codebase;
return;
}
if (codebase.slice(-1) !== "/") {
codebase += "/";
}
html5Codebase = codebase;
if (offline === null) {
offline = codebase.indexOf("http") === -1;
}
isHTML5Offline = offline;
html5CodebaseScript = "web.nocache.js";
html5CodebaseIsWebSimple = false;
var folders = html5Codebase.split("/");
if (folders.length > 1) {
if (!offline && folders[folders.length - 2] === "webSimple") {
html5CodebaseScript = "webSimple.nocache.js";
html5CodebaseIsWebSimple = true;
} else if (modules.indexOf(folders[folders.length - 2]) >= 0) {
html5CodebaseScript = folders[folders.length - 2] + ".nocache.js";
}
}
folders = codebase.split("/");
html5CodebaseVersion = folders[folders.length - 3];
if (html5CodebaseVersion.substr(0, 4) === "test") {
html5CodebaseVersion = html5CodebaseVersion.substr(4, 1) + "." + html5CodebaseVersion.substr(5, 1);
} else if (html5CodebaseVersion.substr(0, 3) === "war" || html5CodebaseVersion.substr(0, 4) === "beta") {
html5CodebaseVersion = "5.0";
}
var numVersion = parseFloat(html5CodebaseVersion);
if (numVersion !== NaN && numVersion < 5 && codebase.indexOf("geogebra.org") >= 0) {
console.log("The GeoGebra HTML5 codebase version " + numVersion + " is deprecated. Using version latest instead.");
setDefaultHTML5CodebaseForVersion("5.0", offline);
}
};
var log = function log(text, parameters) {
if (window.console && window.console.log) {
if (!parameters || typeof parameters.showLogging === "undefined" || parameters.showLogging && parameters.showLogging !== "false") {
console.log(text);
}
}
};
if (parameters.material_id !== undefined) {
fetchParametersFromApi(continueInit);
} else {
continueInit();
}
function continueInit() {
var html5Version = ggbVersion;
if (html5OverwrittenCodebaseVersion !== null) {
html5Version = html5OverwrittenCodebaseVersion;
} else {
if (parseFloat(html5Version) < 5) {
html5Version = "5.0";
}
}
setDefaultHTML5CodebaseForVersion(html5Version, false);
if (html5OverwrittenCodebase !== null) {
setHTML5CodebaseInternal(html5OverwrittenCodebase, isHTML5Offline);
}
initComplete = true;
}
return applet;
};
var GGBAppletUtils = function () {
"use strict";
function isFlexibleWorksheetEditor() {
return window.GGBT_wsf_edit !== undefined;
}
function scaleElement(el, scale) {
if (scale != 1) {
el.style.transformOrigin = "0% 0% 0px";
el.style.webkitTransformOrigin = "0% 0% 0px";
el.style.transform = "scale(" + scale + "," + scale + ")";
el.style.webkitTransform = "scale(" + scale + "," + scale + ")";
el.style.maxWidth = "initial";
if (el.querySelector(".ggb_preview") !== null) {
el.querySelector(".ggb_preview").style.maxWidth = "initial";
}
if (el.querySelectorAll(".ggb_preview img")[0] !== undefined) {
el.querySelectorAll(".ggb_preview img")[0].style.maxWidth = "initial";
}
if (el.querySelectorAll(".ggb_preview img")[1] !== undefined) {
el.querySelectorAll(".ggb_preview img")[1].style.maxWidth = "initial";
}
} else {
el.style.transform = "none";
el.style.webkitTransform = "none";
}
}
function getWidthHeight(appletElem, appletWidth, allowUpscale, autoHeight, noBorder, scaleContainerClass) {
var container = null;
if (scaleContainerClass != undefined && scaleContainerClass != "") {
var parent = appletElem.parentNode;
while (parent != null) {
if ((" " + parent.className + " ").indexOf(" " + scaleContainerClass + " ") > -1) {
container = parent;
break;
} else {
parent = parent.parentNode;
}
}
}
var myWidth = 0,
myHeight = 0,
windowWidth = 0,
border = 0,
borderRight = 0,
borderLeft = 0,
borderTop = 0;
if (container) {
myWidth = container.offsetWidth;
myHeight = Math.max(autoHeight ? container.offsetWidth : 0, container.offsetHeight);
} else {
if (window.innerWidth && document.documentElement.clientWidth) {
myWidth = Math.min(window.innerWidth, document.documentElement.clientWidth);
myHeight = Math.min(window.innerHeight, document.documentElement.clientHeight);
windowWidth = myWidth;
} else {
myWidth = window.innerWidth;
myHeight = window.innerHeight;
windowWidth = window.innerWidth;
}
if (appletElem) {
var rect = appletElem.getBoundingClientRect();
if (rect.left > 0) {
if (rect.left <= myWidth && (noBorder === undefined || !noBorder)) {
if (document.dir === "rtl") {
borderRight = myWidth - rect.width - rect.left;
borderLeft = windowWidth <= 480 ? 10 : 30;
} else {
borderLeft = rect.left;
borderRight = windowWidth <= 480 ? 10 : 30;
}
border = borderLeft + borderRight;
}
}
}
if (appletElem && _typeof(window.GGBT_wsf_view) === "object" && window.GGBT_wsf_view.isFullscreen()) {
var appletRect = appletElem.getBoundingClientRect();
if (window.GGBT_wsf_view.getCloseBtnPosition() === "closePositionRight") {
border = 40;
borderTop = 0;
} else if (window.GGBT_wsf_view.getCloseBtnPosition() === "closePositionTop") {
border = 0;
borderTop = 40;
}
}
}
if (appletElem) {
if ((allowUpscale === undefined || !allowUpscale) && appletWidth > 0 && appletWidth + border < myWidth) {
myWidth = appletWidth;
} else {
myWidth -= border;
}
if (_typeof(window.GGBT_wsf_view) === "object" && window.GGBT_wsf_view.isFullscreen() && (allowUpscale === undefined || !allowUpscale)) {
myHeight -= borderTop;
}
}
return {
width: myWidth,
height: myHeight
};
}
function calcScale(parameters, appletElem, allowUpscale, showPlayButton, scaleContainerClass) {
if (parameters.isScreenshoGenerator) {
return 1;
}
var ignoreHeight = showPlayButton !== undefined && showPlayButton;
var noScaleMargin = parameters.noScaleMargin != undefined && parameters.noScaleMargin;
var valBoolean = function valBoolean(value) {
return value && value !== "false";
};
var autoHeight = valBoolean(parameters.autoHeight);
var windowSize = getWidthHeight(appletElem, parameters.width, allowUpscale, autoHeight, ignoreHeight && window.GGBT_wsf_view || noScaleMargin, scaleContainerClass);
var windowWidth = parseInt(windowSize.width);
var appletWidth = parameters.width;
var appletHeight = parameters.height;
if (appletWidth === undefined) {
var article = appletElem.querySelector(".appletParameters");
if (article) {
appletWidth = article.offsetWidth;
appletHeight = article.offsetHeight;
}
}
var xscale = windowWidth / appletWidth;
var yscale = ignoreHeight ? 1 : windowSize.height / appletHeight;
if (allowUpscale !== undefined && !allowUpscale) {
xscale = Math.min(1, xscale);
yscale = Math.min(1, yscale);
}
return Math.min(xscale, yscale);
}
function getScale(parameters, appletElem, showPlayButton) {
var scale = 1,
autoScale,
allowUpscale = false;
if (parameters.hasOwnProperty("allowUpscale")) {
allowUpscale = parameters.allowUpscale;
}
if (parameters.hasOwnProperty("scale")) {
scale = parseFloat(parameters.scale);
if (isNaN(scale) || scale === null || scale === 0) {
scale = 1;
}
if (scale > 1) {
allowUpscale = true;
}
}
if (appletElem && _typeof(window.GGBT_wsf_view) === "object" && window.GGBT_wsf_view.isFullscreen()) {
allowUpscale = true;
}
if (!(parameters.hasOwnProperty("disableAutoScale") && parameters.disableAutoScale)) {
autoScale = calcScale(parameters, appletElem, allowUpscale, showPlayButton, parameters.scaleContainerClass);
} else {
return scale;
}
if (allowUpscale && (!parameters.hasOwnProperty("scale") || scale === 1)) {
return autoScale;
} else {
return Math.min(scale, autoScale);
}
}
function positionCenter(appletElem) {
var windowWidth = Math.min(window.innerWidth, document.documentElement.clientWidth);
var windowHeight = Math.min(window.innerHeight, document.documentElement.clientHeight);
var appletRect = appletElem.getBoundingClientRect();
var calcHorizontalBorder = (windowWidth - appletRect.width) / 2;
var calcVerticalBorder = (windowHeight - appletRect.height) / 2;
if (calcVerticalBorder < 0) {
calcVerticalBorder = 0;
}
appletElem.style.position = "relative";
if (window.GGBT_wsf_view.getCloseBtnPosition() === "closePositionRight") {
if (calcHorizontalBorder < 40) {
appletElem.style.left = "40px";
} else {
appletElem.style.left = calcHorizontalBorder + "px";
}
appletElem.style.top = calcVerticalBorder + "px";
} else if (window.GGBT_wsf_view.getCloseBtnPosition() === "closePositionTop") {
if (calcVerticalBorder < 40) {
appletElem.style.top = "40px";
} else {
appletElem.style.top = calcVerticalBorder + "px";
}
appletElem.style.left = calcHorizontalBorder + "px";
}
}
function responsiveResize(appletElem, parameters) {
var article = appletElem.querySelector(".appletParameters");
if (article) {
if (_typeof(window.GGBT_wsf_view) === "object" && window.GGBT_wsf_view.isFullscreen()) {
if (parameters.id !== article.getAttribute("data-param-id")) {
return;
}
window.GGBT_wsf_view.setCloseBtnPosition(appletElem);
}
if (article.parentElement && /fullscreen/.test(article.parentElement.className)) {
return;
}
var scale = getScale(parameters, appletElem);
if (isFlexibleWorksheetEditor()) {
article.setAttribute("data-param-scale", scale);
}
var scaleElem = null;
for (var i = 0; i < appletElem.childNodes.length; i++) {
if (appletElem.childNodes[i].className !== undefined && appletElem.childNodes[i].className.match(/^applet_scaler/)) {
scaleElem = appletElem.childNodes[i];
break;
}
}
if (scaleElem !== null && scaleElem.querySelector(".noscale") !== null) {
return;
}
var appName = parameters.id !== undefined ? parameters.id : "ggbApplet";
var app = window[appName];
if ((app == null || !app.recalculateEnvironments) && scaleElem !== null && !scaleElem.className.match(/fullscreen/)) {
scaleElem.parentNode.style.transform = "";
if (!isNaN(scale) && scale !== 1) {
scaleElem.parentNode.style.width = parameters.width * scale + "px";
scaleElem.parentNode.style.height = parameters.height * scale + "px";
scaleElement(scaleElem, scale);
} else {
scaleElement(scaleElem, 1);
scaleElem.parentNode.style.width = parameters.width + "px";
scaleElem.parentNode.style.height = parameters.height + "px";
}
}
if (_typeof(window.GGBT_wsf_view) === "object" && window.GGBT_wsf_view.isFullscreen()) {
positionCenter(appletElem);
}
if (window.GGBT_wsf_view && !window.GGBT_wsf_view.isFullscreen()) {
window.GGBT_wsf_general.adjustContentToResize($(article).parents(".content-added-content"));
}
}
}
return {
responsiveResize: responsiveResize,
isFlexibleWorksheetEditor: isFlexibleWorksheetEditor,
positionCenter: positionCenter,
getScale: getScale,
scaleElement: scaleElement
};
}();
if (true) {
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
return GGBApplet;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
}
GGBAppletUtils.makeModule = function (name, permutation) {
function webModule() {
var H = "bootstrap",
I = "begin",
J = "gwt.codesvr." + name + "=",
K = "gwt.codesvr=",
L = name,
M = "startup",
N = "DUMMY",
O = 0,
P = 1,
Q = "iframe",
R = "position:absolute; width:0; height:0; border:none; left: -1000px;",
S = " top: -1000px;",
T = "Chrome",
U = "CSS1Compat",
V = "<!doctype html>",
W = "",
X = "<html><head></head><body></body></html>",
Y = "undefined",
Z = "readystatechange",
$ = 10,
_ = "script",
ab = "javascript",
bb = "Failed to load ",
cb = "moduleStartup",
db = "scriptTagAdded",
eb = "moduleRequested",
fb = "meta",
gb = "name",
hb = name + "::",
ib = "::",
jb = "gwt:property",
kb = "content",
lb = "=",
mb = "gwt:onPropertyErrorFn",
nb = 'Bad handler "',
ob = '" for "gwt:onPropertyErrorFn"',
pb = "gwt:onLoadErrorFn",
qb = '" for "gwt:onLoadErrorFn"',
rb = "#",
sb = "?",
tb = "/",
ub = "img",
vb = "clear.cache.gif",
wb = "baseUrl",
xb = name + ".nocache.js",
yb = "base",
zb = "//",
Ab = "selectingPermutation",
Bb = name + ".devmode.js",
Cb = permutation,
Db = ":",
Eb = ".cache.js",
Fb = "loadExternalRefs",
Gb = "end";
var n = window;
var o = document;
q(H, I);
function p() {
var a = n.location.search;
return a.indexOf(J) != -1 || a.indexOf(K) != -1;
}
function q(a, b) {}
webModule.__sendStats = q;
webModule.__moduleName = L;
webModule.__errFn = null;
webModule.__moduleBase = N;
webModule.__softPermutationId = O;
webModule.__computePropValue = null;
webModule.__getPropMap = null;
webModule.__installRunAsyncCode = function () {};
webModule.__gwtStartLoadingFragment = function () {
return null;
};
webModule.__gwt_isKnownPropertyValue = function () {
return false;
};
webModule.__gwt_getMetaProperty = function () {
return null;
};
var r = null;
var s = n.__gwt_activeModules = n.__gwt_activeModules || {};
s[L] = {
moduleName: L
};
webModule.__moduleStartupDone = function (e) {
var f = s[L].bindings;
s[L].bindings = function () {
var a = f ? f() : {};
var b = e[webModule.__softPermutationId];
for (var c = O; c < b.length; c++) {
var d = b[c];
a[d[O]] = d[P];
}
return a;
};
};
var t;
function u() {
v();
return t;
}
function v() {
if (t) {
return;
}
var a = o.createElement(Q);
a.id = L;
a.style.cssText = R + S;
a.tabIndex = -1;
o.body.appendChild(a);
t = a.contentWindow.document;
if (navigator.userAgent.indexOf(T) == -1) {
t.open();
var b = document.compatMode == U ? V : W;
t.write(b + X);
t.close();
}
}
function w(f) {
function g(a) {
function b() {
if (_typeof(o.readyState) == Y) {
return _typeof(o.body) != Y && o.body != null;
}
return /loaded|complete/.test(o.readyState);
}
var c = b();
if (c) {
a();
return;
}
function d() {
if (!c) {
if (!b()) {
return;
}
c = true;
a();
if (o.removeEventListener) {
o.removeEventListener(Z, d, false);
}
if (e) {
clearInterval(e);
}
}
}
if (o.addEventListener) {
o.addEventListener(Z, d, false);
}
var e = setInterval(function () {
d();
}, $);
}
function h(a) {
var b = u();
var c = b.body;
var d = b.createElement(_);
d.language = ab;
d.crossOrigin = W;
d.src = a;
if (webModule.__errFn) {
d.onerror = function () {
webModule.__errFn(L, new Error(bb + a));
};
}
c.appendChild(d);
q(cb, db);
}
q(cb, eb);
g(function () {
h(f);
});
}
webModule.__startLoadingFragment = function (a) {
return C(a);
};
webModule.__installRunAsyncCode = function (a) {
var b = u();
var c = b.body;
var d = b.createElement(_);
d.language = ab;
d.text = a;
c.appendChild(d);
c.removeChild(d);
};
function A() {
var c = {};
var d;
var e;
var f = o.getElementsByTagName(fb);
for (var g = O, h = f.length; g < h; ++g) {
var i = f[g],
j = i.getAttribute(gb),
k;
if (j) {
j = j.replace(hb, W);
if (j.indexOf(ib) >= O) {
continue;
}
if (j == jb) {
k = i.getAttribute(kb);
if (k) {
var l,
m = k.indexOf(lb);
if (m >= O) {
j = k.substring(O, m);
l = k.substring(m + P);
} else {
j = k;
l = W;
}
c[j] = l;
}
} else if (j == mb) {
k = i.getAttribute(kb);
if (k) {
try {
d = eval(k);
} catch (a) {
alert(nb + k + ob);
}
}
} else if (j == pb) {
k = i.getAttribute(kb);
if (k) {
try {
e = eval(k);
} catch (a) {
alert(nb + k + qb);
}
}
}
}
}
__gwt_getMetaProperty = function __gwt_getMetaProperty(a) {
var b = c[a];
return b == null ? null : b;
};
r = d;
webModule.__errFn = e;
}
function B() {
function e(a) {
var b = a.lastIndexOf(rb);
if (b == -1) {
b = a.length;
}
var c = a.indexOf(sb);
if (c == -1) {
c = a.length;
}
var d = a.lastIndexOf(tb, Math.min(c, b));
return d >= O ? a.substring(O, d + P) : W;
}
function f(a) {
if (a.match(/^\w+:\/\//)) {} else {
var b = o.createElement(ub);
b.src = a + vb;
a = e(b.src);
}
return a;
}
function g() {
var a = __gwt_getMetaProperty(wb);
if (a != null) {
return a;
}
return W;
}
function h() {
var a = o.getElementsByTagName(_);
for (var b = O; b < a.length; ++b) {
if (a[b].src.indexOf(xb) != -1) {
return e(a[b].src);
}
}
return W;
}
function i() {
var a = o.getElementsByTagName(yb);
if (a.length > O) {
return a[a.length - P].href;
}
return W;
}
function j() {
var a = o.location;
return a.href == a.protocol + zb + a.host + a.pathname + a.search + a.hash;
}
var k = g();
if (k == W) {
k = h();
}
if (k == W) {
k = i();
}
if (k == W && j()) {
k = e(o.location.href);
}
k = f(k);
return k;
}
function C(a) {
if (a.match(/^\//)) {
return a;
}
if (a.match(/^[a-zA-Z]+:\/\//)) {
return a;
}
return webModule.__moduleBase + a;
}
function D() {
var f = [];
var g = O;
var h = [];
var i = [];
function j(a) {
var b = i[a](),
c = h[a];
if (b in c) {
return b;
}
var d = [];
for (var e in c) {
d[c[e]] = e;
}
if (r) {
r(a, d, b);
}
throw null;
}
__gwt_isKnownPropertyValue = function __gwt_isKnownPropertyValue(a, b) {
return b in h[a];
};
webModule.__getPropMap = function () {
var a = {};
for (var b in h) {
if (h.hasOwnProperty(b)) {
a[b] = j(b);
}
}
return a;
};
webModule.__computePropValue = j;
n.__gwt_activeModules[L].bindings = webModule.__getPropMap;
if (p()) {
return C(Bb);
}
var k;
try {
k = Cb;
var l = k.indexOf(Db);
if (l != -1) {
g = parseInt(k.substring(l + P), $);
k = k.substring(O, l);
}
} catch (a) {}
webModule.__softPermutationId = g;
return C(k + Eb);
}
function F() {
if (!n.__gwt_stylesLoaded) {
n.__gwt_stylesLoaded = {};
}
}
A();
webModule.__moduleBase = "/js/mathematicalGraphics/" + name + "/";
s[L].moduleBase = webModule.__moduleBase;
var G = D();
F();
w(G);
return true;
}
return webModule;
};
if (typeof window.web3d !== "function") {
window.web3d = GGBAppletUtils.makeModule("web3d", "A18F540516513B1292CA7CEF2F6AFC7E");
}
if (typeof window.webSimple !== "function") {
window.webSimple = GGBAppletUtils.makeModule("webSimple", "96B09BF1B436BF53F0DF54116700F16A");
}
window.GGBApplet = GGBApplet;
})();
/***/ }),
/***/ 45446:
/*!*********************************!*\
!*** ./src/pages/tasks/util.js ***!
\*********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Ax: function() { return /* binding */ processTreeData; },
/* harmony export */ Ds: function() { return /* binding */ debounce; },
/* harmony export */ KI: function() { return /* binding */ apiPref; },
/* harmony export */ SI: function() { return /* binding */ getTreeData; },
/* harmony export */ f1: function() { return /* binding */ isCompileOk; }
/* harmony export */ });
/* unused harmony export isProd */
/* harmony import */ var _utils_env__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils/env */ 18765);
function isCompileOk(rs) {
var flag = true;
if (rs.length > 0) {
for (var i = 0; i < rs.length; i++) {
if (rs[i].compile_success == 0 || !rs[i].compile_success) {
flag = false;
break;
}
}
} else {
flag = false;
}
return flag;
}
function getTreeData(data) {
var parentKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
var result = [];
for (var i = 0; i < data.length; i++) {
var item = data[i];
var key = parentKey ? "".concat(parentKey, "/").concat(item.name) : "".concat(item.name);
result.push({
title: item.name,
isLeaf: item.type === 'tree' ? false : true,
key: key
});
}
return result;
}
function processTreeData(repos, key, newData) {
for (var i = 0; i < repos.length; i++) {
var item = repos[i];
if (item.key === key) {
item.children = newData;
break;
}
if (item.children) {
processTreeData(item.children, key, newData);
}
}
return repos;
}
function debounce(func, wait, immediate) {
var timeout;
return function () {
var context = this,
args = arguments;
var later = function later() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
var isProd = true;
var apiPref = _utils_env__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z.API_SERVER;
// export const isProd =
// window.location.href.indexOf('test-') > 0 ||
// window.location.href.indexOf('localhost') > 0
// ? false
// : true;
// export const apiPref = isProd
// ? 'https://www.educoder.net'
// : 'https://test-newweb.educoder.net';
/***/ }),
/***/ 21297:
/*!****************************************!*\
!*** ./src/components/Hooks/index.tsx ***!
\****************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ y: function() { return /* binding */ useDisableAction; }
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301);
var useDisableAction = function useDisableAction(disable) {
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (disable) {
var handleKeyDown = function handleKeyDown(event) {
if (event.key === "F12") {
event.preventDefault();
// 执行你的自定义行为
console.log('F12被禁用');
}
};
var handleContextmenu = function handleContextmenu(event) {
event.preventDefault();
};
document.addEventListener("keydown", handleKeyDown);
document.addEventListener("contextmenu", handleContextmenu);
return function () {
document.removeEventListener("keydown", handleKeyDown);
document.removeEventListener("contextmenu", handleContextmenu);
};
}
}, [disable]);
};
/***/ }),
/***/ 25034:
/*!**************************************************************!*\
!*** ./src/components/ImageDimensions/index.tsx + 1 modules ***!
\**************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ components_ImageDimensions; }
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js
var regeneratorRuntime = __webpack_require__(7557);
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(41498);
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(79800);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
;// CONCATENATED MODULE: ./src/components/ImageDimensions/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var ImageDimensionsmodules = ({"imageDimensions":"imageDimensions___a7crR","img":"img___Kroat","fullWidth":"fullWidth___c492T"});
// EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js
var _classnames_2_5_1_classnames = __webpack_require__(92310);
var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/spin/index.js + 1 modules
var spin = __webpack_require__(71418);
// EXTERNAL MODULE: ./node_modules/_markerjs3@2.29.1@markerjs3/markerjs2.esm.js
var markerjs2_esm = __webpack_require__(2859);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var fetch = __webpack_require__(84087);
// EXTERNAL MODULE: ./src/utils/util.tsx
var util = __webpack_require__(25644);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/components/ImageDimensions/index.tsx
var ImageDimensions = function ImageDimensions(_ref) {
var data = _ref.data,
className = _ref.className,
fullWidth = _ref.fullWidth,
_ref$style = _ref.style,
style = _ref$style === void 0 ? {} : _ref$style,
onClose = _ref.onClose,
onOk = _ref.onOk,
showFullTools = _ref.showFullTools,
noAssociationId = _ref.noAssociationId;
var imgRef = (0,_react_17_0_2_react.useRef)(null);
var markerArea = (0,_react_17_0_2_react.useRef)(null);
var _useState = (0,_react_17_0_2_react.useState)(false),
_useState2 = slicedToArray_default()(_useState, 2),
loading = _useState2[0],
setLoading = _useState2[1];
var _useState3 = (0,_react_17_0_2_react.useState)('正在加载中'),
_useState4 = slicedToArray_default()(_useState3, 2),
loadingText = _useState4[0],
setLoadingText = _useState4[1];
(0,_react_17_0_2_react.useEffect)(function () {
if (data !== null && data !== void 0 && data.visible) {
document.body.setAttribute('data-custom', 'y-hidden');
} else {
document.body.removeAttribute('data-custom');
}
if (data !== null && data !== void 0 && data.src) {
getImg();
}
}, [data === null || data === void 0 ? void 0 : data.visible]);
var getImg = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var res;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
setLoading(true);
setLoadingText('正在加载中');
_context.next = 4;
return (0,util/* toDataUrl */.ZJ)(data === null || data === void 0 ? void 0 : data.src);
case 4:
res = _context.sent;
imgRef.current.src = "";
imgRef.current.src = res;
imgRef.current.onload = function () {
initMarkerjs();
};
setLoading(false);
setLoadingText('');
case 10:
case "end":
return _context.stop();
}
}, _callee);
}));
return function getImg() {
return _ref2.apply(this, arguments);
};
}();
var onSave = /*#__PURE__*/function () {
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(event) {
var res, result;
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
setLoading(true);
setLoadingText('正在保存中');
_context2.next = 4;
return (0,fetch/* default */.ZP)('/api/attachments.json', {
method: 'post',
body: {
file_type: 'base64',
original_filename: data.title,
file: event.dataUrl
}
});
case 4:
res = _context2.sent;
if (!(res !== null && res !== void 0 && res.id && !noAssociationId)) {
_context2.next = 12;
break;
}
_context2.next = 8;
return (0,fetch/* default */.ZP)("/api/attachments/".concat(data.id, "/add_subitem.json"), {
method: 'post',
body: {
subitem_id: res === null || res === void 0 ? void 0 : res.id,
settings: JSON.stringify(event.state)
}
});
case 8:
result = _context2.sent;
if (result.status === 0) {
onOk();
}
_context2.next = 13;
break;
case 12:
if (res !== null && res !== void 0 && res.id) {
onOk(res);
}
case 13:
setLoading(false);
setLoadingText('');
case 15:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return function onSave(_x) {
return _ref3.apply(this, arguments);
};
}();
var dealDom = function dealDom() {
// 删除标签
// 找到href为"https://markerjs.com/"的a标签
var targetLink = document.querySelector('a[href="https://markerjs.com/"]');
if (targetLink && targetLink.parentNode) {
targetLink.parentNode.style.display = 'none';
}
// 设置title
var item = [{
name: '[data-action="select"]',
title: '选择'
}, {
name: '[data-action="delete"]',
title: '删除元素'
}, {
name: '[data-action="undo"]',
title: '撤销'
}, {
name: '[data-type-name="FrameMarker"]',
title: '矩形'
}, {
name: '[data-type-name="FreehandMarker"]',
title: '画线'
}, {
name: '[data-type-name="ArrowMarker"]',
title: '箭头'
}, {
name: '[data-type-name="TextMarker"]',
title: '文本'
}, {
name: '[data-type-name="EllipseMarker"]',
title: '椭圆'
}, {
name: '[data-type-name="HighlightMarker"]',
title: '方块'
}, {
name: '[data-type-name="CalloutMarker"]',
title: '注释'
}, {
name: '[data-action="render"]',
title: '保存'
}, {
name: '[data-action="close"]',
title: '退出'
}];
item.forEach(function (e) {
var targetElement = document.querySelector(e.name);
if (targetElement) {
targetElement.setAttribute('title', e.title);
}
});
};
var initMarkerjs = function initMarkerjs() {
markerArea.current = new markerjs2_esm/* MarkerArea */.hP(imgRef.current);
markerArea.current.addEventListener('render', onSave);
markerArea.current.addEventListener('beforeclose', onClose);
if (showFullTools) {
markerArea.current.availableMarkerTypes = markerArea.current.ALL_MARKER_TYPES;
markerArea.current.uiStyleSettings.redoButtonVisible = true;
markerArea.current.uiStyleSettings.notesButtonVisible = true;
markerArea.current.uiStyleSettings.zoomButtonVisible = true;
markerArea.current.uiStyleSettings.zoomOutButtonVisible = true;
markerArea.current.uiStyleSettings.clearButtonVisible = true;
}
window.markerArea = markerArea.current.uiStyleSettings;
markerArea.current.show();
if (data !== null && data !== void 0 && data.snapshotData) {
markerArea.current.restoreState(data.snapshotData);
}
setTimeout(function () {
dealDom();
}, 300);
};
return /*#__PURE__*/(0,jsx_runtime.jsx)(_react_17_0_2_react.Fragment, {
children: (data === null || data === void 0 ? void 0 : data.visible) && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: _classnames_2_5_1_classnames_default()(ImageDimensionsmodules.imageDimensions, className, fullWidth ? ImageDimensionsmodules.fullWidth : ""),
style: style,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(spin/* default */.Z, {
spinning: loading,
tip: loadingText,
style: {
position: 'absolute'
}
}), /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
className: ImageDimensionsmodules.img,
ref: imgRef
// crossOrigin='anonymous'
// src={data?.src}
})]
})
});
};
/* harmony default export */ var components_ImageDimensions = (ImageDimensions);
/***/ }),
/***/ 53635:
/*!*************************************************************!*\
!*** ./src/components/SplitContainer/index.tsx + 1 modules ***!
\*************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ SplitContainer; }
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(79800);
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/SplitContainer/index.less
// extracted by mini-css-extract-plugin
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/components/SplitContainer/index.tsx
/* harmony default export */ var SplitContainer = (function (_ref) {
var _ref$defaultX = _ref.defaultX,
defaultX = _ref$defaultX === void 0 ? '40%' : _ref$defaultX,
leftChild = _ref.leftChild,
rightChild = _ref.rightChild,
className = _ref.className,
_ref$hideResize = _ref.hideResize,
hideResize = _ref$hideResize === void 0 ? false : _ref$hideResize;
var _useState = (0,_react_17_0_2_react.useState)(defaultX),
_useState2 = slicedToArray_default()(_useState, 2),
moveX = _useState2[0],
setMoveX = _useState2[1];
var resizeXFlag = (0,_react_17_0_2_react.useRef)();
function onResizeStart() {
resizeXFlag.current = true;
}
(0,_react_17_0_2_react.useEffect)(function () {
function onMove(e) {
if (resizeXFlag.current) {
setMoveX(e.pageX);
}
}
function onMouseUp() {
resizeXFlag.current = false;
}
window.addEventListener('mousemove', onMove);
window.addEventListener('mouseup', onMouseUp);
return function () {
window.removeEventListener('mousemove', onMove);
window.removeEventListener('mouseup', onMouseUp);
};
}, []);
var leftPanelWidth = typeof moveX === 'number' && moveX !== 0.01 ? "".concat(moveX, "px") : defaultX;
var rightPanelWidth = "calc(100% - ".concat(hideResize ? "0px" : "4px", " - ").concat(leftPanelWidth, ")");
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "split-panel-container ".concat(className),
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("section", {
style: {
width: leftPanelWidth,
display: moveX === 0.01 ? 'none' : ''
},
children: leftChild
}), /*#__PURE__*/(0,jsx_runtime.jsx)("section", {
className: "resize-x-bar",
onMouseDown: onResizeStart,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
className: "btn-resize",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("svg", {
width: "16",
height: "13",
viewBox: "0 0 16 13",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("path", {
d: "M12.245 7.53H5.647v1.882h6.598v2.823L16 8.471l-3.755-3.765V7.53zM10.353 4.706H3.755v2.823L0 3.765 3.755 0v2.824h6.598v1.882z"
})
})
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("section", {
style: {
width: rightPanelWidth
},
children: rightChild
})]
});
});
/***/ }),
/***/ 26454:
/*!*********************************************************!*\
!*** ./src/components/TestResult/index.tsx + 1 modules ***!
\*********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ components_TestResult; }
});
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
;// CONCATENATED MODULE: ./src/components/TestResult/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var TestResultmodules = ({"flex_box_center":"flex_box_center___Gc4dd","flex_space_between":"flex_space_between___K2f1v","flex_box_vertical_center":"flex_box_vertical_center___pupRp","flex_box_center_end":"flex_box_center_end___UDLRC","flex_box_column":"flex_box_column___a5uDo","result":"result___gu5zt","title":"title___xrnx2","left":"left___IAxp9","leftNode":"leftNode___HL8fG","right":"right___ZXYmw","rightNode":"rightNode___jYL5_"});
// EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js
var _classnames_2_5_1_classnames = __webpack_require__(92310);
var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/components/TestResult/index.tsx
var TestResult = function TestResult(_ref) {
var className = _ref.className,
_ref$style = _ref.style,
style = _ref$style === void 0 ? {} : _ref$style,
leftNode = _ref.leftNode,
_ref$leftTitle = _ref.leftTitle,
leftTitle = _ref$leftTitle === void 0 ? '自测输入' : _ref$leftTitle,
rightNode = _ref.rightNode,
_ref$rightTitle = _ref.rightTitle,
rightTitle = _ref$rightTitle === void 0 ? '运行结果' : _ref$rightTitle;
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: _classnames_2_5_1_classnames_default()(TestResultmodules.result, className),
style: style,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: TestResultmodules.left,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: TestResultmodules.title,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
style: {
color: '#08CF76'
},
className: "iconfont iconfont icon-zidingyiceshiyongli font14 mr5"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: leftTitle
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: TestResultmodules.leftNode,
children: leftNode
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: TestResultmodules.right,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: TestResultmodules.title,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
style: {
color: '#00DFFF'
},
className: "iconfont iconfont icon-daimazhihangjieguo font14 mr5"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: rightTitle
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: TestResultmodules.rightNode,
children: rightNode
})]
})]
});
};
/* harmony default export */ var components_TestResult = (TestResult);
/***/ }),
/***/ 61446:
/*!********************************************!*\
!*** ./src/components/Timepiece/index.tsx ***!
\********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js */ 79800);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 59301);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ 37712);
var completionFunc = function completionFunc(value) {
if (String(value).length === 1) return "0".concat(value);
return value;
};
var Timepiece = function Timepiece(_ref) {
var _ref$className = _ref.className,
className = _ref$className === void 0 ? '' : _ref$className,
onChange = _ref.onChange,
_ref$defaultValue = _ref.defaultValue,
defaultValue = _ref$defaultValue === void 0 ? 0 : _ref$defaultValue;
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(defaultValue),
_useState2 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2),
remainTime = _useState2[0],
setTime = _useState2[1];
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
var timer = setTimeout(function () {
setTime(remainTime + 1000);
}, 1000);
onChange(remainTime + 1000);
return function () {
clearInterval(timer);
};
}, [remainTime]);
var remainHour = parseInt(remainTime / (60 * 60000)) || '00';
var remainMinutes = parseInt(remainTime % (60 * 60000) / 60000) || '00';
var remainSeconds = parseInt(remainTime % 60000 / 1000) || '00';
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
className: className,
children: [completionFunc(remainHour), ":", completionFunc(remainMinutes), ":", completionFunc(remainSeconds)]
});
};
/* harmony default export */ __webpack_exports__.Z = (Timepiece);
/***/ }),
/***/ 18343:
/*!************************************************************!*\
!*** ./src/components/image-preview/index.tsx + 1 modules ***!
\************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ image_preview; }
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(79800);
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__(25977);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/image/index.js + 26 modules
var es_image = __webpack_require__(68078);
// 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"
})
})
})
});
});
/***/ }),
/***/ 59425:
/*!*************************************************************!*\
!*** ./src/components/markdown-editor/code-block/index.tsx ***!
\*************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ h: function() { return /* binding */ MyCodeMirror; }
/* harmony export */ });
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectSpread2.js */ 82242);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js */ 79800);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ 59301);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd */ 57809);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd */ 78241);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd */ 3113);
/* harmony import */ var codemirror__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! codemirror */ 89780);
/* harmony import */ var codemirror__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(codemirror__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! codemirror/lib/codemirror.css */ 62015);
/* harmony import */ var codemirror_theme_blackboard_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! codemirror/theme/blackboard.css */ 86102);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ 37712);
var Option = antd__WEBPACK_IMPORTED_MODULE_7__["default"].Option;
//https://github.com/codemirror/CodeMirror/issues/4838
var formItemLayout = {
labelCol: {
span: 4
},
wrapperCol: {
span: 20
}
};
var LanguageDesc = {
asp: ['ASP', 'vbscript'],
actionscript: ['ActionScript(3.0)/Flash/Flex', 'clike'],
bash: ['Bash/Bat', 'shell'],
css: ['CSS', 'css'],
c: ['C', 'clike'],
cpp: ['C++', 'clike'],
csharp: ['C#', 'clike'],
coffeescript: ['CoffeeScript', 'coffeescript'],
d: ['D', 'd'],
dart: ['Dart', 'dart'],
delphi: ['Delphi/Pascal', 'pascal'],
erlang: ['Erlang', 'erlang'],
go: ['Golang', 'go'],
groovy: ['Groovy', 'groovy'],
html: ['HTML', 'text/html'],
java: ['Java', 'clike'],
json: ['JSON', 'text/json'],
javascript: ['Javascript', 'javascript'],
lua: ['Lua', 'lua'],
less: ['LESS', 'css'],
markdown: ['Markdown', 'gfm'],
'objective-c': ['Objective-C', 'clike'],
php: ['PHP', 'php'],
perl: ['Perl', 'perl'],
python: ['Python', 'python'],
r: ['R', 'r'],
rst: ['reStructedText', 'rst'],
ruby: ['Ruby', 'ruby'],
sql: ['SQL', 'sql'],
sass: ['SASS/SCSS', 'sass'],
shell: ['Shell', 'shell'],
scala: ['Scala', 'clike'],
swift: ['Swift', 'clike'],
vb: ['VB/VBScript', 'vb'],
xml: ['XML', 'text/xml'],
yaml: ['YAML', 'yaml']
};
/* harmony default export */ __webpack_exports__.Z = (function (_ref) {
var callback = _ref.callback,
onCancel = _ref.onCancel;
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('python'),
_useState2 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1___default()(_useState, 2),
mode = _useState2[0],
setMode = _useState2[1];
function onSetMode(value) {
setMode(LanguageDesc[value][1]);
}
function onSubmit(values) {
callback(values);
}
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, formItemLayout), {}, {
className: "code-block-panel",
initialValues: {
language: 'python',
content: ''
},
onFinish: onSubmit,
style: {
width: 500
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z.Item, {
label: "\u4EE3\u7801\u8BED\u8A00",
name: "language",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(antd__WEBPACK_IMPORTED_MODULE_7__["default"], {
getPopupContainer: function getPopupContainer(trigger) {
return trigger.parentNode;
},
onChange: onSetMode,
children: Object.keys(LanguageDesc).map(function (item) {
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(Option, {
value: item,
children: LanguageDesc[item][0]
}, item);
})
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z.Item, {
label: "\u4EE3\u7801\u5185\u5BB9",
name: "content",
rules: [{
required: true,
message: '请输入代码内容'
}],
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(MyCodeMirror, {
mode: mode
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
className: "flex-container flex-end",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .ZP, {
type: "primary",
htmlType: "submit",
style: {
marginRight: 10
},
children: "\u786E\u5B9A"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .ZP, {
type: "ghost",
onClick: onCancel,
children: "\u53D6\u6D88"
})]
})]
}));
});
function MyCodeMirror(_ref2) {
var value = _ref2.value,
onChange = _ref2.onChange,
mode = _ref2.mode,
_ref2$options = _ref2.options,
options = _ref2$options === void 0 ? {} : _ref2$options;
var el = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)();
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(),
_useState4 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1___default()(_useState3, 2),
cm = _useState4[0],
setCm = _useState4[1];
(0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {
if (cm) {
var onChangeHandler = function onChangeHandler(cm) {
var content = cm.getValue();
onChange && onChange(content);
};
cm.on('change', onChangeHandler);
return function () {
cm.off('change', onChangeHandler);
};
}
}, [cm, onChange]);
(0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {
if (cm) {
cm.setOption('mode', mode);
}
}, [cm, mode]);
(0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {
if (cm) {
if (value !== cm.getValue() || value === '') {
setTimeout(function () {
cm.setValue(value || '');
}, 300);
}
}
}, [cm, value]);
(0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {
if (el.current && !cm) {
var instance = codemirror__WEBPACK_IMPORTED_MODULE_3___default().fromTextArea(el.current, _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({
mode: mode,
lineNumbers: true,
lineWrapping: true,
autoCloseBrackets: true,
tabSize: 4,
autofocus: true,
autoCloseTags: true,
matchBrackets: true,
styleActiveLine: true
}, options));
setCm(instance);
}
}, [el.current, cm]);
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
className: "my-codemirror-container",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("textarea", {
ref: el
})
});
}
/***/ }),
/***/ 39987:
/*!***************************************************************!*\
!*** ./src/components/markdown-editor/index.tsx + 15 modules ***!
\***************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ markdown_editor; }
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/createForOfIteratorHelper.js
var createForOfIteratorHelper = __webpack_require__(91232);
var createForOfIteratorHelper_default = /*#__PURE__*/__webpack_require__.n(createForOfIteratorHelper);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(79800);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/defineProperty.js
var defineProperty = __webpack_require__(85573);
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/lib/codemirror.js
var codemirror = __webpack_require__(89780);
var codemirror_default = /*#__PURE__*/__webpack_require__.n(codemirror);
// EXTERNAL MODULE: ./node_modules/_resize-observer-polyfill@1.5.1@resize-observer-polyfill/dist/ResizeObserver.es.js
var ResizeObserver_es = __webpack_require__(76374);
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/lib/codemirror.css
var lib_codemirror = __webpack_require__(62015);
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/addon/edit/closetag.js
var closetag = __webpack_require__(6313);
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/addon/edit/closebrackets.js
var closebrackets = __webpack_require__(25717);
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/addon/display/placeholder.js
var placeholder = __webpack_require__(99498);
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/mode/markdown/markdown.js
var markdown = __webpack_require__(25419);
// EXTERNAL MODULE: ./node_modules/_codemirror@5.58.2@codemirror/mode/stex/stex.js
var stex = __webpack_require__(67549);
;// CONCATENATED MODULE: ./src/components/markdown-editor/index.less
// extracted by mini-css-extract-plugin
// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx
var RenderHtml = __webpack_require__(70159);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/components/RenderHtml/stex.tsx
// const latexjs = require('latex-l.js/dist/latex.js');
// import "latex-l.js/dist/css/base.css"
/* harmony default export */ var RenderHtml_stex = (function (_ref) {
var _ref$value = _ref.value,
value = _ref$value === void 0 ? '' : _ref$value,
className = _ref.className,
showTextOnly = _ref.showTextOnly,
showLines = _ref.showLines,
_ref$style = _ref.style,
style = _ref$style === void 0 ? {} : _ref$style;
var html = (0,_react_17_0_2_react.useMemo)(function () {
// try {
// const latex = value || 'This is some text';
// let generator = new latexjs.default.HtmlGenerator({ hyphenate: true })
// let doc = latexjs.default.parse(latex, { generator: generator }).htmlDocument()
// return doc.body.innerHTML
// }catch(e){
// console.log("e:",e)
// return "错误的latex语法请检查"
// }
return "";
}, [value]);
return /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
dangerouslySetInnerHTML: {
__html: html
}
})
});
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(82242);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
;// CONCATENATED MODULE: ./src/components/markdown-editor/toolbar/index.less
// extracted by mini-css-extract-plugin
;// CONCATENATED MODULE: ./src/components/markdown-editor/css/iconfont.css
// extracted by mini-css-extract-plugin
;// CONCATENATED MODULE: ./src/components/markdown-editor/toolbar/index.tsx
var DEFAULTICONS = [{
title: '粗体',
icon: 'md-iconfont icon-bold',
actionName: 'bold'
}, {
title: '斜体',
icon: 'md-iconfont icon-italic',
actionName: 'italic'
}, '|', {
title: '无序列表',
icon: 'md-iconfont icon-unorder-list',
actionName: 'list-ul'
}, {
title: '有序列表',
icon: 'md-iconfont icon-order-list',
actionName: 'list-ol'
}, '|', {
title: '行内代码',
icon: 'md-iconfont icon-code',
actionName: 'code'
}, {
title: '代码块(多语言风格)',
icon: 'md-iconfont icon-file-code',
actionName: 'code-block'
}, {
title: '链接',
icon: 'md-iconfont icon-link',
actionName: 'link'
}, '|', {
title: '行内公式',
icon: 'md-iconfont icon-sum',
actionName: 'inline-latex'
}, {
title: '数学图像',
icon: 'iconfont icon-shuxuetuxiang2',
actionName: 'maths-latex'
}, {
title: '多行公式',
icon: 'iconfont icon-jisuan1',
actionName: 'latex'
}, '|', {
title: '添加图片',
icon: 'md-iconfont icon-picture',
actionName: 'upload-image'
}, {
title: '插入画图',
icon: 'iconfont icon-sheji',
actionName: 'draw-image'
}, {
title: '插入流程图',
icon: 'iconfont icon-liucheng',
actionName: 'add-flowchart'
}, {
title: '表格',
icon: 'md-iconfont icon-table',
actionName: 'add-table'
}, '|', {
title: '换行',
icon: 'md-iconfont icon-minus',
actionName: 'line-break'
}, {
title: '清空',
icon: 'md-iconfont icon-eraser',
actionName: 'eraser'
}];
function AButton(_ref) {
var onActionCallback = _ref.onActionCallback,
title = _ref.title,
icon = _ref.icon,
actionName = _ref.actionName,
_ref$className = _ref.className,
className = _ref$className === void 0 ? '' : _ref$className,
children = _ref.children;
function onAction() {
onActionCallback(actionName);
}
return /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
title: title,
className: className,
onClick: onAction,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "".concat(icon)
}), children]
});
}
/* harmony default export */ var toolbar = (function (_ref2) {
var watch = _ref2.watch,
showNullButton = _ref2.showNullButton,
showNullProgramButton = _ref2.showNullProgramButton,
onActionCallback = _ref2.onActionCallback,
fullScreen = _ref2.fullScreen,
insertTemp = _ref2.insertTemp,
hidetoolBar = _ref2.hidetoolBar,
extraUse = _ref2.extraUse;
var icons = [].concat(DEFAULTICONS, [{
title: "".concat(watch ? '关闭实时预览' : '开启实时预览'),
icon: "".concat(watch ? 'md-iconfont icon-eye-slash' : 'md-iconfont icon-eye'),
actionName: 'trigger-watch'
}]);
return /*#__PURE__*/(0,jsx_runtime.jsxs)("ul", {
className: "markdown-toolbar-container",
children: [!hidetoolBar && icons.map(function (item, index) {
return /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: item.actionName ? /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, objectSpread2_default()(objectSpread2_default()({}, item), {}, {
onActionCallback: onActionCallback
})) : /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "v-line"
})
}, index);
}), showNullButton ? /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, {
icon: "md-iconfont icon-edit insert-blank",
className: "btn-null",
title: "\u589E\u52A0\u586B\u7A7A",
actionName: "add-null-ch",
onActionCallback: onActionCallback,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "fill-tip",
children: "\u70B9\u51FB\u63D2\u5165\b\u586B\u7A7A\u9879"
})
})
}) : null, showNullProgramButton ? /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, {
icon: "md-iconfont icon-edit insert-blank",
className: "btn-null",
title: "\u589E\u52A0\u586B\u7A7A",
actionName: "add-signal",
onActionCallback: onActionCallback,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "fill-tip",
children: "\u6DFB\u52A0\u5355\u884C\u586B\u7A7A\u9879"
})
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, {
icon: "md-iconfont icon-uniE900 insert-blank",
className: "btn-null",
title: "\u589E\u52A0\u586B\u7A7A",
actionName: "add-multiple",
onActionCallback: onActionCallback,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "fill-tip",
children: "\u6DFB\u52A0\u591A\u884C\u586B\u7A7A\u9879"
})
})
})]
}) : null, insertTemp && /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, {
icon: "md-iconfont icon-edit",
className: "btn-null",
title: "\u63D2\u5165\u6A21\u677F",
actionName: "inster-template-".concat(insertTemp),
onActionCallback: onActionCallback,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "fill-tip",
children: "\u63D2\u5165\u6A21\u677F"
})
})
}), extraUse && /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: extraUse
}), /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
className: "btn-full-screen",
children: /*#__PURE__*/(0,jsx_runtime.jsx)(AButton, {
icon: "".concat(fullScreen ? 'md-iconfont icon-shrink' : 'md-iconfont icon-enlarge'),
title: fullScreen ? '关闭全屏' : '开启全屏',
actionName: "trigger-full-screen",
onActionCallback: onActionCallback
})
})]
});
});
// EXTERNAL MODULE: ./src/components/modal.tsx
var modal = __webpack_require__(31998);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/form/index.js + 19 modules
var es_form = __webpack_require__(78241);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 5 modules
var input = __webpack_require__(8772);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
var es_button = __webpack_require__(3113);
;// CONCATENATED MODULE: ./src/components/markdown-editor/link/index.tsx
var formItemLayout = {
labelCol: {
span: 4
},
wrapperCol: {
span: 20
}
};
/* harmony default export */ var markdown_editor_link = (function (_ref) {
var callback = _ref.callback,
onCancel = _ref.onCancel;
function onSubmit(values) {
callback(values);
}
return /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, objectSpread2_default()(objectSpread2_default()({}, formItemLayout), {}, {
initialValues: {
link: 'http://',
title: ''
},
className: "link-panel",
onFinish: onSubmit,
style: {
width: 500
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u94FE\u63A5\u5730\u5740",
name: "link",
rules: [{
required: true,
message: '请输入链接地址'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u94FE\u63A5\u6807\u9898",
name: "title",
rules: [{
required: true,
message: '请输入链接标题'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "flex-container flex-end",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: "primary",
htmlType: "submit",
style: {
marginRight: 10
},
children: "\u786E\u5B9A"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: "ghost",
onClick: onCancel,
children: "\u53D6\u6D88"
})]
})]
}));
});
// EXTERNAL MODULE: ./src/components/markdown-editor/code-block/index.tsx
var code_block = __webpack_require__(59425);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules
var message = __webpack_require__(8591);
;// CONCATENATED MODULE: ./src/components/markdown-editor/upload-image/index.less
// extracted by mini-css-extract-plugin
// EXTERNAL MODULE: ./src/pages/tasks/util.js
var util = __webpack_require__(45446);
;// CONCATENATED MODULE: ./src/components/markdown-editor/upload-image/index.tsx
var useForm = es_form/* default */.Z.useForm;
var style = {
width: 280,
marginRight: 10
};
var upload_image_formItemLayout = {
labelCol: {
span: 5
},
wrapperCol: {
span: 19
}
};
/* harmony default export */ var upload_image = (function (_ref) {
var callback = _ref.callback,
onCancel = _ref.onCancel;
var _useForm = useForm(),
_useForm2 = slicedToArray_default()(_useForm, 1),
form = _useForm2[0];
var currentFile = (0,_react_17_0_2_react.useRef)();
function onSubmit(values) {
callback(values, currentFile.current);
}
function onAddUrl(data, file) {
if (data.status === -1) {
message/* default */.ZP.error(data.message);
return;
}
form.setFieldsValue({
src: "/api/attachments/".concat(data.id),
type: file.type
});
}
function onFileChange(e) {
var file = e.target.files[0];
currentFile.current = file;
uploadImage(file, onAddUrl);
}
return /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, objectSpread2_default()(objectSpread2_default()({
form: form
}, upload_image_formItemLayout), {}, {
className: "upload-image-panel",
onFinish: onSubmit,
style: {
width: 470,
overflow: "hidden"
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u56FE\u7247\u5730\u5740",
required: true,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "flex-container",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
noStyle: true,
name: "src",
rules: [{
required: true,
message: '请输入图片地址'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
style: style
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(UploadButton, {
onFileChange: onFileChange
})]
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u56FE\u7247\u63CF\u8FF0",
name: "alt"
// rules={[{ required: true, message: '请输入图片描述' }]}
,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
style: {
width: 264
}
})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z.Item, {
style: {
textAlign: "right"
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: "primary",
htmlType: "submit",
style: {
marginRight: 10
},
children: "\u786E\u5B9A"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: "default",
onClick: onCancel,
children: "\u53D6\u6D88"
})]
})]
}));
});
function UploadButton(_ref2) {
var onFileChange = _ref2.onFileChange;
return /*#__PURE__*/(0,jsx_runtime.jsxs)("label", {
className: "upload-button",
style: {
cursor: "pointer"
},
children: ["\u672C\u5730\u4E0A\u4F20", /*#__PURE__*/(0,jsx_runtime.jsx)("input", {
type: "file",
onChange: onFileChange
})]
});
}
function uploadImage(file, callback) {
if (!file) {
throw new String('没有文件');
return;
}
var formData = new FormData();
formData.append('editormd-image-file', file);
formData.append('file_param_name', 'editormd-image-file');
formData.append('byxhr', 'true');
var xhr = new window.XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('load', function (response) {
callback(JSON.parse(response.target.responseText), file);
}, false);
xhr.addEventListener('error', function (error) {
console.error(error);
}, false);
xhr.open('POST', "".concat(util/* apiPref */.KI, "/api/attachments.json"));
xhr.send(formData);
}
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/row/index.js
var row = __webpack_require__(95237);
// EXTERNAL MODULE: ./src/components/ImageDimensions/index.tsx + 1 modules
var ImageDimensions = __webpack_require__(25034);
;// CONCATENATED MODULE: ./src/components/markdown-editor/draw-image/index.tsx
/* harmony default export */ var draw_image = (function (_ref) {
var callback = _ref.callback,
onCancel = _ref.onCancel;
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
canvas.width = 1000;
canvas.height = 800;
context.fillStyle = '#ffffff';
context.fillRect(0, 0, canvas.width, canvas.height);
var base64Image = canvas.toDataURL('image/png');
return /*#__PURE__*/(0,jsx_runtime.jsx)(row/* default */.Z, {
style: {
height: "100vh"
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)(ImageDimensions/* default */.Z, {
fullWidth: true,
noAssociationId: true,
showFullTools: true,
data: {
src: base64Image,
visible: true,
title: String(Date.now())
},
onOk: function onOk(data) {
callback({
src: data.url
});
},
onClose: onCancel
})
});
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js
var regeneratorRuntime = __webpack_require__(7557);
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(41498);
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/toConsumableArray.js
var toConsumableArray = __webpack_require__(37205);
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
// EXTERNAL MODULE: ./node_modules/_gojs3@2.3.10@gojs3/release/go-module.js
var go_module = __webpack_require__(12378);
;// CONCATENATED MODULE: ./public/js/go/DrawCommandHandler.js
/*
* Copyright (C) 1998-2023 by Northwoods Software Corporation. All Rights Reserved.
*/
/*
* This is an extension and not part of the main GoJS library.
* Note that the API for this class may change with any version, even point releases.
* If you intend to use an extension in production, you should copy the code to your own source directory.
* Extensions can be found in the GoJS kit under the extensions or extensionsJSM folders.
* See the Extensions intro page (https://gojs.net/latest/intro/extensions.html) for more information.
*/
/**
* @constructor
* @extends CommandHandler
* @class
* This CommandHandler class allows the user to position selected Parts in a diagram
* relative to the first part selected, in addition to overriding the doKeyDown method
* of the CommandHandler for handling the arrow keys in additional manners.
* <p>
* Typical usage:
* <pre>
* new go.Diagram("myDiagramDiv",
* {
* commandHandler: $(DrawCommandHandler),
* . . .
* }
* )
* </pre>
* or:
* <pre>
* myDiagram.commandHandler = new DrawCommandHandler();
* </pre>
*/
function DrawCommandHandler() {
go.CommandHandler.call(this);
this._arrowKeyBehavior = "move";
this._pasteOffset = new go.Point(10, 10);
this._lastPasteOffset = new go.Point(0, 0);
}
go.Diagram.inherit(DrawCommandHandler, go.CommandHandler);
/**
* This controls whether or not the user can invoke the {@link #alignLeft}, {@link #alignRight},
* {@link #alignTop}, {@link #alignBottom}, {@link #alignCenterX}, {@link #alignCenterY} commands.
* @this {DrawCommandHandler}
* @return {boolean}
* This returns true:
* if the diagram is not {@link Diagram#isReadOnly},
* if the model is not {@link Model#isReadOnly}, and
* if there are at least two selected {@link Part}s.
*/
DrawCommandHandler.prototype.canAlignSelection = function () {
var diagram = this.diagram;
if (diagram === null || diagram.isReadOnly || diagram.isModelReadOnly) return false;
if (diagram.selection.count < 2) return false;
return true;
};
/**
* Aligns selected parts along the left-most edge of the left-most part.
* @this {DrawCommandHandler}
*/
DrawCommandHandler.prototype.alignLeft = function () {
var diagram = this.diagram;
diagram.startTransaction("aligning left");
var minPosition = Infinity;
diagram.selection.each(function (current) {
if (current instanceof go.Link) return; // skips over go.Link
minPosition = Math.min(current.position.x, minPosition);
});
diagram.selection.each(function (current) {
if (current instanceof go.Link) return; // skips over go.Link
current.move(new go.Point(minPosition, current.position.y));
});
diagram.commitTransaction("aligning left");
};
/**
* Aligns selected parts at the right-most edge of the right-most part.
* @this {DrawCommandHandler}
*/
DrawCommandHandler.prototype.alignRight = function () {
var diagram = this.diagram;
diagram.startTransaction("aligning right");
var maxPosition = -Infinity;
diagram.selection.each(function (current) {
if (current instanceof go.Link) return; // skips over go.Link
var rightSideLoc = current.actualBounds.x + current.actualBounds.width;
maxPosition = Math.max(rightSideLoc, maxPosition);
});
diagram.selection.each(function (current) {
if (current instanceof go.Link) return; // skips over go.Link
current.move(new go.Point(maxPosition - current.actualBounds.width, current.position.y));
});
diagram.commitTransaction("aligning right");
};
/**
* Aligns selected parts at the top-most edge of the top-most part.
* @this {DrawCommandHandler}
*/
DrawCommandHandler.prototype.alignTop = function () {
var diagram = this.diagram;
diagram.startTransaction("alignTop");
var minPosition = Infinity;
diagram.selection.each(function (current) {
if (current instanceof go.Link) return; // skips over go.Link
minPosition = Math.min(current.position.y, minPosition);
});
diagram.selection.each(function (current) {
if (current instanceof go.Link) return; // skips over go.Link
current.move(new go.Point(current.position.x, minPosition));
});
diagram.commitTransaction("alignTop");
};
/**
* Aligns selected parts at the bottom-most edge of the bottom-most part.
* @this {DrawCommandHandler}
*/
DrawCommandHandler.prototype.alignBottom = function () {
var diagram = this.diagram;
diagram.startTransaction("aligning bottom");
var maxPosition = -Infinity;
diagram.selection.each(function (current) {
if (current instanceof go.Link) return; // skips over go.Link
var bottomSideLoc = current.actualBounds.y + current.actualBounds.height;
maxPosition = Math.max(bottomSideLoc, maxPosition);
});
diagram.selection.each(function (current) {
if (current instanceof go.Link) return; // skips over go.Link
current.move(new go.Point(current.actualBounds.x, maxPosition - current.actualBounds.height));
});
diagram.commitTransaction("aligning bottom");
};
/**
* Aligns selected parts at the x-value of the center point of the first selected part.
* @this {DrawCommandHandler}
*/
DrawCommandHandler.prototype.alignCenterX = function () {
var diagram = this.diagram;
var firstSelection = diagram.selection.first();
if (!firstSelection) return;
diagram.startTransaction("aligning Center X");
var centerX = firstSelection.actualBounds.x + firstSelection.actualBounds.width / 2;
diagram.selection.each(function (current) {
if (current instanceof go.Link) return; // skips over go.Link
current.move(new go.Point(centerX - current.actualBounds.width / 2, current.actualBounds.y));
});
diagram.commitTransaction("aligning Center X");
};
/**
* Aligns selected parts at the y-value of the center point of the first selected part.
* @this {DrawCommandHandler}
*/
DrawCommandHandler.prototype.alignCenterY = function () {
var diagram = this.diagram;
var firstSelection = diagram.selection.first();
if (!firstSelection) return;
diagram.startTransaction("aligning Center Y");
var centerY = firstSelection.actualBounds.y + firstSelection.actualBounds.height / 2;
diagram.selection.each(function (current) {
if (current instanceof go.Link) return; // skips over go.Link
current.move(new go.Point(current.actualBounds.x, centerY - current.actualBounds.height / 2));
});
diagram.commitTransaction("aligning Center Y");
};
/**
* Aligns selected parts top-to-bottom in order of the order selected.
* Distance between parts can be specified. Default distance is 0.
* @this {DrawCommandHandler}
* @param {number} distance
*/
DrawCommandHandler.prototype.alignColumn = function (distance) {
var diagram = this.diagram;
diagram.startTransaction("align Column");
if (distance === undefined) distance = 0; // for aligning edge to edge
distance = parseFloat(distance);
var selectedParts = new Array();
diagram.selection.each(function (current) {
if (current instanceof go.Link) return; // skips over go.Link
selectedParts.push(current);
});
for (var i = 0; i < selectedParts.length - 1; i++) {
var current = selectedParts[i];
// adds distance specified between parts
var curBottomSideLoc = current.actualBounds.y + current.actualBounds.height + distance;
var next = selectedParts[i + 1];
next.move(new go.Point(current.actualBounds.x, curBottomSideLoc));
}
diagram.commitTransaction("align Column");
};
/**
* Aligns selected parts left-to-right in order of the order selected.
* Distance between parts can be specified. Default distance is 0.
* @this {DrawCommandHandler}
* @param {number} distance
*/
DrawCommandHandler.prototype.alignRow = function (distance) {
if (distance === undefined) distance = 0; // for aligning edge to edge
distance = parseFloat(distance);
var diagram = this.diagram;
diagram.startTransaction("align Row");
var selectedParts = new Array();
diagram.selection.each(function (current) {
if (current instanceof go.Link) return; // skips over go.Link
selectedParts.push(current);
});
for (var i = 0; i < selectedParts.length - 1; i++) {
var current = selectedParts[i];
// adds distance specified between parts
var curRightSideLoc = current.actualBounds.x + current.actualBounds.width + distance;
var next = selectedParts[i + 1];
next.move(new go.Point(curRightSideLoc, current.actualBounds.y));
}
diagram.commitTransaction("align Row");
};
/**
* This controls whether or not the user can invoke the {@link #rotate} command.
* @this {DrawCommandHandler}
* @param {number=} angle the positive (clockwise) or negative (counter-clockwise) change in the rotation angle of each Part, in degrees.
* @return {boolean}
* This returns true:
* if the diagram is not {@link Diagram#isReadOnly},
* if the model is not {@link Model#isReadOnly}, and
* if there is at least one selected {@link Part}.
*/
DrawCommandHandler.prototype.canRotate = function (number) {
var diagram = this.diagram;
if (diagram === null || diagram.isReadOnly || diagram.isModelReadOnly) return false;
if (diagram.selection.count < 1) return false;
return true;
};
/**
* Change the angle of the parts connected with the given part. This is in the command handler
* so it can be easily accessed for the purpose of creating commands that change the rotation of a part.
* @this {DrawCommandHandler}
* @param {number=} angle the positive (clockwise) or negative (counter-clockwise) change in the rotation angle of each Part, in degrees.
*/
DrawCommandHandler.prototype.rotate = function (angle) {
if (angle === undefined) angle = 90;
var diagram = this.diagram;
diagram.startTransaction("rotate " + angle.toString());
var diagram = this.diagram;
diagram.selection.each(function (current) {
if (current instanceof go.Link || current instanceof go.Group) return; // skips over Links and Groups
current.angle += angle;
});
diagram.commitTransaction("rotate " + angle.toString());
};
/**
* Change the z-ordering of selected parts to pull them forward, in front of all other parts
* in their respective layers.
* All unselected parts in each layer with a selected Part with a non-numeric {@link Part#zOrder} will get a zOrder of zero.
* @this {DrawCommandHandler}
*/
DrawCommandHandler.prototype.pullToFront = function () {
var diagram = this.diagram;
diagram.startTransaction("pullToFront");
// find the affected Layers
var layers = new go.Map();
diagram.selection.each(function (part) {
layers.set(part.layer, 0);
});
// find the maximum zOrder in each Layer
layers.iteratorKeys.each(function (layer) {
var max = 0;
layer.parts.each(function (part) {
if (part.isSelected) return;
var z = part.zOrder;
if (isNaN(z)) {
part.zOrder = 0;
} else {
max = Math.max(max, z);
}
});
layers.set(layer, max);
});
// assign each selected Part.zOrder to the computed value for each Layer
diagram.selection.each(function (part) {
DrawCommandHandler._assignZOrder(part, layers.get(part.layer) + 1);
});
diagram.commitTransaction("pullToFront");
};
/**
* Change the z-ordering of selected parts to push them backward, behind of all other parts
* in their respective layers.
* All unselected parts in each layer with a selected Part with a non-numeric {@link Part#zOrder} will get a zOrder of zero.
* @this {DrawCommandHandler}
*/
DrawCommandHandler.prototype.pushToBack = function () {
var diagram = this.diagram;
diagram.startTransaction("pushToBack");
// find the affected Layers
var layers = new go.Map();
diagram.selection.each(function (part) {
layers.set(part.layer, 0);
});
// find the minimum zOrder in each Layer
layers.iteratorKeys.each(function (layer) {
var min = 0;
layer.parts.each(function (part) {
if (part.isSelected) return;
var z = part.zOrder;
if (isNaN(z)) {
part.zOrder = 0;
} else {
min = Math.min(min, z);
}
});
layers.set(layer, min);
});
// assign each selected Part.zOrder to the computed value for each Layer
diagram.selection.each(function (part) {
DrawCommandHandler._assignZOrder(part,
// make sure a group's nested nodes are also behind everything else
layers.get(part.layer) - 1 - DrawCommandHandler._findGroupDepth(part));
});
diagram.commitTransaction("pushToBack");
};
DrawCommandHandler._assignZOrder = function (part, z, root) {
if (root === undefined) root = part;
if (part.layer === root.layer) part.zOrder = z;
if (part instanceof go.Group) {
part.memberParts.each(function (m) {
DrawCommandHandler._assignZOrder(m, z + 1, root);
});
}
};
DrawCommandHandler._findGroupDepth = function (part) {
if (part instanceof go.Group) {
var d = 0;
part.memberParts.each(function (m) {
d = Math.max(d, DrawCommandHandler._findGroupDepth(m));
});
return d + 1;
} else {
return 0;
}
};
/**
* This implements custom behaviors for arrow key keyboard events.
* Set {@link #arrowKeyBehavior} to "select", "move" (the default), "scroll" (the standard behavior), or "none"
* to affect the behavior when the user types an arrow key.
* @this {DrawCommandHandler}*/
DrawCommandHandler.prototype.doKeyDown = function () {
var diagram = this.diagram;
if (diagram === null) return;
var e = diagram.lastInput;
// determines the function of the arrow keys
if (e.key === "Up" || e.key === "Down" || e.key === "Left" || e.key === "Right") {
var behavior = this.arrowKeyBehavior;
if (behavior === "none") {
// no-op
return;
} else if (behavior === "select") {
this._arrowKeySelect();
return;
} else if (behavior === "move") {
this._arrowKeyMove();
return;
} else if (behavior === "tree") {
this._arrowKeyTree();
return;
}
// otherwise drop through to get the default scrolling behavior
}
// otherwise still does all standard commands
go.CommandHandler.prototype.doKeyDown.call(this);
};
/**
* Collects in an Array all of the non-Link Parts currently in the Diagram.
* @this {DrawCommandHandler}
* @return {Array}
*/
DrawCommandHandler.prototype._getAllParts = function () {
var allParts = new Array();
this.diagram.nodes.each(function (node) {
allParts.push(node);
});
this.diagram.parts.each(function (part) {
allParts.push(part);
});
// note that this ignores Links
return allParts;
};
/**
* To be called when arrow keys should move the Diagram.selection.
* @this {DrawCommandHandler}
*/
DrawCommandHandler.prototype._arrowKeyMove = function () {
var diagram = this.diagram;
var e = diagram.lastInput;
// moves all selected parts in the specified direction
var vdistance = 0;
var hdistance = 0;
// if control is being held down, move pixel by pixel. Else, moves by grid cell size
if (e.control || e.meta) {
vdistance = 1;
hdistance = 1;
} else if (diagram.grid !== null) {
var cellsize = diagram.grid.gridCellSize;
hdistance = cellsize.width;
vdistance = cellsize.height;
}
diagram.startTransaction("arrowKeyMove");
diagram.selection.each(function (part) {
if (e.key === "Up") {
part.move(new go.Point(part.actualBounds.x, part.actualBounds.y - vdistance));
} else if (e.key === "Down") {
part.move(new go.Point(part.actualBounds.x, part.actualBounds.y + vdistance));
} else if (e.key === "Left") {
part.move(new go.Point(part.actualBounds.x - hdistance, part.actualBounds.y));
} else if (e.key === "Right") {
part.move(new go.Point(part.actualBounds.x + hdistance, part.actualBounds.y));
}
});
diagram.commitTransaction("arrowKeyMove");
};
/**
* To be called when arrow keys should change selection.
* @this {DrawCommandHandler}
*/
DrawCommandHandler.prototype._arrowKeySelect = function () {
var diagram = this.diagram;
var e = diagram.lastInput;
// with a part selected, arrow keys change the selection
// arrow keys + shift selects the additional part in the specified direction
// arrow keys + control toggles the selection of the additional part
var nextPart = null;
if (e.key === "Up") {
nextPart = this._findNearestPartTowards(270);
} else if (e.key === "Down") {
nextPart = this._findNearestPartTowards(90);
} else if (e.key === "Left") {
nextPart = this._findNearestPartTowards(180);
} else if (e.key === "Right") {
nextPart = this._findNearestPartTowards(0);
}
if (nextPart !== null) {
if (e.shift) {
nextPart.isSelected = true;
} else if (e.control || e.meta) {
nextPart.isSelected = !nextPart.isSelected;
} else {
diagram.select(nextPart);
}
}
};
/**
* Finds the nearest selectable Part in the specified direction, based on their center points.
* if it doesn't find anything, it just returns the current Part.
* @this {DrawCommandHandler}
* @param {number} dir the direction, in degrees
* @return {Part} the closest Part found in the given direction
*/
DrawCommandHandler.prototype._findNearestPartTowards = function (dir) {
var originalPart = this.diagram.selection.first();
if (originalPart === null) return null;
var originalPoint = originalPart.actualBounds.center;
var allParts = this._getAllParts();
var closestDistance = Infinity;
var closest = originalPart; // if no parts meet the criteria, the same part remains selected
for (var i = 0; i < allParts.length; i++) {
var nextPart = allParts[i];
if (nextPart === originalPart) continue; // skips over currently selected part
if (!nextPart.canSelect()) continue;
var nextPoint = nextPart.actualBounds.center;
var angle = originalPoint.directionPoint(nextPoint);
var anglediff = this._angleCloseness(angle, dir);
if (anglediff <= 45) {
// if this part's center is within the desired direction's sector,
var distance = originalPoint.distanceSquaredPoint(nextPoint);
distance *= 1 + Math.sin(anglediff * Math.PI / 180); // the more different from the intended angle, the further it is
if (distance < closestDistance) {
// and if it's closer than any other part,
closestDistance = distance; // remember it as a better choice
closest = nextPart;
}
}
}
return closest;
};
/**
* @this {DrawCommandHandler}
* @param {number} a
* @param {number} dir
* @return {number}
*/
DrawCommandHandler.prototype._angleCloseness = function (a, dir) {
return Math.min(Math.abs(dir - a), Math.min(Math.abs(dir + 360 - a), Math.abs(dir - 360 - a)));
};
/**
* To be called when arrow keys should change the selected node in a tree and expand or collapse subtrees.
* @this {DrawCommandHandler}
*/
DrawCommandHandler.prototype._arrowKeyTree = function () {
var diagram = this.diagram;
var selected = diagram.selection.first();
if (!(selected instanceof go.Node)) return;
var e = diagram.lastInput;
if (e.key === "Right") {
if (selected.isTreeLeaf) {
// no-op
} else if (!selected.isTreeExpanded) {
if (diagram.commandHandler.canExpandTree(selected)) {
diagram.commandHandler.expandTree(selected); // expands the tree
}
} else {
// already expanded -- select the first child node
var first = this._sortTreeChildrenByY(selected).first();
if (first !== null) diagram.select(first);
}
} else if (e.key === "Left") {
if (!selected.isTreeLeaf && selected.isTreeExpanded) {
if (diagram.commandHandler.canCollapseTree(selected)) {
diagram.commandHandler.collapseTree(selected); // collapses the tree
}
} else {
// either a leaf or is already collapsed -- select the parent node
var parent = selected.findTreeParentNode();
if (parent !== null) diagram.select(parent);
}
} else if (e.key === "Up") {
var parent = selected.findTreeParentNode();
if (parent !== null) {
var list = this._sortTreeChildrenByY(parent);
var idx = list.indexOf(selected);
if (idx > 0) {
// if there is a previous sibling
var prev = list.elt(idx - 1);
// keep looking at the last child until it's a leaf or collapsed
while (prev !== null && prev.isTreeExpanded && !prev.isTreeLeaf) {
var children = this._sortTreeChildrenByY(prev);
prev = children.last();
}
if (prev !== null) diagram.select(prev);
} else {
// no previous sibling -- select parent
diagram.select(parent);
}
}
} else if (e.key === "Down") {
// if at an expanded parent, select the first child
if (selected.isTreeExpanded && !selected.isTreeLeaf) {
var first = this._sortTreeChildrenByY(selected).first();
if (first !== null) diagram.select(first);
} else {
while (selected !== null) {
var parent = selected.findTreeParentNode();
if (parent === null) break;
var list = this._sortTreeChildrenByY(parent);
var idx = list.indexOf(selected);
if (idx < list.length - 1) {
// select next lower node
diagram.select(list.elt(idx + 1));
break;
} else {
// already at bottom of list of children
selected = parent;
}
}
}
}
// make sure the selection is now in the viewport, but not necessarily centered
var sel = diagram.selection.first();
if (sel !== null) diagram.scrollToRect(sel.actualBounds);
};
DrawCommandHandler.prototype._sortTreeChildrenByY = function (node) {
var list = new go.List().addAll(node.findTreeChildrenNodes());
list.sort(function (a, b) {
var aloc = a.location;
var bloc = b.location;
if (aloc.y < bloc.y) return -1;
if (aloc.y > bloc.y) return 1;
if (aloc.x < bloc.x) return -1;
if (aloc.x > bloc.x) return 1;
return 0;
});
return list;
};
/**
* Reset the last offset for pasting.
* @this {DrawCommandHandler}
* @param {Iterable.<Part>} coll a collection of {@link Part}s.
*/
DrawCommandHandler.prototype.copyToClipboard = function (coll) {
go.CommandHandler.prototype.copyToClipboard.call(this, coll);
this._lastPasteOffset.set(this.pasteOffset);
};
/**
* Paste from the clipboard with an offset incremented on each paste, and reset when copied.
* @this {DrawCommandHandler}
* @return {Set.<Part>} a collection of newly pasted {@link Part}s
*/
DrawCommandHandler.prototype.pasteFromClipboard = function () {
var coll = go.CommandHandler.prototype.pasteFromClipboard.call(this);
this.diagram.moveParts(coll, this._lastPasteOffset);
this._lastPasteOffset.add(this.pasteOffset);
return coll;
};
/**
* Gets or sets the arrow key behavior. Possible values are "move", "select", "scroll", and "tree".
* The default value is "move".
* @name DrawCommandHandler#arrowKeyBehavior
* @return {string}
*/
Object.defineProperty(DrawCommandHandler.prototype, "arrowKeyBehavior", {
get: function get() {
return this._arrowKeyBehavior;
},
set: function set(val) {
if (val !== "move" && val !== "select" && val !== "scroll" && val !== "tree" && val !== "none") {
throw new Error("DrawCommandHandler.arrowKeyBehavior must be either \"move\", \"select\", \"scroll\", \"tree\", or \"none\", not: " + val);
}
this._arrowKeyBehavior = val;
}
});
/**
* Gets or sets the offset at which each repeated pasteSelection() puts the new copied parts from the clipboard.
* The default value is (10,10).
* @name DrawCommandHandler#pasteOffset
* @return {Point}
*/
Object.defineProperty(DrawCommandHandler.prototype, "pasteOffset", {
get: function get() {
return this._pasteOffset;
},
set: function set(val) {
if (!(val instanceof go.Point)) throw new Error("DrawCommandHandler.pasteOffset must be a Point, not: " + val);
this._pasteOffset.set(val);
}
});
/* harmony default export */ var go_DrawCommandHandler = (DrawCommandHandler);
// EXTERNAL MODULE: ./public/js/go/Figures.js
var Figures = __webpack_require__(57855);
// EXTERNAL MODULE: ./node_modules/_gojs-react@1.1.2@gojs-react/lib/esm/gojsreact.js + 1 modules
var gojsreact = __webpack_require__(85160);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
var es_modal = __webpack_require__(43418);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/col/index.js
var col = __webpack_require__(43604);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var fetch = __webpack_require__(84087);
;// CONCATENATED MODULE: ./src/components/markdown-editor/flow-chart/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var flow_chartmodules = ({"myPaletteDiv":"myPaletteDiv___Xjz2I","maxH60":"maxH60___Pd4Re"});
;// CONCATENATED MODULE: ./src/components/markdown-editor/flow-chart/index.tsx
window.go = go_module;
function FlowChart(_ref) {
var onCancel = _ref.onCancel,
callback = _ref.callback;
var myDiagram = (0,_react_17_0_2_react.useRef)();
var myDiagramDivRef = (0,_react_17_0_2_react.useRef)();
var myPaletteDivRef = (0,_react_17_0_2_react.useRef)();
var hidedenContentRef = (0,_react_17_0_2_react.useRef)(false);
var modalRef = (0,_react_17_0_2_react.useRef)(false);
var _useState = (0,_react_17_0_2_react.useState)(0),
_useState2 = slicedToArray_default()(_useState, 2),
updateModal = _useState2[0],
setUpdateModal = _useState2[1];
function initDiagram() {
var $ = go_module.GraphObject.make;
var colors = {
red: "#ff3333",
blue: "#3358ff",
green: "#25ad23",
magenta: "#d533ff",
purple: "#7d33ff",
orange: "#ff6233",
brown: "#8e571e",
white: "#ffffff",
black: "#000000",
beige: "#fffcd5",
extralightblue: "#d5ebff",
extralightred: "#f2dfe0",
lightblue: "#a5d2fa",
lightgray: "#cccccc",
lightgreen: "#b3e6b3",
lightred: "#fcbbbd"
};
myDiagram.current = new go_module.Diagram(myDiagramDivRef.current, {
padding: 20,
// extra space when scrolled all the way
grid: $(go_module.Panel, "Grid",
// a simple 10x10 grid
$(go_module.Shape, "LineH", {
stroke: "lightgray",
strokeWidth: 0.5
}), $(go_module.Shape, "LineV", {
stroke: "lightgray",
strokeWidth: 0.5
})),
"draggingTool.isGridSnapEnabled": true,
handlesDragDropForTopLevelParts: true,
mouseDrop: function mouseDrop(e) {
var ok = e.diagram.commandHandler.addTopLevelParts(e.diagram.selection, true);
if (!ok) e.diagram.currentTool.doCancel();
},
commandHandler: $(go_DrawCommandHandler),
// support offset copy-and-paste
"clickCreatingTool.archetypeNodeData": {
text: "未命名",
fill: null,
stroke: null,
borderColor: "rgba(0,0,0,0)"
},
// create a new node by double-clicking in background
"PartCreated": function PartCreated(e) {
var node = e.subject; // the newly inserted Node -- now need to snap its location to the grid
node.location = node.location.copy().snapToGridPoint(e.diagram.grid.gridOrigin, e.diagram.grid.gridCellSize);
setTimeout(function () {
// and have the user start editing its text
e.diagram.commandHandler.editTextBlock();
}, 20);
},
"commandHandler.archetypeGroupData": {
isGroup: true,
text: "NEW GROUP"
},
"SelectionGrouped": function SelectionGrouped(e) {
var group = e.subject;
setTimeout(function () {
// and have the user start editing its text
e.diagram.commandHandler.editTextBlock();
});
},
"LinkRelinked": function LinkRelinked(e) {
// re-spread the connections of other links connected with both old and new nodes
var oldnode = e.parameter.part;
oldnode.invalidateConnectedLinks();
var link = e.subject;
if (e.diagram.toolManager.linkingTool.isForwards) {
link.toNode.invalidateConnectedLinks();
} else {
link.fromNode.invalidateConnectedLinks();
}
},
"undoManager.isEnabled": true
});
// Node template
myDiagram.current.nodeTemplate = $(go_module.Node, "Auto", {
locationSpot: go_module.Spot.Center,
locationObjectName: "SHAPE",
desiredSize: new go_module.Size(120, 60),
minSize: new go_module.Size(40, 40),
resizable: true,
resizeCellSize: new go_module.Size(10, 10),
rotatable: true
// rotateObjectName: "SHAPE", // rotate the Shape without rotating the label
},
// these Bindings are TwoWay because the DraggingTool and ResizingTool modify the target properties
new go_module.Binding("location", "loc", go_module.Point.parse).makeTwoWay(go_module.Point.stringify), new go_module.Binding("desiredSize", "size", go_module.Size.parse).makeTwoWay(go_module.Size.stringify), $(go_module.Shape, {
// the border
name: "SHAPE",
fill: colors.white,
cursor: "pointer",
portId: "",
fromLinkable: true,
toLinkable: true,
fromLinkableDuplicates: true,
toLinkableDuplicates: true,
fromSpot: go_module.Spot.AllSides,
toSpot: go_module.Spot.AllSides
}, new go_module.Binding("figure"), new go_module.Binding("fill"), new go_module.Binding("stroke", "borderColor"), new go_module.Binding("strokeWidth", "thickness"), new go_module.Binding("strokeDashArray", "dash")),
// this Shape prevents mouse events from reaching the middle of the port
$(go_module.Shape, {
width: 100,
height: 20,
strokeWidth: 0,
fill: "transparent"
}), $(go_module.TextBlock, {
margin: 1,
textAlign: "center",
overflow: go_module.TextBlock.OverflowEllipsis,
editable: true
},
// this Binding is TwoWay due to the user editing the text with the TextEditingTool
new go_module.Binding("text").makeTwoWay(), new go_module.Binding("stroke", "color")));
myDiagram.current.nodeTemplate.toolTip = $("ToolTip",
// show some detailed information
$(go_module.Panel, "Vertical", {
maxSize: new go_module.Size(200, NaN)
},
// limit width but not height
$(go_module.TextBlock, {
font: "bold 10pt sans-serif",
textAlign: "center"
}, new go_module.Binding("text")), $(go_module.TextBlock, {
font: "10pt sans-serif",
textAlign: "center"
}, new go_module.Binding("text", "details"))));
// Node selection adornment
// Include four large triangular buttons so that the user can easily make a copy
// of the node, move it to be in that direction relative to the original node,
// and add a link to the new node.
function makeArrowButton(spot, fig) {
var maker = function maker(e, shape) {
e.handled = true;
e.diagram.model.commit(function (m) {
var selnode = shape.part.adornedPart;
// create a new node in the direction of the spot
var p = new go_module.Point().setRectSpot(selnode.actualBounds, spot);
p.subtract(selnode.location);
p.scale(2, 2);
p.x += Math.sign(p.x) * 130;
p.y += Math.sign(p.y) * 130;
p.add(selnode.location);
p.snapToGridPoint(e.diagram.grid.gridOrigin, e.diagram.grid.gridCellSize);
// make the new node a copy of the selected node
var nodedata = m.copyNodeData(selnode.data);
// add to same group as selected node
m.setGroupKeyForNodeData(nodedata, m.getGroupKeyForNodeData(selnode.data));
m.addNodeData(nodedata); // add to model
// create a link from the selected node to the new node
var linkdata = {
from: selnode.key,
to: m.getKeyForNodeData(nodedata)
};
m.addLinkData(linkdata); // add to model
// move the new node to the computed location, select it, and start to edit it
var newnode = e.diagram.findNodeForData(nodedata);
newnode.location = p;
e.diagram.select(newnode);
setTimeout(function () {
e.diagram.commandHandler.editTextBlock();
}, 20);
});
};
return $(go_module.Shape, {
figure: fig,
alignment: spot,
alignmentFocus: spot.opposite(),
width: spot.equals(go_module.Spot.Top) || spot.equals(go_module.Spot.Bottom) ? 25 : 18,
height: spot.equals(go_module.Spot.Top) || spot.equals(go_module.Spot.Bottom) ? 18 : 25,
fill: "orange",
stroke: colors.white,
strokeWidth: 4,
mouseEnter: function mouseEnter(e, shape) {
return shape.fill = "dodgerblue";
},
mouseLeave: function mouseLeave(e, shape) {
return shape.fill = "orange";
},
isActionable: true,
// needed because it's in an Adornment
click: maker,
contextClick: maker
});
}
// create a button that brings up the context menu
function CMButton(options) {
return $(go_module.Shape, {
fill: "orange",
stroke: "rgba(0, 0, 0, 0)",
strokeWidth: 15,
background: "transparent",
geometryString: "F1 M0 0 b 0 360 -4 0 4 z M10 0 b 0 360 -4 0 4 z M20 0 b 0 360 -4 0 4",
// M10 0 A2 2 0 1 0 14 10 M20 0 A2 2 0 1 0 24 10,
isActionable: true,
cursor: "context-menu",
mouseEnter: function mouseEnter(e, shape) {
return shape.fill = "dodgerblue";
},
mouseLeave: function mouseLeave(e, shape) {
return shape.fill = "orange";
},
click: function click(e, shape) {
e.diagram.commandHandler.showContextMenu(shape.part.adornedPart);
}
}, options || {});
}
myDiagram.current.nodeTemplate.selectionAdornmentTemplate = $(go_module.Adornment, "Spot", $(go_module.Placeholder, {
padding: 10
}), makeArrowButton(go_module.Spot.Top, "TriangleUp"), makeArrowButton(go_module.Spot.Left, "TriangleLeft"), makeArrowButton(go_module.Spot.Right, "TriangleRight"), makeArrowButton(go_module.Spot.Bottom, "TriangleDown"), CMButton({
alignment: new go_module.Spot(0.75, 0)
}));
// Common context menu button definitions
// All buttons in context menu work on both click and contextClick,
// in case the user context-clicks on the button.
// All buttons modify the node data, not the Node, so the Bindings need not be TwoWay.
// A button-defining helper function that returns a click event handler.
// PROPNAME is the name of the data property that should be set to the given VALUE.
function ClickFunction(propname, value) {
return function (e, obj) {
e.handled = true; // don't let the click bubble up
e.diagram.model.commit(function (m) {
m.set(obj.part.adornedPart.data, propname, value);
});
};
}
// Create a context menu button for setting a data property with a color value.
function ColorButton(color, propname) {
if (!propname) propname = "color";
return $(go_module.Shape, {
width: 16,
height: 16,
stroke: "lightgray",
fill: color,
margin: 1,
background: "transparent",
mouseEnter: function mouseEnter(e, shape) {
return shape.stroke = "dodgerblue";
},
mouseLeave: function mouseLeave(e, shape) {
return shape.stroke = "lightgray";
},
click: ClickFunction(propname, color),
contextClick: ClickFunction(propname, color)
});
}
function LightFillButtons() {
// used by multiple context menus
return [$("ContextMenuButton", $(go_module.Panel, "Horizontal", ColorButton(colors.white, "fill"), ColorButton(colors.beige, "fill"), ColorButton(colors.extralightblue, "fill"), ColorButton(colors.extralightred, "fill"))), $("ContextMenuButton", $(go_module.Panel, "Horizontal", ColorButton(colors.lightgray, "fill"), ColorButton(colors.lightgreen, "fill"), ColorButton(colors.lightblue, "fill"), ColorButton(colors.lightred, "fill")))];
}
function DarkColorButtons() {
// used by multiple context menus
return [$("ContextMenuButton", $(go_module.Panel, "Horizontal", ColorButton(colors.black), ColorButton(colors.green), ColorButton(colors.blue), ColorButton(colors.red))), $("ContextMenuButton", $(go_module.Panel, "Horizontal", ColorButton(colors.white), ColorButton(colors.magenta), ColorButton(colors.purple), ColorButton(colors.orange)))];
}
// Create a context menu button for setting a data property with a stroke width value.
function ThicknessButton(sw, propname) {
if (!propname) propname = "thickness";
return $(go_module.Shape, "LineH", {
width: 16,
height: 16,
strokeWidth: sw,
margin: 1,
background: "transparent",
mouseEnter: function mouseEnter(e, shape) {
return shape.background = "dodgerblue";
},
mouseLeave: function mouseLeave(e, shape) {
return shape.background = "transparent";
},
click: ClickFunction(propname, sw),
contextClick: ClickFunction(propname, sw)
});
}
// Create a context menu button for setting a data property with a stroke dash Array value.
function DashButton(dash, propname) {
if (!propname) propname = "dash";
return $(go_module.Shape, "LineH", {
width: 24,
height: 16,
strokeWidth: 2,
strokeDashArray: dash,
margin: 1,
background: "transparent",
mouseEnter: function mouseEnter(e, shape) {
return shape.background = "dodgerblue";
},
mouseLeave: function mouseLeave(e, shape) {
return shape.background = "transparent";
},
click: ClickFunction(propname, dash),
contextClick: ClickFunction(propname, dash)
});
}
function StrokeOptionsButtons() {
// used by multiple context menus
return [$("ContextMenuButton", $(go_module.Panel, "Horizontal", ThicknessButton(1), ThicknessButton(2), ThicknessButton(3), ThicknessButton(4))), $("ContextMenuButton", $(go_module.Panel, "Horizontal", DashButton(null), DashButton([2, 4]), DashButton([4, 4])))];
}
// Node context menu
function FigureButton(fig, propname) {
if (!propname) propname = "figure";
return $(go_module.Shape, {
width: 32,
height: 32,
scale: 0.5,
fill: "lightgray",
figure: fig,
margin: 1,
background: "transparent",
mouseEnter: function mouseEnter(e, shape) {
return shape.fill = "dodgerblue";
},
mouseLeave: function mouseLeave(e, shape) {
return shape.fill = "lightgray";
},
click: ClickFunction(propname, fig),
contextClick: ClickFunction(propname, fig)
});
}
myDiagram.current.nodeTemplate.contextMenu = $("ContextMenu",
// $("ContextMenuButton",
// $(go.TextBlock, 'Move Up', {
// // Associate the custom command to move the node up
// click: (e, obj) => {
// const node = obj.part.adornedPart;
// myDiagram.current.commandHandler['MoveNodeUp'].execute(myDiagram.current);
// }
// })
// ),
// $("ContextMenuButton",
// $(go.TextBlock, 'Move Up', {
// // Associate the custom command to move the node up
// click: (e, obj) => {
// const node = obj.part.adornedPart;
// myDiagram.current.commandHandler['moveNodeUpCommand'].execute(myDiagram.current);
// }
// })
// ),
$("ContextMenuButton", $(go_module.Panel, "Horizontal", FigureButton("Rectangle"), FigureButton("RoundedRectangle"), FigureButton("Ellipse"), FigureButton("Diamond"))), $("ContextMenuButton", $(go_module.Panel, "Horizontal", FigureButton("Parallelogram2"), FigureButton("ManualOperation"), FigureButton("Procedure"), FigureButton("Cylinder1"))), $("ContextMenuButton", $(go_module.Panel, "Horizontal", FigureButton("Terminator"), FigureButton("CreateRequest"), FigureButton("Document"), FigureButton("TriangleDown"))), LightFillButtons(), DarkColorButtons(), StrokeOptionsButtons());
// Group template
myDiagram.current.groupTemplate = $(go_module.Group, "Spot", {
layerName: "Background",
ungroupable: true,
locationSpot: go_module.Spot.Center,
selectionObjectName: "BODY",
computesBoundsAfterDrag: true,
// allow dragging out of a Group that uses a Placeholder
handlesDragDropForMembers: true,
// don't need to define handlers on Nodes and Links
mouseDrop: function mouseDrop(e, grp) {
// add dropped nodes as members of the group
var ok = grp.addMembers(grp.diagram.selection, true);
if (!ok) grp.diagram.currentTool.doCancel();
},
avoidable: false
}, new go_module.Binding("location", "loc", go_module.Point.parse).makeTwoWay(go_module.Point.stringify), $(go_module.Panel, "Auto", {
name: "BODY"
}, $(go_module.Shape, {
parameter1: 10,
fill: colors.white,
strokeWidth: 2,
cursor: "pointer",
fromLinkable: true,
toLinkable: true,
fromLinkableDuplicates: true,
toLinkableDuplicates: true,
fromSpot: go_module.Spot.AllSides,
toSpot: go_module.Spot.AllSides
}, new go_module.Binding("fill"), new go_module.Binding("stroke", "color"), new go_module.Binding("strokeWidth", "thickness"), new go_module.Binding("strokeDashArray", "dash")), $(go_module.Placeholder, {
background: "transparent",
margin: 20
})), $(go_module.TextBlock, {
alignment: go_module.Spot.Top,
alignmentFocus: go_module.Spot.Bottom,
font: "bold 12pt sans-serif",
editable: true
}, new go_module.Binding("text"), new go_module.Binding("stroke", "color")));
myDiagram.current.groupTemplate.selectionAdornmentTemplate = $(go_module.Adornment, "Spot", $(go_module.Panel, "Auto", $(go_module.Shape, {
fill: null,
stroke: "dodgerblue",
strokeWidth: 3
}), $(go_module.Placeholder, {
margin: 1.5
})), CMButton({
alignment: go_module.Spot.TopRight,
alignmentFocus: go_module.Spot.BottomRight
}));
// 右键
myDiagram.current.groupTemplate.contextMenu = $("ContextMenu", LightFillButtons(), DarkColorButtons(), StrokeOptionsButtons());
// Link template
myDiagram.current.linkTemplate = $(go_module.Link, {
layerName: "Foreground",
routing: go_module.Link.AvoidsNodes,
corner: 10,
fromShortLength: 10,
toShortLength: 15,
// assume arrowhead at "to" end, need to avoid bad appearance when path is thick
relinkableFrom: true,
relinkableTo: true,
reshapable: true,
resegmentable: true
}, new go_module.Binding("fromSpot", "fromSpot", go_module.Spot.parse), new go_module.Binding("toSpot", "toSpot", go_module.Spot.parse), new go_module.Binding("fromShortLength", "dir", function (dir) {
return dir >= 1 ? 10 : 0;
}), new go_module.Binding("toShortLength", "dir", function (dir) {
return dir >= 1 ? 10 : 0;
}), new go_module.Binding("points").makeTwoWay(),
// TwoWay due to user reshaping with LinkReshapingTool
$(go_module.Shape, {
strokeWidth: 2
}, new go_module.Binding("stroke", "color"), new go_module.Binding("strokeWidth", "thickness"), new go_module.Binding("strokeDashArray", "dash")), $(go_module.Shape,
// custom arrowheads to create the lifted effect
{
segmentIndex: 0,
segmentOffset: new go_module.Point(15, 0),
segmentOrientation: go_module.Link.OrientAlong,
alignmentFocus: go_module.Spot.Right,
figure: "circle",
width: 10,
strokeWidth: 0
}, new go_module.Binding("fill", "color"), new go_module.Binding("visible", "dir", function (dir) {
return dir === 1;
})), $(go_module.Shape, {
segmentIndex: -1,
segmentOffset: new go_module.Point(-10, 6),
segmentOrientation: go_module.Link.OrientPlus90,
alignmentFocus: go_module.Spot.Right,
figure: "triangle",
width: 12,
height: 12,
strokeWidth: 0
}, new go_module.Binding("fill", "color"), new go_module.Binding("visible", "dir", function (dir) {
return dir >= 1;
}), new go_module.Binding("width", "thickness", function (t) {
return 7 + 3 * t;
}),
// custom arrowhead must scale with the size of the while
new go_module.Binding("height", "thickness", function (t) {
return 7 + 3 * t;
}),
// while remaining centered on line
new go_module.Binding("segmentOffset", "thickness", function (t) {
return new go_module.Point(-15, 4 + 1.5 * t);
})), $(go_module.Shape, {
segmentIndex: 0,
segmentOffset: new go_module.Point(15, -6),
segmentOrientation: go_module.Link.OrientMinus90,
alignmentFocus: go_module.Spot.Right,
figure: "triangle",
width: 12,
height: 12,
strokeWidth: 0
}, new go_module.Binding("fill", "color"), new go_module.Binding("visible", "dir", function (dir) {
return dir === 2;
}), new go_module.Binding("width", "thickness", function (t) {
return 7 + 3 * t;
}), new go_module.Binding("height", "thickness", function (t) {
return 7 + 3 * t;
}), new go_module.Binding("segmentOffset", "thickness", function (t) {
return new go_module.Point(-15, 4 + 1.5 * t);
})), $(go_module.TextBlock, {
alignmentFocus: new go_module.Spot(0, 1, -4, 0),
editable: true
}, new go_module.Binding("text").makeTwoWay(),
// TwoWay due to user editing with TextEditingTool
new go_module.Binding("stroke", "color")));
myDiagram.current.linkTemplate.selectionAdornmentTemplate = $(go_module.Adornment,
// use a special selection Adornment that does not obscure the link path itself
$(go_module.Shape, {
// this uses a pathPattern with a gap in it, in order to avoid drawing on top of the link path Shape
isPanelMain: true,
stroke: "transparent",
strokeWidth: 6,
pathPattern: makeAdornmentPathPattern(2) // == thickness or strokeWidth
}, new go_module.Binding("pathPattern", "thickness", makeAdornmentPathPattern)), CMButton({
alignmentFocus: new go_module.Spot(0, 0, -6, -4)
}));
function makeAdornmentPathPattern(w) {
return $(go_module.Shape, {
stroke: "dodgerblue",
strokeWidth: 2,
strokeCap: "square",
geometryString: "M0 0 M4 2 H3 M4 " + (w + 4).toString() + " H3"
});
}
// Link context menu
// All buttons in context menu work on both click and contextClick,
// in case the user context-clicks on the button.
// All buttons modify the link data, not the Link, so the Bindings need not be TwoWay.
function ArrowButton(num) {
var geo = "M0 0 M8 16 M0 8 L16 8 M12 11 L16 8 L12 5";
if (num === 0) {
geo = "M0 0 M16 16 M0 8 L16 8";
} else if (num === 2) {
geo = "M0 0 M16 16 M0 8 L16 8 M12 11 L16 8 L12 5 M4 11 L0 8 L4 5";
}
return $(go_module.Shape, {
geometryString: geo,
margin: 2,
background: "transparent",
mouseEnter: function mouseEnter(e, shape) {
return shape.background = "dodgerblue";
},
mouseLeave: function mouseLeave(e, shape) {
return shape.background = "transparent";
},
click: ClickFunction("dir", num),
contextClick: ClickFunction("dir", num)
});
}
function AllSidesButton(to) {
var setter = function setter(e, shape) {
e.handled = true;
e.diagram.model.commit(function (m) {
var link = shape.part.adornedPart;
m.set(link.data, to ? "toSpot" : "fromSpot", go_module.Spot.stringify(go_module.Spot.AllSides));
// re-spread the connections of other links connected with the node
(to ? link.toNode : link.fromNode).invalidateConnectedLinks();
});
};
return $(go_module.Shape, {
width: 12,
height: 12,
fill: "transparent",
mouseEnter: function mouseEnter(e, shape) {
return shape.background = "dodgerblue";
},
mouseLeave: function mouseLeave(e, shape) {
return shape.background = "transparent";
},
click: setter,
contextClick: setter
});
}
function SpotButton(spot, to) {
var ang = 0;
var side = go_module.Spot.RightSide;
if (spot.equals(go_module.Spot.Top)) {
ang = 270;
side = go_module.Spot.TopSide;
} else if (spot.equals(go_module.Spot.Left)) {
ang = 180;
side = go_module.Spot.LeftSide;
} else if (spot.equals(go_module.Spot.Bottom)) {
ang = 90;
side = go_module.Spot.BottomSide;
}
if (!to) ang -= 180;
var setter = function setter(e, shape) {
e.handled = true;
e.diagram.model.commit(function (m) {
var link = shape.part.adornedPart;
m.set(link.data, to ? "toSpot" : "fromSpot", go_module.Spot.stringify(side));
// re-spread the connections of other links connected with the node
(to ? link.toNode : link.fromNode).invalidateConnectedLinks();
});
};
return $(go_module.Shape, {
alignment: spot,
alignmentFocus: spot.opposite(),
geometryString: "M0 0 M12 12 M12 6 L1 6 L4 4 M1 6 L4 8",
angle: ang,
background: "transparent",
mouseEnter: function mouseEnter(e, shape) {
return shape.background = "dodgerblue";
},
mouseLeave: function mouseLeave(e, shape) {
return shape.background = "transparent";
},
click: setter,
contextClick: setter
});
}
myDiagram.current.linkTemplate.contextMenu = $("ContextMenu", DarkColorButtons(), StrokeOptionsButtons(), $("ContextMenuButton", $(go_module.Panel, "Horizontal", ArrowButton(0), ArrowButton(1), ArrowButton(2))), $("ContextMenuButton", $(go_module.Panel, "Horizontal", $(go_module.Panel, "Spot", AllSidesButton(false), SpotButton(go_module.Spot.Top, false), SpotButton(go_module.Spot.Left, false), SpotButton(go_module.Spot.Right, false), SpotButton(go_module.Spot.Bottom, false)), $(go_module.Panel, "Spot", {
margin: new go_module.Margin(0, 0, 0, 2)
}, AllSidesButton(true), SpotButton(go_module.Spot.Top, true), SpotButton(go_module.Spot.Left, true), SpotButton(go_module.Spot.Right, true), SpotButton(go_module.Spot.Bottom, true)))));
var initData = "{ \"class\": \"GraphLinksModel\",\n \"nodeDataArray\": [\n{\"text\":\"Find Problem\",\"key\":-9,\"loc\":\"-20 -140\",\"color\":\"#3358ff\",\"fill\":\"white\",\"figure\":\"Procedure\",\"thickness\":3},\n{\"text\":\"What do we want?\",\"key\":-10,\"loc\":\"-65 -324.305\",\"group\":-16,\"figure\":\"Ellipse\",\"fill\":\"white\"},\n{\"text\":\"What do our users want?\",\"key\":-11,\"loc\":\"105 -334.305\",\"group\":-20,\"figure\":\"Ellipse\",\"fill\":\"#ffffff\",\"color\":\"black\"},\n{\"text\":\"Meetings\",\"key\":-12,\"loc\":\"-65 -444.305\",\"group\":-16,\"figure\":\"TriangleDown\",\"fill\":\"#ffffff\"},\n{\"text\":\"Reviews\",\"key\":-13,\"loc\":\"105 -454.305\",\"group\":-20,\"figure\":\"TriangleDown\",\"fill\":\"#ffffff\",\"color\":\"black\"},\n{\"text\":\"Can we solve it?\",\"key\":-14,\"loc\":\"190 -140\",\"color\":\"#7d33ff\",\"fill\":\"#ffffff\",\"figure\":\"Diamond\",\"size\":\"140 80\",\"thickness\":3},\n{\"isGroup\":true,\"text\":\"Internal\",\"key\":-16,\"loc\":\"-65 -384.305\",\"fill\":\"#d5ebff\",\"dash\":null,\"thickness\":1,\"group\":-22},\n{\"isGroup\":true,\"text\":\"External\",\"key\":-20,\"loc\":\"105 -394.305\",\"fill\":\"#d5ebff\",\"dash\":null,\"thickness\":1,\"group\":-22},\n{\"isGroup\":true,\"text\":\"Sources\",\"key\":-22,\"loc\":\"20 -400\",\"fill\":\"#a5d2fa\",\"dash\":[4,4],\"color\":\"#3358ff\"}\n],\n \"linkDataArray\": [\n{\"from\":-12,\"to\":-10,\"points\":[-65,-414.305,-65,-404.305,-65,-384.305,-65,-384.305,-65,-364.305,-65,-354.305],\"dash\":null,\"dir\":1},\n{\"from\":-13,\"to\":-11,\"points\":[105,-424.305,105,-414.305,105,-394.305,105,-394.305,105,-374.305,105,-364.305],\"dash\":null,\"color\":\"#000000\",\"dir\":1},\n{\"from\":-10,\"to\":-9,\"points\":[-65,-294.305,-65,-284.305,-65,-232.1525,-40,-232.1525,-40,-180,-40,-170],\"dir\":2,\"dash\":[4,4]},\n{\"from\":-11,\"to\":-9,\"points\":[105,-304.305,105,-294.305,105,-237.1525,0,-237.1525,0,-180,0,-170],\"dash\":[4,4],\"dir\":2},\n{\"from\":-9,\"to\":-14,\"points\":[40,-150,58,-150,80,-150,80,-153.33333333333331,102,-153.33333333333331,120,-153.33333333333331],\"dir\":1,\"color\":\"#3358ff\"},\n{\"from\":-14,\"to\":-9,\"points\":[190,-100,190,-90,-20,-90,-20,-95,-20,-100,-20,-110],\"fromSpot\":\"BottomSide\",\"toSpot\":\"BottomSide\",\"text\":\"No\",\"color\":\"#ff3333\",\"thickness\":2,\"dir\":1},\n{\"from\":-9,\"to\":-14,\"points\":[40,-130,58,-130,80,-130,80,-126.66666666666666,102,-126.66666666666666,120,-126.66666666666666]}\n]}";
// myDiagram.current.model = go.Model.fromJson(initData);
// start
var builtIn = ["Rectangle", "Square", "RoundedRectangle", "Border", "Ellipse", "Circle", "TriangleRight", "TriangleDown", "TriangleLeft", "TriangleUp", "Triangle", "Diamond", "LineH", "LineV", "None", "BarH", "BarV", "MinusLine", "PlusLine", "XLine", "LineRight", "LineDown", "LineLeft", "LineUp"];
function isBuiltIn(shapeName) {
console.log("shapeName:", shapeName);
return builtIn.indexOf(shapeName) >= 0;
}
var myPalette = new go_module.Palette(myPaletteDivRef.current,
// must name or refer to the DIV HTML element
{
maxSelectionCount: 1,
// nodeTemplateMap: myDiagram.current.nodeTemplateMap, // share the templates used by myDiagram.current
linkTemplate:
// simplify the link template, just in this Palette
$(go_module.Link, {
// because the GridLayout.alignment is Location and the nodes have locationSpot == Spot.Center,
// to line up the Link in the same manner we have to pretend the Link has the same location spot
locationSpot: go_module.Spot.Center,
selectionAdornmentTemplate: $(go_module.Adornment, "Link", {
locationSpot: go_module.Spot.Center
}, $(go_module.Shape, {
isPanelMain: true,
fill: null,
stroke: "deepskyblue",
strokeWidth: 0
}), $(go_module.Shape,
// the arrowhead
{
toArrow: "Standard",
stroke: null
}))
}, {
routing: go_module.Link.AvoidsNodes,
curve: go_module.Link.JumpOver,
corner: 5,
toShortLength: 4
}, new go_module.Binding("points"), $(go_module.Shape,
// the link path shape
{
isPanelMain: true,
strokeWidth: 2
}), $(go_module.Shape,
// the arrowhead
{
toArrow: "Standard",
stroke: null
})),
model: new go_module.GraphLinksModel([
// specify the contents of the Palette
{
text: "未命名",
"size": "100 100",
fill: null,
stroke: "#000"
}].concat(toConsumableArray_default()(go_module.Shape.getFigureGenerators().toArray().map(function (item) {
return {
text: "未命名",
"size": "100 100",
figure: item.key,
fill: "white",
stroke: "#666",
borderColor: "#000"
};
})))) // [
// // the Palette also has a disconnected Link, which the user can drag-and-drop
// { points: new go.List(/*go.Point*/).addAll([new go.Point(0, 0), new go.Point(30, 0), new go.Point(30, 40), new go.Point(60, 40)]) }
// ]
});
// $("ContextMenuButton",
// $(go.Panel, "Horizontal",
// FigureButton("Rectangle"), FigureButton("RoundedRectangle"), FigureButton("Ellipse"), FigureButton("Diamond")
// )
// ),
// $("ContextMenuButton",
// $(go.Panel, "Horizontal",
// FigureButton("Parallelogram2"), FigureButton("ManualOperation"), FigureButton("Procedure"), FigureButton("Cylinder1")
// )
// ),
// $("ContextMenuButton",
// $(go.Panel, "Horizontal",
// FigureButton("Terminator"), FigureButton("CreateRequest"), FigureButton("Document"), FigureButton("TriangleDown")
// )
// ),
myPalette.nodeTemplate = $(go_module.Node, "Auto", {
locationSpot: go_module.Spot.Center
}, new go_module.Binding("location", "location", go_module.Point.parse).makeTwoWay(go_module.Point.stringify), $(go_module.Shape, "Circle", {
fill: "white",
stroke: "gray",
strokeWidth: 2,
width: 20,
height: 20,
portId: "",
fromLinkable: true,
toLinkable: true,
fromLinkableDuplicates: true,
toLinkableDuplicates: true,
fromLinkableSelfNode: true,
toLinkableSelfNode: true
}, new go_module.Binding("stroke").makeTwoWay(), new go_module.Binding("fill").makeTwoWay(), new go_module.Binding("figure")), $(go_module.TextBlock, {
margin: new go_module.Margin(5, 5, 3, 5),
font: "10pt sans-serif",
minSize: new go_module.Size(16, 16),
maxSize: new go_module.Size(10, NaN),
textAlign: "center",
editable: true
}, new go_module.Binding("key").makeTwoWay()));
// end
setTimeout(function () {
myDiagram.current.grid = $(go_module.Panel, "Grid", $(go_module.Shape, "LineH", {
stroke: "lightgray",
strokeWidth: 0.5
}), $(go_module.Shape, "LineV", {
stroke: "lightgray",
strokeWidth: 0.5
}));
myDiagram.current.grid.visible = true; // 隐藏网格
myDiagram.current.grid.gridCellStroke = "darkgray"; // 设置网格线的颜色
myDiagram.current.grid.gridCellStrokeWidth = 1; // 设置网格线的粗细
}, 300);
window.myDiagrams = myDiagram.current;
return myDiagram.current;
}
var save = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var imgs, res;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
// console.log(JSON.stringify(myDiagram.current.model.toJson()))
imgs = myDiagram.current.makeImage();
_context.next = 3;
return (0,fetch/* default */.ZP)('/api/attachments.json', {
method: 'post',
body: {
file_type: 'base64',
original_filename: Date.now(),
file: imgs.src
}
});
case 3:
res = _context.sent;
callback({
src: res.url
});
case 5:
case "end":
return _context.stop();
}
}, _callee);
}));
return function save() {
return _ref2.apply(this, arguments);
};
}();
(0,_react_17_0_2_react.useEffect)(function () {
setUpdateModal(updateModal + 1);
}, []);
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
ref: modalRef,
className: hidedenContentRef.current ? "".concat(flow_chartmodules.maxH60, " body-overflow-initial") : "body-overflow-initial",
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
width: 1200,
icon: null,
footer: null,
closable: true,
visible: !!updateModal,
destroyOnClose: true,
maskClosable: false,
getContainer: modalRef.current,
rootClassName: "zIndex-9999",
title: /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
flex: 1,
children: "\u63D2\u5165\u6D41\u7A0B\u56FE"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
onClick: function onClick() {
hidedenContentRef.current = !hidedenContentRef.current;
setUpdateModal(updateModal + 1);
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "current c-blue mr30",
style: {
fontWeight: 400
},
children: "\u5C55\u5F00/\u6536\u8D77"
})
})]
}),
onCancel: onCancel,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
width: "100%",
height: "80vh",
overflow: "hidden",
position: "relative"
},
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
display: "flex",
height: "100%"
},
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
width: "300px",
height: "100%"
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: {
background: "#fff",
position: "relative",
zIndex: 12,
fontSize: 16,
color: "#3061d0"
},
children: "\u56FE\u5F62\u5E93"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: {
height: "calc(100% - 50px)"
},
className: flow_chartmodules.myPaletteDiv,
ref: myPaletteDivRef
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
flex: 1,
position: "relative"
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(gojsreact/* ReactDiagram */.FI, {
initDiagram: initDiagram,
divClassName: "diagram-component",
style: {
height: "80vh"
}
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
ref: myDiagramDivRef
})]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: "tr",
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
size: "large",
onClick: save,
style: {
position: "absolute",
right: 0,
bottom: 0,
zIndex: 8
},
type: "primary",
children: "\u4FDD\u5B58\u5230\u7F16\u8F91\u5668"
})
})]
})
})
});
}
/* harmony default export */ var flow_chart = (FlowChart);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/radio/index.js + 5 modules
var es_radio = __webpack_require__(5112);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input-number/index.js + 14 modules
var input_number = __webpack_require__(97913);
;// CONCATENATED MODULE: ./src/components/markdown-editor/add-table-panel/index.tsx
var RadioGroup = es_radio/* default.Group */.ZP.Group;
var add_table_panel_style = {
margin: '0 8px'
};
/* harmony default export */ var add_table_panel = (function (_ref) {
var callback = _ref.callback,
onCancel = _ref.onCancel;
function onSubmit(values) {
callback(values);
}
return /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, {
className: "add-table-panel",
initialValues: {
row: 3,
col: 2,
align: 'default'
},
onFinish: onSubmit,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "flex-container",
style: {
alignItems: "baseline"
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: add_table_panel_style,
children: "\u5355\u5143\u683C\u6570\uFF1A"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: add_table_panel_style,
children: "\u884C\u6570"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: "row",
rules: [{
required: true,
message: '请输入行数'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: add_table_panel_style,
children: "\u5217\u6570"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: "col",
rules: [{
required: true,
message: '请输入列数'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {})
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "flex-container",
style: {
marginTop: 12,
alignItems: "baseline"
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: add_table_panel_style,
children: "\u5BF9\u9F50\u65B9\u5F0F\uFF1A"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: "align",
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(RadioGroup, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
value: "default",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "fa fa-align-justify"
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
value: "left",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "fa fa-align-left"
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
value: "center",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "fa fa-align-center"
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
value: "right",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "fa fa-align-right"
})
})]
})
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "flex-container flex-end",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: "primary",
htmlType: "submit",
style: {
marginRight: 10
},
children: "\u786E\u5B9A"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: "ghost",
onClick: onCancel,
children: "\u53D6\u6D88"
})]
})]
});
});
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/switch/index.js + 2 modules
var es_switch = __webpack_require__(78673);
// EXTERNAL MODULE: ./src/components/MathematicalGraphics/js/index.js
var js = __webpack_require__(71417);
var js_default = /*#__PURE__*/__webpack_require__.n(js);
;// CONCATENATED MODULE: ./src/components/MathematicalGraphics/index.tsx
var MathematicalGraphics_FlowChart = /*#__PURE__*/(0,_react_17_0_2_react.forwardRef)(function (_ref, ref) {
var use3d = _ref.use3d,
width = _ref.width,
height = _ref.height,
callback = _ref.callback,
showSaveButton = _ref.showSaveButton;
var ggbAppletRef = (0,_react_17_0_2_react.useRef)();
var appletRef = (0,_react_17_0_2_react.useRef)();
var _useState = (0,_react_17_0_2_react.useState)(false),
_useState2 = slicedToArray_default()(_useState, 2),
is3D = _useState2[0],
setIs3d = _useState2[1];
var parameters = (0,_react_17_0_2_react.useRef)({
"id": ggbAppletRef,
"appName": "graphing",
"width": width || 1000,
"height": height || 600,
"showToolBar": true,
"showMenuBar": true,
"allowStyleBar": true,
"showAlgebraInput": true,
"enableLabelDrags": false,
"enableShiftDragZoom": true,
"showToolBarHelp": false,
"errorDialogsActive": true,
"showTutorialLink": true,
"showLogging": true,
"useBrowserForJS": false
});
(0,_react_17_0_2_react.useEffect)(function () {
appletRef.current = new (js_default())(parameters.current, true);
window.onload = function () {
appletRef.current.inject('applet_container');
};
}, []);
var getImgData = function getImgData() {
var str = window.ggbApplet.getPNGBase64(1, true, 72);
callback && callback(str);
return str;
};
(0,_react_17_0_2_react.useEffect)(function () {
parameters.current.appName = is3D ? "3D" : "graphing";
appletRef.current.inject('applet_container');
}, [is3D]);
(0,_react_17_0_2_react.useEffect)(function () {
setIs3d(use3d);
}, [use3d]);
(0,_react_17_0_2_react.useImperativeHandle)(ref, function () {
return {
getImgData: getImgData
};
});
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: {
width: "100%",
height: "100%"
},
id: "applet_container",
ref: ggbAppletRef
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
align: "middle",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
flex: 1,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_switch/* default */.Z, {
size: "default",
checkedChildren: "\u5173\u95ED3D\u56FE\u50CF",
unCheckedChildren: "\u5F00\u542F3D\u56FE\u50CF",
checked: is3D,
onChange: function onChange(e) {
return setIs3d(e);
}
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
size: "large",
onClick: getImgData,
style: {
zIndex: 8,
marginTop: 10
},
type: "primary",
children: "\u4FDD\u5B58\u5230\u7F16\u8F91\u5668"
})
})]
})]
});
});
/* harmony default export */ var MathematicalGraphics = (MathematicalGraphics_FlowChart);
// EXTERNAL MODULE: ./src/components/MathsLatexKeybords/keybords.tsx
var keybords = __webpack_require__(87133);
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
var env = __webpack_require__(18765);
;// CONCATENATED MODULE: ./src/components/markdown-editor/constant.ts
var LINK = 'link';
var UPLOAD_IMAGE = 'upload-image';
var ADD_FLOWCHART = 'add-flowchart';
var DRAW_IMAGE = 'draw-image';
var FLOW_CHART = 'add-flowchart';
var CODE_BLOCK = 'code-block';
var ADD_TABLE = 'add-table';
var HRLINE = '------------';
var ALIGNSIGN = {
"default": HRLINE,
left: ":".concat(HRLINE),
center: ":".concat(HRLINE, ":"),
right: "".concat(HRLINE, ":")
};
// EXTERNAL MODULE: ./src/components/useInterval.tsx
var useInterval = __webpack_require__(94129);
;// CONCATENATED MODULE: ./src/components/markdown-editor/index.tsx
function noop() {}
var pending = 0;
var StorageTimeTicket = 10000;
var NULL_CH = '▁';
var ADD_MULTI = '@▁▁@';
var ADD_SINGLE = '@▁@';
var TEMP1 = '\n**模板标题**\n模板正文内容可输入文本内容和粘贴图片等操作'; //课程须知模板
var officeSix = ["pptm", "pptx", "ppt", "pot", "pps", "ppa", "potx", "ppsx", "ppam", "pptm", "potm", "ppsm", "doc", "docx", "dot", "dotx", "docm", "dotm", "xls", "xlsx", "csv", "xlt", "xla", "xltx", "xlsm", "xltm", "xlam", "xlsb"];
function processSize(size) {
return !/^\d+$/.test(size) ? size : "".concat(size, "px");
}
var isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;
var key = isMac ? 'Cmd' : 'Ctrl';
var DEFAULTKEYMAP = defineProperty_default()(defineProperty_default()({}, key + '-B', 'bold'), key + '-I', 'italic');
var TitleDesc = defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()({}, LINK, '添加链接'), CODE_BLOCK, '添加代码块'), UPLOAD_IMAGE, '添加图片'), DRAW_IMAGE, '添加画图'), ADD_FLOWCHART, '插入流程图'), ADD_TABLE, '添加表格'), 'maths-latex', "数学图像"), 'inline-latex', "LATEX公式");
//https://codemirror.net/demo
//The height can be set through CSS (by giving the .CodeMirror class a height property), or by calling the cm's setSize method.
/* harmony default export */ var markdown_editor = (function (_ref) {
var _ref$defaultValue = _ref.defaultValue,
defaultValue = _ref$defaultValue === void 0 ? '' : _ref$defaultValue,
onChange = _ref.onChange,
_ref$width = _ref.width,
width = _ref$width === void 0 ? '100%' : _ref$width,
_ref$height = _ref.height,
height = _ref$height === void 0 ? 400 : _ref$height,
_ref$miniToolbar = _ref.miniToolbar,
miniToolbar = _ref$miniToolbar === void 0 ? false : _ref$miniToolbar,
_ref$isFocus = _ref.isFocus,
isFocus = _ref$isFocus === void 0 ? false : _ref$isFocus,
watch = _ref.watch,
insertTemp = _ref.insertTemp,
_ref$mode = _ref.mode,
mode = _ref$mode === void 0 ? "markdown" : _ref$mode,
_ref$id = _ref.id,
id = _ref$id === void 0 ? 'markdown-editor-id' : _ref$id,
_ref$showResizeBar = _ref.showResizeBar,
showResizeBar = _ref$showResizeBar === void 0 ? false : _ref$showResizeBar,
_ref$noStorage = _ref.noStorage,
noStorage = _ref$noStorage === void 0 ? false : _ref$noStorage,
_ref$showNullButton = _ref.showNullButton,
showNullButton = _ref$showNullButton === void 0 ? false : _ref$showNullButton,
_ref$showNullProgramB = _ref.showNullProgramButton,
showNullProgramButton = _ref$showNullProgramB === void 0 ? false : _ref$showNullProgramB,
_ref$hidetoolBar = _ref.hidetoolBar,
hidetoolBar = _ref$hidetoolBar === void 0 ? false : _ref$hidetoolBar,
_ref$fullScreen = _ref.fullScreen,
fullScreen = _ref$fullScreen === void 0 ? false : _ref$fullScreen,
onBlur = _ref.onBlur,
onCMBeforeChange = _ref.onCMBeforeChange,
onFullScreen = _ref.onFullScreen,
_ref$className = _ref.className,
className = _ref$className === void 0 ? '' : _ref$className,
_ref$disablePaste = _ref.disablePaste,
disablePaste = _ref$disablePaste === void 0 ? false : _ref$disablePaste,
_ref$disabled = _ref.disabled,
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
_ref$disabledFill = _ref.disabledFill,
disabledFill = _ref$disabledFill === void 0 ? false : _ref$disabledFill,
_ref$placeholder = _ref.placeholder,
placeholder = _ref$placeholder === void 0 ? '' : _ref$placeholder,
_ref$values = _ref.values,
values = _ref$values === void 0 ? '' : _ref$values,
extraUse = _ref.extraUse;
var _useState = (0,_react_17_0_2_react.useState)(null),
_useState2 = slicedToArray_default()(_useState, 2),
cm = _useState2[0],
setCm = _useState2[1];
var _useState3 = (0,_react_17_0_2_react.useState)(defaultValue),
_useState4 = slicedToArray_default()(_useState3, 2),
value = _useState4[0],
setValue = _useState4[1];
var _useState5 = (0,_react_17_0_2_react.useState)(watch),
_useState6 = slicedToArray_default()(_useState5, 2),
preview = _useState6[0],
setPreview = _useState6[1];
var _useState7 = (0,_react_17_0_2_react.useState)(fullScreen),
_useState8 = slicedToArray_default()(_useState7, 2),
isFull = _useState8[0],
setIsFull = _useState8[1];
var _useState9 = (0,_react_17_0_2_react.useState)(''),
_useState10 = slicedToArray_default()(_useState9, 2),
action = _useState10[0],
setAction = _useState10[1];
var _useState11 = (0,_react_17_0_2_react.useState)(0),
_useState12 = slicedToArray_default()(_useState11, 2),
lastedUpdateTime = _useState12[0],
setLastedUpdateTime = _useState12[1];
var _useState13 = (0,_react_17_0_2_react.useState)(height),
_useState14 = slicedToArray_default()(_useState13, 2),
h = _useState14[0],
setH = _useState14[1];
var _useState15 = (0,_react_17_0_2_react.useState)(false),
_useState16 = slicedToArray_default()(_useState15, 2),
tip = _useState16[0],
setTip = _useState16[1];
var _useState17 = (0,_react_17_0_2_react.useState)(0),
_useState18 = slicedToArray_default()(_useState17, 2),
styleLeft = _useState18[0],
setStyleLeft = _useState18[1];
var _useState19 = (0,_react_17_0_2_react.useState)(0),
_useState20 = slicedToArray_default()(_useState19, 2),
styleTop = _useState20[0],
setStyleTop = _useState20[1];
var cmEl = (0,_react_17_0_2_react.useRef)();
var containerEl = (0,_react_17_0_2_react.useRef)();
var resizeBarEl = (0,_react_17_0_2_react.useRef)();
var previewEl = (0,_react_17_0_2_react.useRef)();
// useEffect(() => {
// setValue(defaultValue)
// cm?.setValue(defaultValue)
// },[])
(0,_react_17_0_2_react.useEffect)(function () {
var scrollTop = window.scrollY || window.pageYOffset;
setValue(values);
cm === null || cm === void 0 || cm.setValue(values);
window.scrollTo(0, scrollTop);
}, [values]);
(0,_react_17_0_2_react.useEffect)(function () {
onFullScreen === null || onFullScreen === void 0 || onFullScreen(isFull);
}, [isFull]);
(0,_react_17_0_2_react.useEffect)(function () {
if (cmEl.current) {
var onPaste = function onPaste(_, e) {
if (disablePaste) {
e.preventDefault();
return;
}
var clipboardData = e.clipboardData;
if (clipboardData) {
var types = clipboardData.types.toString();
var items = clipboardData.items;
if (types === 'Files' || clipboardData.types.indexOf("Files") > -1) {
e.preventDefault();
if (mode == "stex") return;
try {
var _items$;
var item = items[1];
if (((_items$ = items[0]) === null || _items$ === void 0 ? void 0 : _items$.kind) === 'file') {
item = items[0];
}
var file = item.getAsFile();
var fileSix = file.name.split(".").pop();
// console.log("item:", item, file, item?.type?.match(/^video\//i))
uploadImage(file, function (data) {
if (data.id) {
var _file$type, _file$type2, _file$type3;
if ((file === null || file === void 0 || (_file$type = file.type) === null || _file$type === void 0 ? void 0 : _file$type.indexOf("image")) > -1) {
instance.replaceSelection("![,](/api/attachments/".concat(data.id, "?type=").concat(data.content_type, ")"));
} else if ((file === null || file === void 0 || (_file$type2 = file.type) === null || _file$type2 === void 0 ? void 0 : _file$type2.indexOf("video")) > -1) {
instance.replaceSelection("<video width=\"100%\" controls src=\"".concat(env/* default */.Z.API_SERVER, "/api/attachments/").concat(data.id, "\"></video>"));
} else if ((file === null || file === void 0 || (_file$type3 = file.type) === null || _file$type3 === void 0 ? void 0 : _file$type3.indexOf("pdf")) > -1) {
instance.replaceSelection("<a href=\"".concat(env/* default */.Z.API_SERVER, "/api/attachments/").concat(data.id, "?type=").concat(file.type, "&disposition=inline\" target=\"_blank\">").concat(file.name, "</a>"));
} else if (officeSix.includes(fileSix)) {
instance.replaceSelection("<a href=\"".concat(env/* default */.Z.API_SERVER, "/api/attachments/").concat(data.id, "?type=office&disposition=inline\" target=\"_blank\">").concat(file.name, "</a>"));
} else {
instance.replaceSelection("[".concat(file.name, "](").concat(env/* default */.Z.API_SERVER, "/api/attachments/").concat(data.id, "?type=").concat(data.content_type, ")"));
}
} else {
if ((data === null || data === void 0 ? void 0 : data.status) === 401) document.location.href = '/user/login';
}
});
} catch (e) {
message/* default */.ZP.warning("请使用chrome浏览器粘贴");
}
return true;
} else {
//toMarkdown ?
// let html = clipboardData.getData('text/html')
return true;
}
}
return true;
};
var instance = codemirror_default().fromTextArea(cmEl.current, {
mode: mode,
// inputStyle: 'contenteditable',
lineNumbers: miniToolbar ? false : true,
lineWrapping: true,
value: defaultValue,
autoCloseTags: true,
autoCloseBrackets: true
});
instance.on("keyup", function (cm, event) {
if (event.keyCode === 8) {
if (cm.getValue() == "") {
instance.setOption("placeholder", placeholder);
} else {
instance.setOption("placeholder", null);
}
}
});
instance.on("keydown", function (cm, event) {
if (event.keyCode === 8) {
var pos = deleteAtSymbol(cm);
if (pos) {
event.preventDefault();
}
}
});
isFocus && instance.focus();
instance.on('paste', onPaste);
if (disabled) {
instance.on("beforeChange", function (instances, change) {
if (change.origin === "paste" || change.origin === "+input") {
change.cancel();
}
});
}
setCm(instance);
return function () {
instance.off('paste', onPaste);
};
}
}, []);
var resizeEditorBodyHeight = (0,_react_17_0_2_react.useCallback)(function () {
if (containerEl.current) {
try {
// let toolH = containerEl.current.getElementsByClassName('markdown-toolbar-container')[0].offsetHeight
// let mdBody = containerEl.current.getElementsByClassName('markdown-editor-body')[0]
// if (!isFull) {
// mdBody.style.height = `${h - toolH}px`
// } else {
// mdBody.style.height = `calc(100vh - ${toolH}px)`
// }
} catch (error) {
console.log(error, '---- to set md editor body height');
}
}
}, [h, containerEl, isFull]);
(0,_react_17_0_2_react.useEffect)(function () {
function onLayout() {
var ro = new ResizeObserver_es/* default */.Z(function (entries) {
var _iterator = createForOfIteratorHelper_default()(entries),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var entry = _step.value;
if (entry.target.offsetHeight > 0 || entry.target.offsetWidth > 0) {
resizeEditorBodyHeight();
cm.setSize('100%', '100%');
cm.refresh();
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
});
ro.observe(cmEl.current.parentElement);
return ro;
}
if (cm) {
var ro = onLayout();
return function () {
var _cmEl$current, _cmEl$current2;
if ((_cmEl$current = cmEl.current) !== null && _cmEl$current !== void 0 && _cmEl$current.parentElement) ro.unobserve((_cmEl$current2 = cmEl.current) === null || _cmEl$current2 === void 0 ? void 0 : _cmEl$current2.parentElement);
};
}
}, [cm, resizeEditorBodyHeight]);
//keymap
(0,_react_17_0_2_react.useEffect)(function () {
if (cm) {
var keymap = [];
var _loop = function _loop() {
var _Object$entries$_i = slicedToArray_default()(_Object$entries[_i], 2),
k = _Object$entries$_i[0],
value = _Object$entries$_i[1];
var map = defineProperty_default()({}, k, function () {
onActionCallback(value);
});
keymap.push(map);
cm.addKeyMap(map);
};
for (var _i = 0, _Object$entries = Object.entries(DEFAULTKEYMAP); _i < _Object$entries.length; _i++) {
_loop();
}
return function () {
for (var _i2 = 0, _keymap = keymap; _i2 < _keymap.length; _i2++) {
var m = _keymap[_i2];
cm.removeKeyMap(m);
}
};
}
}, [cm]);
(0,_react_17_0_2_react.useEffect)(function () {
if (fullScreen !== isFull) {
setIsFull(fullScreen);
}
}, [fullScreen]);
(0,useInterval/* default */.Z)(function () {
if (!noStorage && lastedUpdateTime > 0) {
var currentTime = new Date().getTime();
var lastedValue = window.sessionStorage.getItem(id);
if (currentTime >= lastedUpdateTime + StorageTimeTicket && (!lastedValue || lastedValue !== value)) {
window.sessionStorage.setItem(id, value);
setTip(true);
}
}
}, StorageTimeTicket);
(0,_react_17_0_2_react.useEffect)(function () {
setPreview(watch);
}, [cm, watch]);
(0,_react_17_0_2_react.useEffect)(function () {
if (cm) {
isFocus && cm.focus();
}
}, [cm, isFocus]);
(0,_react_17_0_2_react.useEffect)(function () {
if (preview && cm) {
var syncScroll = function syncScroll(e) {
var target = e.target;
if (previewEl.current) {
var ratio = target.scrollTop / target.scrollHeight;
previewEl.current.scrollTop = previewEl.current.scrollHeight * ratio;
}
};
var scrollEl = cm.getScrollerElement();
scrollEl.addEventListener('scroll', syncScroll);
return function () {
scrollEl.removeEventListener('scroll', syncScroll);
};
}
}, [cm, preview]);
(0,_react_17_0_2_react.useEffect)(function () {
if (cm && onCMBeforeChange) {
var onChangeHandler = function onChangeHandler(cm, change) {
onCMBeforeChange(cm, change);
};
cm.on('beforeChange', onChangeHandler);
return function () {
cm.off('beforeChange', onChangeHandler);
};
}
}, [cm, onCMBeforeChange]);
(0,_react_17_0_2_react.useEffect)(function () {
if (cm && onBlur) {
var onBlurHandler = function onBlurHandler() {
onBlur(cm.getValue());
};
cm.on('blur', onBlurHandler);
return function () {
cm.off('blur', onBlurHandler);
};
}
}, [cm, onBlur]);
function deleteAtSymbol(cm, change) {
var doc = cm.getDoc();
var cursor = doc.getCursor();
var line = doc.getLine(cursor.line);
var ch = line.charAt(cursor.ch - 1);
var p1 = line.lastIndexOf("@▁@", cursor.ch);
var p2 = line.lastIndexOf("@▁▁@", cursor.ch);
var posStart = p1 > p2 ? p1 : p2;
var n = p1 > p2 ? 3 : 4;
if (ADD_MULTI.indexOf(ch) === -1) return null;
console.log("change1:", change, cm, line, cursor, posStart, p1, p2, ch);
if (posStart >= 0 && cursor.ch - posStart < 5) {
var posEnd = posStart + n;
doc.replaceRange("", {
line: cursor.line,
ch: posStart
}, {
line: cursor.line,
ch: posEnd
});
return {
line: cursor.line,
ch: posEnd
};
}
return null;
}
(0,_react_17_0_2_react.useEffect)(function () {
if (cm) {
var onChangeHandler = function onChangeHandler(cm, change) {
var content = cm.getValue();
setValue(content);
setLastedUpdateTime(new Date().getTime());
cm.getScrollerElement().dispatchEvent(new CustomEvent('scroll'));
if (onChange) {
if (showNullProgramButton) {
onChange(content, formatProgramFill(content));
} else {
onChange(content);
}
}
};
cm.on('change', onChangeHandler);
return function () {
cm.off('change', onChangeHandler);
};
}
}, [cm, onChange]);
(0,_react_17_0_2_react.useEffect)(function () {
if (cm) {
// isFocus && cm.focus()
if (defaultValue === null || defaultValue === undefined) {
cm.setValue('');
setValue('');
} else {
var scrollTop = window.scrollY || window.pageYOffset;
if (defaultValue !== cm.getValue()) {
cm.setValue(defaultValue);
setValue(defaultValue);
cm.setCursor(disabled ? 1 : cm.lineCount(), 0);
window.scrollTo(0, scrollTop);
}
}
}
}, [cm, defaultValue]);
var onActionCallback = (0,_react_17_0_2_react.useCallback)(function (actionName) {
var cursor = cm.getCursor();
var selection = cm.getSelection();
var selectionText = selection.split('\n');
switch (actionName) {
case 'bold':
cm.replaceSelection('**' + selection + '**');
if (selection === '') {
cm.setCursor(cursor.line, cursor.ch + 2);
}
return cm.focus();
case 'italic':
cm.replaceSelection('*' + selection + '*');
if (selection === '') {
cm.setCursor(cursor.line, cursor.ch + 1);
}
return cm.focus();
case 'code':
cm.replaceSelection('`' + selection + '`');
if (selection === '') {
cm.setCursor(cursor.line, cursor.ch + 1);
}
return cm.focus();
case 'inline-latex':
setAction("inline-latex");
// cm.replaceSelection('`$$' + selection + '$$`')
// if (selection === '') {
// cm.setCursor(cursor.line, cursor.ch + 3)
// }
return cm.focus();
case 'latex':
cm.replaceSelection("```latex\n" + selection + "\n```");
cm.setCursor(cursor.line + 1, selection.length + 1);
return cm.focus();
case 'line-break':
cm.replaceSelection('<br/>\n');
return cm.focus();
case 'list-ul':
if (selection === '') {
cm.replaceSelection('- ' + selection);
} else {
cm.replaceSelection(selectionText.map(function (item) {
return item === '' ? '' : "- ".concat(item);
}).join('\n'));
}
return cm.focus();
case 'list-ol':
if (selection === '') {
cm.replaceSelection('1. ' + selection);
} else {
cm.replaceSelection(selectionText.map(function (item, index) {
return item === '' ? '' : "".concat(index + 1, ". ").concat(item);
}).join('\n'));
}
return cm.focus();
case 'add-null-ch':
if (selection === '') {
cm.setCursor(cursor.line, cursor.ch);
}
cm.replaceSelection(NULL_CH);
return cm.focus();
case 'add-signal':
if (selection === '') {
cm.setCursor(cursor.line, cursor.ch);
}
cm.replaceSelection(ADD_SINGLE);
return cm.focus();
case 'add-multiple':
if (selection === '') {
cm.setCursor(cursor.line, cursor.ch);
}
cm.replaceSelection(ADD_MULTI);
return cm.focus();
case 'inster-template-1':
if (selection === '') {
cm.setCursor(cursor.line, cursor.ch);
}
cm.replaceSelection(TEMP1);
return cm.focus();
case 'eraser':
cm.setValue('');
return cm.focus();
case 'trigger-watch':
setPreview(!preview);
return cm.focus();
case 'trigger-full-screen':
setIsFull(!isFull);
return cm.focus();
case LINK:
setAction(LINK);
return;
case CODE_BLOCK:
setAction(CODE_BLOCK);
return;
case UPLOAD_IMAGE:
setAction(UPLOAD_IMAGE);
return;
case DRAW_IMAGE:
setAction(DRAW_IMAGE);
return;
case "maths-latex":
setAction("maths-latex");
return;
case ADD_FLOWCHART:
setAction(ADD_FLOWCHART);
return;
case ADD_TABLE:
setAction(ADD_TABLE);
return;
default:
throw new Error();
}
}, [cm, preview, isFull]);
var ExecutePluginAction = (0,_react_17_0_2_react.useCallback)(function (values, currentFile) {
var _file$name, _file$name$pop, _file$type4, _file$type5, _file$type6;
setAction('');
switch (action) {
case LINK:
var title = values.title,
link = values.link;
cm.replaceSelection("[".concat(title, "](").concat(link, ")"));
return cm.focus();
case CODE_BLOCK:
var language = values.language,
content = values.content;
cm.replaceSelection(['```' + language, content, '```'].join('\n'));
return cm.focus();
case "maths-latex":
var binaryString = atob(values);
var uint8Array = new Uint8Array(binaryString.length);
for (var i = 0; i < binaryString.length; i++) {
uint8Array[i] = binaryString.charCodeAt(i);
}
var files = new Blob([uint8Array], {
type: "image/png"
});
uploadImage(files, function (data) {
if (data.id) {
cm.replaceSelection("![,](/api/attachments/".concat(data.id, "?type=").concat(data.content_type, ")"));
} else {
if ((data === null || data === void 0 ? void 0 : data.status) === 401) document.location.href = '/user/login';
}
});
break;
case "inline-latex":
cm.replaceSelection("`$$" + values + "$$`");
break;
case UPLOAD_IMAGE:
case DRAW_IMAGE:
case FLOW_CHART:
var src = values.src,
alt = values.alt;
var file = currentFile;
var fileSix = file === null || file === void 0 || (_file$name = file.name) === null || _file$name === void 0 || (_file$name = _file$name.split(".")) === null || _file$name === void 0 || (_file$name$pop = _file$name.pop) === null || _file$name$pop === void 0 ? void 0 : _file$name$pop.call(_file$name);
if ((file === null || file === void 0 || (_file$type4 = file.type) === null || _file$type4 === void 0 ? void 0 : _file$type4.indexOf("image")) > -1 || !(file !== null && file !== void 0 && file.type)) {
if (alt) {
cm.replaceSelection("![ ".concat(alt, " ]( ").concat(src, " \"").concat(alt, "\" )"));
} else {
cm.replaceSelection("![,](".concat(src, ")"));
}
} else if ((file === null || file === void 0 || (_file$type5 = file.type) === null || _file$type5 === void 0 ? void 0 : _file$type5.indexOf("video")) > -1) {
cm.replaceSelection("<video width=\"100%\" controls src=\"".concat(env/* default */.Z.API_SERVER).concat(src, "\"></video>"));
} else if ((file === null || file === void 0 || (_file$type6 = file.type) === null || _file$type6 === void 0 ? void 0 : _file$type6.indexOf("pdf")) > -1) {
cm.replaceSelection("<a href=\"".concat(env/* default */.Z.API_SERVER).concat(src, "?type=").concat(file.type, "&disposition=inline\" target=\"_blank\">").concat(file.name, "</a>"));
} else if (officeSix.includes(fileSix)) {
cm.replaceSelection("<a href=\"".concat(env/* default */.Z.API_SERVER).concat(src, "?type=office&disposition=inline\" target=\"_blank\">").concat(file.name, "</a>"));
} else {
cm.replaceSelection("[".concat(file.name, "](").concat(env/* default */.Z.API_SERVER).concat(src, ")"));
}
return cm.focus();
case ADD_TABLE:
var row = values.row,
col = values.col,
align = values.align;
var table = '\n';
for (var r = 0; r < row; r++) {
var rows = [];
var heads = [];
for (var c = 0; c < col; c++) {
if (r === 1) {
heads.push(ALIGNSIGN[align]);
}
rows.push(' ');
}
if (r === 1) {
table += "| ".concat(heads.join(' | '), " |\n");
}
table += "| ".concat(rows.join(col === 1 ? '' : ' | '), " |\n");
}
cm.replaceSelection(table + '\n');
return cm.focus();
default:
throw new Error();
}
}, [cm, action]);
var PluginEl = (0,_react_17_0_2_react.useMemo)(function () {
switch (action) {
case LINK:
return /*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor_link, {
callback: ExecutePluginAction,
onCancel: onCancel
});
case CODE_BLOCK:
return /*#__PURE__*/(0,jsx_runtime.jsx)(code_block/* default */.Z, {
callback: ExecutePluginAction,
onCancel: onCancel
});
case UPLOAD_IMAGE:
return /*#__PURE__*/(0,jsx_runtime.jsx)(upload_image, {
callback: ExecutePluginAction,
onCancel: onCancel
});
case ADD_FLOWCHART:
return /*#__PURE__*/(0,jsx_runtime.jsx)(flow_chart, {
callback: ExecutePluginAction,
onCancel: onCancel
})
// <iframe src='/knowledgegraph/blockEditor.html' style={{width:"80vw",height:"80vh"}} frameBorder={0} />
;
case ADD_TABLE:
return /*#__PURE__*/(0,jsx_runtime.jsx)(add_table_panel, {
callback: ExecutePluginAction,
onCancel: onCancel
});
case "maths-latex":
return /*#__PURE__*/(0,jsx_runtime.jsx)(MathematicalGraphics, {
showSaveButton: true,
callback: ExecutePluginAction
});
case "inline-latex":
return /*#__PURE__*/(0,jsx_runtime.jsx)(keybords/* default */.Z, {
showSaveButton: true,
callback: ExecutePluginAction
});
default:
return null;
}
}, [action]);
function onCancel() {
setAction('');
}
(0,_react_17_0_2_react.useEffect)(function () {
if (resizeBarEl.current) {
var onMouseDown = function onMouseDown(e) {
dragging = true;
startY = e.pageY;
};
var onMouseUp = function onMouseUp() {
dragging = false;
};
var onMouseMove = function onMouseMove(e) {
if (dragging) {
var delta = e.pageY - startY;
if (delta < 0) {
delta = 0;
}
if (delta > 300) {
delta = 300;
}
var resizeH = height + delta + 'px';
setH(resizeH);
}
};
var resizeBar = resizeBarEl.current;
var dragging = false;
var startY = 0;
resizeBar.addEventListener('mousedown', onMouseDown);
document.addEventListener('mousemove', onMouseMove);
document.addEventListener('mouseup', onMouseUp);
return function () {
resizeBar.removeEventListener('mousedown', onMouseDown);
document.removeEventListener('mousemove', onMouseMove);
document.removeEventListener('mouseup', onMouseUp);
};
}
}, [cm, resizeBarEl]);
(0,_react_17_0_2_react.useEffect)(function () {
setH(height);
}, [height]);
var fixedWidth = processSize(width);
var fixedHeight = processSize(h);
var style = {
width: fixedWidth,
height: fixedHeight
};
var saveTime = (0,_react_17_0_2_react.useMemo)(function () {
if (lastedUpdateTime) {
var d = new Date(lastedUpdateTime);
var _h = d.getHours();
var m = d.getMinutes();
var s = d.getSeconds();
_h = _h < 10 ? '0' + _h : _h;
m = m < 10 ? '0' + m : m;
s = s < 10 ? '0' + s : s;
return "".concat(_h, ":").concat(m, ":").concat(s);
}
return 0;
}, [lastedUpdateTime]);
var formatProgramFill = function formatProgramFill(str) {
var arr = [];
if (showNullProgramButton) {
var num = -1;
str = str.replace(/(@▁▁@|@▁@)/g, function (a, b, c) {
arr.push({
multiLine: !(a === ADD_SINGLE)
});
});
}
return arr;
};
function onCancelStorage() {
window.sessionStorage.removeItem(id);
setTip(false);
setLastedUpdateTime(0);
}
function onReset() {
setTip(false);
setLastedUpdateTime(0);
cm.setValue(window.sessionStorage.getItem(id));
}
// 设置弹窗居中
(0,_react_17_0_2_react.useEffect)(function () {
if (TitleDesc[action] && action !== DRAW_IMAGE && action !== ADD_FLOWCHART) {
var modal = document.getElementsByClassName('ant-modal')[0];
var centerX = window.innerWidth / 2 - modal.offsetWidth / 2; // 弹窗宽度的一半
var centerY = window.innerHeight / 2 - modal.offsetHeight / 2; // 弹窗高度的一半
setStyleLeft(centerX);
setStyleTop(centerY);
}
}, [action]);
var onTitleMouseDown = function onTitleMouseDown(e) {
e.preventDefault();
var startPosX = e.clientX - styleLeft;
var startPosY = e.clientY - styleTop;
// 鼠标移动时,移动弹窗
document.body.onmousemove = function (e) {
// 获取鼠标移动的距离
var left = e.clientX - startPosX;
var top = e.clientY - startPosY;
// 获取弹窗dom元素并计算弹窗的宽高
var modal = document.getElementsByClassName('ant-modal')[0];
var maxWidth = window.innerWidth - modal.offsetWidth;
var maxHeight = window.innerHeight - modal.offsetHeight;
// 判断移动的距离是否在弹窗内,如果不在弹窗内,则移动到弹窗内
left = Math.max(0, Math.min(left, maxWidth));
top = Math.max(0, Math.min(top, maxHeight));
// 移动弹窗
if (inWindow(e.clientX, e.clientY, startPosX, startPosY)) {
setStyleLeft(left);
setStyleTop(top);
}
};
// 鼠标放开时去掉移动事件
document.body.onmouseup = function () {
document.body.onmousemove = null;
};
};
// 判断鼠标是否在拖拽范围内
var inWindow = function inWindow(left, top, startPosX, startPosY) {
var H = document.body.clientHeight;
var W = document.body.clientWidth;
if (left < 20 && startPosX > left || left > W - 20 && startPosX < left || top < 20 && startPosY > top || top > H - 20 && startPosY < top) {
document.body.onmousemove = null;
document.body.onmouseup = null;
return false;
}
return true;
};
return /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: "markdown-editor-wrapper",
ref: containerEl,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "markdown-editor-container ".concat(className, " ").concat(preview ? 'on-preview' : '', " ").concat(miniToolbar ? 'mini' : '', " ").concat(isFull ? 'full-screen' : ''),
style: style,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(toolbar, {
insertTemp: insertTemp,
watch: preview,
fullScreen: isFull,
showNullButton: showNullButton,
showNullProgramButton: showNullProgramButton,
onActionCallback: onActionCallback,
hidetoolBar: hidetoolBar,
extraUse: extraUse
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "markdown-editor-body",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: "codemirror-container",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("textarea", {
ref: cmEl,
placeholder: placeholder
})
}), preview ? /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
ref: previewEl,
className: "preview-container",
children: [mode === "stex" && /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml_stex, {
value: value
}), mode !== "stex" && /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
disabledFill: disabledFill,
showProgramFill: showNullProgramButton,
value: value
})]
}) : null]
})]
})
}), showResizeBar ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
ref: resizeBarEl,
className: "editor-resize"
}) : null, action === DRAW_IMAGE && /*#__PURE__*/(0,jsx_runtime.jsx)(draw_image, {
callback: ExecutePluginAction,
onCancel: onCancel
}), action === ADD_FLOWCHART && /*#__PURE__*/(0,jsx_runtime.jsx)(flow_chart, {
callback: ExecutePluginAction,
onCancel: onCancel
}), /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
children: TitleDesc[action] && action !== DRAW_IMAGE && action !== ADD_FLOWCHART ? /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
maskClosable: false,
centered: true,
style: {
position: 'absolute',
left: styleLeft,
top: styleTop
},
title: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: {
cursor: 'move'
},
onMouseDown: onTitleMouseDown,
children: TitleDesc[action]
}),
open: true,
onCancel: onCancel,
footer: null,
destroyOnClose: true,
width: action === ADD_FLOWCHART ? "1200px" : null,
height: action === ADD_FLOWCHART ? "80vh" : null,
className: "markdown-popup-form",
children: PluginEl
}) : null
})]
});
});
/***/ }),
/***/ 58990:
/*!*********************************************************!*\
!*** ./src/components/tpi-code-setting/CodeSetting.tsx ***!
\*********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.less */ 81574);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd */ 57809);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd */ 78673);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ 37712);
var Option = antd__WEBPACK_IMPORTED_MODULE_2__["default"].Option;
/* harmony default export */ __webpack_exports__.Z = (function (_ref) {
var isTheoretical = _ref.isTheoretical,
onFontSizeChange = _ref.onFontSizeChange,
cmFontSize = _ref.cmFontSize,
cmCodeMode = _ref.cmCodeMode,
autoFormat = _ref.autoFormat,
onCodeModeChange = _ref.onCodeModeChange,
onTabToSpace = _ref.onTabToSpace,
onAutoFormat = _ref.onAutoFormat,
formatDocument = _ref.formatDocument,
_ref$className = _ref.className,
className = _ref$className === void 0 ? '' : _ref$className,
tabToSpace = _ref.tabToSpace,
children = _ref.children,
code_editor = _ref.code_editor,
challenge = _ref.challenge;
var difficultyDesc = {
1: '简单',
2: '中等',
3: '困难'
};
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "tpi-code-setting ".concat(className),
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("h3", {
children: "\u4EE3\u7801\u683C\u5F0F"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("section", {
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "file-item",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("b", {
children: "\u663E\u793A\u6A21\u5F0F"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_2__["default"], {
bordered: false,
size: "small",
value: cmCodeMode,
onChange: onCodeModeChange,
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Option, {
value: 'vs',
children: "\u767D\u8272\u80CC\u666F"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Option, {
value: 'vs-dark',
children: "\u9ED1\u8272\u80CC\u666F"
})]
})]
}), !isTheoretical && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "file-item",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("b", {
children: "\u5B57\u4F53\u5927\u5C0F"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_2__["default"], {
bordered: false,
size: "small",
value: cmFontSize,
onChange: onFontSizeChange,
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Option, {
value: 12,
children: "12px"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Option, {
value: 14,
children: "14px"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Option, {
value: 16,
children: "16px"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Option, {
value: 18,
children: "18px"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Option, {
value: 20,
children: "20px"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Option, {
value: 22,
children: "22px"
})]
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "file-item",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("b", {
children: "Tab\u8F6C\u6362"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(antd__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
checked: tabToSpace,
onChange: onTabToSpace
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
className: "file-item",
onClick: formatDocument,
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("b", {
style: {
cursor: "pointer"
},
children: "\u683C\u5F0F\u5316\u4EE3\u7801"
})
})]
})]
}), !isTheoretical && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("h3", {
children: "\u5FEB\u6377\u952E"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("section", {
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "file-item",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("b", {
children: "\u4FDD\u5B58\u4EE3\u7801"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", {
children: "Ctrl + S"
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "file-item",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("b", {
children: "\u5524\u51FA\u5FEB\u6377\u952E\u5217\u8868"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", {
children: "F1 / Alt + F1"
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "file-item",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("b", {
children: "\u5DE6\u53F3\u7F29\u8FDB"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", {
children: "Ctrl + ]/["
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "file-item",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("b", {
children: "\u8DF3\u5230\u5339\u914D\u7684\u62EC\u53F7"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", {
children: "Ctrl + Shift + \\"
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "file-item",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("b", {
children: "\u8F6C\u5230\u884C\u9996"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", {
children: "Home"
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "file-item",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("b", {
children: "\u8F6C\u5230\u884C\u5C3E"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", {
children: "End"
})]
})]
}), children]
}), !isTheoretical && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("h3", {
children: "\u5FEB\u6377\u952E"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("section", {
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "file-item",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("b", {
children: "\u5B9E\u8BAD\u96BE\u6613\u5EA6"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", {
children: difficultyDesc[challenge === null || challenge === void 0 ? void 0 : challenge.difficulty]
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "file-item",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("b", {
children: "\u5B9E\u9A8C\u73AF\u5883"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", {
children: code_editor === null || code_editor === void 0 ? void 0 : code_editor.name
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "file-item",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("b", {
children: "\u5B9E\u9A8C\u5BB9\u5668\u7F51\u7EDC"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", {
children: code_editor !== null && code_editor !== void 0 && code_editor.close_internet ? '关闭外网' : '开启外网'
})]
})]
})]
})]
});
});
/***/ }),
/***/ 46904:
/*!*******************************************************************!*\
!*** ./src/pages/Classrooms/Lists/Exercise/components/Unlock.tsx ***!
\*******************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/typeof.js */ 31468);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_typeof_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_typeof_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js */ 7557);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js */ 41498);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js */ 79800);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ 59301);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd */ 31797);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! antd */ 78241);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! antd */ 43418);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! antd */ 52306);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! antd */ 8772);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! antd */ 95237);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! antd */ 43604);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! antd */ 3113);
/* harmony import */ var _service_exercise__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/service/exercise */ 63309);
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! moment */ 9498);
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var umi__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! umi */ 32136);
/* harmony import */ var _utils_util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/utils/util */ 25644);
/* harmony import */ var _components_Exercise_ip__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/components/Exercise/ip */ 16674);
/* harmony import */ var _utils_authority__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/utils/authority */ 82522);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ 37712);
var Countdown = antd__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z.Countdown;
var Unlock = function Unlock(_ref) {
var _actionTabs$exerciseP10, _actionTabs$exerciseP11, _actionTabs$exerciseP12, _actionTabs$exerciseP13;
var exercise = _ref.exercise,
successCb = _ref.successCb,
dispatch = _ref.dispatch;
var params = (0,umi__WEBPACK_IMPORTED_MODULE_7__.useParams)();
var _Form$useForm = antd__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z.useForm(),
_Form$useForm2 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3___default()(_Form$useForm, 1),
form = _Form$useForm2[0];
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(false),
_useState2 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_3___default()(_useState, 2),
isLoading = _useState2[0],
setIsLoading = _useState2[1];
var localIpRef = (0,react__WEBPACK_IMPORTED_MODULE_4__.useRef)();
var actionTabs = exercise.actionTabs;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
if (exercise.actionTabs.key === 'student-unlock') {
// if (actionTabs?.exerciseParams?.ip_limit !== 'no' || actionTabs?.exerciseParams?.ip_bind)
// getLocalIp();
setIsLoading(false);
form.resetFields();
}
}, [exercise.actionTabs.key]);
var getLocalIp = function getLocalIp() {
return new Promise( /*#__PURE__*/function () {
var _ref2 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee(resolve) {
var _actionTabs$exerciseP, _actionTabs$exerciseP2, _actionTabs$exerciseP3;
return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return (0,_components_Exercise_ip__WEBPACK_IMPORTED_MODULE_9__/* .findLocalIp */ .y)({
ip_limit: actionTabs === null || actionTabs === void 0 || (_actionTabs$exerciseP = actionTabs.exerciseParams) === null || _actionTabs$exerciseP === void 0 ? void 0 : _actionTabs$exerciseP.ip_limit,
ip_bind: actionTabs === null || actionTabs === void 0 || (_actionTabs$exerciseP2 = actionTabs.exerciseParams) === null || _actionTabs$exerciseP2 === void 0 ? void 0 : _actionTabs$exerciseP2.ip_bind,
ip_bind_type: actionTabs === null || actionTabs === void 0 || (_actionTabs$exerciseP3 = actionTabs.exerciseParams) === null || _actionTabs$exerciseP3 === void 0 ? void 0 : _actionTabs$exerciseP3.ip_bind_type
});
case 2:
localIpRef.current = _context.sent;
return _context.abrupt("return", resolve());
case 4:
case "end":
return _context.stop();
}
}, _callee);
}));
return function (_x) {
return _ref2.apply(this, arguments);
};
}());
};
var handleOk = /*#__PURE__*/function () {
var _ref3 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee2() {
var _actionTabs$exerciseP4, _actionTabs$exerciseP5, _actionTabs$exerciseP6, _actionTabs$exerciseP7;
var formValue, unlockRes, _userInfo, _actionTabs$exerciseP8, _actionTabs$exerciseP9, delayedParams, v;
return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return form.validateFields();
case 2:
formValue = form.getFieldsValue();
setIsLoading(true);
if (!((actionTabs === null || actionTabs === void 0 || (_actionTabs$exerciseP4 = actionTabs.exerciseParams) === null || _actionTabs$exerciseP4 === void 0 ? void 0 : _actionTabs$exerciseP4.ip_limit) !== 'no' || actionTabs !== null && actionTabs !== void 0 && (_actionTabs$exerciseP5 = actionTabs.exerciseParams) !== null && _actionTabs$exerciseP5 !== void 0 && _actionTabs$exerciseP5.ip_bind)) {
_context2.next = 7;
break;
}
_context2.next = 7;
return getLocalIp();
case 7:
_context2.next = 9;
return (0,_service_exercise__WEBPACK_IMPORTED_MODULE_5__/* .unlockUser */ .ZD)(actionTabs === null || actionTabs === void 0 || (_actionTabs$exerciseP6 = actionTabs.exerciseParams) === null || _actionTabs$exerciseP6 === void 0 ? void 0 : _actionTabs$exerciseP6.id, {
exercise_user_id: actionTabs === null || actionTabs === void 0 || (_actionTabs$exerciseP7 = actionTabs.exerciseParams) === null || _actionTabs$exerciseP7 === void 0 ? void 0 : _actionTabs$exerciseP7.exercise_user_id,
unlock_key: formValue.unlock_key,
ip: localIpRef.current
});
case 9:
unlockRes = _context2.sent;
if (!(unlockRes.status === 0)) {
_context2.next = 22;
break;
}
if (!successCb) {
_context2.next = 15;
break;
}
dispatch({
type: 'exercise/setActionTabs',
payload: {}
});
successCb();
return _context2.abrupt("return");
case 15:
if (!formValue.time) {
_context2.next = 19;
break;
}
delayedParams = {
time: moment__WEBPACK_IMPORTED_MODULE_6___default()(formValue.time).format("YYYY-MM-DD HH:mm"),
exercise_user_id: actionTabs === null || actionTabs === void 0 || (_actionTabs$exerciseP8 = actionTabs.exerciseParams) === null || _actionTabs$exerciseP8 === void 0 ? void 0 : _actionTabs$exerciseP8.exercise_user_id,
id: actionTabs === null || actionTabs === void 0 || (_actionTabs$exerciseP9 = actionTabs.exerciseParams) === null || _actionTabs$exerciseP9 === void 0 ? void 0 : _actionTabs$exerciseP9.id
};
_context2.next = 19;
return (0,_service_exercise__WEBPACK_IMPORTED_MODULE_5__/* .delayedTime */ .qz)(delayedParams);
case 19:
v = actionTabs === null || actionTabs === void 0 ? void 0 : actionTabs.exerciseParams;
(0,_utils_util__WEBPACK_IMPORTED_MODULE_8__/* .startExercise */ .nr)({
inner_ip: v.inner_ip,
public_ip: v.public_ip,
open_camera: v.open_camera,
ip_limit: v.ip_limit,
ip_bind: v.ip_bind,
ip_bind_type: v.ip_bind_type,
exercise_tips: v.exercise_tips,
exerciseId: v.id,
screen_open: v.screen_open,
screen_num: v.screen_num,
screen_sec: v.screen_sec,
coursesId: params.coursesId,
login: (_userInfo = (0,_utils_authority__WEBPACK_IMPORTED_MODULE_10__/* .userInfo */ .eY)()) === null || _userInfo === void 0 ? void 0 : _userInfo.login,
history: history,
identity_verify: v.identity_verify,
open_phone_video_recording: v.open_phone_video_recording,
current_status: v.current_status
});
dispatch({
type: 'exercise/setActionTabs',
payload: {}
});
case 22:
setIsLoading(false);
case 23:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return function handleOk() {
return _ref3.apply(this, arguments);
};
}();
var columns = [{
title: 'IP地址',
dataIndex: 'ip',
key: 'ip',
render: function render(text) {
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("span", {
className: text.indexOf("异常") > -1 ? 'c-red' : 'c-green',
children: text
});
}
}, {
title: '浏览器',
dataIndex: 'browser',
key: 'browser',
render: function render(text) {
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("span", {
className: text.indexOf("异常") > -1 ? 'c-red' : 'c-green',
children: text
});
}
}, {
title: '上次登录时间',
dataIndex: 'last_login_time',
key: 'last_login_time'
}];
var hasError5 = (actionTabs === null || actionTabs === void 0 || (_actionTabs$exerciseP10 = actionTabs.exerciseParams) === null || _actionTabs$exerciseP10 === void 0 ? void 0 : _actionTabs$exerciseP10.errorMessage) && _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_typeof_js__WEBPACK_IMPORTED_MODULE_0___default()(actionTabs === null || actionTabs === void 0 || (_actionTabs$exerciseP11 = actionTabs.exerciseParams) === null || _actionTabs$exerciseP11 === void 0 ? void 0 : _actionTabs$exerciseP11.errorMessage) === "object";
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.Fragment, {
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z, {
width: 514,
centered: true,
closable: !!(actionTabs !== null && actionTabs !== void 0 && (_actionTabs$exerciseP12 = actionTabs.exerciseParams) !== null && _actionTabs$exerciseP12 !== void 0 && _actionTabs$exerciseP12.unlockClose),
maskClosable: false,
keyboard: false,
maskStyle: {
background: "#000"
},
title: '提示',
open: exercise.actionTabs.key === 'student-unlock',
footer: null,
onCancel: function onCancel() {
dispatch({
type: 'exercise/setActionTabs',
payload: {}
});
},
children: [hasError5 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("div", {
style: {
marginBottom: 16
},
children: "\u8BE5\u8D26\u53F7\u5DF2\u7ECF\u5B58\u5728\u5F02\u5E38\u60C5\u51B5\uFF0C\u82E5\u975E\u672C\u4EBA\u64CD\u4F5C\uFF0C\u8BF7\u8054\u7CFB\u76D1\u8003\u8001\u5E08\u8BF4\u660E\u60C5\u51B5\u3002 "
}), !hasError5 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("div", {
style: {
marginBottom: 16
},
children: "\u7CFB\u7EDF\u68C0\u6D4B\u5230\u60A8\u5728\u8003\u8BD5\u65F6\u4E2D\u9014\u9000\u51FA\uFF0C\u73B0\u5DF2\u5C06\u8003\u8BD5\u9501\u5B9A\u3002\u5982\u9700\u7EE7\u7EED\u8FDB\u884C\u8003\u8BD5\uFF0C \u8BF7\u5C3D\u5FEB\u8054\u7CFB\u8BFE\u5802\u8001\u5E08\u8FDB\u884C\u89E3\u9501\uFF01"
}), hasError5 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(antd__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z, {
className: "mb20",
pagination: {
hideOnSinglePage: true
},
dataSource: [(actionTabs === null || actionTabs === void 0 || (_actionTabs$exerciseP13 = actionTabs.exerciseParams) === null || _actionTabs$exerciseP13 === void 0 ? void 0 : _actionTabs$exerciseP13.errorMessage) || {}],
columns: columns
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("div", {
className: "",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(antd__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, {
form: form,
layout: "vertical",
autoComplete: "off",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(antd__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z.Item, {
label: "\u8003\u8BD5\u89E3\u9501\u7801",
name: "unlock_key",
rules: [{
required: true,
message: '请输入考试解锁码'
}],
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(antd__WEBPACK_IMPORTED_MODULE_16__/* ["default"] */ .Z.Password, {
autoComplete: "off",
placeholder: "\u8BF7\u8F93\u5165\u8003\u8BD5\u89E3\u9501\u7801",
visibilityToggle: false
})
})
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .Z, {
justify: "space-between",
align: "middle",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(antd__WEBPACK_IMPORTED_MODULE_18__/* ["default"] */ .Z, {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(antd__WEBPACK_IMPORTED_MODULE_18__/* ["default"] */ .Z, {
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(antd__WEBPACK_IMPORTED_MODULE_19__/* ["default"] */ .ZP, {
loading: isLoading,
onClick: handleOk,
children: "\u8FDB\u5165\u8003\u8BD5"
})
})]
})]
})
});
};
/* harmony default export */ __webpack_exports__.Z = ((0,umi__WEBPACK_IMPORTED_MODULE_7__.connect)(function (_ref4) {
var exercise = _ref4.exercise;
return {
exercise: exercise
};
})(Unlock));
/***/ }),
/***/ 2871:
/*!*****************************************************************!*\
!*** ./src/pages/MyProblem/TestCasePanel/index.tsx + 1 modules ***!
\*****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Y4: function() { return /* binding */ DetailCommitOut; },
Im: function() { return /* binding */ ExecuteDict; },
ZP: function() { return /* binding */ TestCasePanel; }
});
// UNUSED EXPORTS: getCommitOut
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(79800);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js
var regeneratorRuntime = __webpack_require__(7557);
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(41498);
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(82242);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/defineProperty.js
var defineProperty = __webpack_require__(85573);
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 5 modules
var input = __webpack_require__(8772);
// 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/button/index.js
var es_button = __webpack_require__(3113);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.6@@ant-design/icons/es/icons/DownOutlined.js + 1 modules
var DownOutlined = __webpack_require__(8876);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.6@@ant-design/icons/es/icons/UpOutlined.js + 1 modules
var UpOutlined = __webpack_require__(17352);
// EXTERNAL MODULE: ./src/pages/MyProblem/interface.ts
var MyProblem_interface = __webpack_require__(75344);
// EXTERNAL MODULE: ./node_modules/_js-base64@2.6.4@js-base64/base64.js
var base64 = __webpack_require__(24334);
;// CONCATENATED MODULE: ./src/pages/MyProblem/TestCasePanel/index.less
// extracted by mini-css-extract-plugin
// EXTERNAL MODULE: ./src/components/Spinner/index.tsx + 1 modules
var Spinner = __webpack_require__(64876);
// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx
var RenderHtml = __webpack_require__(70159);
// EXTERNAL MODULE: ./src/utils/util.tsx
var util = __webpack_require__(25644);
// EXTERNAL MODULE: ./node_modules/_xterm@4.8.1@xterm/lib/xterm.js
var xterm = __webpack_require__(34376);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var utils_fetch = __webpack_require__(84087);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 15 modules
var _umi_production_exports = __webpack_require__(32136);
// EXTERNAL MODULE: ./src/components/TestResult/index.tsx + 1 modules
var TestResult = __webpack_require__(26454);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/pages/MyProblem/TestCasePanel/index.tsx
var TextArea = input/* default */.Z.TextArea;
var initialState = {
visible: false,
tabIndex: '0'
};
var ExecuteDict = defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()({}, MyProblem_interface/* ExecuteStatus */.h.NOMATCH, '测试用例结果不匹配'), MyProblem_interface/* ExecuteStatus */.h.OK, '调试通过'), 2, '调试超时'), 3, '调试pod失败'), 4, '编译失败'), 5, '执行失败');
var Types = /*#__PURE__*/function (Types) {
Types[Types["SET_VISIBLE"] = 0] = "SET_VISIBLE";
Types[Types["SET_TABINDEX"] = 1] = "SET_TABINDEX";
return Types;
}(Types || {});
function Reducer(state, action) {
switch (action.type) {
case Types.SET_VISIBLE:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
visible: action.payload
});
case Types.SET_TABINDEX:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
tabIndex: action.payload
});
default:
throw new Error();
}
}
function DetailCommitOut(debugResult) {
var status = debugResult.status,
error_msg = debugResult.error_msg,
output = debugResult.output,
input = debugResult.input,
expected_output = debugResult.expected_output,
is_file = debugResult.is_file,
input_file_url = debugResult.input_file_url,
output_file_url = debugResult.output_file_url,
expected_output_file_url = debugResult.expected_output_file_url,
setMonacoValue = debugResult.setMonacoValue,
setData = debugResult.setData;
var outputRef = (0,_react_17_0_2_react.useRef)();
var inputRef = (0,_react_17_0_2_react.useRef)();
var expectedOutputRef = (0,_react_17_0_2_react.useRef)();
var rs = null;
var mdStyle = {
minHeight: 150,
marginBottom: 10,
paddingLeft: 24,
background: '#070f19',
color: '#fff'
};
(0,_react_17_0_2_react.useEffect)(function () {
if (output && !is_file && outputRef.current) {
var term = new xterm.Terminal({
fontSize: 14,
letterSpacing: 1,
cols: 83,
rows: 10
});
term.open(outputRef.current);
var actual_output_format = (0,util/* findEndWhitespace */.pp)(base64.Base64.decode(output));
term.write(actual_output_format);
term.setOption('theme', {
background: '#1e1e1e'
});
}
if (input && !is_file && inputRef.current) {
var term2 = new xterm.Terminal({
fontSize: 14,
letterSpacing: 1,
cols: 83,
rows: 10
});
term2.open(inputRef.current);
term2.write((0,util/* findEndWhitespace */.pp)(input));
term2.setOption('theme', {
background: '#1e1e1e'
});
}
if (expected_output && !is_file && expectedOutputRef.current) {
var term3 = new xterm.Terminal({
fontSize: 14,
letterSpacing: 1,
cols: 83,
rows: 10
});
term3.open(expectedOutputRef.current);
term3.write((0,util/* findEndWhitespace */.pp)(base64.Base64.decode(expected_output)));
term3.setOption('theme', {
background: '#1e1e1e'
});
}
}, [output]);
switch (status) {
case MyProblem_interface/* ExecuteStatus */.h.NOMATCH:
rs = /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("p", {
className: "c-red",
children: "\u5B9E\u9645\u8F93\u5165\uFF1A"
}), !is_file && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
ref: inputRef
}), is_file && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: mdStyle,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
// href={input_file_url}
style: {
fontSize: '16px'
},
onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var res;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return fetch(input_file_url, {
method: "Get",
headers: {
"Content-Type": "application/octet-stream",
"Accept": "*/*"
}
});
case 2:
res = _context.sent;
_context.t0 = setMonacoValue;
_context.next = 6;
return res.text();
case 6:
_context.t1 = _context.sent;
(0, _context.t0)(_context.t1);
setTimeout(function () {
setData(input_file_url);
}, 200);
// download(input_file_url, input)
case 9:
case "end":
return _context.stop();
}
}, _callee);
}))
// download={expected_output}
// target="_blank"
,
children: input
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
className: "c-red",
children: "\u5B9E\u9645\u8F93\u51FA\uFF1A"
}), !is_file && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
ref: outputRef
}), is_file && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: mdStyle,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
// href={output_file_url}
style: {
fontSize: '16px'
},
onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
var res;
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return (0,utils_fetch/* default */.ZP)(output_file_url, {
method: "Get",
headers: {
"Content-Type": "application/xml",
"Accept": "*/*"
}
});
case 2:
res = _context2.sent;
setMonacoValue(res);
setTimeout(function () {
setData(output_file_url);
}, 200);
// download(output_file_url, output)
case 5:
case "end":
return _context2.stop();
}
}, _callee2);
}))
// download={expected_output} target="_blank"
,
children: output
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
className: "c-red",
children: "\u9884\u671F\u8F93\u51FA\uFF1A"
}), !is_file && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
ref: expectedOutputRef
}), is_file && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: mdStyle,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
// href={expected_output_file_url}
style: {
fontSize: '16px'
},
onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
var res;
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return fetch(expected_output_file_url, {
method: "Get",
headers: {
"Content-Type": "application/octet-stream",
"Accept": "*/*"
}
});
case 2:
res = _context3.sent;
_context3.t0 = setMonacoValue;
_context3.next = 6;
return res.text();
case 6:
_context3.t1 = _context3.sent;
(0, _context3.t0)(_context3.t1);
setTimeout(function () {
setData(expected_output_file_url);
}, 200);
case 9:
case "end":
return _context3.stop();
}
}, _callee3);
}))
// download={expected_output} target="_blank"
,
children: expected_output
})
})]
});
break;
case MyProblem_interface/* ExecuteStatus */.h.EXECUTEFAILURE:
rs = /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
border: '1px #F6F7F9 solid'
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("p", {
style: {
width: '100%',
height: 40,
background: '#F6F7F9',
lineHeight: '40px',
color: "#666666",
paddingLeft: '12px'
},
children: "\u6700\u540E\u6267\u884C\u7684\u8F93\u5165\uFF1A"
}), !is_file && /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
value: input,
style: mdStyle
}), is_file && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: mdStyle,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
// href={input_file_url} style={{fontSize:'16px'}} target="_blank"
onClick: function onClick() {
return (0,util/* download */.LR)(input_file_url, input);
},
children: input
})
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
border: '1px #F6F7F9 solid',
marginTop: '10px'
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("p", {
style: {
width: '100%',
height: 40,
background: '#F6F7F9',
lineHeight: '40px',
color: "#666666",
paddingLeft: '12px'
},
children: "\u6267\u884C\u51FA\u9519\u4FE1\u606F\uFF1A"
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("pre", {
className: "error",
style: {
color: '#E30000',
padding: '0 10px'
},
children: [base64.Base64.decode(error_msg), "111"]
})]
})]
});
break;
case MyProblem_interface/* ExecuteStatus */.h.COMPILEFAILURE:
rs = /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("p", {
children: "\u6700\u540E\u6267\u884C\u7684\u8F93\u5165\uFF1A"
}), !is_file && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
ref: inputRef
}), is_file && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: mdStyle,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
// href={input_file_url} style={{fontSize:'16px'}} target="_blank"
onClick: function onClick() {
return (0,util/* download */.LR)(input_file_url, input);
},
children: input
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
children: "\u6267\u884C\u51FA\u9519\u4FE1\u606F\uFF1A"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("pre", {
className: "error",
children: base64.Base64.decode(error_msg)
})]
});
break;
case MyProblem_interface/* ExecuteStatus */.h.PODFAILURE:
rs = /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
children: "\u521B\u5EFApod\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"
});
break;
case MyProblem_interface/* ExecuteStatus */.h.TIMEOUT:
rs = /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
children: "\u8BC4\u6D4B\u8D85\u65F6\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"
});
break;
}
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [" ", rs, " "]
});
}
function getCommitOut(debugResult) {
var status = debugResult.status,
error_msg = debugResult.error_msg,
execute_time = debugResult.execute_time,
output = debugResult.output,
input = debugResult.input,
expected_output = debugResult.expected_output,
is_file = debugResult.is_file,
input_file_url = debugResult.input_file_url,
output_file_url = debugResult.output_file_url,
expected_output_file_url = debugResult.expected_output_file_url;
var rs = null;
switch (status) {
case MyProblem_interface/* ExecuteStatus */.h.OK:
rs = /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
children: ["\u6267\u884C\u7528\u65F6\uFF1A", execute_time / 1000, "\u79D2"]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
children: "\u6267\u884C\u7ED3\u679C\uFF1A"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("pre", {
children: base64.Base64.decode(output)
})]
});
break;
case MyProblem_interface/* ExecuteStatus */.h.NOMATCH:
rs = /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
children: ["\u8F93\u5165\uFF1A", /*#__PURE__*/(0,jsx_runtime.jsx)("pre", {
children: input
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
children: ["\u8F93\u51FA\uFF1A", output && base64.Base64.decode(output)]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
children: ["\u9884\u671F\u8F93\u51FA\uFF1A", expected_output && base64.Base64.decode(expected_output)]
})]
});
break;
case MyProblem_interface/* ExecuteStatus */.h.EXECUTEFAILURE:
rs = /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
children: ["\u6700\u540E\u6267\u884C\u7684\u8F93\u5165\uFF1A", /*#__PURE__*/(0,jsx_runtime.jsx)("pre", {
children: input
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
children: "\u6267\u884C\u51FA\u9519\u4FE1\u606F\uFF1A"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("pre", {
className: "error",
children: base64.Base64.decode(error_msg)
})]
});
break;
case MyProblem_interface/* ExecuteStatus */.h.COMPILEFAILURE:
rs = /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
children: ["\u6700\u540E\u6267\u884C\u7684\u8F93\u5165\uFF1A", /*#__PURE__*/(0,jsx_runtime.jsx)("pre", {
children: input
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
children: "\u6267\u884C\u51FA\u9519\u4FE1\u606F\uFF1A"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("pre", {
className: "error",
children: base64.Base64.decode(error_msg)
})]
});
break;
case MyProblem_interface/* ExecuteStatus */.h.PODFAILURE:
rs = /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
children: "\u521B\u5EFApod\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"
});
break;
case MyProblem_interface/* ExecuteStatus */.h.TIMEOUT:
rs = /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
children: "\u8BC4\u6D4B\u8D85\u65F6\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"
});
break;
}
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [" ", rs, " "]
});
}
/* harmony default export */ var TestCasePanel = (function (_ref4) {
var input = _ref4.input,
is_file = _ref4.is_file,
debuging = _ref4.debuging,
submitting = _ref4.submitting,
executingMessage = _ref4.executingMessage,
debugResult = _ref4.debugResult,
onChangeInput = _ref4.onChangeInput,
onDebugCode = _ref4.onDebugCode,
onSubmitCode = _ref4.onSubmitCode,
hack = _ref4.hack,
user = _ref4.user;
var _useReducer = (0,_react_17_0_2_react.useReducer)(Reducer, initialState),
_useReducer2 = slicedToArray_default()(_useReducer, 2),
state = _useReducer2[0],
dispatch = _useReducer2[1];
var visible = state.visible,
tabIndex = state.tabIndex;
var _useSearchParams = (0,_umi_production_exports.useSearchParams)(),
_useSearchParams2 = slicedToArray_default()(_useSearchParams, 1),
searchParams = _useSearchParams2[0];
function onTabIndexChange(e) {
var id = e.target.id;
dispatch({
type: Types.SET_TABINDEX,
payload: id
});
}
function onTriggerCollapse() {
dispatch({
type: Types.SET_VISIBLE,
payload: !visible
});
}
var executeResult = (0,_react_17_0_2_react.useMemo)(function () {
if (debugResult) {
var status = debugResult.status;
return /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
children: getCommitOut(debugResult)
});
}
return null;
}, [debugResult]);
function onDebug() {
if (!input || is_file) {
message/* default */.ZP.error("请输入自测用例");
dispatch({
type: Types.SET_VISIBLE,
payload: true
});
dispatch({
type: Types.SET_TABINDEX,
payload: '0'
});
return;
}
dispatch({
type: Types.SET_VISIBLE,
payload: true
});
dispatch({
type: Types.SET_TABINDEX,
payload: '1'
});
onDebugCode();
}
var skip = /*#__PURE__*/function () {
var _ref5 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4(text) {
var res;
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return (0,utils_fetch/* default */.ZP)("/api/problems/".concat(text, "/start.json"), {
method: 'get',
params: {
hack_user_id: user === null || user === void 0 ? void 0 : user.user_id
}
});
case 2:
res = _context4.sent;
if (res) {
window.location.href = "/myproblems/".concat(res === null || res === void 0 ? void 0 : res.identifier, "?type=1");
}
case 4:
case "end":
return _context4.stop();
}
}, _callee4);
}));
return function skip(_x) {
return _ref5.apply(this, arguments);
};
}();
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "test-case-panel",
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "test-case-panel-body ".concat(visible ? 'active' : ''),
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("ul", {
className: "s-navs",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
className: 'active',
children: "\u8C03\u8BD5\u4EE3\u7801\u7ED3\u679C"
})
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(TestResult/* default */.Z, {
leftTitle: "\u81EA\u5B9A\u4E49\u6D4B\u8BD5\u7528\u4F8B",
rightTitle: "\u4EE3\u7801\u6267\u884C\u7ED3\u679C",
style: {
height: 240
},
leftNode: /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {
placeholder: "\u8BF7\u8F93\u5165\u81EA\u6D4B\u7528\u4F8B\uFF08\u5982\u679C\u672A\u586B\u5199\uFF0C\u81EA\u6D4B\u8FD0\u884C\u65F6\uFF0C\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u586B\u5145\u7B2C\u4E00\u4E2A\u975E\u9690\u85CF\u7684\u6587\u672C\u7C7B\u578B\u7684\u6D4B\u8BD5\u7528\u4F8B\uFF09",
value: is_file ? '' : input,
onChange: onChangeInput
}),
rightNode: debuging ? /*#__PURE__*/(0,jsx_runtime.jsx)(Spinner/* default */.Z, {
message: '代码执行中...'
}) : debugResult ? executeResult : /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
style: {
color: '#536879'
},
children: "\u8BF7\u586B\u5199\u6D4B\u8BD5\u7528\u4F8B\u7684\u8F93\u5165\u503C\uFF0C\u70B9\u51FB\u201C\u8C03\u8BD5\u4EE3\u7801\u201D"
})
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
className: "btn-collapse ".concat(visible ? 'up' : ''),
onClick: onTriggerCollapse,
children: visible ? /*#__PURE__*/(0,jsx_runtime.jsx)(DownOutlined/* default */.Z, {}) : /*#__PURE__*/(0,jsx_runtime.jsx)(UpOutlined/* default */.Z, {})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("footer", {
className: "footer",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: "\u63A7\u5236\u53F0"
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "flex-container",
children: [(hack === null || hack === void 0 ? void 0 : hack.is_program) && (hack === null || hack === void 0 ? void 0 : hack.above_question) && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
onClick: function onClick() {
return skip(hack === null || hack === void 0 ? void 0 : hack.above_question);
},
id: "oj-prev",
className: "btn-blue",
type: "ghost",
children: "\u4E0A\u4E00\u9898"
}), (hack === null || hack === void 0 ? void 0 : hack.is_program) && (hack === null || hack === void 0 ? void 0 : hack.under_question) && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
onClick: function onClick() {
return skip(hack === null || hack === void 0 ? void 0 : hack.under_question);
},
id: "oj-next",
className: "btn-blue",
type: "ghost",
children: "\u4E0B\u4E00\u9898"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
className: "btn-green",
type: "ghost",
loading: debuging,
onClick: onDebug,
children: "\u8C03\u8BD5\u4EE3\u7801"
}), searchParams.get("qtype") !== '8' && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: "primary",
className: "custom-ant-disabled",
loading: submitting,
disabled: submitting,
onClick: function onClick() {
dispatch({
type: Types.SET_VISIBLE,
payload: false
});
// dispatch({
// type: Types.SET_TABINDEX,
// payload: '1'
// })
onSubmitCode();
},
children: "\u8BC4\u6D4B\u5E76\u63D0\u4EA4"
})]
})]
})]
});
});
/***/ }),
/***/ 35449:
/*!****************************************************!*\
!*** ./src/pages/MyProblem/index.tsx + 14 modules ***!
\****************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"default": function() { return /* binding */ MyProblem; }
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectWithoutProperties.js
var objectWithoutProperties = __webpack_require__(39647);
var objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js
var regeneratorRuntime = __webpack_require__(7557);
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(41498);
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(79800);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(82242);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.6@@ant-design/icons/es/icons/FormOutlined.js + 1 modules
var FormOutlined = __webpack_require__(25118);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.6@@ant-design/icons/es/icons/PoweroffOutlined.js + 1 modules
var PoweroffOutlined = __webpack_require__(65407);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 15 modules
var _umi_production_exports = __webpack_require__(32136);
// 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/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/button/index.js
var es_button = __webpack_require__(3113);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/select/index.js
var es_select = __webpack_require__(57809);
// EXTERNAL MODULE: ./src/pages/MyProblem/service.ts
var service = __webpack_require__(51867);
// EXTERNAL MODULE: ./src/service/exercise.ts
var exercise = __webpack_require__(63309);
// EXTERNAL MODULE: ./src/utils/fullscreen.ts
var fullscreen = __webpack_require__(67960);
// EXTERNAL MODULE: ./src/components/SplitContainer/index.tsx + 1 modules
var SplitContainer = __webpack_require__(53635);
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
var env = __webpack_require__(18765);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.6@@ant-design/icons/es/icons/ExclamationCircleOutlined.js + 1 modules
var ExclamationCircleOutlined = __webpack_require__(23717);
// EXTERNAL MODULE: ./src/pages/Problems/OjForm/CodePanel/index.tsx + 1 modules
var CodePanel = __webpack_require__(42120);
// EXTERNAL MODULE: ./src/pages/tasks/code-repository/action-bar/notice.gif
var notice = __webpack_require__(60141);
// EXTERNAL MODULE: ./node_modules/_js-base64@2.6.4@js-base64/base64.js
var base64 = __webpack_require__(24334);
// EXTERNAL MODULE: ./src/pages/Problems/OjForm/index.less?modules
var OjFormmodules = __webpack_require__(66152);
;// CONCATENATED MODULE: ./src/pages/MyProblem/index.less
// extracted by mini-css-extract-plugin
// EXTERNAL MODULE: ./src/pages/MyProblem/TestCasePanel/index.tsx + 1 modules
var TestCasePanel = __webpack_require__(2871);
;// CONCATENATED MODULE: ./src/pages/MyProblem/LeftPanel/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var LeftPanelmodules = ({"flex_box_center":"flex_box_center___rM3g8","flex_space_between":"flex_space_between___Oc7SE","flex_box_vertical_center":"flex_box_vertical_center___MnmYE","flex_box_center_end":"flex_box_center_end___QQh83","flex_box_column":"flex_box_column___ZRFbL","left-panel":"left-panel___SKGyd","tab-panel-body":"tab-panel-body___gABdv","b1":"b1___QpbmK","oj-width-input":"oj-width-input___eJQWT","oj-mr":"oj-mr___AxILO","s-navs":"s-navs___FXwOi","bg-white":"bg-white___kbZ6r","active":"active___QGOnZ","list":"list___PXTsq","btns":"btns___F8yZK","drawer":"drawer___xdGaT"});
;// CONCATENATED MODULE: ./src/pages/MyProblem/LeftPanel/SubmitList/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var SubmitListmodules = ({"pagination":"pagination___yDAjZ","info":"info___ATmsa","wrap":"wrap____KX19"});
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/table/index.js + 85 modules
var table = __webpack_require__(52306);
// 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/pagination/index.js + 10 modules
var pagination = __webpack_require__(88590);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.6@@ant-design/icons/es/icons/LoadingOutlined.js + 1 modules
var LoadingOutlined = __webpack_require__(93739);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.3.6@@ant-design/icons/es/icons/CopyOutlined.js + 1 modules
var CopyOutlined = __webpack_require__(60886);
// EXTERNAL MODULE: ./src/pages/MyProblem/interface.ts
var MyProblem_interface = __webpack_require__(75344);
// EXTERNAL MODULE: ./src/utils/util.tsx
var util = __webpack_require__(25644);
// EXTERNAL MODULE: ./src/components/PreviewAll/index.tsx + 1 modules
var PreviewAll = __webpack_require__(4443);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var utils_fetch = __webpack_require__(84087);
// EXTERNAL MODULE: ./node_modules/_xterm@4.8.1@xterm/lib/xterm.js
var xterm = __webpack_require__(34376);
// EXTERNAL MODULE: ./node_modules/_dayjs@1.11.10@dayjs/dayjs.min.js
var dayjs_min = __webpack_require__(9498);
var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/pages/MyProblem/LeftPanel/SubmitList/index.tsx
var Column = table/* default */.Z.Column;
/* harmony default export */ var SubmitList = (function (_ref) {
var submitResult = _ref.submitResult,
submitting = _ref.submitting,
submitRecords = _ref.submitRecords,
page = _ref.page,
onPageChange = _ref.onPageChange,
topicId = _ref.topicId;
var _ref2 = submitResult || {},
status = _ref2.status,
id = _ref2.id,
input = _ref2.input,
output = _ref2.output,
expected_output = _ref2.expected_output,
is_file = _ref2.is_file,
input_file_url = _ref2.input_file_url,
output_file_url = _ref2.output_file_url,
expected_output_file_url = _ref2.expected_output_file_url,
error_msg = _ref2.error_msg;
var outputRef = (0,_react_17_0_2_react.useRef)();
var inputRef = (0,_react_17_0_2_react.useRef)();
var openTerm = (0,_react_17_0_2_react.useRef)(false);
var errormsgRef = (0,_react_17_0_2_react.useRef)();
var expectedOutputRef = (0,_react_17_0_2_react.useRef)();
var term = (0,_react_17_0_2_react.useRef)(new xterm.Terminal({
fontSize: 14,
letterSpacing: 0,
cols: Math.floor(window.innerWidth * 0.4 / 9),
rows: 6
}));
var term2 = (0,_react_17_0_2_react.useRef)(new xterm.Terminal({
fontSize: 14,
letterSpacing: 0,
cols: Math.floor(window.innerWidth * 0.4 / 9),
rows: 6
}));
var term3 = (0,_react_17_0_2_react.useRef)(new xterm.Terminal({
fontSize: 14,
letterSpacing: 0,
cols: Math.floor(window.innerWidth * 0.4 / 9),
rows: 6
}));
var term4 = (0,_react_17_0_2_react.useRef)(new xterm.Terminal({
fontSize: 14,
letterSpacing: 0,
cols: Math.floor(window.innerWidth * 0.4 / 9),
rows: 6
}));
var ulRef = (0,_react_17_0_2_react.useRef)();
var _useSearchParams = (0,_umi_production_exports.useSearchParams)(),
_useSearchParams2 = slicedToArray_default()(_useSearchParams, 1),
searchParams = _useSearchParams2[0];
var _ref3 = submitRecords || {},
records = _ref3.records,
records_count = _ref3.records_count;
var _useState = (0,_react_17_0_2_react.useState)(""),
_useState2 = slicedToArray_default()(_useState, 2),
data = _useState2[0],
setData = _useState2[1];
var _useState3 = (0,_react_17_0_2_react.useState)(""),
_useState4 = slicedToArray_default()(_useState3, 2),
monacoValue = _useState4[0],
setMonacoValue = _useState4[1];
var location = (0,_umi_production_exports.useLocation)();
var isProgram = searchParams.get("type") === '1';
function onCopy() {
if (!is_file) {
navigator.clipboard.writeText(base64.Base64.decode(output)).then(function () {
message/* default */.ZP.success('复制错误信息成功');
});
} else {
navigator.clipboard.writeText(base64.Base64.decode(error_msg)).then(function () {
message/* default */.ZP.success('复制错误信息成功');
});
}
}
(0,_react_17_0_2_react.useEffect)(function () {
if (output && !is_file && status !== MyProblem_interface/* ExecuteStatus */.h.OK && id && outputRef.current) {
if (!openTerm.current) term.current.open(outputRef.current);
var actual_output_format = (0,util/* findEndWhitespace */.pp)(base64.Base64.decode(output)); //.replaceAll("\r\n","\x1b[41m\x1b[37m↵\x1b[0m\r\n").replaceAll("\n","\x1b[41m\x1b[37m↵\x1b[0m\r\n").replaceAll(" ",'\x1b[41m \x1b[0m')
term.current.reset();
term.current.write(actual_output_format);
// term.current.setOption('cols', Math.floor(ulRef.current.clientWidth / 14));
setTimeout(function () {
openTerm.current = true;
}, 100);
window.terms = term;
window.outputs = base64.Base64.decode(output);
term.current.setOption('theme', {
background: '#fafafa',
foreground: "#333"
});
}
if (input && !is_file && status !== MyProblem_interface/* ExecuteStatus */.h.OK && id && inputRef.current) {
if (!openTerm.current) term2.current.open(inputRef.current);
term2.current.reset();
term2.current.write((0,util/* findEndWhitespace */.pp)(input));
// term2.current.setOption('cols', Math.floor(ulRef.current.clientWidth / 14));
term2.current.setOption('theme', {
background: '#fafafa',
foreground: "#333"
});
}
if (expected_output && !is_file && status !== MyProblem_interface/* ExecuteStatus */.h.OK && id) {
if (!openTerm.current) term3.current.open(expectedOutputRef.current);
term3.current.reset();
term3.current.write((0,util/* findEndWhitespace */.pp)(base64.Base64.decode(expected_output)));
// term3.current.setOption('cols', Math.floor(ulRef.current.clientWidth / 14));
term3.current.setOption('theme', {
background: '#fafafa',
selection: "#fff",
foreground: "#333"
});
}
if (errormsgRef.current) {
if (!openTerm.current) term4.current.open(errormsgRef.current);
term4.current.write((0,util/* findEndWhitespace */.pp)(base64.Base64.decode(error_msg)));
term4.current.reset();
// term4.current.setOption('cols', Math.floor(ulRef.current.clientWidth / 14));
term4.current.setOption('theme', {
background: '#fafafa',
selection: "#fff",
foreground: "#333"
});
}
}, [output, error_msg, expected_output, input]);
return /*#__PURE__*/(0,jsx_runtime.jsxs)(spin/* default */.Z, {
spinning: submitting,
tip: "\u8BC4\u6D4B\u4E2D...",
indicator: /*#__PURE__*/(0,jsx_runtime.jsx)(LoadingOutlined/* default */.Z, {
style: {
fontSize: 24
},
spin: true
}),
children: [id ? /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: SubmitListmodules.wrap,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("ul", {
ref: ulRef,
className: SubmitListmodules.info,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
children: ["\u6267\u884C\u7ED3\u679C\uFF1A", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: status === MyProblem_interface/* ExecuteStatus */.h.OK ? 'c-green' : 'c-red',
children: TestCasePanel/* ExecuteDict */.Im[status]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
className: SubmitListmodules.error,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
onClick: onCopy,
children: ["\u590D\u5236\u9519\u8BEF\u4FE1\u606F ", /*#__PURE__*/(0,jsx_runtime.jsx)(CopyOutlined/* default */.Z, {}), ' ']
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(_umi_production_exports.Link, {
to: "/myproblems/".concat(topicId, "/record-detail/").concat(id),
children: ["\u663E\u793A\u8BE6\u60C5 >", ' ']
})
})]
}), status !== MyProblem_interface/* ExecuteStatus */.h.OK ? /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("p", {
className: "c-red",
children: "\u5B9E\u9645\u8F93\u5165\uFF1A"
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("pre", {
children: [!is_file && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
ref: inputRef
}), is_file && /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
// href={input_file_url}
style: {
fontSize: '16px'
},
onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var res;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return fetch(input_file_url, {
method: "Get",
headers: {
"Content-Type": "application/octet-stream",
"Accept": "*/*"
}
});
case 2:
res = _context.sent;
_context.t0 = setMonacoValue;
_context.next = 6;
return res.text();
case 6:
_context.t1 = _context.sent;
(0, _context.t0)(_context.t1);
setTimeout(function () {
setData(input_file_url);
}, 200);
// download(input_file_url, input)
case 9:
case "end":
return _context.stop();
}
}, _callee);
}))
// download={expected_output}
// target="_blank"
,
children: input
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
className: "c-red",
children: "\u5B9E\u9645\u8F93\u51FA\uFF1A"
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("pre", {
children: [(status === 4 || status === 5) && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
ref: errormsgRef
}), status != 4 && status != 5 && (is_file ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
// href={output_file_url}
style: {
fontSize: '16px'
},
onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
var res;
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return (0,utils_fetch/* default */.ZP)(output_file_url, {
method: "Get",
headers: {
"Content-Type": "application/xml",
"Accept": "*/*"
}
});
case 2:
res = _context2.sent;
try {
setMonacoValue(res);
} catch (e) {
setMonacoValue("");
}
setTimeout(function () {
setData(output_file_url);
}, 200);
// download(output_file_url, output)
case 5:
case "end":
return _context2.stop();
}
}, _callee2);
}))
// download={expected_output} target="_blank"
,
children: output
}) : /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
ref: outputRef
}))]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
className: "c-red",
children: "\u9884\u671F\u8F93\u51FA\uFF1A"
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("pre", {
children: [!is_file && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
ref: expectedOutputRef
}), is_file && /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
// href={expected_output_file_url}
style: {
fontSize: '16px'
},
onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
var res;
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return fetch(expected_output_file_url, {
method: "Get",
headers: {
"Content-Type": "application/octet-stream",
"Accept": "*/*"
}
});
case 2:
res = _context3.sent;
_context3.t0 = setMonacoValue;
_context3.next = 6;
return res.text();
case 6:
_context3.t1 = _context3.sent;
(0, _context3.t0)(_context3.t1);
setTimeout(function () {
setData(expected_output_file_url);
}, 200);
case 9:
case "end":
return _context3.stop();
}
}, _callee3);
}))
// download={expected_output} target="_blank"
,
children: expected_output
})]
})]
}) : null]
}) : null, (records === null || records === void 0 ? void 0 : records.length) > 0 ? /*#__PURE__*/(0,jsx_runtime.jsxs)(table/* default */.Z, {
dataSource: records,
rowKey: "id",
pagination: false,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(Column, {
title: "\u63D0\u4EA4\u65F6\u95F4",
dataIndex: "created_at",
render: function render(text, record) {
return /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
children: [" ", dayjs_min_default()(text).format('YYYY-MM-DD HH:mm:ss')]
});
}
}, "created_at"), /*#__PURE__*/(0,jsx_runtime.jsx)(Column, {
title: "\u63D0\u4EA4\u7ED3\u679C",
dataIndex: "status",
render: function render(text, record) {
var _ExecuteDict$text;
return /*#__PURE__*/(0,jsx_runtime.jsx)(_umi_production_exports.Link, {
className: text === 0 ? 'c-green' : 'c-red',
to: "/myproblems/".concat(topicId, "/record-detail/").concat(record.id),
children: (_ExecuteDict$text = TestCasePanel/* ExecuteDict */.Im[text]) === null || _ExecuteDict$text === void 0 ? void 0 : _ExecuteDict$text.replace('调试', '评测')
});
}
}, "status"), /*#__PURE__*/(0,jsx_runtime.jsx)(Column, {
title: "\u6267\u884C\u7528\u65F6 (".concat(isProgram ? 'MS' : 'S', ")"),
dataIndex: "execute_time",
render: function render(e) {
return e ? isProgram ? e : e / 1000 : '';
}
}, "execute_time"), /*#__PURE__*/(0,jsx_runtime.jsx)(Column, {
title: "\u5185\u5B58\u6D88\u8017\uFF08".concat(isProgram ? 'KB' : 'MB', "\uFF09"),
dataIndex: "execute_memory",
render: function render(e) {
return e ? isProgram ? e : parseFloat((e / 1024).toFixed(2)) : '';
}
}, "execute_memory"), /*#__PURE__*/(0,jsx_runtime.jsx)(Column, {
title: "\u8BED\u8A00",
dataIndex: "language"
}, "language"), /*#__PURE__*/(0,jsx_runtime.jsx)(Column, {
title: "\u64CD\u4F5C",
dataIndex: "status",
render: function render(text, record) {
return /*#__PURE__*/(0,jsx_runtime.jsx)(_umi_production_exports.Link, {
className: "c-light-primary",
to: "/myproblems/".concat(topicId, "/record-detail/").concat(record.id),
children: "\u67E5\u770B"
});
}
}, "status")]
}) : /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: {
height: 300,
width: '100%'
}
}), records_count > 15 ? /*#__PURE__*/(0,jsx_runtime.jsx)(pagination/* default */.Z, {
className: SubmitListmodules.pagination,
current: page,
pageSize: 15,
total: records_count,
onChange: onPageChange
}) : null, /*#__PURE__*/(0,jsx_runtime.jsx)(PreviewAll/* default */.Z, {
close: true,
data: data,
type: !!data.length ? "txt" : "",
onClose: function onClose() {
return setData("");
},
monacoEditor: {
value: monacoValue,
language: "txt",
onChange: function onChange() {},
options: {
fontSize: 14,
readOnly: true,
minimap: {
enabled: false
}
}
}
})]
});
});
// EXTERNAL MODULE: ./src/components/NoData/index.tsx
var NoData = __webpack_require__(69519);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tag/index.js + 5 modules
var tag = __webpack_require__(12563);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/space/index.js + 3 modules
var space = __webpack_require__(81327);
;// CONCATENATED MODULE: ./src/pages/MyProblem/LeftPanel/Description/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var Descriptionmodules = ({"desc":"desc___iOAgd","info":"info___GPALq","commit-info":"commit-info___Hk6Za"});
// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx
var RenderHtml = __webpack_require__(70159);
;// CONCATENATED MODULE: ./src/pages/MyProblem/LeftPanel/Description/index.tsx
var DifficultDesc = {
1: {
name: '简单',
color: '#52c41a'
},
2: {
name: '中等',
color: '#faad14'
},
3: {
name: '困难',
color: '#f5222d'
}
};
/* harmony default export */ var Description = (function (_ref) {
var hack = _ref.hack,
onTriggerPraise = _ref.onTriggerPraise,
toDiscuss = _ref.toDiscuss;
var language = hack.language,
difficult = hack.difficult,
time_limit = hack.time_limit,
username = hack.username,
user_path = hack.user_path,
user_praise = hack.user_praise,
comments_count = hack.comments_count,
praises_count = hack.praises_count,
description = hack.description,
pass_count = hack.pass_count,
submit_count = hack.submit_count;
var location = (0,_umi_production_exports.useLocation)();
var _useSearchParams = (0,_umi_production_exports.useSearchParams)(),
_useSearchParams2 = slicedToArray_default()(_useSearchParams, 1),
searchParams = _useSearchParams2[0];
var diffItem = DifficultDesc[difficult];
console.log('----description', hack);
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("ul", {
className: Descriptionmodules.info,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
children: ["\u7F16\u7A0B\u8BED\uFF1A", /*#__PURE__*/(0,jsx_runtime.jsx)("b", {
children: language
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
children: ["\u96BE\u5EA6\uFF1A", /*#__PURE__*/(0,jsx_runtime.jsx)(tag/* default */.Z, {
color: diffItem.color,
children: diffItem.name
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
children: ["\u5355\u4E2A\u6D4B\u8BD5\u96C6\u8BC4\u6D4B\u65F6\u957F\u9650\u5236\uFF1A", /*#__PURE__*/(0,jsx_runtime.jsxs)("b", {
children: [time_limit, "\u79D2"]
})]
})]
}), searchParams.get("qtype") === '8' ? /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
value: description,
showProgramFill: true,
className: Descriptionmodules.desc
}) : /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
value: description,
className: Descriptionmodules.desc
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("ul", {
className: Descriptionmodules['commit-info'],
children: [searchParams.get("type") === '1' || searchParams.get("type") === 'exercises' ? '' : /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(space/* default */.Z, {
size: 4,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: "\u901A\u8FC7\u6B21\u6570"
}), " ", /*#__PURE__*/(0,jsx_runtime.jsx)("b", {
children: pass_count
})]
})
}), searchParams.get("type") === '1' || searchParams.get("type") === 'exercises' ? '' : /*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(space/* default */.Z, {
size: 4,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: "\u63D0\u4EA4\u6B21\u6570"
}), " ", /*#__PURE__*/(0,jsx_runtime.jsx)("b", {
children: submit_count
})]
}), " "]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
style: {
flex: '1 0 0'
}
}), searchParams.get("type") !== 'exercises' && /*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(space/* default */.Z, {
size: 4,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-huifu1",
onClick: toDiscuss
}), " ", /*#__PURE__*/(0,jsx_runtime.jsx)("b", {
children: comments_count
})]
}), " "]
})]
})]
});
});
// EXTERNAL MODULE: ./src/components/mediator.js
var mediator = __webpack_require__(25977);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/toConsumableArray.js
var toConsumableArray = __webpack_require__(37205);
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
// EXTERNAL MODULE: ./src/components/modal.tsx
var components_modal = __webpack_require__(31998);
;// CONCATENATED MODULE: ./src/pages/MyProblem/LeftPanel/Discuss/index.less
// extracted by mini-css-extract-plugin
;// CONCATENATED MODULE: ./src/pages/MyProblem/LeftPanel/Discuss/service.ts
function getComments(id, page) {
return (0,utils_fetch/* get */.U2)("/problems/".concat(id, "/comments.json"), {
page: page,
limit: 10
});
}
function plusDiscuss(id) {
return (0,utils_fetch/* post */.v_)("/discusses/".concat(id, "/plus.json"), {
container_type: "Discuss",
type: 1
});
}
function replyDiscuss(identifier, id, value) {
return (0,utils_fetch/* post */.v_)("/problems/".concat(identifier, "/comments/reply.json"), {
comments: {
content: value,
parent_id: id
}
});
}
function createDiscuss(identifier, value) {
return (0,utils_fetch/* post */.v_)("/problems/".concat(identifier, "/comments.json"), {
comments: {
content: value
}
});
}
function hiddenDiscuss(identifier, id, params) {
return (0,utils_fetch/* post */.v_)("/problems/".concat(identifier, "/comments/").concat(id, "/hidden.json"), params);
}
function deleteDiscuss(identifier, id) {
return (0,utils_fetch/* del */.IV)("/problems/".concat(identifier, "/comments/").concat(id));
}
;// CONCATENATED MODULE: ./src/pages/MyProblem/LeftPanel/Discuss/discuss-item/index.less
// extracted by mini-css-extract-plugin
// EXTERNAL MODULE: ./src/pages/tasks/left-panel/discuss/discuss-editor/index.tsx + 1 modules
var discuss_editor = __webpack_require__(99679);
;// CONCATENATED MODULE: ./src/pages/MyProblem/LeftPanel/Discuss/discuss-item/index.tsx
function UserPhoto(_ref) {
var author = _ref.author;
return /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
href: "/users/".concat(author.login),
target: "_blank",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
alt: "\u7528\u6237\u5934\u50CF",
height: "50",
style: {
borderRadius: '50%'
},
src: "".concat(env/* default */.Z.IMG_SERVER, "/images/").concat(author.image_url),
width: "50"
})
});
}
function SecondLevelDiscuss(_ref2) {
var data = _ref2.data,
index = _ref2.index,
parentDiscussIndex = _ref2.parentDiscussIndex,
user = _ref2.user,
onSetActionType = _ref2.onSetActionType;
var author = data.author,
can_delete = data.can_delete,
content = data.content,
id = data.id,
time = data.time;
function onDeleteDiscuss() {
onSetActionType({
id: id,
index: index,
type: 'delete-discuss',
parentDiscussIndex: parentDiscussIndex,
message: '确定要删除该条回复吗'
});
}
var canDelete = user.admin || can_delete || author.user_id === user.user_id;
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "discuss-item-container second-discuss ",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(UserPhoto, {
author: author
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "discuss-info",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("a", {
href: "/users/".concat(author.login),
target: "_blank",
children: author.name
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "grey",
children: time
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: "btn-group",
style: {
marginBottom: 0
},
children: canDelete ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
onClick: onDeleteDiscuss,
title: "\u5220\u9664",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-shanchu"
})
}) : null
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
className: "discuss-content",
value: content
})]
})]
});
}
/* harmony default export */ var discuss_item = (function (_ref3) {
var user = _ref3.user,
data = _ref3.data,
index = _ref3.index,
onPlusDiscuss = _ref3.onPlusDiscuss,
onSetActionType = _ref3.onSetActionType,
activeDiscussIndex = _ref3.activeDiscussIndex,
onReplyDiscuss = _ref3.onReplyDiscuss,
onSetActiveDiscussIndex = _ref3.onSetActiveDiscussIndex;
var content = data.content,
children = data.children,
hidden = data.hidden,
id = data.id,
praise_count = data.praise_count,
time = data.time,
user_praise = data.user_praise,
can_delete = data.can_delete,
author = data.author;
function onActiveDiscussIndex() {
onSetActiveDiscussIndex(id);
}
function onPlus() {
onPlusDiscuss(id, !user_praise, index);
}
function onDeleteDiscuss() {
onSetActionType({
id: id,
index: index,
type: 'delete-discuss',
message: '确定要删除该条回复吗'
});
}
function onHiddenDiscuss() {
onSetActionType({
id: id,
index: index,
params: {
hidden: !hidden ? '1' : '0'
},
type: 'hidden-discuss',
message: !hidden ? '确定要隐藏该条回复吗' : '确定要取消隐藏该条回复吗'
});
}
var adminOrOperator = user.admin || user.user_id === author.user_id;
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "discuss-item-container",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(UserPhoto, {
author: author
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "discuss-info",
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
href: "/users/".concat(author.login),
target: "_blank",
children: [" ", author.name, " "]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "grey",
children: time
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
className: "discuss-content",
value: content
}), children && children.length > 0 ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: "reply-discuss-container",
children: children.map(function (item, i) {
return /*#__PURE__*/(0,jsx_runtime.jsx)(SecondLevelDiscuss, {
data: item,
index: i,
user: user,
onSetActionType: onSetActionType,
parentDiscussIndex: index
}, item.id);
})
}) : null, /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "btn-group",
children: [adminOrOperator ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
onClick: onHiddenDiscuss,
title: hidden ? '取消隐藏' : '隐藏评论',
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: hidden ? 'iconfont icon-yincangbiyan' : 'fa fa-eye'
})
}) : null, can_delete && (!children || children.length == 0) ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
onClick: onDeleteDiscuss,
title: "\u5220\u9664",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-shanchu"
})
}) : null, /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
onClick: onActiveDiscussIndex,
title: "\u56DE\u590D",
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-huifu1"
}), " "]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
onClick: onPlus,
className: user_praise ? 'c-orange' : '',
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: user_praise ? 'iconfont icon-dianzan mr3' : 'iconfont icon-dianzan-xian mr3 '
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: praise_count ? praise_count : ''
})]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(discuss_editor/* default */.Z, {
id: id,
activeDiscussIndex: activeDiscussIndex,
onReplyDiscuss: onReplyDiscuss
})]
})]
}, id);
});
// EXTERNAL MODULE: ./src/components/image-preview/index.tsx + 1 modules
var image_preview = __webpack_require__(18343);
;// CONCATENATED MODULE: ./src/pages/MyProblem/LeftPanel/Discuss/discuss-input-editor/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var discuss_input_editormodules = ({"dis-input-editor-container":"dis-input-editor-container___nKGxx","active":"active___tmt7T","input-mask":"input-mask___epEle","text-area":"text-area___Vry8W","tip-container":"tip-container___plpA3","hide":"hide___kPfyC","md-container":"md-container___u85aq","btn-send":"btn-send___deQ5v"});
// EXTERNAL MODULE: ./src/components/markdown-editor/index.tsx + 15 modules
var markdown_editor = __webpack_require__(39987);
;// CONCATENATED MODULE: ./src/pages/MyProblem/LeftPanel/Discuss/discuss-input-editor/index.tsx
/* harmony default export */ var discuss_input_editor = (function (_ref) {
var user_praise = _ref.user_praise,
praise_count = _ref.praise_count,
praisePlus = _ref.praisePlus,
onCreateDiscuss = _ref.onCreateDiscuss,
discuss_count = _ref.discuss_count;
var _useState = (0,_react_17_0_2_react.useState)(false),
_useState2 = slicedToArray_default()(_useState, 2),
showMd = _useState2[0],
setShowMd = _useState2[1];
var _useState3 = (0,_react_17_0_2_react.useState)(''),
_useState4 = slicedToArray_default()(_useState3, 2),
value = _useState4[0],
setValue = _useState4[1];
function onChangeHandler(v) {
setValue(v);
}
function onShowMd() {
setShowMd(true);
}
function onCancel() {
setShowMd(false);
}
function onCommit() {
return _onCommit.apply(this, arguments);
}
function _onCommit() {
_onCommit = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
onCreateDiscuss(value);
setValue('');
setShowMd(false);
case 3:
case "end":
return _context.stop();
}
}, _callee);
}));
return _onCommit.apply(this, arguments);
}
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "".concat(discuss_input_editormodules['dis-input-editor-container'], " ").concat(showMd ? discuss_input_editormodules.active : '', " "),
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: showMd ? "hide ".concat(discuss_input_editormodules['text-area']) : discuss_input_editormodules['text-area'],
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("input", {
placeholder: "\u8BF4\u70B9\u4EC0\u4E48",
onClick: onShowMd
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-huifu1"
}), " \xA0 \xA0", discuss_count, " "]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
className: "c-light-black",
onClick: praisePlus,
title: user_praise ? '取消点赞' : '点赞',
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "mr3 ".concat(user_praise ? 'iconfont icon-dianzan c-orange' : 'iconfont icon-dianzan-xian', " ")
}), praise_count ? /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: praise_count
}) : '']
})]
}), showMd ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: discuss_input_editormodules['input-mask'],
onClick: onCancel
}) : null, /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: showMd ? discuss_input_editormodules['md-container'] : "".concat(discuss_input_editormodules['md-container'], " hide"),
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor/* default */.Z, {
id: "discuss-input-editor",
miniToolbar: true,
watch: false,
noStorage: true,
defaultValue: value,
height: 240,
onChange: onChangeHandler
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: discuss_input_editormodules['tip-container'],
onClick: onCancel,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
className: discuss_input_editormodules['btn-send'],
onClick: onCommit,
children: " \u53D1\u9001 "
})
})]
})]
});
});
;// CONCATENATED MODULE: ./src/pages/MyProblem/LeftPanel/Discuss/index.tsx
var initialState = {
loading: false,
page: 1,
data: [],
count: 0,
actionType: null,
activeDiscussIndex: null
};
var Types = /*#__PURE__*/function (Types) {
Types[Types["GET_DISCUSSES"] = 0] = "GET_DISCUSSES";
Types[Types["TOP_OR_DOWN_DISCUSS"] = 1] = "TOP_OR_DOWN_DISCUSS";
Types[Types["ACTIVE_DISCUSS_INDEX"] = 2] = "ACTIVE_DISCUSS_INDEX";
Types[Types["PLUS_DISCUSS"] = 3] = "PLUS_DISCUSS";
Types[Types["SET_ACTION_TYPE"] = 4] = "SET_ACTION_TYPE";
Types[Types["SET_PAGE"] = 5] = "SET_PAGE";
Types[Types["SHOW_DISCUSSES_LOADING"] = 6] = "SHOW_DISCUSSES_LOADING";
return Types;
}(Types || {});
function reducer(state, action) {
switch (action.type) {
case Types.SHOW_DISCUSSES_LOADING:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
loading: true
});
case Types.GET_DISCUSSES:
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
case Types.TOP_OR_DOWN_DISCUSS:
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
case Types.SET_ACTION_TYPE:
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
case Types.PLUS_DISCUSS:
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
case Types.SET_PAGE:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
page: action.payload
});
case Types.ACTIVE_DISCUSS_INDEX:
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
default:
throw new Error();
}
}
/* harmony default export */ var Discuss = (function (_ref) {
var user = _ref.user,
identifier = _ref.identifier,
hack = _ref.hack,
onTriggerPraise = _ref.onTriggerPraise;
var _useReducer = (0,_react_17_0_2_react.useReducer)(reducer, initialState),
_useReducer2 = slicedToArray_default()(_useReducer, 2),
state = _useReducer2[0],
dispatch = _useReducer2[1];
var loading = state.loading,
page = state.page,
data = state.data,
count = state.count,
actionType = state.actionType,
activeDiscussIndex = state.activeDiscussIndex;
var initData = (0,_react_17_0_2_react.useCallback)( /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var response, comments, disscuss_count;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
dispatch({
type: Types.SHOW_DISCUSSES_LOADING
});
_context.next = 3;
return getComments(identifier, page);
case 3:
response = _context.sent;
comments = response.comments, disscuss_count = response.disscuss_count;
dispatch({
type: Types.GET_DISCUSSES,
payload: {
data: comments,
count: disscuss_count,
loading: false
}
});
case 6:
case "end":
return _context.stop();
}
}, _callee);
})), [page, identifier]);
(0,_react_17_0_2_react.useEffect)(function () {
initData();
}, [identifier, page]);
function onPaginationChange(value) {
dispatch({
type: Types.SET_PAGE,
payload: value
});
}
function onSetActionType(value) {
dispatch({
type: Types.SET_ACTION_TYPE,
payload: {
actionType: value
}
});
}
function onSetActiveDiscussIndex(value) {
if (activeDiscussIndex === value) {
dispatch({
type: Types.ACTIVE_DISCUSS_INDEX,
payload: {
activeDiscussIndex: null
}
});
} else {
dispatch({
type: Types.ACTIVE_DISCUSS_INDEX,
payload: {
activeDiscussIndex: value
}
});
}
}
function onPlusDiscuss(_x, _x2, _x3) {
return _onPlusDiscuss.apply(this, arguments);
}
function _onPlusDiscuss() {
_onPlusDiscuss = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(id, user_praise, index) {
var response;
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
_context2.next = 3;
return plusDiscuss(id);
case 3:
response = _context2.sent;
data[index].user_praise = user_praise;
data[index].praise_count = response.praise_count;
dispatch({
type: Types.PLUS_DISCUSS,
payload: {
data: toConsumableArray_default()(data)
}
});
_context2.next = 12;
break;
case 9:
_context2.prev = 9;
_context2.t0 = _context2["catch"](0);
console.log(_context2.t0);
case 12:
case "end":
return _context2.stop();
}
}, _callee2, null, [[0, 9]]);
}));
return _onPlusDiscuss.apply(this, arguments);
}
function onProcessAction() {
return _onProcessAction.apply(this, arguments);
}
function _onProcessAction() {
_onProcessAction = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
var id, params, type, index, parentDiscussIndex, secondDicusses, i, _i;
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
id = actionType.id, params = actionType.params, type = actionType.type, index = actionType.index, parentDiscussIndex = actionType.parentDiscussIndex;
if (!(type === 'hidden-discuss')) {
_context3.next = 6;
break;
}
_context3.next = 4;
return hiddenDiscuss(identifier, id, params);
case 4:
if (!parentDiscussIndex) {
data[index].hidden = params.hidden == 1 ? true : false;
} else {
data[parentDiscussIndex].children[index].hidden = params.hidden == 1 ? true : false;
}
dispatch({
type: Types.SET_ACTION_TYPE,
payload: {
actionType: null,
data: toConsumableArray_default()(data)
}
});
case 6:
if (!(type === 'delete-discuss')) {
_context3.next = 31;
break;
}
_context3.next = 9;
return deleteDiscuss(identifier, id);
case 9:
if (!(parentDiscussIndex || parentDiscussIndex === 0)) {
_context3.next = 22;
break;
}
secondDicusses = data[parentDiscussIndex].children;
i = secondDicusses.length - 1;
case 12:
if (!(i >= 0)) {
_context3.next = 19;
break;
}
if (!(secondDicusses[i].id === id)) {
_context3.next = 16;
break;
}
secondDicusses.splice(i, 1);
return _context3.abrupt("break", 19);
case 16:
i--;
_context3.next = 12;
break;
case 19:
data[parentDiscussIndex].children = secondDicusses;
_context3.next = 30;
break;
case 22:
_i = data.length - 1;
case 23:
if (!(_i >= 0)) {
_context3.next = 30;
break;
}
if (!(data[_i].id === id)) {
_context3.next = 27;
break;
}
data.splice(_i, 1);
return _context3.abrupt("break", 30);
case 27:
_i--;
_context3.next = 23;
break;
case 30:
dispatch({
type: Types.SET_ACTION_TYPE,
payload: {
actionType: null,
data: toConsumableArray_default()(data)
}
});
case 31:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return _onProcessAction.apply(this, arguments);
}
function onCancelAction() {
dispatch({
type: Types.SET_ACTION_TYPE,
payload: {
actionType: null
}
});
}
function onReplyDiscuss(_x4, _x5) {
return _onReplyDiscuss.apply(this, arguments);
}
function _onReplyDiscuss() {
_onReplyDiscuss = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4(id, value) {
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
_context4.prev = 0;
_context4.next = 3;
return replyDiscuss(identifier, id, value);
case 3:
initData();
_context4.next = 9;
break;
case 6:
_context4.prev = 6;
_context4.t0 = _context4["catch"](0);
console.log(_context4.t0);
case 9:
case "end":
return _context4.stop();
}
}, _callee4, null, [[0, 6]]);
}));
return _onReplyDiscuss.apply(this, arguments);
}
function onCreateDiscuss(_x6) {
return _onCreateDiscuss.apply(this, arguments);
}
function _onCreateDiscuss() {
_onCreateDiscuss = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5(value) {
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
while (1) switch (_context5.prev = _context5.next) {
case 0:
dispatch({
type: Types.SHOW_DISCUSSES_LOADING
});
_context5.next = 3;
return createDiscuss(identifier, value);
case 3:
initData();
case 4:
case "end":
return _context5.stop();
}
}, _callee5);
}));
return _onCreateDiscuss.apply(this, arguments);
}
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "discuss-panel",
children: [data.length === 0 ? /*#__PURE__*/(0,jsx_runtime.jsx)(NoData/* default */.Z, {}) : data.map(function (item, index) {
return /*#__PURE__*/(0,jsx_runtime.jsx)(discuss_item, {
onReplyDiscuss: onReplyDiscuss,
onPlusDiscuss: onPlusDiscuss,
onSetActiveDiscussIndex: onSetActiveDiscussIndex,
onSetActionType: onSetActionType,
data: item,
index: index,
user: user,
activeDiscussIndex: activeDiscussIndex
});
}), count > 10 ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: "pagination-container",
children: /*#__PURE__*/(0,jsx_runtime.jsx)(pagination/* default */.Z, {
showQuickJumper: true,
onChange: onPaginationChange,
current: page,
total: count
})
}) : null]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(discuss_input_editor, {
user_praise: hack.user_praise,
praise_count: hack.praises_count,
praisePlus: onTriggerPraise,
discuss_count: hack.comments_count,
onCreateDiscuss: onCreateDiscuss
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(components_modal/* default */.Z, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
centered: true,
title: "\u63D0\u793A",
open: !!actionType,
onOk: onProcessAction,
onCancel: onCancelAction,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
children: actionType ? actionType.message : ''
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(image_preview/* default */.Z, {})]
})]
});
});
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/drawer/index.js + 9 modules
var drawer = __webpack_require__(43428);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 5 modules
var input = __webpack_require__(8772);
;// CONCATENATED MODULE: ./src/pages/MyProblem/LeftPanel/index.tsx
var difficultyMapping = {
1: "简单",
2: "适中",
3: "困难"
};
var difficultyMappingcolor = {
1: "#2fa34f",
2: "#0152d9",
3: "#fa6400"
};
/* harmony default export */ var LeftPanel = (function (_ref) {
var _datas$data;
var hack = _ref.hack,
onTriggerPraise = _ref.onTriggerPraise,
topicId = _ref.topicId,
page = _ref.page,
onPageChange = _ref.onPageChange,
user = _ref.user,
submitRecords = _ref.submitRecords,
submitting = _ref.submitting,
submitResult = _ref.submitResult;
var _useSearchParams = (0,_umi_production_exports.useSearchParams)(),
_useSearchParams2 = slicedToArray_default()(_useSearchParams, 1),
searchParams = _useSearchParams2[0];
var _useState = (0,_react_17_0_2_react.useState)('0'),
_useState2 = slicedToArray_default()(_useState, 2),
index = _useState2[0],
setIndex = _useState2[1];
var location = (0,_umi_production_exports.useLocation)();
var _useState3 = (0,_react_17_0_2_react.useState)(false),
_useState4 = slicedToArray_default()(_useState3, 2),
isopen = _useState4[0],
setisopen = _useState4[1];
var _useState5 = (0,_react_17_0_2_react.useState)([]),
_useState6 = slicedToArray_default()(_useState5, 2),
datas = _useState6[0],
setdatas = _useState6[1];
var _useState7 = (0,_react_17_0_2_react.useState)(objectSpread2_default()(objectSpread2_default()({}, (0,_umi_production_exports.useParams)()), {}, {
page: 1,
per_page: 20,
name: ''
})),
_useState8 = slicedToArray_default()(_useState7, 2),
params = _useState8[0],
setparams = _useState8[1];
// const params=useParams();
function onTabIndexChange(e) {
var id = e.target.id;
setIndex(id);
}
(0,_react_17_0_2_react.useEffect)(function () {
var unSub = mediator/* default */.Z.subscribe('to-commit-info', function () {
setIndex('1');
});
return unSub;
}, []);
function toDiscuss() {
setIndex('2');
}
function getdatas() {
return _getdatas.apply(this, arguments);
}
function _getdatas() {
_getdatas = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
var res;
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return (0,utils_fetch/* default */.ZP)("/api/problems/my_hack_list.json", {
method: 'get',
params: objectSpread2_default()({
identifier: params === null || params === void 0 ? void 0 : params.id
}, params)
});
case 2:
res = _context2.sent;
setdatas(res);
case 4:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return _getdatas.apply(this, arguments);
}
console.log(submitRecords, 'submitRecords');
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: LeftPanelmodules["left-panel"],
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("ul", {
className: "".concat(LeftPanelmodules["s-navs"], " ").concat(LeftPanelmodules["bg-white"], " ").concat(LeftPanelmodules.b1),
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
className: index === '0' ? LeftPanelmodules.active : '',
id: "0",
onClick: onTabIndexChange,
children: "\u4EFB\u52A1\u63CF\u8FF0"
})
}), searchParams.get("qtype") !== '8' && /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
className: index === '1' ? LeftPanelmodules.active : '',
id: "1",
onClick: onTabIndexChange,
children: "\u63D0\u4EA4\u8BB0\u5F55"
})
}), searchParams.get("type") !== 'exercises' && /*#__PURE__*/(0,jsx_runtime.jsx)("li", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
className: index === '2' ? LeftPanelmodules.active : '',
id: "2",
onClick: onTabIndexChange,
children: "\u8BC4\u8BBA"
})
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: "".concat(LeftPanelmodules["tab-panel-body"], " ").concat(index === '0' ? '' : 'hide'),
children: /*#__PURE__*/(0,jsx_runtime.jsx)(Description, {
hack: hack,
onTriggerPraise: onTriggerPraise,
toDiscuss: toDiscuss
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: {
padding: '0 12px'
},
className: "".concat(LeftPanelmodules["tab-panel-body"], " ").concat(index === '1' ? '' : 'hide'),
children: !!(submitRecords !== null && submitRecords !== void 0 && submitRecords.records_count) || submitting ? /*#__PURE__*/(0,jsx_runtime.jsx)(SubmitList, {
page: page,
onPageChange: onPageChange,
topicId: topicId,
submitting: submitting,
submitRecords: submitRecords,
submitResult: submitResult
}, (submitResult === null || submitResult === void 0 ? void 0 : submitResult.id) || 1) : /*#__PURE__*/(0,jsx_runtime.jsx)(NoData/* default */.Z, {})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: "".concat(LeftPanelmodules["tab-panel-body"], " ").concat(index === '2' ? '' : 'hide'),
style: {
padding: 0
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)(Discuss, {
user: user,
identifier: hack.identifier,
hack: hack,
onTriggerPraise: onTriggerPraise
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(drawer/* default */.Z, {
rootClassName: LeftPanelmodules.drawer,
headerStyle: {
background: '#000',
border: 0
},
closable: false,
title: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
display: 'flex',
alignItems: 'center'
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: {
color: '#fff'
},
children: "\u9898\u76EE\u5217\u8868"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z.Search, {
onSearch: function onSearch(e) {
params.name = e;
params.page = 1;
setparams(objectSpread2_default()({}, params));
getdatas();
},
style: {
width: 180,
margin: '0px 20px',
marginLeft: 'auto'
},
placeholder: "\u8BF7\u8F93\u5165\u9898\u76EE\u540D\u79F0\u641C\u7D22"
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_select["default"], {
style: {
width: 100
},
placeholder: "\u8BF7\u9009\u62E9\u96BE\u5EA6",
onChange: function onChange(e) {
params.page = 1;
params.difficult = e ? e : null;
setparams(objectSpread2_default()({}, params));
getdatas();
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"].Option, {
value: 0,
children: "\u5168\u90E8"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"].Option, {
value: 1,
children: "\u7B80\u5355"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"].Option, {
value: 2,
children: "\u9002\u4E2D"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"].Option, {
value: 3,
children: "\u56F0\u96BE"
})]
})]
}),
bodyStyle: {
background: '#0f1e31',
padding: '20px 0px'
},
footerStyle: {
background: '#0f1e31',
border: 0,
textAlign: 'center'
},
footer: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(pagination/* default */.Z, {
current: params.page,
className: "mt10 mb10",
hideOnSinglePage: true,
total: datas === null || datas === void 0 ? void 0 : datas.count,
pageSize: params.per_page,
onChange: function onChange(page, perpage) {
params.page = page;
params.per_page = perpage;
getdatas();
}
})
}),
width: 530,
placement: "left",
onClose: function onClose() {
return setisopen(false);
},
open: isopen,
children: datas === null || datas === void 0 || (_datas$data = datas.data) === null || _datas$data === void 0 ? void 0 : _datas$data.map(function (item, index) {
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var res;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return (0,utils_fetch/* default */.ZP)("/api/problems/".concat(item === null || item === void 0 ? void 0 : item.identifier, "/start.json"), {
method: 'get',
params: {
hack_user_id: user === null || user === void 0 ? void 0 : user.user_id
}
});
case 2:
res = _context.sent;
if (res) {
_umi_production_exports.history.replace("/myproblems/".concat(res === null || res === void 0 ? void 0 : res.identifier, "?type=1"));
window.location.reload();
// localStorage.setItem('program_homework',[params.coursesId,params.categoryId])
}
case 4:
case "end":
return _context.stop();
}
}, _callee);
})),
className: "".concat(LeftPanelmodules.list, " ").concat(item !== null && item !== void 0 && item.checked ? LeftPanelmodules.active : ''),
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
children: [(item === null || item === void 0 ? void 0 : item.opened) && (item === null || item === void 0 ? void 0 : item.passed) && /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-wancheng1 c-green-29b"
}), (item === null || item === void 0 ? void 0 : item.opened) && !(item !== null && item !== void 0 && item.passed) && /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-cuowu c-red"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: {
color: 'rgb(186, 196, 205)',
fontWeight: 400,
fontSize: 14,
marginLeft: 10
},
children: item.name
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: {
color: difficultyMappingcolor[item.difficult]
},
children: difficultyMapping[item.difficult]
})]
});
})
}), (hack === null || hack === void 0 ? void 0 : hack.is_program) && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
onClick: function onClick() {
getdatas();
setisopen(true);
},
className: LeftPanelmodules.btns,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-timuliebiao"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: "\u9898\u76EE\u5217\u8868"
})]
})]
});
});
// EXTERNAL MODULE: ./src/assets/images/question/internal.png
var internal = __webpack_require__(62522);
// EXTERNAL MODULE: ./src/components/Exercise/ip.tsx
var Exercise_ip = __webpack_require__(16674);
// EXTERNAL MODULE: ./src/components/Timepiece/index.tsx
var Timepiece = __webpack_require__(61446);
// EXTERNAL MODULE: ./src/pages/Classrooms/Lists/Exercise/components/Unlock.tsx
var Unlock = __webpack_require__(46904);
// EXTERNAL MODULE: ./src/utils/hooks/useRemindModal.tsx
var useRemindModal = __webpack_require__(25114);
// EXTERNAL MODULE: ./src/components/Exercise/recordScreen.tsx + 3 modules
var recordScreen = __webpack_require__(14081);
// EXTERNAL MODULE: ./src/components/Hooks/index.tsx
var Hooks = __webpack_require__(21297);
// EXTERNAL MODULE: ./src/assets/images/question/time.svg
var time = __webpack_require__(8738);
// EXTERNAL MODULE: ./src/assets/images/question/title.svg
var title = __webpack_require__(93602);
;// CONCATENATED MODULE: ./src/pages/MyProblem/index.tsx
var _excluded = ["input", "is_file", "showNote", "onShowNote", "notes", "onCancelNote", "onAddNote", "debugResult", "language", "debuging", "submitting", "executingMessage", "code", "onSubmitCode", "onDebugCode", "onChangeCode", "onChangeInput", "onUpdateCode", "user", "isLoading"];
var Countdown = statistic/* default */.Z.Countdown;
var LanguageSuf = {
'Java': 'java',
'C': 'c',
'Python': 'py',
'C++': 'c'
};
var MyProblem_Types = /*#__PURE__*/function (Types) {
Types[Types["SET_LOADING"] = 0] = "SET_LOADING";
Types[Types["GET_DATA"] = 1] = "GET_DATA";
Types[Types["GET_SUBMIT_RECORDS"] = 2] = "GET_SUBMIT_RECORDS";
Types[Types["SET_DATA"] = 3] = "SET_DATA";
Types[Types["SET_DEBUGING"] = 4] = "SET_DEBUGING";
Types[Types["SET_SUBMITING"] = 5] = "SET_SUBMITING";
Types[Types["SET_EXECUTE_MESSAGE"] = 6] = "SET_EXECUTE_MESSAGE";
Types[Types["SET_EXECUTE_RESULT"] = 7] = "SET_EXECUTE_RESULT";
Types[Types["SET_SUBMIT_RESULT"] = 8] = "SET_SUBMIT_RESULT";
Types[Types["SET_SHOW_NOTE"] = 9] = "SET_SHOW_NOTE";
Types[Types["SET_PAGE"] = 10] = "SET_PAGE";
return Types;
}(MyProblem_Types || {});
function getTimeStamp() {
return new Date().getTime();
}
var initalilState = {
loading: true,
data: undefined,
showNote: false,
debugResult: undefined,
submitResult: undefined,
debuging: false,
submitting: false,
submitRecords: undefined,
submitRecordPage: 1,
executingMessage: ''
};
function MyProblem_reducer(state, action) {
switch (action.type) {
case MyProblem_Types.GET_DATA:
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
case MyProblem_Types.SET_DATA:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
data: action.payload
});
case MyProblem_Types.SET_LOADING:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
loading: action.payload
});
case MyProblem_Types.SET_SHOW_NOTE:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
showNote: action.payload
});
case MyProblem_Types.SET_DEBUGING:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
debuging: action.payload
});
case MyProblem_Types.SET_SUBMITING:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
submitting: action.payload
});
case MyProblem_Types.GET_SUBMIT_RECORDS:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
submitRecords: action.payload
});
case MyProblem_Types.SET_PAGE:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
submitRecordPage: action.payload
});
case MyProblem_Types.SET_EXECUTE_MESSAGE:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
executingMessage: action.payload
});
case MyProblem_Types.SET_EXECUTE_RESULT:
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
case MyProblem_Types.SET_SUBMIT_RESULT:
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
default:
throw new Error();
}
}
/* harmony default export */ var MyProblem = (function (_ref) {
var _data$test_case, _data$test_case2, _exerciseData$exercis2, _exerciseData$exercis3, _exerciseData$exercis4;
var children = _ref.children;
var _useReducer = (0,_react_17_0_2_react.useReducer)(MyProblem_reducer, initalilState),
_useReducer2 = slicedToArray_default()(_useReducer, 2),
state = _useReducer2[0],
dispatch = _useReducer2[1];
var _useParams = (0,_umi_production_exports.useParams)(),
id = _useParams.id;
var location = (0,_umi_production_exports.useLocation)();
var _useSearchParams = (0,_umi_production_exports.useSearchParams)(),
_useSearchParams2 = slicedToArray_default()(_useSearchParams, 1),
searchParams = _useSearchParams2[0];
var loading = state.loading,
data = state.data,
debugResult = state.debugResult,
submitResult = state.submitResult,
submitRecords = state.submitRecords,
submitRecordPage = state.submitRecordPage,
showNote = state.showNote,
debuging = state.debuging,
submitting = state.submitting,
executingMessage = state.executingMessage;
var _useState = (0,_react_17_0_2_react.useState)("#37AD83"),
_useState2 = slicedToArray_default()(_useState, 2),
countDownColor = _useState2[0],
setCountDownColor = _useState2[1];
var _useState3 = (0,_react_17_0_2_react.useState)(null),
_useState4 = slicedToArray_default()(_useState3, 2),
countDownTime = _useState4[0],
setCountDownTime = _useState4[1];
var _useState5 = (0,_react_17_0_2_react.useState)({}),
_useState6 = slicedToArray_default()(_useState5, 2),
exerciseData = _useState6[0],
setExerciseData = _useState6[1];
var _useState7 = (0,_react_17_0_2_react.useState)(true),
_useState8 = slicedToArray_default()(_useState7, 2),
isLoading = _useState8[0],
setIsLoading = _useState8[1];
var _useState9 = (0,_react_17_0_2_react.useState)(false),
_useState10 = slicedToArray_default()(_useState9, 2),
passModalData = _useState10[0],
setPassModalData = _useState10[1];
var timer = (0,_react_17_0_2_react.useRef)(null);
var time_save = (0,_react_17_0_2_react.useRef)(0);
var user = data === null || data === void 0 ? void 0 : data.user;
var hack = data === null || data === void 0 ? void 0 : data.hack;
var runTypeRef = (0,_react_17_0_2_react.useRef)(1);
// const countDownRef = useRef<any>();
// const countDownRef2 = useRef<any>();
var lockExitFullRef = (0,_react_17_0_2_react.useRef)(false);
(0,Hooks/* useDisableAction */.y)(searchParams.get("type") === 'exercises');
var clearCountdownTimeout = (0,useRemindModal/* useRemindModal */._)(exerciseData);
// useEffect(() => {
// clearTimeout(countDownRef.current)
// clearTimeout(countDownRef2.current)
// if (exerciseData?.exercise?.left_time) {
// if (exerciseData?.exercise?.left_time > 1800) {
// countDownRef2.current = setTimeout(() => {
// Modal.info({
// content: "当前距离考试结束还有30分钟",
// icon: <ClockCircleOutlined />,
// okText: "知道了"
// })
// }, (exerciseData?.exercise?.left_time - 1800) * 1000)
// }
// if (exerciseData?.exercise?.left_time > 900) {
// countDownRef.current = setTimeout(() => {
// Modal.info({
// content: "当前距离考试结束还有15分钟",
// icon: <ClockCircleOutlined />,
// okText: "知道了"
// })
// }, (exerciseData?.exercise?.left_time - 900) * 1000)
// }
// }
// }, [exerciseData])
(0,_react_17_0_2_react.useEffect)(function () {
function init() {
return _init.apply(this, arguments);
}
function _init() {
_init = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var response, _res, _res2, res, _res3;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
setIsLoading(true);
_context.next = 3;
return (0,service/* getProgrammingTopic */.fu)(id, {
exercise_id: searchParams.get("exercisesId")
});
case 3:
response = _context.sent;
setTimeout(function () {
setIsLoading(false);
}, 800);
if (response.status === 401) {
// document.location.href = '/user/login'
// history.replace('/user/login', { from: location.pathname })
} else {
try {
response.hack.code = base64.Base64.decode(response.hack.code);
} catch (e) {
console.log(e);
}
response.hack = objectSpread2_default()(objectSpread2_default()({}, response.hack), {}, {
is_program: searchParams.get("type") === '1'
});
dispatch({
type: MyProblem_Types.GET_DATA,
payload: {
loading: false,
data: response
}
});
}
if (!(searchParams.get("type") === 'exercises')) {
_context.next = 21;
break;
}
if (!(window.self === window.top)) {
_context.next = 10;
break;
}
window.top.location.href = "/";
return _context.abrupt("return");
case 10:
if (!(searchParams.get("coursesId") == 'coursesId')) {
_context.next = 16;
break;
}
_context.next = 13;
return (0,exercise/* startSimulateAnswer */._F)({
categoryId: searchParams.get("exercisesId"),
login: searchParams.get("login")
});
case 13:
res = _context.sent;
_context.next = 19;
break;
case 16:
_context.next = 18;
return (0,exercise/* getExerciseStartAnswer */._B)({
categoryId: searchParams.get("exercisesId"),
login: searchParams.get("login")
});
case 18:
res = _context.sent;
case 19:
setExerciseData(objectSpread2_default()({}, res));
if ((_res = res) !== null && _res !== void 0 && _res.left_banner_id && (_res2 = res) !== null && _res2 !== void 0 && (_res2 = _res2.exercise) !== null && _res2 !== void 0 && _res2.left_time) {
setCountDownTime(Date.now() + ((_res3 = res) === null || _res3 === void 0 || (_res3 = _res3.exercise) === null || _res3 === void 0 ? void 0 : _res3.left_time) * 1000);
// setTimeout(() => {
// setCountDownColor("red")
// }, (res?.exercise?.left_time - 300 > 0 ? res?.exercise?.left_time - 300 : 0) * 1000)
}
case 21:
case "end":
return _context.stop();
}
}, _callee);
}));
return _init.apply(this, arguments);
}
if (id) {
init();
}
}, [id]);
(0,_react_17_0_2_react.useEffect)(function () {
var _exerciseData$exercis;
if (searchParams.get("type") === 'exercises' && exerciseData !== null && exerciseData !== void 0 && (_exerciseData$exercis = exerciseData.exercise) !== null && _exerciseData$exercis !== void 0 && _exerciseData$exercis.screen_open) {
window.removeEventListener('blur', backExercise, false);
recordScreen/* fullchange */.U.forEach(function (item, index) {
window.addEventListener(item, backExercise, false);
});
window.addEventListener('blur', backExercise, false);
window.focus();
}
return function () {
document.removeEventListener((0,fullscreen/* fullscreenChange */.gH)(), backExercise);
};
}, [exerciseData]);
(0,_react_17_0_2_react.useEffect)(function () {
if (id && hack !== null && hack !== void 0 && hack.language) {
getSubmitRecordsData();
}
}, [id, submitRecordPage, hack === null || hack === void 0 ? void 0 : hack.language]);
//15s秒发一次记录
(0,_react_17_0_2_react.useEffect)(function () {
if (hack !== null && hack !== void 0 && hack.is_program) {
time_save.current = 0;
timer.current = setInterval(function () {
setTime();
}, 15000);
}
return function () {
clearInterval(timer.current);
};
}, [hack === null || hack === void 0 ? void 0 : hack.is_program]);
var setTime = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
var res;
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return (0,utils_fetch/* default */.ZP)("/api/myproblems/".concat(id, "/save_long_time.json"), {
method: 'get',
params: {
answer_long_time: time_save.current
}
});
case 2:
res = _context2.sent;
case 3:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return function setTime() {
return _ref2.apply(this, arguments);
};
}();
var backExercise = function backExercise() {
if (!lockExitFullRef.current) {
(0,fullscreen/* exitFull */.BU)();
}
window.parent.postMessage('backExercise', '*');
// history.push(`/classrooms/${searchParams.get("coursesId")}/exercise/${searchParams.get("exercisesId")}/users/${searchParams.get("login")}`)
};
function getSubmitRecordsData() {
return _getSubmitRecordsData.apply(this, arguments);
}
function _getSubmitRecordsData() {
_getSubmitRecordsData = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee8() {
var response;
return regeneratorRuntime_default()().wrap(function _callee8$(_context8) {
while (1) switch (_context8.prev = _context8.next) {
case 0:
_context8.prev = 0;
_context8.next = 3;
return (0,service/* getSubmitRecords */.zO)(id, {
limit: 15,
page: submitRecordPage,
language: hack === null || hack === void 0 ? void 0 : hack.language
});
case 3:
response = _context8.sent;
dispatch({
type: MyProblem_Types.GET_SUBMIT_RECORDS,
payload: response
});
_context8.next = 10;
break;
case 7:
_context8.prev = 7;
_context8.t0 = _context8["catch"](0);
console.log(_context8.t0);
case 10:
case "end":
return _context8.stop();
}
}, _callee8, null, [[0, 7]]);
}));
return _getSubmitRecordsData.apply(this, arguments);
}
function onPageChange(value) {
dispatch({
type: MyProblem_Types.SET_PAGE,
payload: value
});
}
function onUpdateCode(_x) {
return _onUpdateCode.apply(this, arguments);
}
function _onUpdateCode() {
_onUpdateCode = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee9(value) {
var ip, _exerciseData$exercis5, response, _exerciseData$exercis6;
return regeneratorRuntime_default()().wrap(function _callee9$(_context9) {
while (1) switch (_context9.prev = _context9.next) {
case 0:
if (!(searchParams.get("ip_limit") === 'inner' || searchParams.get("ip_bind") === "true")) {
_context9.next = 4;
break;
}
_context9.next = 3;
return (0,Exercise_ip/* findLocalIp */.y)({
ip_limit: searchParams.get("ip_limit"),
ip_bind: searchParams.get("ip_bind") === "true" ? true : false,
ip_bind_type: exerciseData === null || exerciseData === void 0 || (_exerciseData$exercis5 = exerciseData.exercise) === null || _exerciseData$exercis5 === void 0 ? void 0 : _exerciseData$exercis5.ip_bind_type
});
case 3:
ip = _context9.sent;
case 4:
_context9.next = 6;
return (0,service/* updateCode */.n4)(id, {
code: base64.Base64.encode(value || hack.code),
language: hack === null || hack === void 0 ? void 0 : hack.language,
exercise_id: searchParams.get("exercisesId"),
question_id: searchParams.get("questionId"),
ip: ip
});
case 6:
response = _context9.sent;
if (response.status === -5) {
(0,_umi_production_exports.getDvaApp)()._store.dispatch({
type: 'exercise/setActionTabs',
payload: {
key: 'student-unlock',
exerciseParams: objectSpread2_default()(objectSpread2_default()({
errorMessage: response === null || response === void 0 ? void 0 : response.message
}, (exerciseData === null || exerciseData === void 0 ? void 0 : exerciseData.exercise) || {}), {}, {
exercise_user_id: exerciseData === null || exerciseData === void 0 || (_exerciseData$exercis6 = exerciseData.exercise) === null || _exerciseData$exercis6 === void 0 ? void 0 : _exerciseData$exercis6.exercise_user_id,
id: searchParams.get("exercisesId")
})
}
});
}
return _context9.abrupt("return", response);
case 9:
case "end":
return _context9.stop();
}
}, _callee9);
}));
return _onUpdateCode.apply(this, arguments);
}
function onSubmitCode() {
return _onSubmitCode.apply(this, arguments);
}
function _onSubmitCode() {
_onSubmitCode = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee11() {
var response, executeCode, submitCodeParams, res, time_limit, test_case_size, startTime;
return regeneratorRuntime_default()().wrap(function _callee11$(_context11) {
while (1) switch (_context11.prev = _context11.next) {
case 0:
runTypeRef.current = 2;
if (!submitting) {
_context11.next = 3;
break;
}
return _context11.abrupt("return");
case 3:
dispatch({
type: MyProblem_Types.SET_SUBMITING,
payload: true
});
_context11.prev = 4;
mediator/* default */.Z.publish('to-commit-info');
_context11.next = 8;
return onUpdateCode();
case 8:
response = _context11.sent;
console.log(response, 1);
if (!(response.status === 0)) {
_context11.next = 30;
break;
}
executeCode = /*#__PURE__*/function () {
var _ref6 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee10() {
var _yield$getOperationRe, status, data, executeTime, isTimeOut, submitResponse;
return regeneratorRuntime_default()().wrap(function _callee10$(_context10) {
while (1) switch (_context10.prev = _context10.next) {
case 0:
_context10.next = 2;
return (0,service/* getOperationResult */.rX)(id, 'submit');
case 2:
_yield$getOperationRe = _context10.sent;
status = _yield$getOperationRe.status;
data = _yield$getOperationRe.data;
executeTime = getTimeStamp();
isTimeOut = executeTime - startTime > (time_limit * test_case_size + 3) * 1000;
if (status !== 0 && !isTimeOut) {
setTimeout(executeCode, 1000);
}
if (!isTimeOut) {
_context10.next = 12;
break;
}
modal/* default */.Z.error({
centered: true,
okText: '知道啦',
title: '评测代码超时'
});
dispatch({
type: MyProblem_Types.SET_SUBMITING,
payload: false
});
return _context10.abrupt("return");
case 12:
if (!(status === 0)) {
_context10.next = 19;
break;
}
if (data.status === 2) {
modal/* default */.Z.error({
centered: true,
okText: '知道啦',
title: '评测代码超时'
});
}
if ((data === null || data === void 0 ? void 0 : data.status) === 0 && searchParams.get("type") === '1') {
setPassModalData(true);
}
_context10.next = 17;
return (0,service/* getSubmitRecords */.zO)(id, {
limit: 15,
page: submitRecordPage,
language: hack === null || hack === void 0 ? void 0 : hack.language
});
case 17:
submitResponse = _context10.sent;
dispatch({
type: MyProblem_Types.SET_SUBMIT_RESULT,
payload: objectSpread2_default()(objectSpread2_default()({}, state), {}, {
submitResult: data,
// debugResult: data,
submitting: false,
submitRecords: submitResponse
})
});
case 19:
case "end":
return _context10.stop();
}
}, _callee10);
}));
return function executeCode() {
return _ref6.apply(this, arguments);
};
}();
submitCodeParams = {};
if (!(searchParams.get("type") === 'exercises')) {
_context11.next = 19;
break;
}
submitCodeParams.extras = {
exercise_id: searchParams.get("exercisesId"),
//试卷id
question_id: searchParams.get("questionId") //题目id
};
if (!(searchParams.get("ip_limit") === 'inner' || searchParams.get("ip_bind") === "true")) {
_context11.next = 19;
break;
}
_context11.next = 18;
return (0,Exercise_ip/* findLocalIp */.y)({
ip_limit: searchParams.get("ip_limit"),
ip_bind: searchParams.get("ip_bind") === "true" ? true : false
});
case 18:
submitCodeParams.extras.ip = _context11.sent;
case 19:
_context11.next = 21;
return (0,service/* sumbitCode */.bM)(id, submitCodeParams);
case 21:
res = _context11.sent;
if (!(res.status === -1)) {
_context11.next = 25;
break;
}
window.parent.location.href = "/classrooms/".concat(searchParams.get("coursesId"), "/exercise/").concat(searchParams.get("exercisesId"), "/detail");
return _context11.abrupt("return");
case 25:
time_limit = hack.time_limit, test_case_size = hack.test_case_size;
startTime = getTimeStamp();
executeCode();
_context11.next = 31;
break;
case 30:
dispatch({
type: MyProblem_Types.SET_SUBMITING,
payload: false
});
case 31:
_context11.next = 37;
break;
case 33:
_context11.prev = 33;
_context11.t0 = _context11["catch"](4);
console.log(_context11.t0);
dispatch({
type: MyProblem_Types.SET_SUBMITING,
payload: false
});
case 37:
case "end":
return _context11.stop();
}
}, _callee11, null, [[4, 33]]);
}));
return _onSubmitCode.apply(this, arguments);
}
function onDebugCode() {
return _onDebugCode.apply(this, arguments);
}
function _onDebugCode() {
_onDebugCode = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee13() {
var response, executeCode, time_limit, submitCodeParams, res, startTime;
return regeneratorRuntime_default()().wrap(function _callee13$(_context13) {
while (1) switch (_context13.prev = _context13.next) {
case 0:
runTypeRef.current = 1;
state.debuging = true;
dispatch({
type: MyProblem_Types.SET_DEBUGING,
payload: true
});
_context13.prev = 3;
_context13.next = 6;
return onUpdateCode();
case 6:
response = _context13.sent;
if (!(response.status === 0)) {
_context13.next = 22;
break;
}
executeCode = /*#__PURE__*/function () {
var _ref7 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee12() {
var _yield$getOperationRe2, status, message, data, executeTime, isTimeOut;
return regeneratorRuntime_default()().wrap(function _callee12$(_context12) {
while (1) switch (_context12.prev = _context12.next) {
case 0:
_context12.next = 2;
return (0,service/* getOperationResult */.rX)(id, 'debug');
case 2:
_yield$getOperationRe2 = _context12.sent;
status = _yield$getOperationRe2.status;
message = _yield$getOperationRe2.message;
data = _yield$getOperationRe2.data;
executeTime = getTimeStamp();
isTimeOut = executeTime - startTime > (time_limit + 3) * 1000;
if (status !== 0 && !isTimeOut) {
dispatch({
type: MyProblem_Types.SET_EXECUTE_MESSAGE,
payload: message
});
setTimeout(executeCode, 1000);
}
if (!isTimeOut) {
_context12.next = 13;
break;
}
modal/* default */.Z.error({
centered: true,
okText: '知道啦',
content: '调试代码超时'
});
dispatch({
type: MyProblem_Types.SET_DEBUGING,
payload: false
});
return _context12.abrupt("return");
case 13:
if (status === 0) {
dispatch({
type: MyProblem_Types.SET_DEBUGING,
payload: false
});
if (data.status === 2) {
modal/* default */.Z.error({
centered: true,
okText: '知道啦',
content: '调试代码超时'
});
}
if (data.status === 2) {
modal/* default */.Z.error({
centered: true,
okText: '知道啦',
content: '调试代码超时'
});
}
dispatch({
type: MyProblem_Types.SET_EXECUTE_RESULT,
payload: objectSpread2_default()(objectSpread2_default()({}, state), {}, {
debugResult: data,
debuging: false
})
});
}
case 14:
case "end":
return _context12.stop();
}
}, _callee12);
}));
return function executeCode() {
return _ref7.apply(this, arguments);
};
}();
time_limit = hack.time_limit;
submitCodeParams = {
input: encodeURIComponent(data.test_case.input)
};
if (searchParams.get("type") === 'exercises') {
submitCodeParams.exercise_id = searchParams.get("exercisesId");
}
_context13.next = 14;
return (0,service/* debugCode */.MU)(id, submitCodeParams);
case 14:
res = _context13.sent;
if (!(res.status === -1)) {
_context13.next = 18;
break;
}
window.parent.location.href = "/classrooms/".concat(searchParams.get("coursesId"), "/exercise/").concat(searchParams.get("exercisesId"), "/detail");
return _context13.abrupt("return");
case 18:
startTime = getTimeStamp();
executeCode();
_context13.next = 23;
break;
case 22:
dispatch({
type: MyProblem_Types.SET_DEBUGING,
payload: false
});
case 23:
_context13.next = 28;
break;
case 25:
_context13.prev = 25;
_context13.t0 = _context13["catch"](3);
console.log(_context13.t0);
case 28:
_context13.prev = 28;
return _context13.finish(28);
case 30:
case "end":
return _context13.stop();
}
}, _callee13, null, [[3, 25, 28, 30]]);
}));
return _onDebugCode.apply(this, arguments);
}
function onChangeCode(value) {
dispatch({
type: MyProblem_Types.SET_DATA,
payload: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack: objectSpread2_default()(objectSpread2_default()({}, hack), {}, {
code: value
})
})
});
}
var onChangeLanguage = /*#__PURE__*/function () {
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3(v) {
var res;
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return (0,utils_fetch/* default */.ZP)("/api/problems/".concat(hack === null || hack === void 0 ? void 0 : hack.identifier, "/start.json"), {
method: 'get',
params: {
language: v === 'C++' || v === 'c++' ? encodeURIComponent(v) : v,
hack_user_id: user === null || user === void 0 ? void 0 : user.user_id
}
});
case 2:
res = _context3.sent;
if (res.status !== -1) {
_umi_production_exports.history.replace("/myproblems/".concat(res === null || res === void 0 ? void 0 : res.identifier, "?type=").concat(searchParams.get("type")));
}
// dispatch({
// type: Types.SET_DATA, payload: {
// ...data,
// hack: {
// ...hack,
// language: v
// },
// }
// })
case 4:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return function onChangeLanguage(_x2) {
return _ref3.apply(this, arguments);
};
}();
function onChangeInput(e) {
var input = e.target.value;
dispatch({
type: MyProblem_Types.SET_DATA,
payload: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
test_case: {
input: input
}
})
});
}
function onResetCode() {
return _onResetCode.apply(this, arguments);
}
function _onResetCode() {
_onResetCode = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee14() {
var response;
return regeneratorRuntime_default()().wrap(function _callee14$(_context14) {
while (1) switch (_context14.prev = _context14.next) {
case 0:
_context14.prev = 0;
_context14.next = 3;
return (0,service/* resetCode */.H7)(id);
case 3:
response = _context14.sent;
if (response.status === 401) {
// history.replace('/login', { from: location.pathname })
} else {
onChangeCode(base64.Base64.decode(response.code));
}
_context14.next = 10;
break;
case 7:
_context14.prev = 7;
_context14.t0 = _context14["catch"](0);
console.log(_context14.t0);
case 10:
case "end":
return _context14.stop();
}
}, _callee14, null, [[0, 7]]);
}));
return _onResetCode.apply(this, arguments);
}
function onSyncCode() {
modal/* default */.Z.confirm({
centered: true,
okText: '确定',
cancelText: '取消',
title: '提示',
content: /*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
children: ["\u521D\u59CB\u4EE3\u7801\u6709\u4FEE\u6539\uFF0C\u66F4\u65B0\u540E\u5C06\u8986\u76D6\u73B0\u6709\u4EE3\u7801\u54E6~ ", /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), "\u8BF7\u5C06\u60A8\u7F16\u8F91\u7684\u4EE3\u7801\u4FDD\u5B58\u81F3\u672C\u5730\uFF0C\u4EE5\u9632\u4E22\u5931"]
}),
onOk: function onOk() {
return asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
var response;
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return (0,service/* syncCode */.fi)(id);
case 2:
response = _context4.sent;
if (response.status === 401) {
// history.replace('/login', { from: location.pathname })
} else {
onChangeCode(base64.Base64.decode(response.code));
}
case 4:
case "end":
return _context4.stop();
}
}, _callee4);
}))();
}
});
}
function onShowNote() {
dispatch({
type: MyProblem_Types.SET_SHOW_NOTE,
payload: true
});
}
function onCancelNote() {
dispatch({
type: MyProblem_Types.SET_SHOW_NOTE,
payload: false
});
}
function onAddNote(_x3) {
return _onAddNote.apply(this, arguments);
}
function _onAddNote() {
_onAddNote = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee15(values) {
return regeneratorRuntime_default()().wrap(function _callee15$(_context15) {
while (1) switch (_context15.prev = _context15.next) {
case 0:
_context15.next = 2;
return (0,service/* addNotes */.MK)(id, values);
case 2:
dispatch({
type: MyProblem_Types.GET_DATA,
payload: {
showNote: false,
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack: objectSpread2_default()(objectSpread2_default()({}, hack), {}, {
notes: values.notes
})
})
}
});
case 3:
case "end":
return _context15.stop();
}
}, _callee15);
}));
return _onAddNote.apply(this, arguments);
}
var rightPanelOption = {
hack: hack,
isLoading: isLoading,
input: data === null || data === void 0 || (_data$test_case = data.test_case) === null || _data$test_case === void 0 ? void 0 : _data$test_case.input,
is_file: data === null || data === void 0 || (_data$test_case2 = data.test_case) === null || _data$test_case2 === void 0 ? void 0 : _data$test_case2.is_file,
language: hack === null || hack === void 0 ? void 0 : hack.language,
code: hack === null || hack === void 0 ? void 0 : hack.code,
title: 'main.' + LanguageSuf[hack === null || hack === void 0 ? void 0 : hack.language],
modify_code: hack === null || hack === void 0 ? void 0 : hack.modify_code,
notes: hack === null || hack === void 0 ? void 0 : hack.notes,
debugResult: debugResult,
debuging: debuging,
submitting: submitting,
executingMessage: executingMessage,
onCancelNote: onCancelNote,
onAddNote: onAddNote,
showNote: showNote,
user: user,
onShowNote: onShowNote,
onSubmitCode: onSubmitCode,
onChangeCode: onChangeCode,
onChangeInput: onChangeInput,
onDebugCode: onDebugCode,
onResetCode: onResetCode,
onSyncCode: onSyncCode,
onUpdateCode: onUpdateCode,
onChangeLanguage: onChangeLanguage
};
function onTriggerPraise() {
return _onTriggerPraise.apply(this, arguments);
}
function _onTriggerPraise() {
_onTriggerPraise = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee16() {
var _yield$triggerPlus, praise_count, rs;
return regeneratorRuntime_default()().wrap(function _callee16$(_context16) {
while (1) switch (_context16.prev = _context16.next) {
case 0:
_context16.next = 2;
return (0,service/* triggerPlus */.vl)(hack.id, {
container_type: 'Hack',
type: 1
});
case 2:
_yield$triggerPlus = _context16.sent;
praise_count = _yield$triggerPlus.praise_count;
rs = objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack: objectSpread2_default()(objectSpread2_default()({}, hack), {}, {
praises_count: praise_count,
user_praise: !hack.user_praise
})
});
dispatch({
type: MyProblem_Types.SET_DATA,
payload: rs
});
case 6:
case "end":
return _context16.stop();
}
}, _callee16);
}));
return _onTriggerPraise.apply(this, arguments);
}
var leftPanelOption = {
topicId: id,
submitResult: submitResult,
submitRecords: submitRecords,
submitting: submitting,
page: submitRecordPage,
onPageChange: onPageChange,
hack: hack,
user: data === null || data === void 0 ? void 0 : data.user,
onTriggerPraise: onTriggerPraise
};
console.log(exerciseData);
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(spin/* default */.Z, {
spinning: loading,
delay: 500,
children: [!data ? null : /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("header", {
className: OjFormmodules/* default */.Z.header,
children: [searchParams.get("type") !== 'exercises' && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
src: "".concat(env/* default */.Z.IMG_SERVER, "/images/").concat(user === null || user === void 0 ? void 0 : user.image_url),
alt: "user",
width: 30
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: user === null || user === void 0 ? void 0 : user.name
})]
}), searchParams.get("type") === "exercises" && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "exercise_user_info",
children: ["\u59D3\u540D", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "ml10",
children: exerciseData === null || exerciseData === void 0 || (_exerciseData$exercis2 = exerciseData.exercise) === null || _exerciseData$exercis2 === void 0 ? void 0 : _exerciseData$exercis2.user_name
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "exercise_user_info ml30",
children: ["\u5B66\u53F7", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "ml10",
children: exerciseData === null || exerciseData === void 0 || (_exerciseData$exercis3 = exerciseData.exercise) === null || _exerciseData$exercis3 === void 0 ? void 0 : _exerciseData$exercis3.student_id
})]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("h2", {
className: "flex-wrp flex_box_column flex_box_center",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: hack.name
}), (hack === null || hack === void 0 ? void 0 : hack.is_program) && /*#__PURE__*/(0,jsx_runtime.jsx)(Timepiece/* default */.Z, {
defaultValue: hack === null || hack === void 0 ? void 0 : hack.answer_long_time,
onChange: function onChange(v) {
console.log(v);
time_save.current = v;
},
className: "font12 c-grey-999"
})]
}), user !== null && user !== void 0 && user.hack_manager ? /*#__PURE__*/(0,jsx_runtime.jsxs)(_umi_production_exports.Link, {
className: OjFormmodules/* default */.Z.btn_back,
to: searchParams.get("type") === '1' ? "/problems/newedit/".concat(hack.identifier, "?type=1") : "/problems/newedit/".concat(hack.identifier),
style: {
marginRight: 10
},
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)(FormOutlined/* default */.Z, {}), " \u7F16\u8F91"]
}) : null, (exerciseData === null || exerciseData === void 0 || (_exerciseData$exercis4 = exerciseData.exercise) === null || _exerciseData$exercis4 === void 0 ? void 0 : _exerciseData$exercis4.left_time) && /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: {
color: countDownColor,
marginRight: 6
},
className: "iconfont icon-daojishi ".concat(OjFormmodules/* default */.Z.djs)
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "c-white mr20",
children: /*#__PURE__*/(0,jsx_runtime.jsx)(Countdown, {
valueStyle: {
color: countDownColor,
fontSize: 20,
fontWeight: 500
},
title: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: {
color: countDownColor,
fontSize: 14,
marginRight: 10
},
className: "time",
children: "\u5269\u4F59\u7B54\u9898\u65F6\u957F"
}),
value: countDownTime,
onFinish: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6() {
var res, time;
return regeneratorRuntime_default()().wrap(function _callee6$(_context6) {
while (1) switch (_context6.prev = _context6.next) {
case 0:
_context6.next = 2;
return (0,exercise/* submitExerciseAnswer */.VL)({
categoryId: searchParams.get("exercisesId"),
commit_method: 2
});
case 2:
res = _context6.sent;
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
onUpdateCode();
modal/* default */.Z.info({
width: 530,
title: '提示',
centered: true,
okText: '确定',
content: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "tc font16",
children: ["\u7B54\u9898\u7ED3\u675F\u4E86\uFF0C\u7CFB\u7EDF\u5DF2\u81EA\u52A8\u63D0\u4EA4\u8BD5\u5377", /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), "\u4E0D\u80FD\u518D\u4FEE\u6539\u7B54\u9898"]
}),
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:
window.parent.location.href = "/classrooms/".concat(searchParams.get("coursesId"), "/exercise/").concat(searchParams.get("exercisesId"), "/detail");
case 1:
case "end":
return _context5.stop();
}
}, _callee5);
}));
function onOk() {
return _onOk.apply(this, arguments);
}
return onOk;
}()
});
}
if ((res === null || res === void 0 ? void 0 : res.status) === -3) {
time = parseInt(res === null || res === void 0 ? void 0 : res.message);
setCountDownTime(Date.now() + time * 1000);
}
case 5:
case "end":
return _context6.stop();
}
}, _callee6);
}))
})
})]
}), searchParams.get("type") === "exercises" ? /*#__PURE__*/(0,jsx_runtime.jsxs)(es_button/* default */.ZP, {
type: "primary",
onClick: function onClick() {
onUpdateCode();
modal/* default */.Z.confirm({
centered: true,
okText: '确定',
cancelText: '取消',
icon: null,
title: '提示',
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: {
color: "#FF0000"
},
children: "\u8BF7\u786E\u8BA4\u4F60\u7684\u7B54\u9898\u5185\u5BB9\u662F\u5426\u8FDB\u884C\u8BC4\u6D4B\u5E76\u63D0\u4EA4\uFF0C\u672A\u8BC4\u6D4B\u5219\u4F1A\u5BFC\u81F4\u8BE5\u9898\u65E0\u6CD5\u83B7\u5F97\u5206\u6570"
}),
onOk: function onOk() {
// window.close()
clearCountdownTimeout();
lockExitFullRef.current = true;
backExercise();
}
});
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "iconfont icon-yiguanbi mr5 font14"
}), " \u8FD4\u56DE\u8BD5\u5377"]
}) : /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
className: OjFormmodules/* default */.Z.btn_back,
onClick: function onClick() {
if (searchParams.get("backUrl")) {
_umi_production_exports.history.push(searchParams.get("backUrl"));
} else {
if (searchParams.get("type") === '1') {
var _localStorage$getItem;
var item = (_localStorage$getItem = localStorage.getItem('program_homework')) === null || _localStorage$getItem === void 0 ? void 0 : _localStorage$getItem.split(',');
_umi_production_exports.history.push("/classrooms/".concat(item === null || item === void 0 ? void 0 : item[0], "/program_homework/").concat(item === null || item === void 0 ? void 0 : item[1], "/detail"));
} else {
_umi_production_exports.history.push("/problemset");
}
}
},
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)(PoweroffOutlined/* default */.Z, {}), "\u9000\u51FA"]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(spin/* default */.Z, {
size: "large",
spinning: isLoading,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(SplitContainer/* default */.Z, {
className: "my-problems",
leftChild: /*#__PURE__*/(0,jsx_runtime.jsx)(LeftPanel, objectSpread2_default()({}, leftPanelOption)),
rightChild: /*#__PURE__*/(0,jsx_runtime.jsx)(RightPanel, objectSpread2_default()({}, rightPanelOption))
})
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
centered: true,
closable: false,
width: 680,
footer: null,
open: passModalData,
className: "oj-modal",
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
className: "oj-modal-content",
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "oj-modal-head",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
src: internal,
alt: ""
}), /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
onClick: function onClick() {
return setPassModalData(false);
},
className: "iconfont icon-guanbi1"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("aside", {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
className: "mr30",
src: title/* default */.Z
}), "\u8FD0\u884C\u65F6\u95F4:\xA0", /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
style: {
color: '#75d6ba',
marginRight: 100
},
children: [submitResult === null || submitResult === void 0 ? void 0 : submitResult.execute_time, "ms"]
}), "\u4F18\u4E8E", /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
style: {
color: '#f3b087',
margin: "0 5px"
},
children: [(submitResult === null || submitResult === void 0 ? void 0 : submitResult.time_better_than) || 100, "%"]
}), "\u7684\u7528\u6237"]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("aside", {
className: "mb50",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
src: time/* default */.Z,
className: "mr30"
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
className: "oj-modal-tt",
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: "\u5360\u7528\u5185\u5B58:\xA0"
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
className: "c-light-primary",
children: [submitResult === null || submitResult === void 0 ? void 0 : submitResult.execute_memory, "kb"]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {})
})]
}), "\u4F18\u4E8E", /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
style: {
color: '#f3b087',
margin: "0 5px"
},
children: [(submitResult === null || submitResult === void 0 ? void 0 : submitResult.memory_better_than) || 100, "%"]
}), "\u7684\u7528\u6237"]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
id: "oj-modal-next",
onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee7() {
var res, _localStorage$getItem2, item;
return regeneratorRuntime_default()().wrap(function _callee7$(_context7) {
while (1) switch (_context7.prev = _context7.next) {
case 0:
if (!(submitResult !== null && submitResult !== void 0 && submitResult.next_identifier)) {
_context7.next = 7;
break;
}
_context7.next = 3;
return (0,utils_fetch/* default */.ZP)("/api/problems/".concat(submitResult === null || submitResult === void 0 ? void 0 : submitResult.next_identifier, "/start.json"), {
method: 'get',
params: {
hack_user_id: user === null || user === void 0 ? void 0 : user.user_id
}
});
case 3:
res = _context7.sent;
if (res) {
_umi_production_exports.history.replace("/myproblems/".concat(res === null || res === void 0 ? void 0 : res.identifier, "?type=1"));
window.location.reload();
}
_context7.next = 9;
break;
case 7:
item = (_localStorage$getItem2 = localStorage.getItem('program_homework')) === null || _localStorage$getItem2 === void 0 ? void 0 : _localStorage$getItem2.split(',');
_umi_production_exports.history.push("/classrooms/".concat(item === null || item === void 0 ? void 0 : item[0], "/program_homework/").concat(item === null || item === void 0 ? void 0 : item[1], "/detail"));
case 9:
case "end":
return _context7.stop();
}
}, _callee7);
})),
className: "oj-modal-btn",
children: submitResult !== null && submitResult !== void 0 && submitResult.next_identifier ? '进入下一题' : '回到作业详情页'
})]
})
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(Unlock/* default */.Z, {
successCb: function successCb() {
if (runTypeRef.current === 1) {
onDebugCode();
} else {
onSubmitCode();
}
}
})]
});
});
function ActionBar(_ref8) {
var _hack$all_language;
var title = _ref8.title,
modify_code = _ref8.modify_code,
onSyncCode = _ref8.onSyncCode,
onShowCodeSetting = _ref8.onShowCodeSetting,
onResetCode = _ref8.onResetCode,
hack = _ref8.hack,
onChangeLanguage = _ref8.onChangeLanguage;
var opneModal = function opneModal() {
modal/* default */.Z.confirm({
title: '恢复初始代码',
icon: /*#__PURE__*/(0,jsx_runtime.jsx)(ExclamationCircleOutlined/* default */.Z, {}),
content: '你在本文件中修改的内容将丢失,是否确定重新加载初始代码?',
centered: true,
okText: '确定',
cancelText: '取消',
onOk: onResetCode
});
};
var _useSearchParams3 = (0,_umi_production_exports.useSearchParams)(),
_useSearchParams4 = slicedToArray_default()(_useSearchParams3, 1),
searchParams = _useSearchParams4[0];
var type = searchParams.get('language');
var getLanguage = function getLanguage(type) {
if (type === '1') {
return 'c++';
}
if (type === '2') {
return 'C++';
}
return type;
};
(0,_react_17_0_2_react.useEffect)(function () {
if (type) {
onChangeLanguage(getLanguage(type));
}
}, []);
(0,_react_17_0_2_react.useEffect)(function () {
if (hack !== null && hack !== void 0 && hack.tpm_code_modified) {
modal/* default */.Z.confirm({
title: '更新初始代码',
icon: /*#__PURE__*/(0,jsx_runtime.jsx)(ExclamationCircleOutlined/* default */.Z, {}),
content: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: "\u7F16\u7A0B\u9898\u7684\u521D\u59CB\u4EE3\u7801\u5185\u5BB9\u6709\u66F4\u65B0,"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: "\u66F4\u65B0\u64CD\u4F5C\u5C06\u4FDD\u7559\u5DF2\u5B8C\u6210\u7684\u8BC4\u6D4B\u8BB0\u5F55\u548C\u6210\u7EE9,"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: "\u8FD8\u672A\u5B8C\u6210\u8BC4\u6D4B\u7684\u4EFB\u52A1\u4EFB\u52A1\u4EE3\u7801\uFF0C\u8BF7\u81EA\u884C\u4FDD\u5B58\uFF01"
})]
}),
centered: true,
okText: '确定',
cancelText: '取消',
onOk: function onOk() {
return onResetCode();
}
});
}
}, [hack === null || hack === void 0 ? void 0 : hack.language]);
console.log(hack, 'hack');
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "action-bar",
style: {
paddingLeft: 0
},
children: [(hack === null || hack === void 0 ? void 0 : hack.is_program) && /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"], {
className: "oj-select",
value: hack === null || hack === void 0 ? void 0 : hack.language,
defaultValue: getLanguage(type),
style: {
width: 100
},
placeholder: "\u9009\u62E9\u8BED\u8A00",
onChange: onChangeLanguage,
children: hack === null || hack === void 0 || (_hack$all_language = hack.all_language) === null || _hack$all_language === void 0 ? void 0 : _hack$all_language.map(function (e) {
return /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"].Option, {
value: e,
children: e
}, e);
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {}), modify_code ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
title: "\u66F4\u65B0\u901A\u77E5",
onClick: onSyncCode,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
src: notice,
alt: "notice",
style: {
height: 13,
transform: 'translateY(-2px)'
}
})
}) : null, /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
title: "\u6062\u590D\u521D\u59CB\u4EE3\u7801",
onClick: opneModal,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-zhongzhi font-20 "
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
onClick: onShowCodeSetting,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-shezhi"
})
})]
});
}
function RightPanel(_ref9) {
var input = _ref9.input,
is_file = _ref9.is_file,
showNote = _ref9.showNote,
onShowNote = _ref9.onShowNote,
notes = _ref9.notes,
onCancelNote = _ref9.onCancelNote,
onAddNote = _ref9.onAddNote,
debugResult = _ref9.debugResult,
language = _ref9.language,
debuging = _ref9.debuging,
submitting = _ref9.submitting,
executingMessage = _ref9.executingMessage,
code = _ref9.code,
onSubmitCode = _ref9.onSubmitCode,
onDebugCode = _ref9.onDebugCode,
onChangeCode = _ref9.onChangeCode,
onChangeInput = _ref9.onChangeInput,
onUpdateCode = _ref9.onUpdateCode,
user = _ref9.user,
isLoading = _ref9.isLoading,
actionBarOpation = objectWithoutProperties_default()(_ref9, _excluded);
function ActionBarEL(onShowCodeSetting) {
return /*#__PURE__*/(0,jsx_runtime.jsx)(ActionBar, objectSpread2_default()(objectSpread2_default()({}, actionBarOpation), {}, {
onShowCodeSetting: onShowCodeSetting
}));
}
var testCasePanelOption = objectSpread2_default()({
input: input,
is_file: is_file,
debugResult: debugResult,
debuging: debuging,
submitting: submitting,
executingMessage: executingMessage,
onDebugCode: onDebugCode,
onChangeCode: onChangeCode,
onSubmitCode: onSubmitCode,
onChangeInput: onChangeInput,
user: user
}, actionBarOpation);
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "right-panel",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(CodePanel/* default */.Z, {
isLoading: isLoading,
language: language,
value: code,
onChange: onChangeCode,
onUpdateCode: onUpdateCode,
ActionBarRender: ActionBarEL
}), /*#__PURE__*/(0,jsx_runtime.jsx)(TestCasePanel/* default */.ZP, objectSpread2_default()({}, testCasePanelOption))]
});
}
/***/ }),
/***/ 75344:
/*!******************************************!*\
!*** ./src/pages/MyProblem/interface.ts ***!
\******************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ h: function() { return /* binding */ ExecuteStatus; }
/* harmony export */ });
// created_at: "2020-07-09T19:53:54.000+08:00"
// execute_memory: null
// execute_time: 0.269
// id: 872
// language: "C"
// status: 4
var ExecuteStatus = /*#__PURE__*/function (ExecuteStatus) {
ExecuteStatus[ExecuteStatus["NOMATCH"] = -1] = "NOMATCH";
ExecuteStatus[ExecuteStatus["OK"] = 0] = "OK";
ExecuteStatus[ExecuteStatus["TIMEOUT"] = 2] = "TIMEOUT";
ExecuteStatus[ExecuteStatus["PODFAILURE"] = 3] = "PODFAILURE";
ExecuteStatus[ExecuteStatus["COMPILEFAILURE"] = 4] = "COMPILEFAILURE";
ExecuteStatus[ExecuteStatus["EXECUTEFAILURE"] = 5] = "EXECUTEFAILURE";
return ExecuteStatus;
}({});
// "id": "1",
// "status": 2, # -1测试用例结果不匹配; 0: 评测通过; ;2 评测超时;3 创建pod失败; 4 编译失败;5 执行失败
// "error_line": 3, # 错误行数
// "error_msg": "error line 7 input.." , # 报错信息
// "input": "3 4", # 输入
// "output": "7", # 输出
// "execute_time": 3, #执行时间
// "execute_memory": 300, #消耗内存
// "expected_output": "7" # 如果提交模式 会多这个参数
/***/ }),
/***/ 51867:
/*!****************************************!*\
!*** ./src/pages/MyProblem/service.ts ***!
\****************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ H7: function() { return /* binding */ resetCode; },
/* harmony export */ MK: function() { return /* binding */ addNotes; },
/* harmony export */ MU: function() { return /* binding */ debugCode; },
/* harmony export */ X6: function() { return /* binding */ getRecordDetail; },
/* harmony export */ bM: function() { return /* binding */ sumbitCode; },
/* harmony export */ fi: function() { return /* binding */ syncCode; },
/* harmony export */ fu: function() { return /* binding */ getProgrammingTopic; },
/* harmony export */ n4: function() { return /* binding */ updateCode; },
/* harmony export */ rX: function() { return /* binding */ getOperationResult; },
/* harmony export */ vl: function() { return /* binding */ triggerPlus; },
/* harmony export */ zO: function() { return /* binding */ getSubmitRecords; }
/* harmony export */ });
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectSpread2.js */ 82242);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _utils_fetch_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/fetch.ts */ 84087);
function getProgrammingTopic(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_1__/* .get */ .U2)("myproblems/".concat(id, ".json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({
hidePopLogin: true
}, params || {}));
}
function sumbitCode(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_1__/* .post */ .v_)("myproblems/".concat(id, "/code_submit.json"), params);
}
function debugCode(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_1__/* .post */ .v_)("myproblems/".concat(id, "/code_debug.json"), params);
}
function getSubmitRecords(id, params) {
if (params.language) {
params.language = encodeURIComponent(params.language);
}
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_1__/* .get */ .U2)("myproblems/".concat(id, "/submit_records.json"), params);
}
function getRecordDetail(id) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_1__/* .get */ .U2)("myproblems/record_detail.json", {
id: id
});
}
function getOperationResult(id, mode) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_1__/* .get */ .U2)("myproblems/".concat(id, "/result.json"), {
mode: mode
});
}
function addNotes(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_1__/* .post */ .v_)("myproblems/".concat(id, "/add_notes.json"), params);
}
function resetCode(id) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_1__/* .post */ .v_)("myproblems/".concat(id, "/restore_initial_code.json"));
}
function syncCode(id) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_1__/* .post */ .v_)("myproblems/".concat(id, "/sync_code.json"));
}
function updateCode(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_1__/* .post */ .v_)("myproblems/".concat(id, "/update_code.json"), params);
}
function triggerPlus(id, params) {
return (0,_utils_fetch_ts__WEBPACK_IMPORTED_MODULE_1__/* .post */ .v_)("discusses/".concat(id, "/plus.json"), params);
}
/***/ }),
/***/ 42120:
/*!*******************************************************************!*\
!*** ./src/pages/Problems/OjForm/CodePanel/index.tsx + 1 modules ***!
\*******************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ CodePanel; }
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(79800);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(82242);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/drawer/index.js + 9 modules
var drawer = __webpack_require__(43428);
// EXTERNAL MODULE: ./src/components/monaco-editor/index.jsx + 4 modules
var monaco_editor = __webpack_require__(16127);
// EXTERNAL MODULE: ./src/components/modal.tsx
var modal = __webpack_require__(31998);
// EXTERNAL MODULE: ./src/utils/urlTool.ts
var urlTool = __webpack_require__(29292);
;// CONCATENATED MODULE: ./src/pages/Problems/OjForm/CodePanel/index.less
// extracted by mini-css-extract-plugin
// EXTERNAL MODULE: ./src/components/tpi-code-setting/CodeSetting.tsx
var CodeSetting = __webpack_require__(58990);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/pages/Problems/OjForm/CodePanel/index.tsx
//@ts-ignore
var initialState = {
theme: (0,urlTool/* fromStore */.G)('cmCodeMode', 'vs-dark'),
fontSize: (0,urlTool/* fromStore */.G)('cmFontSize', 14),
showEditorSetting: false,
tabToSpace: (0,urlTool/* fromStore */.G)('cmTabToSpace', true)
};
var Types = /*#__PURE__*/function (Types) {
Types[Types["set_font_size"] = 0] = "set_font_size";
Types[Types["set_theme"] = 1] = "set_theme";
Types[Types["on_tab_to_space"] = 2] = "on_tab_to_space";
Types[Types["set_show_editor_setting"] = 3] = "set_show_editor_setting";
return Types;
}(Types || {});
function reducer(state, action) {
switch (action.type) {
case Types.set_show_editor_setting:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
showEditorSetting: action.payload
});
case Types.set_theme:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
theme: action.payload
});
case Types.set_font_size:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
fontSize: action.payload
});
case Types.on_tab_to_space:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
tabToSpace: action.payload
});
default:
throw new Error();
}
}
/* harmony default export */ var CodePanel = (function (_ref) {
var isLoading = _ref.isLoading,
value = _ref.value,
_onChange = _ref.onChange,
language = _ref.language,
onUpdateCode = _ref.onUpdateCode,
_ref$ActionBarRender = _ref.ActionBarRender,
ActionBarRender = _ref$ActionBarRender === void 0 ? function (onShowCodeSetting) {
return /*#__PURE__*/(0,jsx_runtime.jsx)(DefaultActionBar, {
onShowCodeSetting: onShowCodeSetting
});
} : _ref$ActionBarRender;
var _useReducer = (0,_react_17_0_2_react.useReducer)(reducer, initialState),
_useReducer2 = slicedToArray_default()(_useReducer, 2),
state = _useReducer2[0],
dispatch = _useReducer2[1];
var theme = state.theme,
fontSize = state.fontSize,
showEditorSetting = state.showEditorSetting,
tabToSpace = state.tabToSpace;
var timeRef = (0,_react_17_0_2_react.useRef)();
var valueRef = (0,_react_17_0_2_react.useRef)();
var codeSettingOption = {
onFontSizeChange: function onFontSizeChange(val) {
dispatch({
type: Types.set_font_size,
payload: val
});
(0,urlTool/* toStore */.t)('cmFontSize', val);
},
tabToSpace: tabToSpace,
cmFontSize: fontSize,
className: 'oj',
cmCodeMode: theme,
onTabToSpace: function onTabToSpace(checked) {
dispatch({
type: Types.on_tab_to_space,
payload: checked
});
(0,urlTool/* toStore */.t)('cmTabToSpace', checked);
},
onCodeModeChange: function onCodeModeChange(val) {
dispatch({
type: Types.set_theme,
payload: val
});
(0,urlTool/* toStore */.t)('cmCodeMode', val);
}
};
function onHideCodeSetting() {
dispatch({
type: Types.set_show_editor_setting,
payload: false
});
}
function onShowCodeSetting() {
dispatch({
type: Types.set_show_editor_setting,
payload: true
});
}
var editorOption = {
value: value,
language: language,
// onChange,
theme: theme,
height: 'calc(100% - 56px)',
options: {
fontSize: fontSize,
insertSpaces: tabToSpace
},
onChange: function onChange(value) {
_onChange(value);
valueRef.current = value;
clearTimeout(timeRef.current);
timeRef.current = setTimeout(function () {
onUpdateCode(valueRef.current);
}, 10000);
},
onEditBlur: function onEditBlur(value) {
if (!!valueRef.current) onUpdateCode(valueRef.current);
}
};
return /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "code-panel-container",
children: [ActionBarRender(onShowCodeSetting), !isLoading && /*#__PURE__*/(0,jsx_runtime.jsx)(monaco_editor/* default */.ZP, objectSpread2_default()({}, editorOption))]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(drawer/* default */.Z, {
rootClassName: "oj",
title: null,
placement: "right",
closable: false,
open: showEditorSetting,
onClose: onHideCodeSetting,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(CodeSetting/* default */.Z, objectSpread2_default()({}, codeSettingOption))
})
})]
});
});
function DefaultActionBar(_ref2) {
var onShowCodeSetting = _ref2.onShowCodeSetting;
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "action-bar",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: "\u5B66\u5458\u521D\u59CB\u4EE3\u7801\u6587\u4EF6"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
onClick: onShowCodeSetting,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-shezhi"
})
})]
});
}
/***/ }),
/***/ 99679:
/*!*********************************************************************************!*\
!*** ./src/pages/tasks/left-panel/discuss/discuss-editor/index.tsx + 1 modules ***!
\*********************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ discuss_editor; }
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js
var regeneratorRuntime = __webpack_require__(7557);
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(41498);
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(79800);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
;// CONCATENATED MODULE: ./src/pages/tasks/left-panel/discuss/discuss-editor/index.less
// extracted by mini-css-extract-plugin
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules
var message = __webpack_require__(8591);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tooltip/index.js + 3 modules
var tooltip = __webpack_require__(6848);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/spin/index.js + 1 modules
var spin = __webpack_require__(71418);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/row/index.js
var row = __webpack_require__(95237);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/col/index.js
var col = __webpack_require__(43604);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/pagination/index.js + 10 modules
var pagination = __webpack_require__(88590);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
var es_button = __webpack_require__(3113);
// EXTERNAL MODULE: ./src/components/markdown-editor/index.tsx + 15 modules
var markdown_editor = __webpack_require__(39987);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var fetch = __webpack_require__(84087);
// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx
var RenderHtml = __webpack_require__(70159);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/pages/tasks/left-panel/discuss/discuss-editor/index.tsx
/* harmony default export */ var discuss_editor = (function (_ref) {
var id = _ref.id,
activeDiscussIndex = _ref.activeDiscussIndex,
onReplyDiscuss = _ref.onReplyDiscuss,
adminOrOperator = _ref.adminOrOperator;
var _useState = (0,_react_17_0_2_react.useState)(''),
_useState2 = slicedToArray_default()(_useState, 2),
value = _useState2[0],
setValue = _useState2[1];
var _useState3 = (0,_react_17_0_2_react.useState)(false),
_useState4 = slicedToArray_default()(_useState3, 2),
isOpen = _useState4[0],
setIsOpen = _useState4[1];
function onChange(v) {
setValue(v);
}
function onCommit() {
if (!value) {
message/* default */.ZP.info('回复内容不能为空!');
return;
}
// console.log('--------','0');
// if(!getAuthentication()){
// Modal.confirm({
// title: '提示',
// centered: true,
// content: <div className="tc">您需要去完成您的职业认证,才能使用此功能</div>,
// okText: `立即完善`,
// cancelText: "稍后完善",
// onOk: () => {
// openNewWindow('/account/certification');
// }
// })
// }
// console.log('-------',getAuthentication());
onReplyDiscuss(id, value);
setValue('');
}
(0,_react_17_0_2_react.useEffect)(function () {
if (activeDiscussIndex != id) {
setIsOpen(false);
}
}, [activeDiscussIndex]);
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "discuss-item-editor",
style: {
display: activeDiscussIndex === id ? 'block' : 'none',
width: '100%'
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor/* default */.Z, {
miniToolbar: true,
startInit: activeDiscussIndex === id,
defaultValue: value,
id: id,
noStorage: true,
watch: false,
height: 155,
placeholder: "\u6211\u8981\u56DE\u590D",
showResizeBar: true,
onChange: onChange,
extraUse: adminOrOperator && /*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
color: "#fff",
open: isOpen,
destroyTooltipOnHide: true,
title: RecommendAnswer({
id: id,
isOpen: isOpen,
activeDiscussIndex: activeDiscussIndex,
onChange: onChange,
setIsOpen: setIsOpen
}),
overlayStyle: {
maxWidth: 600
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
title: isOpen ? "关闭推荐" : "打开推荐",
onClick: function onClick() {
return setIsOpen(!isOpen);
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-dianzan11"
})
})
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
onClick: onCommit,
className: "btn-send",
children: "\u53D1\u9001"
})]
}, id);
});
var RecommendAnswer = function RecommendAnswer(props) {
var _useState5 = (0,_react_17_0_2_react.useState)(false),
_useState6 = slicedToArray_default()(_useState5, 2),
loading = _useState6[0],
setLoading = _useState6[1];
var _useState7 = (0,_react_17_0_2_react.useState)([]),
_useState8 = slicedToArray_default()(_useState7, 2),
resData = _useState8[0],
setResData = _useState8[1];
var _useState9 = (0,_react_17_0_2_react.useState)(1),
_useState10 = slicedToArray_default()(_useState9, 2),
answerIndex = _useState10[0],
setAnswerIndex = _useState10[1];
(0,_react_17_0_2_react.useEffect)(function () {
if (props !== null && props !== void 0 && props.isOpen) {
getData();
} else {
setAnswerIndex(1);
setResData([]);
}
}, [props === null || props === void 0 ? void 0 : props.isOpen]);
var getData = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var res;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
setLoading(true);
_context.next = 3;
return (0,fetch/* default */.ZP)("/api/discusses/".concat(props === null || props === void 0 ? void 0 : props.id, "/recommend_answer.json"), {
method: 'get'
});
case 3:
res = _context.sent;
if ((res === null || res === void 0 ? void 0 : res.status) == 0) {
setResData(res === null || res === void 0 ? void 0 : res.answer);
}
setLoading(false);
case 6:
case "end":
return _context.stop();
}
}, _callee);
}));
return function getData() {
return _ref2.apply(this, arguments);
};
}();
return /*#__PURE__*/(0,jsx_runtime.jsx)(spin/* default */.Z, {
spinning: loading,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
color: "#000"
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
className: "font14",
style: {
maxHeight: 500,
overflow: "auto"
},
value: (resData === null || resData === void 0 ? void 0 : resData[answerIndex - 1]) || ""
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
justify: "end",
align: "middle",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(pagination/* default */.Z, {
simple: true,
current: answerIndex,
pageSize: 1,
total: (resData === null || resData === void 0 ? void 0 : resData.length) || 0,
onChange: function onChange(page) {
setAnswerIndex(page);
}
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
props === null || props === void 0 || props.onChange(resData === null || resData === void 0 ? void 0 : resData[answerIndex - 1]);
props === null || props === void 0 || props.setIsOpen(false);
case 2:
case "end":
return _context2.stop();
}
}, _callee2);
})),
children: "\u586B\u5165\u6587\u672C\u6846"
})
})]
})]
})
});
};
/***/ }),
/***/ 25114:
/*!********************************************!*\
!*** ./src/utils/hooks/useRemindModal.tsx ***!
\********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ _: function() { return /* binding */ useRemindModal; }
/* harmony export */ });
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createForOfIteratorHelper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/createForOfIteratorHelper.js */ 91232);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createForOfIteratorHelper_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createForOfIteratorHelper_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 59301);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd */ 43418);
//只需要left_time和exercise_events参数实际上传进来的answerData还有很多其它的属性
var useRemindModal = function useRemindModal(answerData) {
var _answerData$exercise6, _answerData$exercise7;
var countDownRefArr = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)([]);
var clearCountdownTimeout = function clearCountdownTimeout() {
var _iterator = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createForOfIteratorHelper_js__WEBPACK_IMPORTED_MODULE_0___default()(countDownRefArr.current),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var id = _step.value;
clearTimeout(id);
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
countDownRefArr.current = [];
};
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
var _answerData$exercise, _answerData$exercise2;
clearCountdownTimeout();
if (answerData !== null && answerData !== void 0 && (_answerData$exercise = answerData.exercise) !== null && _answerData$exercise !== void 0 && _answerData$exercise.left_time && (answerData === null || answerData === void 0 || (_answerData$exercise2 = answerData.exercise) === null || _answerData$exercise2 === void 0 || (_answerData$exercise2 = _answerData$exercise2.exercise_events) === null || _answerData$exercise2 === void 0 ? void 0 : _answerData$exercise2.length) > 0) {
var _answerData$exercise3;
var _iterator2 = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createForOfIteratorHelper_js__WEBPACK_IMPORTED_MODULE_0___default()(answerData === null || answerData === void 0 || (_answerData$exercise3 = answerData.exercise) === null || _answerData$exercise3 === void 0 ? void 0 : _answerData$exercise3.exercise_events),
_step2;
try {
var _loop = function _loop() {
var _answerData$exercise4;
var eventItem = _step2.value;
if ((answerData === null || answerData === void 0 || (_answerData$exercise4 = answerData.exercise) === null || _answerData$exercise4 === void 0 ? void 0 : _answerData$exercise4.left_time) > (eventItem === null || eventItem === void 0 ? void 0 : eventItem.reminder_time) * 60) {
var _answerData$exercise5;
var timeoutId = setTimeout(function () {
antd__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z.info({
content: "".concat(eventItem === null || eventItem === void 0 ? void 0 : eventItem.reminder_content),
icon: null,
title: '提示',
centered: true,
okText: "知道了"
});
}, ((answerData === null || answerData === void 0 || (_answerData$exercise5 = answerData.exercise) === null || _answerData$exercise5 === void 0 ? void 0 : _answerData$exercise5.left_time) - (eventItem === null || eventItem === void 0 ? void 0 : eventItem.reminder_time) * 60) * 1000);
countDownRefArr.current.push(timeoutId);
}
};
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
_loop();
}
} catch (err) {
_iterator2.e(err);
} finally {
_iterator2.f();
}
}
}, [answerData === null || answerData === void 0 || (_answerData$exercise6 = answerData.exercise) === null || _answerData$exercise6 === void 0 ? void 0 : _answerData$exercise6.left_time, answerData === null || answerData === void 0 || (_answerData$exercise7 = answerData.exercise) === null || _answerData$exercise7 === void 0 ? void 0 : _answerData$exercise7.exercise_events]);
return clearCountdownTimeout;
};
/***/ }),
/***/ 29292:
/*!******************************!*\
!*** ./src/utils/urlTool.ts ***!
\******************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ G: function() { return /* binding */ fromStore; },
/* harmony export */ t: function() { return /* binding */ toStore; }
/* harmony export */ });
/* harmony import */ var store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! store */ 7062);
/* harmony import */ var store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(store__WEBPACK_IMPORTED_MODULE_0__);
var isDev = (/* unused pure expression or super */ null && ("production" === 'development'));
function toStore(key, val) {
var _config = store__WEBPACK_IMPORTED_MODULE_0___default().get('__ec');
if (!_config) _config = {};
_config[key] = val;
store__WEBPACK_IMPORTED_MODULE_0___default().set('__ec', _config);
}
function fromStore(key, defaultVal) {
var _config = store__WEBPACK_IMPORTED_MODULE_0___default().get('__ec');
if (!_config) return defaultVal;
return _config[key] === undefined ? defaultVal : _config[key];
}
/***/ }),
/***/ 8738:
/*!*********************************************!*\
!*** ./src/assets/images/question/time.svg ***!
\*********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export ReactComponent */
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301);
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 SvgTime = function SvgTime(props) {
return /* @__PURE__ */React.createElement("svg", __spreadValues({
width: 30,
height: 30,
xmlns: "http://www.w3.org/2000/svg"
}, props), /* @__PURE__ */React.createElement("title", null, "\u5360\u7528\u5185\u5B58"), /* @__PURE__ */React.createElement("g", {
fillRule: "nonzero",
fill: "none"
}, /* @__PURE__ */React.createElement("path", {
fillOpacity: 0.01,
fill: "#FFF",
d: "M0 0h30v30H0z"
}), /* @__PURE__ */React.createElement("path", {
d: "M6.866 26.928h-1.28a2.561 2.561 0 0 1-2.562-2.561V5.585a2.561 2.561 0 0 1 2.561-2.56h1.28v4.268a2.561 2.561 0 0 0 2.562 2.56h3.842a2.561 2.561 0 0 0 2.56-2.56V3.024h2.915l8.184 8.184v13.159a2.561 2.561 0 0 1-2.561 2.561h-1.28v-5.976c0-.943-.765-1.707-1.708-1.707H8.573c-.943 0-1.707.764-1.707 1.707v5.976Z",
fill: "#B6D0FC"
}), /* @__PURE__ */React.createElement("path", {
d: "M8.573 3.024h5.55v4.269a.854.854 0 0 1-.854.853H9.427a.854.854 0 0 1-.854-.853V3.024ZM8.573 26.928v-5.976H21.38v5.976z",
fill: "#1890FF"
})));
};
/* harmony default export */ __webpack_exports__.Z = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBmaWxsLW9wYWNpdHk9Ii4wMSIgZmlsbD0iI0ZGRiIgZD0iTTAgMGgzMHYzMEgweiIvPjxwYXRoIGQ9Ik02Ljg2NiAyNi45MjhoLTEuMjhhMi41NjEgMi41NjEgMCAwIDEtMi41NjItMi41NjFWNS41ODVhMi41NjEgMi41NjEgMCAwIDEgMi41NjEtMi41NmgxLjI4djQuMjY4YTIuNTYxIDIuNTYxIDAgMCAwIDIuNTYyIDIuNTZoMy44NDJhMi41NjEgMi41NjEgMCAwIDAgMi41Ni0yLjU2VjMuMDI0aDIuOTE1bDguMTg0IDguMTg0djEzLjE1OWEyLjU2MSAyLjU2MSAwIDAgMS0yLjU2MSAyLjU2MWgtMS4yOHYtNS45NzZjMC0uOTQzLS43NjUtMS43MDctMS43MDgtMS43MDdIOC41NzNjLS45NDMgMC0xLjcwNy43NjQtMS43MDcgMS43MDd2NS45NzZaIiBmaWxsPSIjQjZEMEZDIi8+PHBhdGggZD0iTTguNTczIDMuMDI0aDUuNTV2NC4yNjlhLjg1NC44NTQgMCAwIDEtLjg1NC44NTNIOS40MjdhLjg1NC44NTQgMCAwIDEtLjg1NC0uODUzVjMuMDI0Wk04LjU3MyAyNi45Mjh2LTUuOTc2SDIxLjM4djUuOTc2eiIgZmlsbD0iIzE4OTBGRiIvPjwvZz48L3N2Zz4=");
/***/ }),
/***/ 93602:
/*!**********************************************!*\
!*** ./src/assets/images/question/title.svg ***!
\**********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export ReactComponent */
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301);
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 SvgTitle = function SvgTitle(props) {
return /* @__PURE__ */React.createElement("svg", __spreadValues({
width: 30,
height: 30,
xmlns: "http://www.w3.org/2000/svg"
}, props), /* @__PURE__ */React.createElement("title", null, "\u8FD0\u884C\u65F6\u95F4"), /* @__PURE__ */React.createElement("g", {
fillRule: "nonzero",
fill: "none"
}, /* @__PURE__ */React.createElement("path", {
d: "M30 15c0 8.284-6.716 15-15 15-8.284 0-15-6.716-15-15C0 6.716 6.716 0 15 0c8.284 0 15 6.716 15 15Z",
fill: "#BAFFF0"
}), /* @__PURE__ */React.createElement("path", {
d: "M25.5 15c0 5.8-4.7 10.5-10.5 10.5S4.5 20.8 4.5 15 9.2 4.5 15 4.5 25.5 9.2 25.5 15Z",
fill: "#44D7B6"
}), /* @__PURE__ */React.createElement("path", {
d: "M13.5 9a1.5 1.5 0 0 1 1.5 1.5v4.379l3.56 3.56a1.5 1.5 0 0 1-2.12 2.122l-4-4A1.5 1.5 0 0 1 12 15.5v-5A1.5 1.5 0 0 1 13.5 9Z",
fill: "#FFF"
})));
};
/* harmony default export */ __webpack_exports__.Z = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMzAgMTVjMCA4LjI4NC02LjcxNiAxNS0xNSAxNS04LjI4NCAwLTE1LTYuNzE2LTE1LTE1QzAgNi43MTYgNi43MTYgMCAxNSAwYzguMjg0IDAgMTUgNi43MTYgMTUgMTVaIiBmaWxsPSIjQkFGRkYwIi8+PHBhdGggZD0iTTI1LjUgMTVjMCA1LjgtNC43IDEwLjUtMTAuNSAxMC41UzQuNSAyMC44IDQuNSAxNSA5LjIgNC41IDE1IDQuNSAyNS41IDkuMiAyNS41IDE1WiIgZmlsbD0iIzQ0RDdCNiIvPjxwYXRoIGQ9Ik0xMy41IDlhMS41IDEuNSAwIDAgMSAxLjUgMS41djQuMzc5bDMuNTYgMy41NmExLjUgMS41IDAgMCAxLTIuMTIgMi4xMjJsLTQtNEExLjUgMS41IDAgMCAxIDEyIDE1LjV2LTVBMS41IDEuNSAwIDAgMSAxMy41IDlaIiBmaWxsPSIjRkZGIi8+PC9nPjwvc3ZnPg==");
/***/ }),
/***/ 66152:
/*!******************************************************!*\
!*** ./src/pages/Problems/OjForm/index.less?modules ***!
\******************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__) {
"use strict";
// extracted by mini-css-extract-plugin
/* harmony default export */ __webpack_exports__.Z = ({"header":"header___HqHSe","checkboxs":"checkboxs___ObBnD","field":"field___w_sM6","oj-form-container":"oj-form-container____odYP","oj-left-panel":"oj-left-panel___emEB2","oj-form-info":"oj-form-info___m00Ag","footer":"footer___O4iSJ","collapse":"collapse___Ltfkj","test-case-name":"test-case-name___miZcb","btn-remove-case":"btn-remove-case___cHap2","icon-tag":"icon-tag___gmyTb","btn_back":"btn_back___tNmX3","testJi":"testJi___L3fHb","upBtn":"upBtn___RGH6X","djs":"djs____TS0n","time":"time___IAdHc"});
/***/ }),
/***/ 81574:
/*!****************************************************!*\
!*** ./src/components/tpi-code-setting/index.less ***!
\****************************************************/
/***/ (function() {
"use strict";
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 93314:
/*!********************************************!*\
!*** ./src/assets/images/icons/nodata.png ***!
\********************************************/
/***/ (function(module) {
"use strict";
module.exports = "data:image/png;base64,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";
/***/ }),
/***/ 62522:
/*!*************************************************!*\
!*** ./src/assets/images/question/internal.png ***!
\*************************************************/
/***/ (function(module) {
"use strict";
module.exports = "data:image/png;base64,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";
/***/ }),
/***/ 60141:
/*!***************************************************************!*\
!*** ./src/pages/tasks/code-repository/action-bar/notice.gif ***!
\***************************************************************/
/***/ (function(module) {
"use strict";
module.exports = "data:image/gif;base64,R0lGODlh6QDIAPf/APrMTf789vrMUPvdi/zfkfi4CvvYef713fnKSfzosP7wyvrSZfjAKPzmqf3wzP767fnHPv7xzf3wzvjFOfe2BP767vi8F/i8GPvagfnGO/jDMv3uxv3svfrNUvzkov724fvWcfzinPvbhPi5DfrTZv734vi6EPzglfnKSP3tw/nJR/3qtv3nrPrRYPjAJf/++/702PvVbvrUbfrUafrQX/rOVvnLTfrWcvi+H/i7Fv7y0P3y0/3wyv3uxPzjoPzglvi/I/vejvvZfPe5D/rTaPrPWvrOVPrKSf3vyPzlpPnNU/nKRvnENfe6E/Ly8v3sv+Xl5frZf9ra2vnIQOjo6Pv7+9jY2PX19d7e3tTU1Ovr6/n5+dzc3O7u7uLi4tDQ0M7Oztvb2/j4+N3d3ezs7NHR0f7+/tXV1fHx8fDw8NLS0uHh4d/f3/jAJvb29vT09M/Pz+/v7/f39+rq6uPj49bW1vr6+uDg4NfX1+Tk5PPz89PT0+np6efn59nZ2e3t7frPWfzmqvnFN/39/fz8/P756/723/vdif3ru/745/zhmObm5vrUav3ps/zim/zdiv757Pzlpvzruvzhmfe3Bve3B/zimvvhmvnCK/jAJ//56v/9+f7z1f702vvciPvXdfnBJ/jFN/jDL/735PvZe/e7Ffzjn/e3CPznq/3twf3ruvi+IPnFNvvdjPzps/3psvrOWP702/rQXfvYevnOWfvUav3quPrWdP302//56/i9G/zejP712/778/nIQv3orfnOV/i3BvnGOv/+/frKR/////3nqv3uw/vYd/3y1frUa/713v3ruPvZevrXd/e2BvnEM//+/P7z1v///f3rufnDMPnHQPe2A/i/JPrIQvnMUP3z2PnLSv/88/e8Gv746P7uxfvUa/vgk/vglPzgk/rNVPvaffnBKf3xz/756vi6D/rSYvrVcPe4C/jENvi7E/789PrPWPnIQfzchv3tv/3svvzquf3qufi9Hfi9Hve4DPnCLvjCL/e1AM3Nzf///yH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDJDNDJCNzNGQjY2MTFFREE3MTFEMUFDMEEzQzRDM0MiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDJDNDJCNzRGQjY2MTFFREE3MTFEMUFDMEEzQzRDM0MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMkM0MkI3MUZCNjYxMUVEQTcxMUQxQUMwQTNDNEMzQyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMkM0MkI3MkZCNjYxMUVEQTcxMUQxQUMwQTNDNEMzQyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2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";
/***/ })
}]);