|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[86913,46570],{
|
|
|
|
|
|
/***/ 48553:
|
|
|
/*!*********************************************************!*\
|
|
|
!*** ./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 */ 34941).then(function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(/*! ./web3d */ 36743)]; (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 = (location.hostname === "localhost" ? "" : "/react/build") + "/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;
|
|
|
})();
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 79661:
|
|
|
/*!*********************************!*\
|
|
|
!*** ./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 */ 84666);
|
|
|
|
|
|
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';
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 93433:
|
|
|
/*!*************************************************************!*\
|
|
|
!*** ./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
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 7435:
|
|
|
/*!*************************************************************!*\
|
|
|
!*** ./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_local_v9_test6_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_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test6_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_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_slicedToArray_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test6_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 */ 80577);
|
|
|
/* harmony import */ var codemirror_theme_blackboard_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! codemirror/theme/blackboard.css */ 82612);
|
|
|
/* 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_local_v9_test6_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_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()(_root_workspace_ppte5yg23_local_v9_test6_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,
|
|
|
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_local_v9_test6_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_local_v9_test6_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
|
|
|
})
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 5050:
|
|
|
/*!**************************************************************!*\
|
|
|
!*** ./src/components/markdown-editor/index.tsx + 9 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/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/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__(80577);
|
|
|
// 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__(8292);
|
|
|
// 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: 'md-iconfont icon-formula',
|
|
|
actionName: 'latex'
|
|
|
}, '|', {
|
|
|
title: '添加图片',
|
|
|
icon: 'md-iconfont icon-picture',
|
|
|
actionName: 'upload-image'
|
|
|
}, {
|
|
|
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;
|
|
|
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: "+\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: "+\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"
|
|
|
})
|
|
|
})
|
|
|
}), /*#__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__(39205);
|
|
|
// 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__(24650);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
|
|
|
var es_button = __webpack_require__(3113);
|
|
|
;// CONCATENATED MODULE: ./src/components/markdown-editor/link/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var formItemLayout = {
|
|
|
labelCol: {
|
|
|
span: 4
|
|
|
},
|
|
|
wrapperCol: {
|
|
|
span: 20
|
|
|
}
|
|
|
};
|
|
|
/* harmony default export */ var markdown_editor_link = (function (_ref) {
|
|
|
var callback = _ref.callback,
|
|
|
onCancel = _ref.onCancel;
|
|
|
function onSubmit(values) {
|
|
|
callback(values);
|
|
|
}
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, objectSpread2_default()(objectSpread2_default()({}, formItemLayout), {}, {
|
|
|
initialValues: {
|
|
|
link: 'http://',
|
|
|
title: ''
|
|
|
},
|
|
|
className: "link-panel",
|
|
|
onFinish: onSubmit,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u94FE\u63A5\u5730\u5740",
|
|
|
name: "link",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入链接地址'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u94FE\u63A5\u6807\u9898",
|
|
|
name: "title",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入链接标题'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "flex-container flex-end",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
htmlType: "submit",
|
|
|
style: {
|
|
|
marginRight: 10
|
|
|
},
|
|
|
children: "\u786E\u5B9A"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "ghost",
|
|
|
onClick: onCancel,
|
|
|
children: "\u53D6\u6D88"
|
|
|
})]
|
|
|
})]
|
|
|
}));
|
|
|
});
|
|
|
// EXTERNAL MODULE: ./src/components/markdown-editor/code-block/index.tsx
|
|
|
var code_block = __webpack_require__(7435);
|
|
|
// EXTERNAL MODULE: ./src/components/markdown-editor/upload-image/index.tsx + 1 modules
|
|
|
var upload_image = __webpack_require__(55314);
|
|
|
// 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__(94001);
|
|
|
;// CONCATENATED MODULE: ./src/components/markdown-editor/add-table-panel/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var RadioGroup = es_radio/* default.Group */.ZP.Group;
|
|
|
var 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: style,
|
|
|
children: "\u5355\u5143\u683C\u6570\uFF1A"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
style: 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: 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: style,
|
|
|
children: "\u5BF9\u9F50\u65B9\u5F0F\uFF1A"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
name: "align",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(RadioGroup, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
|
|
|
value: "default",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "fa fa-align-justify"
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
|
|
|
value: "left",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "fa fa-align-left"
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
|
|
|
value: "center",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "fa fa-align-center"
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
|
|
|
value: "right",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "fa fa-align-right"
|
|
|
})
|
|
|
})]
|
|
|
})
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "flex-container flex-end",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
htmlType: "submit",
|
|
|
style: {
|
|
|
marginRight: 10
|
|
|
},
|
|
|
children: "\u786E\u5B9A"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "ghost",
|
|
|
onClick: onCancel,
|
|
|
children: "\u53D6\u6D88"
|
|
|
})]
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
|
|
|
var env = __webpack_require__(84666);
|
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
|
var fetch = __webpack_require__(67444);
|
|
|
// EXTERNAL MODULE: ./node_modules/_uuid@8.3.0@uuid/dist/esm-browser/v4.js + 4 modules
|
|
|
var v4 = __webpack_require__(1012);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules
|
|
|
var message = __webpack_require__(8591);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
|
|
|
var es_modal = __webpack_require__(43418);
|
|
|
;// CONCATENATED MODULE: ./src/components/markdown-editor/constant.ts
|
|
|
var LINK = 'link';
|
|
|
var UPLOAD_IMAGE = 'upload-image';
|
|
|
var CODE_BLOCK = 'code-block';
|
|
|
var ADD_TABLE = 'add-table';
|
|
|
var HRLINE = '------------';
|
|
|
var ALIGNSIGN = {
|
|
|
"default": HRLINE,
|
|
|
left: ":".concat(HRLINE),
|
|
|
center: ":".concat(HRLINE, ":"),
|
|
|
right: "".concat(HRLINE, ":")
|
|
|
};
|
|
|
// EXTERNAL MODULE: ./src/components/useInterval.tsx
|
|
|
var useInterval = __webpack_require__(6487);
|
|
|
// 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/switch/index.js + 2 modules
|
|
|
var es_switch = __webpack_require__(78673);
|
|
|
// EXTERNAL MODULE: ./src/components/MathematicalGraphics/js/index.js
|
|
|
var js = __webpack_require__(48553);
|
|
|
var js_default = /*#__PURE__*/__webpack_require__.n(js);
|
|
|
;// CONCATENATED MODULE: ./src/components/MathematicalGraphics/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var 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 = (FlowChart);
|
|
|
// EXTERNAL MODULE: ./src/components/MathsLatexKeybords/keybords.tsx
|
|
|
var keybords = __webpack_require__(22262);
|
|
|
;// 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模板正文内容,可输入文本内容和粘贴图片等操作'; //课程须知模板
|
|
|
function processSize(size) {
|
|
|
return !/^\d+$/.test(size) ? size : "".concat(size, "px");
|
|
|
}
|
|
|
var isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;
|
|
|
var key = isMac ? 'Cmd' : 'Ctrl';
|
|
|
var officeSix = ["pptm", "pptx", "ppt", "pot", "pps", "ppa", "potx", "ppsx", "ppam", "pptm", "potm", "ppsm", "doc", "docx", "dot", "dotx", "docm", "dotm", "xls", "xlsx", "csv", "xlt", "xla", "xltx", "xlsm", "xltm", "xlam", "xlsb"];
|
|
|
var DEFAULTKEYMAP = defineProperty_default()(defineProperty_default()({}, key + '-B', 'bold'), key + '-I', 'italic');
|
|
|
var TitleDesc = defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()({}, LINK, '添加链接'), CODE_BLOCK, '添加代码块'), UPLOAD_IMAGE, '添加文件'), 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;
|
|
|
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 uuidRef = (0,_react_17_0_2_react.useRef)((0,v4/* default */.Z)());
|
|
|
var openPhoneRef = (0,_react_17_0_2_react.useRef)(false);
|
|
|
var timer = (0,_react_17_0_2_react.useRef)();
|
|
|
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)();
|
|
|
var checkFiles = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var _res$attachments;
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
_context.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/attachments/distinct_hash_val.json", {
|
|
|
method: "post",
|
|
|
body: {
|
|
|
hash_val: uuidRef.current
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context.sent;
|
|
|
if (!!(res !== null && res !== void 0 && (_res$attachments = res.attachments) !== null && _res$attachments !== void 0 && _res$attachments.length)) {
|
|
|
console.log("cm:", cm, cmEl);
|
|
|
res.attachments.map(function (item) {
|
|
|
if (item.content_type.indexOf("image") > -1) {
|
|
|
cm.replaceSelection(".concat(item.content_type, ")"));
|
|
|
} else if (item.content_type.indexOf("video") > -1) {
|
|
|
cm.replaceSelection("<video width=\"100%\" controls src=\"".concat(env/* default */.Z.API_SERVER, "/api/attachments/").concat(data.id, "\"></video>"));
|
|
|
} else if (item.content_type.indexOf("pdf") > -1) {
|
|
|
cm.replaceSelection("<a href=\"".concat(env/* default */.Z.API_SERVER, "/api/attachments/").concat(item.id, "?type=").concat(item.content_type, "&disposition=inline\" target=\"_blank\">").concat(item.name, "</a>"));
|
|
|
} else {
|
|
|
cm.replaceSelection("[".concat(item.name, "](").concat(env/* default */.Z.API_SERVER, "/api/attachments/").concat(item.id, "?type=").concat(item.content_type, ")"));
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function checkFiles() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
|
|
|
// useEffect(() => {
|
|
|
// setValue(defaultValue)
|
|
|
// cm?.setValue(defaultValue)
|
|
|
// },[])
|
|
|
(0,_react_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))
|
|
|
(0,upload_image/* uploadImage */.I)(file, function (data) {
|
|
|
if (data.id) {
|
|
|
var _file$type, _file$type2, _file$type3;
|
|
|
if ((file === null || file === void 0 || (_file$type = file.type) === null || _file$type === void 0 ? void 0 : _file$type.indexOf("image")) > -1) {
|
|
|
instance.replaceSelection(".concat(data.content_type, ")"));
|
|
|
} else if ((file === null || file === void 0 || (_file$type2 = file.type) === null || _file$type2 === void 0 ? void 0 : _file$type2.indexOf("video")) > -1) {
|
|
|
instance.replaceSelection("<video width=\"100%\" controls src=\"".concat(env/* default */.Z.API_SERVER, "/api/attachments/").concat(data.id, "\"></video>"));
|
|
|
} else if ((file === null || file === void 0 || (_file$type3 = file.type) === null || _file$type3 === void 0 ? void 0 : _file$type3.indexOf("pdf")) > -1) {
|
|
|
instance.replaceSelection("<a href=\"".concat(env/* default */.Z.API_SERVER, "/api/attachments/").concat(data.id, "?type=").concat(file.type, "&disposition=inline\" target=\"_blank\">").concat(file.name, "</a>"));
|
|
|
} else if (officeSix.includes(fileSix)) {
|
|
|
instance.replaceSelection("<a href=\"".concat(env/* default */.Z.API_SERVER, "/api/attachments/").concat(data.id, "?type=office&disposition=inline\" target=\"_blank\">").concat(file.name, "</a>"));
|
|
|
} else {
|
|
|
instance.replaceSelection("[".concat(file.name, "](").concat(env/* default */.Z.API_SERVER, "/api/attachments/").concat(data.id, "?type=").concat(data.content_type, ")"));
|
|
|
}
|
|
|
} else {
|
|
|
if ((data === null || data === void 0 ? void 0 : data.status) === 401) document.location.href = '/user/login';
|
|
|
}
|
|
|
});
|
|
|
} catch (e) {
|
|
|
message/* default */.ZP.warning("请使用chrome浏览器粘贴");
|
|
|
}
|
|
|
return true;
|
|
|
} else {
|
|
|
//toMarkdown ?
|
|
|
// let html = clipboardData.getData('text/html')
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
|
};
|
|
|
var instance = codemirror_default().fromTextArea(cmEl.current, {
|
|
|
mode: mode,
|
|
|
// inputStyle: 'contenteditable',
|
|
|
lineNumbers: miniToolbar ? false : true,
|
|
|
lineWrapping: true,
|
|
|
value: defaultValue,
|
|
|
autoCloseTags: showNullProgramButton ? false : true,
|
|
|
autoCloseBrackets: true
|
|
|
});
|
|
|
instance.on("keyup", function (cm, event) {
|
|
|
if (event.keyCode === 8) {
|
|
|
if (cm.getValue() == "") {
|
|
|
instance.setOption("placeholder", placeholder);
|
|
|
} else {
|
|
|
instance.setOption("placeholder", null);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
instance.on("keydown", function (cm, event) {
|
|
|
if (event.keyCode === 8) {
|
|
|
var pos = deleteAtSymbol(cm);
|
|
|
if (pos) {
|
|
|
event.preventDefault();
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
isFocus && instance.focus();
|
|
|
instance.on('paste', onPaste);
|
|
|
instance.on('dragleave', function (data, e) {
|
|
|
containerEl.current.classList.remove("mouse-hover-md");
|
|
|
});
|
|
|
instance.on('dragover', function (data, e) {
|
|
|
containerEl.current.classList.add("mouse-hover-md");
|
|
|
});
|
|
|
instance.on('drop', function (data, e) {
|
|
|
containerEl.current.classList.add("mouse-hover-md");
|
|
|
// var file;
|
|
|
var files;
|
|
|
// Check if files were dropped
|
|
|
files = e.dataTransfer.files;
|
|
|
if (files.length > 0) {
|
|
|
e.preventDefault();
|
|
|
e.stopPropagation();
|
|
|
// file = files[0];
|
|
|
// alert('File: ' + file.name);
|
|
|
// return false;
|
|
|
var _loop = function _loop() {
|
|
|
var file = files[i];
|
|
|
var fileSix = file.name.split(".").pop();
|
|
|
(0,upload_image/* uploadImage */.I)(file, function (data) {
|
|
|
if (data.id) {
|
|
|
var _file$type4, _file$type5, _file$type6;
|
|
|
if ((file === null || file === void 0 || (_file$type4 = file.type) === null || _file$type4 === void 0 ? void 0 : _file$type4.indexOf("image")) > -1) {
|
|
|
instance.replaceSelection(".concat(data.content_type, ")"));
|
|
|
} else if ((file === null || file === void 0 || (_file$type5 = file.type) === null || _file$type5 === void 0 ? void 0 : _file$type5.indexOf("video")) > -1) {
|
|
|
instance.replaceSelection("<video width=\"100%\" controls src=\"".concat(env/* default */.Z.API_SERVER, "/api/attachments/").concat(data.id, "\"></video>"));
|
|
|
} else if ((file === null || file === void 0 || (_file$type6 = file.type) === null || _file$type6 === void 0 ? void 0 : _file$type6.indexOf("pdf")) > -1) {
|
|
|
instance.replaceSelection("<a href=\"".concat(env/* default */.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';
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
for (var i = 0; i < files.length; i++) {
|
|
|
_loop();
|
|
|
}
|
|
|
// files.map((file:any) => {
|
|
|
|
|
|
// })
|
|
|
}
|
|
|
});
|
|
|
if (disabled) {
|
|
|
instance.on("beforeChange", function (instances, change) {
|
|
|
if (change.origin === "paste" || change.origin === "+input") {
|
|
|
change.cancel();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
setCm(instance);
|
|
|
return function () {
|
|
|
instance.off('paste', onPaste);
|
|
|
};
|
|
|
}
|
|
|
}, []);
|
|
|
var resizeEditorBodyHeight = (0,_react_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 _loop2 = function _loop2() {
|
|
|
var _Object$entries$_i = slicedToArray_default()(_Object$entries[_i], 2),
|
|
|
k = _Object$entries$_i[0],
|
|
|
value = _Object$entries$_i[1];
|
|
|
var map = defineProperty_default()({}, k, function () {
|
|
|
onActionCallback(value);
|
|
|
});
|
|
|
keymap.push(map);
|
|
|
cm.addKeyMap(map);
|
|
|
};
|
|
|
for (var _i = 0, _Object$entries = Object.entries(DEFAULTKEYMAP); _i < _Object$entries.length; _i++) {
|
|
|
_loop2();
|
|
|
}
|
|
|
timer.current = setInterval(function () {
|
|
|
if (openPhoneRef.current) {
|
|
|
checkFiles();
|
|
|
}
|
|
|
}, 4000);
|
|
|
return function () {
|
|
|
clearInterval(timer.current);
|
|
|
for (var _i2 = 0, _keymap = keymap; _i2 < _keymap.length; _i2++) {
|
|
|
var m = _keymap[_i2];
|
|
|
cm.removeKeyMap(m);
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
}, [cm]);
|
|
|
(0,_react_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 "maths-latex":
|
|
|
setAction("maths-latex");
|
|
|
return;
|
|
|
case LINK:
|
|
|
setAction(LINK);
|
|
|
return;
|
|
|
case CODE_BLOCK:
|
|
|
setAction(CODE_BLOCK);
|
|
|
return;
|
|
|
case UPLOAD_IMAGE:
|
|
|
setAction(UPLOAD_IMAGE);
|
|
|
return;
|
|
|
case ADD_TABLE:
|
|
|
setAction(ADD_TABLE);
|
|
|
return;
|
|
|
default:
|
|
|
throw new Error();
|
|
|
}
|
|
|
}, [cm, preview, isFull]);
|
|
|
var ExecutePluginAction = (0,_react_17_0_2_react.useCallback)(function (values) {
|
|
|
setAction('');
|
|
|
switch (action) {
|
|
|
case LINK:
|
|
|
var title = values.title,
|
|
|
link = values.link;
|
|
|
cm.replaceSelection("[".concat(title, "](").concat(link, ")"));
|
|
|
return cm.focus();
|
|
|
case CODE_BLOCK:
|
|
|
var language = values.language,
|
|
|
content = values.content;
|
|
|
cm.replaceSelection(['```' + language, content, '```'].join('\n'));
|
|
|
return cm.focus();
|
|
|
case "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"
|
|
|
});
|
|
|
(0,upload_image/* uploadImage */.I)(files, function (data) {
|
|
|
if (data.id) {
|
|
|
cm.replaceSelection(".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:
|
|
|
var src = values.src,
|
|
|
alt = values.alt;
|
|
|
if (alt) {
|
|
|
cm.replaceSelection(".concat(src, " \"").concat(alt, "\" )"));
|
|
|
} else {
|
|
|
cm.replaceSelection(""));
|
|
|
}
|
|
|
return cm.focus();
|
|
|
case ADD_TABLE:
|
|
|
var row = values.row,
|
|
|
col = values.col,
|
|
|
align = values.align;
|
|
|
var table = '\n';
|
|
|
for (var r = 0; r < row; r++) {
|
|
|
var rows = [];
|
|
|
var heads = [];
|
|
|
for (var c = 0; c < col; c++) {
|
|
|
if (r === 1) {
|
|
|
heads.push(ALIGNSIGN[align]);
|
|
|
}
|
|
|
rows.push(' ');
|
|
|
}
|
|
|
if (r === 1) {
|
|
|
table += "| ".concat(heads.join(' | '), " |\n");
|
|
|
}
|
|
|
table += "| ".concat(rows.join(col === 1 ? '' : ' | '), " |\n");
|
|
|
}
|
|
|
cm.replaceSelection(table + '\n');
|
|
|
return cm.focus();
|
|
|
default:
|
|
|
throw new Error();
|
|
|
}
|
|
|
}, [cm, action]);
|
|
|
var PluginEl = (0,_react_17_0_2_react.useMemo)(function () {
|
|
|
switch (action) {
|
|
|
case LINK:
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor_link, {
|
|
|
callback: ExecutePluginAction,
|
|
|
onCancel: onCancel
|
|
|
});
|
|
|
case CODE_BLOCK:
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(code_block/* default */.Z, {
|
|
|
callback: ExecutePluginAction,
|
|
|
onCancel: onCancel
|
|
|
});
|
|
|
case UPLOAD_IMAGE:
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(upload_image/* default */.Z, {
|
|
|
callback: ExecutePluginAction,
|
|
|
onCancel: onCancel
|
|
|
});
|
|
|
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));
|
|
|
}
|
|
|
function setValues(a, b) {
|
|
|
var content = cm.getValue();
|
|
|
content = content.replace(a, b);
|
|
|
setValue(content);
|
|
|
cm === null || cm === void 0 || cm.setValue(content);
|
|
|
}
|
|
|
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,
|
|
|
uuid: uuidRef.current,
|
|
|
setOpenPhones: function setOpenPhones() {
|
|
|
openPhoneRef.current = true;
|
|
|
}
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "markdown-editor-body",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "codemirror-container",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("textarea", {
|
|
|
ref: cmEl,
|
|
|
placeholder: placeholder
|
|
|
})
|
|
|
}), preview ? /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
ref: previewEl,
|
|
|
className: "preview-container",
|
|
|
children: [mode === "stex" && /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml_stex, {
|
|
|
value: value
|
|
|
}), mode !== "stex" && /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
|
|
|
disabledFill: disabledFill,
|
|
|
showProgramFill: showNullProgramButton,
|
|
|
value: value
|
|
|
})]
|
|
|
}) : null]
|
|
|
})]
|
|
|
})
|
|
|
}), showResizeBar ? /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
ref: resizeBarEl,
|
|
|
className: "editor-resize"
|
|
|
}) : null, /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
children: TitleDesc[action] ? /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
title: TitleDesc[action],
|
|
|
open: true,
|
|
|
onCancel: onCancel,
|
|
|
footer: null,
|
|
|
width: null,
|
|
|
className: "markdown-popup-form",
|
|
|
children: PluginEl
|
|
|
}) : null
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 55314:
|
|
|
/*!***************************************************************************!*\
|
|
|
!*** ./src/components/markdown-editor/upload-image/index.tsx + 1 modules ***!
|
|
|
\***************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ upload_image; },
|
|
|
I: function() { return /* binding */ uploadImage; }
|
|
|
});
|
|
|
|
|
|
// 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/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);
|
|
|
// 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/message/index.js + 4 modules
|
|
|
var message = __webpack_require__(8591);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 5 modules
|
|
|
var input = __webpack_require__(24650);
|
|
|
// 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/upload-image/index.less
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
// EXTERNAL MODULE: ./src/pages/tasks/util.js
|
|
|
var util = __webpack_require__(79661);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/components/markdown-editor/upload-image/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var useForm = es_form/* default */.Z.useForm;
|
|
|
var style = {
|
|
|
width: 280,
|
|
|
marginRight: 10
|
|
|
};
|
|
|
var formItemLayout = {
|
|
|
labelCol: {
|
|
|
span: 5
|
|
|
},
|
|
|
wrapperCol: {
|
|
|
span: 19
|
|
|
}
|
|
|
};
|
|
|
/* harmony default export */ var upload_image = (function (_ref) {
|
|
|
var callback = _ref.callback,
|
|
|
onCancel = _ref.onCancel;
|
|
|
var _useForm = useForm(),
|
|
|
_useForm2 = slicedToArray_default()(_useForm, 1),
|
|
|
form = _useForm2[0];
|
|
|
var nameRef = (0,_react_17_0_2_react.useRef)();
|
|
|
function onSubmit(values) {
|
|
|
callback(objectSpread2_default()(objectSpread2_default()({}, values), {}, {
|
|
|
name: nameRef.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];
|
|
|
nameRef.current = file.name;
|
|
|
uploadImage(file, onAddUrl);
|
|
|
}
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, objectSpread2_default()(objectSpread2_default()({
|
|
|
form: form
|
|
|
}, 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);
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 39205:
|
|
|
/*!**********************************!*\
|
|
|
!*** ./src/components/modal.tsx ***!
|
|
|
\**********************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ Z: function() { return /* binding */ Dialog; }
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/classCallCheck.js */ 82100);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/createClass.js */ 29186);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/inherits.js */ 80619);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/createSuper.js */ 47074);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3__);
|
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ 59301);
|
|
|
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-dom */ 4676);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Dialog = /*#__PURE__*/function (_React$Component) {
|
|
|
_root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default()(Dialog, _React$Component);
|
|
|
var _super = _root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default()(Dialog);
|
|
|
function Dialog(props) {
|
|
|
var _this;
|
|
|
_root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0___default()(this, Dialog);
|
|
|
_this = _super.call(this, props);
|
|
|
var doc = window.document;
|
|
|
_this.node = doc.createElement('div');
|
|
|
doc.body.appendChild(_this.node);
|
|
|
return _this;
|
|
|
}
|
|
|
_root_workspace_ppte5yg23_local_v9_test6_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1___default()(Dialog, [{
|
|
|
key: "render",
|
|
|
value: function render() {
|
|
|
var children = this.props.children;
|
|
|
return /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_5__.createPortal)(children, this.node);
|
|
|
}
|
|
|
}, {
|
|
|
key: "componentWillUnmount",
|
|
|
value: function componentWillUnmount() {
|
|
|
window.document.body.removeChild(this.node);
|
|
|
}
|
|
|
}]);
|
|
|
return Dialog;
|
|
|
}(react__WEBPACK_IMPORTED_MODULE_4__.Component);
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 45100:
|
|
|
/*!*********************************************************!*\
|
|
|
!*** ./src/components/tpi-code-setting/CodeSetting.tsx ***!
|
|
|
\*********************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301);
|
|
|
/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.less */ 5145);
|
|
|
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd */ 57809);
|
|
|
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd */ 78673);
|
|
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ 37712);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Option = antd__WEBPACK_IMPORTED_MODULE_3__["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;
|
|
|
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "tpi-code-setting ".concat(className),
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("h3", {
|
|
|
children: "\u4EE3\u7801\u683C\u5F0F"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("section", {
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u663E\u793A\u6A21\u5F0F"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_3__["default"], {
|
|
|
bordered: false,
|
|
|
size: "small",
|
|
|
value: cmCodeMode,
|
|
|
onChange: onCodeModeChange,
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 'vs',
|
|
|
children: "\u767D\u8272\u80CC\u666F"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 'vs-dark',
|
|
|
children: "\u9ED1\u8272\u80CC\u666F"
|
|
|
})]
|
|
|
})]
|
|
|
}), !isTheoretical && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u5B57\u4F53\u5927\u5C0F"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_3__["default"], {
|
|
|
bordered: false,
|
|
|
size: "small",
|
|
|
value: cmFontSize,
|
|
|
onChange: onFontSizeChange,
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 12,
|
|
|
children: "12px"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 14,
|
|
|
children: "14px"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 16,
|
|
|
children: "16px"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 18,
|
|
|
children: "18px"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 20,
|
|
|
children: "20px"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 22,
|
|
|
children: "22px"
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "Tab\u8F6C\u6362"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
|
|
|
checked: tabToSpace,
|
|
|
onChange: onTabToSpace
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
|
|
|
className: "file-item",
|
|
|
onClick: formatDocument,
|
|
|
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
style: {
|
|
|
cursor: "pointer"
|
|
|
},
|
|
|
children: "\u683C\u5F0F\u5316\u4EE3\u7801"
|
|
|
})
|
|
|
})]
|
|
|
})]
|
|
|
}), !isTheoretical && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("h3", {
|
|
|
children: "\u5FEB\u6377\u952E"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("section", {
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u4FDD\u5B58\u4EE3\u7801"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
|
|
|
children: "Ctrl + S"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u5524\u51FA\u5FEB\u6377\u952E\u5217\u8868"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
|
|
|
children: "F1 / Alt + F1"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u5DE6\u53F3\u7F29\u8FDB"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
|
|
|
children: "Ctrl + ]/["
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u8DF3\u5230\u5339\u914D\u7684\u62EC\u53F7"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
|
|
|
children: "Ctrl + Shift + \\"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u8F6C\u5230\u884C\u9996"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
|
|
|
children: "Home"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u8F6C\u5230\u884C\u5C3E"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
|
|
|
children: "End"
|
|
|
})]
|
|
|
})]
|
|
|
}), children]
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 6487:
|
|
|
/*!****************************************!*\
|
|
|
!*** ./src/components/useInterval.tsx ***!
|
|
|
\****************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ Z: function() { return /* binding */ useInterval; }
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301);
|
|
|
|
|
|
function useInterval(callback, delay) {
|
|
|
var savedCallback = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
|
|
|
|
|
|
// 保存新回调
|
|
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
|
|
|
savedCallback.current = callback;
|
|
|
});
|
|
|
|
|
|
// 建立 interval
|
|
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
|
|
|
function tick() {
|
|
|
savedCallback.current();
|
|
|
}
|
|
|
if (delay !== null) {
|
|
|
var id = setInterval(tick, delay);
|
|
|
return function () {
|
|
|
return clearInterval(id);
|
|
|
};
|
|
|
}
|
|
|
}, [delay]);
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 919:
|
|
|
/*!************************************************************!*\
|
|
|
!*** ./src/pages/Question/AddOrEdit/index.tsx + 7 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__, {
|
|
|
Types: function() { return /* binding */ AddOrEdit_Types; },
|
|
|
"default": function() { return /* binding */ AddOrEdit; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectDestructuringEmpty.js
|
|
|
var objectDestructuringEmpty = __webpack_require__(70236);
|
|
|
var objectDestructuringEmpty_default = /*#__PURE__*/__webpack_require__.n(objectDestructuringEmpty);
|
|
|
// 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/_@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/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);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var AddOrEditmodules = ({"header":"header___N_IdR","field":"field___XG_dh","oj-form-container":"oj-form-container___syYzK","oj-left-panel":"oj-left-panel___L082x","oj-form-info":"oj-form-info___q0IU5","footer":"footer___pGCM2","result":"result___LM9Ms","passText":"passText___nUoL4","noPassText":"noPassText___ECHHG","pass":"pass___tDubp","noPass":"noPass___ilYvg","test-case-name":"test-case-name___MI_KD","btn-remove-case":"btn-remove-case___OiaTQ","icon-tag":"icon-tag___D86WO","btn_back":"btn_back___FyaSY","testJi":"testJi___NDviK","upBtn":"upBtn___FiZX4","oj-problems":"oj-problems___xb70g","row":"row___v036E","a":"a___yRaYH","b":"b___gWQyu","inputTwo":"inputTwo___IZ9og","inputOne":"inputOne____NmcT","cusModal":"cusModal___fJ5gm","oj-custom-large-spin":"oj-custom-large-spin___Aar0g","MdEditor":"MdEditor___hgoes"});
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 5 modules
|
|
|
var input = __webpack_require__(24650);
|
|
|
// 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/collapse/index.js + 8 modules
|
|
|
var collapse = __webpack_require__(36381);
|
|
|
// 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/message/index.js + 4 modules
|
|
|
var message = __webpack_require__(8591);
|
|
|
// 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/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/table/index.js + 85 modules
|
|
|
var table = __webpack_require__(51945);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/select/index.js
|
|
|
var es_select = __webpack_require__(57809);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input-number/index.js + 14 modules
|
|
|
var input_number = __webpack_require__(94001);
|
|
|
// 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/checkbox/index.js + 3 modules
|
|
|
var es_checkbox = __webpack_require__(24905);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/space/index.js + 3 modules
|
|
|
var space = __webpack_require__(81327);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/popconfirm/index.js + 2 modules
|
|
|
var popconfirm = __webpack_require__(14478);
|
|
|
// 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/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/util.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Option = es_select["default"].Option;
|
|
|
var Keys = /*#__PURE__*/function (Keys) {
|
|
|
Keys[Keys["language"] = 0] = "language";
|
|
|
Keys[Keys["difficulty"] = 1] = "difficulty";
|
|
|
Keys[Keys["category"] = 2] = "category";
|
|
|
Keys[Keys["openOrNot"] = 3] = "openOrNot";
|
|
|
return Keys;
|
|
|
}({});
|
|
|
var Options = defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()({}, Keys.language, [{
|
|
|
title: 'C',
|
|
|
key: 'C'
|
|
|
}, {
|
|
|
title: 'C++',
|
|
|
key: 'C++'
|
|
|
}, {
|
|
|
title: 'Python',
|
|
|
key: 'Python'
|
|
|
}, {
|
|
|
title: 'Java',
|
|
|
key: 'Java'
|
|
|
}, {
|
|
|
title: 'JavaScript',
|
|
|
key: 'JavaScript'
|
|
|
}, {
|
|
|
title: 'Ruby',
|
|
|
key: 'Ruby'
|
|
|
}]), Keys.difficulty, [{
|
|
|
title: '简单',
|
|
|
key: 1
|
|
|
}, {
|
|
|
title: '适中',
|
|
|
key: 2
|
|
|
}, {
|
|
|
title: '困难',
|
|
|
key: 3
|
|
|
}]), Keys.category, [{
|
|
|
title: '程序设计',
|
|
|
key: 1
|
|
|
}, {
|
|
|
title: '算法',
|
|
|
key: 2
|
|
|
}]), Keys.openOrNot, [{
|
|
|
title: '公开',
|
|
|
key: 1
|
|
|
}, {
|
|
|
title: '私有',
|
|
|
key: 0
|
|
|
}]);
|
|
|
function getSelectOptions(name) {
|
|
|
return Options[name].map(function (item) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(Option, {
|
|
|
value: item.key,
|
|
|
children: [" ", item.title, " "]
|
|
|
}, item.title);
|
|
|
});
|
|
|
}
|
|
|
function getDisciplineOptions(data, result) {
|
|
|
data.map(function (value) {
|
|
|
var id = value.id,
|
|
|
name = value.name,
|
|
|
sub_disciplines = value.sub_disciplines;
|
|
|
var item = {
|
|
|
value: id,
|
|
|
label: name
|
|
|
};
|
|
|
result.push(item);
|
|
|
if (sub_disciplines && sub_disciplines.length > 0) {
|
|
|
item.children = [];
|
|
|
getDisciplineOptions(sub_disciplines, item.children);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function getDisciplineIds(data, sub_disciplines_id) {
|
|
|
var rs = [];
|
|
|
for (var index = 0; index < data.length; index++) {
|
|
|
var _value$sub_discipline;
|
|
|
var value = data[index];
|
|
|
if (((_value$sub_discipline = value.sub_disciplines) === null || _value$sub_discipline === void 0 ? void 0 : _value$sub_discipline.length) > 0) {
|
|
|
rs[0] = value.id;
|
|
|
for (var j = 0; j < value.sub_disciplines.length; j++) {
|
|
|
var item = value.sub_disciplines[j];
|
|
|
if (item.id === sub_disciplines_id) {
|
|
|
rs[1] = item.id;
|
|
|
return [rs, item.tag_disciplines || item.sub_disciplines || []];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return [rs, []];
|
|
|
}
|
|
|
// EXTERNAL MODULE: ./src/.umi-production/exports.ts
|
|
|
var _umi_production_exports = __webpack_require__(33936);
|
|
|
// EXTERNAL MODULE: ./node_modules/_js-base64@2.6.4@js-base64/base64.js
|
|
|
var base64 = __webpack_require__(24334);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/PoweroffOutlined.js + 1 modules
|
|
|
var PoweroffOutlined = __webpack_require__(29419);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/CloseCircleOutlined.js + 1 modules
|
|
|
var CloseCircleOutlined = __webpack_require__(80117);
|
|
|
// EXTERNAL MODULE: ./src/components/markdown-editor/index.tsx + 9 modules
|
|
|
var markdown_editor = __webpack_require__(5050);
|
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
|
var fetch = __webpack_require__(67444);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/service.ts
|
|
|
|
|
|
function addProgrammingTopic(params) {
|
|
|
return (0,fetch/* post */.v_)("practices.json", params);
|
|
|
}
|
|
|
function getUser() {
|
|
|
return (0,fetch/* get */.U2)('problems/new.json');
|
|
|
}
|
|
|
function getProgrammingTopic(id) {
|
|
|
return (0,fetch/* get */.U2)("practices/".concat(id, "/edit.json"));
|
|
|
}
|
|
|
function updateProgrammingTopic(id, params) {
|
|
|
return (0,fetch/* put */.gz)("practices/".concat(id), params);
|
|
|
}
|
|
|
function addExerciseQuestion(exerciseId, params) {
|
|
|
return post("exercises/".concat(exerciseId, "/exercise_questions.json"), params);
|
|
|
}
|
|
|
function updateExerciseQuestion(id, params) {
|
|
|
return put("exercise_questions/".concat(id, ".json"), params);
|
|
|
}
|
|
|
// EXTERNAL MODULE: ./src/components/SplitContainer/index.tsx + 1 modules
|
|
|
var SplitContainer = __webpack_require__(93433);
|
|
|
// 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 + 3 modules
|
|
|
var monaco_editor = __webpack_require__(97704);
|
|
|
// EXTERNAL MODULE: ./src/components/tpi-code-setting/CodeSetting.tsx
|
|
|
var CodeSetting = __webpack_require__(45100);
|
|
|
// EXTERNAL MODULE: ./src/components/modal.tsx
|
|
|
var modal = __webpack_require__(39205);
|
|
|
// EXTERNAL MODULE: ./src/utils/urlTool.ts
|
|
|
var urlTool = __webpack_require__(67200);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/CodePanel/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var CodePanelmodules = ({"code-panel-container":"code-panel-container___BZjjl","action-oj-bar":"action-oj-bar___xbXpK","active":"active___EMVKI"});
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/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 value = _ref.value,
|
|
|
onChange = _ref.onChange,
|
|
|
language = _ref.language,
|
|
|
onLanguage = _ref.onLanguage,
|
|
|
languageItems = _ref.languageItems,
|
|
|
_ref$ActionBarRender = _ref.ActionBarRender,
|
|
|
ActionBarRender = _ref$ActionBarRender === void 0 ? function (onShowCodeSetting) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(DefaultActionBar, {
|
|
|
languageItems: languageItems,
|
|
|
onLanguage: onLanguage,
|
|
|
language: language,
|
|
|
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;
|
|
|
console.log(value, language, 'value');
|
|
|
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: onChange,
|
|
|
theme: theme,
|
|
|
height: 'calc(100% - 56px)',
|
|
|
options: {
|
|
|
fontSize: fontSize,
|
|
|
insertSpaces: tabToSpace
|
|
|
}
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: CodePanelmodules["code-panel-container"],
|
|
|
children: [ActionBarRender(onShowCodeSetting), /*#__PURE__*/(0,jsx_runtime.jsx)(monaco_editor/* default */.ZP, objectSpread2_default()({}, editorOption), language)]
|
|
|
}), /*#__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 languageItems = _ref2.languageItems,
|
|
|
language = _ref2.language,
|
|
|
onShowCodeSetting = _ref2.onShowCodeSetting,
|
|
|
onLanguage = _ref2.onLanguage;
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: CodePanelmodules["action-oj-bar"],
|
|
|
children: [languageItems === null || languageItems === void 0 ? void 0 : languageItems.map(function (e) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: language === (e === null || e === void 0 ? void 0 : e.language) ? CodePanelmodules.active : '',
|
|
|
onClick: function onClick() {
|
|
|
return onLanguage(e === null || e === void 0 ? void 0 : e.language);
|
|
|
},
|
|
|
children: e === null || e === void 0 ? void 0 : e.language
|
|
|
}, e === null || e === void 0 ? void 0 : e.language);
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
onClick: onShowCodeSetting,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-shezhi"
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
}
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tabs/index.js + 24 modules
|
|
|
var tabs = __webpack_require__(99313);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/ManageModal/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var ManageModalmodules = ({"flex_box_center":"flex_box_center___4yAaY","flex_space_between":"flex_space_between___YaUgM","flex_box_vertical_center":"flex_box_vertical_center___zR3dp","flex_box_center_end":"flex_box_center_end___rwgS5","flex_box_column":"flex_box_column___LhFeP","wrap":"wrap___xTL91","in":"in___eSY86","btns":"btns___UdEGI","customModal":"customModal___CL0OL"});
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/ManageModal/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var ManageModal = function ManageModal(_ref) {
|
|
|
var visible = _ref.visible,
|
|
|
onOK = _ref.onOK,
|
|
|
onCancel = _ref.onCancel;
|
|
|
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)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
btnLoading = _useState4[0],
|
|
|
setBtnLoading = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)('1'),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
active = _useState6[0],
|
|
|
setActive = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)(''),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
text = _useState8[0],
|
|
|
setText = _useState8[1];
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
dataSource = _useState10[0],
|
|
|
setDataSource = _useState10[1];
|
|
|
var add = /*#__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:
|
|
|
if (text) {
|
|
|
_context.next = 3;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.warning("\u9898\u76EE".concat(title, "\u4E0D\u80FD\u4E3A\u7A7A"));
|
|
|
return _context.abrupt("return");
|
|
|
case 3:
|
|
|
setBtnLoading(true);
|
|
|
_context.next = 6;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
target: visible,
|
|
|
name: text
|
|
|
}
|
|
|
});
|
|
|
case 6:
|
|
|
res = _context.sent;
|
|
|
if (!((res === null || res === void 0 ? void 0 : res.status) === 0)) {
|
|
|
_context.next = 10;
|
|
|
break;
|
|
|
}
|
|
|
onOK();
|
|
|
return _context.abrupt("return");
|
|
|
case 10:
|
|
|
setBtnLoading(false);
|
|
|
case 11:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function add() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var getPointData = /*#__PURE__*/function () {
|
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
|
|
|
var search,
|
|
|
res,
|
|
|
_args2 = arguments;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
search = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : '';
|
|
|
setLoading(true);
|
|
|
_context2.next = 4;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", {
|
|
|
method: 'get',
|
|
|
params: {
|
|
|
target: visible,
|
|
|
search: search
|
|
|
}
|
|
|
});
|
|
|
case 4:
|
|
|
res = _context2.sent;
|
|
|
setDataSource(res.tag_disciplines || []);
|
|
|
setLoading(false);
|
|
|
case 7:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return function getPointData() {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var rename = function rename(r) {
|
|
|
var text = r.name;
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
className: 'custom-modal-divider',
|
|
|
centered: true,
|
|
|
title: '重命名',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
defaultValue: text,
|
|
|
placeholder: "\u8BF7\u8F93\u5165".concat(title, "\u540D\u79F0\uFF0C\u4E0D\u8D85\u8FC720\u4E2A\u5B57"),
|
|
|
maxLength: 20,
|
|
|
onChange: function onChange(e) {
|
|
|
text = e.target.value;
|
|
|
}
|
|
|
})
|
|
|
}),
|
|
|
okText: '确认',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk = 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:
|
|
|
if (text) {
|
|
|
_context3.next = 3;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.warning("\u9898\u76EE".concat(title, "\u4E0D\u80FD\u4E3A\u7A7A"));
|
|
|
return _context3.abrupt("return", Promise.reject());
|
|
|
case 3:
|
|
|
_context3.next = 5;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines/".concat(r.id, "/rename.json"), {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
id: r.id,
|
|
|
name: text
|
|
|
}
|
|
|
});
|
|
|
case 5:
|
|
|
res = _context3.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
getPointData();
|
|
|
}
|
|
|
case 7:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
};
|
|
|
var del = function del(r) {
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
className: 'custom-modal-divider',
|
|
|
centered: true,
|
|
|
width: 570,
|
|
|
title: '删除',
|
|
|
content: visible === 'practice' ? /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: ["\u786E\u8BA4\u5C06\u9898\u76EE\u6765\u6E90\u201C", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "c-light-primary",
|
|
|
children: r.name
|
|
|
}), "\u201D\u5220\u9664\u5417\uFF1F", /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), "\u5220\u9664\u540E\uFF0C\u4F1A\u5C06\u76F8\u5173\u9898\u76EE\u4E2D\u7684\u6765\u6E90\u8FDB\u884C\u6E05\u9664\u3002"]
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: ["\u786E\u8BA4\u5C06\u9898\u76EE\u77E5\u8BC6\u70B9\u201C", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "c-light-primary",
|
|
|
children: r.name
|
|
|
}), "\u201D\u5220\u9664\u5417\uFF1F", /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), "\u5220\u9664\u540E\uFF0C\u4F1A\u5C06\u76F8\u5173\u9898\u76EE\u4E2D\u7684\u77E5\u8BC6\u70B9\u8FDB\u884C\u6E05\u9664\u3002"]
|
|
|
}),
|
|
|
okText: '确认',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
_context4.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines/".concat(r.id, ".json"), {
|
|
|
method: 'delete',
|
|
|
body: {
|
|
|
id: r.id
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context4.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
getPointData();
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk2.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
};
|
|
|
var handleSearch = function handleSearch(e) {
|
|
|
getPointData(e);
|
|
|
};
|
|
|
var title = visible === 'practice' ? '知识点' : '来源';
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
|
afterClose: function afterClose() {
|
|
|
setBtnLoading(false);
|
|
|
setLoading(false);
|
|
|
setText('');
|
|
|
setActive('1');
|
|
|
setDataSource([]);
|
|
|
},
|
|
|
centered: true,
|
|
|
keyboard: false,
|
|
|
width: 600,
|
|
|
title: "".concat(title, "\u7BA1\u7406"),
|
|
|
open: !!visible,
|
|
|
className: ManageModalmodules.customModal,
|
|
|
footer: null,
|
|
|
onCancel: onCancel,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("section", {
|
|
|
className: ManageModalmodules.wrap,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(tabs/* default */.Z, {
|
|
|
activeKey: active,
|
|
|
onChange: function onChange(key) {
|
|
|
setText('');
|
|
|
setActive(key);
|
|
|
getPointData();
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(tabs/* default */.Z.TabPane, {
|
|
|
tab: "\u65B0\u589E".concat(title),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
value: text,
|
|
|
onChange: function onChange(e) {
|
|
|
return setText(e.target.value);
|
|
|
},
|
|
|
className: ManageModalmodules["in"],
|
|
|
placeholder: "\u8F93\u5165".concat(title, "\u540D\u79F0\uFF0C\u4E0D\u8D85\u8FC720\u4E2A\u5B57"),
|
|
|
maxLength: 20
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: ManageModalmodules.btns,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
onClick: onCancel,
|
|
|
className: "mr20",
|
|
|
children: "\u53D6\u6D88 "
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
loading: btnLoading,
|
|
|
onClick: add,
|
|
|
type: "primary",
|
|
|
children: "\u786E\u8BA4\u65B0\u5EFA"
|
|
|
})]
|
|
|
})]
|
|
|
}, "1"), /*#__PURE__*/(0,jsx_runtime.jsxs)(tabs/* default */.Z.TabPane, {
|
|
|
tab: "\u5DF2\u6709".concat(title),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z.Search, {
|
|
|
allowClear: true,
|
|
|
onSearch: handleSearch,
|
|
|
value: text,
|
|
|
onChange: function onChange(e) {
|
|
|
return setText(e.target.value);
|
|
|
},
|
|
|
className: ManageModalmodules["in"],
|
|
|
placeholder: "\u8F93\u5165".concat(title, "\u540D\u79F0\u8FDB\u884C\u67E5\u8BE2")
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, {
|
|
|
dataSource: dataSource,
|
|
|
bordered: false,
|
|
|
loading: loading,
|
|
|
scroll: dataSource.length > 7 ? {
|
|
|
y: 300
|
|
|
} : {},
|
|
|
style: {
|
|
|
padding: '0 0px 20px 0px'
|
|
|
},
|
|
|
columns: [{
|
|
|
title: "".concat(title, "\u540D\u79F0"),
|
|
|
dataIndex: 'name',
|
|
|
ellipsis: true
|
|
|
}, {
|
|
|
title: '操作',
|
|
|
dataIndex: 'action',
|
|
|
width: 120,
|
|
|
render: function render(v, r) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
onClick: function onClick() {
|
|
|
return rename(r);
|
|
|
},
|
|
|
className: "current mr10 c-light-primary",
|
|
|
children: "\u91CD\u547D\u540D"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
onClick: function onClick() {
|
|
|
return del(r);
|
|
|
},
|
|
|
className: "current c-grey-666",
|
|
|
children: "\u5220\u9664"
|
|
|
})]
|
|
|
});
|
|
|
}
|
|
|
}],
|
|
|
pagination: false
|
|
|
})]
|
|
|
}, "2")]
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var AddOrEdit_ManageModal = (ManageModal);
|
|
|
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
|
|
|
var env = __webpack_require__(84666);
|
|
|
// EXTERNAL MODULE: ./src/pages/Shixuns/Edit/body/Level/Challenges/components/UploadFile/index.tsx + 2 modules
|
|
|
var UploadFile = __webpack_require__(82865);
|
|
|
// EXTERNAL MODULE: ./node_modules/_dayjs@1.11.13@dayjs/dayjs.min.js
|
|
|
var dayjs_min = __webpack_require__(61186);
|
|
|
var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min);
|
|
|
// EXTERNAL MODULE: ./src/utils/util.tsx
|
|
|
var util = __webpack_require__(16739);
|
|
|
// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx
|
|
|
var RenderHtml = __webpack_require__(8292);
|
|
|
// EXTERNAL MODULE: ./src/utils/authority.ts
|
|
|
var authority = __webpack_require__(30584);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//@ts-ignore
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var TextArea = input/* default */.Z.TextArea;
|
|
|
var AddOrEdit_confirm = es_modal/* default */.Z.confirm;
|
|
|
var Panel = collapse/* default */.Z.Panel;
|
|
|
var AddOrEdit_initialState = {
|
|
|
loading: true,
|
|
|
user: null,
|
|
|
status: 0,
|
|
|
data: undefined,
|
|
|
lastedUpdateTime: 0
|
|
|
};
|
|
|
var AddOrEdit_Types = /*#__PURE__*/function (Types) {
|
|
|
Types[Types["SET_INITAL_DATA"] = 0] = "SET_INITAL_DATA";
|
|
|
Types[Types["SET_LOADING"] = 1] = "SET_LOADING";
|
|
|
Types[Types["SET_STATUS"] = 2] = "SET_STATUS";
|
|
|
return Types;
|
|
|
}({});
|
|
|
var initText = '#### 题目描述\n现有一个整型数组 `nums`,请编写程序将数组 `nums` 中的所有 `$$0$$` 移动到数组的末尾,但不改变非零元素在数组中的相对位置。请在原数组 `nums` 上进行操作。\n#### 输入输出格式\n**输入格式**\n第一行有一个整数 `numsSize`,表示数组 `nums` 的大小;\n第二行有 `numsSize` 个整数,表示数组 `nums` 的所有元素,每个整数用一个空格隔开。\n**输出格式**\n一行输出数组 `nums` 的所有元素,有 `numsSize` 个整数,每个整数用一个空格隔开。\n#### 输入输出样例1\n**输入**\n`4`\n`0 1 2 3`\n**输出**\n`1 2 3 0`\n**解释(可选)**\nXXXXX\n#### 输入输出样例2\n**输入**\n`5`\n`1 1 0 1 0`\n**输出**\n`1 1 1 0 0`\n**解释(可选)**\nXXXXX\n#### 说明提示\n-`1≤n≤100`';
|
|
|
function AddOrEdit_reducer(state, action) {
|
|
|
switch (action.type) {
|
|
|
case AddOrEdit_Types.SET_INITAL_DATA:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
case AddOrEdit_Types.SET_LOADING:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
loading: action.payload
|
|
|
});
|
|
|
case AddOrEdit_Types.SET_STATUS:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
status: action.payload
|
|
|
});
|
|
|
default:
|
|
|
throw new Error();
|
|
|
}
|
|
|
}
|
|
|
/* harmony default export */ var AddOrEdit = (function () {
|
|
|
var _data$hack, _data$hack2, _languageItems$find;
|
|
|
var location = (0,_umi_production_exports.useLocation)();
|
|
|
var _useParams = (0,_umi_production_exports.useParams)(),
|
|
|
id = _useParams.id;
|
|
|
var _Form$useForm = es_form/* default */.Z.useForm(),
|
|
|
_Form$useForm2 = slicedToArray_default()(_Form$useForm, 1),
|
|
|
form = _Form$useForm2[0];
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
formValue = _useState2[0],
|
|
|
setFormValue = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
visible = _useState4[0],
|
|
|
setVisible = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
uploadData = _useState6[0],
|
|
|
setUploadData = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
pointData = _useState8[0],
|
|
|
setPointData = _useState8[1];
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
sourceData = _useState10[0],
|
|
|
setSourceData = _useState10[1];
|
|
|
var _useState11 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState12 = slicedToArray_default()(_useState11, 2),
|
|
|
dataSource = _useState12[0],
|
|
|
setDataSource = _useState12[1];
|
|
|
var _useState13 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState14 = slicedToArray_default()(_useState13, 2),
|
|
|
languageItems = _useState14[0],
|
|
|
setLanguageItems = _useState14[1];
|
|
|
var _useState15 = (0,_react_17_0_2_react.useState)('C'),
|
|
|
_useState16 = slicedToArray_default()(_useState15, 2),
|
|
|
language = _useState16[0],
|
|
|
setLanguage = _useState16[1];
|
|
|
var _useReducer = (0,_react_17_0_2_react.useReducer)(AddOrEdit_reducer, AddOrEdit_initialState),
|
|
|
_useReducer2 = slicedToArray_default()(_useReducer, 2),
|
|
|
state = _useReducer2[0],
|
|
|
dispatch = _useReducer2[1];
|
|
|
var loading = state.loading,
|
|
|
data = state.data,
|
|
|
user = state.user,
|
|
|
status = state.status;
|
|
|
var hack_sets = data === null || data === void 0 ? void 0 : data.hack_sets;
|
|
|
var test_set_average = data === null || data === void 0 || (_data$hack = data.hack) === null || _data$hack === void 0 ? void 0 : _data$hack.test_set_average;
|
|
|
var _useState17 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState18 = slicedToArray_default()(_useState17, 2),
|
|
|
ischecked = _useState18[0],
|
|
|
setischecked = _useState18[1];
|
|
|
var saveLanguageItems = (0,_react_17_0_2_react.useRef)([]);
|
|
|
var _useState19 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState20 = slicedToArray_default()(_useState19, 2),
|
|
|
btnOneLoading = _useState20[0],
|
|
|
setBtnOneLoading = _useState20[1];
|
|
|
var _useState21 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState22 = slicedToArray_default()(_useState21, 2),
|
|
|
btnTwoLoading = _useState22[0],
|
|
|
setBtnTwoLoading = _useState22[1];
|
|
|
var btnClickStatus = (0,_react_17_0_2_react.useRef)(true);
|
|
|
var _useState23 = (0,_react_17_0_2_react.useState)({}),
|
|
|
_useState24 = slicedToArray_default()(_useState23, 2),
|
|
|
reviewData = _useState24[0],
|
|
|
setReviewData = _useState24[1];
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
(0,_umi_production_exports.getDvaApp)()._store.dispatch({
|
|
|
type: 'globalSetting/headerFooterToggle',
|
|
|
payload: false
|
|
|
});
|
|
|
(0,_umi_production_exports.getDvaApp)()._store.dispatch({
|
|
|
type: 'globalSetting/onlyShowBackTopToggle',
|
|
|
payload: true
|
|
|
});
|
|
|
return function () {
|
|
|
(0,_umi_production_exports.getDvaApp)()._store.dispatch({
|
|
|
type: 'globalSetting/headerFooterToggle',
|
|
|
payload: true
|
|
|
});
|
|
|
(0,_umi_production_exports.getDvaApp)()._store.dispatch({
|
|
|
type: 'globalSetting/onlyShowBackTopToggle',
|
|
|
payload: false
|
|
|
});
|
|
|
};
|
|
|
}, []);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
setTimeout(function () {
|
|
|
document.title = '在线刷题';
|
|
|
}, 400);
|
|
|
});
|
|
|
var getPointData = /*#__PURE__*/function () {
|
|
|
var _ref = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var res1, res2;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
_context.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", {
|
|
|
method: 'get',
|
|
|
params: {
|
|
|
target: 'practice'
|
|
|
// position: 'index'
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res1 = _context.sent;
|
|
|
_context.next = 5;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", {
|
|
|
method: 'get',
|
|
|
params: {
|
|
|
target: 'practice_source'
|
|
|
// position: 'index'
|
|
|
}
|
|
|
});
|
|
|
case 5:
|
|
|
res2 = _context.sent;
|
|
|
setPointData(res1.tag_disciplines || []);
|
|
|
setSourceData(res2.tag_disciplines || []);
|
|
|
case 8:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function getPointData() {
|
|
|
return _ref.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var initLanguage = [{
|
|
|
language: 'C',
|
|
|
code: ''
|
|
|
}, {
|
|
|
language: 'C++',
|
|
|
code: ''
|
|
|
}, {
|
|
|
language: 'Java',
|
|
|
code: ''
|
|
|
}, {
|
|
|
language: 'Python',
|
|
|
code: ''
|
|
|
}];
|
|
|
var initData = (0,_react_17_0_2_react.useCallback)( /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
|
|
|
var response, _user, _language, _hack_sets, practice_codes, description, difficulty, name, open_or_not, time_limit, _test_set_average, test_set_score, _status, tag_discipline_ids, source_discipline_ids, item_banks_group_id, _response$is_file, is_file, hide_actual_output, review_privilege, review_description, review, new_hack_sets, rs, newCodes, _yield$getUser, _user2;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_LOADING,
|
|
|
payload: true
|
|
|
});
|
|
|
if (!id) {
|
|
|
_context2.next = 19;
|
|
|
break;
|
|
|
}
|
|
|
_context2.next = 4;
|
|
|
return getProgrammingTopic(id);
|
|
|
case 4:
|
|
|
response = _context2.sent;
|
|
|
_user = response.user, _language = response.language, _hack_sets = response.practice_sets, practice_codes = response.practice_codes, description = response.description, difficulty = response.difficulty, name = response.name, open_or_not = response.open_or_not, time_limit = response.time_limit, _test_set_average = response.test_set_average, test_set_score = response.test_set_score, _status = response.status, tag_discipline_ids = response.tag_discipline_ids, source_discipline_ids = response.source_discipline_ids, item_banks_group_id = response.item_banks_group_id, _response$is_file = response.is_file, is_file = _response$is_file === void 0 ? false : _response$is_file, hide_actual_output = response.hide_actual_output, review_privilege = response.review_privilege, review_description = response.review_description;
|
|
|
review = {
|
|
|
review_privilege: review_privilege,
|
|
|
status: _status,
|
|
|
review_description: review_description,
|
|
|
name: name
|
|
|
};
|
|
|
setReviewData(review);
|
|
|
setischecked(hide_actual_output);
|
|
|
new_hack_sets = is_file ? [{
|
|
|
input: '',
|
|
|
output: '',
|
|
|
score: 100,
|
|
|
position: 1
|
|
|
}] : _hack_sets;
|
|
|
if (is_file) {
|
|
|
setUploadData(_hack_sets);
|
|
|
form.setFieldsValue({
|
|
|
hack_sets: new_hack_sets
|
|
|
});
|
|
|
} else {
|
|
|
setUploadData([]);
|
|
|
}
|
|
|
//@ts-ignore
|
|
|
rs = {
|
|
|
loading: true,
|
|
|
user: _user,
|
|
|
status: _status,
|
|
|
data: {
|
|
|
hack: {
|
|
|
difficulty: difficulty,
|
|
|
name: name,
|
|
|
description: description,
|
|
|
open_or_not: open_or_not,
|
|
|
time_limit: time_limit,
|
|
|
test_set_average: _test_set_average,
|
|
|
test_set_score: test_set_score,
|
|
|
tag_discipline_ids: tag_discipline_ids,
|
|
|
source_discipline_ids: source_discipline_ids,
|
|
|
is_file: is_file
|
|
|
},
|
|
|
hack_sets: new_hack_sets
|
|
|
}
|
|
|
};
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_INITAL_DATA,
|
|
|
payload: rs
|
|
|
});
|
|
|
setFormValue({
|
|
|
hack: {
|
|
|
difficulty: difficulty,
|
|
|
name: name,
|
|
|
description: description,
|
|
|
open_or_not: open_or_not,
|
|
|
time_limit: time_limit,
|
|
|
test_set_average: _test_set_average,
|
|
|
test_set_score: test_set_score,
|
|
|
tag_discipline_ids: tag_discipline_ids,
|
|
|
source_discipline_ids: source_discipline_ids,
|
|
|
is_file: is_file
|
|
|
}
|
|
|
});
|
|
|
newCodes = practice_codes === null || practice_codes === void 0 ? void 0 : practice_codes.map(function (e) {
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, e), {}, {
|
|
|
code: base64.Base64.decode(e === null || e === void 0 ? void 0 : e.code)
|
|
|
});
|
|
|
});
|
|
|
setLanguageItems(newCodes);
|
|
|
saveLanguageItems.current = newCodes;
|
|
|
_context2.next = 27;
|
|
|
break;
|
|
|
case 19:
|
|
|
_context2.next = 21;
|
|
|
return getUser();
|
|
|
case 21:
|
|
|
_yield$getUser = _context2.sent;
|
|
|
_user2 = _yield$getUser.user;
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_INITAL_DATA,
|
|
|
payload: {
|
|
|
loading: true,
|
|
|
status: 0,
|
|
|
user: _user2,
|
|
|
data: {
|
|
|
hack: {
|
|
|
difficulty: '',
|
|
|
time_limit: 3,
|
|
|
description: initText,
|
|
|
test_set_score: true,
|
|
|
test_set_average: true,
|
|
|
open_or_not: true,
|
|
|
name: '',
|
|
|
is_file: false
|
|
|
},
|
|
|
hack_sets: [{
|
|
|
input: '',
|
|
|
output: '',
|
|
|
score: 100,
|
|
|
position: 1
|
|
|
}]
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
setFormValue({
|
|
|
hack: {
|
|
|
difficulty: '',
|
|
|
time_limit: 3,
|
|
|
description: '',
|
|
|
test_set_average: true,
|
|
|
open_or_not: true,
|
|
|
name: '',
|
|
|
is_file: false
|
|
|
}
|
|
|
});
|
|
|
setLanguageItems(initLanguage);
|
|
|
saveLanguageItems.current = initLanguage;
|
|
|
case 27:
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_LOADING,
|
|
|
payload: false
|
|
|
});
|
|
|
case 28:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
})), [id]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
try {
|
|
|
initData();
|
|
|
getPointData();
|
|
|
} catch (error) {
|
|
|
console.log(error, '----');
|
|
|
}
|
|
|
}, []);
|
|
|
function onSubmit(_x, _x2) {
|
|
|
return _onSubmit.apply(this, arguments);
|
|
|
}
|
|
|
function _onSubmit() {
|
|
|
_onSubmit = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee8(values, type) {
|
|
|
var _res;
|
|
|
var _values, hack_sets, hack, update_hack_sets, new_hack_sets, sumScore, new_list, _iterator, _step, item, res, newLanguageItems, _res2, _res3, _res4, _res5;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee8$(_context8) {
|
|
|
while (1) switch (_context8.prev = _context8.next) {
|
|
|
case 0:
|
|
|
_values = objectSpread2_default()({}, values), hack_sets = _values.hack_sets, hack = _values.hack;
|
|
|
hack.hide_actual_output = ischecked;
|
|
|
update_hack_sets = [];
|
|
|
new_hack_sets = [];
|
|
|
sumScore = 0;
|
|
|
new_list = hack !== null && hack !== void 0 && hack.is_file ? uploadData.map(function (e, i) {
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, e), {}, {
|
|
|
position: i + 1
|
|
|
});
|
|
|
}) : hack_sets.map(function (e) {
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, e), {}, {
|
|
|
is_file: false
|
|
|
});
|
|
|
});
|
|
|
_iterator = createForOfIteratorHelper_default()(new_list);
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
item = _step.value;
|
|
|
sumScore += item.score;
|
|
|
if (item.id && item.id >= 0) {
|
|
|
update_hack_sets.push(item);
|
|
|
} else {
|
|
|
new_hack_sets.push(item);
|
|
|
}
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
if (new_list !== null && new_list !== void 0 && new_list.length) {
|
|
|
_context8.next = 11;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.error('测试集不能为空');
|
|
|
return _context8.abrupt("return");
|
|
|
case 11:
|
|
|
if (!(sumScore !== 100 && !hack.test_set_score)) {
|
|
|
_context8.next = 14;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.error('测试集的评分占比之和必须等于100');
|
|
|
return _context8.abrupt("return");
|
|
|
case 14:
|
|
|
if (!(new_list !== null && new_list !== void 0 && new_list.some(function (e) {
|
|
|
return !e.output;
|
|
|
}))) {
|
|
|
_context8.next = 17;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.error('测试集输出不能为空');
|
|
|
return _context8.abrupt("return");
|
|
|
case 17:
|
|
|
if (btnClickStatus.current) {
|
|
|
setBtnOneLoading(true);
|
|
|
} else {
|
|
|
setBtnTwoLoading(true);
|
|
|
}
|
|
|
//编辑
|
|
|
newLanguageItems = languageItems === null || languageItems === void 0 ? void 0 : languageItems.map(function (e) {
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, e), {}, {
|
|
|
code: base64.Base64.encode(e === null || e === void 0 ? void 0 : e.code)
|
|
|
});
|
|
|
});
|
|
|
if (!id) {
|
|
|
_context8.next = 25;
|
|
|
break;
|
|
|
}
|
|
|
_context8.next = 22;
|
|
|
return updateProgrammingTopic(id, {
|
|
|
practice: hack,
|
|
|
practice_codes: newLanguageItems,
|
|
|
practice_sets: new_hack_sets,
|
|
|
update_practice_sets: update_hack_sets
|
|
|
});
|
|
|
case 22:
|
|
|
res = _context8.sent;
|
|
|
_context8.next = 28;
|
|
|
break;
|
|
|
case 25:
|
|
|
_context8.next = 27;
|
|
|
return addProgrammingTopic({
|
|
|
practice: hack,
|
|
|
practice_codes: newLanguageItems,
|
|
|
practice_sets: new_list,
|
|
|
publish: !btnClickStatus.current
|
|
|
});
|
|
|
case 27:
|
|
|
res = _context8.sent;
|
|
|
case 28:
|
|
|
setBtnOneLoading(false);
|
|
|
setBtnTwoLoading(false);
|
|
|
if (!(((_res = res) === null || _res === void 0 ? void 0 : _res.status) === 0)) {
|
|
|
_context8.next = 46;
|
|
|
break;
|
|
|
}
|
|
|
if (!((_res2 = res) !== null && _res2 !== void 0 && (_res2 = _res2.similar_practice) !== null && _res2 !== void 0 && _res2.length)) {
|
|
|
_context8.next = 35;
|
|
|
break;
|
|
|
}
|
|
|
setVisible(true);
|
|
|
setDataSource((_res3 = res) === null || _res3 === void 0 ? void 0 : _res3.similar_practice);
|
|
|
return _context8.abrupt("return");
|
|
|
case 35:
|
|
|
if (!id) {
|
|
|
_context8.next = 44;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.success('保存成功');
|
|
|
if (btnClickStatus.current) {
|
|
|
_context8.next = 42;
|
|
|
break;
|
|
|
}
|
|
|
_context8.next = 40;
|
|
|
return (0,fetch/* default */.ZP)("/api/practices/".concat(id, "/start"), {
|
|
|
method: 'get'
|
|
|
});
|
|
|
case 40:
|
|
|
_res4 = _context8.sent;
|
|
|
if ((_res4 === null || _res4 === void 0 ? void 0 : _res4.status) === 0) {
|
|
|
_umi_production_exports.history.push("/problems/".concat(_res4 === null || _res4 === void 0 ? void 0 : _res4.identifier, "/oj/").concat(id));
|
|
|
}
|
|
|
case 42:
|
|
|
_context8.next = 46;
|
|
|
break;
|
|
|
case 44:
|
|
|
message/* default */.ZP.success('新建成功');
|
|
|
_umi_production_exports.history.replace("/problems/".concat((_res5 = res) === null || _res5 === void 0 ? void 0 : _res5.identifier, "/ojedit"));
|
|
|
case 46:
|
|
|
case "end":
|
|
|
return _context8.stop();
|
|
|
}
|
|
|
}, _callee8);
|
|
|
}));
|
|
|
return _onSubmit.apply(this, arguments);
|
|
|
}
|
|
|
function onBack() {
|
|
|
_umi_production_exports.history.replace('/problems');
|
|
|
}
|
|
|
var handleUploadRatio = function handleUploadRatio(testSetData) {
|
|
|
var score = Math.floor(100 / testSetData.length);
|
|
|
var lastScore = score + 100 % testSetData.length;
|
|
|
testSetData = testSetData.map(function (item, index) {
|
|
|
if (index === testSetData.length - 1) {
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, item), {}, {
|
|
|
score: lastScore
|
|
|
});
|
|
|
}
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, item), {}, {
|
|
|
score: score
|
|
|
});
|
|
|
});
|
|
|
setUploadData(testSetData);
|
|
|
};
|
|
|
function onChangeScore(e) {
|
|
|
if (!e.target.value) {
|
|
|
handleUploadRatio(uploadData);
|
|
|
}
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_INITAL_DATA,
|
|
|
payload: {
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, {
|
|
|
test_set_score: e.target.value
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function onChangeFile(e) {
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_INITAL_DATA,
|
|
|
payload: {
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, {
|
|
|
is_file: e.target.value
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function onChangehide(e) {
|
|
|
setischecked(e.target.checked);
|
|
|
}
|
|
|
function onChangeAverage(e) {
|
|
|
var value = e.target.value;
|
|
|
if (value) {
|
|
|
handleUploadRatio(uploadData);
|
|
|
}
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_INITAL_DATA,
|
|
|
payload: {
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, {
|
|
|
test_set_average: value
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function onAddTestCase() {
|
|
|
var rs = form.getFieldValue('hack_sets');
|
|
|
var len = rs.length + 1;
|
|
|
var averageMark = Math.floor(100 / len);
|
|
|
var remainder = 100 % len;
|
|
|
rs.map(function (item, index) {
|
|
|
if (test_set_average) {
|
|
|
item.score = averageMark;
|
|
|
}
|
|
|
item.position = index + 1;
|
|
|
return item;
|
|
|
});
|
|
|
rs.push({
|
|
|
input: '',
|
|
|
output: '',
|
|
|
position: len,
|
|
|
score: test_set_average ? averageMark + remainder : 0
|
|
|
});
|
|
|
form.setFieldsValue({
|
|
|
hack_sets: rs
|
|
|
});
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_INITAL_DATA,
|
|
|
payload: {
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
hack_sets: rs
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (test_set_average) {
|
|
|
var len = hack_sets === null || hack_sets === void 0 ? void 0 : hack_sets.length;
|
|
|
var averageMark = Math.floor(100 / len);
|
|
|
var remainder = 100 % len;
|
|
|
hack_sets === null || hack_sets === void 0 || hack_sets.map(function (item, index) {
|
|
|
item.score = averageMark;
|
|
|
item.position = index + 1;
|
|
|
if (index === len - 1) {
|
|
|
item.score = averageMark + remainder;
|
|
|
}
|
|
|
return item;
|
|
|
});
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_INITAL_DATA,
|
|
|
payload: {
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
hack_sets: hack_sets
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
form.setFieldsValue({
|
|
|
hack_sets: hack_sets
|
|
|
});
|
|
|
}
|
|
|
}, [test_set_average]);
|
|
|
function onRemoveTestCase(index) {
|
|
|
var sets = form.getFieldValue('hack_sets');
|
|
|
var len = (sets === null || sets === void 0 ? void 0 : sets.length) - 1;
|
|
|
var averageMark = Math.ceil(100 / len);
|
|
|
var remainder = 100 % len;
|
|
|
sets.splice(index, 1);
|
|
|
sets === null || sets === void 0 || sets.map(function (item, index) {
|
|
|
if (test_set_average) {
|
|
|
item.score = averageMark;
|
|
|
if (index === len - 1) {
|
|
|
item.score = averageMark + remainder;
|
|
|
}
|
|
|
}
|
|
|
item.position = index + 1;
|
|
|
return item;
|
|
|
});
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_INITAL_DATA,
|
|
|
payload: {
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
hack_sets: sets
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
form.setFieldsValue({
|
|
|
hack_sets: sets
|
|
|
});
|
|
|
}
|
|
|
function onChangeLanguage(language) {
|
|
|
setLanguage(language);
|
|
|
}
|
|
|
var onChangeLanguageValue = function onChangeLanguageValue(e) {
|
|
|
var _saveLanguageItems$cu;
|
|
|
var index = (_saveLanguageItems$cu = saveLanguageItems.current) === null || _saveLanguageItems$cu === void 0 ? void 0 : _saveLanguageItems$cu.findIndex(function (e) {
|
|
|
return e.language === language;
|
|
|
});
|
|
|
saveLanguageItems.current[index].code = e;
|
|
|
setLanguageItems(saveLanguageItems.current);
|
|
|
};
|
|
|
var handleValuesChange = function handleValuesChange(changedValues) {
|
|
|
setFormValue(objectSpread2_default()({}, form.getFieldsValue()));
|
|
|
};
|
|
|
var skip = /*#__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,fetch/* default */.ZP)("/api/practices/".concat(v, "/start"), {
|
|
|
method: 'get'
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context3.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
(0,util/* openNewWindow */.xg)("/problems/".concat(res === null || res === void 0 ? void 0 : res.identifier, "/oj/").concat(v));
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
return function skip(_x3) {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var getPassResult = /*#__PURE__*/function () {
|
|
|
var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
|
|
|
var response, name, status, review_privilege, review_description, review;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
_context4.next = 2;
|
|
|
return getProgrammingTopic(id);
|
|
|
case 2:
|
|
|
response = _context4.sent;
|
|
|
name = response.name, status = response.status, review_privilege = response.review_privilege, review_description = response.review_description;
|
|
|
review = {
|
|
|
review_privilege: review_privilege,
|
|
|
status: status,
|
|
|
review_description: review_description,
|
|
|
name: name
|
|
|
};
|
|
|
setReviewData(review);
|
|
|
case 6:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
}));
|
|
|
return function getPassResult() {
|
|
|
return _ref4.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleNoPass = function handleNoPass() {
|
|
|
var text = '';
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
width: 700,
|
|
|
className: 'custom-modal-divider',
|
|
|
centered: true,
|
|
|
title: '不通过原因',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "mt20",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor/* default */.Z, {
|
|
|
className: AddOrEditmodules.MdEditor,
|
|
|
defaultValue: text,
|
|
|
onChange: function onChange(e) {
|
|
|
text = e;
|
|
|
}
|
|
|
})
|
|
|
}),
|
|
|
okText: '确认',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
|
|
|
while (1) switch (_context5.prev = _context5.next) {
|
|
|
case 0:
|
|
|
if (text) {
|
|
|
_context5.next = 3;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.warning("\u4E0D\u901A\u8FC7\u539F\u56E0\u4E0D\u80FD\u4E3A\u7A7A");
|
|
|
return _context5.abrupt("return", Promise.reject());
|
|
|
case 3:
|
|
|
_context5.next = 5;
|
|
|
return (0,fetch/* default */.ZP)("/api/practices/".concat(id, "/review.json"), {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
op: 'fail',
|
|
|
description: text
|
|
|
}
|
|
|
});
|
|
|
case 5:
|
|
|
res = _context5.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
message/* default */.ZP.success('提交成功');
|
|
|
getPassResult();
|
|
|
}
|
|
|
case 7:
|
|
|
case "end":
|
|
|
return _context5.stop();
|
|
|
}
|
|
|
}, _callee5);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
};
|
|
|
var handlePass = /*#__PURE__*/function () {
|
|
|
var _ref5 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee7() {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee7$(_context7) {
|
|
|
while (1) switch (_context7.prev = _context7.next) {
|
|
|
case 0:
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
// width: 700,
|
|
|
className: "custom-modal-divider",
|
|
|
centered: true,
|
|
|
title: '提示',
|
|
|
content: "\u786E\u8BA4\u5C06\u9898\u76EE\u300A".concat(reviewData === null || reviewData === void 0 ? void 0 : reviewData.name, "\u300B\u7684\u5BA1\u6838\u901A\u8FC7\u5417\uFF1F"),
|
|
|
okText: '确认',
|
|
|
cancelText: "取消",
|
|
|
onOk: function () {
|
|
|
var _onOk2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee6$(_context6) {
|
|
|
while (1) switch (_context6.prev = _context6.next) {
|
|
|
case 0:
|
|
|
_context6.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/practices/".concat(id, "/review.json"), {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
op: 'pass'
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context6.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
message/* default */.ZP.success('提交成功');
|
|
|
getPassResult();
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context6.stop();
|
|
|
}
|
|
|
}, _callee6);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk2.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context7.stop();
|
|
|
}
|
|
|
}, _callee7);
|
|
|
}));
|
|
|
return function handlePass() {
|
|
|
return _ref5.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleNoPassReason = function handleNoPassReason() {
|
|
|
var modal = es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
width: 700,
|
|
|
className: "".concat(AddOrEditmodules.cusModal, " custom-modal-divider"),
|
|
|
centered: true,
|
|
|
title: /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
flex: "1",
|
|
|
children: "\u4E0D\u901A\u8FC7\u539F\u56E0"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "iconfont icon-guanbi7 font12 current c-grey-c",
|
|
|
onClick: function onClick() {
|
|
|
return modal.destroy();
|
|
|
}
|
|
|
})
|
|
|
})]
|
|
|
}),
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
|
|
|
className: "mt20",
|
|
|
value: (reviewData === null || reviewData === void 0 ? void 0 : reviewData.review_description) || ''
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(spin/* default */.Z, {
|
|
|
spinning: loading,
|
|
|
size: "large",
|
|
|
className: AddOrEditmodules['oj-custom-large-spin'],
|
|
|
children: [!data ? null : /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("header", {
|
|
|
className: AddOrEditmodules.header,
|
|
|
children: [/*#__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
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("h2", {
|
|
|
children: [" ", data === null || data === void 0 || (_data$hack2 = data.hack) === null || _data$hack2 === void 0 ? void 0 : _data$hack2.name, " "]
|
|
|
}), id ? /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
className: AddOrEditmodules.btn_back,
|
|
|
onClick: onBack,
|
|
|
children: [' ', /*#__PURE__*/(0,jsx_runtime.jsx)(PoweroffOutlined/* default */.Z, {}), "\u9000\u51FA"]
|
|
|
}) : null]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, {
|
|
|
form: form,
|
|
|
initialValues: data,
|
|
|
layout: "vertical",
|
|
|
className: AddOrEditmodules['oj-form-container'],
|
|
|
onValuesChange: handleValuesChange,
|
|
|
onFinish: onSubmit,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(SplitContainer/* default */.Z, {
|
|
|
hideResize: true,
|
|
|
className: AddOrEditmodules['oj-problems'],
|
|
|
leftChild: /*#__PURE__*/(0,jsx_runtime.jsx)(LeftPanel, {
|
|
|
formValue: formValue,
|
|
|
onRemoveTestCase: onRemoveTestCase,
|
|
|
onAddTestCase: onAddTestCase,
|
|
|
hack: data.hack,
|
|
|
onChangeScore: onChangeScore,
|
|
|
onChangehide: onChangehide,
|
|
|
onChangeAverage: onChangeAverage,
|
|
|
onChangeFile: onChangeFile,
|
|
|
uploadData: uploadData,
|
|
|
setUploadData: setUploadData,
|
|
|
handleUploadRatio: handleUploadRatio,
|
|
|
ischecked: ischecked,
|
|
|
pointData: pointData,
|
|
|
sourceData: sourceData,
|
|
|
getPointData: getPointData
|
|
|
}),
|
|
|
rightChild: /*#__PURE__*/(0,jsx_runtime.jsx)(CodePanel, {
|
|
|
value: languageItems === null || languageItems === void 0 || (_languageItems$find = languageItems.find(function (e) {
|
|
|
return e.language === language;
|
|
|
})) === null || _languageItems$find === void 0 ? void 0 : _languageItems$find.code,
|
|
|
onChange: onChangeLanguageValue,
|
|
|
onLanguage: onChangeLanguage,
|
|
|
languageItems: languageItems,
|
|
|
language: language
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules['footer'],
|
|
|
children: [!!id && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.result,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: "\u5BA1\u6838\u7ED3\u679C:"
|
|
|
}), reviewData !== null && reviewData !== void 0 && reviewData.review_privilege ? /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
onClick: handlePass,
|
|
|
className: AddOrEditmodules.pass,
|
|
|
children: "\u901A\u8FC7"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
onClick: handleNoPass,
|
|
|
className: AddOrEditmodules.noPass,
|
|
|
children: "\u4E0D\u901A\u8FC7"
|
|
|
})]
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [(reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 0 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.passText,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tongguo"
|
|
|
}), "\u672A\u53D1\u5E03"]
|
|
|
}), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 1 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.passText,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tongguo"
|
|
|
}), "\u5DF2\u516C\u5F00"]
|
|
|
}), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 2 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.passText,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tongguo"
|
|
|
}), "\u672A\u5BA1\u6279"]
|
|
|
}), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 3 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.passText,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tongguo"
|
|
|
}), "\u5BA1\u6838\u4E2D"]
|
|
|
}), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 4 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.passText,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tongguo"
|
|
|
}), "\u5BA1\u6838\u5B8C\u6210\u5F85\u516C\u5F00"]
|
|
|
}), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 5 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.noPassText,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-weitongguo1"
|
|
|
}), "\u5BA1\u6838\u4E0D\u901A\u8FC7", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
onClick: handleNoPassReason,
|
|
|
children: "\u67E5\u770B\u539F\u56E0"
|
|
|
})]
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
ghost: true,
|
|
|
onClick: onBack,
|
|
|
children: "\u9000\u51FA\u7F16\u8F91"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
disabled: btnTwoLoading,
|
|
|
loading: btnOneLoading,
|
|
|
type: "primary",
|
|
|
onClick: function onClick() {
|
|
|
btnClickStatus.current = true;
|
|
|
form.submit();
|
|
|
},
|
|
|
children: "\u4FDD\u5B58 "
|
|
|
}), id ? /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
disabled: btnOneLoading,
|
|
|
loading: btnTwoLoading,
|
|
|
style: {
|
|
|
background: '#2FC25B',
|
|
|
border: 0
|
|
|
},
|
|
|
type: "primary",
|
|
|
onClick: function onClick() {
|
|
|
btnClickStatus.current = false;
|
|
|
form.submit();
|
|
|
},
|
|
|
children: "\u7ACB\u5373\u4F53\u9A8C"
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
disabled: btnOneLoading,
|
|
|
loading: btnTwoLoading,
|
|
|
type: "primary",
|
|
|
onClick: function onClick() {
|
|
|
btnClickStatus.current = false;
|
|
|
form.submit();
|
|
|
},
|
|
|
children: "\u4FDD\u5B58\u5E76\u53D1\u5E03\u5BA1\u6838"
|
|
|
})]
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
destroyOnClose: true,
|
|
|
footer: null,
|
|
|
open: visible,
|
|
|
onCancel: function onCancel() {
|
|
|
return setVisible(false);
|
|
|
},
|
|
|
title: "\u76F8\u4F3C\u6027\u68C0\u6D4B",
|
|
|
width: "600px",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
className: "font14",
|
|
|
children: "\u7ECF\u7CFB\u7EDF\u68C0\u6D4B\u53D1\u73B0\uFF0C\u672C\u9898\u76EE\u4E0E\u7CFB\u7EDF\u4E2D\u5DF2\u521B\u5EFA\u7684\u9898\u76EE\u9AD8\u5EA6\u96F7\u540C\uFF0C\u8BF7\u8C03\u6574\u9898\u76EE\u540E\u518D\u8FDB\u884C\u4FDD\u5B58"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, {
|
|
|
dataSource: dataSource,
|
|
|
bordered: false,
|
|
|
scroll: dataSource.length > 7 ? {
|
|
|
y: 300
|
|
|
} : {},
|
|
|
columns: [{
|
|
|
title: '相似题题目',
|
|
|
dataIndex: 'name',
|
|
|
ellipsis: true,
|
|
|
render: function render(v, r) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
onClick: function onClick() {
|
|
|
return skip(r === null || r === void 0 ? void 0 : r.identifier);
|
|
|
},
|
|
|
style: {
|
|
|
textDecorationLine: 'underline'
|
|
|
},
|
|
|
className: "current c-light-primary",
|
|
|
children: v
|
|
|
});
|
|
|
}
|
|
|
}, {
|
|
|
title: '创建时间',
|
|
|
dataIndex: 'create_time',
|
|
|
width: 170,
|
|
|
render: function render(v) {
|
|
|
var _moment;
|
|
|
return (_moment = dayjs_min_default()(v)) === null || _moment === void 0 ? void 0 : _moment.format('YYYY-MM-DD HH:mm');
|
|
|
}
|
|
|
}],
|
|
|
pagination: false
|
|
|
})]
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
function LeftPanel(_ref6) {
|
|
|
var _formValue$hack;
|
|
|
var ischecked = _ref6.ischecked,
|
|
|
formValue = _ref6.formValue,
|
|
|
hack = _ref6.hack,
|
|
|
onChangeAverage = _ref6.onChangeAverage,
|
|
|
onChangeScore = _ref6.onChangeScore,
|
|
|
onChangehide = _ref6.onChangehide,
|
|
|
onChangeFile = _ref6.onChangeFile,
|
|
|
onAddTestCase = _ref6.onAddTestCase,
|
|
|
onRemoveTestCase = _ref6.onRemoveTestCase,
|
|
|
uploadData = _ref6.uploadData,
|
|
|
setUploadData = _ref6.setUploadData,
|
|
|
handleUploadRatio = _ref6.handleUploadRatio,
|
|
|
pointData = _ref6.pointData,
|
|
|
sourceData = _ref6.sourceData,
|
|
|
getPointData = _ref6.getPointData;
|
|
|
var test_set_average = hack.test_set_average,
|
|
|
test_set_score = hack.test_set_score;
|
|
|
var _useState25 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState26 = slicedToArray_default()(_useState25, 2),
|
|
|
showUploadFile = _useState26[0],
|
|
|
setShowUploadFile = _useState26[1];
|
|
|
var _useState27 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState28 = slicedToArray_default()(_useState27, 2),
|
|
|
manageVisible = _useState28[0],
|
|
|
setManageVisible = _useState28[1];
|
|
|
var handleRemove = function handleRemove(item, key) {
|
|
|
var newList = toConsumableArray_default()(uploadData);
|
|
|
newList.splice(key, 1);
|
|
|
if (test_set_average) {
|
|
|
handleUploadRatio(newList);
|
|
|
} else {
|
|
|
setUploadData(newList);
|
|
|
}
|
|
|
};
|
|
|
var handleInputChange = function handleInputChange(e, key) {
|
|
|
console.log(e, key);
|
|
|
var testData = uploadData.map(function (test, testIndex) {
|
|
|
if (testIndex === key) {
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, test), {}, {
|
|
|
score: e.target.value ? Number(e.target.value) : 0
|
|
|
});
|
|
|
}
|
|
|
return test;
|
|
|
});
|
|
|
setUploadData(testData);
|
|
|
};
|
|
|
var addUploadData = function addUploadData(files) {
|
|
|
var newList = uploadData.concat(files);
|
|
|
if (hack.test_set_average) {
|
|
|
handleUploadRatio(newList);
|
|
|
} else {
|
|
|
setUploadData(newList);
|
|
|
}
|
|
|
};
|
|
|
function onStopPropagation(e) {
|
|
|
e.stopPropagation();
|
|
|
}
|
|
|
function addPoint() {
|
|
|
if ((0,authority/* isSuperAdmins */.Ny)()) {
|
|
|
setManageVisible('practice');
|
|
|
return;
|
|
|
}
|
|
|
var text = '';
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
className: 'custom-modal-divider',
|
|
|
centered: true,
|
|
|
title: '新建知识点',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
placeholder: "\u8BF7\u8F93\u5165\u77E5\u8BC6\u70B9\u540D\u79F0\uFF0C\u4E0D\u8D85\u8FC720\u4E2A\u5B57",
|
|
|
maxLength: 20,
|
|
|
onChange: function onChange(e) {
|
|
|
text = e.target.value;
|
|
|
}
|
|
|
})
|
|
|
}),
|
|
|
okText: '确认',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee9() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee9$(_context9) {
|
|
|
while (1) switch (_context9.prev = _context9.next) {
|
|
|
case 0:
|
|
|
_context9.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
target: 'practice',
|
|
|
name: text
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context9.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
getPointData();
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context9.stop();
|
|
|
}
|
|
|
}, _callee9);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk3.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
}
|
|
|
function addOrigin() {
|
|
|
if ((0,authority/* isSuperAdmins */.Ny)()) {
|
|
|
setManageVisible('practice_source');
|
|
|
return;
|
|
|
}
|
|
|
var text = '';
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
className: 'custom-modal-divider',
|
|
|
centered: true,
|
|
|
title: '新建来源',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
placeholder: "\u8BF7\u8F93\u5165\u6765\u6E90\u540D\u79F0\uFF0C\u4E0D\u8D85\u8FC720\u4E2A\u5B57",
|
|
|
maxLength: 20,
|
|
|
onChange: function onChange(e) {
|
|
|
text = e.target.value;
|
|
|
}
|
|
|
})
|
|
|
}),
|
|
|
okText: '确认',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee10() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee10$(_context10) {
|
|
|
while (1) switch (_context10.prev = _context10.next) {
|
|
|
case 0:
|
|
|
_context10.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
target: 'practice_source',
|
|
|
name: text
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context10.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
getPointData();
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context10.stop();
|
|
|
}
|
|
|
}, _callee10);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk4.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
}
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules['oj-left-panel'],
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules['oj-form-info'],
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u9898\u76EE\u540D\u79F0",
|
|
|
name: ['hack', 'name'],
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入题目名称'
|
|
|
}],
|
|
|
className: AddOrEditmodules.inputOne,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
bordered: false,
|
|
|
maxLength: 60,
|
|
|
placeholder: "\u8BF7\u8F93\u5165\u9898\u76EE\u540D\u79F0",
|
|
|
suffix: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
children: [(formValue === null || formValue === void 0 || (_formValue$hack = formValue.hack) === null || _formValue$hack === void 0 || (_formValue$hack = _formValue$hack.name) === null || _formValue$hack === void 0 ? void 0 : _formValue$hack.length) || 0, "/", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "c-grey-999",
|
|
|
children: "60"
|
|
|
})]
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
name: ['hack', 'description'],
|
|
|
valuePropName: "defaultValue",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入描述内容'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor/* default */.Z, {
|
|
|
placeholder: "\u8BF7\u8F93\u5165\u9898\u76EE\u63CF\u8FF0\u2026",
|
|
|
miniToolbar: true,
|
|
|
id: "moop_cases_content",
|
|
|
noStorage: true,
|
|
|
height: 200
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.row,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: AddOrEditmodules.a,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u96BE\u6613\u5EA6",
|
|
|
name: ['hack', 'difficulty'],
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请选择难易度'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"], {
|
|
|
children: getSelectOptions(Keys.difficulty)
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.b,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: '题目来源'
|
|
|
// rules={[{ required: true, message: '请选择题目来源' }]}
|
|
|
,
|
|
|
name: ['hack', 'source_discipline_ids'],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"], {
|
|
|
placeholder: "\u9009\u62E9\u9898\u76EE\u6765\u6E90",
|
|
|
showSearch: false,
|
|
|
mode: "multiple",
|
|
|
showArrow: true,
|
|
|
getPopupContainer: function getPopupContainer(trigger) {
|
|
|
return trigger.parentNode;
|
|
|
},
|
|
|
children: sourceData.map(function (e) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"].Option, {
|
|
|
value: e.id,
|
|
|
children: e.name
|
|
|
}, e.id);
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
style: {
|
|
|
padding: '0 18px'
|
|
|
},
|
|
|
type: "primary",
|
|
|
ghost: true,
|
|
|
onClick: function onClick() {
|
|
|
return addOrigin();
|
|
|
},
|
|
|
children: (0,authority/* isSuperAdmins */.Ny)() ? '来源管理' : '新建来源'
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: AddOrEditmodules.row,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.b,
|
|
|
style: {
|
|
|
width: '100%',
|
|
|
marginLeft: 0
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: '知识点',
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请选择知识点'
|
|
|
}],
|
|
|
name: ['hack', 'tag_discipline_ids'],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"], {
|
|
|
placeholder: "\u9009\u62E9\u77E5\u8BC6\u70B9",
|
|
|
showSearch: false,
|
|
|
mode: "multiple",
|
|
|
showArrow: true,
|
|
|
getPopupContainer: function getPopupContainer(trigger) {
|
|
|
return trigger.parentNode;
|
|
|
},
|
|
|
children: pointData.map(function (e) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"].Option, {
|
|
|
value: e.id,
|
|
|
children: e.name
|
|
|
}, e.id);
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
ghost: true,
|
|
|
onClick: function onClick() {
|
|
|
return addPoint();
|
|
|
},
|
|
|
children: (0,authority/* isSuperAdmins */.Ny)() ? '知识点管理' : '新建知识点'
|
|
|
})]
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: AddOrEditmodules.field,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: '单个测试集评测时长限制',
|
|
|
name: ['hack', 'time_limit'],
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入单个测试集评测时长限制'
|
|
|
}, {
|
|
|
type: 'number',
|
|
|
min: 3,
|
|
|
message: '最小限制时间是3秒'
|
|
|
}],
|
|
|
className: AddOrEditmodules.inputTwo,
|
|
|
extra: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
style: {
|
|
|
position: 'absolute',
|
|
|
left: 200,
|
|
|
top: 11,
|
|
|
color: '#333'
|
|
|
},
|
|
|
children: ["\u79D2", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "ml5 c-grey-999",
|
|
|
children: "(\u4EE3\u7801\u6267\u884C\u6240\u5141\u8BB8\u7684\u6700\u5927\u65F6\u957F)"
|
|
|
})]
|
|
|
}),
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {
|
|
|
style: {
|
|
|
width: 185
|
|
|
},
|
|
|
min: 3
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "tst-case-info",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("h3", {
|
|
|
className: "flex-container",
|
|
|
style: {
|
|
|
justifyContent: 'space-between'
|
|
|
},
|
|
|
children: [' ', "\u6D4B\u8BD5\u7528\u4F8B\u4E0E\u7CFB\u7EDF\u8BC4\u5206\u89C4\u5219", !hack.is_file && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
style: {
|
|
|
height: 40
|
|
|
},
|
|
|
type: "primary",
|
|
|
ghost: true,
|
|
|
onClick: onAddTestCase,
|
|
|
children: "\u6DFB\u52A0\u6D4B\u8BD5\u7528\u4F8B"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
name: ['hack', 'test_set_score'],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default.Group */.ZP.Group, {
|
|
|
onChange: onChangeScore,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default */.ZP, {
|
|
|
value: true,
|
|
|
children: ["\u901A\u8FC7\u5168\u90E8\u6D4B\u8BD5\u96C6", /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: "tip",
|
|
|
children: [' ', "\uFF08\u5B66\u5458\u8BC4\u6D4B\uFF0C\u4EC5\u5F53\u6240\u6709\u6D4B\u8BD5\u96C6\u90FD\u6B63\u786E\u65F6\uFF0C\u624D\u83B7\u5F97\u4E00\u6B21\u6027\u5956\u52B1\uFF09"]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default */.ZP, {
|
|
|
value: false,
|
|
|
children: ["\u901A\u8FC7\u90E8\u5206\u6D4B\u8BD5\u96C6", /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: "tip",
|
|
|
children: [' ', "\uFF08\u5B66\u5458\u8BC4\u6D4B\uFF0C\u901A\u8FC7\u6D4B\u8BD5\u96C6\u5373\u53EF\u83B7\u5F97\u5BF9\u5E94\u5956\u52B1\uFF09"]
|
|
|
})]
|
|
|
})]
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, {
|
|
|
style: {
|
|
|
marginBottom: '5px'
|
|
|
},
|
|
|
checked: ischecked,
|
|
|
onChange: onChangehide,
|
|
|
children: "\u9690\u85CF\u5B9E\u9645\u8F93\u51FA \uFF08\u9009\u4E2D\uFF0C\u5219\u5728\u5B66\u751F\u505A\u9898\u8FC7\u7A0B\u4E2D\u65E0\u6CD5\u770B\u5230\u5B9E\u9645\u8F93\u51FA\u7ED3\u679C\uFF0C\u4EC5\u5C55\u793A\u662F\u5426\u8BC4\u6D4B\u662F\u5426\u901A\u8FC7\uFF09"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
className: AddOrEditmodules.testJi,
|
|
|
name: ['hack', 'is_file'],
|
|
|
label: "\u7528\u4F8B\u7C7B\u578B:",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default.Group */.ZP.Group, {
|
|
|
onChange: onChangeFile,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(space/* default */.Z, {
|
|
|
direction: "horizontal",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
|
|
|
value: false,
|
|
|
children: "\u6587\u672C"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
|
|
|
value: true,
|
|
|
children: "\u6587\u4EF6"
|
|
|
})]
|
|
|
})
|
|
|
})
|
|
|
}), !hack.test_set_score && /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
name: ['hack', 'test_set_average'],
|
|
|
label: "\u7CFB\u7EDF\u8BC4\u5206\u5360\u6BD4",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default.Group */.ZP.Group, {
|
|
|
onChange: onChangeAverage,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
|
|
|
value: true,
|
|
|
children: "\u5747\u5206\u6BD4\u4F8B"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
|
|
|
value: false,
|
|
|
children: "\u81EA\u5B9A\u4E49\u6BD4\u4F8B"
|
|
|
})]
|
|
|
})
|
|
|
}), hack.is_file && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.upBtn,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
ghost: true,
|
|
|
type: "primary",
|
|
|
className: "mb20",
|
|
|
onClick: function onClick() {
|
|
|
return setShowUploadFile(true);
|
|
|
},
|
|
|
children: "\u6279\u91CF\u4E0A\u4F20\u6D4B\u8BD5\u7528\u4F8B"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(UploadFile/* UploadTable */.Y2, {
|
|
|
disabled: hack === null || hack === void 0 ? void 0 : hack.test_set_average,
|
|
|
inputChange: handleInputChange,
|
|
|
showScore: !hack.test_set_score,
|
|
|
data: uploadData,
|
|
|
onRemove: handleRemove
|
|
|
})]
|
|
|
}), !hack.is_file && /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.List, {
|
|
|
name: "hack_sets",
|
|
|
children: function children(fields, _ref7) {
|
|
|
objectDestructuringEmpty_default()(_ref7);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(collapse/* default */.Z, {
|
|
|
accordion: true,
|
|
|
children: fields.map(function (field, index) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(Panel, {
|
|
|
header: /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
className: AddOrEditmodules['test-case-name'],
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
children: ["\u6D4B\u8BD5\u7528\u4F8B", index + 1]
|
|
|
}), !test_set_score ? /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
name: [field.name, 'score'],
|
|
|
fieldKey: [field.fieldKey, 'score'],
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: "\u8BF7\u8F93\u5165\u6D4B\u8BD5\u96C6".concat(index + 1, "\u8BC4\u5206")
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {
|
|
|
onClick: onStopPropagation,
|
|
|
min: 0,
|
|
|
max: 100,
|
|
|
disabled: test_set_average
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: "%"
|
|
|
})]
|
|
|
}) : null]
|
|
|
}),
|
|
|
extra: index > 0 ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
onClick: onStopPropagation,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(popconfirm/* default */.Z, {
|
|
|
okText: "\u786E\u5B9A",
|
|
|
cancelText: "\u53D6\u6D88",
|
|
|
title: '确定删除测试集' + (index + 1),
|
|
|
onConfirm: function onConfirm() {
|
|
|
onRemoveTestCase(index);
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(CloseCircleOutlined/* default */.Z, {
|
|
|
className: AddOrEditmodules['btn-remove-case']
|
|
|
})
|
|
|
})
|
|
|
}) : null,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u8F93\u5165",
|
|
|
name: [field.name, 'input'],
|
|
|
fieldKey: [field.fieldKey, 'input'],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u8F93\u51FA",
|
|
|
name: [field.name, 'output'],
|
|
|
fieldKey: [field.fieldKey, 'output'],
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入输出内容'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {})
|
|
|
})]
|
|
|
}, "".concat(field.key, "--").concat(index));
|
|
|
})
|
|
|
});
|
|
|
}
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(UploadFile/* default */.ZP, {
|
|
|
rootIdentifier: null,
|
|
|
visible: showUploadFile,
|
|
|
onClose: function onClose() {
|
|
|
return setShowUploadFile(false);
|
|
|
},
|
|
|
onOK: addUploadData
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(AddOrEdit_ManageModal, {
|
|
|
visible: manageVisible,
|
|
|
onCancel: function onCancel() {
|
|
|
setManageVisible(false);
|
|
|
getPointData();
|
|
|
},
|
|
|
onOK: function onOK() {
|
|
|
setManageVisible(false);
|
|
|
getPointData();
|
|
|
}
|
|
|
})]
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 67200:
|
|
|
/*!******************************!*\
|
|
|
!*** ./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];
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 5145:
|
|
|
/*!****************************************************!*\
|
|
|
!*** ./src/components/tpi-code-setting/index.less ***!
|
|
|
\****************************************************/
|
|
|
/***/ (function() {
|
|
|
|
|
|
"use strict";
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
|
|
|
/***/ })
|
|
|
|
|
|
}]); |