From ab2bbc28c8fc27197cfaf1fa469d35785940da75 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Tue, 22 Feb 2022 14:24:27 +0800 Subject: [PATCH 01/21] no message --- .gitignore | 1 - resources/drawio | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) create mode 160000 resources/drawio diff --git a/.gitignore b/.gitignore index 848dbd6f6..4fb6b55c0 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ /public/uploads/* /public/.well-known /public/.user.ini -/resources/drawio/ /storage/*.key /vendor /build diff --git a/resources/drawio b/resources/drawio new file mode 160000 index 000000000..d1e210ce4 --- /dev/null +++ b/resources/drawio @@ -0,0 +1 @@ +Subproject commit d1e210ce4ba5cced90a56866036e888795792d59 From fb8f63f305027e407a78fa8970b9697bb5008f87 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Tue, 22 Feb 2022 20:51:07 +0800 Subject: [PATCH 02/21] =?UTF-8?q?=E5=8F=96=E6=B6=88drawio=E7=BD=91?= =?UTF-8?q?=E9=A1=B5=E7=89=88=E6=9C=AA=E4=BF=9D=E5=AD=98=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/drawio/webapp/js/app.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/drawio/webapp/js/app.min.js b/docker/drawio/webapp/js/app.min.js index 2d904e318..9e047edfb 100644 --- a/docker/drawio/webapp/js/app.min.js +++ b/docker/drawio/webapp/js/app.min.js @@ -2286,7 +2286,7 @@ b.deltaY&&(d=1+Math.abs(b.deltaY)/20*(d-1)),a.lazyZoom(c,null,null,d),mxEvent.co EditorUi.prototype.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};EditorUi.prototype.createTemporaryGraph=function(a){return Graph.createOffscreenGraph(a)};EditorUi.prototype.addChromelessClickHandler=function(){var a=urlParams.highlight;null!=a&&0 Date: Tue, 22 Feb 2022 21:02:27 +0800 Subject: [PATCH 03/21] =?UTF-8?q?=E5=8F=96=E6=B6=88=20electron-renderer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/main.js | 832 +++++++++++++++++- electron/package.json | 3 +- electron/preload.js | 79 +- package.json | 5 +- resources/assets/js/App.vue | 9 +- resources/assets/js/app.js | 10 +- .../assets/js/components/RightBottom.vue | 8 +- resources/assets/js/functions/web.js | 2 +- resources/assets/js/pages/manage.vue | 2 +- .../js/pages/manage/components/DialogView.vue | 2 +- .../js/pages/manage/components/TaskDetail.vue | 6 +- resources/assets/js/pages/manage/file.vue | 2 +- webpack.mix.js | 16 +- 13 files changed, 908 insertions(+), 68 deletions(-) diff --git a/electron/main.js b/electron/main.js index 8c0806288..895725e67 100644 --- a/electron/main.js +++ b/electron/main.js @@ -2,11 +2,14 @@ const fs = require('fs') const fse = require('fs-extra') const os = require("os"); const path = require('path') -const XLSX = require('xlsx'); -const {app, BrowserWindow, ipcMain, dialog} = require('electron') +const {app, BrowserWindow, ipcMain, dialog, clipboard, nativeImage, shell} = require('electron') +const log = require("electron-log"); +const fsProm = require('fs/promises'); +const PDFDocument = require('pdf-lib').PDFDocument; +const crc = require('crc'); +const zlib = require('zlib'); const utils = require('./utils'); const config = require('./package.json'); -const log = require("electron-log"); let mainWindow = null, subWindow = [], @@ -68,8 +71,9 @@ function createMainWindow() { autoHideMenuBar: true, webPreferences: { preload: path.join(__dirname, 'preload.js'), + webSecurity: true, nodeIntegration: true, - contextIsolation: false + contextIsolation: true } }) mainWindow.webContents.setUserAgent(mainWindow.webContents.getUserAgent() + " MainTaskWindow/" + process.platform + "/" + os.arch() + "/1.0"); @@ -150,9 +154,10 @@ function createSubWindow(args) { webPreferences: { preload: path.join(__dirname, 'preload.js'), devTools: args.devTools !== false, + webSecurity: true, nodeIntegration: true, - contextIsolation: false - } + contextIsolation: true + }, }, config)) browser.on('page-title-updated', (event, title) => { if (title == "index.html" || args.titleFixed === true) { @@ -289,6 +294,15 @@ ipcMain.on('windowClose', (event) => { event.returnValue = "ok" }) +/** + * 关闭窗口(强制) + */ +ipcMain.on('windowDestroy', (event) => { + const win = BrowserWindow.fromWebContents(event.sender); + win.destroy() + event.returnValue = "ok" +}) + /** * 设置窗口尺寸 * @param args {width, height, autoZoom, minWidth, minHeight, maxWidth, maxHeight} @@ -404,20 +418,794 @@ ipcMain.on('setDockBadge', (event, args) => { event.returnValue = "ok" }) -/** - * 保存sheets - */ -ipcMain.on('saveSheet', (event, data, filename, opts) => { - const EXTENSIONS = "xls|xlsx|xlsm|xlsb|xml|csv|txt|dif|sylk|slk|prn|ods|fods|htm|html".split("|"); - dialog.showSaveDialog({ - title: 'Save file as', - defaultPath: filename, - filters: [{ - name: "Spreadsheets", - extensions: EXTENSIONS - }] - }).then(o => { - XLSX.writeFile(data, o.filePath, opts); + +//Pdf export +const MICRON_TO_PIXEL = 264.58 //264.58 micron = 1 pixel +const PNG_CHUNK_IDAT = 1229209940; +const LARGE_IMAGE_AREA = 30000000; + +//NOTE: Key length must not be longer than 79 bytes (not checked) +function writePngWithText(origBuff, key, text, compressed, base64encoded) { + let isDpi = key == 'dpi'; + let inOffset = 0; + let outOffset = 0; + let data = text; + let dataLen = isDpi ? 9 : key.length + data.length + 1; //we add 1 zeros with non-compressed data, for pHYs it's 2 of 4-byte-int + 1 byte + + //prepare compressed data to get its size + if (compressed) { + data = zlib.deflateRawSync(encodeURIComponent(text)); + dataLen = key.length + data.length + 2; //we add 2 zeros with compressed data + } + + let outBuff = Buffer.allocUnsafe(origBuff.length + dataLen + 4); //4 is the header size "zTXt", "tEXt" or "pHYs" + + try { + let magic1 = origBuff.readUInt32BE(inOffset); + inOffset += 4; + let magic2 = origBuff.readUInt32BE(inOffset); + inOffset += 4; + + if (magic1 != 0x89504e47 && magic2 != 0x0d0a1a0a) { + throw new Error("PNGImageDecoder0"); + } + + outBuff.writeUInt32BE(magic1, outOffset); + outOffset += 4; + outBuff.writeUInt32BE(magic2, outOffset); + outOffset += 4; + } catch (e) { + log.error(e.message, {stack: e.stack}); + throw new Error("PNGImageDecoder1"); + } + + try { + while (inOffset < origBuff.length) { + let length = origBuff.readInt32BE(inOffset); + inOffset += 4; + let type = origBuff.readInt32BE(inOffset) + inOffset += 4; + + if (type == PNG_CHUNK_IDAT) { + // Insert zTXt chunk before IDAT chunk + outBuff.writeInt32BE(dataLen, outOffset); + outOffset += 4; + + let typeSignature = isDpi ? 'pHYs' : (compressed ? "zTXt" : "tEXt"); + outBuff.write(typeSignature, outOffset); + + outOffset += 4; + + if (isDpi) { + let dpm = Math.round(parseInt(text) / 0.0254) || 3937; //One inch is equal to exactly 0.0254 meters. 3937 is 100dpi + + outBuff.writeInt32BE(dpm, outOffset); + outBuff.writeInt32BE(dpm, outOffset + 4); + outBuff.writeInt8(1, outOffset + 8); + outOffset += 9; + + data = Buffer.allocUnsafe(9); + data.writeInt32BE(dpm, 0); + data.writeInt32BE(dpm, 4); + data.writeInt8(1, 8); + } else { + outBuff.write(key, outOffset); + outOffset += key.length; + outBuff.writeInt8(0, outOffset); + outOffset++; + + if (compressed) { + outBuff.writeInt8(0, outOffset); + outOffset++; + data.copy(outBuff, outOffset); + } else { + outBuff.write(data, outOffset); + } + + outOffset += data.length; + } + + let crcVal = 0xffffffff; + crcVal = crc.crcjam(typeSignature, crcVal); + crcVal = crc.crcjam(data, crcVal); + + // CRC + outBuff.writeInt32BE(crcVal ^ 0xffffffff, outOffset); + outOffset += 4; + + // Writes the IDAT chunk after the zTXt + outBuff.writeInt32BE(length, outOffset); + outOffset += 4; + outBuff.writeInt32BE(type, outOffset); + outOffset += 4; + + origBuff.copy(outBuff, outOffset, inOffset); + + // Encodes the buffer using base64 if requested + return base64encoded ? outBuff.toString('base64') : outBuff; + } + + outBuff.writeInt32BE(length, outOffset); + outOffset += 4; + outBuff.writeInt32BE(type, outOffset); + outOffset += 4; + + origBuff.copy(outBuff, outOffset, inOffset, inOffset + length + 4);// +4 to move past the crc + + inOffset += length + 4; + outOffset += length + 4; + } + } catch (e) { + log.error(e.message, {stack: e.stack}); + throw e; + } +} + +//TODO Create a lightweight html file similar to export3.html for exporting to vsdx +function exportVsdx(event, args, directFinalize) { + + let win = new BrowserWindow({ + width: 1280, + height: 800, + center: true, + show: false, + autoHideMenuBar: true, + webPreferences: { + preload: path.join(__dirname, 'preload.js'), + devTools: args.devTools !== false, + webSecurity: true, + nodeIntegration: true, + contextIsolation: true + }, + }) + + let loadEvtCount = 0; + + function loadFinished() { + loadEvtCount++; + + if (loadEvtCount == 2) { + win.webContents.send('export-vsdx', args); + + ipcMain.once('export-vsdx-finished', (evt, data) => { + let hasError = false; + + if (data == null) { + hasError = true; + } + + //Set finalize here since it is call in the reply below + function finalize() { + win.destroy(); + } + + if (directFinalize === true) { + event.finalize = finalize; + } else { + //Destroy the window after response being received by caller + ipcMain.once('export-finalize', finalize); + } + + if (hasError) { + event.reply('export-error'); + } else { + event.reply('export-success', data); + } + }); + } + } + + //Order of these two events is not guaranteed, so wait for them async. + //TOOD There is still a chance we catch another window 'app-load-finished' if user created multiple windows quickly + ipcMain.once('app-load-finished', loadFinished); + win.webContents.on('did-finish-load', loadFinished); +} + +async function mergePdfs(pdfFiles, xml) { + //Pass throgh single files + if (pdfFiles.length == 1 && xml == null) { + return pdfFiles[0]; + } + + try { + const pdfDoc = await PDFDocument.create(); + pdfDoc.setCreator('diagrams.net'); + + if (xml != null) { + //Embed diagram XML as file attachment + await pdfDoc.attach(Buffer.from(xml).toString('base64'), 'diagram.xml', { + mimeType: 'application/vnd.jgraph.mxfile', + description: 'Diagram Content' + }); + } + + for (let i = 0; i < pdfFiles.length; i++) { + const pdfFile = await PDFDocument.load(pdfFiles[i].buffer); + const pages = await pdfDoc.copyPages(pdfFile, pdfFile.getPageIndices()); + pages.forEach(p => pdfDoc.addPage(p)); + } + + const pdfBytes = await pdfDoc.save(); + return Buffer.from(pdfBytes); + } catch (e) { + throw new Error('Error during PDF combination: ' + e.message); + } +} + +//TODO Use canvas to export images if math is not used to speedup export (no capturePage). Requires change to export3.html also +function exportDiagram(event, args, directFinalize) { + if (args.format == 'vsdx') { + exportVsdx(event, args, directFinalize); + return; + } + + let browser = null; + + try { + browser = new BrowserWindow({ + webPreferences: { + preload: `${__dirname}/electron-preload.js`, + backgroundThrottling: false, + contextIsolation: true, + nativeWindowOpen: true + }, + show: false, + frame: false, + enableLargerThanScreen: true, + transparent: args.format == 'png' && (args.bg == null || args.bg == 'none'), + }); + + browser.loadURL(`file://${__dirname}/export3.html`); + + const contents = browser.webContents; + let pageByPage = (args.format == 'pdf' && !args.print), from, pdfs; + + if (pageByPage) { + from = args.allPages ? 0 : parseInt(args.from || 0); + to = args.allPages ? 1000 : parseInt(args.to || 1000) + 1; //The 'to' will be corrected later + pdfs = []; + + args.from = from; + args.to = from; + args.allPages = false; + } + + contents.on('did-finish-load', function () { + //Set finalize here since it is call in the reply below + function finalize() { + browser.destroy(); + } + + if (directFinalize === true) { + event.finalize = finalize; + } else { + //Destroy the window after response being received by caller + ipcMain.once('export-finalize', finalize); + } + + function renderingFinishHandler(evt, renderInfo) { + if (renderInfo == null) { + event.reply('export-error'); + return; + } + + let pageCount = renderInfo.pageCount, bounds = null; + //For some reason, Electron 9 doesn't send this object as is without stringifying. Usually when variable is external to function own scope + try { + bounds = JSON.parse(renderInfo.bounds); + } catch (e) { + bounds = null; + } + + let pdfOptions = {pageSize: 'A4'}; + let hasError = false; + + if (bounds == null || bounds.width < 5 || bounds.height < 5) //very small page size never return from printToPDF + { + //A workaround to detect errors in the input file or being empty file + hasError = true; + } else { + //Chrome generates Pdf files larger than requested pixels size and requires scaling + let fixingScale = 0.959; + + let w = Math.ceil(bounds.width * fixingScale); + + // +0.1 fixes cases where adding 1px below is not enough + // Increase this if more cropped PDFs have extra empty pages + let h = Math.ceil(bounds.height * fixingScale + 0.1); + + pdfOptions = { + printBackground: true, + pageSize: { + width: w * MICRON_TO_PIXEL, + height: (h + 2) * MICRON_TO_PIXEL //the extra 2 pixels to prevent adding an extra empty page + }, + marginsType: 1 // no margin + } + } + + let base64encoded = args.base64 == '1'; + + if (hasError) { + event.reply('export-error'); + } else if (args.format == 'png' || args.format == 'jpg' || args.format == 'jpeg') { + //Adds an extra pixel to prevent scrollbars from showing + let newBounds = { + width: Math.ceil(bounds.width + bounds.x) + 1, + height: Math.ceil(bounds.height + bounds.y) + 1 + }; + browser.setBounds(newBounds); + + //TODO The browser takes sometime to show the graph (also after resize it takes some time to render) + // 1 sec is most probably enough (for small images, 5 for large ones) BUT not a stable solution + setTimeout(function () { + browser.capturePage().then(function (img) { + //Image is double the given bounds, so resize is needed! + let tScale = 1; + + //If user defined width and/or height, enforce it precisely here. Height override width + if (args.h) { + tScale = args.h / newBounds.height; + } else if (args.w) { + tScale = args.w / newBounds.width; + } + + newBounds.width *= tScale; + newBounds.height *= tScale; + img = img.resize(newBounds); + + let data = args.format == 'png' ? img.toPNG() : img.toJPEG(args.jpegQuality || 90); + + if (args.dpi != null && args.format == 'png') { + data = writePngWithText(data, 'dpi', args.dpi); + } + + if (args.embedXml == "1" && args.format == 'png') { + data = writePngWithText(data, "mxGraphModel", args.xml, true, + base64encoded); + } else { + if (base64encoded) { + data = data.toString('base64'); + } + } + + event.reply('export-success', data); + }); + }, bounds.width * bounds.height < LARGE_IMAGE_AREA ? 1000 : 5000); + } else if (args.format == 'pdf') { + if (args.print) { + pdfOptions = { + scaleFactor: args.pageScale, + printBackground: true, + pageSize: { + width: args.pageWidth * MICRON_TO_PIXEL, + //This height adjustment fixes the output. TODO Test more cases + height: (args.pageHeight * 1.025) * MICRON_TO_PIXEL + }, + marginsType: 1 // no margin + }; + + contents.print(pdfOptions, (success, errorType) => { + //Consider all as success + event.reply('export-success', {}); + }); + } else { + contents.printToPDF(pdfOptions).then(async (data) => { + pdfs.push(data); + to = to > pageCount ? pageCount : to; + from++; + + if (from < to) { + args.from = from; + args.to = from; + ipcMain.once('render-finished', renderingFinishHandler); + contents.send('render', args); + } else { + data = await mergePdfs(pdfs, args.embedXml == '1' ? args.xml : null); + event.reply('export-success', data); + } + }) + .catch((error) => { + event.reply('export-error', error); + }); + } + } else if (args.format == 'svg') { + contents.send('get-svg-data'); + + ipcMain.once('svg-data', (evt, data) => { + event.reply('export-success', data); + }); + } else { + event.reply('export-error', 'Error: Unsupported format'); + } + } + + ipcMain.once('render-finished', renderingFinishHandler); + + if (args.format == 'xml') { + ipcMain.once('xml-data', (evt, data) => { + event.reply('export-success', data); + }); + + ipcMain.once('xml-data-error', () => { + event.reply('export-error'); + }); + } + + args.border = args.border || 0; + args.scale = args.scale || 1; + + contents.send('render', args); + }); + } catch (e) { + if (browser != null) { + browser.destroy(); + } + + event.reply('export-error', e); + console.log('export-error', e); + } +} + +ipcMain.on('export', exportDiagram); + +//================================================================ +// Renderer Helper functions +//================================================================ + +const {COPYFILE_EXCL} = fs.constants; +const DRAFT_PREFEX = '~$'; +const DRAFT_EXT = '.dtmp'; +const BKP_PREFEX = '~$'; +const BKP_EXT = '.bkp'; + +function isConflict(origStat, stat) { + return stat != null && origStat != null && stat.mtimeMs != origStat.mtimeMs; +} + +function getDraftFileName(fileObject) { + let filePath = fileObject.path; + let draftFileName = '', counter = 1, uniquePart = ''; + + do { + draftFileName = path.join(path.dirname(filePath), DRAFT_PREFEX + path.basename(filePath) + uniquePart + DRAFT_EXT); + uniquePart = '_' + counter++; + } while (fs.existsSync(draftFileName)); + + return draftFileName; +} + +async function getFileDrafts(fileObject) { + let filePath = fileObject.path; + let draftsPaths = [], drafts = [], draftFileName, counter = 1, uniquePart = ''; + + do { + draftsPaths.push(draftFileName); + draftFileName = path.join(path.dirname(filePath), DRAFT_PREFEX + path.basename(filePath) + uniquePart + DRAFT_EXT); + uniquePart = '_' + counter++; + } while (fs.existsSync(draftFileName)); //TODO this assume continuous drafts names + + for (let i = 1; i < draftsPaths.length; i++) { + try { + let stat = await fsProm.lstat(draftsPaths[i]); + drafts.push({ + data: await fsProm.readFile(draftsPaths[i], 'utf8'), + created: stat.ctimeMs, + modified: stat.mtimeMs, + path: draftsPaths[i] + }); + } catch (e) { + } // Ignore + } + + return drafts; +} + +async function saveDraft(fileObject, data) { + if (data == null || data.length == 0) { + throw new Error('empty data'); + } else { + let draftFileName = fileObject.draftFileName || getDraftFileName(fileObject); + await fsProm.writeFile(draftFileName, data, 'utf8'); + return draftFileName; + } +} + +async function saveFile(fileObject, data, origStat, overwrite, defEnc) { + let retryCount = 0; + let backupCreated = false; + let bkpPath = path.join(path.dirname(fileObject.path), BKP_PREFEX + path.basename(fileObject.path) + BKP_EXT); + + let writeFile = async function () { + if (data == null || data.length == 0) { + throw new Error('empty data'); + } else { + let writeEnc = defEnc || fileObject.encoding; + + await fsProm.writeFile(fileObject.path, data, writeEnc); + let stat2 = await fsProm.stat(fileObject.path); + let writtenData = await fsProm.readFile(fileObject.path, writeEnc); + + if (data != writtenData) { + retryCount++; + + if (retryCount < 3) { + return await writeFile(); + } else { + throw new Error('all saving trials failed'); + } + } else { + if (backupCreated) { + fs.unlink(bkpPath, (err) => { + }); //Ignore errors! + } + + return stat2; + } + } + }; + + async function doSaveFile() { + try { + await fsProm.copyFile(fileObject.path, bkpPath, COPYFILE_EXCL); + backupCreated = true; + } catch (e) { + } //Ignore + + return await writeFile(); + } + + if (overwrite) { + return await doSaveFile(); + } else { + let stat = fs.existsSync(fileObject.path) ? + await fsProm.stat(fileObject.path) : null; + + if (stat && isConflict(origStat, stat)) { + new Error('conflict'); + } else { + return await doSaveFile(); + } + } +} + +async function writeFile(path, data, enc) { + return await fsProm.writeFile(path, data, enc); +} + +function getAppDataFolder() { + try { + let appDataDir = app.getPath('appData'); + let drawioDir = appDataDir + '/dootask.com'; + + if (!fs.existsSync(drawioDir)) //Usually this dir already exists + { + fs.mkdirSync(drawioDir); + } + + return drawioDir; + } catch (e) { + } + + return '.'; +} + +function getDocumentsFolder() { + try { + return app.getPath('documents'); + } catch (e) { + } + + return '.'; +} + +function checkFileExists(pathParts) { + let filePath = path.join(...pathParts); + return {exists: fs.existsSync(filePath), path: filePath}; +} + +async function showOpenDialog(defaultPath, filters, properties) { + return dialog.showOpenDialogSync({ + defaultPath: defaultPath, + filters: filters, + properties: properties }); - event.returnValue = "ok" -}) +} + +async function showSaveDialog(defaultPath, filters) { + return dialog.showSaveDialogSync({ + defaultPath: defaultPath, + filters: filters + }); +} + +async function installPlugin(filePath) { + let pluginsDir = path.join(getAppDataFolder(), '/plugins'); + + if (!fs.existsSync(pluginsDir)) { + fs.mkdirSync(pluginsDir); + } + + let pluginName = path.basename(filePath); + let dstFile = path.join(pluginsDir, pluginName); + + if (fs.existsSync(dstFile)) { + throw new Error('fileExists'); + } else { + await fsProm.copyFile(filePath, dstFile); + } + + return {pluginName: pluginName, selDir: path.dirname(filePath)}; +} + +function uninstallPlugin(plugin) { + let pluginsFile = path.join(getAppDataFolder(), '/plugins', plugin); + + if (fs.existsSync(pluginsFile)) { + fs.unlinkSync(pluginsFile); + } + return null +} + +function dirname(path_p) { + return path.dirname(path_p); +} + +async function readFile(filename, encoding) { + return await fsProm.readFile(filename, encoding); +} + +async function fileStat(file) { + return await fsProm.stat(file); +} + +async function isFileWritable(file) { + try { + await fsProm.access(file, fs.constants.W_OK); + return true; + } catch (e) { + return false; + } +} + +function clipboardAction(method, data) { + if (method == 'writeText') { + clipboard.writeText(data); + } else if (method == 'readText') { + return clipboard.readText(); + } else if (method == 'writeImage') { + clipboard.write({ + image: + nativeImage.createFromDataURL(data.dataUrl), html: '' + }); + } +} + +async function deleteFile(file) { + await fsProm.unlink(file); +} + +function windowAction(method) { + let win = BrowserWindow.getFocusedWindow(); + + if (win) { + if (method == 'minimize') { + win.minimize(); + } else if (method == 'maximize') { + win.maximize(); + } else if (method == 'unmaximize') { + win.unmaximize(); + } else if (method == 'close') { + win.close(); + } else if (method == 'isMaximized') { + return win.isMaximized(); + } else if (method == 'removeAllListeners') { + win.removeAllListeners(); + } + } +} + +function openExternal(url) { + shell.openExternal(url); + return null +} + +function watchFile(path) { + let win = BrowserWindow.getFocusedWindow(); + + if (win) { + fs.watchFile(path, (curr, prev) => { + try { + win.webContents.send('fileChanged', { + path: path, + curr: curr, + prev: prev + }); + } catch (e) { + } // Ignore + }); + } + return null +} + +function unwatchFile(path) { + fs.unwatchFile(path); + return null +} + +ipcMain.on("rendererReq", async (event, args) => { + try { + let ret = null; + + switch (args.action) { + case 'saveFile': + ret = await saveFile(args.fileObject, args.data, args.origStat, args.overwrite, args.defEnc); + break; + case 'writeFile': + ret = await writeFile(args.path, args.data, args.enc); + break; + case 'saveDraft': + ret = await saveDraft(args.fileObject, args.data); + break; + case 'getFileDrafts': + ret = await getFileDrafts(args.fileObject); + break; + case 'getAppDataFolder': + ret = getAppDataFolder(); + break; + case 'getDocumentsFolder': + ret = await getDocumentsFolder(); + break; + case 'checkFileExists': + ret = checkFileExists(args.pathParts); + break; + case 'showOpenDialog': + ret = await showOpenDialog(args.defaultPath, args.filters, args.properties); + break; + case 'showSaveDialog': + ret = await showSaveDialog(args.defaultPath, args.filters); + break; + case 'installPlugin': + ret = await installPlugin(args.filePath); + break; + case 'uninstallPlugin': + ret = await uninstallPlugin(args.plugin); + break; + case 'dirname': + ret = dirname(args.path); + break; + case 'readFile': + ret = await readFile(args.filename, args.encoding); + break; + case 'clipboardAction': + ret = clipboardAction(args.method, args.data); + break; + case 'deleteFile': + ret = await deleteFile(args.file); + break; + case 'fileStat': + ret = await fileStat(args.file); + break; + case 'isFileWritable': + ret = await isFileWritable(args.file); + break; + case 'windowAction': + ret = windowAction(args.method); + break; + case 'openExternal': + ret = await openExternal(args.url); + break; + case 'watchFile': + ret = await watchFile(args.path); + break; + case 'unwatchFile': + ret = await unwatchFile(args.path); + break; + } + + event.reply('mainResp', {success: true, data: ret, reqId: args.reqId}); + } catch (e) { + event.reply('mainResp', {error: true, msg: e.message, e: e, reqId: args.reqId}); + } +}); diff --git a/electron/package.json b/electron/package.json index bf0800c54..d393fc866 100644 --- a/electron/package.json +++ b/electron/package.json @@ -40,10 +40,11 @@ }, "dependencies": { "axios": "^0.26.0", + "crc": "^3.8.0", "electron-squirrel-startup": "^1.0.0", "electron-log": "^4.4.6", "fs-extra": "^10.0.0", - "xlsx": "^0.18.1" + "pdf-lib": "^1.16.0" }, "build": { "appId": "com.dootask.task", diff --git a/electron/preload.js b/electron/preload.js index 601ef65b4..50fcfc145 100644 --- a/electron/preload.js +++ b/electron/preload.js @@ -1,14 +1,73 @@ -// preload.js +const { + shell, + contextBridge, + ipcRenderer +} = require("electron"); -// All of the Node.js APIs are available in the preload process. -// It has the same sandbox as a Chrome extension. -window.addEventListener('DOMContentLoaded', () => { - const replaceText = (selector, text) => { - const element = document.getElementById(selector) - if (element) element.innerText = text +let reqId = 1; +let reqInfo = {}; +let fileChangedListeners = {}; + +ipcRenderer.on('mainResp', (event, resp) => { + let callbacks = reqInfo[resp.reqId]; + + if (resp.error) { + callbacks.error(resp.msg, resp.e); + } else { + callbacks.callback(resp.data); } - for (const dependency of ['chrome', 'node', 'electron']) { - replaceText(`${dependency}-version`, process.versions[dependency]) + delete reqInfo[resp.reqId]; +}); + +ipcRenderer.on('fileChanged', (event, resp) => { + let listener = fileChangedListeners[resp.path]; + + if (listener) { + listener(resp.curr, resp.prev); } -}) +}); + +contextBridge.exposeInMainWorld( + 'electron', { + request: (msg, callback, error) => { + msg.reqId = reqId++; + reqInfo[msg.reqId] = {callback: callback, error: error}; + + if (msg.action == 'watchFile') { + fileChangedListeners[msg.path] = msg.listener; + delete msg.listener; + } + + ipcRenderer.send('rendererReq', msg); + }, + registerMsgListener: (action, callback) => { + ipcRenderer.on(action, (event, args) => { + callback(args); + }); + }, + listenOnce: (action, callback) => { + ipcRenderer.once(action, (event, args) => { + callback(args); + }); + }, + sendMessage: (action, args) => { + ipcRenderer.send(action, args); + }, + sendSyncMessage: (action, args) => { + ipcRenderer.sendSync(action, args); + }, + openExternal: (url) => { + return new Promise((resolve, reject) => { + shell.openExternal(url).then(resolve).catch(reject) + }); + } + } +); + +contextBridge.exposeInMainWorld( + 'process', { + type: process.type, + versions: process.versions + } +); diff --git a/package.json b/package.json index 53cd32528..96352eca0 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,6 @@ "cross-env": "^7.0.3", "css-loader": "^6.5.1", "echarts": "^5.2.2", - "electron": "^17.0.1", "element-ui": "^2.15.6", "file-loader": "^6.2.0", "inquirer": "^8.2.0", @@ -75,8 +74,8 @@ "vue-template-compiler": "^2.6.14", "vuedraggable": "^2.24.3", "vuex": "^3.6.2", - "webpack": "^5.65.0", - "webpack-cli": "^4.9.1", + "webpack": "^5.69.1", + "webpack-cli": "^4.9.2", "xlsx": "^0.17.4" } } diff --git a/resources/assets/js/App.vue b/resources/assets/js/App.vue index 45e1127ed..f634fed6b 100755 --- a/resources/assets/js/App.vue +++ b/resources/assets/js/App.vue @@ -179,9 +179,8 @@ export default { if (!this.$Electron) { return; } - const {ipcRenderer} = this.$Electron; - ipcRenderer.send('inheritClose'); - ipcRenderer.on('windowClose', () => { + this.$Electron.sendMessage('inheritClose'); + this.$Electron.registerMsgListener('windowClose', () => { if (this.$Modal.removeLast()) { return; } @@ -189,9 +188,9 @@ export default { this.cacheDrawerOverlay[this.cacheDrawerOverlay.length - 1].close(); return; } - ipcRenderer.send('windowHidden'); + this.$Electron.sendMessage('windowHidden'); }) - ipcRenderer.on('dispatch', (event, args) => { + this.$Electron.registerMsgListener('dispatch', (event, args) => { if (!$A.isJson(args)) { return; } diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js index 9d077c47c..6aea7f970 100644 --- a/resources/assets/js/app.js +++ b/resources/assets/js/app.js @@ -1,3 +1,5 @@ +const isElectron = window && window.process && window.process.type; + import './functions/common' import './functions/web' @@ -56,7 +58,7 @@ VueRouter.prototype.push = function push(location) { } const router = new VueRouter({ - mode: !!__IS_ELECTRON ? 'hash' : 'history', + mode: isElectron ? 'hash' : 'history', routes }); @@ -98,8 +100,8 @@ Vue.prototype.$Electron = null; Vue.prototype.$Platform = "web"; Vue.prototype.$isMainElectron = false; Vue.prototype.$isSubElectron = false; -if (!!__IS_ELECTRON) { - Vue.prototype.$Electron = require('electron'); +if (isElectron) { + Vue.prototype.$Electron = electron; Vue.prototype.$Platform = /macintosh|mac os x/i.test(navigator.userAgent) ? "mac" : "win"; Vue.prototype.$isMainElectron = /\s+MainTaskWindow\//.test(window.navigator.userAgent); Vue.prototype.$isSubElectron = /\s+SubTaskWindow\//.test(window.navigator.userAgent); @@ -131,7 +133,7 @@ $A.isMainElectron = app.$isMainElectron; $A.isSubElectron = app.$isSubElectron; $A.execMainDispatch = (action, data) => { if ($A.isSubElectron) { - $A.Electron.ipcRenderer.send('sendForwardMain', { + $A.Electron.sendMessage('sendForwardMain', { channel: 'dispatch', data: {action, data}, }); diff --git a/resources/assets/js/components/RightBottom.vue b/resources/assets/js/components/RightBottom.vue index cf2f13650..f1d9243dd 100644 --- a/resources/assets/js/components/RightBottom.vue +++ b/resources/assets/js/components/RightBottom.vue @@ -44,7 +44,7 @@ export default { this.getReleases(); // if (this.$Electron) { - this.$Electron.ipcRenderer.on('downloadDone', (event, {result}) => { + this.$Electron.registerMsgListener('downloadDone', (event, {result}) => { if (result.name == this.repoData.name) { this.downloadResult = result; this.releasesNotification() @@ -186,7 +186,7 @@ export default { if (this.compareVersion(latestVersion, currentVersion) === 1) { // 有新版本 console.log("New version: " + latestVersion); - this.$Electron.ipcRenderer.send('downloadFile', { + this.$Electron.sendMessage('downloadFile', { url: this.repoData.browser_download_url }); } @@ -241,10 +241,10 @@ export default { if (!this.$Electron) { return; } - this.$Electron.ipcRenderer.send('openFile', { + this.$Electron.sendMessage('openFile', { path: this.downloadResult.savePath }); - this.$Electron.ipcRenderer.send('windowQuit'); + this.$Electron.sendMessage('windowQuit'); }, useSSOLogin() { diff --git a/resources/assets/js/functions/web.js b/resources/assets/js/functions/web.js index d15ff7783..399cf87ca 100755 --- a/resources/assets/js/functions/web.js +++ b/resources/assets/js/functions/web.js @@ -366,7 +366,7 @@ return } if ($A.Electron) { - $A.Electron.shell.openExternal(url).catch(() => { + $A.Electron.openExternal(url).catch(() => { $A.modalError("下载失败"); }); } else { diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue index 9117e41b5..9e4a2b71f 100644 --- a/resources/assets/js/pages/manage.vue +++ b/resources/assets/js/pages/manage.vue @@ -475,7 +475,7 @@ export default { unreadTotal: { handler(num) { if (this.$Electron) { - this.$Electron.ipcRenderer.send('setDockBadge', num); + this.$Electron.sendMessage('setDockBadge', num); } }, immediate: true diff --git a/resources/assets/js/pages/manage/components/DialogView.vue b/resources/assets/js/pages/manage/components/DialogView.vue index 53444d4f2..093d7bf84 100644 --- a/resources/assets/js/pages/manage/components/DialogView.vue +++ b/resources/assets/js/pages/manage/components/DialogView.vue @@ -213,7 +213,7 @@ export default { viewFile() { if (this.$Electron) { - this.$Electron.ipcRenderer.send('windowRouter', { + this.$Electron.sendMessage('windowRouter', { title: `${this.msgData.msg.name} (${$A.bytesToSize(this.msgData.msg.size)})`, titleFixed: true, name: 'file-msg-' + this.msgData.id, diff --git a/resources/assets/js/pages/manage/components/TaskDetail.vue b/resources/assets/js/pages/manage/components/TaskDetail.vue index bb48818a3..1c798d3b0 100644 --- a/resources/assets/js/pages/manage/components/TaskDetail.vue +++ b/resources/assets/js/pages/manage/components/TaskDetail.vue @@ -1126,7 +1126,7 @@ export default { config.minWidth = 800; config.minHeight = 600; } - this.$Electron.ipcRenderer.send('windowRouter', { + this.$Electron.sendMessage('windowRouter', { title: this.taskDetail.name, titleFixed: true, name: 'task-' + this.taskDetail.id, @@ -1139,7 +1139,7 @@ export default { resizeDialog() { return new Promise(resolve => { - this.$Electron.ipcRenderer.sendSync('windowSize', { + this.$Electron.sendSyncMessage('windowSize', { width: Math.max(1100, window.innerWidth), height: Math.max(720, window.innerHeight), minWidth: 800, @@ -1161,7 +1161,7 @@ export default { viewFile(file) { if (this.$Electron) { - this.$Electron.ipcRenderer.send('windowRouter', { + this.$Electron.sendMessage('windowRouter', { title: `${file.name} (${$A.bytesToSize(file.size)})`, titleFixed: true, name: 'file-task-' + file.id, diff --git a/resources/assets/js/pages/manage/file.vue b/resources/assets/js/pages/manage/file.vue index 5cb13a3ef..cab0a3ba3 100644 --- a/resources/assets/js/pages/manage/file.vue +++ b/resources/assets/js/pages/manage/file.vue @@ -854,7 +854,7 @@ export default { }, openSingle(item) { - this.$Electron.ipcRenderer.send('windowRouter', { + this.$Electron.sendMessage('windowRouter', { title: this.formatName(item), titleFixed: true, userAgent: "/hideenOfficeTitle/", diff --git a/webpack.mix.js b/webpack.mix.js index 44a73bcf3..123b8d9b5 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -21,24 +21,16 @@ mix .js('resources/assets/js/app.js', 'js') .sass('resources/assets/sass/app.scss', 'css') .setPublicPath(publicPath) - .webpackConfig(webpack => { + .webpackConfig(() => { let config = { output: { chunkFilename: ({chunk}) => { return `js/build/${mixBuildName(chunk.id)}.js` } - }, - plugins: [ - new webpack.DefinePlugin({ - '__IS_ELECTRON': isElectron, - }) - ] - }; - if (isElectron) { - config.target = 'electron-renderer' - if (!isHot) { - config.output.publicPath = './' } + }; + if (isElectron && !isHot) { + config.output.publicPath = './' } return config }) From cbf2e6a1405bfb250cd9e850848b675fc366128e Mon Sep 17 00:00:00 2001 From: kuaifan Date: Wed, 23 Feb 2022 00:07:27 +0800 Subject: [PATCH 04/21] no message --- docker-compose.yml | 1 + .../drawio/webapp/js/diagramly/ElectronApp.js | 2206 +++++++++++++++++ electron/main.js | 12 +- 3 files changed, 2215 insertions(+), 4 deletions(-) create mode 100644 docker/drawio/webapp/js/diagramly/ElectronApp.js diff --git a/docker-compose.yml b/docker-compose.yml index a08431c10..3f02aefcf 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -118,6 +118,7 @@ services: - ./docker/drawio/webapp/stencils:/usr/local/tomcat/webapps/draw/stencils - ./docker/drawio/webapp/js/app.min.js:/usr/local/tomcat/webapps/draw/js/app.min.js - ./docker/drawio/webapp/js/croppie/croppie.min.css:/usr/local/tomcat/webapps/draw/js/croppie/croppie.min.css + - ./docker/drawio/webapp/js/diagramly/ElectronApp.js:/usr/local/tomcat/webapps/draw/js/diagramly/ElectronApp.js networks: extnetwork: ipv4_address: "${APP_IPPR}.8" diff --git a/docker/drawio/webapp/js/diagramly/ElectronApp.js b/docker/drawio/webapp/js/diagramly/ElectronApp.js new file mode 100644 index 000000000..d5592b702 --- /dev/null +++ b/docker/drawio/webapp/js/diagramly/ElectronApp.js @@ -0,0 +1,2206 @@ +window.PLUGINS_BASE_PATH = '.'; +window.TEMPLATE_PATH = 'templates'; +window.DRAW_MATH_URL = 'math'; +window.DRAWIO_BASE_URL = '.'; //Prevent access to online website since it is not allowed +FeedbackDialog.feedbackUrl = 'https://log.draw.io/email'; + +//Disables eval for JS (uses shapes-14-6-5.min.js) +mxStencilRegistry.allowEval = false; + +(async function() +{ + let requestSync = async function(msg) + { + if (typeof msg === 'string') + { + msg = { + action: msg + }; + } + + async function doRequest() + { + return new Promise((resolve, reject) => { + electron.request(msg, function(data) + { + resolve(data); + }, function(errMsg, e) + { + reject(e || errMsg); + }); + }); + }; + + return await doRequest(); + }; + + // Overrides default mode + App.mode = App.MODE_DEVICE; + + // Disables all external transmission functionality + App.prototype.isExternalDataComms = function() + { + return false; + }; + + // Disables preview option in embed dialog + EmbedDialog.showPreviewOption = false; + + // Disables new window option in edit diagram dialog + EditDiagramDialog.showNewWindowOption = false; + + PrintDialog.previewEnabled = false; + + PrintDialog.electronPrint = function(editorUi, allPages, pagesFrom, pagesTo, + fit, sheetsAcross, sheetsDown, zoom, pageScale, pageFormat) + { + var xml = '', title = ''; + var file = editorUi.getCurrentFile(); + + if (file) + { + file.updateFileData(); + xml = file.getData(); + title = file.title; + } + + new mxElectronRequest('export', { + print: true, + format: 'pdf', + xml: xml, + from: pagesFrom - 1, + to: pagesTo - 1, + allPages: allPages, + pageWidth: pageFormat.width, + pageHeight: pageFormat.height, + pageScale: pageScale, + fit: fit, + sheetsAcross: sheetsAcross, + sheetsDown: sheetsDown, + scale: zoom, + fileTitle: title + }).send(function(){}, function(){}); + }; + + var oldWindowOpen = window.open; + window.open = async function(url) + { + if (url != null && url.startsWith('http')) + { + await requestSync({action: 'openExternal', url: url}); + } + else + { + return oldWindowOpen(url); + } + } + + var origAppMain = App.main; + + App.main = async function() + { + //Load desktop plugins + var plugins = (mxSettings.settings != null) ? mxSettings.getPlugins() : null; + App.initPluginCallback(); + + if (plugins != null && plugins.length > 0) + { + for (var i = 0; i < plugins.length; i++) + { + try + { + if (plugins[i].startsWith('/plugins/')) + { + plugins[i] = '.' + plugins[i]; + } + else if (plugins[i].startsWith('plugins/')) + { + plugins[i] = './' + plugins[i]; + } + //Support old plugins added using file:// workaround + else if (!plugins[i].startsWith('file://')) + { + let appFolder = await requestSync('getAppDataFolder'); + + let pluginsFile = await requestSync({ + action: 'checkFileExists', + pathParts: [appFolder, '/plugins', plugins[i]] + }); + + if (pluginsFile.exists) + { + plugins[i] = 'file://' + pluginsFile.path; + } + else + { + continue; //skip not found files + } + } + + mxscript(plugins[i]); + } + catch (e) + { + // ignore + } + } + } + + //Disable web plugins loading + urlParams['plugins'] = '0'; + origAppMain.apply(this, arguments); + }; + + var menusInit = Menus.prototype.init; + Menus.prototype.init = function() + { + menusInit.apply(this, arguments); + + var editorUi = this.editorUi; + + editorUi.actions.put('useOffline', new Action(mxResources.get('useOffline') + '...', function() + { + editorUi.openLink('https://www.draw.io/') + })); + + this.put('openRecent', new Menu(function(menu, parent) + { + var recent = editorUi.getRecent(); + + if (recent != null) + { + for (var i = 0; i < recent.length; i++) + { + (function(entry) + { + menu.addItem(entry.title, null, function() + { + function doOpenRecent() + { + //Simulate opening a file via args + editorUi.loadArgs({args: [entry.id]}); + }; + + var file = editorUi.getCurrentFile(); + + if (file != null && file.isModified()) + { + editorUi.confirm(mxResources.get('allChangesLost'), null, doOpenRecent, + mxResources.get('cancel'), mxResources.get('discardChanges')); + } + else + { + doOpenRecent(); + } + }, parent); + })(recent[i]); + } + + menu.addSeparator(parent); + } + + menu.addItem(mxResources.get('reset'), null, function() + { + editorUi.resetRecent(); + }, parent); + })); + + // Replaces file menu to replace openFrom menu with open and rename downloadAs to export + this.put('file', new Menu(mxUtils.bind(this, function(menu, parent) + { + this.addMenuItems(menu, ['import'], parent); + this.addSubmenu('exportAs', menu, parent); + menu.addSeparator(parent); + this.addSubmenu('embed', menu, parent); + menu.addSeparator(parent); + this.addMenuItems(menu, ['newLibrary', 'openLibrary'], parent); + + var file = editorUi.getCurrentFile(); + + if (file != null && editorUi.fileNode != null) + { + var filename = (file.getTitle() != null) ? + file.getTitle() : editorUi.defaultFilename; + + if (!/(\.html)$/i.test(filename) && + !/(\.svg)$/i.test(filename)) + { + this.addMenuItems(menu, ['-', 'properties']); + } + } + + this.addMenuItems(menu, ['-', 'pageSetup', 'print'], parent); + // LATER: Find API for application.quit + }))); + }; + + var graphCreateLinkForHint = Graph.prototype.createLinkForHint; + + Graph.prototype.createLinkForHint = function(href, label) + { + var a = graphCreateLinkForHint.call(this, href, label); + + if (href != null && !this.isCustomLink(href)) + { + // KNOWN: Event with gesture handler mouseUp the middle click opens a framed window + mxEvent.addListener(a, 'click', mxUtils.bind(this, function(evt) + { + this.openLink(a.getAttribute('href'), a.getAttribute('target')); + mxEvent.consume(evt); + })); + } + + return a; + }; + + Graph.prototype.openLink = async function(url, target) + { + await requestSync({action: 'openExternal', url: url}); + }; + + // Initializes the user interface + var editorUiInit = EditorUi.prototype.init; + EditorUi.prototype.init = function() + { + editorUiInit.apply(this, arguments); + + var editorUi = this; + var graph = this.editor.graph; + + window.__emt_isModified = function() + { + if (editorUi.getCurrentFile()) + { + return editorUi.getCurrentFile().isModified() + } + + return false + }; + + window.__emt_removeDraft = function() + { + var currentFile = editorUi.getCurrentFile(); + + if (currentFile != null && EditorUi.enableDrafts) + { + currentFile.removeDraft(); + } + }; + + // Adds support for libraries + this.actions.addAction('newLibrary...', mxUtils.bind(this, function() + { + editorUi.showLibraryDialog(null, null, null, null, App.MODE_DEVICE); + })); + + this.actions.addAction('openLibrary...', mxUtils.bind(this, function() + { + editorUi.pickLibrary(App.MODE_DEVICE); + })); + + // Replaces import action + this.actions.addAction('import...', mxUtils.bind(this, async function() + { + if (editorUi.getCurrentFile() != null) + { + var lastDir = localStorage.getItem('.lastImpDir'); + + var paths = await requestSync({ + action: 'showOpenDialog', + defaultPath: lastDir || (await requestSync('getDocumentsFolder')), + properties: ['openFile'] + }); + + if (paths !== undefined && paths[0] != null) + { + var path = paths[0]; + localStorage.setItem('.lastImpDir', await requestSync({action: 'dirname', path: path})); + var asImage = /\.png$/i.test(path) || /\.gif$/i.test(path) || /\.jpe?g$/i.test(path); + var encoding = (asImage || /\.pdf$/i.test(path) || /\.vsdx$/i.test(path) || /\.vssx$/i.test(path)) ? + 'base64' : 'utf-8'; + + if (editorUi.spinner.spin(document.body, mxResources.get('loading'))) + { + electron.request({action: 'readFile', filename: path, encoding: encoding} , mxUtils.bind(this, function (data) + { + try + { + if (editorUi.isLucidChartData(data)) + { + editorUi.convertLucidChart(data, function(xml) + { + editorUi.spinner.stop(); + graph.setSelectionCells(editorUi.importXml(xml)); + }, function(e) + { + editorUi.spinner.stop(); + editorUi.handleError(e); + }); + } + else if (/(\.vsdx)($|\?)/i.test(path)) + { + editorUi.importVisio(editorUi.base64ToBlob(data, 'application/octet-stream'), function(xml) + { + editorUi.spinner.stop(); + graph.setSelectionCells(editorUi.importXml(xml)); + }); + } + else if (editorUi.isRemoteFileFormat(data, path)) + { + editorUi.spinner.stop(); + editorUi.showError(mxResources.get('error'), mxResources.get('notInDesktop')); + } + else + { + if (/\.pdf$/i.test(path)) + { + var tmp = Editor.extractGraphModelFromPdf(data); + + if (tmp != null) + { + data = tmp; + } + } + else if (/\.png$/i.test(path)) + { + var tmp = editorUi.extractGraphModelFromPng(data); + + if (tmp != null) + { + asImage = false; + data = tmp; + } + } + else if (/\.svg$/i.test(path)) + { + // LATER: Use importXml without throwing exception if no data + // Checks if SVG contains content attribute + var root = mxUtils.parseXml(data); + var svgs = root.getElementsByTagName('svg'); + + if (svgs.length > 0) + { + var svgRoot = svgs[0]; + var cont = svgRoot.getAttribute('content'); + + if (cont != null && cont.charAt(0) != '<' && cont.charAt(0) != '%') + { + cont = unescape((window.atob) ? atob(cont) : Base64.decode(cont, true)); + } + + if (cont != null && cont.charAt(0) == '%') + { + cont = decodeURIComponent(cont); + } + + if (cont != null && (cont.substring(0, 8) === ' 0) + { + try + { + var tmpGraph = createGraph(); + tmpGraph.importCells(cells, 0, 0, tmpGraph.getDefaultParent()); + var codec = new mxCodec(); + var node = codec.encode(tmpGraph.getModel()); + var modelString = mxUtils.getXml(node); + await requestSync({ + action: 'clipboardAction', + method: 'writeText', + data: encodeURIComponent(modelString) + }); + } + catch(e) + { + //Ignore + } + } + }; + + async function cloneSysCLipboardToMx() + { + try + { + var modelString = await requestSync({ + action: 'clipboardAction', + method: 'readText', + }); + + if (modelString) + { + modelString = decodeURIComponent(modelString); + var xmlDoc = mxUtils.parseXml(modelString); + var tmpGraph = createGraph(); + var codec = new mxCodec(xmlDoc); + var model = tmpGraph.getModel(); + codec.decode(xmlDoc.documentElement, model); + mxClipboard.setCells(model.root.children[0].children); + } + } + catch(e) + { + //Ignore, the contents of mxClipboard will be used + } + }; + + //Set system clipboard on menu copy/cut + var origCut = this.actions.get('cut').funct; + + editorUi.actions.addAction('cut', function() + { + origCut(); + cloneMxCLipboardToSys(); + }, null, 'sprite-cut', Editor.ctrlKey + '+X'); + + var origCopy = this.actions.get('copy').funct; + + editorUi.actions.addAction('copy', function() + { + origCopy(); + cloneMxCLipboardToSys(); + }, null, 'sprite-copy', Editor.ctrlKey + '+C'); + + //Get data from system clipboard for pase/pasteHere + var origPaste = this.actions.get('paste').funct; + + editorUi.actions.addAction('paste', function() + { + cloneSysCLipboardToMx(); + origPaste(); + }, false, 'sprite-paste', Editor.ctrlKey + '+V'); + + var origPasteHere = this.actions.get('pasteHere').funct; + + editorUi.actions.addAction('pasteHere', function() + { + cloneSysCLipboardToMx(); + origPasteHere(); + }); + + //Enable paste action even if mxClipboard is empty! TODO Is this OK? + editorUi.updatePasteActionStates = function() + { + var graph = this.editor.graph; + var paste = this.actions.get('paste'); + var pasteHere = this.actions.get('pasteHere'); + + paste.setEnabled(this.editor.graph.cellEditor.isContentEditing() || + (graph.isEnabled() && !graph.isCellLocked(graph.getDefaultParent()))); + pasteHere.setEnabled(paste.isEnabled()); + }; + + editorUi.actions.addAction('plugins...', function() + { + editorUi.showDialog(new PluginsDialog(editorUi, function(callback) + { + var div = document.createElement('div'); + + var title = document.createElement('span'); + title.style.marginTop = '6px'; + mxUtils.write(title, mxResources.get('builtinPlugins') + ': '); + div.appendChild(title); + + var pluginsSelect = document.createElement('select'); + pluginsSelect.style.width = '150px'; + + for (var i = 0; i < App.publicPlugin.length; i++) + { + var option = document.createElement('option'); + mxUtils.write(option, App.publicPlugin[i]); + option.value = App.publicPlugin[i]; + pluginsSelect.appendChild(option); + } + + div.appendChild(pluginsSelect); + mxUtils.br(div); + mxUtils.br(div); + + title = document.createElement('span'); + mxUtils.write(title, mxResources.get('extPlugins') + ': '); + div.appendChild(title); + + var extPluginsBtn = mxUtils.button(mxResources.get('selectFile') + '...', async function() + { + var lastDir = localStorage.getItem('.lastPluginDir'); + + var paths = await requestSync({ + action: 'showOpenDialog', + defaultPath: lastDir || (await requestSync('getDocumentsFolder')), + filters: [ + { name: 'draw.io Plugins', extensions: ['js'] }, + { name: 'All Files', extensions: ['*'] } + ], + properties: ['openFile'] + }); + + if (paths !== undefined && paths[0] != null) + { + try + { + let ret = await requestSync({ + action: 'installPlugin', + filePath: paths[0] + }); + + localStorage.setItem('.lastPluginDir', ret.selDir); + callback(ret.pluginName); + editorUi.hideDialog(); + } + catch (e) + { + if (e.message == 'fileExists') + { + alert(mxResources.get('fileExists')); + } + else + { + alert('Adding plugin failed.'); + } + } + } + }); + + extPluginsBtn.className = 'geBtn'; + div.appendChild(extPluginsBtn); + + var dlg = new CustomDialog(editorUi, div, mxUtils.bind(this, function() + { + callback(App.pluginRegistry[pluginsSelect.value]); + })); + editorUi.showDialog(dlg.container, 300, 125, true, true); + }, + async function(plugin) + { + await requestSync({ + action: 'uninstallPlugin', + plugin: plugin + }); + }).container, 360, 225, true, false); + }); + } + + var appLoad = App.prototype.load; + + App.prototype.load = function() + { + appLoad.apply(this, arguments); + + electron.registerMsgListener('args-obj', (argsObj) => + { + this.loadArgs(argsObj) + }) + + var editorUi = this; + + electron.registerMsgListener('export-vsdx', (argsObj) => + { + var file = new LocalFile(editorUi, argsObj.xml, ''); + + editorUi.fileLoaded(file); + + try + { + editorUi.saveData = function(filename, format, data, mimeType, base64Encoded) + { + electron.sendMessage('export-vsdx-finished', data); + }; + + var expSuccess = new VsdxExport(editorUi).exportCurrentDiagrams(); + + if (!expSuccess) + { + electron.sendMessage('export-vsdx-finished', null); + } + } + catch (e) + { + electron.sendMessage('export-vsdx-finished', null); + } + }) + + //We do some async stuff during app loading so we need to know exactly when loading is finished (it is not when onload is finished) + electron.sendMessage('app-load-finished', null); + + //Change offline translation + mxResources.parse('notInOffline=' + mxResources.get('notInDesktop')); + } + + App.prototype.loadArgs = function(argsObj) + { + var paths = argsObj.args; + + // If a file is passed, and it is not an argument (has a leading -) + if (paths !== undefined && paths[0] != null && paths[0].indexOf('-') != 0 && this.spinner.spin(document.body, mxResources.get('loading'))) + { + var path = paths[0]; + this.hideDialog(); + + var success = mxUtils.bind(this, function(fileEntry, data, stat, name, isModified) + { + this.spinner.stop(); + + if (data != null) + { + var file = new LocalFile(this, data, name || ''); + file.fileObject = fileEntry; + file.stat = stat; + file.setModified(isModified? true : false); + this.fileLoaded(file); + } + }); + + var error = mxUtils.bind(this, function(e) + { + this.spinner.stop(); + + if (e.code === 'ENOENT') + { + var title = path.replace(/^.*[\\\/]/, ''); + var data = this.emptyDiagramXml; + var file = new LocalFile(this, data, title, null); + + file.fileObject = new Object(); + file.fileObject.path = path; + file.fileObject.name = title; + file.fileObject.type = 'utf-8'; + this.fileCreated(file, null, null, null); + this.saveFile(); + } + else + { + this.handleError(e); + } + + }); + + // Tries to open the file + this.readGraphFile(success, error, path); + } + // If no file is passed, but there is the "create-if-not-exists" flag + else if (argsObj.create != null) + { + var title = 'Untitled document'; + var data = this.emptyDiagramXml; + var file = new LocalFile(this, data, title, null); + this.fileCreated(file, null, null, null); + } + else + { + this.checkDrafts(); + } + } + + var origFileLoaded = EditorUi.prototype.fileLoaded; + + EditorUi.prototype.fileLoaded = async function(file) + { + var oldFile = this.getCurrentFile(); + + if (oldFile != null) + { + //TODO This assumes the user confirmed discarding the file changes to get to this function? + if (EditorUi.enableDrafts) + { + oldFile.removeDraft(); + } + + if (oldFile.fileObject != null) + { + await requestSync({action: 'unwatchFile', path: oldFile.fileObject.path}); + } + } + + if (file != null) + { + if (file.fileObject == null) + { + var fname = file.getTitle(); + + var fileInfo = openFilesMap[fname]; + + if (fileInfo != null) + { + file.fileObject = { + name: fileInfo.name, + path: fileInfo.path, + type: fileInfo.type || 'utf-8' + }; + //delete it such that it is not used again incorrectly + delete openFilesMap[fname]; + } + } + + if (file.fileObject != null) + { + var title = file.fileObject.path; + + if (title.length > 100) + { + title = '...' + title.substr(title.length - 97); + } + + this.addRecent({id: file.fileObject.path, title: title}); + + await requestSync({ + action: 'watchFile', + path: file.fileObject.path, + listener: mxUtils.bind(this, function(curr, prev) + { + //File is changed (not just accessed) && File is not already in a conflict state + if (curr.mtimeMs != prev.mtimeMs && !file.inConflictState) + { + //Ignore our own changes + if (file.unwatchedSaves || (file.state != null && file.stat.mtimeMs == curr.mtimeMs)) + { + file.unwatchedSaves = false; + return; + } + + file.inConflictState = true; + + this.showError(mxResources.get('externalChanges'), + mxResources.get('fileChangedSyncDialog'), + mxResources.get('synchronize'), mxUtils.bind(this, function() + { + if (this.spinner.spin(document.body, mxResources.get('updatingDocument'))) + { + file.synchronizeFile(mxUtils.bind(this, function() + { + this.spinner.stop(); + }), mxUtils.bind(this, function(err) + { + file.handleFileError(err, true); + })); + } + }), null, null, null, + mxResources.get('cancel'), mxUtils.bind(this, function() + { + this.hideDialog(); + file.handleFileError(null, false); + }), 340, 150); + } + }) + }); + } + } + + origFileLoaded.apply(this, arguments); + }; + + // Uses local picker + App.prototype.pickFile = function() + { + var doPickFile = mxUtils.bind(this, function() + { + this.chooseFileEntry(mxUtils.bind(this, function(fileEntry, data, stat, name, isModified) + { + var file = new LocalFile(this, data, ''); + file.fileObject = fileEntry; + file.stat = stat; + file.setModified(isModified? true : false); + this.fileLoaded(file); + })); + }); + + var file = this.getCurrentFile(); + + if (file != null && file.isModified()) + { + this.confirm(mxResources.get('allChangesLost'), null, doPickFile, + mxResources.get('cancel'), mxResources.get('discardChanges')); + } + else + { + doPickFile(); + } + }; + + /** + * Selects a library to load from a picker + * + * @param mode the device mode, ignored in this case + */ + App.prototype.pickLibrary = function(mode) + { + this.chooseFileEntry(mxUtils.bind(this, function(fileEntry, data, stat) + { + try + { + var library = new DesktopLibrary(this, data, fileEntry); + this.loadLibrary(library); + } + catch (e) + { + this.handleError(e, mxResources.get('errorLoadingFile')); + } + })); + }; + + // Uses local picker + App.prototype.chooseFileEntry = async function(fn) + { + var lastDir = localStorage.getItem('.lastOpenDir'); + + var paths = await requestSync({ + action: 'showOpenDialog', + defaultPath: lastDir || (await requestSync('getDocumentsFolder')), + filters: [ + { name: 'draw.io Diagrams', extensions: ['drawio', 'xml', 'png', 'svg', 'html'] }, + { name: 'VSDX Documents', extensions: ['vsdx'] }, + { name: 'All Files', extensions: ['*'] } + ], + properties: ['openFile'] + }); + + if (paths !== undefined && paths[0] != null) + { + localStorage.setItem('.lastOpenDir', await requestSync({action: 'dirname', path: paths[0]})); + + this.readGraphFile(fn, mxUtils.bind(this, function(err) + { + this.handleError(err); + }), paths[0]); + } + else + { + this.spinner.stop(); + } + }; + + //In order not to repeat the logic for opening a file, we collect files information here and use them in openLocalFile + var origOpenFiles = EditorUi.prototype.openFiles; + var openFilesMap = {}; + + EditorUi.prototype.openFiles = function(files, temp) + { + openFilesMap = {}; + + for (var i = 0; i < files.length; i++) + { + openFilesMap[files[i].name] = files[i]; + } + + origOpenFiles.apply(this, arguments); + }; + + App.prototype.readGraphFile = function(fn, fnErr, path, noDraftCheck) + { + var index = path.lastIndexOf('.png'); + var isPng = index > -1 && index == path.length - 4; + var isVsdx = /\.vsdx$/i.test(path) || /\.vssx$/i.test(path); + var encoding = isVsdx? null : ((isPng || /\.pdf$/i.test(path)) ? 'base64' : 'utf-8'); + var fileEntry = new Object(), stat = null; + fileEntry.path = path; + fileEntry.name = path.replace(/^.*[\\\/]/, ''); + fileEntry.type = encoding; + + var checkDrafts = mxUtils.bind(this, function() + { + if (noDraftCheck) return; + + electron.request({ + action: 'getFileDrafts', + fileObject: fileEntry + }, mxUtils.bind(this, function(drafts) + { + if (drafts.length > 0) + { + var dlg = new DraftDialog(this, mxResources.get('unsavedChanges'), + (drafts.length > 1) ? null : drafts[0].data, mxUtils.bind(this, async function(index) + { + index = index || 0; + this.hideDialog(); + fn(fileEntry, drafts[index].data, stat, null, true); + await requestSync({action: 'deleteFile', file: drafts[index].path}); + }), mxUtils.bind(this, function(index) + { + index = index || 0; + + // Discard draft + this.confirm(mxResources.get('areYouSure'), null, mxUtils.bind(this, async function() + { + await requestSync({action: 'deleteFile', file: drafts[index].path}); + this.hideDialog(); + }), mxResources.get('no'), mxResources.get('yes')); + }), null, null, null, (drafts.length > 1) ? drafts : null); + + this.showDialog(dlg.container, 640, 480, true, false); + + dlg.init(); + } + }), + mxUtils.bind(this, function(errMsg, err) + { + //TODO Currently ignored, maybe we should retry? + })); + }); + + var readData = mxUtils.bind(this, function (data) + { + // VSDX and PDF files are imported instead of being opened + if (isVsdx) + { + var name = fileEntry.name; + + this.importVisio(data, mxUtils.bind(this, function(xml) + { + var dot = name.lastIndexOf('.'); + + if (dot >= 0) + { + name = name.substring(0, name.lastIndexOf('.')) + '.drawio'; + } + else + { + name = name + '.drawio'; + } + + if (xml.substring(0, 10) == '' + mxResources.get('readOnly') + ''); + } + } + })); + + checkDrafts(); + }), function(errMsg, err) + { + fnErr(err); + }); + }); + + electron.request({ + action: 'readFile', + filename: path, + encoding: encoding + }, readData, function(errMsg, err) + { + fnErr(err); + checkDrafts(); + }); + }; + + // Disables temp files in Electron + var LocalFileCtor = LocalFile; + + LocalFile = function(ui, data, title, temp) + { + LocalFileCtor.call(this, ui, data, title, false); + }; + + mxUtils.extend(LocalFile, LocalFileCtor); + + LocalFile.prototype.getLatestVersion = function(success, error) + { + if (this.fileObject == null) + { + if (error != null) + { + error({message: mxResources.get('fileNotFound')}); + } + } + else + { + this.ui.readGraphFile(mxUtils.bind(this, function(fileEntry, data, stat, name, isModified) + { + var file = new LocalFile(this, data, ''); + file.stat = stat; + file.setModified(isModified? true : false); + success(file); + }), error, this.fileObject.path, true); + } + }; + + // Call save as for copy + LocalFile.prototype.copyFile = function(success, error) + { + this.saveAs(this.ui.getCopyFilename(this), success, error); + }; + + /** + * Adds all listeners. + */ + LocalFile.prototype.getDescriptor = function() + { + return this.stat; + }; + + /** + * Updates the descriptor of this file with the one from the given file. + */ + LocalFile.prototype.setDescriptor = function(stat) + { + this.stat = stat; + }; + + LocalFile.prototype.reloadFile = function(success) + { + if (this.fileObject == null) + { + this.ui.handleError({message: mxResources.get('fileNotFound')}); + } + else + { + this.ui.spinner.stop(); + + var fn = mxUtils.bind(this, function() + { + this.setModified(false); + var page = this.ui.currentPage; + var viewState = this.ui.editor.graph.getViewState(); + var selection = this.ui.editor.graph.getSelectionCells(); + + if (this.ui.spinner.spin(document.body, mxResources.get('loading'))) + { + this.ui.readGraphFile(mxUtils.bind(this, function(fileEntry, data, stat, name, isModified) + { + this.ui.spinner.stop(); + + var file = new LocalFile(this.ui, data, ''); + file.fileObject = fileEntry; + file.stat = stat; + file.setModified(isModified? true : false); + this.ui.fileLoaded(file); + this.ui.restoreViewState(page, viewState, selection); + + if (this.backupPatch != null) + { + this.patch([this.backupPatch]); + } + + if (success != null) + { + success(); + } + }), mxUtils.bind(this, function(err) + { + this.handleFileError(err); + }), this.fileObject.path); + } + }); + + if (this.isModified() && this.backupPatch == null) + { + this.ui.confirm(mxResources.get('allChangesLost'), mxUtils.bind(this, function() + { + this.handleFileSuccess(DrawioFile.SYNC == 'manual'); + }), fn, mxResources.get('cancel'), mxResources.get('discardChanges')); + } + else + { + fn(); + } + } + }; + + LocalFile.prototype.isAutosave = function() + { + return this.fileObject != null && DrawioFile.prototype.isAutosave.apply(this, arguments); + }; + + LocalFile.prototype.isAutosaveOptional = function() + { + return this.fileObject != null; + }; + + LocalFile.prototype.getTitle = function() + { + return (this.fileObject != null) ? this.fileObject.name : this.title; + }; + + LocalFile.prototype.isRenamable = function() + { + return false; + }; + + // Restores default implementation of open with autosave + LocalFile.prototype.open = DrawioFile.prototype.open; + var autoSaveEnabled = false; + + LocalFile.prototype.save = function(revision, success, error, unloading, overwrite) + { + DrawioFile.prototype.save.apply(this, [revision, mxUtils.bind(this, function() + { + this.saveFile(revision, mxUtils.bind(this, function() + { + //Only for first save after auto save is enabled (excluding the save as [overwrite]) + if (autoSaveEnabled && !overwrite && EditorUi.enableDrafts) + { + this.removeDraft(); + } + + autoSaveEnabled = false; + success.apply(this, arguments); + }), error, unloading, overwrite); + }), error, unloading, overwrite]); + }; + + LocalFile.prototype.isConflict = function(stat) + { + return stat != null && this.stat != null && stat.mtimeMs != this.stat.mtimeMs; + }; + + LocalFile.prototype.isEditable = function() + { + return this.editable != null? this.editable : this.ui.editor.editable; + }; + + LocalFile.prototype.setEditable = function(editable) + { + this.editable = editable; + }; + + LocalFile.prototype.getFilename = function() + { + var filename = this.title; + + // Adds default extension + if (filename.length > 0 && (!/(\.xml)$/i.test(filename) && !/(\.html)$/i.test(filename) && + !/(\.svg)$/i.test(filename) && !/(\.png)$/i.test(filename) && !/(\.drawio)$/i.test(filename))) + { + filename += '.drawio'; + } + + return filename; + }; + + // Prototype inheritance needs new functions to be added to subclasses + LocalLibrary.prototype.getFilename = LocalFile.prototype.getFilename; + + LocalFile.prototype.saveFile = async function(revision, success, error, unloading, overwrite) + { + //Safeguard in case saveFile is called from online code in the future + if (typeof success !== 'function') + { + if (typeof unloading === 'function') + { + //Call error + unloading({message: 'This is a bug, please report!'}); //Original draw.io function parameters are (title, revision, success, error, useCurrentData) + } + return; + } + + if (!this.savingFile) + { + var fn = mxUtils.bind(this, function() + { + var doSave = mxUtils.bind(this, function(data, enc) + { + var savedData = this.data; + + // Makes sure no changes get lost while the file is saved + this.setShadowModified(false); + this.savingFile = true; + + var errorWrapper = mxUtils.bind(this, function(e) + { + this.savingFile = false; + + if (error != null) + { + error(e); + } + }); + + this.unwatchedSaves = true; //Multiple saves doesn't call watch the same number, so use a boolean and check for changes + + electron.request({ + action: 'saveFile', + fileObject: this.fileObject, + defEnc: enc, + data: data, + origStat: this.stat, + overwrite: overwrite + }, mxUtils.bind(this, function(stat) + { + //No changes during the saving process? + this.setModified(this.getShadowModified()); + this.savingFile = false; + var lastDesc = this.stat; + this.stat = stat; + + this.fileSaved(savedData, lastDesc, mxUtils.bind(this, function() + { + this.contentChanged(); + + if (success != null) + { + success(); + } + }), error); + }), + mxUtils.bind(this, function(errMsg, err) + { + if (errMsg == 'empty data') + { + this.ui.handleError({message: mxResources.get('errorSavingFile')}); + errorWrapper(); + } + else if (errMsg == 'conflict') + { + this.inConflictState = true; + errorWrapper(); + } + else + { + errorWrapper(err || errMsg); + } + })); + }); + + if (!/(\.png)$/i.test(this.fileObject.name)) + { + doSave(this.getData()); + } + else + { + var p = this.ui.getPngFileProperties(this.ui.fileNode); + + this.ui.getEmbeddedPng(function(data) + { + doSave(atob(data), 'binary'); + }, error, null, p.scale, p.border); + } + }); + + if (this.fileObject == null) + { + var lastDir = localStorage.getItem('.lastSaveDir'); + var name = this.getFilename(); + var ext = null; + + if (name != null) + { + var idx = name.lastIndexOf('.'); + + if (idx > 0) + { + ext = name.substring(idx + 1); + name = name.substring(0, idx); + } + } + + var path = await requestSync({ + action: 'showSaveDialog', + defaultPath: (lastDir || (await requestSync('getDocumentsFolder'))) + '/' + name, + filters: this.ui.createFileSystemFilters(ext) + }); + + if (path != null) + { + localStorage.setItem('.lastSaveDir', await requestSync({action: 'dirname', path: path})); + this.fileObject = new Object(); + this.fileObject.path = path; + this.fileObject.name = path.replace(/^.*[\\\/]/, ''); + this.fileObject.type = 'utf-8'; + fn(); + } + else + { + this.ui.spinner.stop(); + } + } + else + { + fn(); + } + } + }; + + LocalFile.prototype.saveAs = async function(title, success, error) + { + var lastDir = localStorage.getItem('.lastSaveDir'); + var name = this.getFilename(); + var ext = null; + + if (name == '' && this.fileObject != null && this.fileObject.name != null) + { + name = this.fileObject.name; + var idx = name.lastIndexOf('.'); + + if (idx > 0) + { + ext = name.substring(idx + 1); + name = name.substring(0, idx); + } + } + + var path = await requestSync({ + action: 'showSaveDialog', + defaultPath: (lastDir || (await requestSync('getDocumentsFolder'))) + '/' + name, + filters: this.ui.createFileSystemFilters(ext) + }); + + if (path != null) + { + localStorage.setItem('.lastSaveDir', await requestSync({action: 'dirname', path: path})); + this.fileObject = new Object(); + this.fileObject.path = path; + this.fileObject.name = path.replace(/^.*[\\\/]/, ''); + this.fileObject.type = 'utf-8'; + this.setEditable(true); //In case original file is read only + this.save(false, success, error, null, true); + } + }; + + LocalFile.prototype.saveDraft = function() + { + if (this.fileObject == null) + { + //Use indexed db for unsaved files + DrawioFile.prototype.saveDraft.apply(this, arguments); + } + else + { + electron.request({ + action: 'saveDraft', + fileObject: this.fileObject, + data: this.ui.getFileData() + }, mxUtils.bind(this, function(draftFileName) + { + this.fileObject.draftFileName = draftFileName; + }), mxUtils.bind(this, function(msg, e) + { + //TODO Currently ignored, maybe we should retry? + })); + } + }; + + LocalFile.prototype.removeDraft = async function() + { + try + { + if (this.fileObject == null) + { + //Use indexed db for unsaved files + DrawioFile.prototype.removeDraft.apply(this, arguments); + } + else if (this.fileObject.draftFileName != null) + { + await requestSync({action: 'deleteFile', file: this.fileObject.draftFileName}); + } + } + catch (e) + { + // ignore + } + }; + + /** + * Loads the given file handle as a local file. + */ + App.prototype.createFileSystemFilters = function(defaultExt) + { + var ext = []; + + for (var i = 0; i < this.editor.diagramFileTypes.length; i++) + { + var obj = {name: mxResources.get(this.editor.diagramFileTypes[i].description) + + ' (.' + this.editor.diagramFileTypes[i].extension + ')', + extensions: [this.editor.diagramFileTypes[i].extension]}; + + if (this.editor.diagramFileTypes[i].extension == defaultExt) + { + ext.splice(0, 0, obj); + } + else + { + ext.push(obj); + } + } + + return ext; + }; + + /** + * Loads the given file handle as a local file. + */ + App.prototype.saveFile = function(forceDialog) + { + var file = this.getCurrentFile(); + + if (file != null) + { + if (!forceDialog && file.getTitle() != null) + { + file.save(true, mxUtils.bind(this, function() + { + if (EditorUi.enableDrafts) + { + file.removeDraft(); + } + + file.handleFileSuccess(true); + }), mxUtils.bind(this, function(err) + { + file.handleFileError(err, true); + })); + } + else + { + let oldFileObject = file.fileObject; + + file.saveAs(null, mxUtils.bind(this, function() + { + if (EditorUi.enableDrafts) + { + //Workaround to delete the correct draft as the file object is updated in place + let curFileObject = file.fileObject; + file.fileObject = oldFileObject; + file.removeDraft(); + file.fileObject = curFileObject; + } + + file.handleFileSuccess(true); + }), mxUtils.bind(this, function(err) + { + file.handleFileError(err, true); + })); + } + } + }; + + /** + * Translates this point by the given vector. + */ + App.prototype.saveLibrary = function(name, images, file, mode, noSpin, noReload, fn) + { + mode = (mode != null) ? mode : this.mode; + noSpin = (noSpin != null) ? noSpin : false; + noReload = (noReload != null) ? noReload : false; + var xml = this.createLibraryDataFromImages(images); + + var error = mxUtils.bind(this, function(resp) + { + this.spinner.stop(); + + if (fn != null) + { + fn(); + } + + // Null means cancel by user and is ignored + if (resp != null) + { + this.handleError(resp, mxResources.get('errorSavingFile')); + } + }); + + // Handles special case for local libraries + if (file == null) + { + file = new LocalLibrary(this, xml, name); + } + + if (noSpin || this.spinner.spin(document.body, mxResources.get('saving'))) + { + file.setData(xml); + + var doSave = mxUtils.bind(this, function() + { + file.save(true, mxUtils.bind(this, function(resp) + { + this.spinner.stop(); + this.hideDialog(true); + + if (!noReload) + { + this.libraryLoaded(file, images) + } + + if (fn != null) + { + fn(); + } + }), error); + }); + + if (name != file.getTitle()) + { + var oldHash = file.getHash(); + + file.rename(name, mxUtils.bind(this, function(resp) + { + // Change hash in stored settings + if (file.constructor != LocalLibrary && oldHash != file.getHash()) + { + mxSettings.removeCustomLibrary(oldHash); + mxSettings.addCustomLibrary(file.getHash()); + } + + // Workaround for library files changing hash so + // the old library cannot be removed from the + // sidebar using the updated file in libraryLoaded + this.removeLibrarySidebar(oldHash); + + doSave(); + }), error) + } + else + { + doSave(); + } + } + }; + + App.prototype.checkForUpdates = function() + { + electron.sendMessage('checkForUpdates'); + } + + App.prototype.toggleSpellCheck = function() + { + electron.sendMessage('toggleSpellCheck'); + } + + var origUpdateHeader = App.prototype.updateHeader; + + App.prototype.updateHeader = function() + { + origUpdateHeader.apply(this, arguments); + + if (urlParams['winCtrls'] != '1') + { + return; + } + + document.querySelectorAll('.geStatus').forEach(i => i.style.webkitAppRegion = 'no-drag'); + var menubarContainer = document.querySelector('.geMenubarContainer'); + + if (urlParams['sketch'] == '1') + { + menubarContainer = this.titlebar; + } + + menubarContainer.style.webkitAppRegion = 'drag'; + + //Add window control buttons + this.windowControls = document.createElement('div'); + this.windowControls.id = 'geWindow-controls'; + this.windowControls.innerHTML = + '
' + + ' ' + + ' ' + + ' ' + + '
' + + '
' + + ' ' + + ' ' + + ' ' + + '
' + + '
' + + ' ' + + ' ' + + ' ' + + '
' + + '
' + + ' ' + + ' ' + + ' ' + + '
'; + + if (uiTheme == 'atlas') + { + this.windowControls.style.top = '9px'; + } + else if (urlParams['sketch'] == '1') + { + this.windowControls.style.top = '-1px'; + } + + menubarContainer.appendChild(this.windowControls); + + var handleDarkModeChange = mxUtils.bind(this, function () + { + if (uiTheme == 'atlas' || Editor.isDarkMode()) + { + this.windowControls.style.fill = 'white'; + document.querySelectorAll('#geWindow-controls .button').forEach(b => b.className = 'button dark'); + } + else + { + this.windowControls.style.fill = '#999'; + document.querySelectorAll('#geWindow-controls .button').forEach(b => b.className = 'button white'); + } + }); + + handleDarkModeChange(); + this.addListener('darkModeChanged', handleDarkModeChange); + + if (this.appIcon != null) + { + this.appIcon.style.webkitAppRegion = 'no-drag'; + } + + if (this.menubar != null) + { + this.menubar.container.style.webkitAppRegion = 'no-drag'; + + if (uiTheme == 'atlas') + { + this.menubar.container.style.width = 'fit-content'; + } + + if (this.menubar.langIcon != null) + { + this.menubar.langIcon.parentNode.removeChild(this.menubar.langIcon); + menubarContainer.appendChild(this.menubar.langIcon); + } + } + + window.onbeforeunload = async (event) => { + /* If window is reloaded, remove win event listeners + (DOM element listeners get auto garbage collected but not + Electron win listeners as the win is not dereferenced unless closed) */ + await requestSync({action: 'windowAction', method: 'removeAllListeners'}); + } + + // Make minimise/maximise/restore/close buttons work when they are clicked + document.getElementById('min-button').addEventListener("click", async event => { + await requestSync({action: 'windowAction', method: 'minimize'}); + }); + + document.getElementById('max-button').addEventListener("click", async event => { + await requestSync({action: 'windowAction', method: 'maximize'}); + }); + + document.getElementById('restore-button').addEventListener("click", async event => { + await requestSync({action: 'windowAction', method: 'unmaximize'}); + }); + + document.getElementById('close-button').addEventListener("click", async event => { + await requestSync({action: 'windowAction', method: 'close'}); + }); + + // Toggle maximise/restore buttons when maximisation/unmaximisation occurs + toggleMaxRestoreButtons(); + electron.registerMsgListener('maximize', toggleMaxRestoreButtons) + electron.registerMsgListener('unmaximize', toggleMaxRestoreButtons) + electron.registerMsgListener('resize', toggleMaxRestoreButtons) + + async function toggleMaxRestoreButtons() { + if (await requestSync({action: 'windowAction', method: 'isMaximized'})) { + document.body.classList.add('geMaximized'); + } else { + document.body.classList.remove('geMaximized'); + } + } + } + + var origUpdateDocumentTitle = App.prototype.updateDocumentTitle; + + App.prototype.updateDocumentTitle = function() + { + origUpdateDocumentTitle.apply(this, arguments); + + if (this.titlebar != null && this.titlebar.firstChild != null) + { + this.titlebar.firstChild.innerHTML = mxUtils.htmlEntities(document.title); + } + }; + /** + * Copies the given cells and XML to the clipboard as an embedded image. + */ + EditorUi.prototype.writeImageToClipboard = async function(dataUrl, w, h, error) + { + try + { + await requestSync({ + action: 'clipboardAction', + method: 'writeImage', + data: {dataUrl: dataUrl, w: w, h: h} + }); + } + catch (e) + { + error(e); + } + }; + + /** + * Updates action states depending on the selection. + */ + var editorUiUpdateActionStates = EditorUi.prototype.updateActionStates; + EditorUi.prototype.updateActionStates = function() + { + editorUiUpdateActionStates.apply(this, arguments); + + var file = this.getCurrentFile(); + var syncEnabled = file != null && file.fileObject != null; + this.actions.get('synchronize').setEnabled(syncEnabled); + }; + + EditorUi.prototype.saveLocalFile = function(data, filename, mimeType, base64Encoded, format, allowBrowser) + { + this.saveData(filename, format, data, mimeType, base64Encoded); + }; + + EditorUi.prototype.saveRequest = function(filename, format, fn, data, base64Encoded, mimeType) + { + var xhr = fn(null, '1'); + + if (xhr != null && this.spinner.spin(document.body, mxResources.get('saving'))) + { + xhr.send(mxUtils.bind(this, function() + { + this.spinner.stop(); + + if (xhr.getStatus() >= 200 && xhr.getStatus() <= 299) + { + this.saveData(filename, format, xhr.getText(), mimeType, true); + } + else + { + this.handleError({message: mxResources.get('errorSavingFile')}); + } + }), mxUtils.bind(this, function(resp) + { + this.spinner.stop(); + this.handleError(resp); + })); + } + }; + + function mxElectronRequest(reqType, reqObj) + { + this.reqType = reqType; + this.reqObj = reqObj; + }; + + //Extends mxXmlRequest + mxUtils.extend(mxElectronRequest, mxXmlRequest); + + mxElectronRequest.prototype.send = function(callback, error) + { + electron.sendMessage(this.reqType, this.reqObj); + + electron.listenOnce(this.reqType + '-success', (data) => + { + this.response = data; + callback(); + electron.sendMessage(this.reqType + '-finalize'); + }) + + electron.listenOnce(this.reqType + '-error', (err) => + { + this.hasError = true; + error(err); + electron.sendMessage(this.reqType + '-finalize'); + }) + }; + + mxElectronRequest.prototype.getStatus = function() + { + return this.hasError? 500 : 200; + } + + mxElectronRequest.prototype.getText = function() + { + return this.response; + } + + //Direct export to pdf + EditorUi.prototype.createDownloadRequest = function(filename, format, ignoreSelection, base64, transparent, + currentPage, scale, border, grid, includeXml) + { + var graph = this.editor.graph; + var bounds = graph.getGraphBounds(); + + // Exports only current page for images that does not contain file data, but for + // the other formats with XML included or pdf with all pages, we need to send the complete data and use + // the from/to URL parameters to specify the page to be exported. + var data = this.getFileData(true, null, null, null, ignoreSelection, currentPage == false? false : format != 'xmlpng'); + var range = null; + var allPages = null; + + var embed = (includeXml) ? '1' : '0'; + + if (format == 'pdf' && currentPage == false) + { + allPages = '1'; + } + + if (format == 'xmlpng') + { + embed = '1'; + format = 'png'; + + // Finds the current page number + if (this.pages != null && this.currentPage != null) + { + for (var i = 0; i < this.pages.length; i++) + { + if (this.pages[i] == this.currentPage) + { + range = i; + break; + } + } + } + } + + var bg = graph.background; + + if (format == 'png' && transparent) + { + bg = mxConstants.NONE; + } + else if (!transparent && (bg == null || bg == mxConstants.NONE)) + { + bg = '#ffffff'; + } + + var extras = {globalVars: graph.getExportVariables()}; + + if (grid) + { + extras.grid = { + size: graph.gridSize, + steps: graph.view.gridSteps, + color: graph.view.gridColor + }; + } + + return new mxElectronRequest('export', { + format: format, + xml: data, + from: range, + bg: (bg != null) ? bg : mxConstants.NONE, + filename: (filename != null) ? filename : null, + allPages: allPages, + base64: base64, + embedXml: embed, + extras: encodeURIComponent(JSON.stringify(extras)), + scale: scale, + border: border + }); + }; + + var origSetAutosave = Editor.prototype.setAutosave; + + Editor.prototype.setAutosave = function(value) + { + autoSaveEnabled = value; + return origSetAutosave.apply(this, arguments); + } + + //Export Dialog Pdf case + var origExportFile = ExportDialog.exportFile; + + ExportDialog.exportFile = function(editorUi, name, format, bg, s, b, dpi) + { + var graph = editorUi.editor.graph; + + if (format == 'xml' || format == 'svg') + { + return origExportFile.apply(this, arguments); + } + else + { + var data = editorUi.getFileData(true, null, null, null, null, true); + var bounds = graph.getGraphBounds(); + var w = Math.floor(bounds.width * s / graph.view.scale); + var h = Math.floor(bounds.height * s / graph.view.scale); + + editorUi.hideDialog(); + + if ((format == 'png' || format == 'jpg' || format == 'jpeg') && editorUi.isExportToCanvas()) + { + if (format == 'png') + { + editorUi.exportImage(s, bg == null || bg == 'none', true, + false, false, b, true, false, null, null, dpi); + } + else + { + editorUi.exportImage(s, false, true, + false, false, b, true, false, 'jpeg'); + } + } + else + { + var extras = {globalVars: graph.getExportVariables()}; + + editorUi.saveRequest(name, format, + function(newTitle, base64) + { + return new mxElectronRequest('export', { + format: format, + xml: data, + bg: (bg != null) ? bg : mxConstants.NONE, + filename: (newTitle != null) ? newTitle : null, + w: w, + h: h, + border: b, + base64: (base64 || '0'), + extras: JSON.stringify(extras), + dpi: dpi > 0? dpi : null + }); + }); + } + } + }; + + EditorUi.prototype.saveData = async function(filename, format, data, mimeType, base64Encoded) + { + var resume = (this.spinner != null && this.spinner.pause != null) ? this.spinner.pause() : function() {}; + var lastDir = localStorage.getItem('.lastExpDir'); + + // Spinner.stop is asynchronous so we must invoke save dialog asynchronously + // to give the spinner some time to stop spinning + window.setTimeout(mxUtils.bind(this, async function() + { + var dlgConfig = { + action: 'showSaveDialog', + defaultPath: (lastDir || (await requestSync('getDocumentsFolder'))) + '/' + filename + }; + var filters = null; + + switch (format) + { + case 'xmlpng': + case 'png': + filters = [ + { name: 'PNG Images', extensions: ['png'] } + ]; + break; + case 'jpg': + case 'jpeg': + filters = [ + { name: 'JPEG Images', extensions: ['jpg', 'jpeg'] } + ]; + break; + case 'svg': + filters = [ + { name: 'SVG Images', extensions: ['svg'] } + ]; + break; + case 'pdf': + filters = [ + { name: 'PDF Documents', extensions: ['pdf'] } + ]; + break; + case 'vsdx': + filters = [ + { name: 'VSDX Documents', extensions: ['vsdx'] } + ]; + break; + case 'html': + filters = [ + { name: 'HTML Documents', extensions: ['html'] } + ]; + break; + case 'xml': + filters = [ + { name: 'XML Documents', extensions: ['xml'] } + ]; + break; + }; + + dlgConfig['filters'] = filters; + //showSaveDialog + var path = await requestSync(dlgConfig); + + if (path != null) + { + localStorage.setItem('.lastExpDir', await requestSync({action: 'dirname', path: path})); + + if (data == null || data.length == 0) + { + this.handleError({message: mxResources.get('errorSavingFile')}); + } + else + { + resume(); + + electron.request({ + action: 'writeFile', + path: path, + data: data, + enc: (base64Encoded) ? 'base64' : 'utf-8' + }, mxUtils.bind(this, function () + { + this.spinner.stop(); + }), mxUtils.bind(this, function () + { + this.spinner.stop(); + this.handleError({message: mxResources.get('errorSavingFile')}); + })); + } + } + }), 50); + }; + + EditorUi.prototype.addBeforeUnloadListener = function() {}; + + EditorUi.prototype.loadDesktopLib = function(libPath, success, error) + { + this.readGraphFile(mxUtils.bind(this, function(fileEntry, data, stat) + { + var library = new DesktopLibrary(this, data, fileEntry); + this.loadLibrary(library); + success(library); + }), error, libPath); + }; +})(); diff --git a/electron/main.js b/electron/main.js index 895725e67..c82cc71f7 100644 --- a/electron/main.js +++ b/electron/main.js @@ -73,6 +73,7 @@ function createMainWindow() { preload: path.join(__dirname, 'preload.js'), webSecurity: true, nodeIntegration: true, + nodeIntegrationInSubFrames: true, contextIsolation: true } }) @@ -156,6 +157,7 @@ function createSubWindow(args) { devTools: args.devTools !== false, webSecurity: true, nodeIntegration: true, + nodeIntegrationInSubFrames: true, contextIsolation: true }, }, config)) @@ -418,8 +420,10 @@ ipcMain.on('setDockBadge', (event, args) => { event.returnValue = "ok" }) +//================================================================ +// Pdf export +//================================================================ -//Pdf export const MICRON_TO_PIXEL = 264.58 //264.58 micron = 1 pixel const PNG_CHUNK_IDAT = 1229209940; const LARGE_IMAGE_AREA = 30000000; @@ -644,7 +648,7 @@ function exportDiagram(event, args, directFinalize) { try { browser = new BrowserWindow({ webPreferences: { - preload: `${__dirname}/electron-preload.js`, + preload: path.join(__dirname, 'preload.js'), backgroundThrottling: false, contextIsolation: true, nativeWindowOpen: true @@ -658,7 +662,7 @@ function exportDiagram(event, args, directFinalize) { browser.loadURL(`file://${__dirname}/export3.html`); const contents = browser.webContents; - let pageByPage = (args.format == 'pdf' && !args.print), from, pdfs; + let pageByPage = (args.format == 'pdf' && !args.print), from, to, pdfs; if (pageByPage) { from = args.allPages ? 0 : parseInt(args.from || 0); @@ -1107,7 +1111,7 @@ function windowAction(method) { } function openExternal(url) { - shell.openExternal(url); + shell.openExternal(url).then(() => {}).catch(() => {}); return null } From 2e0c262d326116df2b4da11fb7459fbc61c8a1ad Mon Sep 17 00:00:00 2001 From: kuaifan Date: Wed, 23 Feb 2022 00:19:32 +0800 Subject: [PATCH 05/21] no message --- .github/workflows/electron.yml | 2 +- README.md | 4 ++-- README_CN.md | 4 ++-- docker/drawio/webapp/README.md | 14 ++++++++++++++ docker/drawio/webapp/index.html | 4 +--- electron/preload.js | 5 ----- resources/assets/js/functions/web.js | 4 +--- 7 files changed, 21 insertions(+), 16 deletions(-) create mode 100644 docker/drawio/webapp/README.md diff --git a/.github/workflows/electron.yml b/.github/workflows/electron.yml index 4c05941ec..ef40f6afd 100644 --- a/.github/workflows/electron.yml +++ b/.github/workflows/electron.yml @@ -19,7 +19,7 @@ jobs: uses: loopwerk/tag-changelog@v1 with: token: ${{ secrets.GH_PAT }} - exclude_types: other,chore + exclude_types: other,chore,build - name: Create release uses: actions/create-release@latest diff --git a/README.md b/README.md index fa574d57d..261482160 100644 --- a/README.md +++ b/README.md @@ -21,9 +21,9 @@ Group No.: `546574618` # 1、Clone the repository # Clone projects on github -git clone https://github.com/kuaifan/dootask.git +git clone --depth=1 https://github.com/kuaifan/dootask.git # Or you can use gitee -git clone https://gitee.com/aipaw/dootask.git +git clone --depth=1 https://gitee.com/aipaw/dootask.git # 2、Enter directory cd dootask diff --git a/README_CN.md b/README_CN.md index 8020c50dc..e166bccd3 100644 --- a/README_CN.md +++ b/README_CN.md @@ -21,9 +21,9 @@ # 1、克隆项目到您的本地或服务器 # 通过github克隆项目 -git clone https://github.com/kuaifan/dootask.git +git clone --depth=1 https://github.com/kuaifan/dootask.git # 或者你也可以使用gitee -git clone https://gitee.com/aipaw/dootask.git +git clone --depth=1 https://gitee.com/aipaw/dootask.git # 2、进入目录 cd dootask diff --git a/docker/drawio/webapp/README.md b/docker/drawio/webapp/README.md new file mode 100644 index 000000000..4865c1e12 --- /dev/null +++ b/docker/drawio/webapp/README.md @@ -0,0 +1,14 @@ +# Change + +## js/diagramly/ElectronApp.js + +- 隐藏文件中的无用菜单 + +## js/app.min.js + +- 隐藏帮助菜单 +- 取消未保存关闭窗口提示 + +## index.html + +- 隐藏加载中的提示 diff --git a/docker/drawio/webapp/index.html b/docker/drawio/webapp/index.html index fac6d17af..dfcc62bf8 100644 --- a/docker/drawio/webapp/index.html +++ b/docker/drawio/webapp/index.html @@ -364,6 +364,7 @@ color:#606060; } .geBlock { + display: none; z-index:-3; margin:100px; margin-top:40px; @@ -372,9 +373,6 @@ text-align:center; min-width:50%; } - .geBlock h1, .geBlock p { - display: none; - } .geBlock h1, .geBlock h2 { margin-top:0px; padding-top:0px; diff --git a/electron/preload.js b/electron/preload.js index 50fcfc145..5ba223298 100644 --- a/electron/preload.js +++ b/electron/preload.js @@ -56,11 +56,6 @@ contextBridge.exposeInMainWorld( }, sendSyncMessage: (action, args) => { ipcRenderer.sendSync(action, args); - }, - openExternal: (url) => { - return new Promise((resolve, reject) => { - shell.openExternal(url).then(resolve).catch(reject) - }); } } ); diff --git a/resources/assets/js/functions/web.js b/resources/assets/js/functions/web.js index 399cf87ca..d30b5539b 100755 --- a/resources/assets/js/functions/web.js +++ b/resources/assets/js/functions/web.js @@ -366,9 +366,7 @@ return } if ($A.Electron) { - $A.Electron.openExternal(url).catch(() => { - $A.modalError("下载失败"); - }); + $A.Electron.sendMessage('openExternal', url); } else { window.open(url) } From 953e924aa2f1b0e86ff8d95f9d989e907839ac6d Mon Sep 17 00:00:00 2001 From: kuaifan Date: Wed, 23 Feb 2022 00:26:44 +0800 Subject: [PATCH 06/21] build --- public/js/app.js | 2 +- public/js/build/120.js | 2 +- public/js/build/120.js.LICENSE.txt | 2 +- public/js/build/{270.js => 191.js} | 2 +- public/js/build/400.js | 2 +- public/js/build/412.js | 2 +- public/js/build/423.js | 2 +- public/js/build/544.js | 2 +- public/js/build/726.js | 2 +- public/js/build/{620.js => 955.js} | 4 ++-- public/js/build/{620.js.LICENSE.txt => 955.js.LICENSE.txt} | 0 11 files changed, 11 insertions(+), 11 deletions(-) rename public/js/build/{270.js => 191.js} (84%) rename public/js/build/{620.js => 955.js} (81%) rename public/js/build/{620.js.LICENSE.txt => 955.js.LICENSE.txt} (100%) diff --git a/public/js/app.js b/public/js/app.js index 8875d6888..efebfc54f 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -1,2 +1,2 @@ /*! For license information please see app.js.LICENSE.txt */ -(()=>{var e,t,n,i,r,a={36890:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>k});var i=n(88239),r=n(72444),a=/%[sdj%]/g;function o(){for(var e=arguments.length,t=Array(e),n=0;n=o)return e;switch(e){case"%s":return String(t[i++]);case"%d":return Number(t[i++]);case"%j":try{return JSON.stringify(t[i++])}catch(e){return"[Circular]"}break;default:return e}})),l=t[i];i()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},m={integer:function(e){return m.number(e)&&parseInt(e,10)===e},float:function(e){return m.number(e)&&!m.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(void 0===e?"undefined":(0,r.Z)(e))&&!m.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(p.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(p.url)},hex:function(e){return"string"==typeof e&&!!e.match(p.hex)}};const v=function(e,t,n,i,a){if(e.required&&void 0===t)h(e,t,n,i,a);else{var s=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(s)>-1?m[s](t)||i.push(o(a.messages.types[s],e.fullField,e.type)):s&&(void 0===t?"undefined":(0,r.Z)(t))!==e.type&&i.push(o(a.messages.types[s],e.fullField,e.type))}};const g={required:h,whitespace:f,type:v,range:function(e,t,n,i,r){var a="number"==typeof e.len,s="number"==typeof e.min,l="number"==typeof e.max,u=t,c=null,d="number"==typeof t,h="string"==typeof t,f=Array.isArray(t);if(d?c="number":h?c="string":f&&(c="array"),!c)return!1;f&&(u=t.length),h&&(u=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?u!==e.len&&i.push(o(r.messages[c].len,e.fullField,e.len)):s&&!l&&ue.max?i.push(o(r.messages[c].max,e.fullField,e.max)):s&&l&&(ue.max)&&i.push(o(r.messages[c].range,e.fullField,e.min,e.max))},enum:function(e,t,n,i,r){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(t)&&i.push(o(r.messages.enum,e.fullField,e.enum.join(", ")))},pattern:function(e,t,n,i,r){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||i.push(o(r.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||i.push(o(r.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const b=function(e,t,n,i,a){var o=[],s=Array.isArray(t)?"array":void 0===t?"undefined":(0,r.Z)(t);g.required(e,t,i,o,a,s),n(o)};const y=function(e,t,n,i,r){var a=e.type,o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t,a)&&!e.required)return n();g.required(e,t,i,o,r,a),s(t,a)||g.type(e,t,i,o,r)}n(o)},_={string:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t,"string")&&!e.required)return n();g.required(e,t,i,a,r,"string"),s(t,"string")||(g.type(e,t,i,a,r),g.range(e,t,i,a,r),g.pattern(e,t,i,a,r),!0===e.whitespace&&g.whitespace(e,t,i,a,r))}n(a)},method:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),void 0!==t&&g.type(e,t,i,a,r)}n(a)},number:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),void 0!==t&&(g.type(e,t,i,a,r),g.range(e,t,i,a,r))}n(a)},boolean:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),void 0!==t&&g.type(e,t,i,a,r)}n(a)},regexp:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),s(t)||g.type(e,t,i,a,r)}n(a)},integer:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),void 0!==t&&(g.type(e,t,i,a,r),g.range(e,t,i,a,r))}n(a)},float:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),void 0!==t&&(g.type(e,t,i,a,r),g.range(e,t,i,a,r))}n(a)},array:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t,"array")&&!e.required)return n();g.required(e,t,i,a,r,"array"),s(t,"array")||(g.type(e,t,i,a,r),g.range(e,t,i,a,r))}n(a)},object:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),void 0!==t&&g.type(e,t,i,a,r)}n(a)},enum:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),t&&g.enum(e,t,i,a,r)}n(a)},pattern:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t,"string")&&!e.required)return n();g.required(e,t,i,a,r),s(t,"string")||g.pattern(e,t,i,a,r)}n(a)},date:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();if(g.required(e,t,i,a,r),!s(t)){var o=void 0;o="number"==typeof t?new Date(t):t,g.type(e,o,i,a,r),o&&g.range(e,o.getTime(),i,a,r)}}n(a)},url:y,hex:y,email:y,required:b};function w(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var x=w();function C(e){this.rules=null,this._messages=x,this.define(e)}C.prototype={messages:function(e){return e&&(this._messages=d(w(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!==(void 0===e?"undefined":(0,r.Z)(e))||Array.isArray(e))throw new Error("Rules must be an object");this.rules={};var t=void 0,n=void 0;for(t in e)e.hasOwnProperty(t)&&(n=e[t],this.rules[t]=Array.isArray(n)?n:[n])},validate:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments[2],s=e,l=n,h=a;if("function"==typeof l&&(h=l,l={}),this.rules&&0!==Object.keys(this.rules).length){if(l.messages){var f=this.messages();f===x&&(f=w()),d(f,l.messages),l.messages=f}else l.messages=this.messages();var p=void 0,m=void 0,v={},g=l.keys||Object.keys(this.rules);g.forEach((function(n){p=t.rules[n],m=s[n],p.forEach((function(r){var a=r;"function"==typeof a.transform&&(s===e&&(s=(0,i.Z)({},s)),m=s[n]=a.transform(m)),(a="function"==typeof a?{validator:a}:(0,i.Z)({},a)).validator=t.getValidationMethod(a),a.field=n,a.fullField=a.fullField||n,a.type=t.getType(a),a.validator&&(v[n]=v[n]||[],v[n].push({rule:a,value:m,source:s,field:n}))}))}));var b={};u(v,l,(function(e,t){var n=e.rule,a=!("object"!==n.type&&"array"!==n.type||"object"!==(0,r.Z)(n.fields)&&"object"!==(0,r.Z)(n.defaultField));function s(e,t){return(0,i.Z)({},t,{fullField:n.fullField+"."+e})}function u(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],u=r;if(Array.isArray(u)||(u=[u]),u.length,u.length&&n.message&&(u=[].concat(n.message)),u=u.map(c(n)),l.first&&u.length)return b[n.field]=1,t(u);if(a){if(n.required&&!e.value)return u=n.message?[].concat(n.message).map(c(n)):l.error?[l.error(n,o(l.messages.required,n.field))]:[],t(u);var d={};if(n.defaultField)for(var h in e.value)e.value.hasOwnProperty(h)&&(d[h]=n.defaultField);for(var f in d=(0,i.Z)({},d,e.rule.fields))if(d.hasOwnProperty(f)){var p=Array.isArray(d[f])?d[f]:[d[f]];d[f]=p.map(s.bind(null,f))}var m=new C(d);m.messages(l.messages),e.rule.options&&(e.rule.options.messages=l.messages,e.rule.options.error=l.error),m.validate(e.value,e.rule.options||l,(function(e){t(e&&e.length?u.concat(e):e)}))}else t(u)}a=a&&(n.required||!n.required&&e.value),n.field=e.field;var d=n.validator(n,e.value,u,e.source,l);d&&d.then&&d.then((function(){return u()}),(function(e){return u(e)}))}),(function(e){y(e)}))}else h&&h();function y(e){var t,n=void 0,i=void 0,r=[],a={};for(n=0;n{e.exports=n(51609)},55448:(e,t,n)=>{"use strict";var i=n(64867),r=n(36026),a=n(4372),o=n(15327),s=n(94097),l=n(84109),u=n(67985),c=n(85061),d=n(45655),h=n(65263);e.exports=function(e){return new Promise((function(t,n){var f,p=e.data,m=e.headers,v=e.responseType;function g(){e.cancelToken&&e.cancelToken.unsubscribe(f),e.signal&&e.signal.removeEventListener("abort",f)}i.isFormData(p)&&delete m["Content-Type"];var b=new XMLHttpRequest;if(e.auth){var y=e.auth.username||"",_=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";m.Authorization="Basic "+btoa(y+":"+_)}var w=s(e.baseURL,e.url);function x(){if(b){var i="getAllResponseHeaders"in b?l(b.getAllResponseHeaders()):null,a={data:v&&"text"!==v&&"json"!==v?b.response:b.responseText,status:b.status,statusText:b.statusText,headers:i,config:e,request:b};r((function(e){t(e),g()}),(function(e){n(e),g()}),a),b=null}}if(b.open(e.method.toUpperCase(),o(w,e.params,e.paramsSerializer),!0),b.timeout=e.timeout,"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){b&&4===b.readyState&&(0!==b.status||b.responseURL&&0===b.responseURL.indexOf("file:"))&&setTimeout(x)},b.onabort=function(){b&&(n(c("Request aborted",e,"ECONNABORTED",b)),b=null)},b.onerror=function(){n(c("Network Error",e,null,b)),b=null},b.ontimeout=function(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",i=e.transitional||d.transitional;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(c(t,e,i.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",b)),b=null},i.isStandardBrowserEnv()){var C=(e.withCredentials||u(w))&&e.xsrfCookieName?a.read(e.xsrfCookieName):void 0;C&&(m[e.xsrfHeaderName]=C)}"setRequestHeader"in b&&i.forEach(m,(function(e,t){void 0===p&&"content-type"===t.toLowerCase()?delete m[t]:b.setRequestHeader(t,e)})),i.isUndefined(e.withCredentials)||(b.withCredentials=!!e.withCredentials),v&&"json"!==v&&(b.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&b.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&b.upload&&b.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(f=function(e){b&&(n(!e||e&&e.type?new h("canceled"):e),b.abort(),b=null)},e.cancelToken&&e.cancelToken.subscribe(f),e.signal&&(e.signal.aborted?f():e.signal.addEventListener("abort",f))),p||(p=null),b.send(p)}))}},51609:(e,t,n)=>{"use strict";var i=n(64867),r=n(91849),a=n(30321),o=n(47185);var s=function e(t){var n=new a(t),s=r(a.prototype.request,n);return i.extend(s,a.prototype,n),i.extend(s,n),s.create=function(n){return e(o(t,n))},s}(n(45655));s.Axios=a,s.Cancel=n(65263),s.CancelToken=n(14972),s.isCancel=n(26502),s.VERSION=n(97288).version,s.all=function(e){return Promise.all(e)},s.spread=n(8713),s.isAxiosError=n(16268),e.exports=s,e.exports.default=s},65263:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},14972:(e,t,n)=>{"use strict";var i=n(65263);function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;this.promise.then((function(e){if(n._listeners){var t,i=n._listeners.length;for(t=0;t{"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},30321:(e,t,n)=>{"use strict";var i=n(64867),r=n(15327),a=n(80782),o=n(13572),s=n(47185),l=n(54875),u=l.validators;function c(e){this.defaults=e,this.interceptors={request:new a,response:new a}}c.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=s(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&l.assertOptions(t,{silentJSONParsing:u.transitional(u.boolean),forcedJSONParsing:u.transitional(u.boolean),clarifyTimeoutError:u.transitional(u.boolean)},!1);var n=[],i=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(i=i&&t.synchronous,n.unshift(t.fulfilled,t.rejected))}));var r,a=[];if(this.interceptors.response.forEach((function(e){a.push(e.fulfilled,e.rejected)})),!i){var c=[o,void 0];for(Array.prototype.unshift.apply(c,n),c=c.concat(a),r=Promise.resolve(e);c.length;)r=r.then(c.shift(),c.shift());return r}for(var d=e;n.length;){var h=n.shift(),f=n.shift();try{d=h(d)}catch(e){f(e);break}}try{r=o(d)}catch(e){return Promise.reject(e)}for(;a.length;)r=r.then(a.shift(),a.shift());return r},c.prototype.getUri=function(e){return e=s(this.defaults,e),r(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},i.forEach(["delete","get","head","options"],(function(e){c.prototype[e]=function(t,n){return this.request(s(n||{},{method:e,url:t,data:(n||{}).data}))}})),i.forEach(["post","put","patch"],(function(e){c.prototype[e]=function(t,n,i){return this.request(s(i||{},{method:e,url:t,data:n}))}})),e.exports=c},80782:(e,t,n)=>{"use strict";var i=n(64867);function r(){this.handlers=[]}r.prototype.use=function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){i.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=r},94097:(e,t,n)=>{"use strict";var i=n(91793),r=n(7303);e.exports=function(e,t){return e&&!i(t)?r(e,t):t}},85061:(e,t,n)=>{"use strict";var i=n(80481);e.exports=function(e,t,n,r,a){var o=new Error(e);return i(o,t,n,r,a)}},13572:(e,t,n)=>{"use strict";var i=n(64867),r=n(18527),a=n(26502),o=n(45655),s=n(65263);function l(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new s("canceled")}e.exports=function(e){return l(e),e.headers=e.headers||{},e.data=r.call(e,e.data,e.headers,e.transformRequest),e.headers=i.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),i.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||o.adapter)(e).then((function(t){return l(e),t.data=r.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return a(t)||(l(e),t&&t.response&&(t.response.data=r.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},80481:e=>{"use strict";e.exports=function(e,t,n,i,r){return e.config=t,n&&(e.code=n),e.request=i,e.response=r,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},e}},47185:(e,t,n)=>{"use strict";var i=n(64867);e.exports=function(e,t){t=t||{};var n={};function r(e,t){return i.isPlainObject(e)&&i.isPlainObject(t)?i.merge(e,t):i.isPlainObject(t)?i.merge({},t):i.isArray(t)?t.slice():t}function a(n){return i.isUndefined(t[n])?i.isUndefined(e[n])?void 0:r(void 0,e[n]):r(e[n],t[n])}function o(e){if(!i.isUndefined(t[e]))return r(void 0,t[e])}function s(n){return i.isUndefined(t[n])?i.isUndefined(e[n])?void 0:r(void 0,e[n]):r(void 0,t[n])}function l(n){return n in t?r(e[n],t[n]):n in e?r(void 0,e[n]):void 0}var u={url:o,method:o,data:o,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:l};return i.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=u[e]||a,r=t(e);i.isUndefined(r)&&t!==l||(n[e]=r)})),n}},36026:(e,t,n)=>{"use strict";var i=n(85061);e.exports=function(e,t,n){var r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(i("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},18527:(e,t,n)=>{"use strict";var i=n(64867),r=n(45655);e.exports=function(e,t,n){var a=this||r;return i.forEach(n,(function(n){e=n.call(a,e,t)})),e}},45655:(e,t,n)=>{"use strict";var i=n(34155),r=n(64867),a=n(16016),o=n(80481),s={"Content-Type":"application/x-www-form-urlencoded"};function l(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var u,c={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==i&&"[object process]"===Object.prototype.toString.call(i))&&(u=n(55448)),u),transformRequest:[function(e,t){return a(t,"Accept"),a(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(l(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)||t&&"application/json"===t["Content-Type"]?(l(t,"application/json"),function(e,t,n){if(r.isString(e))try{return(t||JSON.parse)(e),r.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||c.transitional,n=t&&t.silentJSONParsing,i=t&&t.forcedJSONParsing,a=!n&&"json"===this.responseType;if(a||i&&r.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(a){if("SyntaxError"===e.name)throw o(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){c.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){c.headers[e]=r.merge(s)})),e.exports=c},97288:e=>{e.exports={version:"0.24.0"}},91849:e=>{"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),i=0;i{"use strict";var i=n(64867);function r(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var a;if(n)a=n(t);else if(i.isURLSearchParams(t))a=t.toString();else{var o=[];i.forEach(t,(function(e,t){null!=e&&(i.isArray(e)?t+="[]":e=[e],i.forEach(e,(function(e){i.isDate(e)?e=e.toISOString():i.isObject(e)&&(e=JSON.stringify(e)),o.push(r(t)+"="+r(e))})))})),a=o.join("&")}if(a){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}},7303:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},4372:(e,t,n)=>{"use strict";var i=n(64867);e.exports=i.isStandardBrowserEnv()?{write:function(e,t,n,r,a,o){var s=[];s.push(e+"="+encodeURIComponent(t)),i.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),i.isString(r)&&s.push("path="+r),i.isString(a)&&s.push("domain="+a),!0===o&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},91793:e=>{"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},16268:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},67985:(e,t,n)=>{"use strict";var i=n(64867);e.exports=i.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function r(e){var i=e;return t&&(n.setAttribute("href",i),i=n.href),n.setAttribute("href",i),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=r(window.location.href),function(t){var n=i.isString(t)?r(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},16016:(e,t,n)=>{"use strict";var i=n(64867);e.exports=function(e,t){i.forEach(e,(function(n,i){i!==t&&i.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[i])}))}},84109:(e,t,n)=>{"use strict";var i=n(64867),r=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,a,o={};return e?(i.forEach(e.split("\n"),(function(e){if(a=e.indexOf(":"),t=i.trim(e.substr(0,a)).toLowerCase(),n=i.trim(e.substr(a+1)),t){if(o[t]&&r.indexOf(t)>=0)return;o[t]="set-cookie"===t?(o[t]?o[t]:[]).concat([n]):o[t]?o[t]+", "+n:n}})),o):o}},8713:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},54875:(e,t,n)=>{"use strict";var i=n(97288).version,r={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){r[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var a={};r.transitional=function(e,t,n){function r(e,t){return"[Axios v"+i+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,i,o){if(!1===e)throw new Error(r(i," has been removed"+(t?" in "+t:"")));return t&&!a[i]&&(a[i]=!0,console.warn(r(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,o)}},e.exports={assertOptions:function(e,t,n){if("object"!=typeof e)throw new TypeError("options must be an object");for(var i=Object.keys(e),r=i.length;r-- >0;){var a=i[r],o=t[a];if(o){var s=e[a],l=void 0===s||o(s,a,e);if(!0!==l)throw new TypeError("option "+a+" must be "+l)}else if(!0!==n)throw Error("Unknown option "+a)}},validators:r}},64867:(e,t,n)=>{"use strict";var i=n(91849),r=Object.prototype.toString;function a(e){return"[object Array]"===r.call(e)}function o(e){return void 0===e}function s(e){return null!==e&&"object"==typeof e}function l(e){if("[object Object]"!==r.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function u(e){return"[object Function]"===r.call(e)}function c(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),a(e))for(var n=0,i=e.length;n{var t=/^(attrs|props|on|nativeOn|class|style|hook)$/;function n(e,t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}}e.exports=function(e){return e.reduce((function(e,i){var r,a,o,s,l;for(o in i)if(r=e[o],a=i[o],r&&t.test(o))if("class"===o&&("string"==typeof r&&(l=r,e[o]=r={},r[l]=!0),"string"==typeof a&&(l=a,i[o]=a={},a[l]=!0)),"on"===o||"nativeOn"===o||"hook"===o)for(s in a)r[s]=n(r[s],a[s]);else if(Array.isArray(r))e[o]=r.concat(a);else if(Array.isArray(a))e[o]=[r].concat(a);else for(s in a)r[s]=a[s];else e[o]=i[o];return e}),{})}},717:(e,t,n)=>{"use strict";n(90091),n(92693);var i=n(70538),r=n(20629);const a={name:"Spinner"};var o=n(51900);const s=(0,o.Z)(a,(function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"common-spinner",attrs:{id:"common-spinner"}},[t("Loading",{staticClass:"common-circular"})],1)}),[],!1,null,null,null).exports;var l=n(71905),u=n(9669),c=n.n(u),d=n(80641);function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function f(e){for(var t=1;tl?1:-1;n=a+1,i=o+1}for(;n0)return 1;n=u+1}for(;i0)return-1;i=c+1}return 0},getReleases:function(){var e=this;if(!(this.repoStatus>0||this.loadIng>0)){var t=$A.getStorageJson("cacheAppdown"),n=600;if(t.time&&t.time+n>Math.round((new Date).getTime()/1e3))return this.repoReleases=t.data,this.chackReleases(),void setTimeout(this.getReleases,6e5);this.loadIng++,c().get("https://api.github.com/repos/"+this.repoName+"/releases/latest").then((function(n){var i=n.status,r=n.data;e.loadIng--,200===i&&(t={time:Math.round((new Date).getTime()/1e3),data:r},$A.setStorage("cacheAppdown",t),e.repoReleases=t.data,e.chackReleases()),setTimeout(e.getReleases,6e5)})).catch((function(){e.loadIng--,setTimeout(e.getReleases,6e5)}))}},chackReleases:function(){var e=$A.getDomain(window.systemInfo.apiUrl);if((""==e||$A.leftExists(e,"127.0.0.1"))&&(e="public"),this.$Electron){var t=(window.navigator.userAgent+"").match(/\s+(Main|Sub)TaskWindow\/(.*?)\/(.*?)\//);if(!t)return;var n=null;if("darwin"===t[2])n="".concat(e,"-").concat(this.repoReleases.tag_name,"-mac-").concat(t[3],".pkg");else{if("win32"!==t[2])return;n="".concat(e,"-").concat(this.repoReleases.tag_name,"-win-").concat(t[3],".exe")}if(this.repoData=(this.repoReleases.assets||[]).find((function(e){return e.name==n})),!this.repoData)return;var i=window.systemInfo.version,r=$A.leftDelete(this.repoReleases.tag_name.toLowerCase(),"v");1===this.compareVersion(r,i)&&(console.log("New version: "+r),this.$Electron.ipcRenderer.send("downloadFile",{url:this.repoData.browser_download_url}))}else if(this.repoData=(this.repoReleases.assets||[]).find((function(t){var n=t.name;return $A.strExists(n,e)})),this.repoData){var a=$A.leftDelete(this.repoReleases.tag_name.toLowerCase(),"v");console.log("Exist client: "+a),this.repoStatus=1}},releasesNotification:function(){var e=this;$A.modalConfirm({okText:this.$L("立即更新"),onOk:function(){e.installApplication()},onCancel:function(){e.repoStatus=2},render:function(t){return t("div",{class:"common-right-bottom-notification"},[t("div",{class:"notification-head"},[t("div",{class:"notification-title"},e.$L("发现新版本")),t("Tag",{props:{color:"volcano"}},e.repoReleases.tag_name)]),t("MarkdownPreview",{class:"notification-body",props:{initialValue:e.repoReleases.body}})])}})},installApplication:function(){this.$Electron&&(this.$Electron.ipcRenderer.send("openFile",{path:this.downloadResult.savePath}),this.$Electron.ipcRenderer.send("windowQuit"))},useSSOLogin:function(){d.Store.set("useSSOLogin",!0)}}};function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const b={components:{RightBottom:(0,o.Z)(m,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"common-right-bottom"},[e.showSSO?n("div",{staticClass:"common-right-bottom-link",on:{click:e.useSSOLogin}},[n("Icon",{attrs:{type:"ios-globe-outline"}}),e._v("\n "+e._s(e.$L("使用 SSO 登录"))+"\n ")],1):e._e(),e._v(" "),e.showDown?[e.$Electron?n("div",{staticClass:"common-right-bottom-link",on:{click:e.releasesNotification}},[n("Icon",{attrs:{type:"md-download"}}),e._v("\n "+e._s(e.$L(e.repoTitle))+"\n ")],1):n("a",{staticClass:"common-right-bottom-link",attrs:{href:e.repoReleases.html_url,target:"_blank"}},[n("Icon",{attrs:{type:"md-download"}}),e._v("\n "+e._s(e.$L(e.repoTitle))+"\n ")],1)]:e._e()],2)}),[],!1,null,null,null).exports,Spinner:s},data:function(){return{transitionName:null}},created:function(){this.electronEvents()},mounted:function(){var e=this,t=window.location.hash;0===t.indexOf("#")&&(t=t.substr(1))&&this.$nextTick((function(){t=$A.removeURLParameter(t,"token"),e.goForward({path:t})})),this.sessionStorage("/",1);var n=window.location.pathname;n&&0===this.sessionStorage(n)&&this.sessionStorage(n,this.sessionStorage("::count")+1),setInterval(this.searchEnter,1e3),window.addEventListener("resize",this.windowSizeListener)},beforeDestroy:function(){window.removeEventListener("resize",this.windowSizeListener)},computed:function(e){for(var t=1;t0?e.cacheDrawerOverlay[e.cacheDrawerOverlay.length-1].close():t.send("windowHidden"))})),t.on("dispatch",(function(t,n){if($A.isJson(n)){var i=n.action,r=n.data;e.$store.dispatch(i,r)}}))}}}};var y=n(93379),_=n.n(y),w=n(71976),x={insert:"head",singleton:!1};_()(w.Z,x);w.Z.locals;const C=(0,o.Z)(b,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app"}},[n("transition",{attrs:{name:e.transitionName}},[n("keep-alive",[n("router-view",{staticClass:"child-view",class:{"view-768":e.$store.state.windowMax768}})],1)],1),e._v(" "),n("Spinner"),e._v(" "),n("RightBottom")],1)}),[],!1,null,"75af2c0e",null).exports,k=[{name:"index",path:"/",component:function(){return n.e(855).then(n.bind(n,45855))}},{name:"manage",path:"/manage",meta:{slide:!1},component:function(){return n.e(270).then(n.bind(n,52270))},children:[{name:"manage-dashboard",path:"dashboard",component:function(){return n.e(618).then(n.bind(n,27618))}},{name:"manage-calendar",path:"calendar",component:function(){return n.e(400).then(n.bind(n,13400))}},{name:"manage-messenger",path:"messenger",component:function(){return n.e(412).then(n.bind(n,2412))}},{path:"setting",component:function(){return n.e(258).then(n.bind(n,98258))},children:[{name:"manage-setting",path:"",redirect:"personal"},{name:"manage-setting-personal",path:"personal",component:function(){return n.e(252).then(n.bind(n,32252))}},{name:"manage-setting-password",path:"password",component:function(){return n.e(607).then(n.bind(n,60607))}},{name:"manage-setting-system",path:"system",component:function(){return n.e(135).then(n.bind(n,87135))}}]},{name:"manage-project-invite",path:"project/invite",component:function(){return n.e(481).then(n.bind(n,49481))}},{name:"manage-project",path:"project/:id",component:function(){return n.e(726).then(n.bind(n,83726))}},{name:"manage-file",path:"file",component:function(){return n.e(620).then(n.bind(n,21620))}}]},{name:"single-file-msg",path:"/single/file/msg/:id",component:function(){return n.e(811).then(n.bind(n,55811))}},{name:"single-file-task",path:"/single/file/task/:id",component:function(){return n.e(157).then(n.bind(n,98157))}},{name:"single-file",path:"/single/file/:id",component:function(){return n.e(954).then(n.bind(n,29954))}},{name:"single-task",path:"/single/task/:id",component:function(){return n.e(423).then(n.bind(n,65423))}},{name:"login",path:"/login",component:function(){return n.e(21).then(n.bind(n,39021))}},{name:"404",path:"*",component:function(){return n.e(418).then(n.bind(n,54418))}}];function S(e,t){for(var n in t)e[n]=t[n];return e}var O=/[!'()*]/g,T=function(e){return"%"+e.charCodeAt(0).toString(16)},D=/%2C/g,E=function(e){return encodeURIComponent(e).replace(O,T).replace(D,",")};function $(e){try{return decodeURIComponent(e)}catch(e){0}return e}var M=function(e){return null==e||"object"==typeof e?e:String(e)};function P(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var n=e.replace(/\+/g," ").split("="),i=$(n.shift()),r=n.length>0?$(n.join("=")):null;void 0===t[i]?t[i]=r:Array.isArray(t[i])?t[i].push(r):t[i]=[t[i],r]})),t):t}function I(e){var t=e?Object.keys(e).map((function(t){var n=e[t];if(void 0===n)return"";if(null===n)return E(t);if(Array.isArray(n)){var i=[];return n.forEach((function(e){void 0!==e&&(null===e?i.push(E(t)):i.push(E(t)+"="+E(e)))})),i.join("&")}return E(t)+"="+E(n)})).filter((function(e){return e.length>0})).join("&"):null;return t?"?"+t:""}var j=/\/?$/;function A(e,t,n,i){var r=i&&i.options.stringifyQuery,a=t.query||{};try{a=N(a)}catch(e){}var o={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:a,params:t.params||{},fullPath:R(t,r),matched:e?F(e):[]};return n&&(o.redirectedFrom=R(n,r)),Object.freeze(o)}function N(e){if(Array.isArray(e))return e.map(N);if(e&&"object"==typeof e){var t={};for(var n in e)t[n]=N(e[n]);return t}return e}var L=A(null,{path:"/"});function F(e){for(var t=[];e;)t.unshift(e),e=e.parent;return t}function R(e,t){var n=e.path,i=e.query;void 0===i&&(i={});var r=e.hash;return void 0===r&&(r=""),(n||"/")+(t||I)(i)+r}function B(e,t,n){return t===L?e===t:!!t&&(e.path&&t.path?e.path.replace(j,"")===t.path.replace(j,"")&&(n||e.hash===t.hash&&V(e.query,t.query)):!(!e.name||!t.name)&&(e.name===t.name&&(n||e.hash===t.hash&&V(e.query,t.query)&&V(e.params,t.params))))}function V(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var n=Object.keys(e).sort(),i=Object.keys(t).sort();return n.length===i.length&&n.every((function(n,r){var a=e[n];if(i[r]!==n)return!1;var o=t[n];return null==a||null==o?a===o:"object"==typeof a&&"object"==typeof o?V(a,o):String(a)===String(o)}))}function z(e){for(var t=0;t=0&&(t=e.slice(i),e=e.slice(0,i));var r=e.indexOf("?");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{path:e,query:n,hash:t}}(r.path||""),u=t&&t.path||"/",c=l.path?q(l.path,u,n||r.append):u,d=function(e,t,n){void 0===t&&(t={});var i,r=n||P;try{i=r(e||"")}catch(e){i={}}for(var a in t){var o=t[a];i[a]=Array.isArray(o)?o.map(M):M(o)}return i}(l.query,r.query,i&&i.options.parseQuery),h=r.hash||l.hash;return h&&"#"!==h.charAt(0)&&(h="#"+h),{_normalized:!0,path:c,query:d,hash:h}}var he,fe=function(){},pe={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,n=this.$router,i=this.$route,r=n.resolve(this.to,i,this.append),a=r.location,o=r.route,s=r.href,l={},u=n.options.linkActiveClass,c=n.options.linkExactActiveClass,d=null==u?"router-link-active":u,h=null==c?"router-link-exact-active":c,f=null==this.activeClass?d:this.activeClass,p=null==this.exactActiveClass?h:this.exactActiveClass,m=o.redirectedFrom?A(null,de(o.redirectedFrom),null,n):o;l[p]=B(i,m,this.exactPath),l[f]=this.exact||this.exactPath?l[p]:function(e,t){return 0===e.path.replace(j,"/").indexOf(t.path.replace(j,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var n in t)if(!(n in e))return!1;return!0}(e.query,t.query)}(i,m);var v=l[p]?this.ariaCurrentValue:null,g=function(e){me(e)&&(t.replace?n.replace(a,fe):n.push(a,fe))},b={click:me};Array.isArray(this.event)?this.event.forEach((function(e){b[e]=g})):b[this.event]=g;var y={class:l},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:o,navigate:g,isActive:l[f],isExactActive:l[p]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?e():e("span",{},_)}if("a"===this.tag)y.on=b,y.attrs={href:s,"aria-current":v};else{var w=ve(this.$slots.default);if(w){w.isStatic=!1;var x=w.data=S({},w.data);for(var C in x.on=x.on||{},x.on){var k=x.on[C];C in b&&(x.on[C]=Array.isArray(k)?k:[k])}for(var O in b)O in x.on?x.on[O].push(b[O]):x.on[O]=g;var T=w.data.attrs=S({},w.data.attrs);T.href=s,T["aria-current"]=v}else y.on=b}return e(this.tag,y,this.$slots.default)}};function me(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){var t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function ve(e){if(e)for(var t,n=0;n-1&&(s.params[h]=n.params[h]);return s.path=ce(c.path,s.params),l(c,s,o)}if(s.path){s.params={};for(var f=0;f=e.length?n():e[r]?t(e[r],(function(){i(r+1)})):i(r+1)};i(0)}var He={redirected:2,aborted:4,cancelled:8,duplicated:16};function We(e,t){return Ue(e,t,He.redirected,'Redirected when going from "'+e.fullPath+'" to "'+function(e){if("string"==typeof e)return e;if("path"in e)return e.path;var t={};return Ke.forEach((function(n){n in e&&(t[n]=e[n])})),JSON.stringify(t,null,2)}(t)+'" via a navigation guard.')}function qe(e,t){return Ue(e,t,He.cancelled,'Navigation cancelled from "'+e.fullPath+'" to "'+t.fullPath+'" with a new navigation.')}function Ue(e,t,n,i){var r=new Error(i);return r._isRouter=!0,r.from=e,r.to=t,r.type=n,r}var Ke=["params","query","hash"];function Ge(e){return Object.prototype.toString.call(e).indexOf("Error")>-1}function Ye(e,t){return Ge(e)&&e._isRouter&&(null==t||e.type===t)}function Ze(e){return function(t,n,i){var r=!1,a=0,o=null;Xe(e,(function(e,t,n,s){if("function"==typeof e&&void 0===e.cid){r=!0,a++;var l,u=et((function(t){var r;((r=t).__esModule||Qe&&"Module"===r[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:he.extend(t),n.components[s]=t,--a<=0&&i()})),c=et((function(e){var t="Failed to resolve async component "+s+": "+e;o||(o=Ge(e)?e:new Error(t),i(o))}));try{l=e(u,c)}catch(e){c(e)}if(l)if("function"==typeof l.then)l.then(u,c);else{var d=l.component;d&&"function"==typeof d.then&&d.then(u,c)}}})),r||i()}}function Xe(e,t){return Je(e.map((function(e){return Object.keys(e.components).map((function(n){return t(e.components[n],e.instances[n],e,n)}))})))}function Je(e){return Array.prototype.concat.apply([],e)}var Qe="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function et(e){var t=!1;return function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];if(!t)return t=!0,e.apply(this,n)}}var tt=function(e,t){this.router=e,this.base=function(e){if(!e)if(ge){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=L,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function nt(e,t,n,i){var r=Xe(e,(function(e,i,r,a){var o=function(e,t){"function"!=typeof e&&(e=he.extend(e));return e.options[t]}(e,t);if(o)return Array.isArray(o)?o.map((function(e){return n(e,i,r,a)})):n(o,i,r,a)}));return Je(i?r.reverse():r)}function it(e,t){if(t)return function(){return e.apply(t,arguments)}}tt.prototype.listen=function(e){this.cb=e},tt.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},tt.prototype.onError=function(e){this.errorCbs.push(e)},tt.prototype.transitionTo=function(e,t,n){var i,r=this;try{i=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var a=this.current;this.confirmTransition(i,(function(){r.updateRoute(i),t&&t(i),r.ensureURL(),r.router.afterHooks.forEach((function(e){e&&e(i,a)})),r.ready||(r.ready=!0,r.readyCbs.forEach((function(e){e(i)})))}),(function(e){n&&n(e),e&&!r.ready&&(Ye(e,He.redirected)&&a===L||(r.ready=!0,r.readyErrorCbs.forEach((function(t){t(e)}))))}))},tt.prototype.confirmTransition=function(e,t,n){var i=this,r=this.current;this.pending=e;var a,o,s=function(e){!Ye(e)&&Ge(e)&&(i.errorCbs.length?i.errorCbs.forEach((function(t){t(e)})):console.error(e)),n&&n(e)},l=e.matched.length-1,u=r.matched.length-1;if(B(e,r)&&l===u&&e.matched[l]===r.matched[u])return this.ensureURL(),e.hash&&$e(this.router,r,e,!1),s(((o=Ue(a=r,e,He.duplicated,'Avoided redundant navigation to current location: "'+a.fullPath+'".')).name="NavigationDuplicated",o));var c=function(e,t){var n,i=Math.max(e.length,t.length);for(n=0;n0)){var t=this.router,n=t.options.scrollBehavior,i=Re&&n;i&&this.listeners.push(Ee());var r=function(){var n=e.current,r=at(e.base);e.current===L&&r===e._startLocation||e.transitionTo(r,(function(e){i&&$e(t,e,n,!0)}))};window.addEventListener("popstate",r),this.listeners.push((function(){window.removeEventListener("popstate",r)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){Be(U(i.base+e.fullPath)),$e(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){Ve(U(i.base+e.fullPath)),$e(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.ensureURL=function(e){if(at(this.base)!==this.current.fullPath){var t=U(this.base+this.current.fullPath);e?Be(t):Ve(t)}},t.prototype.getCurrentLocation=function(){return at(this.base)},t}(tt);function at(e){var t=window.location.pathname,n=t.toLowerCase(),i=e.toLowerCase();return!e||n!==i&&0!==n.indexOf(U(i+"/"))||(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var ot=function(e){function t(t,n,i){e.call(this,t,n),i&&function(e){var t=at(e);if(!/^\/#/.test(t))return window.location.replace(U(e+"/#"+t)),!0}(this.base)||st()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,n=Re&&t;n&&this.listeners.push(Ee());var i=function(){var t=e.current;st()&&e.transitionTo(lt(),(function(i){n&&$e(e.router,i,t,!0),Re||dt(i.fullPath)}))},r=Re?"popstate":"hashchange";window.addEventListener(r,i),this.listeners.push((function(){window.removeEventListener(r,i)}))}},t.prototype.push=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){ct(e.fullPath),$e(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){dt(e.fullPath),$e(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;lt()!==t&&(e?ct(t):dt(t))},t.prototype.getCurrentLocation=function(){return lt()},t}(tt);function st(){var e=lt();return"/"===e.charAt(0)||(dt("/"+e),!1)}function lt(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function ut(e){var t=window.location.href,n=t.indexOf("#");return(n>=0?t.slice(0,n):t)+"#"+e}function ct(e){Re?Be(ut(e)):window.location.hash=e}function dt(e){Re?Ve(ut(e)):window.location.replace(ut(e))}var ht=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var i=this;this.transitionTo(e,(function(e){i.stack=i.stack.slice(0,i.index+1).concat(e),i.index++,t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var i=this;this.transitionTo(e,(function(e){i.stack=i.stack.slice(0,i.index).concat(e),t&&t(e)}),n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var i=this.stack[n];this.confirmTransition(i,(function(){var e=t.current;t.index=n,t.updateRoute(i),t.router.afterHooks.forEach((function(t){t&&t(i,e)}))}),(function(e){Ye(e,He.duplicated)&&(t.index=n)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(tt),ft=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=we(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!Re&&!1!==e.fallback,this.fallback&&(t="hash"),ge||(t="abstract"),this.mode=t,t){case"history":this.history=new rt(this,e.base);break;case"hash":this.history=new ot(this,e.base,this.fallback);break;case"abstract":this.history=new ht(this,e.base)}},pt={currentRoute:{configurable:!0}};function mt(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}ft.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},pt.currentRoute.get=function(){return this.history&&this.history.current},ft.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=t.apps.indexOf(e);n>-1&&t.apps.splice(n,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof rt||n instanceof ot){var i=function(e){n.setupListeners(),function(e){var i=n.current,r=t.options.scrollBehavior;Re&&r&&"fullPath"in e&&$e(t,e,i,!1)}(e)};n.transitionTo(n.getCurrentLocation(),i,i)}n.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},ft.prototype.beforeEach=function(e){return mt(this.beforeHooks,e)},ft.prototype.beforeResolve=function(e){return mt(this.resolveHooks,e)},ft.prototype.afterEach=function(e){return mt(this.afterHooks,e)},ft.prototype.onReady=function(e,t){this.history.onReady(e,t)},ft.prototype.onError=function(e){this.history.onError(e)},ft.prototype.push=function(e,t,n){var i=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){i.history.push(e,t,n)}));this.history.push(e,t,n)},ft.prototype.replace=function(e,t,n){var i=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){i.history.replace(e,t,n)}));this.history.replace(e,t,n)},ft.prototype.go=function(e){this.history.go(e)},ft.prototype.back=function(){this.go(-1)},ft.prototype.forward=function(){this.go(1)},ft.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},ft.prototype.resolve=function(e,t,n){var i=de(e,t=t||this.history.current,n,this),r=this.match(i,t),a=r.redirectedFrom||r.fullPath,o=function(e,t,n){var i="hash"===n?"#"+t:t;return e?U(e+"/"+i):i}(this.history.base,a,this.mode);return{location:i,route:r,href:o,normalizedTo:i,resolved:r}},ft.prototype.getRoutes=function(){return this.matcher.getRoutes()},ft.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==L&&this.history.transitionTo(this.history.getCurrentLocation())},ft.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==L&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(ft.prototype,pt),ft.install=function e(t){if(!e.installed||he!==t){e.installed=!0,he=t;var n=function(e){return void 0!==e},i=function(e,t){var i=e.$options._parentVnode;n(i)&&n(i=i.data)&&n(i=i.registerRouteInstance)&&i(e,t)};t.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,i(this,this)},destroyed:function(){i(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",H),t.component("RouterLink",pe);var r=t.config.optionMergeStrategies;r.beforeRouteEnter=r.beforeRouteLeave=r.beforeRouteUpdate=r.created}},ft.version="3.5.3",ft.isNavigationFailure=Ye,ft.NavigationFailureType=He,ft.START_LOCATION=L,ge&&window.Vue&&window.Vue.use(ft);const vt=ft;var gt=n(40158),bt=n.n(gt);function yt(e){return function(e){if(Array.isArray(e))return _t(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return _t(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _t(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);ne.length)&&(t=e.length);for(var n=0,i=new Array(t);n0){window.__projectId=t;var n=e.cacheProjects.find((function(e){return e.id==t}));if(n)return n}return{}},projectParameter:function(e){return function(t){if(!e.projectId)return!1;var n=e.cacheProjectParameter.find((function(t){return t.project_id==e.projectId}));return n||(n=$A.projectParameterTemplate(e.projectId),e.cacheProjectParameter.push(n)),n&&!!n[t]}},taskData:function(e){var t=e.taskId;if(0==t&&(t=$A.runNum(window.__taskId)),t>0){window.__taskId=t;var n=e.cacheTasks.find((function(e){return e.id==t}));if(n)return n}return{}},transforTasks:function(e){return function(t){return t.filter((function(e){var n=e.parent_id;return!(n>0&&t.find((function(e){return e.id==n})))})).map((function(n){if(n.parent_id>0){var i=e.cacheTasks.find((function(e){return e.id==n.parent_id}));return i?Object.assign({},i,{id:n.id,parent_id:n.parent_id,name:n.name,start_at:n.start_at,end_at:n.end_at,complete_at:n.complete_at,_time:n._time,flow_item_id:n.flow_item_id,flow_item_name:n.flow_item_name,flow_item_status:n.flow_item_status,sub_top:!0,sub_my:[]}):Object.assign({},n,{sub_top:!0,sub_my:[]})}return Object.assign({},n,{sub_top:!1,sub_my:t.filter((function(e){return e.parent_id==n.id}))})}))}},dashboardTask:function(e){var t,n=$A.Date($A.formatDate("Y-m-d 00:00:00")),i=$A.Date($A.formatDate("Y-m-d 23:59:59")),r=$A.Date($A.formatDate("Y-m-d H:i:s")),a=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return!e.archived_at&&((!e.complete_at||!0!==t)&&(!!e.end_at&&e.owner))},o=e.cacheTasks.filter((function(e){return a(e)})),s=e.taskCompleteTemps.filter((function(e){return a(e,!1)}));s.length>0&&(t=o=$A.cloneJSON(o)).push.apply(t,Tt(s));return{today:o.filter((function(e){var t=$A.Date(e.start_at),r=$A.Date(e.end_at);return t<=n&&n<=r||t<=i&&i<=r||t>n&&i>r})),overdue:o.filter((function(e){return $A.Date(e.end_at)<=r}))}}};function $t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var i,r,a=[],o=!0,s=!1;try{for(n=n.call(e);!(o=(i=n.next()).done)&&(a.push(i.value),!t||a.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{o||null==n.return||n.return()}finally{if(s)throw r}}return a}(e,t)||Pt(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Mt(e){return function(e){if(Array.isArray(e))return It(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Pt(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pt(e,t){if(e){if("string"==typeof e)return It(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?It(e,t):void 0}}function It(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n0?r.token||n.userToken:"",n.userInfo=r,n.userId=r.userid,n.userToken=r.token,n.userIsAdmin=$A.inArray("admin",r.identity),$A.setStorage("userInfo",n.userInfo),i("getBasicData"),i("websocketConnection"),e()}))},saveUserOnlineStatus:function(e,t){var n=e.state,i=t.userid,r=t.online;n.userOnline[i]!==r&&(n.userOnline=Object.assign({},n.userOnline,jt({},i,r)))},getUserBasic:function(e,t){var n=e.state,i=e.dispatch;if(!0!==n.cacheLoading.loadUserBasic){var r=$A.Time(),a=$A.cloneJSON(n.cacheUserWait);t&&t.userid&&a.push(t),n.cacheUserWait=[];var o=[],s=0;a.some((function(e){var t=n.cacheUserBasic.find((function(t){return t.userid==e.userid}));if(t&&r-t._time<=30)return setTimeout((function(){n.cacheUserActive=Object.assign(t,{__:Math.random()}),d.Store.set("cacheUserActive",t)}),s+=5),!1;o.push(e)})),0!==o.length&&(o.length>30&&(n.cacheUserWait=o.slice(30),o=o.slice(0,30)),n.cacheLoading.loadUserBasic=!0,i("call",{url:"users/basic",data:{userid:Mt(new Set(o.map((function(e){return e.userid}))))}}).then((function(e){r=$A.Time(),o.forEach((function(t){var n=e.data.find((function(e){return e.userid==t.userid}))||Object.assign(t,{email:""});n._time=r,i("saveUserBasic",n)})),n.cacheLoading.loadUserBasic=!1,i("getUserBasic")})).catch((function(e){console.warn(e),n.cacheLoading.loadUserBasic=!1,i("getUserBasic")})))}else t&&n.cacheUserWait.push(t)},saveUserBasic:function(e,t){var n=e.state;$A.execMainDispatch("saveUserBasic",t);var i=n.cacheUserBasic.findIndex((function(e){return e.userid==t.userid}));i>-1?(t=Object.assign({},n.cacheUserBasic[i],t),n.cacheUserBasic.splice(i,1,t)):n.cacheUserBasic.push(t),n.cacheUserActive=Object.assign(t,{__:Math.random()}),d.Store.set("cacheUserActive",t),setTimeout((function(){$A.setStorage("cacheUserBasic",n.cacheUserBasic)}))},userNickNameInput:function(e){var t=e.dispatch;return new Promise((function(e,n){var i=function(t,i){"function"==typeof t&&t(),!0===i?setTimeout(e,301):setTimeout(n,301)};$A.modalInput({title:"设置昵称",placeholder:"请输入昵称",okText:"保存",onOk:function(e,n){e?t("call",{url:"users/editdata",data:{nickname:e},checkNick:!1}).then((function(){t("getUserInfo").then((function(){i(n,!0)})).catch((function(){i(n,!1)}))})).catch((function(e){var t=e.msg;$A.modalError(t,301),i(n,!1)})):i(n,!1)},onCancel:function(){i(null,!1)}})}))},logout:function(e){e.state;var t=e.dispatch,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t("handleClearCache",{}).then((function(){var e=["/","/login"].includes(window.location.pathname)?"":encodeURIComponent(window.location.href);!1===n&&(e=null),$A.goForward({name:"login",query:e?{from:e}:{}},!0)}))},handleClearCache:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e){try{var r=$A.getStorageString("cacheLoginEmail"),a=$A.getStorageString("cacheThemeMode");window.localStorage.clear(),n.cacheUserBasic=[],n.cacheDialogs=[],n.cacheProjects=[],n.cacheColumns=[],n.cacheTasks=[],$A.setStorage("cacheProjectParameter",n.cacheProjectParameter),$A.setStorage("cacheServerUrl",n.cacheServerUrl),$A.setStorage("cacheLoginEmail",r),$A.setStorage("cacheThemeMode",a),i("saveUserInfo",$A.isJson(t)?t:n.userInfo),e()}catch(t){e()}}))},saveFile:function(e,t){var n=e.state,i=e.dispatch;if($A.execMainDispatch("saveFile",t),$A.isArray(t))t.forEach((function(e){i("saveFile",e)}));else if($A.isJson(t)){var r={_load:!1,_edit:!1},a=n.files.findIndex((function(e){return e.id==t.id}));a>-1?n.files.splice(a,1,Object.assign(r,n.files[a],t)):n.files.push(Object.assign(r,t))}},forgetFile:function(e,t){var n=e.state,i=e.dispatch;$A.execMainDispatch("forgetFile",t),($A.isArray(t)?t:[t]).some((function(e){n.files=n.files.filter((function(t){return t.id!=e})),n.files.some((function(t){t.pid==e&&i("forgetFile",t.id)}))}))},getFiles:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){i("call",{url:"file/lists",data:{pid:t}}).then((function(r){var a=r.data.map((function(e){return e.id}));n.files=n.files.filter((function(e){return e.pid!=t||a.includes(e.id)})),i("saveFile",r.data),e(r)})).catch((function(e){console.warn(e),r(e)}))}))},searchFiles:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){n("call",{url:"file/search",data:{key:t}}).then((function(t){n("saveFile",t.data),e(t)})).catch((function(e){console.warn(e),i(e)}))}))},saveProject:function(e,t){var n=e.state,i=e.dispatch;if($A.execMainDispatch("saveProject",t),$A.isArray(t))t.forEach((function(e){i("saveProject",e)}));else if($A.isJson(t)){void 0!==t.project_column&&(i("saveColumn",t.project_column),delete t.project_column);var r=n.cacheProjects.findIndex((function(e){return e.id==t.id}));r>-1?n.cacheProjects.splice(r,1,Object.assign({},n.cacheProjects[r],t)):(void 0===t.project_user&&(t.project_user=[]),n.cacheProjects.push(t)),n.cacheDialogs.some((function(e){if("group"==e.type&&"project"==e.group_type&&e.group_info.id==t.id)for(var n in void 0!==t.name&&(e.name=t.name),e.group_info)e.group_info.hasOwnProperty(n)&&void 0!==t[n]&&(e.group_info[n]=t[n])})),setTimeout((function(){$A.setStorage("cacheProjects",n.cacheProjects)}))}},forgetProject:function(e,t){var n=e.state;$A.execMainDispatch("forgetProject",t);var i=$A.isArray(t)?t:[t];if(i.some((function(e){var t=n.cacheProjects.findIndex((function(t){return t.id==e}));t>-1&&n.cacheProjects.splice(t,1)})),i.includes(n.projectId)){var r=n.cacheProjects.find((function(e){var n=e.id;return n&&n!=t}));r?$A.goForward({path:"/manage/project/"+r.id}):$A.goForward({path:"/manage/dashboard"})}setTimeout((function(){$A.setStorage("cacheProjects",n.cacheProjects)}))},getProjects:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){if(0===n.userId)return n.cacheProjects=[],void r({msg:"Parameter error"});i("call",{url:"project/lists",data:t||{}}).then((function(t){var r=t.data;n.projectTotal=r.total_all,i("saveProject",r.data),e(r)})).catch((function(e){console.warn(e),r(e)}))}))},getProjectOne:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){0!==$A.runNum(t)?(n.projectLoad++,i("call",{url:"project/one",data:{project_id:t}}).then((function(t){n.projectLoad--,i("saveProject",t.data),e(t)})).catch((function(e){console.warn(e),n.projectLoad--,r(e)}))):r({msg:"Parameter error"})}))},archivedProject:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){0!==$A.runNum(t)?n("call",{url:"project/archived",data:{project_id:t}}).then((function(i){n("forgetProject",t),e(i)})).catch((function(e){console.warn(e),n("getProjectOne",t).catch((function(){})),i(e)})):i({msg:"Parameter error"})}))},removeProject:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){0!==$A.runNum(t)?n("call",{url:"project/remove",data:{project_id:t}}).then((function(i){n("forgetProject",t),e(i)})).catch((function(e){console.warn(e),n("getProjectOne",t).catch((function(){})),i(e)})):i({msg:"Parameter error"})}))},exitProject:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){0!==$A.runNum(t)?n("call",{url:"project/exit",data:{project_id:t}}).then((function(i){n("forgetProject",t),e(i)})).catch((function(e){console.warn(e),n("getProjectOne",t).catch((function(){})),i(e)})):i({msg:"Parameter error"})}))},saveColumn:function(e,t){var n=e.state,i=e.dispatch;if($A.execMainDispatch("saveColumn",t),$A.isArray(t))t.forEach((function(e){i("saveColumn",e)}));else if($A.isJson(t)){var r=n.cacheColumns.findIndex((function(e){return e.id==t.id}));r>-1?n.cacheColumns.splice(r,1,Object.assign({},n.cacheColumns[r],t)):n.cacheColumns.push(t),setTimeout((function(){$A.setStorage("cacheColumns",n.cacheColumns)}))}},forgetColumn:function(e,t){var n=e.state,i=e.dispatch;$A.execMainDispatch("forgetColumn",t);var r=$A.isArray(t)?t:[t],a=[];r.some((function(e){var t=n.cacheColumns.findIndex((function(t){return t.id==e}));t>-1&&(a.push(n.cacheColumns[t].project_id),i("getProjectOne",n.cacheColumns[t].project_id).catch((function(){})),n.cacheColumns.splice(t,1))})),Array.from(new Set(a)).some((function(e){return i("getProjectOne",e).catch((function(){}))})),setTimeout((function(){$A.setStorage("cacheColumns",n.cacheColumns)}))},getColumns:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){if(0===n.userId)return n.cacheColumns=[],void r({msg:"Parameter error"});n.projectLoad++,i("call",{url:"project/column/lists",data:{project_id:t}}).then((function(r){var a=r.data;n.projectLoad--;var o=a.data.map((function(e){return e.id}));if(n.cacheColumns=n.cacheColumns.filter((function(e){return e.project_id!=t||o.includes(e.id)})),i("saveColumn",a.data),e(a.data),1===n.cacheColumns.filter((function(e){return e.project_id==t})).length){var s=n.cacheProjectParameter.find((function(e){return e.project_id==t}))||{};void 0!==s.cardInit&&!1!==s.cardInit||i("toggleProjectParameter",{project_id:t,key:{card:!1,cardInit:!0}})}})).catch((function(e){console.warn(e),n.projectLoad--,r(e)}))}))},removeColumn:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){0!==$A.runNum(t)?n("call",{url:"project/column/remove",data:{column_id:t}}).then((function(i){n("forgetColumn",t),e(i)})).catch((function(e){console.warn(e),i(e)})):i({msg:"Parameter error"})}))},saveTask:function(e,t){var n=e.state,i=e.dispatch;if($A.execMainDispatch("saveTask",t),$A.isArray(t))t.forEach((function(e){i("saveTask",e)}));else if($A.isJson(t)){if(t._time=$A.Time(),t.flow_item_name&&-1!==t.flow_item_name.indexOf("|")){var r=$t(t.flow_item_name.split("|"),2);t.flow_item_status=r[0],t.flow_item_name=r[1]}void 0!==t.archived_at&&n.cacheTasks.filter((function(e){return e.parent_id==t.id})).some((function(e){i("saveTask",Object.assign(e,{archived_at:t.archived_at,archived_userid:t.archived_userid}))}));var a={};void 0!==t.update_marking&&(a=$A.isJson(t.update_marking)?t.update_marking:{},delete t.update_marking);var o=n.cacheTasks.findIndex((function(e){return e.id==t.id}));o>-1?n.cacheTasks.splice(o,1,Object.assign({},n.cacheTasks[o],t)):n.cacheTasks.push(t),(!0===a.is_update_maintask||t.parent_id>0&&-1===n.cacheTasks.findIndex((function(e){return e.id==t.parent_id})))&&i("getTaskOne",t.parent_id).catch((function(){})),!0===a.is_update_project&&i("getProjectOne",t.project_id).catch((function(){})),!0===a.is_update_content&&i("getTaskContent",t.id),!0===a.is_update_subtask&&i("getTaskForParent",t.id).catch((function(){})),n.cacheDialogs.some((function(e){if("group"==e.type&&"task"==e.group_type&&e.group_info.id==t.id)for(var n in void 0!==t.name&&(e.name=t.name),e.group_info)e.group_info.hasOwnProperty(n)&&void 0!==t[n]&&(e.group_info[n]=t[n])})),setTimeout((function(){$A.setStorage("cacheTasks",n.cacheTasks)}))}},forgetTask:function(e,t){var n=e.state,i=e.dispatch;$A.execMainDispatch("forgetTask",t);var r=$A.isArray(t)?t:[t],a=[],o=[];r.some((function(e){var t=n.cacheTasks.findIndex((function(t){return t.id==e}));t>-1&&(n.cacheTasks[t].parent_id&&a.push(n.cacheTasks[t].parent_id),o.push(n.cacheTasks[t].project_id),n.cacheTasks.splice(t,1))})),Array.from(new Set(a)).some((function(e){return i("getTaskOne",e).catch((function(){}))})),Array.from(new Set(o)).some((function(e){return i("getProjectOne",e).catch((function(){}))})),r.includes(n.taskId)&&(n.taskId=0),setTimeout((function(){$A.setStorage("cacheTasks",n.cacheTasks)}))},increaseTaskMsgNum:function(e,t){var n=e.state;$A.execMainDispatch("increaseTaskMsgNum",t);var i=n.cacheTasks.find((function(e){return e.dialog_id===t}));i&&i.msg_num++},getTasks:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){if(0===n.userId)return n.cacheTasks=[],void r({msg:"Parameter error"});t.project_id&&n.projectLoad++,i("call",{url:"project/task/lists",data:t}).then((function(a){t.project_id&&n.projectLoad--;var o=a.data;if(i("saveTask",o.data),o.next_page_url){var s=Object.assign(t,{page:o.current_page+1});o.current_page%5==0?$A.modalWarning({content:"数据已超过"+o.to+"条,是否继续加载?",onOk:function(){i("getTasks",s).then(e).catch(r)},onCancel:function(){e()}}):i("getTasks",s).then(e).catch(r)}else e()})).catch((function(e){console.warn(e),r(e),t.project_id&&n.projectLoad--}))}))},getTaskOne:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){/^\d+$/.test(t)&&(t={task_id:t}),0!==$A.runNum(t.task_id)?n("call",{url:"project/task/one",data:t}).then((function(t){n("saveTask",t.data),e(t)})).catch((function(e){console.warn(e),i(e)})):i({msg:"Parameter error"})}))},getTaskForDashboard:function(e){var t=e.state,n=e.dispatch,i=e.getters;if(!0!==t.cacheLoading.loadDashboardTasks){t.cacheLoading.loadDashboardTasks=!0;var r=$A.Time(),a=i.dashboardTask,o=a.today,s=a.overdue,l=o.map((function(e){return e.id}));l.push.apply(l,Mt(s.map((function(e){return e.id}))));var u=2;!function e(){if(u<=0){t.cacheLoading.loadDashboardTasks=!1;var a=i.dashboardTask,o=a.today,s=a.overdue,c=o.filter((function(e){return e._time>=r})).map((function(e){return e.id}));return c.push.apply(c,Mt(s.filter((function(e){return e._time>=r})).map((function(e){return e.id})))),void n("forgetTask",l.filter((function(e){return-1==c.indexOf(e)})))}1==--u?n("getTasks",{complete:"no",time:[$A.formatDate("Y-m-d 00:00:00"),$A.formatDate("Y-m-d 23:59:59")]}).then(e).catch(e):0==u&&n("getTasks",{complete:"no",time_before:$A.formatDate("Y-m-d H:i:s")}).then(e).catch(e)}()}},getTaskForProject:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){var a=$A.Time(),o=n.cacheTasks.filter((function(e){return e.project_id==t})).map((function(e){return e.id})),s=function(){var e=n.cacheTasks.filter((function(e){return e.project_id==t&&e._time>=a})).map((function(e){return e.id}));i("forgetTask",o.filter((function(t){return-1==e.indexOf(t)})))};i("getTasks",{project_id:t}).then((function(){s(),e()})).catch((function(){s(),r()}))}))},getTaskForParent:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){var a=$A.Time(),o=n.cacheTasks.filter((function(e){return e.parent_id==t})).map((function(e){return e.id})),s=function(){var e=n.cacheTasks.filter((function(e){return e.parent_id==t&&e._time>=a})).map((function(e){return e.id}));i("forgetTask",o.filter((function(t){return-1==e.indexOf(t)})))};i("getTasks",{parent_id:t,archived:"all"}).then((function(){s(),e()})).catch((function(){s(),r()}))}))},removeTask:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){0!==$A.runNum(t)?(n("taskLoadStart",t),n("call",{url:"project/task/remove",data:{task_id:t}}).then((function(i){n("forgetTask",t),n("taskLoadEnd",t),e(i)})).catch((function(e){console.warn(e),n("getTaskOne",t).catch((function(){})),n("taskLoadEnd",t),i(e)}))):i({msg:"Parameter error"})}))},archivedTask:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){/^\d+$/.test(t)&&(t={task_id:t}),0!==$A.runNum(t.task_id)?(n("taskLoadStart",t.task_id),n("call",{url:"project/task/archived",data:t}).then((function(i){n("saveTask",i.data),n("taskLoadEnd",t.task_id),e(i)})).catch((function(e){console.warn(e),n("getTaskOne",t.task_id).catch((function(){})),n("taskLoadEnd",t.task_id),i(e)}))):i({msg:"Parameter error"})}))},getTaskContent:function(e,t){var n=e.state,i=e.dispatch;0!==$A.runNum(t)&&i("call",{url:"project/task/content",data:{task_id:t}}).then((function(e){var t=n.taskContents.findIndex((function(t){return t.id==e.data.id}));t>-1?n.taskContents.splice(t,1,e.data):n.taskContents.push(e.data)})).catch((function(e){console.warn(e)}))},getTaskFiles:function(e,t){var n=e.state,i=e.dispatch;0!==$A.runNum(t)&&i("call",{url:"project/task/files",data:{task_id:t}}).then((function(e){e.data.forEach((function(e){var t=n.taskFiles.findIndex((function(t){return t.id==e.id}));t>-1?n.taskFiles.splice(t,1,e):n.taskFiles.push(e)})),i("saveTask",{id:t,file_num:e.data.length})})).catch((function(e){console.warn(e)}))},forgetTaskFile:function(e,t){var n=e.state;e.dispatch;($A.isArray(t)?t:[t]).some((function(e){var t=n.taskFiles.findIndex((function(t){return t.id==e}));t>-1&&n.taskFiles.splice(t,1)}))},openTask:function(e,t){var n=e.state,i=e.dispatch,r=t;$A.isJson(t)&&(r=t.parent_id>0?t.parent_id:t.id),n.taskId=r,r>0&&i("getTaskOne",{task_id:r,archived:"all"}).then((function(){i("getTaskContent",r),i("getTaskFiles",r),i("getTaskForParent",r).catch((function(){}))})).catch((function(e){var t=e.msg;$A.modalWarning({content:t,onOk:function(){n.taskId=0}})}))},taskAdd:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){var r=$A.cloneJSON($A.date2string(t));$A.isArray(r.column_id)&&(r.column_id=r.column_id.find((function(e){return e}))),n("call",{url:"project/task/add",data:r,method:"post"}).then((function(t){n("addTaskSuccess",t.data),e(t)})).catch((function(e){console.warn(e),i(e)}))}))},taskAddSub:function(e,t){var n=e.dispatch;return new Promise((function(e,i){n("call",{url:"project/task/addsub",data:t}).then((function(t){n("addTaskSuccess",t.data),e(t)})).catch((function(e){console.warn(e),i(e)}))}))},addTaskSuccess:function(e,t){var n=e.dispatch;void 0!==t.new_column&&(n("saveColumn",t.new_column),delete t.new_column),n("saveTask",t),n("getProjectOne",t.project_id).catch((function(){}))},taskUpdate:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){n("taskBeforeUpdate",t).then((function(t){n("taskLoadStart",t.task_id),n("call",{url:"project/task/update",data:t,method:"post"}).then((function(i){n("taskLoadEnd",t.task_id),n("saveTask",i.data),e(i)})).catch((function(e){console.warn(e),n("taskLoadEnd",t.task_id),n("getTaskOne",t.task_id).catch((function(){})),i(e)}))})).catch(i)}))},taskBeforeUpdate:function(e,t){var n=e.state;e.dispatch;return new Promise((function(e,i){var r=$A.cloneJSON($A.date2string(t)),a="温馨提示",o=null;if(void 0!==r.times){!1===t.times[0]&&(o="你确定要取消任务时间吗?");var s=n.cacheTasks.find((function(e){return e.id==r.task_id}));a=s.parent_id>0?"更新子任务":"更新主任务",s&&(s.parent_id>0?r.times[0]&&n.cacheTasks.some((function(e){if(e.id!=s.parent_id)return!1;if(!e.end_at)return o="主任务没有设置时间,设置子任务将同步设置主任务",!0;var t=$A.Date(r.times[0],!0),n=$A.Date(r.times[1],!0),i=$A.Date(e.start_at,!0),a=$A.Date(e.end_at,!0);return ta?(o="新设置的子任务结束时间在主任务时间之外,修改后将同步修改主任务",!0):void 0})):n.cacheTasks.some((function(e){if(e.parent_id!=s.id)return!1;if(!e.end_at)return!1;var t=$A.Date(r.times[0],!0),n=$A.Date(r.times[1],!0),i=$A.Date(s.start_at,!0),a=$A.Date(s.end_at,!0),l=$A.Date(e.start_at,!0),u=$A.Date(e.end_at,!0);return(i!=l||a!=u)&&(r.times[0]?t>l?(o="新设置的开始时间在子任务(".concat(e.name,")时间之内,修改后将同步修改子任务"),!0):n-1?n.taskFlowItems.splice(t,1,e):n.taskFlowItems.push(e)})),delete i.turns;var r=n.taskFlows.findIndex((function(e){return e.task_id==i.task_id}));r>-1?n.taskFlows.splice(r,1,i):n.taskFlows.push(i),e(t)})).catch((function(e){console.warn(e),r(e)}))}))},getTaskPriority:function(e){var t=e.state,n=e.dispatch;return new Promise((function(e,i){n("call",{url:"system/priority"}).then((function(n){t.taskPriority=n.data,e(n)})).catch((function(e){console.warn(e),i(e)}))}))},getColumnTemplate:function(e){var t=e.state,n=e.dispatch;return new Promise((function(e,i){n("call",{url:"system/column/template"}).then((function(n){t.columnTemplate=n.data,e(n)})).catch((function(e){console.warn(e),i(e)}))}))},saveTaskCompleteTemp:function(e,t){var n=e.state;if($A.isJson(t)){var i=n.taskCompleteTemps.findIndex((function(e){return e.id==t.id}));i>-1?n.taskCompleteTemps.splice(i,1,t):n.taskCompleteTemps.push(t)}},forgetTaskCompleteTemp:function(e,t){var n=e.state;if(!0!==t){var i=n.taskCompleteTemps.findIndex((function(e){return e.id==t}));i>-1&&n.taskCompleteTemps.splice(i,1)}else n.taskCompleteTemps=[]},saveDialog:function(e,t){var n=e.state,i=e.dispatch;if($A.execMainDispatch("saveDialog",t),$A.isArray(t))t.forEach((function(e){i("saveDialog",e)}));else if($A.isJson(t)){var r=n.cacheDialogs.findIndex((function(e){return e.id==t.id}));r>-1?n.cacheDialogs.splice(r,1,Object.assign({},n.cacheDialogs[r],t)):n.cacheDialogs.push(t),setTimeout((function(){$A.setStorage("cacheDialogs",n.cacheDialogs)}))}},updateDialogLastMsg:function(e,t){var n=e.state,i=e.dispatch;$A.execMainDispatch("updateDialogLastMsg",t),n.cacheDialogs.find((function(e){return e.id==t.dialog_id}))?i("saveDialog",{id:t.dialog_id,last_msg:t,last_at:$A.formatDate("Y-m-d H:i:s")}):i("getDialogOne",t.dialog_id).catch((function(){}))},getDialogs:function(e){var t=e.state,n=e.dispatch;0!==t.userId?n("call",{url:"dialog/lists"}).then((function(e){n("saveDialog",e.data.data)})).catch((function(e){console.warn(e)})):t.cacheDialogs=[]},getDialogOne:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){0!==$A.runNum(t)?n("call",{url:"dialog/one",data:{dialog_id:t}}).then((function(t){n("saveDialog",t.data),e(t)})).catch((function(e){console.warn(e),i(e)})):i({msg:"Parameter error"})}))},openDialogUserid:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){t!==n.userId?(n.dialogOpenId=0,i("call",{url:"dialog/open/user",data:{userid:t}}).then((function(t){i("saveDialog",t.data),$A.setStorage("messenger::dialogId",t.data.id),n.dialogOpenId=t.data.id,e(t)})).catch((function(e){console.warn(e),r(e)}))):r({msg:"Parameter error"})}))},forgetDialog:function(e,t){var n=e.state;$A.execMainDispatch("forgetDialog",t);var i=$A.isArray(t)?t:[t];i.some((function(e){var t=n.cacheDialogs.findIndex((function(t){return t.id==e}));t>-1&&n.cacheDialogs.splice(t,1)})),i.includes($A.getStorageInt("messenger::dialogId"))&&$A.setStorage("messenger::dialogId",0),setTimeout((function(){$A.setStorage("cacheDialogs",n.cacheDialogs)}))},saveDialogMsg:function(e,t){var n=e.state,i=e.dispatch;if($A.execMainDispatch("saveDialogMsg",t),$A.isArray(t))t.forEach((function(e){i("saveDialogMsg",e)}));else if($A.isJson(t)){var r=n.dialogMsgs.findIndex((function(e){return e.id==t.id}));r>-1?n.dialogMsgs.splice(r,1,Object.assign({},n.dialogMsgs[r],t)):n.dialogMsgs.push(t)}},forgetDialogMsg:function(e,t){var n=e.state;$A.execMainDispatch("forgetDialogMsg",t),($A.isArray(t)?t:[t]).some((function(e){var t=n.dialogMsgs.findIndex((function(t){return t.id==e}));t>-1&&n.dialogMsgs.splice(t,1)}))},getDialogMsgs:function(e,t){var n=e.state,i=e.dispatch,r=n.cacheDialogs.find((function(e){return e.id==t}));r||(r={id:t},n.cacheDialogs.push(r)),r.loading||(r.loading=!0,r.currentPage=1,r.hasMorePages=!1,i("call",{url:"dialog/msg/lists",data:{dialog_id:t,page:r.currentPage}}).then((function(e){r.loading=!1,r.currentPage=e.data.current_page,r.hasMorePages=!!e.data.next_page_url,i("saveDialog",r);var a=e.data.data.map((function(e){return e.id}));n.dialogMsgs=n.dialogMsgs.filter((function(e){return e.dialog_id!=t||a.includes(e.id)})),i("saveDialog",e.data.dialog),i("saveDialogMsg",e.data.data)})).catch((function(e){console.warn(e),r.loading=!1})))},getDialogMoreMsgs:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){var a=n.cacheDialogs.find((function(e){return e.id==t}));a?a.hasMorePages?a.loading?r({msg:"Loading"}):(a.loading=!0,a.currentPage++,i("call",{url:"dialog/msg/lists",data:{dialog_id:t,page:a.currentPage}}).then((function(t){a.loading=!1,a.currentPage=t.data.current_page,a.hasMorePages=!!t.data.next_page_url,i("saveDialogMsg",t.data.data),e(t)})).catch((function(e){console.warn(e),a.loading=!1,r(e)}))):r({msg:"No more page"}):r({msg:"Parameter error"})}))},dialogMsgRead:function(e,t){var n=e.state,i=e.dispatch;if(t.userid!=n.userId&&!0!==t.is_read){t.is_read=!0;var r=n.cacheDialogs.find((function(e){return e.id==t.dialog_id}));r&&r.unread>0&&r.unread--,n.wsReadWaitList.push(t.id),clearTimeout(n.wsReadTimeout),n.wsReadTimeout=setTimeout((function(){i("websocketSend",{type:"readMsg",data:{id:$A.cloneJSON(n.wsReadWaitList)}}),n.wsReadWaitList=[]}),20)}},websocketConnection:function(e){var t=e.state,n=e.dispatch;e.commit;if(clearTimeout(t.wsTimeout),0!==t.userId){var i=$A.apiUrl("../ws");i=(i=i.replace("https://","wss://")).replace("http://","ws://"),i+="?action=web&token="+t.userToken,t.ws=new WebSocket(i),t.ws.onopen=function(e){t.wsOpenNum++},t.ws.onclose=function(e){t.ws=null,clearTimeout(t.wsTimeout),t.wsTimeout=setTimeout((function(){n("websocketConnection")}),3e3)},t.ws.onerror=function(e){t.ws=null,clearTimeout(t.wsTimeout),t.wsTimeout=setTimeout((function(){n("websocketConnection")}),3e3)},t.ws.onmessage=function(e){var i=$A.formatWebsocketMessageDetail($A.jsonParse(e.data)),r=i.type,a=i.msgId;switch(r){case"open":$A.setStorage("userWsFd",i.data.fd);break;case"receipt":"function"==typeof t.wsCall[a]&&t.wsCall[a](i.body,!0),delete t.wsCall[a];break;case"line":n("saveUserOnlineStatus",i.data);break;default:switch(a&&n("websocketSend",{type:"receipt",msgId:a}),t.wsMsg=i,Object.values(t.wsListener).forEach((function(e){if("function"==typeof e)try{e(i)}catch(e){}})),r){case"dialog":!function(e){var i=e.mode,r=e.data,a=r.dialog_id;switch(i){case"delete":n("forgetDialogMsg",r.id);var o=t.cacheDialogs.find((function(e){return e.id==r.dialog_id}));o&&(o.last_at=r.last_msg&&r.last_msg.created_at,o.last_msg=r.last_msg,r.update_read&&n("call",{url:"dialog/msg/unread",dialog_id:r.dialog_id}).then((function(e){o.unread=e.data.unread})).catch((function(){})));break;case"add":case"chat":if(!t.dialogMsgs.find((function(e){return e.id==r.id}))){if(n("increaseTaskMsgNum",a),"chat"===i)return;var s=t.cacheDialogs.find((function(e){return e.id==r.dialog_id}));s&&void 0===t.cacheUnreads[r.id]&&(t.cacheUnreads[r.id]=!0,s.unread++),d.Store.set("dialogMsgPush",r)}n("saveDialogMsg",r),n("updateDialogLastMsg",r)}}(i);break;case"project":!function(e){var t=e.action,i=e.data;switch(t){case"add":case"update":n("saveProject",i);break;case"detail":n("getProjectOne",i.id).catch((function(){})),n("getTaskForProject",i.id).catch((function(){}));break;case"archived":case"delete":n("forgetProject",i.id);break;case"sort":n("getTaskForProject",i.id).catch((function(){}))}}(i);break;case"projectColumn":!function(e){var t=e.action,i=e.data;switch(t){case"add":case"update":n("saveColumn",i);break;case"delete":n("forgetColumn",i.id)}}(i);break;case"projectTask":!function(e){var t=e.action,i=e.data;switch(t){case"add":n("addTaskSuccess",i);break;case"update":n("saveTask",i);break;case"dialog":n("saveTask",i),n("getDialogOne",i.dialog_id).catch((function(){}));break;case"upload":n("getTaskFiles",i.task_id);break;case"filedelete":n("forgetTaskFile",i.id);break;case"delete":n("forgetTask",i.id)}}(i);break;case"file":!function(e){var t=e.action,i=e.data;switch(t){case"add":case"update":n("saveFile",i);break;case"delete":n("forgetFile",i.id)}}(i)}}}}else t.ws&&(t.ws.close(),t.ws=null)},websocketSend:function(e,t){var n=e.state;if($A.isJson(t)){var i=t.type,r=t.data,a=t.callback,o=void 0;if(n.ws){"function"==typeof a&&(o=$A.randomString(16),n.wsCall[o]=a);try{n.ws.send(JSON.stringify({type:i,msgId:o,data:r}))}catch(e){"function"==typeof a&&a(null,!1)}}else"function"==typeof a&&a(null,!1)}else"function"==typeof a&&a(null,!1)},websocketPath:function(e,t){var n=e.state,i=e.dispatch;clearTimeout(n.wsPathTimeout),n.wsPathValue=t,n.wsPathTimeout=setTimeout((function(){n.wsPathValue==t&&i("websocketSend",{type:"path",data:{path:t}})}),1e3)},websocketMsgListener:function(e,t){var n=e.state,i=t.name,r=t.callback;"function"==typeof r?n.wsListener[i]=r:n.wsListener[i]&&delete n.wsListener[i]},websocketClose:function(e){var t=e.state;t.ws&&t.ws.close()}};i.default.use(r.ZP);const Nt=new r.ZP.Store({state:Ot.Z,getters:Et,mutations:{},actions:At});function Lt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function Ft(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Rt={name:"PageTitle",props:{title:{type:[String,Number],default:""}},data:function(){return{pagePath:""}},activated:function(){this.updateTitle()},computed:function(e){for(var t=1;tMath.floor(e.offsetWidth),this.showTooltip&&this.existSlot){var i=this.$slots.default.map((function(e){return e.text?e.text:e.elm.innerText?e.elm.innerText:""}));this.tooltipContent=i.join("")}t=null},onClick:function(e){this.$emit("on-click",e)}}};const Wt=(0,o.Z)(Ht,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ETooltip",{attrs:{content:e.tipText,placement:e.placement,effect:e.tooltipTheme,delay:e.delay,disabled:!e.showTooltip,"max-width":e.tooltipMaxWidth,transfer:""}},[n("span",{ref:"content",staticClass:"common-auto-tip",on:{mouseenter:e.handleTooltipIn,click:e.onClick}},[e.existSlot?[e._t("default")]:[e._v(e._s(e.content))]],2)])}),[],!1,null,null,null).exports;const qt={name:"TagInput",props:{value:{default:""},cut:{default:","},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},placeholder:{default:""},max:{default:0}},data:function(){var e=[];return this.value.split(",").forEach((function(t){t&&e.push(t)})),{minWidth:80,tis:"",tisTimeout:null,showPlaceholder:!0,content:"",disSource:e,isFocus:!1}},mounted:function(){this.wayMinWidth()},watch:{placeholder:function(){this.wayMinWidth()},value:function(e){var t=[];$A.count(e)>0&&e.split(",").forEach((function(e){e&&t.push(e)})),this.disSource=t},disSource:function(e){var t=this,n="";e.forEach((function(e){""!=n&&(n+=t.cut),n+=e})),this.$emit("input",n),this.$emit("on-change")}},computed:{placeholderText:function(){return this.disSource.length>0?"":this.placeholder}},methods:{focus:function(e){var t=this.$refs.myTextarea;t.focus(e);var n=(e||{}).cursor;if(n){var i=t.value.length;switch(n){case"start":t.setSelectionRange(0,0);break;case"end":t.setSelectionRange(i,i);break;default:t.setSelectionRange(0,i)}}},wayMinWidth:function(){var e=this;this.showPlaceholder=!0,this.$nextTick((function(){e.$refs.myPlaceholder&&(e.minWidth=Math.max(e.minWidth,e.$refs.myPlaceholder.offsetWidth)),setTimeout((function(){try{e.minWidth=Math.max(e.minWidth,e.$refs.myPlaceholder.offsetWidth),e.showPlaceholder=!1}catch(e){}$A(e.$refs.myPlaceholder).is(":visible")||e.wayMinWidth()}),500)}))},pasteText:function(e){e.preventDefault();var t=(e.clipboardData||window.clipboardData).getData("text");this.addTag(!1,t)},downEnter:function(e){e.preventDefault()},onFocus:function(e){this.isFocus=!0,this.$emit("on-focus",e)},onBlur:function(e){this.isFocus=!1,this.addTag(!1,this.content),this.$emit("on-blur",e)},addTag:function(e,t){var n=this;if(!1===e||13===e.keyCode)return""!=t.trim()&&-1===this.disSource.indexOf(t.trim())&&this.disSource.push(t.trim()),this.content="",void(13===e.keyCode&&this.$nextTick((function(){n.$emit("on-enter",e)})));if(this.max>0&&this.disSource.length>=this.max)return this.content="",this.tis="最多只能添加"+this.max+"个",clearInterval(this.tisTimeout),void(this.tisTimeout=setTimeout((function(){n.tis=""}),2e3));var i=t.trim(),r=i.length-this.cut.length;""!=i&&i.substring(r)===this.cut&&(""!=(i=i.substring(0,r)).trim()&&-1===this.disSource.indexOf(i.trim())&&this.disSource.push(i.trim()),this.content="")},delTag:function(e){if(!1===e){if(""!==this.content)return;e=this.disSource.length-1}this.disSource.splice(e,1),this.focus()}}};const Ut=(0,o.Z)(qt,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"common-tag-input",class:{focus:e.isFocus},on:{paste:function(t){return e.pasteText(t)},click:e.focus}},[e._l(e.disSource,(function(t,i){return n("div",{staticClass:"tags-item"},[n("span",{staticClass:"tags-content",on:{click:function(e){e.stopPropagation()}}},[e._v(e._s(t))]),n("span",{staticClass:"tags-del",on:{click:function(t){return t.stopPropagation(),e.delTag(i)}}},[e._v("×")])])})),e._v(" "),n("textarea",{directives:[{name:"model",rawName:"v-model",value:e.content,expression:"content"}],ref:"myTextarea",staticClass:"tags-input",style:{minWidth:e.minWidth+"px"},attrs:{placeholder:e.tis||e.placeholderText,disabled:e.disabled,readonly:e.readonly},domProps:{value:e.content},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.downEnter(t)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?null:e.delTag(!1)}],keyup:function(t){return e.addTag(t,e.content)},focus:e.onFocus,blur:e.onBlur,input:function(t){t.target.composing||(e.content=t.target.value)}}}),e._v(" "),e.showPlaceholder||""!==e.tis?n("span",{ref:"myPlaceholder",staticClass:"tags-placeholder"},[e._v(e._s(e.tis||e.placeholderText))]):e._e()],2)}),[],!1,null,null,null).exports;var Kt=n(3869),Gt=n.n(Kt);i.default.use(Gt());const Yt={name:"TableAction",props:{column:{type:Object,default:function(){return{}}},autoWidth:{type:Boolean,default:!0},minWidth:{type:Number,default:80},align:{type:String,default:""},menu:{type:Array,default:function(){return[]}}},data:function(){return{width:0,height:0}},mounted:function(){this.onUpdate()},activated:function(){this.onUpdate()},beforeUpdate:function(){this.onUpdate()},computed:{tdStyle:function(){var e={};switch(this.align.toLowerCase()){case"left":e.justifyContent="flex-start";break;case"center":e.justifyContent="center";break;case"right":e.justifyContent="flex-end"}return e}},methods:{handleIn:function(){this.$refs.action.offsetWidth!=this.width&&this.onUpdate()},onUpdate:function(){this.onResize({width:this.$refs.action.offsetWidth,height:this.$refs.action.offsetHeight})},onResize:function(e){var t=this,n=e.width,i=e.height;if(this.autoWidth){$A(".ivu-table-column-"+this.column.__id).each((function(e,t){var r=$A(t).find(".td-action-container");r.length>0&&(n=Math.max(n,r[0].offsetWidth),i=Math.max(i,r[0].offsetHeight))})),this.width=n,this.height=i;var r=Math.max(this.minWidth,this.width+26);this.column.minWidth&&(r=Math.max(this.column.minWidth,r)),this.column.maxWidth&&(r=Math.min(this.column.maxWidth,r)),r!=this.column.width&&this.$nextTick((function(){t.$set(t.column,"width",r)}))}},onClick:function(e){this.$emit("action",e)}}};const Zt=(0,o.Z)(Yt,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"td-action",style:e.tdStyle,attrs:{"data-width":e.width,"data-height":e.height}},[n("div",{directives:[{name:"resize",rawName:"v-resize",value:e.onResize,expression:"onResize"}],ref:"action",staticClass:"td-action-container",class:{"td-action-menu":e.menu.length>0},on:{mouseenter:e.handleIn}},[e._t("default"),e._v(" "),e._l(e.menu,(function(t,i){return n("ETooltip",{key:i,attrs:{placement:"top",disabled:!t.title,content:t.title,enterable:!1,"open-delay":600}},[t.children&&t.children.length>0?n("EDropdown",{staticClass:"menu-dropdown",attrs:{size:"medium",trigger:"click"},on:{command:e.onClick}},[n("i",{staticClass:"aliicon menu-icon",style:t.style||{},domProps:{innerHTML:e._s(t.icon)}}),e._v(" "),n("EDropdownMenu",{attrs:{slot:"dropdown"},slot:"dropdown"},e._l(t.children,(function(t,i){return n("EDropdownItem",{key:i,style:t.style||{},attrs:{command:t.action,divided:!!t.divided}},[n("div",[e._v(e._s(t.title))])])})),1)],1):n("i",{staticClass:"aliicon menu-icon",style:t.style||{},domProps:{innerHTML:e._s(t.icon)},on:{click:function(n){return e.onClick(t.action)}}})],1)}))],2)])}),[],!1,null,null,null).exports;const Xt={name:"QuickEdit",directives:{clickoutside:{bind:function(e,t,n){function i(n){if(e.contains(n.target))return!1;t.expression&&t.value(n)}e.__vueClickOutside__=i,document.addEventListener("click",i)},update:function(){},unbind:function(e,t){document.removeEventListener("click",e.__vueClickOutside__),delete e.__vueClickOutside__}}},props:{value:{},autoEdit:{},isTag:{type:Boolean,default:!1},alwaysIcon:{type:Boolean,default:!1},clickOutSide:{type:Boolean,default:!0}},data:function(){return{isLoad:!1,isEdit:!1,content:""}},mounted:function(){!0===this.autoEdit&&this.onEdit()},watch:{isEdit:function(e){this.$emit("on-edit-change",e)},autoEdit:function(e){!0===e&&setTimeout(this.onEdit,0)}},methods:{onEdit:function(){var e=this;this.content=this.value,this.isEdit=!0,this.$nextTick((function(){e.$refs.input.focus({cursor:"all"})}))},onEnter:function(){var e=this;this.content!=this.value?this.isLoad||(this.isLoad=!0,this.$emit("input",this.content),this.$emit("on-update",this.content,(function(){e.isEdit=!1,e.isLoad=!1}))):this.isEdit=!1},onClickOut:function(){this.clickOutSide&&this.onEnter()},onBlur:function(){this.clickOutSide||this.onEnter()}}};const Jt=(0,o.Z)(Xt,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"quick-edit",class:[e.alwaysIcon?"quick-always":""]},[e.isEdit?n("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.onClickOut,expression:"onClickOut"}],staticClass:"quick-input"},[e.isTag?n("TagInput",{ref:"input",attrs:{disabled:e.isLoad},on:{"on-enter":e.onEnter,"on-blur":e.onBlur},model:{value:e.content,callback:function(t){e.content=t},expression:"content"}}):n("Input",{ref:"input",attrs:{disabled:e.isLoad},on:{"on-enter":e.onEnter,"on-blur":e.onBlur},model:{value:e.content,callback:function(t){e.content=t},expression:"content"}}),e._v(" "),e.isLoad?n("div",{staticClass:"quick-loading"},[n("Loading")],1):e._e()],1):[n("div",{staticClass:"quick-text"},[e._t("default")],2),e._v(" "),n("Icon",{staticClass:"quick-icon",attrs:{type:"ios-create-outline"},on:{click:function(t){return t.stopPropagation(),e.onEdit.apply(null,arguments)}}})]],2)}),[],!1,null,null,null).exports;function Qt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function en(e){for(var t=1;t0&&(e.border=t+"px solid "+(n||"#ffffff")),e},spotStyle:function(){var e=this.borderWitdh,t=this.size;return"default"===t&&(t=32),e>0&&(t-=e),32==t?{}:{transform:"scale("+Math.min(1.25,t/32)+")"}},nameStyle:function(){return this.showIcon?{}:{paddingLeft:0}},avatarSize:function(){var e=this.borderWitdh,t=this.size;return"default"===t&&(t=32),e>0?t-2*e:t},showImg:function(){var e=this.user.userimg;return!!e&&!$A.rightExists(e,"/avatar.png")},isDefault:function(){var e=this.user.userimg;return $A.strExists(e,"/avatar/default_")},nickname:function(){var e=this.user.nickname;if(!e)return"D";var t=e.substring(0,2);return/^[\u4e00-\u9fa5]+$/.test(t)&&(t=t.substring(0,1)),t||"D"}}),watch:{userid:function(){this.getData()},userInfo:function(e){e.userid==this.userid&&(this.user=e)},userOnline:function(e){this.user&&void 0!==e[this.user.userid]&&this.$set(this.user,"online",e[this.user.userid])}},methods:{getData:function(){this.userid&&(this.userid!=this.userInfo.userid?this.$store.dispatch("getUserBasic",{userid:this.userid}):this.user=this.userInfo)},openDialog:function(){this.goForward({path:"/manage/messenger"}),this.$store.dispatch("openDialogUserid",this.userid).catch((function(){}))}}};const rn=(0,o.Z)(nn,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.user?n("ETooltip",{staticClass:"common-avatar",attrs:{"open-delay":e.openDelay,disabled:e.tooltipDisabled,placement:e.tooltipPlacement}},[n("div",{staticClass:"common-avatar-transfer",attrs:{slot:"content"},slot:"content"},[e._t("default"),e._v(" "),n("p",[e._v(e._s(e.$L("昵称"))+": "+e._s(e.user.nickname))]),e._v(" "),n("p",[e._v(e._s(e.$L("职位/职称"))+": "+e._s(e.user.profession||"-"))]),e._v(" "),e.userId!=e.userid&&e.showIconMenu?n("div",{staticClass:"avatar-icons"},[n("Icon",{attrs:{type:"ios-chatbubbles"},on:{click:e.openDialog}})],1):e._e()],2),e._v(" "),n("div",{staticClass:"avatar-wrapper"},[e.showIcon?n("div",{class:["avatar-box",e.userId===e.userid||e.user.online?"online":""],style:e.boxStyle},[n("em",{style:e.spotStyle}),e._v(" "),e.showImg?n("EAvatar",{class:{"avatar-default":e.isDefault},attrs:{src:e.user.userimg,size:e.avatarSize}}):n("EAvatar",{staticClass:"avatar-text",attrs:{size:e.avatarSize}},[n("span",{style:e.spotStyle},[e._v(e._s(e.nickname))])])],1):e._e(),e._v(" "),e.showName?n("div",{staticClass:"avatar-name",style:e.nameStyle},[e._v(e._s(e.user.nickname))]):e._e()])]):e._e()}),[],!1,null,null,null).exports;var an=n(64720);function on(e){return on="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},on(e)}i.default.use(r.ZP),i.default.use(bt(),{modal:{checkEscClose:!0}}),i.default.use(vt),i.default.use(St),i.default.component("PageTitle",Bt),i.default.component("Loading",zt),i.default.component("AutoTip",Wt),i.default.component("TagInput",Ut),i.default.component("TableAction",Zt),i.default.component("QuickEdit",Jt),i.default.component("UserAvatar",rn),i.default.component("EAvatar",an.Avatar),i.default.component("ETooltip",an.Tooltip),i.default.component("EPopover",an.Popover),i.default.component("EDropdown",an.Dropdown),i.default.component("EDropdownMenu",an.DropdownMenu),i.default.component("EDropdownItem",an.DropdownItem);var sn=vt.prototype.push;vt.prototype.push=function(e){return sn.call(this,e).catch((function(e){return e}))};var ln=new vt({mode:"history",routes:k});bt().LoadingBar.config({color:"#3fcc25",failedColor:"#ff0000"}),ln.beforeEach((function(e,t,n){bt().LoadingBar.start(),n()})),ln.afterEach((function(){bt().LoadingBar.finish()})),i.default.prototype.goForward=function(e,t){"string"==typeof e&&(e={name:e}),!0===t?un.$router.replace(e).then((function(){})):un.$router.push(e).then((function(){}))},i.default.prototype.goBack=function(e){var t=$A.jsonParse(window.sessionStorage.__history__||"{}");$A.runNum(t["::count"])>2?un.$router.go("number"==typeof e?e:-1):un.$router.replace("object"===on(e)?e:{path:"/"}).then((function(){}))},i.default.prototype.$A=$A,i.default.prototype.$Electron=null,i.default.prototype.$Platform="web",i.default.prototype.$isMainElectron=!1,i.default.prototype.$isSubElectron=!1,i.default.config.productionTip=!1;var un=new i.default({el:"#app",router:ln,store:Nt,template:"",components:{App:C}});$A.goForward=un.goForward,$A.goBack=un.goBack,$A.getLanguage=un.getLanguage,$A.Message=un.$Message,$A.Notice=un.$Notice,$A.Modal=un.$Modal,$A.store=un.$store,$A.L=un.$L,$A.Electron=un.$Electron,$A.Platform=un.$Platform,$A.isMainElectron=un.$isMainElectron,$A.isSubElectron=un.$isSubElectron,$A.execMainDispatch=function(e,t){$A.isSubElectron&&$A.Electron.ipcRenderer.send("sendForwardMain",{channel:"dispatch",data:{action:e,data:t}})}},4142:e=>{e.exports=function(e){var t={begin:"`[\\s\\S]"};return{case_insensitive:!0,aliases:["ahk"],keywords:{keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",literal:"true false NOT AND OR",built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"},contains:[t,e.inherit(e.QUOTE_STRING_MODE,{contains:[t]}),e.COMMENT(";","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"variable",begin:"%[a-zA-Z0-9#_$@]+%"},{className:"built_in",begin:"^\\s*\\w+\\s*(,|%)"},{className:"title",variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{className:"meta",begin:"^\\s*#\\w+",end:"$",relevance:0},{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{begin:",\\s*,"}]}}},52423:e=>{e.exports=function(e){var t={variants:[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},n={begin:"\\$[A-z0-9_]+"},i={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},r={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:"ByRef Case Const ContinueCase ContinueLoop Default Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",built_in:"Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait",literal:"True False And Null Not Or"},contains:[t,n,i,r,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"comments include include-once NoTrayIcon OnAutoItStartRegister pragma compile RequireAdmin"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",keywords:{"meta-keyword":"include"},end:"$",contains:[i,{className:"meta-string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},i,t]},{className:"symbol",begin:"@[A-z0-9_]+"},{className:"function",beginKeywords:"Func",end:"$",illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[n,i,r]}]}]}}},40349:e=>{e.exports=function(e){var t={begin:/(?:[A-Z\_\.\-]+|--[a-zA-Z0-9_-]+)\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{begin:"@",end:"[{;]",illegal:/:/,contains:[{className:"keyword",begin:/\w+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,t]}]}}},8650:e=>{e.exports=function(e){var t={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{aliases:["golang"],keywords:t,illegal:"{e.exports=function(e){var t="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",n={className:"number",begin:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",relevance:0};return{aliases:["jsp"],keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n,{className:"meta",begin:"@[A-Za-z]+"}]}}},5489:e=>{e.exports=function(e){var t="[A-Za-z$_][0-9A-Za-z$_]*",n={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},i={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},r={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},a={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,r],subLanguage:"xml"}},o={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,r],subLanguage:"css"}},s={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,r]};r.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,o,s,i,e.REGEXP_MODE];var l=r.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{aliases:["js","jsx"],keywords:n,contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,o,s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,{begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:l}]}]},{className:"",begin:/\s/,end:/\s*/,skip:!0},{begin://,subLanguage:"xml",contains:[{begin:/<[A-Za-z0-9\\._:-]+\s*\/>/,skip:!0},{begin:/<[A-Za-z0-9\\._:-]+/,end:/(\/[A-Za-z0-9\\._:-]+|[A-Za-z0-9\\._:-]+\/)>/,skip:!0,contains:[{begin:/<[A-Za-z0-9\\._:-]+\s*\/>/,skip:!0},"self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:l}],illegal:/\[|%/},{begin:/\$[(.]/},e.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor get set",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}}},17410:e=>{e.exports=function(e){var t="([\\w-]+|@{[\\w-]+})",n=[],i=[],r=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},a=function(e,t,n){return{className:e,begin:t,relevance:n}},o={begin:"\\(",end:"\\)",contains:i,relevance:0};i.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r("'"),r('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},a("number","#[0-9A-Fa-f]+\\b"),o,a("variable","@@?[\\w-]+",10),a("variable","@{[\\w-]+}"),a("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},{className:"meta",begin:"!important"});var s=i.concat({begin:"{",end:"}",contains:n}),l={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(i)},u={begin:t+"\\s*:",returnBegin:!0,end:"[;}]",relevance:0,contains:[{className:"attribute",begin:t,end:":",excludeEnd:!0,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:i}}]},c={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:i,relevance:0}},d={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:s}},h={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:t,end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l,a("keyword","all\\b"),a("variable","@{[\\w-]+}"),a("selector-tag",t+"%?",0),a("selector-id","#"+t),a("selector-class","\\."+t,0),a("selector-tag","&",0),{className:"selector-attr",begin:"\\[",end:"\\]"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"\\(",end:"\\)",contains:s},{begin:"!important"}]};return n.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,c,d,u,h),{case_insensitive:!0,illegal:"[=>'/<($\"]",contains:n}}},67020:e=>{e.exports=function(e){return{aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^\\s*([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"quote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"^```w*s*$",end:"^```s*$"},{begin:"`.+?`"},{begin:"^( {4}|\t)",end:"$",relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}},51988:e=>{e.exports=function(e){var t={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},n={className:"meta",begin:/<\?(php)?|\?>/},i={className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},r={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{aliases:["php","php3","php4","php5","php6","php7"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[n]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:e.UNDERSCORE_IDENT_RE}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},n,{className:"keyword",begin:/\$this\b/},t,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",t,e.C_BLOCK_COMMENT_MODE,i,r]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},i,r]}}},15350:e=>{e.exports=function(e){var t={keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10",built_in:"Ellipsis NotImplemented",literal:"False None True"},n={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,end:/\}/,keywords:t,illegal:/#/},r={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,n],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,n],relevance:10},{begin:/(fr|rf|f)'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,n,i]},{begin:/(fr|rf|f)"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,n,i]},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},{begin:/(fr|rf|f)'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,i]},{begin:/(fr|rf|f)"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},a={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},o={className:"params",begin:/\(/,end:/\)/,contains:["self",n,a,r]};return i.contains=[r,a,n],{aliases:["py","gyp","ipython"],keywords:t,illegal:/(<\/|->|\?)|=>/,contains:[n,a,r,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,o,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}},86507:e=>{e.exports=function(e){var t="[A-Za-z$_][0-9A-Za-z$_]*",n={keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class public private protected get set super static implements enum export import declare type namespace abstract as from extends async await",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document any number boolean string void Promise"},i={className:"meta",begin:"@"+t},r={begin:"\\(",end:/\)/,keywords:n,contains:["self",e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.NUMBER_MODE]},a={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,r]},o={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},s={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},l={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,s],subLanguage:"xml"}},u={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,s],subLanguage:"css"}},c={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,s]};return s.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,u,c,o,e.REGEXP_MODE],{aliases:["ts"],keywords:n,contains:[{className:"meta",begin:/^\s*['"]use strict['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,u,c,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+e.IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.IDENT_RE},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:["self",e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}]}]}],relevance:0},{className:"function",begin:"function",end:/[\{;]/,excludeEnd:!0,keywords:n,contains:["self",e.inherit(e.TITLE_MODE,{begin:t}),a],illegal:/%/,relevance:0},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0,contains:["self",a]},{begin:/module\./,keywords:{built_in:"module"},relevance:0},{beginKeywords:"module",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+e.IDENT_RE,relevance:0},i,r]}}},283:e=>{e.exports=function(e){var t={endsWithParent:!0,illegal:/`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?(php)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]},{className:"tag",begin:"|$)",end:">",keywords:{name:"style"},contains:[t],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"|$)",end:">",keywords:{name:"script"},contains:[t],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml","vbscript"]}},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},t]}]}}},43705:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});const i={add:function(e,t){var n="toc".concat(t).concat(++this.index),i={anchor:n,level:t,text:e},r=this.tocItems;return i.level<=5&&r.push(i),n},reset:function(){this.tocItems=[],this.index=0},tocItems:[],index:0}},37352:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ke});var i={},r=[],a=Object.keys,o={},s={},l=/^(no-?highlight|plain|text)$/i,u=/\blang(?:uage)?-([\w-]+)\b/i,c=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,d="",h={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function f(e){return e.replace(/&/g,"&").replace(//g,">")}function p(e){return e.nodeName.toLowerCase()}function m(e,t){var n=e&&e.exec(t);return n&&0===n.index}function v(e){return l.test(e)}function g(e){var t,n={},i=Array.prototype.slice.call(arguments,1);for(t in e)n[t]=e[t];return i.forEach((function(e){for(t in e)n[t]=e[t]})),n}function b(e){var t=[];return function e(n,i){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?i+=r.nodeValue.length:1===r.nodeType&&(t.push({event:"start",offset:i,node:r}),i=e(r,i),p(r).match(/br|hr|img|input/)||t.push({event:"stop",offset:i,node:r}));return i}(e,0),t}function y(e){function t(e){return e&&e.source||e}function n(n,i){return new RegExp(t(n),"m"+(e.case_insensitive?"i":"")+(i?"g":""))}!function i(r,o){if(!r.compiled){if(r.compiled=!0,r.keywords=r.keywords||r.beginKeywords,r.keywords){var s={},l=function(t,n){e.case_insensitive&&(n=n.toLowerCase()),n.split(" ").forEach((function(e){var n=e.split("|");s[n[0]]=[t,n[1]?Number(n[1]):1]}))};"string"==typeof r.keywords?l("keyword",r.keywords):a(r.keywords).forEach((function(e){l(e,r.keywords[e])})),r.keywords=s}r.lexemesRe=n(r.lexemes||/\w+/,!0),o&&(r.beginKeywords&&(r.begin="\\b("+r.beginKeywords.split(" ").join("|")+")\\b"),r.begin||(r.begin=/\B|\b/),r.beginRe=n(r.begin),r.endSameAsBegin&&(r.end=r.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),r.end&&(r.endRe=n(r.end)),r.terminator_end=t(r.end)||"",r.endsWithParent&&o.terminator_end&&(r.terminator_end+=(r.end?"|":"")+o.terminator_end)),r.illegal&&(r.illegalRe=n(r.illegal)),null==r.relevance&&(r.relevance=1),r.contains||(r.contains=[]),r.contains=Array.prototype.concat.apply([],r.contains.map((function(e){return function(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map((function(t){return g(e,{variants:null},t)}))),e.cached_variants||e.endsWithParent&&[g(e)]||[e]}("self"===e?r:e)}))),r.contains.forEach((function(e){i(e,r)})),r.starts&&i(r.starts,o);var u=r.contains.map((function(e){return e.beginKeywords?"\\.?(?:"+e.begin+")\\.?":e.begin})).concat([r.terminator_end,r.illegal]).map(t).filter(Boolean);r.terminators=u.length?n(function(e,n){for(var i=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",o=0;o0&&(a+=n);l.length>0;){var u=i.exec(l);if(null==u){a+=l;break}a+=l.substring(0,u.index),l=l.substring(u.index+u[0].length),"\\"==u[0][0]&&u[1]?a+="\\"+String(Number(u[1])+s):(a+=u[0],"("==u[0]&&r++)}}return a}(u,"|"),!0):{exec:function(){return null}}}}(e)}function _(e,t,n,i){function r(e){return new RegExp(e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function a(e,t){if(m(e.endRe,t)){for(;e.endsParent&&e.parent;)e=e.parent;return e}if(e.endsWithParent)return a(e.parent,t)}function s(e,t){var n=v.case_insensitive?t[0].toLowerCase():t[0];return e.keywords.hasOwnProperty(n)&&e.keywords[n]}function l(e,t,n,i){var r='')+t+(n?"":d):t}function u(){C+=null!=b.subLanguage?function(){var e="string"==typeof b.subLanguage;if(e&&!o[b.subLanguage])return f(k);var t=e?_(b.subLanguage,k,!0,x[b.subLanguage]):w(k,b.subLanguage.length?b.subLanguage:void 0);return b.relevance>0&&(O+=t.relevance),e&&(x[b.subLanguage]=t.top),l(t.language,t.value,!1,!0)}():function(){var e,t,n,i;if(!b.keywords)return f(k);for(i="",t=0,b.lexemesRe.lastIndex=0,n=b.lexemesRe.exec(k);n;)i+=f(k.substring(t,n.index)),(e=s(b,n))?(O+=e[1],i+=l(e[0],f(n[0]))):i+=f(n[0]),t=b.lexemesRe.lastIndex,n=b.lexemesRe.exec(k);return i+f(k.substr(t))}(),k=""}function c(e){C+=e.className?l(e.className,"",!0):"",b=Object.create(e,{parent:{value:b}})}function p(e,t){if(k+=e,null==t)return u(),0;var i=function(e,t){var n,i;for(n=0,i=t.contains.length;n")+'"');return k+=t,t.length||1}var v=S(e);if(!v)throw new Error('Unknown language: "'+e+'"');y(v);var g,b=i||v,x={},C="";for(g=b;g!==v;g=g.parent)g.className&&(C=l(g.className,"",!0)+C);var k="",O=0;try{for(var T,D,E=0;b.terminators.lastIndex=E,T=b.terminators.exec(t);)D=p(t.substring(E,T.index),T[0]),E=T.index+D;for(p(t.substr(E)),g=b;g.parent;g=g.parent)g.className&&(C+=d);return{relevance:O,value:C,language:e,top:b}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{relevance:0,value:f(t)};throw e}}function w(e,t){t=t||h.languages||a(o);var n={relevance:0,value:f(e)},i=n;return t.filter(S).filter(O).forEach((function(t){var r=_(t,e,!1);r.language=t,r.relevance>i.relevance&&(i=r),r.relevance>n.relevance&&(i=n,n=r)})),i.language&&(n.second_best=i),n}function x(e){return h.tabReplace||h.useBR?e.replace(c,(function(e,t){return h.useBR&&"\n"===e?"
":h.tabReplace?t.replace(/\t/g,h.tabReplace):""})):e}function C(e){var t,n,i,a,o,l=function(e){var t,n,i,r,a=e.className+" ";if(a+=e.parentNode?e.parentNode.className:"",n=u.exec(a))return S(n[1])?n[1]:"no-highlight";for(t=0,i=(a=a.split(/\s+/)).length;t/g,"\n"):t=e,o=t.textContent,i=l?_(l,o,!0):w(o),(n=b(t)).length&&((a=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=i.value,i.value=function(e,t,n){var i=0,a="",o=[];function s(){return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset"}function u(e){a+=""}function c(e){("start"===e.event?l:u)(e.node)}for(;e.length||t.length;){var d=s();if(a+=f(n.substring(i,d[0].offset)),i=d[0].offset,d===e){o.reverse().forEach(u);do{c(d.splice(0,1)[0]),d=s()}while(d===e&&d.length&&d[0].offset===i);o.reverse().forEach(l)}else"start"===d[0].event?o.push(d[0].node):o.pop(),c(d.splice(0,1)[0])}return a+f(n.substr(i))}(n,b(a),o)),i.value=x(i.value),e.innerHTML=i.value,e.className=function(e,t,n){var i=t?s[t]:n,r=[e.trim()];return e.match(/\bhljs\b/)||r.push("hljs"),-1===e.indexOf(i)&&r.push(i),r.join(" ").trim()}(e.className,l,i.language),e.result={language:i.language,re:i.relevance},i.second_best&&(e.second_best={language:i.second_best.language,re:i.second_best.relevance}))}function k(){if(!k.called){k.called=!0;var e=document.querySelectorAll("pre code");r.forEach.call(e,C)}}function S(e){return e=(e||"").toLowerCase(),o[e]||o[s[e]]}function O(e){var t=S(e);return t&&!t.disableAutodetect}i.highlight=_,i.highlightAuto=w,i.fixMarkup=x,i.highlightBlock=C,i.configure=function(e){h=g(h,e)},i.initHighlighting=k,i.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",k,!1),addEventListener("load",k,!1)},i.registerLanguage=function(e,t){var n=o[e]=t(i);n.aliases&&n.aliases.forEach((function(t){s[t]=e}))},i.listLanguages=function(){return a(o)},i.getLanguage=S,i.autoDetection=O,i.inherit=g,i.IDENT_RE="[a-zA-Z]\\w*",i.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",i.NUMBER_RE="\\b\\d+(\\.\\d+)?",i.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",i.BINARY_NUMBER_RE="\\b(0b[01]+)",i.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",i.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},i.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[i.BACKSLASH_ESCAPE]},i.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[i.BACKSLASH_ESCAPE]},i.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},i.COMMENT=function(e,t,n){var r=i.inherit({className:"comment",begin:e,end:t,contains:[]},n||{});return r.contains.push(i.PHRASAL_WORDS_MODE),r.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),r},i.C_LINE_COMMENT_MODE=i.COMMENT("//","$"),i.C_BLOCK_COMMENT_MODE=i.COMMENT("/\\*","\\*/"),i.HASH_COMMENT_MODE=i.COMMENT("#","$"),i.NUMBER_MODE={className:"number",begin:i.NUMBER_RE,relevance:0},i.C_NUMBER_MODE={className:"number",begin:i.C_NUMBER_RE,relevance:0},i.BINARY_NUMBER_MODE={className:"number",begin:i.BINARY_NUMBER_RE,relevance:0},i.CSS_NUMBER_MODE={className:"number",begin:i.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},i.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[i.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[i.BACKSLASH_ESCAPE]}]},i.TITLE_MODE={className:"title",begin:i.IDENT_RE,relevance:0},i.UNDERSCORE_TITLE_MODE={className:"title",begin:i.UNDERSCORE_IDENT_RE,relevance:0},i.METHOD_GUARD={begin:"\\.\\s*"+i.UNDERSCORE_IDENT_RE,relevance:0};const T=i;var D=n(5489),E=n.n(D),$=n(53049),M=n.n($),P=n(40349),I=n.n(P),j=n(17410),A=n.n(j),N=n(8650),L=n.n(N),F=n(67020),R=n.n(F),B=n(51988),V=n.n(B),z=n(15350),H=n.n(z),W=n(86507),q=n.n(W),U=n(283),K=n.n(U),G=n(4142),Y=n.n(G),Z=n(52423),X=n.n(Z),J={javascript:E(),java:M(),css:I(),less:A(),markdown:R(),go:L(),php:V(),python:H(),typescript:q(),xml:K(),autohotkey:Y(),auto:X()};Object.keys(J).forEach((function(e){T.registerLanguage(e,J[e])}));const Q=T;var ee=n(43705);void 0===window._goTocAction&&(window._goTocAction=function(e,t,n){var i=$A(e).parents(".markdown-preview");if(i){var r=i.find("h"+t+'[toc-id="'+n+'"]');r&&i.animate({scrollTop:r.offset().top-i.offset().top+i.scrollTop()})}});var te={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}|~{3,})([^`~\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:me,table:me,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/};function ne(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||we.defaults,this.rules=te.normal,this.options.pedantic?this.rules=te.pedantic:this.options.gfm&&(this.rules=te.gfm)}te._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,te._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,te.def=de(te.def).replace("label",te._label).replace("title",te._title).getRegex(),te.bullet=/(?:[*+-]|\d{1,9}\.)/,te.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,te.item=de(te.item,"gm").replace(/bull/g,te.bullet).getRegex(),te.list=de(te.list).replace(/bull/g,te.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+te.def.source+")").getRegex(),te._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",te._comment=//,te.html=de(te.html,"i").replace("comment",te._comment).replace("tag",te._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),te.paragraph=de(te._paragraph).replace("hr",te.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",te._tag).getRegex(),te.blockquote=de(te.blockquote).replace("paragraph",te.paragraph).getRegex(),te.normal=ve({},te),te.gfm=ve({},te.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),te.pedantic=ve({},te.normal,{html:de("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",te._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:me,paragraph:de(te.normal._paragraph).replace("hr",te.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",te.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()}),ne.rules=te,ne.lex=function(e,t){return new ne(t).lex(e)},ne.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},ne.prototype.token=function(e,t){var n,i,r,a,o,s,l,u,c,d,h,f,p,m,v,g;for(e=e.replace(/^ +$/gm,"");e;)if((r=this.rules.newline.exec(e))&&(e=e.substring(r[0].length),r[0].length>1&&this.tokens.push({type:"space"})),r=this.rules.code.exec(e)){var b=this.tokens[this.tokens.length-1];e=e.substring(r[0].length),b&&"paragraph"===b.type?b.text+="\n"+r[0].trimRight():(r=r[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",codeBlockStyle:"indented",text:this.options.pedantic?r:be(r,"\n")}))}else if(r=this.rules.fences.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"code",lang:r[2]?r[2].trim():r[2],text:r[3]||""});else if(r=this.rules.heading.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"heading",depth:r[1].length,text:r[2]});else if((r=this.rules.nptable.exec(e))&&(s={type:"table",header:ge(r[1].replace(/^ *| *\| *$/g,"")),align:r[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:r[3]?r[3].replace(/\n$/,"").split("\n"):[]}).header.length===s.align.length){for(e=e.substring(r[0].length),h=0;h ?/gm,""),this.token(r,t),this.tokens.push({type:"blockquote_end"});else if(r=this.rules.list.exec(e)){for(e=e.substring(r[0].length),l={type:"list_start",ordered:m=(a=r[2]).length>1,start:m?+a:"",loose:!1},this.tokens.push(l),u=[],n=!1,p=(r=r[0].match(this.rules.item)).length,h=0;h1?1===o.length:o.length>1||this.options.smartLists&&o!==a)&&(e=r.slice(h+1).join("\n")+e,h=p-1)),i=n||/\n\n(?!\s*$)/.test(s),h!==p-1&&(n="\n"===s.charAt(s.length-1),i||(i=n)),i&&(l.loose=!0),g=void 0,(v=/^\[[ xX]\] /.test(s))&&(g=" "!==s[1],s=s.replace(/^\[[ xX]\] +/,"")),c={type:"list_item_start",task:v,checked:g,loose:i},u.push(c),this.tokens.push(c),this.token(s,!1),this.tokens.push({type:"list_item_end"});if(l.loose)for(p=u.length,h=0;h?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:me,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*<\[])\*(?!\*)|^_([^\s<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s<"][\s\S]*?[^\s\*])\*(?!\*|[^\spunctuation])|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:me,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\?@\\[^_{|}~",ie.em=de(ie.em).replace(/punctuation/g,ie._punctuation).getRegex(),ie._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,ie._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,ie._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,ie.autolink=de(ie.autolink).replace("scheme",ie._scheme).replace("email",ie._email).getRegex(),ie._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,ie.tag=de(ie.tag).replace("comment",te._comment).replace("attribute",ie._attribute).getRegex(),ie._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,ie._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,ie._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,ie.link=de(ie.link).replace("label",ie._label).replace("href",ie._href).replace("title",ie._title).getRegex(),ie.reflink=de(ie.reflink).replace("label",ie._label).getRegex(),ie.normal=ve({},ie),ie.pedantic=ve({},ie.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:de(/^!?\[(label)\]\((.*?)\)/).replace("label",ie._label).getRegex(),reflink:de(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ie._label).getRegex()}),ie.gfm=ve({},ie.normal,{escape:de(ie.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\/i.test(a[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(a[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(a[0])&&(this.inRawBlock=!1),e=e.substring(a[0].length),s+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(a[0]):ue(a[0]):a[0];else if(a=this.rules.link.exec(e)){var l=ye(a[2],"()");if(l>-1){var u=4+a[1].length+l;a[2]=a[2].substring(0,l),a[0]=a[0].substring(0,u).trim(),a[3]=""}e=e.substring(a[0].length),this.inLink=!0,i=a[2],this.options.pedantic?(t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i))?(i=t[1],r=t[3]):r="":r=a[3]?a[3].slice(1,-1):"",i=i.trim().replace(/^<([\s\S]*)>$/,"$1"),s+=this.outputLink(a,{href:re.escapes(i),title:re.escapes(r)}),this.inLink=!1}else if((a=this.rules.reflink.exec(e))||(a=this.rules.nolink.exec(e))){if(e=e.substring(a[0].length),t=(a[2]||a[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){s+=a[0].charAt(0),e=a[0].substring(1)+e;continue}this.inLink=!0,s+=this.outputLink(a,t),this.inLink=!1}else if(a=this.rules.strong.exec(e))e=e.substring(a[0].length),s+=this.renderer.strong(this.output(a[4]||a[3]||a[2]||a[1]));else if(a=this.rules.em.exec(e))e=e.substring(a[0].length),s+=this.renderer.em(this.output(a[6]||a[5]||a[4]||a[3]||a[2]||a[1]));else if(a=this.rules.code.exec(e))e=e.substring(a[0].length),s+=this.renderer.codespan(ue(a[2].trim(),!0));else if(a=this.rules.br.exec(e))e=e.substring(a[0].length),s+=this.renderer.br();else if(a=this.rules.del.exec(e))e=e.substring(a[0].length),s+=this.renderer.del(this.output(a[1]));else if(a=this.rules.autolink.exec(e))e=e.substring(a[0].length),i="@"===a[2]?"mailto:"+(n=ue(this.mangle(a[1]))):n=ue(a[1]),s+=this.renderer.link(i,null,n);else if(this.inLink||!(a=this.rules.url.exec(e))){if(a=this.rules.text.exec(e))e=e.substring(a[0].length),this.inRawBlock?s+=this.renderer.text(this.options.sanitize?this.options.sanitizer?this.options.sanitizer(a[0]):ue(a[0]):a[0]):s+=this.renderer.text(ue(this.smartypants(a[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else{if("@"===a[2])i="mailto:"+(n=ue(a[0]));else{do{o=a[0],a[0]=this.rules._backpedal.exec(a[0])[0]}while(o!==a[0]);n=ue(a[0]),i="www."===a[1]?"http://"+n:n}e=e.substring(a[0].length),s+=this.renderer.link(i,null,n)}return s},re.escapes=function(e){return e?e.replace(re.rules._escapes,"$1"):e},re.prototype.outputLink=function(e,t){var n=t.href,i=t.title?ue(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,i,this.output(e[1])):this.renderer.image(n,i,ue(e[1]))},re.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},re.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",i=e.length,r=0;r.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},ae.prototype.code=function(e,t,n){var i=(t||"").match(/\S*/)[0];if(this.options.highlight){var r=this.options.highlight(e,i);null!=r&&r!==e&&(n=!0,e=r)}return i?'
'+(n?e:ue(e,!0))+"
\n":"
"+(n?e:ue(e,!0))+"
"},ae.prototype.blockquote=function(e){return"
\n"+e+"
\n"},ae.prototype.html=function(e){return e},ae.prototype.heading=function(e,t,n,i){var r=ee.Z.add(e,t);return this.options.headerIds?"'+e+"\n":"'+e+"\n"},ae.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"},ae.prototype.list=function(e,t,n){var i=t?"ol":"ul";return"<"+i+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},ae.prototype.listitem=function(e){var t="";return/\/.test(e)&&(t="list-item-checkbox",/checked/.test(e)&&(t+=" list-item-checkbox-checked")),'
  • ').concat(e,"
  • \n")},ae.prototype.checkbox=function(e){return" "},ae.prototype.paragraph=function(e){return"

    "+e+"

    \n"},ae.prototype.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},ae.prototype.tablerow=function(e){return"\n"+e+"\n"},ae.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"},ae.prototype.strong=function(e){return""+e+""},ae.prototype.em=function(e){return""+e+""},ae.prototype.codespan=function(e){return""+e+""},ae.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},ae.prototype.del=function(e){return""+e+""},ae.prototype.link=function(e,t,n){if(null===(e=he(this.options.sanitize,this.options.baseUrl,e)))return n;var i='"},ae.prototype.image=function(e,t,n){if(null===(e=he(this.options.sanitize,this.options.baseUrl,e)))return n;var i=''+n+'":">"},ae.prototype.text=function(e){return e},oe.prototype.strong=oe.prototype.em=oe.prototype.codespan=oe.prototype.del=oe.prototype.text=function(e){return e},oe.prototype.link=oe.prototype.image=function(e,t,n){return""+n},oe.prototype.br=function(){return""},se.parse=function(e,t){return new se(t).parse(e)},se.prototype.parse=function(e){this.inline=new re(e.links,this.options),this.inlineText=new re(e.links,ve({},this.options,{renderer:new oe})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},se.prototype.next=function(){return this.token=this.tokens.pop(),this.token},se.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},se.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},se.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,ce(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,i,r="",a="";for(n="",e=0;e?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t)){var n=t;do{this.seen[n]++,t=n+"-"+this.seen[n]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t},ue.escapeTest=/[&<>"']/,ue.escapeReplace=/[&<>"']/g,ue.replacements={"&":"&","<":"<",">":">",'"':""","'":"'"},ue.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/,ue.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g;var fe={},pe=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function me(){}function ve(e){for(var t,n,i=1;i=0&&"\\"===n[r];)i=!i;return i?"|":" |"})).split(/ \|/),i=0;if(n.length>t)n.splice(t);else for(;n.lengthAn error occurred:

    "+ue(e.message+"",!0)+"
    ";throw e}}me.exec=me,we.options=we.setOptions=function(e){return ve(we.defaults,e),we},we.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new ae,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}},we.defaults=we.getDefaults(),we.Parser=se,we.parser=se.parse,we.Renderer=ae,we.TextRenderer=oe,we.Lexer=ne,we.lexer=ne.lex,we.InlineLexer=re,we.inlineLexer=re.output,we.Slugger=le,we.parse=we;const xe=we;Q.initHighlightingOnLoad();var Ce=new xe.Renderer;const ke=xe.setOptions({renderer:Ce,gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,smartLists:!0,highlight:function(e){return Q.highlightAuto(e).value}})},90091:(e,t,n)=>{function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}!function(e,t,n){e.systemInfo=e.systemInfo||{},t.extend({isArray:function(e){return"object"==i(e)&&"[object array]"==Object.prototype.toString.call(e).toLowerCase()&&"number"==typeof e.length},isJson:function(e){return"object"==i(e)&&"[object object]"==Object.prototype.toString.call(e).toLowerCase()&&void 0===e.length},inArray:function(e,t){return!!this.isArray(t)&&t.includes(e)},randNum:function(e,t){var n=t-e,i=Math.random();return e+Math.round(i*n)},last:function(e){var t=!1;return"object"===i(e)&&e.length>0&&(t=e[e.length-1]),t},strExists:function(e,t){var i=arguments.length>2&&arguments[2]!==n&&arguments[2];return e+="",t+="",!0!==i&&(e=e.toLowerCase(),t=t.toLowerCase()),-1!==e.indexOf(t)},leftExists:function(e,t){var i=arguments.length>2&&arguments[2]!==n&&arguments[2];return e+="",t+="",!0!==i&&(e=e.toLowerCase(),t=t.toLowerCase()),e.substring(0,t.length)===t},leftDelete:function(e,t){var i=arguments.length>2&&arguments[2]!==n&&arguments[2];return e+="",t+="",this.leftExists(e,t,i)&&(e=e.substring(t.length)),e||""},rightExists:function(e,t){var i=arguments.length>2&&arguments[2]!==n&&arguments[2];return e+="",t+="",!0!==i&&(e=e.toLowerCase(),t=t.toLowerCase()),e.substring(e.length-t.length)===t},getMiddle:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:null,i=arguments.length>2&&arguments[2]!==n?arguments[2]:null;return e=e.toString(),this.isHave(t)&&this.strExists(e,t)&&(e=e.substring(e.indexOf(t)+t.length)),this.isHave(i)&&this.strExists(e,i)&&(e=e.substring(0,e.indexOf(i))),e},subString:function(e,t,n){return e+="",this.isHave(n)||(n=e.length),e.substring(t,n)},randomString:function(e){e=e||32;for(var t="ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678oOLl9gqVvUuI1",n=t.length,i="",r=0;r1&&arguments[1]!==n?arguments[1]:null,i=Number(e);if(i+""=="NaN"&&(i=0),t&&/^[0-9]*[1-9][0-9]*$/.test(t)){var r=(i=i.toFixed(t)).indexOf(".");if(r<0){i+=".";for(var a=0;a1&&arguments[1]!==n&&arguments[1];return"string"==typeof e&&this.strExists(e,"-")&&(e=e.replace(/-/g,"/")),!0===t?Math.round(new Date(e).getTime()/1e3):new Date(e)})),zeroFill:function(e,t,n){if((e+="").length>=t)return e;for(var i="",r=0;r86400){var i=Math.floor(n/86400),r=Math.ceil((n-86400*i)/3600);return r>0?i+"天"+r+"小时":i+"天"}return n>3600?Math.ceil(n/3600)+"小时":n>60?Math.ceil(n/60)+"分钟":n>10?n+"秒":"刚刚"},isMobile:function(e){return/^1([3456789])\d{9}$/.test(e)},isEmail:function(e){return/^[a-z0-9][a-z\.0-9-_]+@[a-z0-9_-]+(?:\.[a-z]{0,3}\.[a-z]{0,2}|\.[a-z]{0,3}|\.[a-z]{0,2})$/.test(e)},getDistance:function(e,t,n,i){var r,a,o,s,l,u=3.14159265359,c=6.28318530712,d=.01745329252,h=6370693.5;return r=t*d,a=i*d,(l=e*d-n*d)>u?l=c-l:l<-u&&(l=c+l),o=h*Math.cos(r)*l,s=h*(r-a),Math.sqrt(o*o+s*s).toFixed(0)},setTile:function(e){document.title=e;var t=navigator.userAgent.toLowerCase();if(/iphone|ipad|ipod/.test(t)){var n=document.createElement("iframe");n.style.display="none",n.setAttribute("src","/favicon.ico");n.addEventListener("load",(function e(){setTimeout((function(){n.removeEventListener("load",e),document.body.removeChild(n)}),0)})),document.body.appendChild(n)}},cloneJSON:function(e){return"object"!==i(e)||null===e?e:$A.jsonParse($A.jsonStringify(e))},jsonParse:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:n;if(null===e)return t||{};if("object"===i(e))return e;try{return JSON.parse(e.replace(/\n/g,"\\n").replace(/\r/g,"\\r"))}catch(e){return t||{}}},jsonStringify:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:n;if("object"!==i(e))return e;try{return JSON.stringify(e)}catch(e){return t||""}},resize:function(e,t){var n=$A(e);if(0!==n.length)var i=parseInt(n.outerHeight()),r=parseInt(n.outerWidth()),a=setInterval((function(){0===n.length&&clearInterval(a);var e=parseInt(n.outerHeight()),o=parseInt(n.outerWidth());i===e&&r===o||(i=e,r=o,console.log(r,i),"function"==typeof t&&t())}),250)},isIos:function(){var t=void 0!==e&&e.navigator.userAgent.toLowerCase();return t&&/iphone|ipad|ipod|ios/.test(t)},isAndroid:function(){var t=void 0!==e&&e.navigator.userAgent.toLowerCase();return t&&t.indexOf("android")>0},isWeixin:function(){return(void 0!==e&&e.navigator.userAgent.toLowerCase()).match(/MicroMessenger/i)+""=="micromessenger"},isChrome:function(){return(void 0!==e&&e.navigator.userAgent.toLowerCase()).match(/Chrome/i)+""=="chrome"},isDesktop:function(){return!(void 0!==e&&e.navigator.userAgent).match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)},getObject:function(e,t){var n=e;return 0===this.count(e)||0===this.count(t)?"":(t.replace(/,/g,"|").replace(/\./g,"|").split("|").some((function(e){n=void 0===n[e]?"":n[e]})),n)},count:function(e){try{if(void 0===e)return 0;if("number"==typeof e&&(e+=""),"number"==typeof e.length)return e.length;var t,n=0;for(t in e)n++;return n}catch(e){return 0}},objImplode:function(e){var t=this;if(null===e)return"";var n="";return $A.each(e,(function(e,r){null!==r&&("object"===i(r)&&t.count(r)>0?n+=t.objImplode(r):n+=String(r))})),n.replace(/\s/g,"").replace(/undefined/g,"")},urlParameter:function(e){var t=this.urlParameterAll();return void 0===e?t:t[e]},urlParameterAll:function(){var t=e.location.search||"",n=[];this.strExists(t,"?")&&(n=this.getMiddle(t,"?").split("&"));for(var i={},r=0;r=2){for(var i=encodeURIComponent(t)+"=",r=n[1].split(/[&;]/g),a=r.length;a-- >0;)-1!==r[a].lastIndexOf(i,0)&&r.splice(a,1);return n[0]+(r.length>0?"?"+r.join("&"):"")}return e},urlAddParams:function(e,t){if($A.isJson(t))for(var n in e&&(e=this.removeURLParameter(e,Object.keys(t))),e+="",e+=-1===e.indexOf("?")?"?":"",t)t.hasOwnProperty(n)&&(e+="&"+n+"="+t[n]);return e.replace("?&","?")},stringConnect:function(){for(var e=null,t="",n=arguments.length,i=new Array(n),r=0;r0&&(e=e[0]);var n="object"===i(e.$el)?$A(e.$el):$A(e);if(0!==n.length){var r=n[0];if("INPUT"!=r.tagName&&"TEXTAREA"!=r.tagName&&(n=0===n.find("input").length?n.find("textarea"):n.find("input")),0!==n.length&&("INPUT"==(r=n[0]).tagName||"TEXTAREA"==r.tagName)){var a=n.val(),o=r,s=o.selectionStart,l=o.selectionEnd;n.val("".concat(a.substring(0,s)).concat(t).concat(a.substring(l,a.length))),r.dispatchEvent(new Event("input")),setTimeout((function(){if(r.setSelectionRange){var e=a.substring(0,s).length+t.length;r.focus(),r.setSelectionRange(e,e)}}),10)}}}},iOSKeyboardFixer:function(){this.isIos()&&(document.body.scrollTop=document.body.scrollTop+1,document.body.scrollTop=document.body.scrollTop-1)},loadScript:function(t,n){var i=this;if(t=$A.originUrl(t),this.rightExists(t,".css"))this.loadCss(t,n);else if(!0!==this.__loadScript[t]){var r=document.createElement("script");r.type="text/javascript",r.readyState?r.onreadystatechange=function(){"loaded"!==r.readyState&&"complete"!==r.readyState||(r.onreadystatechange=null,i.__loadScript[t]=!0,"function"==typeof n&&n(null))}:(r.onload=function(){i.__loadScript[t]=!0,"function"==typeof n&&n(null)},r.onerror=function(e){"function"==typeof n&&n(e)}),this.rightExists(t,".js")?r.src=t+"?hash="+e.systemInfo.version:r.src=t,document.body.appendChild(r)}else"function"==typeof n&&n(null)},loadScriptS:function(e,t){var n=this,i=0;this.loadScript(e[0],(function r(){++i&"]/g,(function(e){return{"<":"<",">":">","&":"&",'"':"""}[e]})):""},getDomain:function(e){var t=(e+"").match(/http(s)?:\/\/([^\/]+)/i);return null!=t&&t.length>0?t[2]:""}}),t.extend({setStorage:function(e,t){return this.storage(e,t)},getStorage:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:null,i=this.storage(e);return i||t},getStorageString:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:"",i=this.storage(e);return"string"==typeof i||"number"==typeof i?i:t},getStorageInt:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:0,i=this.storage(e);return"number"==typeof i?i:t},getStorageBoolean:function(e){var t=arguments.length>1&&arguments[1]!==n&&arguments[1],i=this.storage(e);return"boolean"==typeof i?i:t},getStorageArray:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:[],i=this.storage(e);return this.isArray(i)?i:t},getStorageJson:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:{},i=this.storage(e);return this.isJson(i)?i:t},storage:function(e,t){if(e){var n="__state__";if("cache"===e.substring(0,5)&&(n="__state:"+e+"__"),void 0===t)return this.loadFromlLocal(e,"",n);this.savaToLocal(e,t,n)}},savaToLocal:function(t,n,i){try{void 0===i&&(i="__seller__");var r=e.localStorage[i];(r=r?JSON.parse(r):{})[t]=n,e.localStorage[i]=JSON.stringify(r)}catch(e){}},loadFromlLocal:function(t,n,i){try{void 0===i&&(i="__seller__");var r=e.localStorage[i];return r&&((r=JSON.parse(r))&&void 0!==r[t])?r[t]:n}catch(e){return n}}}),t.extend({serializeObject:function(e,n){if("string"==typeof e)return e;var r,a=[];function o(e){if(n.length>0){for(var t="",i=0;i0&&a.push(u.join("&"))}else null===e[l]?a.push(o(l)+"="):"object"===i(e[l])?((r=n.slice()).push(l),""!==(u=t.serializeObject(e[l],r))&&a.push(u)):void 0!==e[l]&&""!==e[l]?a.push(o(l)+"="+s(e[l])):""===e[l]&&a.push(o(l))}return a.join("&")},globalAjaxOptions:{},ajaxSetup:function(e){e.type&&(e.method=e.type),t.each(e,(function(e,n){t.globalAjaxOptions[e]=n}))},_jsonpRequests:0,ihttp:function(i){var r={method:"GET",data:!1,async:!0,cache:!0,user:"",password:"",headers:{},xhrFields:{},statusCode:{},processData:!0,dataType:"text",contentType:"application/x-www-form-urlencoded",timeout:0},a=["beforeSend","error","complete","success","statusCode"];function o(e,n,r){var a=arguments;e&&t(document).trigger(e,n),r&&(r in t.globalAjaxOptions&&t.globalAjaxOptions[r](a[3],a[4],a[5],a[6]),i[r]&&i[r](a[3],a[4],a[5],a[6]))}i.type&&(i.method=i.type),t.each(t.globalAjaxOptions,(function(e,t){a.indexOf(e)<0&&(r[e]=t)})),t.each(r,(function(e,t){e in i||(i[e]=t)})),i.url||(i.url=e.location.toString());var s,l=i.url.indexOf("?")>=0?"&":"?",u=i.method.toUpperCase();"GET"!==u&&"HEAD"!==u&&"OPTIONS"!==u&&"DELETE"!==u||!i.data||(s="string"==typeof i.data?i.data.indexOf("?")>=0?i.data.split("?")[1]:i.data:t.serializeObject(i.data)).length&&(i.url+=l+s,"?"===l&&(l="&"));if("json"===i.dataType&&i.url.indexOf("callback=")>=0){var c,d="f7jsonp_"+Date.now()+t._jsonpRequests++,h=i.url.split("callback="),f=h[0]+"callback="+d;if(h[1].indexOf("&")>=0){var p=h[1].split("&").filter((function(e){return e.indexOf("=")>0})).join("&");p.length>0&&(f+="&"+p)}var m=document.createElement("script");return m.type="text/javascript",m.onerror=function(){clearTimeout(c),o(n,n,"error",null,"scripterror"),o("ajaxComplete ajax:complete",{scripterror:!0},"complete",null,"scripterror")},m.src=f,e[d]=function(t){clearTimeout(c),o(n,n,"success",t),m.parentNode.removeChild(m),m=null,delete e[d]},document.querySelector("head").appendChild(m),void(i.timeout>0&&(c=setTimeout((function(){m.parentNode.removeChild(m),m=null,o(n,n,"error",null,"timeout")}),i.timeout)))}"GET"!==u&&"HEAD"!==u&&"OPTIONS"!==u&&"DELETE"!==u||!1===i.cache&&(i.url+=l+"_nocache="+Date.now());var v=new XMLHttpRequest;v.requestUrl=i.url,v.requestParameters=i,v.open(u,i.url,i.async,i.user,i.password);var g,b=null;if(("POST"===u||"PUT"===u||"PATCH"===u)&&i.data)if(i.processData)if([ArrayBuffer,Blob,Document,FormData].indexOf(i.data.constructor)>=0)b=i.data;else{var y="---------------------------"+Date.now().toString(16);"multipart/form-data"===i.contentType?v.setRequestHeader("Content-Type","multipart/form-data; boundary="+y):v.setRequestHeader("Content-Type",i.contentType),b="";var _=t.serializeObject(i.data);if("multipart/form-data"===i.contentType){y="---------------------------"+Date.now().toString(16),_=_.split("&");for(var w=[],x=0;x<_.length;x++)w.push('Content-Disposition: form-data; name="'+_[x].split("=")[0]+'"\r\n\r\n'+_[x].split("=")[1]+"\r\n");b="--"+y+"\r\n"+w.join("--"+y+"\r\n")+"--"+y+"--\r\n"}else b=_}else b=i.data;return i.headers&&t.each(i.headers,(function(e,t){v.setRequestHeader(e,t)})),void 0===i.crossDomain&&(i.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(i.url)&&RegExp.$2!==e.location.host),i.crossDomain||v.setRequestHeader("X-Requested-With","XMLHttpRequest"),i.xhrFields&&t.each(i.xhrFields,(function(e,t){v[e]=t})),v.onload=function(e){var n;if(g&&clearTimeout(g),v.status>=200&&v.status<300||0===v.status)if("json"===i.dataType)try{n=JSON.parse(v.responseText),o("ajaxSuccess ajax:success",{xhr:v},"success",n,v.status,v)}catch(e){console.error(e),o("ajaxError ajax:error",{xhr:v,parseerror:!0},"error",v,"parseerror")}else n="text"===v.responseType||""===v.responseType?v.responseText:v.response,o("ajaxSuccess ajax:success",{xhr:v},"success",n,v.status,v);else o("ajaxError ajax:error",{xhr:v},"error",v,v.status);i.statusCode&&(t.globalAjaxOptions.statusCode&&t.globalAjaxOptions.statusCode[v.status]&&t.globalAjaxOptions.statusCode[v.status](v),i.statusCode[v.status]&&i.statusCode[v.status](v)),o("ajaxComplete ajax:complete",{xhr:v},"complete",v,v.status)},v.onerror=function(e){g&&clearTimeout(g),o("ajaxError ajax:error",{xhr:v},"error",v,v.status),o("ajaxComplete ajax:complete",{xhr:v,error:!0},"complete",v,"error")},o("ajaxStart ajax:start",{xhr:v},"start",v),o(n,n,"beforeSend",v),i.timeout>0&&(v.onabort=function(){g&&clearTimeout(g)},g=setTimeout((function(){v.abort(),o("ajaxError ajax:error",{xhr:v,timeout:!0},"error",v,"timeout"),o("ajaxComplete ajax:complete",{xhr:v,timeout:!0},"complete",v,"timeout")}),i.timeout)),v.send(b),v}}),t.extend({ajaxc:function(e){return!!e&&(void 0!==e.url&&(void 0===e.data&&(e.data={}),void 0===e.cache&&(e.cache=!1),void 0===e.method&&(e.method="GET"),void 0===e.timeout&&(e.timeout=3e4),void 0===e.dataType&&(e.dataType="json"),void 0===e.before&&(e.before=function(){}),void 0===e.complete&&(e.complete=function(){}),void 0===e.after&&(e.after=function(){}),void 0===e.success&&(e.success=function(){}),void 0===e.error&&(e.error=function(){}),void 0===e.header&&(e.header={}),e.before(),void $A.ihttp({url:e.url,data:e.data,cache:e.cache,headers:e.header,method:e.method.toUpperCase(),contentType:"OPTIONS",crossDomain:!0,dataType:e.dataType,timeout:e.timeout,success:function(t,n,i){e.complete(),e.success(t,n,i),e.after(!0)},error:function(t,n){e.complete(),e.error(t,n),e.after(!1)}})))}}),e.$A=t}(window,window.$=window.jQuery=n(19755))},92693:()=>{!function(e){var t=e.$A;t.extend({apiUrl:function(t){if("//"===t.substring(0,2)||"http://"===t.substring(0,7)||"https://"===t.substring(0,8)||"ftp://"===t.substring(0,6)||"/"===t.substring(0,1))return t;for(t="string"==typeof e.systemInfo.apiUrl?e.systemInfo.apiUrl+t:e.location.origin+"/api/"+t;-1!==t.indexOf("/../");)t=t.replace(/\/(((?!\/).)*)\/\.\.\//,"/");return t},originUrl:function(t){if("//"===t.substring(0,2)||"http://"===t.substring(0,7)||"https://"===t.substring(0,8)||"ftp://"===t.substring(0,6)||"/"===t.substring(0,1))return t;for(t="string"==typeof e.systemInfo.origin?e.systemInfo.origin+t:e.location.origin+"/"+t;-1!==t.indexOf("/../");)t=t.replace(/\/(((?!\/).)*)\/\.\.\//,"/");return t},projectParameterTemplate:function(e){return{project_id:e,card:!0,cardInit:!1,chat:!1,showMy:!0,showHelp:!0,showUndone:!0,showCompleted:!1,completedTask:!1}},formatWebsocketMessageDetail:function(e){if($A.isJson(e))for(var t in e)e.hasOwnProperty(t)&&(e[t]=$A.formatWebsocketMessageDetail(e[t]));else $A.isArray(e)?e.forEach((function(t,n){e[n]=$A.formatWebsocketMessageDetail(t)})):"string"==typeof e&&(e=e.replace(/\{\{RemoteURL\}\}/g,this.apiUrl("../")));return e},formatTime:function(e){var t=Math.round($A.Date(e).getTime()/1e3);return($A.formatDate("Ymd")===$A.formatDate("Ymd",t)?$A.formatDate("H:i",t):$A.formatDate("Y")===$A.formatDate("Y",t)?$A.formatDate("m-d",t):$A.formatDate("Y-m-d",t))||""},formatBit:function(e){return(e=+e)>9?e:"0"+e},formatSeconds:function(e){var t,n=Math.floor(e/86400),i=Math.floor(e%86400/3600),r=Math.floor(e%86400%3600/60),a=Math.floor(e%86400%3600%60);return n>0?t=i>0?n+"d,"+this.formatBit(i)+"h":r>0?n+"d,"+this.formatBit(r)+"min":a>0?n+"d,"+this.formatBit(a)+"s":n+"d":i>0?t=this.formatBit(i)+":"+this.formatBit(r)+":"+this.formatBit(a):r>0?t=this.formatBit(r)+":"+this.formatBit(a):a>0&&(t=this.formatBit(a)+"s"),t},countDownFormat:function(e,t){var n=Math.round(this.Date(e).getTime()/1e3)-t;return n<604800&&n>0?this.formatSeconds(n):n<=0?"-"+this.formatSeconds(-1*n):this.formatTime(e)},getData:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=new Date,i=n.getDay(),r=n.getDate(),a=n.getMonth(),o=n.getYear();o+=o<2e3?1900:0;var s=new Date;s.setDate(1),s.setMonth(s.getMonth()-1);var l=s.getMonth(),u=function(){var e=0;return a<3&&(e=0),28&&(e=9),e},c=function(e){var t=new Date(o,e,1);return(new Date(o,e+1,1)-t)/864e5},d=n.getTime();switch(e){case"今天":d=n;break;case"昨天":d=n-864e5;break;case"前天":d=n-1728e5;break;case"本周":d=new Date(o,a,r-i);break;case"本周结束":d=new Date(o,a,r+(6-i));break;case"上周":d=new Date(o,a,r-i-7);break;case"上周结束":d=new Date(o,a,r-i-1);break;case"本周2":d=new Date(o,a,r-i+1);break;case"本周结束2":d=new Date(o,a,r+(6-i)+1);break;case"上周2":d=new Date(o,a,r-i-7+1);break;case"上周结束2":d=new Date(o,a,r-i-1+1);break;case"本月":d=new Date(o,a,1);break;case"本月结束":d=new Date(o,a,c(a));break;case"上个月":d=new Date(o,l,1);break;case"上个月结束":d=new Date(o,l,c(l));break;case"本季度":d=new Date(o,u(),1);break;case"本季度结束":var h=u()+2;d=new Date(o,h,c(h))}return!0===t?d:$A.formatDate("Y-m-d",parseInt(d/1e3))},timeOptionShortcuts:function(){var e=function(e){return $A.Date($A.formatDate("Y-m-d 23:59:29",Math.round(e/1e3)))};return[{text:$A.L("今天"),value:function(){return[new Date,e((new Date).getTime())]}},{text:$A.L("明天"),value:function(){var t=new Date;return t.setDate(t.getDate()+1),[new Date,e(t.getTime())]}},{text:$A.L("本周"),value:function(){return[$A.getData("今天",!0),e($A.getData("本周结束2",!0))]}},{text:$A.L("本月"),value:function(){return[$A.getData("今天",!0),e($A.getData("本月结束",!0))]}},{text:$A.L("3天"),value:function(){var t=new Date;return t.setDate(t.getDate()+2),[new Date,e(t.getTime())]}},{text:$A.L("5天"),value:function(){var t=new Date;return t.setDate(t.getDate()+4),[new Date,e(t.getTime())]}},{text:$A.L("7天"),value:function(){var t=new Date;return t.setDate(t.getDate()+6),[new Date,e(t.getTime())]}}]},dialogTags:function(e){var t=[];return"group"==e.type&&["project","task"].includes(e.group_type)&&$A.isJson(e.group_info)&&("task"==e.group_type&&e.group_info.complete_at&&t.push({color:"success",text:"已完成"}),e.group_info.deleted_at?t.push({color:"red",text:"已删除"}):e.group_info.archived_at&&t.push({color:"default",text:"已归档"})),t},dialogCompleted:function(e){return this.dialogTags(e).find((function(e){return"success"==e.color}))},downFile:function(t){t&&($A.Electron?$A.Electron.shell.openExternal(t).catch((function(){$A.modalError("下载失败")})):e.open(t))}}),t.extend({spinnerShow:function(){if($A.spinnerLoadNum++,$A.spinnerLoadNum>0){var e=document.getElementById("common-spinner");e&&(e.style.display="block")}},spinnerHide:function(){if($A.spinnerLoadNum--,$A.spinnerLoadNum<=0){var e=document.getElementById("common-spinner");e&&(e.style.display="none")}},spinnerLoadNum:0,modalConfig:function(e){return void 0===e?e={content:"Undefined"}:"string"==typeof e&&(e={content:e}),e.title=$A.L(e.title||(void 0===e.render?"温馨提示":"")),e.content=$A.L(e.content||""),e.okText=$A.L(e.okText||"确定"),e.cancelText=$A.L(e.cancelText||"取消"),e},modalInput:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t>0)setTimeout((function(){$A.modalInput(e)}),t);else{"string"==typeof e&&(e={title:e});var n="modalInput_"+$A.randomString(6);$A.Modal.confirm({render:function(t){return t("div",[t("div",{style:{fontSize:"16px",fontWeight:"500",marginBottom:"20px"}},$A.L(e.title)),t("Input",{props:{value:e.value,placeholder:$A.L(e.placeholder),elementId:n},on:{input:function(t){e.value=t}}})])},onOk:function(){"function"==typeof e.onOk?!0===e.onOk(e.value,(function(){$A.Modal.remove()}))&&$A.Modal.remove():$A.Modal.remove()},onCancel:function(){"function"==typeof e.onCancel&&e.onCancel()},loading:!0,okText:$A.L(e.okText||"确定"),cancelText:$A.L(e.cancelText||"取消")}),setTimeout((function(){document.getElementById(n)&&document.getElementById(n).focus()}))}},modalConfirm:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;!1!==e&&(t>0?setTimeout((function(){$A.modalConfirm(e)}),t):$A.Modal.confirm($A.modalConfig(e)))},modalSuccess:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;!1!==e&&(t>0?setTimeout((function(){$A.modalSuccess(e)}),t):$A.Modal.success($A.modalConfig(e)))},modalInfo:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;!1!==e&&(t>0?setTimeout((function(){$A.modalInfo(e)}),t):$A.Modal.info($A.modalConfig(e)))},modalWarning:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;!1!==e&&(t>0?setTimeout((function(){$A.modalWarning(e)}),t):$A.Modal.warning($A.modalConfig(e)))},modalError:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;!1!==e&&(t>0?setTimeout((function(){$A.modalError(e)}),t):$A.Modal.error($A.modalConfig(e)))},modalAlert:function(e){!1!==e&&alert($A.L(e))},messageSuccess:function(e){$A.Message.success($A.L(e))},messageWarning:function(e){$A.Message.warning($A.L(e))},messageError:function(e){$A.Message.error($A.L(e))},noticeConfig:function(e){return void 0===e?e={desc:"Undefined"}:"string"==typeof e&&(e={desc:e}),e.title=$A.L(e.title||(void 0===e.render?"温馨提示":"")),e.desc=$A.L(e.desc||""),e},noticeSuccess:function(e){$A.Notice.success($A.noticeConfig(e))},noticeWarning:function(e){$A.Notice.warning($A.noticeConfig(e))},noticeError:function(e){"string"==typeof e&&(e={desc:e,duration:6}),$A.Notice.error($A.noticeConfig(e))}}),t.extend({dark:{utils:{filter:"-webkit-filter: url(#dark-mode-filter) !important; filter: url(#dark-mode-filter) !important;",reverseFilter:"-webkit-filter: url(#dark-mode-reverse-filter) !important; filter: url(#dark-mode-reverse-filter) !important;",noneFilter:"-webkit-filter: none !important; filter: none !important;",addExtraStyle:function(){try{return""}catch(e){return""}},addStyle:function(e,t,n){t=t||"style";var i=document;if(!i.getElementById(e)){var r=i.createElement(t);r.rel="stylesheet",r.id=e,"style"===t?r.innerHTML=n:r.href=n,document.head.appendChild(r)}},getClassList:function(e){return e.classList||[]},addClass:function(e,t){return this.getClassList(e).add(t),this},removeClass:function(e,t){return this.getClassList(e).remove(t),this},hasClass:function(e,t){return this.getClassList(e).contains(t)},hasElementById:function(e){return document.getElementById(e)},removeElementById:function(e){var t=document.getElementById(e);t&&t.parentNode.removeChild(t)}},createDarkFilter:function(){if(!this.utils.hasElementById("dark-mode-svg")){var e=document.createElementNS("http://www.w3.org/1999/xhtml","div");e.innerHTML='';for(var t=document.createDocumentFragment();e.firstChild;)t.appendChild(e.firstChild);document.head.appendChild(t)}},createDarkStyle:function(){this.utils.addStyle("dark-mode-style","style","\n @media screen {\n html {\n ".concat(this.utils.filter,'\n }\n\n /* Default Reverse rule */\n img,\n video,\n iframe,\n canvas,\n :not(object):not(body) > embed,\n object,\n svg image,\n [style*="background:url"],\n [style*="background-image:url"],\n [style*="background: url"],\n [style*="background-image: url"],\n [background],\n twitterwidget,\n .sr-reader,\n .no-dark-mode,\n .no-dark-mode-before:before,\n .sr-backdrop {\n ').concat(this.utils.reverseFilter,'\n }\n\n [style*="background:url"] *,\n [style*="background-image:url"] *,\n [style*="background: url"] *,\n [style*="background-image: url"] *,\n input,\n [background] *,\n twitterwidget .NaturalImage-image {\n ').concat(this.utils.noneFilter,"\n }\n\n /* Text contrast */\n html {\n text-shadow: 0 0 0 !important;\n }\n\n /* Full screen */\n .no-filter,\n :-webkit-full-screen,\n :-webkit-full-screen *,\n :-moz-full-screen,\n :-moz-full-screen *,\n :fullscreen,\n :fullscreen * {\n ").concat(this.utils.noneFilter,"\n }\n\n /* Page background */\n html {\n background: #fff !important;\n }\n ").concat(this.utils.addExtraStyle(),"\n }\n\n @media print {\n .no-print {\n display: none !important;\n }\n }"))},enableDarkMode:function(){$A.isChrome()&&(this.isDarkEnabled()||(this.createDarkFilter(),this.createDarkStyle(),this.utils.addClass(document.body,"dark-mode-reverse")))},disableDarkMode:function(){this.isDarkEnabled()&&(this.utils.removeElementById("dark-mode-svg"),this.utils.removeElementById("dark-mode-style"),this.utils.removeClass(document.body,"dark-mode-reverse"))},autoDarkMode:function(){e.matchMedia&&e.matchMedia("(prefers-color-scheme: dark)").matches?this.enableDarkMode():this.disableDarkMode()},isDarkEnabled:function(){return this.utils.hasClass(document.body,"dark-mode-reverse")}}}),e.$A=t}(window)},31108:(e,t)=>{t.Z=[]},33301:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var i={isDesktop:$A.isDesktop(),windowWidth:window.innerWidth,windowMax768:window.innerWidth<=768,cacheLoading:{},cacheDrawerIndex:0,cacheDrawerOverlay:[],cacheUserActive:{},cacheUserWait:[],cacheUserBasic:$A.getStorageArray("cacheUserBasic"),cacheDialogs:$A.getStorageArray("cacheDialogs"),cacheUnreads:{},cacheProjects:$A.getStorageArray("cacheProjects"),cacheColumns:$A.getStorageArray("cacheColumns"),cacheTasks:$A.getStorageArray("cacheTasks"),cacheProjectParameter:$A.getStorageArray("cacheProjectParameter"),cacheServerUrl:$A.getStorageString("cacheServerUrl"),ajaxWsReady:!1,ajaxWsListener:[],ws:null,wsMsg:{},wsCall:{},wsTimeout:null,wsOpenNum:0,wsListener:{},wsReadTimeout:null,wsReadWaitList:[],userInfo:$A.getStorageJson("userInfo"),userId:0,userToken:"",userIsAdmin:!1,userOnline:{},dialogMsgs:[],dialogOpenId:0,files:[],fileContent:{},projectId:0,projectTotal:0,projectLoad:0,taskId:0,taskCompleteTemps:[],taskContents:[],taskFiles:[],taskLogs:[],taskLoading:[],taskFlows:[],taskFlowItems:[],taskPriority:[],columnTemplate:[],columnColorList:[{name:"默认",color:""},{name:"灰色",color:"#444444"},{name:"棕色",color:"#947364"},{name:"橘色",color:"#faaa6c"},{name:"黄色",color:"#f2d86d"},{name:"绿色",color:"#73b45c"},{name:"蓝色",color:"#51abea"},{name:"紫色",color:"#b583e3"},{name:"粉色",color:"#ff819c"},{name:"红色",color:"#ff7070"}],taskColorList:[{name:"默认",color:""},{name:"黄色",color:"#fffae6"},{name:"蓝色",color:"#e5f5ff"},{name:"绿色",color:"#ecffe5"},{name:"粉色",color:"#ffeaee"},{name:"紫色",color:"#f6ecff"},{name:"灰色",color:"#f3f3f3"}],themeMode:$A.getStorageString("cacheThemeMode"),themeList:[{name:"跟随系统",value:"auto"},{name:"明亮",value:"light"},{name:"暗黑",value:"dark"}],themeIsDark:!1};switch(i.userInfo.userid&&(i.userId=i.userInfo.userid=$A.runNum(i.userInfo.userid),i.userToken=i.userInfo.token,i.userIsAdmin=$A.inArray("admin",i.userInfo.identity)),i.cacheServerUrl&&(window.systemInfo.apiUrl=i.cacheServerUrl),i.themeMode){case"dark":$A.dark.enableDarkMode();break;case"light":$A.dark.disableDarkMode();break;default:i.themeMode="auto",$A.dark.autoDarkMode()}i.themeIsDark=$A.dark.isDarkEnabled();const r=i},52945:(e,t,n)=>{e.exports={default:n(56981),__esModule:!0}},93516:(e,t,n)=>{e.exports={default:n(80025),__esModule:!0}},64275:(e,t,n)=>{e.exports={default:n(52392),__esModule:!0}},88239:(e,t,n)=>{"use strict";var i,r=n(52945),a=(i=r)&&i.__esModule?i:{default:i};t.Z=a.default||function(e){for(var t=1;t{"use strict";var i=o(n(64275)),r=o(n(93516)),a="function"==typeof r.default&&"symbol"==typeof i.default?function(e){return typeof e}:function(e){return e&&"function"==typeof r.default&&e.constructor===r.default&&e!==r.default.prototype?"symbol":typeof e};function o(e){return e&&e.__esModule?e:{default:e}}t.Z="function"==typeof r.default&&"symbol"===a(i.default)?function(e){return void 0===e?"undefined":a(e)}:function(e){return e&&"function"==typeof r.default&&e.constructor===r.default&&e!==r.default.prototype?"symbol":void 0===e?"undefined":a(e)}},56981:(e,t,n)=>{n(72699),e.exports=n(34579).Object.assign},80025:(e,t,n)=>{n(46840),n(94058),n(8174),n(36461),e.exports=n(34579).Symbol},52392:(e,t,n)=>{n(91867),n(73871),e.exports=n(25103).f("iterator")},85663:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},79003:e=>{e.exports=function(){}},12159:(e,t,n)=>{var i=n(36727);e.exports=function(e){if(!i(e))throw TypeError(e+" is not an object!");return e}},57428:(e,t,n)=>{var i=n(7932),r=n(78728),a=n(16531);e.exports=function(e){return function(t,n,o){var s,l=i(t),u=r(l.length),c=a(o,u);if(e&&n!=n){for(;u>c;)if((s=l[c++])!=s)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===n)return e||c||0;return!e&&-1}}},32894:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},34579:e=>{var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},19216:(e,t,n)=>{var i=n(85663);e.exports=function(e,t,n){if(i(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,i){return e.call(t,n,i)};case 3:return function(n,i,r){return e.call(t,n,i,r)}}return function(){return e.apply(t,arguments)}}},8333:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},89666:(e,t,n)=>{e.exports=!n(7929)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},97467:(e,t,n)=>{var i=n(36727),r=n(33938).document,a=i(r)&&i(r.createElement);e.exports=function(e){return a?r.createElement(e):{}}},73338:e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},70337:(e,t,n)=>{var i=n(46162),r=n(48195),a=n(86274);e.exports=function(e){var t=i(e),n=r.f;if(n)for(var o,s=n(e),l=a.f,u=0;s.length>u;)l.call(e,o=s[u++])&&t.push(o);return t}},83856:(e,t,n)=>{var i=n(33938),r=n(34579),a=n(19216),o=n(41818),s=n(27069),l=function(e,t,n){var u,c,d,h=e&l.F,f=e&l.G,p=e&l.S,m=e&l.P,v=e&l.B,g=e&l.W,b=f?r:r[t]||(r[t]={}),y=b.prototype,_=f?i:p?i[t]:(i[t]||{}).prototype;for(u in f&&(n=t),n)(c=!h&&_&&void 0!==_[u])&&s(b,u)||(d=c?_[u]:n[u],b[u]=f&&"function"!=typeof _[u]?n[u]:v&&c?a(d,i):g&&_[u]==d?function(e){var t=function(t,n,i){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,i)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(d):m&&"function"==typeof d?a(Function.call,d):d,m&&((b.virtual||(b.virtual={}))[u]=d,e&l.R&&y&&!y[u]&&o(y,u,d)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},7929:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},33938:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},27069:e=>{var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},41818:(e,t,n)=>{var i=n(4743),r=n(83101);e.exports=n(89666)?function(e,t,n){return i.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},54881:(e,t,n)=>{var i=n(33938).document;e.exports=i&&i.documentElement},33758:(e,t,n)=>{e.exports=!n(89666)&&!n(7929)((function(){return 7!=Object.defineProperty(n(97467)("div"),"a",{get:function(){return 7}}).a}))},50799:(e,t,n)=>{var i=n(32894);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},71421:(e,t,n)=>{var i=n(32894);e.exports=Array.isArray||function(e){return"Array"==i(e)}},36727:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},33945:(e,t,n)=>{"use strict";var i=n(98989),r=n(83101),a=n(25378),o={};n(41818)(o,n(22939)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=i(o,{next:r(1,n)}),a(e,t+" Iterator")}},45700:(e,t,n)=>{"use strict";var i=n(16227),r=n(83856),a=n(57470),o=n(41818),s=n(15449),l=n(33945),u=n(25378),c=n(95089),d=n(22939)("iterator"),h=!([].keys&&"next"in[].keys()),f="keys",p="values",m=function(){return this};e.exports=function(e,t,n,v,g,b,y){l(n,t,v);var _,w,x,C=function(e){if(!h&&e in T)return T[e];switch(e){case f:case p:return function(){return new n(this,e)}}return function(){return new n(this,e)}},k=t+" Iterator",S=g==p,O=!1,T=e.prototype,D=T[d]||T["@@iterator"]||g&&T[g],E=D||C(g),$=g?S?C("entries"):E:void 0,M="Array"==t&&T.entries||D;if(M&&(x=c(M.call(new e)))!==Object.prototype&&x.next&&(u(x,k,!0),i||"function"==typeof x[d]||o(x,d,m)),S&&D&&D.name!==p&&(O=!0,E=function(){return D.call(this)}),i&&!y||!h&&!O&&T[d]||o(T,d,E),s[t]=E,s[k]=m,g)if(_={values:S?E:C(p),keys:b?E:C(f),entries:$},y)for(w in _)w in T||a(T,w,_[w]);else r(r.P+r.F*(h||O),t,_);return _}},85084:e=>{e.exports=function(e,t){return{value:t,done:!!e}}},15449:e=>{e.exports={}},16227:e=>{e.exports=!0},77177:(e,t,n)=>{var i=n(65730)("meta"),r=n(36727),a=n(27069),o=n(4743).f,s=0,l=Object.isExtensible||function(){return!0},u=!n(7929)((function(){return l(Object.preventExtensions({}))})),c=function(e){o(e,i,{value:{i:"O"+ ++s,w:{}}})},d=e.exports={KEY:i,NEED:!1,fastKey:function(e,t){if(!r(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,i)){if(!l(e))return"F";if(!t)return"E";c(e)}return e[i].i},getWeak:function(e,t){if(!a(e,i)){if(!l(e))return!0;if(!t)return!1;c(e)}return e[i].w},onFreeze:function(e){return u&&d.NEED&&l(e)&&!a(e,i)&&c(e),e}}},88082:(e,t,n)=>{"use strict";var i=n(89666),r=n(46162),a=n(48195),o=n(86274),s=n(66530),l=n(50799),u=Object.assign;e.exports=!u||n(7929)((function(){var e={},t={},n=Symbol(),i="abcdefghijklmnopqrst";return e[n]=7,i.split("").forEach((function(e){t[e]=e})),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=i}))?function(e,t){for(var n=s(e),u=arguments.length,c=1,d=a.f,h=o.f;u>c;)for(var f,p=l(arguments[c++]),m=d?r(p).concat(d(p)):r(p),v=m.length,g=0;v>g;)f=m[g++],i&&!h.call(p,f)||(n[f]=p[f]);return n}:u},98989:(e,t,n)=>{var i=n(12159),r=n(57856),a=n(73338),o=n(58989)("IE_PROTO"),s=function(){},l=function(){var e,t=n(97467)("iframe"),i=a.length;for(t.style.display="none",n(54881).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write(" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Loading...

    +
    +
    + + + + diff --git a/public/js/app.js b/public/js/app.js index efebfc54f..f0b69001f 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -1,2 +1,2 @@ /*! For license information please see app.js.LICENSE.txt */ -(()=>{var e,t,n,i,r,a={36890:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>k});var i=n(88239),r=n(72444),a=/%[sdj%]/g;function o(){for(var e=arguments.length,t=Array(e),n=0;n=o)return e;switch(e){case"%s":return String(t[i++]);case"%d":return Number(t[i++]);case"%j":try{return JSON.stringify(t[i++])}catch(e){return"[Circular]"}break;default:return e}})),l=t[i];i()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},m={integer:function(e){return m.number(e)&&parseInt(e,10)===e},float:function(e){return m.number(e)&&!m.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(void 0===e?"undefined":(0,r.Z)(e))&&!m.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(p.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(p.url)},hex:function(e){return"string"==typeof e&&!!e.match(p.hex)}};const v=function(e,t,n,i,a){if(e.required&&void 0===t)h(e,t,n,i,a);else{var s=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(s)>-1?m[s](t)||i.push(o(a.messages.types[s],e.fullField,e.type)):s&&(void 0===t?"undefined":(0,r.Z)(t))!==e.type&&i.push(o(a.messages.types[s],e.fullField,e.type))}};const g={required:h,whitespace:f,type:v,range:function(e,t,n,i,r){var a="number"==typeof e.len,s="number"==typeof e.min,l="number"==typeof e.max,u=t,c=null,d="number"==typeof t,h="string"==typeof t,f=Array.isArray(t);if(d?c="number":h?c="string":f&&(c="array"),!c)return!1;f&&(u=t.length),h&&(u=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?u!==e.len&&i.push(o(r.messages[c].len,e.fullField,e.len)):s&&!l&&ue.max?i.push(o(r.messages[c].max,e.fullField,e.max)):s&&l&&(ue.max)&&i.push(o(r.messages[c].range,e.fullField,e.min,e.max))},enum:function(e,t,n,i,r){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(t)&&i.push(o(r.messages.enum,e.fullField,e.enum.join(", ")))},pattern:function(e,t,n,i,r){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||i.push(o(r.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||i.push(o(r.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const b=function(e,t,n,i,a){var o=[],s=Array.isArray(t)?"array":void 0===t?"undefined":(0,r.Z)(t);g.required(e,t,i,o,a,s),n(o)};const y=function(e,t,n,i,r){var a=e.type,o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t,a)&&!e.required)return n();g.required(e,t,i,o,r,a),s(t,a)||g.type(e,t,i,o,r)}n(o)},_={string:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t,"string")&&!e.required)return n();g.required(e,t,i,a,r,"string"),s(t,"string")||(g.type(e,t,i,a,r),g.range(e,t,i,a,r),g.pattern(e,t,i,a,r),!0===e.whitespace&&g.whitespace(e,t,i,a,r))}n(a)},method:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),void 0!==t&&g.type(e,t,i,a,r)}n(a)},number:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),void 0!==t&&(g.type(e,t,i,a,r),g.range(e,t,i,a,r))}n(a)},boolean:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),void 0!==t&&g.type(e,t,i,a,r)}n(a)},regexp:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),s(t)||g.type(e,t,i,a,r)}n(a)},integer:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),void 0!==t&&(g.type(e,t,i,a,r),g.range(e,t,i,a,r))}n(a)},float:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),void 0!==t&&(g.type(e,t,i,a,r),g.range(e,t,i,a,r))}n(a)},array:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t,"array")&&!e.required)return n();g.required(e,t,i,a,r,"array"),s(t,"array")||(g.type(e,t,i,a,r),g.range(e,t,i,a,r))}n(a)},object:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),void 0!==t&&g.type(e,t,i,a,r)}n(a)},enum:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();g.required(e,t,i,a,r),t&&g.enum(e,t,i,a,r)}n(a)},pattern:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t,"string")&&!e.required)return n();g.required(e,t,i,a,r),s(t,"string")||g.pattern(e,t,i,a,r)}n(a)},date:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(s(t)&&!e.required)return n();if(g.required(e,t,i,a,r),!s(t)){var o=void 0;o="number"==typeof t?new Date(t):t,g.type(e,o,i,a,r),o&&g.range(e,o.getTime(),i,a,r)}}n(a)},url:y,hex:y,email:y,required:b};function w(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var x=w();function C(e){this.rules=null,this._messages=x,this.define(e)}C.prototype={messages:function(e){return e&&(this._messages=d(w(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!==(void 0===e?"undefined":(0,r.Z)(e))||Array.isArray(e))throw new Error("Rules must be an object");this.rules={};var t=void 0,n=void 0;for(t in e)e.hasOwnProperty(t)&&(n=e[t],this.rules[t]=Array.isArray(n)?n:[n])},validate:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments[2],s=e,l=n,h=a;if("function"==typeof l&&(h=l,l={}),this.rules&&0!==Object.keys(this.rules).length){if(l.messages){var f=this.messages();f===x&&(f=w()),d(f,l.messages),l.messages=f}else l.messages=this.messages();var p=void 0,m=void 0,v={},g=l.keys||Object.keys(this.rules);g.forEach((function(n){p=t.rules[n],m=s[n],p.forEach((function(r){var a=r;"function"==typeof a.transform&&(s===e&&(s=(0,i.Z)({},s)),m=s[n]=a.transform(m)),(a="function"==typeof a?{validator:a}:(0,i.Z)({},a)).validator=t.getValidationMethod(a),a.field=n,a.fullField=a.fullField||n,a.type=t.getType(a),a.validator&&(v[n]=v[n]||[],v[n].push({rule:a,value:m,source:s,field:n}))}))}));var b={};u(v,l,(function(e,t){var n=e.rule,a=!("object"!==n.type&&"array"!==n.type||"object"!==(0,r.Z)(n.fields)&&"object"!==(0,r.Z)(n.defaultField));function s(e,t){return(0,i.Z)({},t,{fullField:n.fullField+"."+e})}function u(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],u=r;if(Array.isArray(u)||(u=[u]),u.length,u.length&&n.message&&(u=[].concat(n.message)),u=u.map(c(n)),l.first&&u.length)return b[n.field]=1,t(u);if(a){if(n.required&&!e.value)return u=n.message?[].concat(n.message).map(c(n)):l.error?[l.error(n,o(l.messages.required,n.field))]:[],t(u);var d={};if(n.defaultField)for(var h in e.value)e.value.hasOwnProperty(h)&&(d[h]=n.defaultField);for(var f in d=(0,i.Z)({},d,e.rule.fields))if(d.hasOwnProperty(f)){var p=Array.isArray(d[f])?d[f]:[d[f]];d[f]=p.map(s.bind(null,f))}var m=new C(d);m.messages(l.messages),e.rule.options&&(e.rule.options.messages=l.messages,e.rule.options.error=l.error),m.validate(e.value,e.rule.options||l,(function(e){t(e&&e.length?u.concat(e):e)}))}else t(u)}a=a&&(n.required||!n.required&&e.value),n.field=e.field;var d=n.validator(n,e.value,u,e.source,l);d&&d.then&&d.then((function(){return u()}),(function(e){return u(e)}))}),(function(e){y(e)}))}else h&&h();function y(e){var t,n=void 0,i=void 0,r=[],a={};for(n=0;n{e.exports=n(51609)},55448:(e,t,n)=>{"use strict";var i=n(64867),r=n(36026),a=n(4372),o=n(15327),s=n(94097),l=n(84109),u=n(67985),c=n(85061),d=n(45655),h=n(65263);e.exports=function(e){return new Promise((function(t,n){var f,p=e.data,m=e.headers,v=e.responseType;function g(){e.cancelToken&&e.cancelToken.unsubscribe(f),e.signal&&e.signal.removeEventListener("abort",f)}i.isFormData(p)&&delete m["Content-Type"];var b=new XMLHttpRequest;if(e.auth){var y=e.auth.username||"",_=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";m.Authorization="Basic "+btoa(y+":"+_)}var w=s(e.baseURL,e.url);function x(){if(b){var i="getAllResponseHeaders"in b?l(b.getAllResponseHeaders()):null,a={data:v&&"text"!==v&&"json"!==v?b.response:b.responseText,status:b.status,statusText:b.statusText,headers:i,config:e,request:b};r((function(e){t(e),g()}),(function(e){n(e),g()}),a),b=null}}if(b.open(e.method.toUpperCase(),o(w,e.params,e.paramsSerializer),!0),b.timeout=e.timeout,"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){b&&4===b.readyState&&(0!==b.status||b.responseURL&&0===b.responseURL.indexOf("file:"))&&setTimeout(x)},b.onabort=function(){b&&(n(c("Request aborted",e,"ECONNABORTED",b)),b=null)},b.onerror=function(){n(c("Network Error",e,null,b)),b=null},b.ontimeout=function(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",i=e.transitional||d.transitional;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(c(t,e,i.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",b)),b=null},i.isStandardBrowserEnv()){var C=(e.withCredentials||u(w))&&e.xsrfCookieName?a.read(e.xsrfCookieName):void 0;C&&(m[e.xsrfHeaderName]=C)}"setRequestHeader"in b&&i.forEach(m,(function(e,t){void 0===p&&"content-type"===t.toLowerCase()?delete m[t]:b.setRequestHeader(t,e)})),i.isUndefined(e.withCredentials)||(b.withCredentials=!!e.withCredentials),v&&"json"!==v&&(b.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&b.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&b.upload&&b.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(f=function(e){b&&(n(!e||e&&e.type?new h("canceled"):e),b.abort(),b=null)},e.cancelToken&&e.cancelToken.subscribe(f),e.signal&&(e.signal.aborted?f():e.signal.addEventListener("abort",f))),p||(p=null),b.send(p)}))}},51609:(e,t,n)=>{"use strict";var i=n(64867),r=n(91849),a=n(30321),o=n(47185);var s=function e(t){var n=new a(t),s=r(a.prototype.request,n);return i.extend(s,a.prototype,n),i.extend(s,n),s.create=function(n){return e(o(t,n))},s}(n(45655));s.Axios=a,s.Cancel=n(65263),s.CancelToken=n(14972),s.isCancel=n(26502),s.VERSION=n(97288).version,s.all=function(e){return Promise.all(e)},s.spread=n(8713),s.isAxiosError=n(16268),e.exports=s,e.exports.default=s},65263:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},14972:(e,t,n)=>{"use strict";var i=n(65263);function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;this.promise.then((function(e){if(n._listeners){var t,i=n._listeners.length;for(t=0;t{"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},30321:(e,t,n)=>{"use strict";var i=n(64867),r=n(15327),a=n(80782),o=n(13572),s=n(47185),l=n(54875),u=l.validators;function c(e){this.defaults=e,this.interceptors={request:new a,response:new a}}c.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=s(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&l.assertOptions(t,{silentJSONParsing:u.transitional(u.boolean),forcedJSONParsing:u.transitional(u.boolean),clarifyTimeoutError:u.transitional(u.boolean)},!1);var n=[],i=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(i=i&&t.synchronous,n.unshift(t.fulfilled,t.rejected))}));var r,a=[];if(this.interceptors.response.forEach((function(e){a.push(e.fulfilled,e.rejected)})),!i){var c=[o,void 0];for(Array.prototype.unshift.apply(c,n),c=c.concat(a),r=Promise.resolve(e);c.length;)r=r.then(c.shift(),c.shift());return r}for(var d=e;n.length;){var h=n.shift(),f=n.shift();try{d=h(d)}catch(e){f(e);break}}try{r=o(d)}catch(e){return Promise.reject(e)}for(;a.length;)r=r.then(a.shift(),a.shift());return r},c.prototype.getUri=function(e){return e=s(this.defaults,e),r(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},i.forEach(["delete","get","head","options"],(function(e){c.prototype[e]=function(t,n){return this.request(s(n||{},{method:e,url:t,data:(n||{}).data}))}})),i.forEach(["post","put","patch"],(function(e){c.prototype[e]=function(t,n,i){return this.request(s(i||{},{method:e,url:t,data:n}))}})),e.exports=c},80782:(e,t,n)=>{"use strict";var i=n(64867);function r(){this.handlers=[]}r.prototype.use=function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){i.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=r},94097:(e,t,n)=>{"use strict";var i=n(91793),r=n(7303);e.exports=function(e,t){return e&&!i(t)?r(e,t):t}},85061:(e,t,n)=>{"use strict";var i=n(80481);e.exports=function(e,t,n,r,a){var o=new Error(e);return i(o,t,n,r,a)}},13572:(e,t,n)=>{"use strict";var i=n(64867),r=n(18527),a=n(26502),o=n(45655),s=n(65263);function l(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new s("canceled")}e.exports=function(e){return l(e),e.headers=e.headers||{},e.data=r.call(e,e.data,e.headers,e.transformRequest),e.headers=i.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),i.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||o.adapter)(e).then((function(t){return l(e),t.data=r.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return a(t)||(l(e),t&&t.response&&(t.response.data=r.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},80481:e=>{"use strict";e.exports=function(e,t,n,i,r){return e.config=t,n&&(e.code=n),e.request=i,e.response=r,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},e}},47185:(e,t,n)=>{"use strict";var i=n(64867);e.exports=function(e,t){t=t||{};var n={};function r(e,t){return i.isPlainObject(e)&&i.isPlainObject(t)?i.merge(e,t):i.isPlainObject(t)?i.merge({},t):i.isArray(t)?t.slice():t}function a(n){return i.isUndefined(t[n])?i.isUndefined(e[n])?void 0:r(void 0,e[n]):r(e[n],t[n])}function o(e){if(!i.isUndefined(t[e]))return r(void 0,t[e])}function s(n){return i.isUndefined(t[n])?i.isUndefined(e[n])?void 0:r(void 0,e[n]):r(void 0,t[n])}function l(n){return n in t?r(e[n],t[n]):n in e?r(void 0,e[n]):void 0}var u={url:o,method:o,data:o,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:l};return i.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=u[e]||a,r=t(e);i.isUndefined(r)&&t!==l||(n[e]=r)})),n}},36026:(e,t,n)=>{"use strict";var i=n(85061);e.exports=function(e,t,n){var r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(i("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},18527:(e,t,n)=>{"use strict";var i=n(64867),r=n(45655);e.exports=function(e,t,n){var a=this||r;return i.forEach(n,(function(n){e=n.call(a,e,t)})),e}},45655:(e,t,n)=>{"use strict";var i=n(34155),r=n(64867),a=n(16016),o=n(80481),s={"Content-Type":"application/x-www-form-urlencoded"};function l(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var u,c={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==i&&"[object process]"===Object.prototype.toString.call(i))&&(u=n(55448)),u),transformRequest:[function(e,t){return a(t,"Accept"),a(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(l(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)||t&&"application/json"===t["Content-Type"]?(l(t,"application/json"),function(e,t,n){if(r.isString(e))try{return(t||JSON.parse)(e),r.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||c.transitional,n=t&&t.silentJSONParsing,i=t&&t.forcedJSONParsing,a=!n&&"json"===this.responseType;if(a||i&&r.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(a){if("SyntaxError"===e.name)throw o(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){c.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){c.headers[e]=r.merge(s)})),e.exports=c},97288:e=>{e.exports={version:"0.24.0"}},91849:e=>{"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),i=0;i{"use strict";var i=n(64867);function r(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var a;if(n)a=n(t);else if(i.isURLSearchParams(t))a=t.toString();else{var o=[];i.forEach(t,(function(e,t){null!=e&&(i.isArray(e)?t+="[]":e=[e],i.forEach(e,(function(e){i.isDate(e)?e=e.toISOString():i.isObject(e)&&(e=JSON.stringify(e)),o.push(r(t)+"="+r(e))})))})),a=o.join("&")}if(a){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}},7303:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},4372:(e,t,n)=>{"use strict";var i=n(64867);e.exports=i.isStandardBrowserEnv()?{write:function(e,t,n,r,a,o){var s=[];s.push(e+"="+encodeURIComponent(t)),i.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),i.isString(r)&&s.push("path="+r),i.isString(a)&&s.push("domain="+a),!0===o&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},91793:e=>{"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},16268:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},67985:(e,t,n)=>{"use strict";var i=n(64867);e.exports=i.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function r(e){var i=e;return t&&(n.setAttribute("href",i),i=n.href),n.setAttribute("href",i),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=r(window.location.href),function(t){var n=i.isString(t)?r(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},16016:(e,t,n)=>{"use strict";var i=n(64867);e.exports=function(e,t){i.forEach(e,(function(n,i){i!==t&&i.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[i])}))}},84109:(e,t,n)=>{"use strict";var i=n(64867),r=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,a,o={};return e?(i.forEach(e.split("\n"),(function(e){if(a=e.indexOf(":"),t=i.trim(e.substr(0,a)).toLowerCase(),n=i.trim(e.substr(a+1)),t){if(o[t]&&r.indexOf(t)>=0)return;o[t]="set-cookie"===t?(o[t]?o[t]:[]).concat([n]):o[t]?o[t]+", "+n:n}})),o):o}},8713:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},54875:(e,t,n)=>{"use strict";var i=n(97288).version,r={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){r[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var a={};r.transitional=function(e,t,n){function r(e,t){return"[Axios v"+i+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,i,o){if(!1===e)throw new Error(r(i," has been removed"+(t?" in "+t:"")));return t&&!a[i]&&(a[i]=!0,console.warn(r(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,o)}},e.exports={assertOptions:function(e,t,n){if("object"!=typeof e)throw new TypeError("options must be an object");for(var i=Object.keys(e),r=i.length;r-- >0;){var a=i[r],o=t[a];if(o){var s=e[a],l=void 0===s||o(s,a,e);if(!0!==l)throw new TypeError("option "+a+" must be "+l)}else if(!0!==n)throw Error("Unknown option "+a)}},validators:r}},64867:(e,t,n)=>{"use strict";var i=n(91849),r=Object.prototype.toString;function a(e){return"[object Array]"===r.call(e)}function o(e){return void 0===e}function s(e){return null!==e&&"object"==typeof e}function l(e){if("[object Object]"!==r.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function u(e){return"[object Function]"===r.call(e)}function c(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),a(e))for(var n=0,i=e.length;n{var t=/^(attrs|props|on|nativeOn|class|style|hook)$/;function n(e,t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}}e.exports=function(e){return e.reduce((function(e,i){var r,a,o,s,l;for(o in i)if(r=e[o],a=i[o],r&&t.test(o))if("class"===o&&("string"==typeof r&&(l=r,e[o]=r={},r[l]=!0),"string"==typeof a&&(l=a,i[o]=a={},a[l]=!0)),"on"===o||"nativeOn"===o||"hook"===o)for(s in a)r[s]=n(r[s],a[s]);else if(Array.isArray(r))e[o]=r.concat(a);else if(Array.isArray(a))e[o]=[r].concat(a);else for(s in a)r[s]=a[s];else e[o]=i[o];return e}),{})}},98642:(e,t,n)=>{"use strict";n(90091),n(92693);var i=n(70538),r=n(20629);const a={name:"Spinner"};var o=n(51900);const s=(0,o.Z)(a,(function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"common-spinner",attrs:{id:"common-spinner"}},[t("Loading",{staticClass:"common-circular"})],1)}),[],!1,null,null,null).exports;var l=n(71905),u=n(9669),c=n.n(u),d=n(80641);function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function f(e){for(var t=1;tl?1:-1;n=a+1,i=o+1}for(;n0)return 1;n=u+1}for(;i0)return-1;i=c+1}return 0},getReleases:function(){var e=this;if(!(this.repoStatus>0||this.loadIng>0)){var t=$A.getStorageJson("cacheAppdown"),n=600;if(t.time&&t.time+n>Math.round((new Date).getTime()/1e3))return this.repoReleases=t.data,this.chackReleases(),void setTimeout(this.getReleases,6e5);this.loadIng++,c().get("https://api.github.com/repos/"+this.repoName+"/releases/latest").then((function(n){var i=n.status,r=n.data;e.loadIng--,200===i&&(t={time:Math.round((new Date).getTime()/1e3),data:r},$A.setStorage("cacheAppdown",t),e.repoReleases=t.data,e.chackReleases()),setTimeout(e.getReleases,6e5)})).catch((function(){e.loadIng--,setTimeout(e.getReleases,6e5)}))}},chackReleases:function(){var e=$A.getDomain(window.systemInfo.apiUrl);if((""==e||$A.leftExists(e,"127.0.0.1"))&&(e="public"),this.$Electron){var t=(window.navigator.userAgent+"").match(/\s+(Main|Sub)TaskWindow\/(.*?)\/(.*?)\//);if(!t)return;var n=null;if("darwin"===t[2])n="".concat(e,"-").concat(this.repoReleases.tag_name,"-mac-").concat(t[3],".pkg");else{if("win32"!==t[2])return;n="".concat(e,"-").concat(this.repoReleases.tag_name,"-win-").concat(t[3],".exe")}if(this.repoData=(this.repoReleases.assets||[]).find((function(e){return e.name==n})),!this.repoData)return;var i=window.systemInfo.version,r=$A.leftDelete(this.repoReleases.tag_name.toLowerCase(),"v");1===this.compareVersion(r,i)&&(console.log("New version: "+r),this.$Electron.sendMessage("downloadFile",{url:this.repoData.browser_download_url}))}else if(this.repoData=(this.repoReleases.assets||[]).find((function(t){var n=t.name;return $A.strExists(n,e)})),this.repoData){var a=$A.leftDelete(this.repoReleases.tag_name.toLowerCase(),"v");console.log("Exist client: "+a),this.repoStatus=1}},releasesNotification:function(){var e=this;$A.modalConfirm({okText:this.$L("立即更新"),onOk:function(){e.installApplication()},onCancel:function(){e.repoStatus=2},render:function(t){return t("div",{class:"common-right-bottom-notification"},[t("div",{class:"notification-head"},[t("div",{class:"notification-title"},e.$L("发现新版本")),t("Tag",{props:{color:"volcano"}},e.repoReleases.tag_name)]),t("MarkdownPreview",{class:"notification-body",props:{initialValue:e.repoReleases.body}})])}})},installApplication:function(){this.$Electron&&(this.$Electron.sendMessage("openFile",{path:this.downloadResult.savePath}),this.$Electron.sendMessage("windowQuit"))},useSSOLogin:function(){d.Store.set("useSSOLogin",!0)}}};function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const b={components:{RightBottom:(0,o.Z)(m,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"common-right-bottom"},[e.showSSO?n("div",{staticClass:"common-right-bottom-link",on:{click:e.useSSOLogin}},[n("Icon",{attrs:{type:"ios-globe-outline"}}),e._v("\n "+e._s(e.$L("使用 SSO 登录"))+"\n ")],1):e._e(),e._v(" "),e.showDown?[e.$Electron?n("div",{staticClass:"common-right-bottom-link",on:{click:e.releasesNotification}},[n("Icon",{attrs:{type:"md-download"}}),e._v("\n "+e._s(e.$L(e.repoTitle))+"\n ")],1):n("a",{staticClass:"common-right-bottom-link",attrs:{href:e.repoReleases.html_url,target:"_blank"}},[n("Icon",{attrs:{type:"md-download"}}),e._v("\n "+e._s(e.$L(e.repoTitle))+"\n ")],1)]:e._e()],2)}),[],!1,null,null,null).exports,Spinner:s},data:function(){return{transitionName:null}},created:function(){this.electronEvents()},mounted:function(){var e=this,t=window.location.hash;0===t.indexOf("#")&&(t=t.substr(1))&&this.$nextTick((function(){t=$A.removeURLParameter(t,"token"),e.goForward({path:t})})),this.sessionStorage("/",1);var n=window.location.pathname;n&&0===this.sessionStorage(n)&&this.sessionStorage(n,this.sessionStorage("::count")+1),setInterval(this.searchEnter,1e3),window.addEventListener("resize",this.windowSizeListener)},beforeDestroy:function(){window.removeEventListener("resize",this.windowSizeListener)},computed:function(e){for(var t=1;t0?e.cacheDrawerOverlay[e.cacheDrawerOverlay.length-1].close():e.$Electron.sendMessage("windowHidden"))})),this.$Electron.registerMsgListener("dispatch",(function(t,n){if($A.isJson(n)){var i=n.action,r=n.data;e.$store.dispatch(i,r)}})))}}};var y=n(93379),_=n.n(y),w=n(91803),x={insert:"head",singleton:!1};_()(w.Z,x);w.Z.locals;const C=(0,o.Z)(b,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app"}},[n("transition",{attrs:{name:e.transitionName}},[n("keep-alive",[n("router-view",{staticClass:"child-view",class:{"view-768":e.$store.state.windowMax768}})],1)],1),e._v(" "),n("Spinner"),e._v(" "),n("RightBottom")],1)}),[],!1,null,"a800d74c",null).exports,k=[{name:"index",path:"/",component:function(){return n.e(855).then(n.bind(n,45855))}},{name:"manage",path:"/manage",meta:{slide:!1},component:function(){return n.e(191).then(n.bind(n,90191))},children:[{name:"manage-dashboard",path:"dashboard",component:function(){return n.e(618).then(n.bind(n,27618))}},{name:"manage-calendar",path:"calendar",component:function(){return n.e(400).then(n.bind(n,13400))}},{name:"manage-messenger",path:"messenger",component:function(){return n.e(412).then(n.bind(n,2412))}},{path:"setting",component:function(){return n.e(258).then(n.bind(n,98258))},children:[{name:"manage-setting",path:"",redirect:"personal"},{name:"manage-setting-personal",path:"personal",component:function(){return n.e(252).then(n.bind(n,32252))}},{name:"manage-setting-password",path:"password",component:function(){return n.e(607).then(n.bind(n,60607))}},{name:"manage-setting-system",path:"system",component:function(){return n.e(135).then(n.bind(n,87135))}}]},{name:"manage-project-invite",path:"project/invite",component:function(){return n.e(481).then(n.bind(n,49481))}},{name:"manage-project",path:"project/:id",component:function(){return n.e(726).then(n.bind(n,83726))}},{name:"manage-file",path:"file",component:function(){return n.e(955).then(n.bind(n,98955))}}]},{name:"single-file-msg",path:"/single/file/msg/:id",component:function(){return n.e(811).then(n.bind(n,55811))}},{name:"single-file-task",path:"/single/file/task/:id",component:function(){return n.e(157).then(n.bind(n,98157))}},{name:"single-file",path:"/single/file/:id",component:function(){return n.e(954).then(n.bind(n,29954))}},{name:"single-task",path:"/single/task/:id",component:function(){return n.e(423).then(n.bind(n,65423))}},{name:"login",path:"/login",component:function(){return n.e(21).then(n.bind(n,39021))}},{name:"404",path:"*",component:function(){return n.e(418).then(n.bind(n,54418))}}];function S(e,t){for(var n in t)e[n]=t[n];return e}var O=/[!'()*]/g,T=function(e){return"%"+e.charCodeAt(0).toString(16)},D=/%2C/g,E=function(e){return encodeURIComponent(e).replace(O,T).replace(D,",")};function $(e){try{return decodeURIComponent(e)}catch(e){0}return e}var M=function(e){return null==e||"object"==typeof e?e:String(e)};function P(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var n=e.replace(/\+/g," ").split("="),i=$(n.shift()),r=n.length>0?$(n.join("=")):null;void 0===t[i]?t[i]=r:Array.isArray(t[i])?t[i].push(r):t[i]=[t[i],r]})),t):t}function I(e){var t=e?Object.keys(e).map((function(t){var n=e[t];if(void 0===n)return"";if(null===n)return E(t);if(Array.isArray(n)){var i=[];return n.forEach((function(e){void 0!==e&&(null===e?i.push(E(t)):i.push(E(t)+"="+E(e)))})),i.join("&")}return E(t)+"="+E(n)})).filter((function(e){return e.length>0})).join("&"):null;return t?"?"+t:""}var j=/\/?$/;function A(e,t,n,i){var r=i&&i.options.stringifyQuery,a=t.query||{};try{a=N(a)}catch(e){}var o={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:a,params:t.params||{},fullPath:R(t,r),matched:e?F(e):[]};return n&&(o.redirectedFrom=R(n,r)),Object.freeze(o)}function N(e){if(Array.isArray(e))return e.map(N);if(e&&"object"==typeof e){var t={};for(var n in e)t[n]=N(e[n]);return t}return e}var L=A(null,{path:"/"});function F(e){for(var t=[];e;)t.unshift(e),e=e.parent;return t}function R(e,t){var n=e.path,i=e.query;void 0===i&&(i={});var r=e.hash;return void 0===r&&(r=""),(n||"/")+(t||I)(i)+r}function B(e,t,n){return t===L?e===t:!!t&&(e.path&&t.path?e.path.replace(j,"")===t.path.replace(j,"")&&(n||e.hash===t.hash&&V(e.query,t.query)):!(!e.name||!t.name)&&(e.name===t.name&&(n||e.hash===t.hash&&V(e.query,t.query)&&V(e.params,t.params))))}function V(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var n=Object.keys(e).sort(),i=Object.keys(t).sort();return n.length===i.length&&n.every((function(n,r){var a=e[n];if(i[r]!==n)return!1;var o=t[n];return null==a||null==o?a===o:"object"==typeof a&&"object"==typeof o?V(a,o):String(a)===String(o)}))}function z(e){for(var t=0;t=0&&(t=e.slice(i),e=e.slice(0,i));var r=e.indexOf("?");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{path:e,query:n,hash:t}}(r.path||""),u=t&&t.path||"/",c=l.path?q(l.path,u,n||r.append):u,d=function(e,t,n){void 0===t&&(t={});var i,r=n||P;try{i=r(e||"")}catch(e){i={}}for(var a in t){var o=t[a];i[a]=Array.isArray(o)?o.map(M):M(o)}return i}(l.query,r.query,i&&i.options.parseQuery),h=r.hash||l.hash;return h&&"#"!==h.charAt(0)&&(h="#"+h),{_normalized:!0,path:c,query:d,hash:h}}var he,fe=function(){},pe={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,n=this.$router,i=this.$route,r=n.resolve(this.to,i,this.append),a=r.location,o=r.route,s=r.href,l={},u=n.options.linkActiveClass,c=n.options.linkExactActiveClass,d=null==u?"router-link-active":u,h=null==c?"router-link-exact-active":c,f=null==this.activeClass?d:this.activeClass,p=null==this.exactActiveClass?h:this.exactActiveClass,m=o.redirectedFrom?A(null,de(o.redirectedFrom),null,n):o;l[p]=B(i,m,this.exactPath),l[f]=this.exact||this.exactPath?l[p]:function(e,t){return 0===e.path.replace(j,"/").indexOf(t.path.replace(j,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var n in t)if(!(n in e))return!1;return!0}(e.query,t.query)}(i,m);var v=l[p]?this.ariaCurrentValue:null,g=function(e){me(e)&&(t.replace?n.replace(a,fe):n.push(a,fe))},b={click:me};Array.isArray(this.event)?this.event.forEach((function(e){b[e]=g})):b[this.event]=g;var y={class:l},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:o,navigate:g,isActive:l[f],isExactActive:l[p]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?e():e("span",{},_)}if("a"===this.tag)y.on=b,y.attrs={href:s,"aria-current":v};else{var w=ve(this.$slots.default);if(w){w.isStatic=!1;var x=w.data=S({},w.data);for(var C in x.on=x.on||{},x.on){var k=x.on[C];C in b&&(x.on[C]=Array.isArray(k)?k:[k])}for(var O in b)O in x.on?x.on[O].push(b[O]):x.on[O]=g;var T=w.data.attrs=S({},w.data.attrs);T.href=s,T["aria-current"]=v}else y.on=b}return e(this.tag,y,this.$slots.default)}};function me(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){var t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function ve(e){if(e)for(var t,n=0;n-1&&(s.params[h]=n.params[h]);return s.path=ce(c.path,s.params),l(c,s,o)}if(s.path){s.params={};for(var f=0;f=e.length?n():e[r]?t(e[r],(function(){i(r+1)})):i(r+1)};i(0)}var He={redirected:2,aborted:4,cancelled:8,duplicated:16};function We(e,t){return Ue(e,t,He.redirected,'Redirected when going from "'+e.fullPath+'" to "'+function(e){if("string"==typeof e)return e;if("path"in e)return e.path;var t={};return Ke.forEach((function(n){n in e&&(t[n]=e[n])})),JSON.stringify(t,null,2)}(t)+'" via a navigation guard.')}function qe(e,t){return Ue(e,t,He.cancelled,'Navigation cancelled from "'+e.fullPath+'" to "'+t.fullPath+'" with a new navigation.')}function Ue(e,t,n,i){var r=new Error(i);return r._isRouter=!0,r.from=e,r.to=t,r.type=n,r}var Ke=["params","query","hash"];function Ge(e){return Object.prototype.toString.call(e).indexOf("Error")>-1}function Ye(e,t){return Ge(e)&&e._isRouter&&(null==t||e.type===t)}function Ze(e){return function(t,n,i){var r=!1,a=0,o=null;Xe(e,(function(e,t,n,s){if("function"==typeof e&&void 0===e.cid){r=!0,a++;var l,u=et((function(t){var r;((r=t).__esModule||Qe&&"Module"===r[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:he.extend(t),n.components[s]=t,--a<=0&&i()})),c=et((function(e){var t="Failed to resolve async component "+s+": "+e;o||(o=Ge(e)?e:new Error(t),i(o))}));try{l=e(u,c)}catch(e){c(e)}if(l)if("function"==typeof l.then)l.then(u,c);else{var d=l.component;d&&"function"==typeof d.then&&d.then(u,c)}}})),r||i()}}function Xe(e,t){return Je(e.map((function(e){return Object.keys(e.components).map((function(n){return t(e.components[n],e.instances[n],e,n)}))})))}function Je(e){return Array.prototype.concat.apply([],e)}var Qe="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function et(e){var t=!1;return function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];if(!t)return t=!0,e.apply(this,n)}}var tt=function(e,t){this.router=e,this.base=function(e){if(!e)if(ge){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=L,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function nt(e,t,n,i){var r=Xe(e,(function(e,i,r,a){var o=function(e,t){"function"!=typeof e&&(e=he.extend(e));return e.options[t]}(e,t);if(o)return Array.isArray(o)?o.map((function(e){return n(e,i,r,a)})):n(o,i,r,a)}));return Je(i?r.reverse():r)}function it(e,t){if(t)return function(){return e.apply(t,arguments)}}tt.prototype.listen=function(e){this.cb=e},tt.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},tt.prototype.onError=function(e){this.errorCbs.push(e)},tt.prototype.transitionTo=function(e,t,n){var i,r=this;try{i=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var a=this.current;this.confirmTransition(i,(function(){r.updateRoute(i),t&&t(i),r.ensureURL(),r.router.afterHooks.forEach((function(e){e&&e(i,a)})),r.ready||(r.ready=!0,r.readyCbs.forEach((function(e){e(i)})))}),(function(e){n&&n(e),e&&!r.ready&&(Ye(e,He.redirected)&&a===L||(r.ready=!0,r.readyErrorCbs.forEach((function(t){t(e)}))))}))},tt.prototype.confirmTransition=function(e,t,n){var i=this,r=this.current;this.pending=e;var a,o,s=function(e){!Ye(e)&&Ge(e)&&(i.errorCbs.length?i.errorCbs.forEach((function(t){t(e)})):console.error(e)),n&&n(e)},l=e.matched.length-1,u=r.matched.length-1;if(B(e,r)&&l===u&&e.matched[l]===r.matched[u])return this.ensureURL(),e.hash&&$e(this.router,r,e,!1),s(((o=Ue(a=r,e,He.duplicated,'Avoided redundant navigation to current location: "'+a.fullPath+'".')).name="NavigationDuplicated",o));var c=function(e,t){var n,i=Math.max(e.length,t.length);for(n=0;n0)){var t=this.router,n=t.options.scrollBehavior,i=Re&&n;i&&this.listeners.push(Ee());var r=function(){var n=e.current,r=at(e.base);e.current===L&&r===e._startLocation||e.transitionTo(r,(function(e){i&&$e(t,e,n,!0)}))};window.addEventListener("popstate",r),this.listeners.push((function(){window.removeEventListener("popstate",r)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){Be(U(i.base+e.fullPath)),$e(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){Ve(U(i.base+e.fullPath)),$e(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.ensureURL=function(e){if(at(this.base)!==this.current.fullPath){var t=U(this.base+this.current.fullPath);e?Be(t):Ve(t)}},t.prototype.getCurrentLocation=function(){return at(this.base)},t}(tt);function at(e){var t=window.location.pathname,n=t.toLowerCase(),i=e.toLowerCase();return!e||n!==i&&0!==n.indexOf(U(i+"/"))||(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var ot=function(e){function t(t,n,i){e.call(this,t,n),i&&function(e){var t=at(e);if(!/^\/#/.test(t))return window.location.replace(U(e+"/#"+t)),!0}(this.base)||st()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,n=Re&&t;n&&this.listeners.push(Ee());var i=function(){var t=e.current;st()&&e.transitionTo(lt(),(function(i){n&&$e(e.router,i,t,!0),Re||dt(i.fullPath)}))},r=Re?"popstate":"hashchange";window.addEventListener(r,i),this.listeners.push((function(){window.removeEventListener(r,i)}))}},t.prototype.push=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){ct(e.fullPath),$e(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,(function(e){dt(e.fullPath),$e(i.router,e,r,!1),t&&t(e)}),n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;lt()!==t&&(e?ct(t):dt(t))},t.prototype.getCurrentLocation=function(){return lt()},t}(tt);function st(){var e=lt();return"/"===e.charAt(0)||(dt("/"+e),!1)}function lt(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function ut(e){var t=window.location.href,n=t.indexOf("#");return(n>=0?t.slice(0,n):t)+"#"+e}function ct(e){Re?Be(ut(e)):window.location.hash=e}function dt(e){Re?Ve(ut(e)):window.location.replace(ut(e))}var ht=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var i=this;this.transitionTo(e,(function(e){i.stack=i.stack.slice(0,i.index+1).concat(e),i.index++,t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var i=this;this.transitionTo(e,(function(e){i.stack=i.stack.slice(0,i.index).concat(e),t&&t(e)}),n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var i=this.stack[n];this.confirmTransition(i,(function(){var e=t.current;t.index=n,t.updateRoute(i),t.router.afterHooks.forEach((function(t){t&&t(i,e)}))}),(function(e){Ye(e,He.duplicated)&&(t.index=n)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(tt),ft=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=we(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!Re&&!1!==e.fallback,this.fallback&&(t="hash"),ge||(t="abstract"),this.mode=t,t){case"history":this.history=new rt(this,e.base);break;case"hash":this.history=new ot(this,e.base,this.fallback);break;case"abstract":this.history=new ht(this,e.base)}},pt={currentRoute:{configurable:!0}};function mt(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}ft.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},pt.currentRoute.get=function(){return this.history&&this.history.current},ft.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=t.apps.indexOf(e);n>-1&&t.apps.splice(n,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof rt||n instanceof ot){var i=function(e){n.setupListeners(),function(e){var i=n.current,r=t.options.scrollBehavior;Re&&r&&"fullPath"in e&&$e(t,e,i,!1)}(e)};n.transitionTo(n.getCurrentLocation(),i,i)}n.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},ft.prototype.beforeEach=function(e){return mt(this.beforeHooks,e)},ft.prototype.beforeResolve=function(e){return mt(this.resolveHooks,e)},ft.prototype.afterEach=function(e){return mt(this.afterHooks,e)},ft.prototype.onReady=function(e,t){this.history.onReady(e,t)},ft.prototype.onError=function(e){this.history.onError(e)},ft.prototype.push=function(e,t,n){var i=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){i.history.push(e,t,n)}));this.history.push(e,t,n)},ft.prototype.replace=function(e,t,n){var i=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){i.history.replace(e,t,n)}));this.history.replace(e,t,n)},ft.prototype.go=function(e){this.history.go(e)},ft.prototype.back=function(){this.go(-1)},ft.prototype.forward=function(){this.go(1)},ft.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},ft.prototype.resolve=function(e,t,n){var i=de(e,t=t||this.history.current,n,this),r=this.match(i,t),a=r.redirectedFrom||r.fullPath,o=function(e,t,n){var i="hash"===n?"#"+t:t;return e?U(e+"/"+i):i}(this.history.base,a,this.mode);return{location:i,route:r,href:o,normalizedTo:i,resolved:r}},ft.prototype.getRoutes=function(){return this.matcher.getRoutes()},ft.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==L&&this.history.transitionTo(this.history.getCurrentLocation())},ft.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==L&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(ft.prototype,pt),ft.install=function e(t){if(!e.installed||he!==t){e.installed=!0,he=t;var n=function(e){return void 0!==e},i=function(e,t){var i=e.$options._parentVnode;n(i)&&n(i=i.data)&&n(i=i.registerRouteInstance)&&i(e,t)};t.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,i(this,this)},destroyed:function(){i(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",H),t.component("RouterLink",pe);var r=t.config.optionMergeStrategies;r.beforeRouteEnter=r.beforeRouteLeave=r.beforeRouteUpdate=r.created}},ft.version="3.5.3",ft.isNavigationFailure=Ye,ft.NavigationFailureType=He,ft.START_LOCATION=L,ge&&window.Vue&&window.Vue.use(ft);const vt=ft;var gt=n(40158),bt=n.n(gt);function yt(e){return function(e){if(Array.isArray(e))return _t(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return _t(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _t(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);ne.length)&&(t=e.length);for(var n=0,i=new Array(t);n0){window.__projectId=t;var n=e.cacheProjects.find((function(e){return e.id==t}));if(n)return n}return{}},projectParameter:function(e){return function(t){if(!e.projectId)return!1;var n=e.cacheProjectParameter.find((function(t){return t.project_id==e.projectId}));return n||(n=$A.projectParameterTemplate(e.projectId),e.cacheProjectParameter.push(n)),n&&!!n[t]}},taskData:function(e){var t=e.taskId;if(0==t&&(t=$A.runNum(window.__taskId)),t>0){window.__taskId=t;var n=e.cacheTasks.find((function(e){return e.id==t}));if(n)return n}return{}},transforTasks:function(e){return function(t){return t.filter((function(e){var n=e.parent_id;return!(n>0&&t.find((function(e){return e.id==n})))})).map((function(n){if(n.parent_id>0){var i=e.cacheTasks.find((function(e){return e.id==n.parent_id}));return i?Object.assign({},i,{id:n.id,parent_id:n.parent_id,name:n.name,start_at:n.start_at,end_at:n.end_at,complete_at:n.complete_at,_time:n._time,flow_item_id:n.flow_item_id,flow_item_name:n.flow_item_name,flow_item_status:n.flow_item_status,sub_top:!0,sub_my:[]}):Object.assign({},n,{sub_top:!0,sub_my:[]})}return Object.assign({},n,{sub_top:!1,sub_my:t.filter((function(e){return e.parent_id==n.id}))})}))}},dashboardTask:function(e){var t,n=$A.Date($A.formatDate("Y-m-d 00:00:00")),i=$A.Date($A.formatDate("Y-m-d 23:59:59")),r=$A.Date($A.formatDate("Y-m-d H:i:s")),a=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return!e.archived_at&&((!e.complete_at||!0!==t)&&(!!e.end_at&&e.owner))},o=e.cacheTasks.filter((function(e){return a(e)})),s=e.taskCompleteTemps.filter((function(e){return a(e,!1)}));s.length>0&&(t=o=$A.cloneJSON(o)).push.apply(t,Tt(s));return{today:o.filter((function(e){var t=$A.Date(e.start_at),r=$A.Date(e.end_at);return t<=n&&n<=r||t<=i&&i<=r||t>n&&i>r})),overdue:o.filter((function(e){return $A.Date(e.end_at)<=r}))}}};function $t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var i,r,a=[],o=!0,s=!1;try{for(n=n.call(e);!(o=(i=n.next()).done)&&(a.push(i.value),!t||a.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{o||null==n.return||n.return()}finally{if(s)throw r}}return a}(e,t)||Pt(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Mt(e){return function(e){if(Array.isArray(e))return It(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Pt(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pt(e,t){if(e){if("string"==typeof e)return It(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?It(e,t):void 0}}function It(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n0?r.token||n.userToken:"",n.userInfo=r,n.userId=r.userid,n.userToken=r.token,n.userIsAdmin=$A.inArray("admin",r.identity),$A.setStorage("userInfo",n.userInfo),i("getBasicData"),i("websocketConnection"),e()}))},saveUserOnlineStatus:function(e,t){var n=e.state,i=t.userid,r=t.online;n.userOnline[i]!==r&&(n.userOnline=Object.assign({},n.userOnline,jt({},i,r)))},getUserBasic:function(e,t){var n=e.state,i=e.dispatch;if(!0!==n.cacheLoading.loadUserBasic){var r=$A.Time(),a=$A.cloneJSON(n.cacheUserWait);t&&t.userid&&a.push(t),n.cacheUserWait=[];var o=[],s=0;a.some((function(e){var t=n.cacheUserBasic.find((function(t){return t.userid==e.userid}));if(t&&r-t._time<=30)return setTimeout((function(){n.cacheUserActive=Object.assign(t,{__:Math.random()}),d.Store.set("cacheUserActive",t)}),s+=5),!1;o.push(e)})),0!==o.length&&(o.length>30&&(n.cacheUserWait=o.slice(30),o=o.slice(0,30)),n.cacheLoading.loadUserBasic=!0,i("call",{url:"users/basic",data:{userid:Mt(new Set(o.map((function(e){return e.userid}))))}}).then((function(e){r=$A.Time(),o.forEach((function(t){var n=e.data.find((function(e){return e.userid==t.userid}))||Object.assign(t,{email:""});n._time=r,i("saveUserBasic",n)})),n.cacheLoading.loadUserBasic=!1,i("getUserBasic")})).catch((function(e){console.warn(e),n.cacheLoading.loadUserBasic=!1,i("getUserBasic")})))}else t&&n.cacheUserWait.push(t)},saveUserBasic:function(e,t){var n=e.state;$A.execMainDispatch("saveUserBasic",t);var i=n.cacheUserBasic.findIndex((function(e){return e.userid==t.userid}));i>-1?(t=Object.assign({},n.cacheUserBasic[i],t),n.cacheUserBasic.splice(i,1,t)):n.cacheUserBasic.push(t),n.cacheUserActive=Object.assign(t,{__:Math.random()}),d.Store.set("cacheUserActive",t),setTimeout((function(){$A.setStorage("cacheUserBasic",n.cacheUserBasic)}))},userNickNameInput:function(e){var t=e.dispatch;return new Promise((function(e,n){var i=function(t,i){"function"==typeof t&&t(),!0===i?setTimeout(e,301):setTimeout(n,301)};$A.modalInput({title:"设置昵称",placeholder:"请输入昵称",okText:"保存",onOk:function(e,n){e?t("call",{url:"users/editdata",data:{nickname:e},checkNick:!1}).then((function(){t("getUserInfo").then((function(){i(n,!0)})).catch((function(){i(n,!1)}))})).catch((function(e){var t=e.msg;$A.modalError(t,301),i(n,!1)})):i(n,!1)},onCancel:function(){i(null,!1)}})}))},logout:function(e){e.state;var t=e.dispatch,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t("handleClearCache",{}).then((function(){var e=["/","/login"].includes(window.location.pathname)?"":encodeURIComponent(window.location.href);!1===n&&(e=null),$A.goForward({name:"login",query:e?{from:e}:{}},!0)}))},handleClearCache:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e){try{var r=$A.getStorageString("cacheLoginEmail"),a=$A.getStorageString("cacheThemeMode");window.localStorage.clear(),n.cacheUserBasic=[],n.cacheDialogs=[],n.cacheProjects=[],n.cacheColumns=[],n.cacheTasks=[],$A.setStorage("cacheProjectParameter",n.cacheProjectParameter),$A.setStorage("cacheServerUrl",n.cacheServerUrl),$A.setStorage("cacheLoginEmail",r),$A.setStorage("cacheThemeMode",a),i("saveUserInfo",$A.isJson(t)?t:n.userInfo),e()}catch(t){e()}}))},saveFile:function(e,t){var n=e.state,i=e.dispatch;if($A.execMainDispatch("saveFile",t),$A.isArray(t))t.forEach((function(e){i("saveFile",e)}));else if($A.isJson(t)){var r={_load:!1,_edit:!1},a=n.files.findIndex((function(e){return e.id==t.id}));a>-1?n.files.splice(a,1,Object.assign(r,n.files[a],t)):n.files.push(Object.assign(r,t))}},forgetFile:function(e,t){var n=e.state,i=e.dispatch;$A.execMainDispatch("forgetFile",t),($A.isArray(t)?t:[t]).some((function(e){n.files=n.files.filter((function(t){return t.id!=e})),n.files.some((function(t){t.pid==e&&i("forgetFile",t.id)}))}))},getFiles:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){i("call",{url:"file/lists",data:{pid:t}}).then((function(r){var a=r.data.map((function(e){return e.id}));n.files=n.files.filter((function(e){return e.pid!=t||a.includes(e.id)})),i("saveFile",r.data),e(r)})).catch((function(e){console.warn(e),r(e)}))}))},searchFiles:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){n("call",{url:"file/search",data:{key:t}}).then((function(t){n("saveFile",t.data),e(t)})).catch((function(e){console.warn(e),i(e)}))}))},saveProject:function(e,t){var n=e.state,i=e.dispatch;if($A.execMainDispatch("saveProject",t),$A.isArray(t))t.forEach((function(e){i("saveProject",e)}));else if($A.isJson(t)){void 0!==t.project_column&&(i("saveColumn",t.project_column),delete t.project_column);var r=n.cacheProjects.findIndex((function(e){return e.id==t.id}));r>-1?n.cacheProjects.splice(r,1,Object.assign({},n.cacheProjects[r],t)):(void 0===t.project_user&&(t.project_user=[]),n.cacheProjects.push(t)),n.cacheDialogs.some((function(e){if("group"==e.type&&"project"==e.group_type&&e.group_info.id==t.id)for(var n in void 0!==t.name&&(e.name=t.name),e.group_info)e.group_info.hasOwnProperty(n)&&void 0!==t[n]&&(e.group_info[n]=t[n])})),setTimeout((function(){$A.setStorage("cacheProjects",n.cacheProjects)}))}},forgetProject:function(e,t){var n=e.state;$A.execMainDispatch("forgetProject",t);var i=$A.isArray(t)?t:[t];if(i.some((function(e){var t=n.cacheProjects.findIndex((function(t){return t.id==e}));t>-1&&n.cacheProjects.splice(t,1)})),i.includes(n.projectId)){var r=n.cacheProjects.find((function(e){var n=e.id;return n&&n!=t}));r?$A.goForward({path:"/manage/project/"+r.id}):$A.goForward({path:"/manage/dashboard"})}setTimeout((function(){$A.setStorage("cacheProjects",n.cacheProjects)}))},getProjects:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){if(0===n.userId)return n.cacheProjects=[],void r({msg:"Parameter error"});i("call",{url:"project/lists",data:t||{}}).then((function(t){var r=t.data;n.projectTotal=r.total_all,i("saveProject",r.data),e(r)})).catch((function(e){console.warn(e),r(e)}))}))},getProjectOne:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){0!==$A.runNum(t)?(n.projectLoad++,i("call",{url:"project/one",data:{project_id:t}}).then((function(t){n.projectLoad--,i("saveProject",t.data),e(t)})).catch((function(e){console.warn(e),n.projectLoad--,r(e)}))):r({msg:"Parameter error"})}))},archivedProject:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){0!==$A.runNum(t)?n("call",{url:"project/archived",data:{project_id:t}}).then((function(i){n("forgetProject",t),e(i)})).catch((function(e){console.warn(e),n("getProjectOne",t).catch((function(){})),i(e)})):i({msg:"Parameter error"})}))},removeProject:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){0!==$A.runNum(t)?n("call",{url:"project/remove",data:{project_id:t}}).then((function(i){n("forgetProject",t),e(i)})).catch((function(e){console.warn(e),n("getProjectOne",t).catch((function(){})),i(e)})):i({msg:"Parameter error"})}))},exitProject:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){0!==$A.runNum(t)?n("call",{url:"project/exit",data:{project_id:t}}).then((function(i){n("forgetProject",t),e(i)})).catch((function(e){console.warn(e),n("getProjectOne",t).catch((function(){})),i(e)})):i({msg:"Parameter error"})}))},saveColumn:function(e,t){var n=e.state,i=e.dispatch;if($A.execMainDispatch("saveColumn",t),$A.isArray(t))t.forEach((function(e){i("saveColumn",e)}));else if($A.isJson(t)){var r=n.cacheColumns.findIndex((function(e){return e.id==t.id}));r>-1?n.cacheColumns.splice(r,1,Object.assign({},n.cacheColumns[r],t)):n.cacheColumns.push(t),setTimeout((function(){$A.setStorage("cacheColumns",n.cacheColumns)}))}},forgetColumn:function(e,t){var n=e.state,i=e.dispatch;$A.execMainDispatch("forgetColumn",t);var r=$A.isArray(t)?t:[t],a=[];r.some((function(e){var t=n.cacheColumns.findIndex((function(t){return t.id==e}));t>-1&&(a.push(n.cacheColumns[t].project_id),i("getProjectOne",n.cacheColumns[t].project_id).catch((function(){})),n.cacheColumns.splice(t,1))})),Array.from(new Set(a)).some((function(e){return i("getProjectOne",e).catch((function(){}))})),setTimeout((function(){$A.setStorage("cacheColumns",n.cacheColumns)}))},getColumns:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){if(0===n.userId)return n.cacheColumns=[],void r({msg:"Parameter error"});n.projectLoad++,i("call",{url:"project/column/lists",data:{project_id:t}}).then((function(r){var a=r.data;n.projectLoad--;var o=a.data.map((function(e){return e.id}));if(n.cacheColumns=n.cacheColumns.filter((function(e){return e.project_id!=t||o.includes(e.id)})),i("saveColumn",a.data),e(a.data),1===n.cacheColumns.filter((function(e){return e.project_id==t})).length){var s=n.cacheProjectParameter.find((function(e){return e.project_id==t}))||{};void 0!==s.cardInit&&!1!==s.cardInit||i("toggleProjectParameter",{project_id:t,key:{card:!1,cardInit:!0}})}})).catch((function(e){console.warn(e),n.projectLoad--,r(e)}))}))},removeColumn:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){0!==$A.runNum(t)?n("call",{url:"project/column/remove",data:{column_id:t}}).then((function(i){n("forgetColumn",t),e(i)})).catch((function(e){console.warn(e),i(e)})):i({msg:"Parameter error"})}))},saveTask:function(e,t){var n=e.state,i=e.dispatch;if($A.execMainDispatch("saveTask",t),$A.isArray(t))t.forEach((function(e){i("saveTask",e)}));else if($A.isJson(t)){if(t._time=$A.Time(),t.flow_item_name&&-1!==t.flow_item_name.indexOf("|")){var r=$t(t.flow_item_name.split("|"),2);t.flow_item_status=r[0],t.flow_item_name=r[1]}void 0!==t.archived_at&&n.cacheTasks.filter((function(e){return e.parent_id==t.id})).some((function(e){i("saveTask",Object.assign(e,{archived_at:t.archived_at,archived_userid:t.archived_userid}))}));var a={};void 0!==t.update_marking&&(a=$A.isJson(t.update_marking)?t.update_marking:{},delete t.update_marking);var o=n.cacheTasks.findIndex((function(e){return e.id==t.id}));o>-1?n.cacheTasks.splice(o,1,Object.assign({},n.cacheTasks[o],t)):n.cacheTasks.push(t),(!0===a.is_update_maintask||t.parent_id>0&&-1===n.cacheTasks.findIndex((function(e){return e.id==t.parent_id})))&&i("getTaskOne",t.parent_id).catch((function(){})),!0===a.is_update_project&&i("getProjectOne",t.project_id).catch((function(){})),!0===a.is_update_content&&i("getTaskContent",t.id),!0===a.is_update_subtask&&i("getTaskForParent",t.id).catch((function(){})),n.cacheDialogs.some((function(e){if("group"==e.type&&"task"==e.group_type&&e.group_info.id==t.id)for(var n in void 0!==t.name&&(e.name=t.name),e.group_info)e.group_info.hasOwnProperty(n)&&void 0!==t[n]&&(e.group_info[n]=t[n])})),setTimeout((function(){$A.setStorage("cacheTasks",n.cacheTasks)}))}},forgetTask:function(e,t){var n=e.state,i=e.dispatch;$A.execMainDispatch("forgetTask",t);var r=$A.isArray(t)?t:[t],a=[],o=[];r.some((function(e){var t=n.cacheTasks.findIndex((function(t){return t.id==e}));t>-1&&(n.cacheTasks[t].parent_id&&a.push(n.cacheTasks[t].parent_id),o.push(n.cacheTasks[t].project_id),n.cacheTasks.splice(t,1))})),Array.from(new Set(a)).some((function(e){return i("getTaskOne",e).catch((function(){}))})),Array.from(new Set(o)).some((function(e){return i("getProjectOne",e).catch((function(){}))})),r.includes(n.taskId)&&(n.taskId=0),setTimeout((function(){$A.setStorage("cacheTasks",n.cacheTasks)}))},increaseTaskMsgNum:function(e,t){var n=e.state;$A.execMainDispatch("increaseTaskMsgNum",t);var i=n.cacheTasks.find((function(e){return e.dialog_id===t}));i&&i.msg_num++},getTasks:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){if(0===n.userId)return n.cacheTasks=[],void r({msg:"Parameter error"});t.project_id&&n.projectLoad++,i("call",{url:"project/task/lists",data:t}).then((function(a){t.project_id&&n.projectLoad--;var o=a.data;if(i("saveTask",o.data),o.next_page_url){var s=Object.assign(t,{page:o.current_page+1});o.current_page%5==0?$A.modalWarning({content:"数据已超过"+o.to+"条,是否继续加载?",onOk:function(){i("getTasks",s).then(e).catch(r)},onCancel:function(){e()}}):i("getTasks",s).then(e).catch(r)}else e()})).catch((function(e){console.warn(e),r(e),t.project_id&&n.projectLoad--}))}))},getTaskOne:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){/^\d+$/.test(t)&&(t={task_id:t}),0!==$A.runNum(t.task_id)?n("call",{url:"project/task/one",data:t}).then((function(t){n("saveTask",t.data),e(t)})).catch((function(e){console.warn(e),i(e)})):i({msg:"Parameter error"})}))},getTaskForDashboard:function(e){var t=e.state,n=e.dispatch,i=e.getters;if(!0!==t.cacheLoading.loadDashboardTasks){t.cacheLoading.loadDashboardTasks=!0;var r=$A.Time(),a=i.dashboardTask,o=a.today,s=a.overdue,l=o.map((function(e){return e.id}));l.push.apply(l,Mt(s.map((function(e){return e.id}))));var u=2;!function e(){if(u<=0){t.cacheLoading.loadDashboardTasks=!1;var a=i.dashboardTask,o=a.today,s=a.overdue,c=o.filter((function(e){return e._time>=r})).map((function(e){return e.id}));return c.push.apply(c,Mt(s.filter((function(e){return e._time>=r})).map((function(e){return e.id})))),void n("forgetTask",l.filter((function(e){return-1==c.indexOf(e)})))}1==--u?n("getTasks",{complete:"no",time:[$A.formatDate("Y-m-d 00:00:00"),$A.formatDate("Y-m-d 23:59:59")]}).then(e).catch(e):0==u&&n("getTasks",{complete:"no",time_before:$A.formatDate("Y-m-d H:i:s")}).then(e).catch(e)}()}},getTaskForProject:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){var a=$A.Time(),o=n.cacheTasks.filter((function(e){return e.project_id==t})).map((function(e){return e.id})),s=function(){var e=n.cacheTasks.filter((function(e){return e.project_id==t&&e._time>=a})).map((function(e){return e.id}));i("forgetTask",o.filter((function(t){return-1==e.indexOf(t)})))};i("getTasks",{project_id:t}).then((function(){s(),e()})).catch((function(){s(),r()}))}))},getTaskForParent:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){var a=$A.Time(),o=n.cacheTasks.filter((function(e){return e.parent_id==t})).map((function(e){return e.id})),s=function(){var e=n.cacheTasks.filter((function(e){return e.parent_id==t&&e._time>=a})).map((function(e){return e.id}));i("forgetTask",o.filter((function(t){return-1==e.indexOf(t)})))};i("getTasks",{parent_id:t,archived:"all"}).then((function(){s(),e()})).catch((function(){s(),r()}))}))},removeTask:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){0!==$A.runNum(t)?(n("taskLoadStart",t),n("call",{url:"project/task/remove",data:{task_id:t}}).then((function(i){n("forgetTask",t),n("taskLoadEnd",t),e(i)})).catch((function(e){console.warn(e),n("getTaskOne",t).catch((function(){})),n("taskLoadEnd",t),i(e)}))):i({msg:"Parameter error"})}))},archivedTask:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){/^\d+$/.test(t)&&(t={task_id:t}),0!==$A.runNum(t.task_id)?(n("taskLoadStart",t.task_id),n("call",{url:"project/task/archived",data:t}).then((function(i){n("saveTask",i.data),n("taskLoadEnd",t.task_id),e(i)})).catch((function(e){console.warn(e),n("getTaskOne",t.task_id).catch((function(){})),n("taskLoadEnd",t.task_id),i(e)}))):i({msg:"Parameter error"})}))},getTaskContent:function(e,t){var n=e.state,i=e.dispatch;0!==$A.runNum(t)&&i("call",{url:"project/task/content",data:{task_id:t}}).then((function(e){var t=n.taskContents.findIndex((function(t){return t.id==e.data.id}));t>-1?n.taskContents.splice(t,1,e.data):n.taskContents.push(e.data)})).catch((function(e){console.warn(e)}))},getTaskFiles:function(e,t){var n=e.state,i=e.dispatch;0!==$A.runNum(t)&&i("call",{url:"project/task/files",data:{task_id:t}}).then((function(e){e.data.forEach((function(e){var t=n.taskFiles.findIndex((function(t){return t.id==e.id}));t>-1?n.taskFiles.splice(t,1,e):n.taskFiles.push(e)})),i("saveTask",{id:t,file_num:e.data.length})})).catch((function(e){console.warn(e)}))},forgetTaskFile:function(e,t){var n=e.state;e.dispatch;($A.isArray(t)?t:[t]).some((function(e){var t=n.taskFiles.findIndex((function(t){return t.id==e}));t>-1&&n.taskFiles.splice(t,1)}))},openTask:function(e,t){var n=e.state,i=e.dispatch,r=t;$A.isJson(t)&&(r=t.parent_id>0?t.parent_id:t.id),n.taskId=r,r>0&&i("getTaskOne",{task_id:r,archived:"all"}).then((function(){i("getTaskContent",r),i("getTaskFiles",r),i("getTaskForParent",r).catch((function(){}))})).catch((function(e){var t=e.msg;$A.modalWarning({content:t,onOk:function(){n.taskId=0}})}))},taskAdd:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){var r=$A.cloneJSON($A.date2string(t));$A.isArray(r.column_id)&&(r.column_id=r.column_id.find((function(e){return e}))),n("call",{url:"project/task/add",data:r,method:"post"}).then((function(t){n("addTaskSuccess",t.data),e(t)})).catch((function(e){console.warn(e),i(e)}))}))},taskAddSub:function(e,t){var n=e.dispatch;return new Promise((function(e,i){n("call",{url:"project/task/addsub",data:t}).then((function(t){n("addTaskSuccess",t.data),e(t)})).catch((function(e){console.warn(e),i(e)}))}))},addTaskSuccess:function(e,t){var n=e.dispatch;void 0!==t.new_column&&(n("saveColumn",t.new_column),delete t.new_column),n("saveTask",t),n("getProjectOne",t.project_id).catch((function(){}))},taskUpdate:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){n("taskBeforeUpdate",t).then((function(t){n("taskLoadStart",t.task_id),n("call",{url:"project/task/update",data:t,method:"post"}).then((function(i){n("taskLoadEnd",t.task_id),n("saveTask",i.data),e(i)})).catch((function(e){console.warn(e),n("taskLoadEnd",t.task_id),n("getTaskOne",t.task_id).catch((function(){})),i(e)}))})).catch(i)}))},taskBeforeUpdate:function(e,t){var n=e.state;e.dispatch;return new Promise((function(e,i){var r=$A.cloneJSON($A.date2string(t)),a="温馨提示",o=null;if(void 0!==r.times){!1===t.times[0]&&(o="你确定要取消任务时间吗?");var s=n.cacheTasks.find((function(e){return e.id==r.task_id}));a=s.parent_id>0?"更新子任务":"更新主任务",s&&(s.parent_id>0?r.times[0]&&n.cacheTasks.some((function(e){if(e.id!=s.parent_id)return!1;if(!e.end_at)return o="主任务没有设置时间,设置子任务将同步设置主任务",!0;var t=$A.Date(r.times[0],!0),n=$A.Date(r.times[1],!0),i=$A.Date(e.start_at,!0),a=$A.Date(e.end_at,!0);return ta?(o="新设置的子任务结束时间在主任务时间之外,修改后将同步修改主任务",!0):void 0})):n.cacheTasks.some((function(e){if(e.parent_id!=s.id)return!1;if(!e.end_at)return!1;var t=$A.Date(r.times[0],!0),n=$A.Date(r.times[1],!0),i=$A.Date(s.start_at,!0),a=$A.Date(s.end_at,!0),l=$A.Date(e.start_at,!0),u=$A.Date(e.end_at,!0);return(i!=l||a!=u)&&(r.times[0]?t>l?(o="新设置的开始时间在子任务(".concat(e.name,")时间之内,修改后将同步修改子任务"),!0):n-1?n.taskFlowItems.splice(t,1,e):n.taskFlowItems.push(e)})),delete i.turns;var r=n.taskFlows.findIndex((function(e){return e.task_id==i.task_id}));r>-1?n.taskFlows.splice(r,1,i):n.taskFlows.push(i),e(t)})).catch((function(e){console.warn(e),r(e)}))}))},getTaskPriority:function(e){var t=e.state,n=e.dispatch;return new Promise((function(e,i){n("call",{url:"system/priority"}).then((function(n){t.taskPriority=n.data,e(n)})).catch((function(e){console.warn(e),i(e)}))}))},getColumnTemplate:function(e){var t=e.state,n=e.dispatch;return new Promise((function(e,i){n("call",{url:"system/column/template"}).then((function(n){t.columnTemplate=n.data,e(n)})).catch((function(e){console.warn(e),i(e)}))}))},saveTaskCompleteTemp:function(e,t){var n=e.state;if($A.isJson(t)){var i=n.taskCompleteTemps.findIndex((function(e){return e.id==t.id}));i>-1?n.taskCompleteTemps.splice(i,1,t):n.taskCompleteTemps.push(t)}},forgetTaskCompleteTemp:function(e,t){var n=e.state;if(!0!==t){var i=n.taskCompleteTemps.findIndex((function(e){return e.id==t}));i>-1&&n.taskCompleteTemps.splice(i,1)}else n.taskCompleteTemps=[]},saveDialog:function(e,t){var n=e.state,i=e.dispatch;if($A.execMainDispatch("saveDialog",t),$A.isArray(t))t.forEach((function(e){i("saveDialog",e)}));else if($A.isJson(t)){var r=n.cacheDialogs.findIndex((function(e){return e.id==t.id}));r>-1?n.cacheDialogs.splice(r,1,Object.assign({},n.cacheDialogs[r],t)):n.cacheDialogs.push(t),setTimeout((function(){$A.setStorage("cacheDialogs",n.cacheDialogs)}))}},updateDialogLastMsg:function(e,t){var n=e.state,i=e.dispatch;$A.execMainDispatch("updateDialogLastMsg",t),n.cacheDialogs.find((function(e){return e.id==t.dialog_id}))?i("saveDialog",{id:t.dialog_id,last_msg:t,last_at:$A.formatDate("Y-m-d H:i:s")}):i("getDialogOne",t.dialog_id).catch((function(){}))},getDialogs:function(e){var t=e.state,n=e.dispatch;0!==t.userId?n("call",{url:"dialog/lists"}).then((function(e){n("saveDialog",e.data.data)})).catch((function(e){console.warn(e)})):t.cacheDialogs=[]},getDialogOne:function(e,t){e.state;var n=e.dispatch;return new Promise((function(e,i){0!==$A.runNum(t)?n("call",{url:"dialog/one",data:{dialog_id:t}}).then((function(t){n("saveDialog",t.data),e(t)})).catch((function(e){console.warn(e),i(e)})):i({msg:"Parameter error"})}))},openDialogUserid:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){t!==n.userId?(n.dialogOpenId=0,i("call",{url:"dialog/open/user",data:{userid:t}}).then((function(t){i("saveDialog",t.data),$A.setStorage("messenger::dialogId",t.data.id),n.dialogOpenId=t.data.id,e(t)})).catch((function(e){console.warn(e),r(e)}))):r({msg:"Parameter error"})}))},forgetDialog:function(e,t){var n=e.state;$A.execMainDispatch("forgetDialog",t);var i=$A.isArray(t)?t:[t];i.some((function(e){var t=n.cacheDialogs.findIndex((function(t){return t.id==e}));t>-1&&n.cacheDialogs.splice(t,1)})),i.includes($A.getStorageInt("messenger::dialogId"))&&$A.setStorage("messenger::dialogId",0),setTimeout((function(){$A.setStorage("cacheDialogs",n.cacheDialogs)}))},saveDialogMsg:function(e,t){var n=e.state,i=e.dispatch;if($A.execMainDispatch("saveDialogMsg",t),$A.isArray(t))t.forEach((function(e){i("saveDialogMsg",e)}));else if($A.isJson(t)){var r=n.dialogMsgs.findIndex((function(e){return e.id==t.id}));r>-1?n.dialogMsgs.splice(r,1,Object.assign({},n.dialogMsgs[r],t)):n.dialogMsgs.push(t)}},forgetDialogMsg:function(e,t){var n=e.state;$A.execMainDispatch("forgetDialogMsg",t),($A.isArray(t)?t:[t]).some((function(e){var t=n.dialogMsgs.findIndex((function(t){return t.id==e}));t>-1&&n.dialogMsgs.splice(t,1)}))},getDialogMsgs:function(e,t){var n=e.state,i=e.dispatch,r=n.cacheDialogs.find((function(e){return e.id==t}));r||(r={id:t},n.cacheDialogs.push(r)),r.loading||(r.loading=!0,r.currentPage=1,r.hasMorePages=!1,i("call",{url:"dialog/msg/lists",data:{dialog_id:t,page:r.currentPage}}).then((function(e){r.loading=!1,r.currentPage=e.data.current_page,r.hasMorePages=!!e.data.next_page_url,i("saveDialog",r);var a=e.data.data.map((function(e){return e.id}));n.dialogMsgs=n.dialogMsgs.filter((function(e){return e.dialog_id!=t||a.includes(e.id)})),i("saveDialog",e.data.dialog),i("saveDialogMsg",e.data.data)})).catch((function(e){console.warn(e),r.loading=!1})))},getDialogMoreMsgs:function(e,t){var n=e.state,i=e.dispatch;return new Promise((function(e,r){var a=n.cacheDialogs.find((function(e){return e.id==t}));a?a.hasMorePages?a.loading?r({msg:"Loading"}):(a.loading=!0,a.currentPage++,i("call",{url:"dialog/msg/lists",data:{dialog_id:t,page:a.currentPage}}).then((function(t){a.loading=!1,a.currentPage=t.data.current_page,a.hasMorePages=!!t.data.next_page_url,i("saveDialogMsg",t.data.data),e(t)})).catch((function(e){console.warn(e),a.loading=!1,r(e)}))):r({msg:"No more page"}):r({msg:"Parameter error"})}))},dialogMsgRead:function(e,t){var n=e.state,i=e.dispatch;if(t.userid!=n.userId&&!0!==t.is_read){t.is_read=!0;var r=n.cacheDialogs.find((function(e){return e.id==t.dialog_id}));r&&r.unread>0&&r.unread--,n.wsReadWaitList.push(t.id),clearTimeout(n.wsReadTimeout),n.wsReadTimeout=setTimeout((function(){i("websocketSend",{type:"readMsg",data:{id:$A.cloneJSON(n.wsReadWaitList)}}),n.wsReadWaitList=[]}),20)}},websocketConnection:function(e){var t=e.state,n=e.dispatch;e.commit;if(clearTimeout(t.wsTimeout),0!==t.userId){var i=$A.apiUrl("../ws");i=(i=i.replace("https://","wss://")).replace("http://","ws://"),i+="?action=web&token="+t.userToken,t.ws=new WebSocket(i),t.ws.onopen=function(e){t.wsOpenNum++},t.ws.onclose=function(e){t.ws=null,clearTimeout(t.wsTimeout),t.wsTimeout=setTimeout((function(){n("websocketConnection")}),3e3)},t.ws.onerror=function(e){t.ws=null,clearTimeout(t.wsTimeout),t.wsTimeout=setTimeout((function(){n("websocketConnection")}),3e3)},t.ws.onmessage=function(e){var i=$A.formatWebsocketMessageDetail($A.jsonParse(e.data)),r=i.type,a=i.msgId;switch(r){case"open":$A.setStorage("userWsFd",i.data.fd);break;case"receipt":"function"==typeof t.wsCall[a]&&t.wsCall[a](i.body,!0),delete t.wsCall[a];break;case"line":n("saveUserOnlineStatus",i.data);break;default:switch(a&&n("websocketSend",{type:"receipt",msgId:a}),t.wsMsg=i,Object.values(t.wsListener).forEach((function(e){if("function"==typeof e)try{e(i)}catch(e){}})),r){case"dialog":!function(e){var i=e.mode,r=e.data,a=r.dialog_id;switch(i){case"delete":n("forgetDialogMsg",r.id);var o=t.cacheDialogs.find((function(e){return e.id==r.dialog_id}));o&&(o.last_at=r.last_msg&&r.last_msg.created_at,o.last_msg=r.last_msg,r.update_read&&n("call",{url:"dialog/msg/unread",dialog_id:r.dialog_id}).then((function(e){o.unread=e.data.unread})).catch((function(){})));break;case"add":case"chat":if(!t.dialogMsgs.find((function(e){return e.id==r.id}))){if(n("increaseTaskMsgNum",a),"chat"===i)return;var s=t.cacheDialogs.find((function(e){return e.id==r.dialog_id}));s&&void 0===t.cacheUnreads[r.id]&&(t.cacheUnreads[r.id]=!0,s.unread++),d.Store.set("dialogMsgPush",r)}n("saveDialogMsg",r),n("updateDialogLastMsg",r)}}(i);break;case"project":!function(e){var t=e.action,i=e.data;switch(t){case"add":case"update":n("saveProject",i);break;case"detail":n("getProjectOne",i.id).catch((function(){})),n("getTaskForProject",i.id).catch((function(){}));break;case"archived":case"delete":n("forgetProject",i.id);break;case"sort":n("getTaskForProject",i.id).catch((function(){}))}}(i);break;case"projectColumn":!function(e){var t=e.action,i=e.data;switch(t){case"add":case"update":n("saveColumn",i);break;case"delete":n("forgetColumn",i.id)}}(i);break;case"projectTask":!function(e){var t=e.action,i=e.data;switch(t){case"add":n("addTaskSuccess",i);break;case"update":n("saveTask",i);break;case"dialog":n("saveTask",i),n("getDialogOne",i.dialog_id).catch((function(){}));break;case"upload":n("getTaskFiles",i.task_id);break;case"filedelete":n("forgetTaskFile",i.id);break;case"delete":n("forgetTask",i.id)}}(i);break;case"file":!function(e){var t=e.action,i=e.data;switch(t){case"add":case"update":n("saveFile",i);break;case"delete":n("forgetFile",i.id)}}(i)}}}}else t.ws&&(t.ws.close(),t.ws=null)},websocketSend:function(e,t){var n=e.state;if($A.isJson(t)){var i=t.type,r=t.data,a=t.callback,o=void 0;if(n.ws){"function"==typeof a&&(o=$A.randomString(16),n.wsCall[o]=a);try{n.ws.send(JSON.stringify({type:i,msgId:o,data:r}))}catch(e){"function"==typeof a&&a(null,!1)}}else"function"==typeof a&&a(null,!1)}else"function"==typeof a&&a(null,!1)},websocketPath:function(e,t){var n=e.state,i=e.dispatch;clearTimeout(n.wsPathTimeout),n.wsPathValue=t,n.wsPathTimeout=setTimeout((function(){n.wsPathValue==t&&i("websocketSend",{type:"path",data:{path:t}})}),1e3)},websocketMsgListener:function(e,t){var n=e.state,i=t.name,r=t.callback;"function"==typeof r?n.wsListener[i]=r:n.wsListener[i]&&delete n.wsListener[i]},websocketClose:function(e){var t=e.state;t.ws&&t.ws.close()}};i.default.use(r.ZP);const Nt=new r.ZP.Store({state:Ot.Z,getters:Et,mutations:{},actions:At});function Lt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function Ft(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Rt={name:"PageTitle",props:{title:{type:[String,Number],default:""}},data:function(){return{pagePath:""}},activated:function(){this.updateTitle()},computed:function(e){for(var t=1;tMath.floor(e.offsetWidth),this.showTooltip&&this.existSlot){var i=this.$slots.default.map((function(e){return e.text?e.text:e.elm.innerText?e.elm.innerText:""}));this.tooltipContent=i.join("")}t=null},onClick:function(e){this.$emit("on-click",e)}}};const Wt=(0,o.Z)(Ht,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ETooltip",{attrs:{content:e.tipText,placement:e.placement,effect:e.tooltipTheme,delay:e.delay,disabled:!e.showTooltip,"max-width":e.tooltipMaxWidth,transfer:""}},[n("span",{ref:"content",staticClass:"common-auto-tip",on:{mouseenter:e.handleTooltipIn,click:e.onClick}},[e.existSlot?[e._t("default")]:[e._v(e._s(e.content))]],2)])}),[],!1,null,null,null).exports;const qt={name:"TagInput",props:{value:{default:""},cut:{default:","},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},placeholder:{default:""},max:{default:0}},data:function(){var e=[];return this.value.split(",").forEach((function(t){t&&e.push(t)})),{minWidth:80,tis:"",tisTimeout:null,showPlaceholder:!0,content:"",disSource:e,isFocus:!1}},mounted:function(){this.wayMinWidth()},watch:{placeholder:function(){this.wayMinWidth()},value:function(e){var t=[];$A.count(e)>0&&e.split(",").forEach((function(e){e&&t.push(e)})),this.disSource=t},disSource:function(e){var t=this,n="";e.forEach((function(e){""!=n&&(n+=t.cut),n+=e})),this.$emit("input",n),this.$emit("on-change")}},computed:{placeholderText:function(){return this.disSource.length>0?"":this.placeholder}},methods:{focus:function(e){var t=this.$refs.myTextarea;t.focus(e);var n=(e||{}).cursor;if(n){var i=t.value.length;switch(n){case"start":t.setSelectionRange(0,0);break;case"end":t.setSelectionRange(i,i);break;default:t.setSelectionRange(0,i)}}},wayMinWidth:function(){var e=this;this.showPlaceholder=!0,this.$nextTick((function(){e.$refs.myPlaceholder&&(e.minWidth=Math.max(e.minWidth,e.$refs.myPlaceholder.offsetWidth)),setTimeout((function(){try{e.minWidth=Math.max(e.minWidth,e.$refs.myPlaceholder.offsetWidth),e.showPlaceholder=!1}catch(e){}$A(e.$refs.myPlaceholder).is(":visible")||e.wayMinWidth()}),500)}))},pasteText:function(e){e.preventDefault();var t=(e.clipboardData||window.clipboardData).getData("text");this.addTag(!1,t)},downEnter:function(e){e.preventDefault()},onFocus:function(e){this.isFocus=!0,this.$emit("on-focus",e)},onBlur:function(e){this.isFocus=!1,this.addTag(!1,this.content),this.$emit("on-blur",e)},addTag:function(e,t){var n=this;if(!1===e||13===e.keyCode)return""!=t.trim()&&-1===this.disSource.indexOf(t.trim())&&this.disSource.push(t.trim()),this.content="",void(13===e.keyCode&&this.$nextTick((function(){n.$emit("on-enter",e)})));if(this.max>0&&this.disSource.length>=this.max)return this.content="",this.tis="最多只能添加"+this.max+"个",clearInterval(this.tisTimeout),void(this.tisTimeout=setTimeout((function(){n.tis=""}),2e3));var i=t.trim(),r=i.length-this.cut.length;""!=i&&i.substring(r)===this.cut&&(""!=(i=i.substring(0,r)).trim()&&-1===this.disSource.indexOf(i.trim())&&this.disSource.push(i.trim()),this.content="")},delTag:function(e){if(!1===e){if(""!==this.content)return;e=this.disSource.length-1}this.disSource.splice(e,1),this.focus()}}};const Ut=(0,o.Z)(qt,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"common-tag-input",class:{focus:e.isFocus},on:{paste:function(t){return e.pasteText(t)},click:e.focus}},[e._l(e.disSource,(function(t,i){return n("div",{staticClass:"tags-item"},[n("span",{staticClass:"tags-content",on:{click:function(e){e.stopPropagation()}}},[e._v(e._s(t))]),n("span",{staticClass:"tags-del",on:{click:function(t){return t.stopPropagation(),e.delTag(i)}}},[e._v("×")])])})),e._v(" "),n("textarea",{directives:[{name:"model",rawName:"v-model",value:e.content,expression:"content"}],ref:"myTextarea",staticClass:"tags-input",style:{minWidth:e.minWidth+"px"},attrs:{placeholder:e.tis||e.placeholderText,disabled:e.disabled,readonly:e.readonly},domProps:{value:e.content},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.downEnter(t)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?null:e.delTag(!1)}],keyup:function(t){return e.addTag(t,e.content)},focus:e.onFocus,blur:e.onBlur,input:function(t){t.target.composing||(e.content=t.target.value)}}}),e._v(" "),e.showPlaceholder||""!==e.tis?n("span",{ref:"myPlaceholder",staticClass:"tags-placeholder"},[e._v(e._s(e.tis||e.placeholderText))]):e._e()],2)}),[],!1,null,null,null).exports;var Kt=n(3869),Gt=n.n(Kt);i.default.use(Gt());const Yt={name:"TableAction",props:{column:{type:Object,default:function(){return{}}},autoWidth:{type:Boolean,default:!0},minWidth:{type:Number,default:80},align:{type:String,default:""},menu:{type:Array,default:function(){return[]}}},data:function(){return{width:0,height:0}},mounted:function(){this.onUpdate()},activated:function(){this.onUpdate()},beforeUpdate:function(){this.onUpdate()},computed:{tdStyle:function(){var e={};switch(this.align.toLowerCase()){case"left":e.justifyContent="flex-start";break;case"center":e.justifyContent="center";break;case"right":e.justifyContent="flex-end"}return e}},methods:{handleIn:function(){this.$refs.action.offsetWidth!=this.width&&this.onUpdate()},onUpdate:function(){this.onResize({width:this.$refs.action.offsetWidth,height:this.$refs.action.offsetHeight})},onResize:function(e){var t=this,n=e.width,i=e.height;if(this.autoWidth){$A(".ivu-table-column-"+this.column.__id).each((function(e,t){var r=$A(t).find(".td-action-container");r.length>0&&(n=Math.max(n,r[0].offsetWidth),i=Math.max(i,r[0].offsetHeight))})),this.width=n,this.height=i;var r=Math.max(this.minWidth,this.width+26);this.column.minWidth&&(r=Math.max(this.column.minWidth,r)),this.column.maxWidth&&(r=Math.min(this.column.maxWidth,r)),r!=this.column.width&&this.$nextTick((function(){t.$set(t.column,"width",r)}))}},onClick:function(e){this.$emit("action",e)}}};const Zt=(0,o.Z)(Yt,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"td-action",style:e.tdStyle,attrs:{"data-width":e.width,"data-height":e.height}},[n("div",{directives:[{name:"resize",rawName:"v-resize",value:e.onResize,expression:"onResize"}],ref:"action",staticClass:"td-action-container",class:{"td-action-menu":e.menu.length>0},on:{mouseenter:e.handleIn}},[e._t("default"),e._v(" "),e._l(e.menu,(function(t,i){return n("ETooltip",{key:i,attrs:{placement:"top",disabled:!t.title,content:t.title,enterable:!1,"open-delay":600}},[t.children&&t.children.length>0?n("EDropdown",{staticClass:"menu-dropdown",attrs:{size:"medium",trigger:"click"},on:{command:e.onClick}},[n("i",{staticClass:"aliicon menu-icon",style:t.style||{},domProps:{innerHTML:e._s(t.icon)}}),e._v(" "),n("EDropdownMenu",{attrs:{slot:"dropdown"},slot:"dropdown"},e._l(t.children,(function(t,i){return n("EDropdownItem",{key:i,style:t.style||{},attrs:{command:t.action,divided:!!t.divided}},[n("div",[e._v(e._s(t.title))])])})),1)],1):n("i",{staticClass:"aliicon menu-icon",style:t.style||{},domProps:{innerHTML:e._s(t.icon)},on:{click:function(n){return e.onClick(t.action)}}})],1)}))],2)])}),[],!1,null,null,null).exports;const Xt={name:"QuickEdit",directives:{clickoutside:{bind:function(e,t,n){function i(n){if(e.contains(n.target))return!1;t.expression&&t.value(n)}e.__vueClickOutside__=i,document.addEventListener("click",i)},update:function(){},unbind:function(e,t){document.removeEventListener("click",e.__vueClickOutside__),delete e.__vueClickOutside__}}},props:{value:{},autoEdit:{},isTag:{type:Boolean,default:!1},alwaysIcon:{type:Boolean,default:!1},clickOutSide:{type:Boolean,default:!0}},data:function(){return{isLoad:!1,isEdit:!1,content:""}},mounted:function(){!0===this.autoEdit&&this.onEdit()},watch:{isEdit:function(e){this.$emit("on-edit-change",e)},autoEdit:function(e){!0===e&&setTimeout(this.onEdit,0)}},methods:{onEdit:function(){var e=this;this.content=this.value,this.isEdit=!0,this.$nextTick((function(){e.$refs.input.focus({cursor:"all"})}))},onEnter:function(){var e=this;this.content!=this.value?this.isLoad||(this.isLoad=!0,this.$emit("input",this.content),this.$emit("on-update",this.content,(function(){e.isEdit=!1,e.isLoad=!1}))):this.isEdit=!1},onClickOut:function(){this.clickOutSide&&this.onEnter()},onBlur:function(){this.clickOutSide||this.onEnter()}}};const Jt=(0,o.Z)(Xt,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"quick-edit",class:[e.alwaysIcon?"quick-always":""]},[e.isEdit?n("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.onClickOut,expression:"onClickOut"}],staticClass:"quick-input"},[e.isTag?n("TagInput",{ref:"input",attrs:{disabled:e.isLoad},on:{"on-enter":e.onEnter,"on-blur":e.onBlur},model:{value:e.content,callback:function(t){e.content=t},expression:"content"}}):n("Input",{ref:"input",attrs:{disabled:e.isLoad},on:{"on-enter":e.onEnter,"on-blur":e.onBlur},model:{value:e.content,callback:function(t){e.content=t},expression:"content"}}),e._v(" "),e.isLoad?n("div",{staticClass:"quick-loading"},[n("Loading")],1):e._e()],1):[n("div",{staticClass:"quick-text"},[e._t("default")],2),e._v(" "),n("Icon",{staticClass:"quick-icon",attrs:{type:"ios-create-outline"},on:{click:function(t){return t.stopPropagation(),e.onEdit.apply(null,arguments)}}})]],2)}),[],!1,null,null,null).exports;function Qt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function en(e){for(var t=1;t0&&(e.border=t+"px solid "+(n||"#ffffff")),e},spotStyle:function(){var e=this.borderWitdh,t=this.size;return"default"===t&&(t=32),e>0&&(t-=e),32==t?{}:{transform:"scale("+Math.min(1.25,t/32)+")"}},nameStyle:function(){return this.showIcon?{}:{paddingLeft:0}},avatarSize:function(){var e=this.borderWitdh,t=this.size;return"default"===t&&(t=32),e>0?t-2*e:t},showImg:function(){var e=this.user.userimg;return!!e&&!$A.rightExists(e,"/avatar.png")},isDefault:function(){var e=this.user.userimg;return $A.strExists(e,"/avatar/default_")},nickname:function(){var e=this.user.nickname;if(!e)return"D";var t=e.substring(0,2);return/^[\u4e00-\u9fa5]+$/.test(t)&&(t=t.substring(0,1)),t||"D"}}),watch:{userid:function(){this.getData()},userInfo:function(e){e.userid==this.userid&&(this.user=e)},userOnline:function(e){this.user&&void 0!==e[this.user.userid]&&this.$set(this.user,"online",e[this.user.userid])}},methods:{getData:function(){this.userid&&(this.userid!=this.userInfo.userid?this.$store.dispatch("getUserBasic",{userid:this.userid}):this.user=this.userInfo)},openDialog:function(){this.goForward({path:"/manage/messenger"}),this.$store.dispatch("openDialogUserid",this.userid).catch((function(){}))}}};const rn=(0,o.Z)(nn,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.user?n("ETooltip",{staticClass:"common-avatar",attrs:{"open-delay":e.openDelay,disabled:e.tooltipDisabled,placement:e.tooltipPlacement}},[n("div",{staticClass:"common-avatar-transfer",attrs:{slot:"content"},slot:"content"},[e._t("default"),e._v(" "),n("p",[e._v(e._s(e.$L("昵称"))+": "+e._s(e.user.nickname))]),e._v(" "),n("p",[e._v(e._s(e.$L("职位/职称"))+": "+e._s(e.user.profession||"-"))]),e._v(" "),e.userId!=e.userid&&e.showIconMenu?n("div",{staticClass:"avatar-icons"},[n("Icon",{attrs:{type:"ios-chatbubbles"},on:{click:e.openDialog}})],1):e._e()],2),e._v(" "),n("div",{staticClass:"avatar-wrapper"},[e.showIcon?n("div",{class:["avatar-box",e.userId===e.userid||e.user.online?"online":""],style:e.boxStyle},[n("em",{style:e.spotStyle}),e._v(" "),e.showImg?n("EAvatar",{class:{"avatar-default":e.isDefault},attrs:{src:e.user.userimg,size:e.avatarSize}}):n("EAvatar",{staticClass:"avatar-text",attrs:{size:e.avatarSize}},[n("span",{style:e.spotStyle},[e._v(e._s(e.nickname))])])],1):e._e(),e._v(" "),e.showName?n("div",{staticClass:"avatar-name",style:e.nameStyle},[e._v(e._s(e.user.nickname))]):e._e()])]):e._e()}),[],!1,null,null,null).exports;var an=n(64720);function on(e){return on="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},on(e)}var sn=window&&window.process&&window.process.type;i.default.use(r.ZP),i.default.use(bt(),{modal:{checkEscClose:!0}}),i.default.use(vt),i.default.use(St),i.default.component("PageTitle",Bt),i.default.component("Loading",zt),i.default.component("AutoTip",Wt),i.default.component("TagInput",Ut),i.default.component("TableAction",Zt),i.default.component("QuickEdit",Jt),i.default.component("UserAvatar",rn),i.default.component("EAvatar",an.Avatar),i.default.component("ETooltip",an.Tooltip),i.default.component("EPopover",an.Popover),i.default.component("EDropdown",an.Dropdown),i.default.component("EDropdownMenu",an.DropdownMenu),i.default.component("EDropdownItem",an.DropdownItem);var ln=vt.prototype.push;vt.prototype.push=function(e){return ln.call(this,e).catch((function(e){return e}))};var un=new vt({mode:sn?"hash":"history",routes:k});bt().LoadingBar.config({color:"#3fcc25",failedColor:"#ff0000"}),un.beforeEach((function(e,t,n){bt().LoadingBar.start(),n()})),un.afterEach((function(){bt().LoadingBar.finish()})),i.default.prototype.goForward=function(e,t){"string"==typeof e&&(e={name:e}),!0===t?cn.$router.replace(e).then((function(){})):cn.$router.push(e).then((function(){}))},i.default.prototype.goBack=function(e){var t=$A.jsonParse(window.sessionStorage.__history__||"{}");$A.runNum(t["::count"])>2?cn.$router.go("number"==typeof e?e:-1):cn.$router.replace("object"===on(e)?e:{path:"/"}).then((function(){}))},i.default.prototype.$A=$A,i.default.prototype.$Electron=null,i.default.prototype.$Platform="web",i.default.prototype.$isMainElectron=!1,i.default.prototype.$isSubElectron=!1,sn&&(i.default.prototype.$Electron=electron,i.default.prototype.$Platform=/macintosh|mac os x/i.test(navigator.userAgent)?"mac":"win",i.default.prototype.$isMainElectron=/\s+MainTaskWindow\//.test(window.navigator.userAgent),i.default.prototype.$isSubElectron=/\s+SubTaskWindow\//.test(window.navigator.userAgent)),i.default.config.productionTip=!1;var cn=new i.default({el:"#app",router:un,store:Nt,template:"",components:{App:C}});$A.goForward=cn.goForward,$A.goBack=cn.goBack,$A.getLanguage=cn.getLanguage,$A.Message=cn.$Message,$A.Notice=cn.$Notice,$A.Modal=cn.$Modal,$A.store=cn.$store,$A.L=cn.$L,$A.Electron=cn.$Electron,$A.Platform=cn.$Platform,$A.isMainElectron=cn.$isMainElectron,$A.isSubElectron=cn.$isSubElectron,$A.execMainDispatch=function(e,t){$A.isSubElectron&&$A.Electron.sendMessage("sendForwardMain",{channel:"dispatch",data:{action:e,data:t}})}},4142:e=>{e.exports=function(e){var t={begin:"`[\\s\\S]"};return{case_insensitive:!0,aliases:["ahk"],keywords:{keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",literal:"true false NOT AND OR",built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"},contains:[t,e.inherit(e.QUOTE_STRING_MODE,{contains:[t]}),e.COMMENT(";","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"variable",begin:"%[a-zA-Z0-9#_$@]+%"},{className:"built_in",begin:"^\\s*\\w+\\s*(,|%)"},{className:"title",variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{className:"meta",begin:"^\\s*#\\w+",end:"$",relevance:0},{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{begin:",\\s*,"}]}}},52423:e=>{e.exports=function(e){var t={variants:[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},n={begin:"\\$[A-z0-9_]+"},i={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},r={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:"ByRef Case Const ContinueCase ContinueLoop Default Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",built_in:"Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait",literal:"True False And Null Not Or"},contains:[t,n,i,r,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"comments include include-once NoTrayIcon OnAutoItStartRegister pragma compile RequireAdmin"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",keywords:{"meta-keyword":"include"},end:"$",contains:[i,{className:"meta-string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},i,t]},{className:"symbol",begin:"@[A-z0-9_]+"},{className:"function",beginKeywords:"Func",end:"$",illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[n,i,r]}]}]}}},40349:e=>{e.exports=function(e){var t={begin:/(?:[A-Z\_\.\-]+|--[a-zA-Z0-9_-]+)\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{begin:"@",end:"[{;]",illegal:/:/,contains:[{className:"keyword",begin:/\w+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,t]}]}}},8650:e=>{e.exports=function(e){var t={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{aliases:["golang"],keywords:t,illegal:"{e.exports=function(e){var t="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",n={className:"number",begin:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",relevance:0};return{aliases:["jsp"],keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n,{className:"meta",begin:"@[A-Za-z]+"}]}}},5489:e=>{e.exports=function(e){var t="[A-Za-z$_][0-9A-Za-z$_]*",n={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},i={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},r={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},a={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,r],subLanguage:"xml"}},o={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,r],subLanguage:"css"}},s={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,r]};r.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,o,s,i,e.REGEXP_MODE];var l=r.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{aliases:["js","jsx"],keywords:n,contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,o,s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,{begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:l}]}]},{className:"",begin:/\s/,end:/\s*/,skip:!0},{begin://,subLanguage:"xml",contains:[{begin:/<[A-Za-z0-9\\._:-]+\s*\/>/,skip:!0},{begin:/<[A-Za-z0-9\\._:-]+/,end:/(\/[A-Za-z0-9\\._:-]+|[A-Za-z0-9\\._:-]+\/)>/,skip:!0,contains:[{begin:/<[A-Za-z0-9\\._:-]+\s*\/>/,skip:!0},"self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:l}],illegal:/\[|%/},{begin:/\$[(.]/},e.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor get set",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}}},17410:e=>{e.exports=function(e){var t="([\\w-]+|@{[\\w-]+})",n=[],i=[],r=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},a=function(e,t,n){return{className:e,begin:t,relevance:n}},o={begin:"\\(",end:"\\)",contains:i,relevance:0};i.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r("'"),r('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},a("number","#[0-9A-Fa-f]+\\b"),o,a("variable","@@?[\\w-]+",10),a("variable","@{[\\w-]+}"),a("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},{className:"meta",begin:"!important"});var s=i.concat({begin:"{",end:"}",contains:n}),l={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(i)},u={begin:t+"\\s*:",returnBegin:!0,end:"[;}]",relevance:0,contains:[{className:"attribute",begin:t,end:":",excludeEnd:!0,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:i}}]},c={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:i,relevance:0}},d={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:s}},h={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:t,end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l,a("keyword","all\\b"),a("variable","@{[\\w-]+}"),a("selector-tag",t+"%?",0),a("selector-id","#"+t),a("selector-class","\\."+t,0),a("selector-tag","&",0),{className:"selector-attr",begin:"\\[",end:"\\]"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"\\(",end:"\\)",contains:s},{begin:"!important"}]};return n.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,c,d,u,h),{case_insensitive:!0,illegal:"[=>'/<($\"]",contains:n}}},67020:e=>{e.exports=function(e){return{aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^\\s*([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"quote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"^```w*s*$",end:"^```s*$"},{begin:"`.+?`"},{begin:"^( {4}|\t)",end:"$",relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}},51988:e=>{e.exports=function(e){var t={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},n={className:"meta",begin:/<\?(php)?|\?>/},i={className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},r={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{aliases:["php","php3","php4","php5","php6","php7"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[n]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:e.UNDERSCORE_IDENT_RE}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},n,{className:"keyword",begin:/\$this\b/},t,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",t,e.C_BLOCK_COMMENT_MODE,i,r]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},i,r]}}},15350:e=>{e.exports=function(e){var t={keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10",built_in:"Ellipsis NotImplemented",literal:"False None True"},n={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,end:/\}/,keywords:t,illegal:/#/},r={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,n],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,n],relevance:10},{begin:/(fr|rf|f)'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,n,i]},{begin:/(fr|rf|f)"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,n,i]},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},{begin:/(fr|rf|f)'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,i]},{begin:/(fr|rf|f)"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},a={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},o={className:"params",begin:/\(/,end:/\)/,contains:["self",n,a,r]};return i.contains=[r,a,n],{aliases:["py","gyp","ipython"],keywords:t,illegal:/(<\/|->|\?)|=>/,contains:[n,a,r,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,o,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}},86507:e=>{e.exports=function(e){var t="[A-Za-z$_][0-9A-Za-z$_]*",n={keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class public private protected get set super static implements enum export import declare type namespace abstract as from extends async await",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document any number boolean string void Promise"},i={className:"meta",begin:"@"+t},r={begin:"\\(",end:/\)/,keywords:n,contains:["self",e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.NUMBER_MODE]},a={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,r]},o={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},s={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},l={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,s],subLanguage:"xml"}},u={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,s],subLanguage:"css"}},c={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,s]};return s.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,u,c,o,e.REGEXP_MODE],{aliases:["ts"],keywords:n,contains:[{className:"meta",begin:/^\s*['"]use strict['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,u,c,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+e.IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.IDENT_RE},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:["self",e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}]}]}],relevance:0},{className:"function",begin:"function",end:/[\{;]/,excludeEnd:!0,keywords:n,contains:["self",e.inherit(e.TITLE_MODE,{begin:t}),a],illegal:/%/,relevance:0},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0,contains:["self",a]},{begin:/module\./,keywords:{built_in:"module"},relevance:0},{beginKeywords:"module",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+e.IDENT_RE,relevance:0},i,r]}}},283:e=>{e.exports=function(e){var t={endsWithParent:!0,illegal:/`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?(php)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]},{className:"tag",begin:"|$)",end:">",keywords:{name:"style"},contains:[t],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"|$)",end:">",keywords:{name:"script"},contains:[t],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml","vbscript"]}},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},t]}]}}},43705:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});const i={add:function(e,t){var n="toc".concat(t).concat(++this.index),i={anchor:n,level:t,text:e},r=this.tocItems;return i.level<=5&&r.push(i),n},reset:function(){this.tocItems=[],this.index=0},tocItems:[],index:0}},37352:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ke});var i={},r=[],a=Object.keys,o={},s={},l=/^(no-?highlight|plain|text)$/i,u=/\blang(?:uage)?-([\w-]+)\b/i,c=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,d="
    ",h={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function f(e){return e.replace(/&/g,"&").replace(//g,">")}function p(e){return e.nodeName.toLowerCase()}function m(e,t){var n=e&&e.exec(t);return n&&0===n.index}function v(e){return l.test(e)}function g(e){var t,n={},i=Array.prototype.slice.call(arguments,1);for(t in e)n[t]=e[t];return i.forEach((function(e){for(t in e)n[t]=e[t]})),n}function b(e){var t=[];return function e(n,i){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?i+=r.nodeValue.length:1===r.nodeType&&(t.push({event:"start",offset:i,node:r}),i=e(r,i),p(r).match(/br|hr|img|input/)||t.push({event:"stop",offset:i,node:r}));return i}(e,0),t}function y(e){function t(e){return e&&e.source||e}function n(n,i){return new RegExp(t(n),"m"+(e.case_insensitive?"i":"")+(i?"g":""))}!function i(r,o){if(!r.compiled){if(r.compiled=!0,r.keywords=r.keywords||r.beginKeywords,r.keywords){var s={},l=function(t,n){e.case_insensitive&&(n=n.toLowerCase()),n.split(" ").forEach((function(e){var n=e.split("|");s[n[0]]=[t,n[1]?Number(n[1]):1]}))};"string"==typeof r.keywords?l("keyword",r.keywords):a(r.keywords).forEach((function(e){l(e,r.keywords[e])})),r.keywords=s}r.lexemesRe=n(r.lexemes||/\w+/,!0),o&&(r.beginKeywords&&(r.begin="\\b("+r.beginKeywords.split(" ").join("|")+")\\b"),r.begin||(r.begin=/\B|\b/),r.beginRe=n(r.begin),r.endSameAsBegin&&(r.end=r.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),r.end&&(r.endRe=n(r.end)),r.terminator_end=t(r.end)||"",r.endsWithParent&&o.terminator_end&&(r.terminator_end+=(r.end?"|":"")+o.terminator_end)),r.illegal&&(r.illegalRe=n(r.illegal)),null==r.relevance&&(r.relevance=1),r.contains||(r.contains=[]),r.contains=Array.prototype.concat.apply([],r.contains.map((function(e){return function(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map((function(t){return g(e,{variants:null},t)}))),e.cached_variants||e.endsWithParent&&[g(e)]||[e]}("self"===e?r:e)}))),r.contains.forEach((function(e){i(e,r)})),r.starts&&i(r.starts,o);var u=r.contains.map((function(e){return e.beginKeywords?"\\.?(?:"+e.begin+")\\.?":e.begin})).concat([r.terminator_end,r.illegal]).map(t).filter(Boolean);r.terminators=u.length?n(function(e,n){for(var i=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",o=0;o0&&(a+=n);l.length>0;){var u=i.exec(l);if(null==u){a+=l;break}a+=l.substring(0,u.index),l=l.substring(u.index+u[0].length),"\\"==u[0][0]&&u[1]?a+="\\"+String(Number(u[1])+s):(a+=u[0],"("==u[0]&&r++)}}return a}(u,"|"),!0):{exec:function(){return null}}}}(e)}function _(e,t,n,i){function r(e){return new RegExp(e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function a(e,t){if(m(e.endRe,t)){for(;e.endsParent&&e.parent;)e=e.parent;return e}if(e.endsWithParent)return a(e.parent,t)}function s(e,t){var n=v.case_insensitive?t[0].toLowerCase():t[0];return e.keywords.hasOwnProperty(n)&&e.keywords[n]}function l(e,t,n,i){var r='')+t+(n?"":d):t}function u(){C+=null!=b.subLanguage?function(){var e="string"==typeof b.subLanguage;if(e&&!o[b.subLanguage])return f(k);var t=e?_(b.subLanguage,k,!0,x[b.subLanguage]):w(k,b.subLanguage.length?b.subLanguage:void 0);return b.relevance>0&&(O+=t.relevance),e&&(x[b.subLanguage]=t.top),l(t.language,t.value,!1,!0)}():function(){var e,t,n,i;if(!b.keywords)return f(k);for(i="",t=0,b.lexemesRe.lastIndex=0,n=b.lexemesRe.exec(k);n;)i+=f(k.substring(t,n.index)),(e=s(b,n))?(O+=e[1],i+=l(e[0],f(n[0]))):i+=f(n[0]),t=b.lexemesRe.lastIndex,n=b.lexemesRe.exec(k);return i+f(k.substr(t))}(),k=""}function c(e){C+=e.className?l(e.className,"",!0):"",b=Object.create(e,{parent:{value:b}})}function p(e,t){if(k+=e,null==t)return u(),0;var i=function(e,t){var n,i;for(n=0,i=t.contains.length;n")+'"');return k+=t,t.length||1}var v=S(e);if(!v)throw new Error('Unknown language: "'+e+'"');y(v);var g,b=i||v,x={},C="";for(g=b;g!==v;g=g.parent)g.className&&(C=l(g.className,"",!0)+C);var k="",O=0;try{for(var T,D,E=0;b.terminators.lastIndex=E,T=b.terminators.exec(t);)D=p(t.substring(E,T.index),T[0]),E=T.index+D;for(p(t.substr(E)),g=b;g.parent;g=g.parent)g.className&&(C+=d);return{relevance:O,value:C,language:e,top:b}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{relevance:0,value:f(t)};throw e}}function w(e,t){t=t||h.languages||a(o);var n={relevance:0,value:f(e)},i=n;return t.filter(S).filter(O).forEach((function(t){var r=_(t,e,!1);r.language=t,r.relevance>i.relevance&&(i=r),r.relevance>n.relevance&&(i=n,n=r)})),i.language&&(n.second_best=i),n}function x(e){return h.tabReplace||h.useBR?e.replace(c,(function(e,t){return h.useBR&&"\n"===e?"
    ":h.tabReplace?t.replace(/\t/g,h.tabReplace):""})):e}function C(e){var t,n,i,a,o,l=function(e){var t,n,i,r,a=e.className+" ";if(a+=e.parentNode?e.parentNode.className:"",n=u.exec(a))return S(n[1])?n[1]:"no-highlight";for(t=0,i=(a=a.split(/\s+/)).length;t/g,"\n"):t=e,o=t.textContent,i=l?_(l,o,!0):w(o),(n=b(t)).length&&((a=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=i.value,i.value=function(e,t,n){var i=0,a="",o=[];function s(){return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset"}function u(e){a+=""}function c(e){("start"===e.event?l:u)(e.node)}for(;e.length||t.length;){var d=s();if(a+=f(n.substring(i,d[0].offset)),i=d[0].offset,d===e){o.reverse().forEach(u);do{c(d.splice(0,1)[0]),d=s()}while(d===e&&d.length&&d[0].offset===i);o.reverse().forEach(l)}else"start"===d[0].event?o.push(d[0].node):o.pop(),c(d.splice(0,1)[0])}return a+f(n.substr(i))}(n,b(a),o)),i.value=x(i.value),e.innerHTML=i.value,e.className=function(e,t,n){var i=t?s[t]:n,r=[e.trim()];return e.match(/\bhljs\b/)||r.push("hljs"),-1===e.indexOf(i)&&r.push(i),r.join(" ").trim()}(e.className,l,i.language),e.result={language:i.language,re:i.relevance},i.second_best&&(e.second_best={language:i.second_best.language,re:i.second_best.relevance}))}function k(){if(!k.called){k.called=!0;var e=document.querySelectorAll("pre code");r.forEach.call(e,C)}}function S(e){return e=(e||"").toLowerCase(),o[e]||o[s[e]]}function O(e){var t=S(e);return t&&!t.disableAutodetect}i.highlight=_,i.highlightAuto=w,i.fixMarkup=x,i.highlightBlock=C,i.configure=function(e){h=g(h,e)},i.initHighlighting=k,i.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",k,!1),addEventListener("load",k,!1)},i.registerLanguage=function(e,t){var n=o[e]=t(i);n.aliases&&n.aliases.forEach((function(t){s[t]=e}))},i.listLanguages=function(){return a(o)},i.getLanguage=S,i.autoDetection=O,i.inherit=g,i.IDENT_RE="[a-zA-Z]\\w*",i.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",i.NUMBER_RE="\\b\\d+(\\.\\d+)?",i.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",i.BINARY_NUMBER_RE="\\b(0b[01]+)",i.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",i.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},i.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[i.BACKSLASH_ESCAPE]},i.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[i.BACKSLASH_ESCAPE]},i.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},i.COMMENT=function(e,t,n){var r=i.inherit({className:"comment",begin:e,end:t,contains:[]},n||{});return r.contains.push(i.PHRASAL_WORDS_MODE),r.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),r},i.C_LINE_COMMENT_MODE=i.COMMENT("//","$"),i.C_BLOCK_COMMENT_MODE=i.COMMENT("/\\*","\\*/"),i.HASH_COMMENT_MODE=i.COMMENT("#","$"),i.NUMBER_MODE={className:"number",begin:i.NUMBER_RE,relevance:0},i.C_NUMBER_MODE={className:"number",begin:i.C_NUMBER_RE,relevance:0},i.BINARY_NUMBER_MODE={className:"number",begin:i.BINARY_NUMBER_RE,relevance:0},i.CSS_NUMBER_MODE={className:"number",begin:i.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},i.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[i.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[i.BACKSLASH_ESCAPE]}]},i.TITLE_MODE={className:"title",begin:i.IDENT_RE,relevance:0},i.UNDERSCORE_TITLE_MODE={className:"title",begin:i.UNDERSCORE_IDENT_RE,relevance:0},i.METHOD_GUARD={begin:"\\.\\s*"+i.UNDERSCORE_IDENT_RE,relevance:0};const T=i;var D=n(5489),E=n.n(D),$=n(53049),M=n.n($),P=n(40349),I=n.n(P),j=n(17410),A=n.n(j),N=n(8650),L=n.n(N),F=n(67020),R=n.n(F),B=n(51988),V=n.n(B),z=n(15350),H=n.n(z),W=n(86507),q=n.n(W),U=n(283),K=n.n(U),G=n(4142),Y=n.n(G),Z=n(52423),X=n.n(Z),J={javascript:E(),java:M(),css:I(),less:A(),markdown:R(),go:L(),php:V(),python:H(),typescript:q(),xml:K(),autohotkey:Y(),auto:X()};Object.keys(J).forEach((function(e){T.registerLanguage(e,J[e])}));const Q=T;var ee=n(43705);void 0===window._goTocAction&&(window._goTocAction=function(e,t,n){var i=$A(e).parents(".markdown-preview");if(i){var r=i.find("h"+t+'[toc-id="'+n+'"]');r&&i.animate({scrollTop:r.offset().top-i.offset().top+i.scrollTop()})}});var te={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}|~{3,})([^`~\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:me,table:me,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/};function ne(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||we.defaults,this.rules=te.normal,this.options.pedantic?this.rules=te.pedantic:this.options.gfm&&(this.rules=te.gfm)}te._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,te._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,te.def=de(te.def).replace("label",te._label).replace("title",te._title).getRegex(),te.bullet=/(?:[*+-]|\d{1,9}\.)/,te.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,te.item=de(te.item,"gm").replace(/bull/g,te.bullet).getRegex(),te.list=de(te.list).replace(/bull/g,te.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+te.def.source+")").getRegex(),te._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",te._comment=//,te.html=de(te.html,"i").replace("comment",te._comment).replace("tag",te._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),te.paragraph=de(te._paragraph).replace("hr",te.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",te._tag).getRegex(),te.blockquote=de(te.blockquote).replace("paragraph",te.paragraph).getRegex(),te.normal=ve({},te),te.gfm=ve({},te.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),te.pedantic=ve({},te.normal,{html:de("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",te._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:me,paragraph:de(te.normal._paragraph).replace("hr",te.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",te.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()}),ne.rules=te,ne.lex=function(e,t){return new ne(t).lex(e)},ne.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},ne.prototype.token=function(e,t){var n,i,r,a,o,s,l,u,c,d,h,f,p,m,v,g;for(e=e.replace(/^ +$/gm,"");e;)if((r=this.rules.newline.exec(e))&&(e=e.substring(r[0].length),r[0].length>1&&this.tokens.push({type:"space"})),r=this.rules.code.exec(e)){var b=this.tokens[this.tokens.length-1];e=e.substring(r[0].length),b&&"paragraph"===b.type?b.text+="\n"+r[0].trimRight():(r=r[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",codeBlockStyle:"indented",text:this.options.pedantic?r:be(r,"\n")}))}else if(r=this.rules.fences.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"code",lang:r[2]?r[2].trim():r[2],text:r[3]||""});else if(r=this.rules.heading.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"heading",depth:r[1].length,text:r[2]});else if((r=this.rules.nptable.exec(e))&&(s={type:"table",header:ge(r[1].replace(/^ *| *\| *$/g,"")),align:r[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:r[3]?r[3].replace(/\n$/,"").split("\n"):[]}).header.length===s.align.length){for(e=e.substring(r[0].length),h=0;h ?/gm,""),this.token(r,t),this.tokens.push({type:"blockquote_end"});else if(r=this.rules.list.exec(e)){for(e=e.substring(r[0].length),l={type:"list_start",ordered:m=(a=r[2]).length>1,start:m?+a:"",loose:!1},this.tokens.push(l),u=[],n=!1,p=(r=r[0].match(this.rules.item)).length,h=0;h1?1===o.length:o.length>1||this.options.smartLists&&o!==a)&&(e=r.slice(h+1).join("\n")+e,h=p-1)),i=n||/\n\n(?!\s*$)/.test(s),h!==p-1&&(n="\n"===s.charAt(s.length-1),i||(i=n)),i&&(l.loose=!0),g=void 0,(v=/^\[[ xX]\] /.test(s))&&(g=" "!==s[1],s=s.replace(/^\[[ xX]\] +/,"")),c={type:"list_item_start",task:v,checked:g,loose:i},u.push(c),this.tokens.push(c),this.token(s,!1),this.tokens.push({type:"list_item_end"});if(l.loose)for(p=u.length,h=0;h?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:me,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*<\[])\*(?!\*)|^_([^\s<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s<"][\s\S]*?[^\s\*])\*(?!\*|[^\spunctuation])|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:me,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\?@\\[^_{|}~",ie.em=de(ie.em).replace(/punctuation/g,ie._punctuation).getRegex(),ie._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,ie._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,ie._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,ie.autolink=de(ie.autolink).replace("scheme",ie._scheme).replace("email",ie._email).getRegex(),ie._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,ie.tag=de(ie.tag).replace("comment",te._comment).replace("attribute",ie._attribute).getRegex(),ie._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,ie._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,ie._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,ie.link=de(ie.link).replace("label",ie._label).replace("href",ie._href).replace("title",ie._title).getRegex(),ie.reflink=de(ie.reflink).replace("label",ie._label).getRegex(),ie.normal=ve({},ie),ie.pedantic=ve({},ie.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:de(/^!?\[(label)\]\((.*?)\)/).replace("label",ie._label).getRegex(),reflink:de(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ie._label).getRegex()}),ie.gfm=ve({},ie.normal,{escape:de(ie.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\/i.test(a[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(a[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(a[0])&&(this.inRawBlock=!1),e=e.substring(a[0].length),s+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(a[0]):ue(a[0]):a[0];else if(a=this.rules.link.exec(e)){var l=ye(a[2],"()");if(l>-1){var u=4+a[1].length+l;a[2]=a[2].substring(0,l),a[0]=a[0].substring(0,u).trim(),a[3]=""}e=e.substring(a[0].length),this.inLink=!0,i=a[2],this.options.pedantic?(t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i))?(i=t[1],r=t[3]):r="":r=a[3]?a[3].slice(1,-1):"",i=i.trim().replace(/^<([\s\S]*)>$/,"$1"),s+=this.outputLink(a,{href:re.escapes(i),title:re.escapes(r)}),this.inLink=!1}else if((a=this.rules.reflink.exec(e))||(a=this.rules.nolink.exec(e))){if(e=e.substring(a[0].length),t=(a[2]||a[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){s+=a[0].charAt(0),e=a[0].substring(1)+e;continue}this.inLink=!0,s+=this.outputLink(a,t),this.inLink=!1}else if(a=this.rules.strong.exec(e))e=e.substring(a[0].length),s+=this.renderer.strong(this.output(a[4]||a[3]||a[2]||a[1]));else if(a=this.rules.em.exec(e))e=e.substring(a[0].length),s+=this.renderer.em(this.output(a[6]||a[5]||a[4]||a[3]||a[2]||a[1]));else if(a=this.rules.code.exec(e))e=e.substring(a[0].length),s+=this.renderer.codespan(ue(a[2].trim(),!0));else if(a=this.rules.br.exec(e))e=e.substring(a[0].length),s+=this.renderer.br();else if(a=this.rules.del.exec(e))e=e.substring(a[0].length),s+=this.renderer.del(this.output(a[1]));else if(a=this.rules.autolink.exec(e))e=e.substring(a[0].length),i="@"===a[2]?"mailto:"+(n=ue(this.mangle(a[1]))):n=ue(a[1]),s+=this.renderer.link(i,null,n);else if(this.inLink||!(a=this.rules.url.exec(e))){if(a=this.rules.text.exec(e))e=e.substring(a[0].length),this.inRawBlock?s+=this.renderer.text(this.options.sanitize?this.options.sanitizer?this.options.sanitizer(a[0]):ue(a[0]):a[0]):s+=this.renderer.text(ue(this.smartypants(a[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else{if("@"===a[2])i="mailto:"+(n=ue(a[0]));else{do{o=a[0],a[0]=this.rules._backpedal.exec(a[0])[0]}while(o!==a[0]);n=ue(a[0]),i="www."===a[1]?"http://"+n:n}e=e.substring(a[0].length),s+=this.renderer.link(i,null,n)}return s},re.escapes=function(e){return e?e.replace(re.rules._escapes,"$1"):e},re.prototype.outputLink=function(e,t){var n=t.href,i=t.title?ue(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,i,this.output(e[1])):this.renderer.image(n,i,ue(e[1]))},re.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},re.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",i=e.length,r=0;r.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},ae.prototype.code=function(e,t,n){var i=(t||"").match(/\S*/)[0];if(this.options.highlight){var r=this.options.highlight(e,i);null!=r&&r!==e&&(n=!0,e=r)}return i?'
    '+(n?e:ue(e,!0))+"
    \n":"
    "+(n?e:ue(e,!0))+"
    "},ae.prototype.blockquote=function(e){return"
    \n"+e+"
    \n"},ae.prototype.html=function(e){return e},ae.prototype.heading=function(e,t,n,i){var r=ee.Z.add(e,t);return this.options.headerIds?"'+e+"\n":"'+e+"\n"},ae.prototype.hr=function(){return this.options.xhtml?"
    \n":"
    \n"},ae.prototype.list=function(e,t,n){var i=t?"ol":"ul";return"<"+i+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},ae.prototype.listitem=function(e){var t="";return/\/.test(e)&&(t="list-item-checkbox",/checked/.test(e)&&(t+=" list-item-checkbox-checked")),'
  • ').concat(e,"
  • \n")},ae.prototype.checkbox=function(e){return" "},ae.prototype.paragraph=function(e){return"

    "+e+"

    \n"},ae.prototype.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},ae.prototype.tablerow=function(e){return"\n"+e+"\n"},ae.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"},ae.prototype.strong=function(e){return""+e+""},ae.prototype.em=function(e){return""+e+""},ae.prototype.codespan=function(e){return""+e+""},ae.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},ae.prototype.del=function(e){return""+e+""},ae.prototype.link=function(e,t,n){if(null===(e=he(this.options.sanitize,this.options.baseUrl,e)))return n;var i='
    "},ae.prototype.image=function(e,t,n){if(null===(e=he(this.options.sanitize,this.options.baseUrl,e)))return n;var i=''+n+'":">"},ae.prototype.text=function(e){return e},oe.prototype.strong=oe.prototype.em=oe.prototype.codespan=oe.prototype.del=oe.prototype.text=function(e){return e},oe.prototype.link=oe.prototype.image=function(e,t,n){return""+n},oe.prototype.br=function(){return""},se.parse=function(e,t){return new se(t).parse(e)},se.prototype.parse=function(e){this.inline=new re(e.links,this.options),this.inlineText=new re(e.links,ve({},this.options,{renderer:new oe})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},se.prototype.next=function(){return this.token=this.tokens.pop(),this.token},se.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},se.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},se.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,ce(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,i,r="",a="";for(n="",e=0;e?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t)){var n=t;do{this.seen[n]++,t=n+"-"+this.seen[n]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t},ue.escapeTest=/[&<>"']/,ue.escapeReplace=/[&<>"']/g,ue.replacements={"&":"&","<":"<",">":">",'"':""","'":"'"},ue.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/,ue.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g;var fe={},pe=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function me(){}function ve(e){for(var t,n,i=1;i=0&&"\\"===n[r];)i=!i;return i?"|":" |"})).split(/ \|/),i=0;if(n.length>t)n.splice(t);else for(;n.lengthAn error occurred:

    "+ue(e.message+"",!0)+"
    ";throw e}}me.exec=me,we.options=we.setOptions=function(e){return ve(we.defaults,e),we},we.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new ae,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}},we.defaults=we.getDefaults(),we.Parser=se,we.parser=se.parse,we.Renderer=ae,we.TextRenderer=oe,we.Lexer=ne,we.lexer=ne.lex,we.InlineLexer=re,we.inlineLexer=re.output,we.Slugger=le,we.parse=we;const xe=we;Q.initHighlightingOnLoad();var Ce=new xe.Renderer;const ke=xe.setOptions({renderer:Ce,gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,smartLists:!0,highlight:function(e){return Q.highlightAuto(e).value}})},90091:(e,t,n)=>{function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}!function(e,t,n){e.systemInfo=e.systemInfo||{},t.extend({isArray:function(e){return"object"==i(e)&&"[object array]"==Object.prototype.toString.call(e).toLowerCase()&&"number"==typeof e.length},isJson:function(e){return"object"==i(e)&&"[object object]"==Object.prototype.toString.call(e).toLowerCase()&&void 0===e.length},inArray:function(e,t){return!!this.isArray(t)&&t.includes(e)},randNum:function(e,t){var n=t-e,i=Math.random();return e+Math.round(i*n)},last:function(e){var t=!1;return"object"===i(e)&&e.length>0&&(t=e[e.length-1]),t},strExists:function(e,t){var i=arguments.length>2&&arguments[2]!==n&&arguments[2];return e+="",t+="",!0!==i&&(e=e.toLowerCase(),t=t.toLowerCase()),-1!==e.indexOf(t)},leftExists:function(e,t){var i=arguments.length>2&&arguments[2]!==n&&arguments[2];return e+="",t+="",!0!==i&&(e=e.toLowerCase(),t=t.toLowerCase()),e.substring(0,t.length)===t},leftDelete:function(e,t){var i=arguments.length>2&&arguments[2]!==n&&arguments[2];return e+="",t+="",this.leftExists(e,t,i)&&(e=e.substring(t.length)),e||""},rightExists:function(e,t){var i=arguments.length>2&&arguments[2]!==n&&arguments[2];return e+="",t+="",!0!==i&&(e=e.toLowerCase(),t=t.toLowerCase()),e.substring(e.length-t.length)===t},getMiddle:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:null,i=arguments.length>2&&arguments[2]!==n?arguments[2]:null;return e=e.toString(),this.isHave(t)&&this.strExists(e,t)&&(e=e.substring(e.indexOf(t)+t.length)),this.isHave(i)&&this.strExists(e,i)&&(e=e.substring(0,e.indexOf(i))),e},subString:function(e,t,n){return e+="",this.isHave(n)||(n=e.length),e.substring(t,n)},randomString:function(e){e=e||32;for(var t="ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678oOLl9gqVvUuI1",n=t.length,i="",r=0;r1&&arguments[1]!==n?arguments[1]:null,i=Number(e);if(i+""=="NaN"&&(i=0),t&&/^[0-9]*[1-9][0-9]*$/.test(t)){var r=(i=i.toFixed(t)).indexOf(".");if(r<0){i+=".";for(var a=0;a1&&arguments[1]!==n&&arguments[1];return"string"==typeof e&&this.strExists(e,"-")&&(e=e.replace(/-/g,"/")),!0===t?Math.round(new Date(e).getTime()/1e3):new Date(e)})),zeroFill:function(e,t,n){if((e+="").length>=t)return e;for(var i="",r=0;r86400){var i=Math.floor(n/86400),r=Math.ceil((n-86400*i)/3600);return r>0?i+"天"+r+"小时":i+"天"}return n>3600?Math.ceil(n/3600)+"小时":n>60?Math.ceil(n/60)+"分钟":n>10?n+"秒":"刚刚"},isMobile:function(e){return/^1([3456789])\d{9}$/.test(e)},isEmail:function(e){return/^[a-z0-9][a-z\.0-9-_]+@[a-z0-9_-]+(?:\.[a-z]{0,3}\.[a-z]{0,2}|\.[a-z]{0,3}|\.[a-z]{0,2})$/.test(e)},getDistance:function(e,t,n,i){var r,a,o,s,l,u=3.14159265359,c=6.28318530712,d=.01745329252,h=6370693.5;return r=t*d,a=i*d,(l=e*d-n*d)>u?l=c-l:l<-u&&(l=c+l),o=h*Math.cos(r)*l,s=h*(r-a),Math.sqrt(o*o+s*s).toFixed(0)},setTile:function(e){document.title=e;var t=navigator.userAgent.toLowerCase();if(/iphone|ipad|ipod/.test(t)){var n=document.createElement("iframe");n.style.display="none",n.setAttribute("src","/favicon.ico");n.addEventListener("load",(function e(){setTimeout((function(){n.removeEventListener("load",e),document.body.removeChild(n)}),0)})),document.body.appendChild(n)}},cloneJSON:function(e){return"object"!==i(e)||null===e?e:$A.jsonParse($A.jsonStringify(e))},jsonParse:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:n;if(null===e)return t||{};if("object"===i(e))return e;try{return JSON.parse(e.replace(/\n/g,"\\n").replace(/\r/g,"\\r"))}catch(e){return t||{}}},jsonStringify:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:n;if("object"!==i(e))return e;try{return JSON.stringify(e)}catch(e){return t||""}},resize:function(e,t){var n=$A(e);if(0!==n.length)var i=parseInt(n.outerHeight()),r=parseInt(n.outerWidth()),a=setInterval((function(){0===n.length&&clearInterval(a);var e=parseInt(n.outerHeight()),o=parseInt(n.outerWidth());i===e&&r===o||(i=e,r=o,console.log(r,i),"function"==typeof t&&t())}),250)},isIos:function(){var t=void 0!==e&&e.navigator.userAgent.toLowerCase();return t&&/iphone|ipad|ipod|ios/.test(t)},isAndroid:function(){var t=void 0!==e&&e.navigator.userAgent.toLowerCase();return t&&t.indexOf("android")>0},isWeixin:function(){return(void 0!==e&&e.navigator.userAgent.toLowerCase()).match(/MicroMessenger/i)+""=="micromessenger"},isChrome:function(){return(void 0!==e&&e.navigator.userAgent.toLowerCase()).match(/Chrome/i)+""=="chrome"},isDesktop:function(){return!(void 0!==e&&e.navigator.userAgent).match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)},getObject:function(e,t){var n=e;return 0===this.count(e)||0===this.count(t)?"":(t.replace(/,/g,"|").replace(/\./g,"|").split("|").some((function(e){n=void 0===n[e]?"":n[e]})),n)},count:function(e){try{if(void 0===e)return 0;if("number"==typeof e&&(e+=""),"number"==typeof e.length)return e.length;var t,n=0;for(t in e)n++;return n}catch(e){return 0}},objImplode:function(e){var t=this;if(null===e)return"";var n="";return $A.each(e,(function(e,r){null!==r&&("object"===i(r)&&t.count(r)>0?n+=t.objImplode(r):n+=String(r))})),n.replace(/\s/g,"").replace(/undefined/g,"")},urlParameter:function(e){var t=this.urlParameterAll();return void 0===e?t:t[e]},urlParameterAll:function(){var t=e.location.search||"",n=[];this.strExists(t,"?")&&(n=this.getMiddle(t,"?").split("&"));for(var i={},r=0;r=2){for(var i=encodeURIComponent(t)+"=",r=n[1].split(/[&;]/g),a=r.length;a-- >0;)-1!==r[a].lastIndexOf(i,0)&&r.splice(a,1);return n[0]+(r.length>0?"?"+r.join("&"):"")}return e},urlAddParams:function(e,t){if($A.isJson(t))for(var n in e&&(e=this.removeURLParameter(e,Object.keys(t))),e+="",e+=-1===e.indexOf("?")?"?":"",t)t.hasOwnProperty(n)&&(e+="&"+n+"="+t[n]);return e.replace("?&","?")},stringConnect:function(){for(var e=null,t="",n=arguments.length,i=new Array(n),r=0;r0&&(e=e[0]);var n="object"===i(e.$el)?$A(e.$el):$A(e);if(0!==n.length){var r=n[0];if("INPUT"!=r.tagName&&"TEXTAREA"!=r.tagName&&(n=0===n.find("input").length?n.find("textarea"):n.find("input")),0!==n.length&&("INPUT"==(r=n[0]).tagName||"TEXTAREA"==r.tagName)){var a=n.val(),o=r,s=o.selectionStart,l=o.selectionEnd;n.val("".concat(a.substring(0,s)).concat(t).concat(a.substring(l,a.length))),r.dispatchEvent(new Event("input")),setTimeout((function(){if(r.setSelectionRange){var e=a.substring(0,s).length+t.length;r.focus(),r.setSelectionRange(e,e)}}),10)}}}},iOSKeyboardFixer:function(){this.isIos()&&(document.body.scrollTop=document.body.scrollTop+1,document.body.scrollTop=document.body.scrollTop-1)},loadScript:function(t,n){var i=this;if(t=$A.originUrl(t),this.rightExists(t,".css"))this.loadCss(t,n);else if(!0!==this.__loadScript[t]){var r=document.createElement("script");r.type="text/javascript",r.readyState?r.onreadystatechange=function(){"loaded"!==r.readyState&&"complete"!==r.readyState||(r.onreadystatechange=null,i.__loadScript[t]=!0,"function"==typeof n&&n(null))}:(r.onload=function(){i.__loadScript[t]=!0,"function"==typeof n&&n(null)},r.onerror=function(e){"function"==typeof n&&n(e)}),this.rightExists(t,".js")?r.src=t+"?hash="+e.systemInfo.version:r.src=t,document.body.appendChild(r)}else"function"==typeof n&&n(null)},loadScriptS:function(e,t){var n=this,i=0;this.loadScript(e[0],(function r(){++i&"]/g,(function(e){return{"<":"<",">":">","&":"&",'"':"""}[e]})):""},getDomain:function(e){var t=(e+"").match(/http(s)?:\/\/([^\/]+)/i);return null!=t&&t.length>0?t[2]:""}}),t.extend({setStorage:function(e,t){return this.storage(e,t)},getStorage:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:null,i=this.storage(e);return i||t},getStorageString:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:"",i=this.storage(e);return"string"==typeof i||"number"==typeof i?i:t},getStorageInt:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:0,i=this.storage(e);return"number"==typeof i?i:t},getStorageBoolean:function(e){var t=arguments.length>1&&arguments[1]!==n&&arguments[1],i=this.storage(e);return"boolean"==typeof i?i:t},getStorageArray:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:[],i=this.storage(e);return this.isArray(i)?i:t},getStorageJson:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:{},i=this.storage(e);return this.isJson(i)?i:t},storage:function(e,t){if(e){var n="__state__";if("cache"===e.substring(0,5)&&(n="__state:"+e+"__"),void 0===t)return this.loadFromlLocal(e,"",n);this.savaToLocal(e,t,n)}},savaToLocal:function(t,n,i){try{void 0===i&&(i="__seller__");var r=e.localStorage[i];(r=r?JSON.parse(r):{})[t]=n,e.localStorage[i]=JSON.stringify(r)}catch(e){}},loadFromlLocal:function(t,n,i){try{void 0===i&&(i="__seller__");var r=e.localStorage[i];return r&&((r=JSON.parse(r))&&void 0!==r[t])?r[t]:n}catch(e){return n}}}),t.extend({serializeObject:function(e,n){if("string"==typeof e)return e;var r,a=[];function o(e){if(n.length>0){for(var t="",i=0;i0&&a.push(u.join("&"))}else null===e[l]?a.push(o(l)+"="):"object"===i(e[l])?((r=n.slice()).push(l),""!==(u=t.serializeObject(e[l],r))&&a.push(u)):void 0!==e[l]&&""!==e[l]?a.push(o(l)+"="+s(e[l])):""===e[l]&&a.push(o(l))}return a.join("&")},globalAjaxOptions:{},ajaxSetup:function(e){e.type&&(e.method=e.type),t.each(e,(function(e,n){t.globalAjaxOptions[e]=n}))},_jsonpRequests:0,ihttp:function(i){var r={method:"GET",data:!1,async:!0,cache:!0,user:"",password:"",headers:{},xhrFields:{},statusCode:{},processData:!0,dataType:"text",contentType:"application/x-www-form-urlencoded",timeout:0},a=["beforeSend","error","complete","success","statusCode"];function o(e,n,r){var a=arguments;e&&t(document).trigger(e,n),r&&(r in t.globalAjaxOptions&&t.globalAjaxOptions[r](a[3],a[4],a[5],a[6]),i[r]&&i[r](a[3],a[4],a[5],a[6]))}i.type&&(i.method=i.type),t.each(t.globalAjaxOptions,(function(e,t){a.indexOf(e)<0&&(r[e]=t)})),t.each(r,(function(e,t){e in i||(i[e]=t)})),i.url||(i.url=e.location.toString());var s,l=i.url.indexOf("?")>=0?"&":"?",u=i.method.toUpperCase();"GET"!==u&&"HEAD"!==u&&"OPTIONS"!==u&&"DELETE"!==u||!i.data||(s="string"==typeof i.data?i.data.indexOf("?")>=0?i.data.split("?")[1]:i.data:t.serializeObject(i.data)).length&&(i.url+=l+s,"?"===l&&(l="&"));if("json"===i.dataType&&i.url.indexOf("callback=")>=0){var c,d="f7jsonp_"+Date.now()+t._jsonpRequests++,h=i.url.split("callback="),f=h[0]+"callback="+d;if(h[1].indexOf("&")>=0){var p=h[1].split("&").filter((function(e){return e.indexOf("=")>0})).join("&");p.length>0&&(f+="&"+p)}var m=document.createElement("script");return m.type="text/javascript",m.onerror=function(){clearTimeout(c),o(n,n,"error",null,"scripterror"),o("ajaxComplete ajax:complete",{scripterror:!0},"complete",null,"scripterror")},m.src=f,e[d]=function(t){clearTimeout(c),o(n,n,"success",t),m.parentNode.removeChild(m),m=null,delete e[d]},document.querySelector("head").appendChild(m),void(i.timeout>0&&(c=setTimeout((function(){m.parentNode.removeChild(m),m=null,o(n,n,"error",null,"timeout")}),i.timeout)))}"GET"!==u&&"HEAD"!==u&&"OPTIONS"!==u&&"DELETE"!==u||!1===i.cache&&(i.url+=l+"_nocache="+Date.now());var v=new XMLHttpRequest;v.requestUrl=i.url,v.requestParameters=i,v.open(u,i.url,i.async,i.user,i.password);var g,b=null;if(("POST"===u||"PUT"===u||"PATCH"===u)&&i.data)if(i.processData)if([ArrayBuffer,Blob,Document,FormData].indexOf(i.data.constructor)>=0)b=i.data;else{var y="---------------------------"+Date.now().toString(16);"multipart/form-data"===i.contentType?v.setRequestHeader("Content-Type","multipart/form-data; boundary="+y):v.setRequestHeader("Content-Type",i.contentType),b="";var _=t.serializeObject(i.data);if("multipart/form-data"===i.contentType){y="---------------------------"+Date.now().toString(16),_=_.split("&");for(var w=[],x=0;x<_.length;x++)w.push('Content-Disposition: form-data; name="'+_[x].split("=")[0]+'"\r\n\r\n'+_[x].split("=")[1]+"\r\n");b="--"+y+"\r\n"+w.join("--"+y+"\r\n")+"--"+y+"--\r\n"}else b=_}else b=i.data;return i.headers&&t.each(i.headers,(function(e,t){v.setRequestHeader(e,t)})),void 0===i.crossDomain&&(i.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(i.url)&&RegExp.$2!==e.location.host),i.crossDomain||v.setRequestHeader("X-Requested-With","XMLHttpRequest"),i.xhrFields&&t.each(i.xhrFields,(function(e,t){v[e]=t})),v.onload=function(e){var n;if(g&&clearTimeout(g),v.status>=200&&v.status<300||0===v.status)if("json"===i.dataType)try{n=JSON.parse(v.responseText),o("ajaxSuccess ajax:success",{xhr:v},"success",n,v.status,v)}catch(e){console.error(e),o("ajaxError ajax:error",{xhr:v,parseerror:!0},"error",v,"parseerror")}else n="text"===v.responseType||""===v.responseType?v.responseText:v.response,o("ajaxSuccess ajax:success",{xhr:v},"success",n,v.status,v);else o("ajaxError ajax:error",{xhr:v},"error",v,v.status);i.statusCode&&(t.globalAjaxOptions.statusCode&&t.globalAjaxOptions.statusCode[v.status]&&t.globalAjaxOptions.statusCode[v.status](v),i.statusCode[v.status]&&i.statusCode[v.status](v)),o("ajaxComplete ajax:complete",{xhr:v},"complete",v,v.status)},v.onerror=function(e){g&&clearTimeout(g),o("ajaxError ajax:error",{xhr:v},"error",v,v.status),o("ajaxComplete ajax:complete",{xhr:v,error:!0},"complete",v,"error")},o("ajaxStart ajax:start",{xhr:v},"start",v),o(n,n,"beforeSend",v),i.timeout>0&&(v.onabort=function(){g&&clearTimeout(g)},g=setTimeout((function(){v.abort(),o("ajaxError ajax:error",{xhr:v,timeout:!0},"error",v,"timeout"),o("ajaxComplete ajax:complete",{xhr:v,timeout:!0},"complete",v,"timeout")}),i.timeout)),v.send(b),v}}),t.extend({ajaxc:function(e){return!!e&&(void 0!==e.url&&(void 0===e.data&&(e.data={}),void 0===e.cache&&(e.cache=!1),void 0===e.method&&(e.method="GET"),void 0===e.timeout&&(e.timeout=3e4),void 0===e.dataType&&(e.dataType="json"),void 0===e.before&&(e.before=function(){}),void 0===e.complete&&(e.complete=function(){}),void 0===e.after&&(e.after=function(){}),void 0===e.success&&(e.success=function(){}),void 0===e.error&&(e.error=function(){}),void 0===e.header&&(e.header={}),e.before(),void $A.ihttp({url:e.url,data:e.data,cache:e.cache,headers:e.header,method:e.method.toUpperCase(),contentType:"OPTIONS",crossDomain:!0,dataType:e.dataType,timeout:e.timeout,success:function(t,n,i){e.complete(),e.success(t,n,i),e.after(!0)},error:function(t,n){e.complete(),e.error(t,n),e.after(!1)}})))}}),e.$A=t}(window,window.$=window.jQuery=n(19755))},92693:()=>{!function(e){var t=e.$A;t.extend({apiUrl:function(t){if("//"===t.substring(0,2)||"http://"===t.substring(0,7)||"https://"===t.substring(0,8)||"ftp://"===t.substring(0,6)||"/"===t.substring(0,1))return t;for(t="string"==typeof e.systemInfo.apiUrl?e.systemInfo.apiUrl+t:e.location.origin+"/api/"+t;-1!==t.indexOf("/../");)t=t.replace(/\/(((?!\/).)*)\/\.\.\//,"/");return t},originUrl:function(t){if("//"===t.substring(0,2)||"http://"===t.substring(0,7)||"https://"===t.substring(0,8)||"ftp://"===t.substring(0,6)||"/"===t.substring(0,1))return t;for(t="string"==typeof e.systemInfo.origin?e.systemInfo.origin+t:e.location.origin+"/"+t;-1!==t.indexOf("/../");)t=t.replace(/\/(((?!\/).)*)\/\.\.\//,"/");return t},projectParameterTemplate:function(e){return{project_id:e,card:!0,cardInit:!1,chat:!1,showMy:!0,showHelp:!0,showUndone:!0,showCompleted:!1,completedTask:!1}},formatWebsocketMessageDetail:function(e){if($A.isJson(e))for(var t in e)e.hasOwnProperty(t)&&(e[t]=$A.formatWebsocketMessageDetail(e[t]));else $A.isArray(e)?e.forEach((function(t,n){e[n]=$A.formatWebsocketMessageDetail(t)})):"string"==typeof e&&(e=e.replace(/\{\{RemoteURL\}\}/g,this.apiUrl("../")));return e},formatTime:function(e){var t=Math.round($A.Date(e).getTime()/1e3);return($A.formatDate("Ymd")===$A.formatDate("Ymd",t)?$A.formatDate("H:i",t):$A.formatDate("Y")===$A.formatDate("Y",t)?$A.formatDate("m-d",t):$A.formatDate("Y-m-d",t))||""},formatBit:function(e){return(e=+e)>9?e:"0"+e},formatSeconds:function(e){var t,n=Math.floor(e/86400),i=Math.floor(e%86400/3600),r=Math.floor(e%86400%3600/60),a=Math.floor(e%86400%3600%60);return n>0?t=i>0?n+"d,"+this.formatBit(i)+"h":r>0?n+"d,"+this.formatBit(r)+"min":a>0?n+"d,"+this.formatBit(a)+"s":n+"d":i>0?t=this.formatBit(i)+":"+this.formatBit(r)+":"+this.formatBit(a):r>0?t=this.formatBit(r)+":"+this.formatBit(a):a>0&&(t=this.formatBit(a)+"s"),t},countDownFormat:function(e,t){var n=Math.round(this.Date(e).getTime()/1e3)-t;return n<604800&&n>0?this.formatSeconds(n):n<=0?"-"+this.formatSeconds(-1*n):this.formatTime(e)},getData:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=new Date,i=n.getDay(),r=n.getDate(),a=n.getMonth(),o=n.getYear();o+=o<2e3?1900:0;var s=new Date;s.setDate(1),s.setMonth(s.getMonth()-1);var l=s.getMonth(),u=function(){var e=0;return a<3&&(e=0),28&&(e=9),e},c=function(e){var t=new Date(o,e,1);return(new Date(o,e+1,1)-t)/864e5},d=n.getTime();switch(e){case"今天":d=n;break;case"昨天":d=n-864e5;break;case"前天":d=n-1728e5;break;case"本周":d=new Date(o,a,r-i);break;case"本周结束":d=new Date(o,a,r+(6-i));break;case"上周":d=new Date(o,a,r-i-7);break;case"上周结束":d=new Date(o,a,r-i-1);break;case"本周2":d=new Date(o,a,r-i+1);break;case"本周结束2":d=new Date(o,a,r+(6-i)+1);break;case"上周2":d=new Date(o,a,r-i-7+1);break;case"上周结束2":d=new Date(o,a,r-i-1+1);break;case"本月":d=new Date(o,a,1);break;case"本月结束":d=new Date(o,a,c(a));break;case"上个月":d=new Date(o,l,1);break;case"上个月结束":d=new Date(o,l,c(l));break;case"本季度":d=new Date(o,u(),1);break;case"本季度结束":var h=u()+2;d=new Date(o,h,c(h))}return!0===t?d:$A.formatDate("Y-m-d",parseInt(d/1e3))},timeOptionShortcuts:function(){var e=function(e){return $A.Date($A.formatDate("Y-m-d 23:59:29",Math.round(e/1e3)))};return[{text:$A.L("今天"),value:function(){return[new Date,e((new Date).getTime())]}},{text:$A.L("明天"),value:function(){var t=new Date;return t.setDate(t.getDate()+1),[new Date,e(t.getTime())]}},{text:$A.L("本周"),value:function(){return[$A.getData("今天",!0),e($A.getData("本周结束2",!0))]}},{text:$A.L("本月"),value:function(){return[$A.getData("今天",!0),e($A.getData("本月结束",!0))]}},{text:$A.L("3天"),value:function(){var t=new Date;return t.setDate(t.getDate()+2),[new Date,e(t.getTime())]}},{text:$A.L("5天"),value:function(){var t=new Date;return t.setDate(t.getDate()+4),[new Date,e(t.getTime())]}},{text:$A.L("7天"),value:function(){var t=new Date;return t.setDate(t.getDate()+6),[new Date,e(t.getTime())]}}]},dialogTags:function(e){var t=[];return"group"==e.type&&["project","task"].includes(e.group_type)&&$A.isJson(e.group_info)&&("task"==e.group_type&&e.group_info.complete_at&&t.push({color:"success",text:"已完成"}),e.group_info.deleted_at?t.push({color:"red",text:"已删除"}):e.group_info.archived_at&&t.push({color:"default",text:"已归档"})),t},dialogCompleted:function(e){return this.dialogTags(e).find((function(e){return"success"==e.color}))},downFile:function(t){t&&($A.Electron?$A.Electron.sendMessage("openExternal",t):e.open(t))}}),t.extend({spinnerShow:function(){if($A.spinnerLoadNum++,$A.spinnerLoadNum>0){var e=document.getElementById("common-spinner");e&&(e.style.display="block")}},spinnerHide:function(){if($A.spinnerLoadNum--,$A.spinnerLoadNum<=0){var e=document.getElementById("common-spinner");e&&(e.style.display="none")}},spinnerLoadNum:0,modalConfig:function(e){return void 0===e?e={content:"Undefined"}:"string"==typeof e&&(e={content:e}),e.title=$A.L(e.title||(void 0===e.render?"温馨提示":"")),e.content=$A.L(e.content||""),e.okText=$A.L(e.okText||"确定"),e.cancelText=$A.L(e.cancelText||"取消"),e},modalInput:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t>0)setTimeout((function(){$A.modalInput(e)}),t);else{"string"==typeof e&&(e={title:e});var n="modalInput_"+$A.randomString(6);$A.Modal.confirm({render:function(t){return t("div",[t("div",{style:{fontSize:"16px",fontWeight:"500",marginBottom:"20px"}},$A.L(e.title)),t("Input",{props:{value:e.value,placeholder:$A.L(e.placeholder),elementId:n},on:{input:function(t){e.value=t}}})])},onOk:function(){"function"==typeof e.onOk?!0===e.onOk(e.value,(function(){$A.Modal.remove()}))&&$A.Modal.remove():$A.Modal.remove()},onCancel:function(){"function"==typeof e.onCancel&&e.onCancel()},loading:!0,okText:$A.L(e.okText||"确定"),cancelText:$A.L(e.cancelText||"取消")}),setTimeout((function(){document.getElementById(n)&&document.getElementById(n).focus()}))}},modalConfirm:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;!1!==e&&(t>0?setTimeout((function(){$A.modalConfirm(e)}),t):$A.Modal.confirm($A.modalConfig(e)))},modalSuccess:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;!1!==e&&(t>0?setTimeout((function(){$A.modalSuccess(e)}),t):$A.Modal.success($A.modalConfig(e)))},modalInfo:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;!1!==e&&(t>0?setTimeout((function(){$A.modalInfo(e)}),t):$A.Modal.info($A.modalConfig(e)))},modalWarning:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;!1!==e&&(t>0?setTimeout((function(){$A.modalWarning(e)}),t):$A.Modal.warning($A.modalConfig(e)))},modalError:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;!1!==e&&(t>0?setTimeout((function(){$A.modalError(e)}),t):$A.Modal.error($A.modalConfig(e)))},modalAlert:function(e){!1!==e&&alert($A.L(e))},messageSuccess:function(e){$A.Message.success($A.L(e))},messageWarning:function(e){$A.Message.warning($A.L(e))},messageError:function(e){$A.Message.error($A.L(e))},noticeConfig:function(e){return void 0===e?e={desc:"Undefined"}:"string"==typeof e&&(e={desc:e}),e.title=$A.L(e.title||(void 0===e.render?"温馨提示":"")),e.desc=$A.L(e.desc||""),e},noticeSuccess:function(e){$A.Notice.success($A.noticeConfig(e))},noticeWarning:function(e){$A.Notice.warning($A.noticeConfig(e))},noticeError:function(e){"string"==typeof e&&(e={desc:e,duration:6}),$A.Notice.error($A.noticeConfig(e))}}),t.extend({dark:{utils:{filter:"-webkit-filter: url(#dark-mode-filter) !important; filter: url(#dark-mode-filter) !important;",reverseFilter:"-webkit-filter: url(#dark-mode-reverse-filter) !important; filter: url(#dark-mode-reverse-filter) !important;",noneFilter:"-webkit-filter: none !important; filter: none !important;",addExtraStyle:function(){try{return""}catch(e){return""}},addStyle:function(e,t,n){t=t||"style";var i=document;if(!i.getElementById(e)){var r=i.createElement(t);r.rel="stylesheet",r.id=e,"style"===t?r.innerHTML=n:r.href=n,document.head.appendChild(r)}},getClassList:function(e){return e.classList||[]},addClass:function(e,t){return this.getClassList(e).add(t),this},removeClass:function(e,t){return this.getClassList(e).remove(t),this},hasClass:function(e,t){return this.getClassList(e).contains(t)},hasElementById:function(e){return document.getElementById(e)},removeElementById:function(e){var t=document.getElementById(e);t&&t.parentNode.removeChild(t)}},createDarkFilter:function(){if(!this.utils.hasElementById("dark-mode-svg")){var e=document.createElementNS("http://www.w3.org/1999/xhtml","div");e.innerHTML='';for(var t=document.createDocumentFragment();e.firstChild;)t.appendChild(e.firstChild);document.head.appendChild(t)}},createDarkStyle:function(){this.utils.addStyle("dark-mode-style","style","\n @media screen {\n html {\n ".concat(this.utils.filter,'\n }\n\n /* Default Reverse rule */\n img,\n video,\n iframe,\n canvas,\n :not(object):not(body) > embed,\n object,\n svg image,\n [style*="background:url"],\n [style*="background-image:url"],\n [style*="background: url"],\n [style*="background-image: url"],\n [background],\n twitterwidget,\n .sr-reader,\n .no-dark-mode,\n .no-dark-mode-before:before,\n .sr-backdrop {\n ').concat(this.utils.reverseFilter,'\n }\n\n [style*="background:url"] *,\n [style*="background-image:url"] *,\n [style*="background: url"] *,\n [style*="background-image: url"] *,\n input,\n [background] *,\n twitterwidget .NaturalImage-image {\n ').concat(this.utils.noneFilter,"\n }\n\n /* Text contrast */\n html {\n text-shadow: 0 0 0 !important;\n }\n\n /* Full screen */\n .no-filter,\n :-webkit-full-screen,\n :-webkit-full-screen *,\n :-moz-full-screen,\n :-moz-full-screen *,\n :fullscreen,\n :fullscreen * {\n ").concat(this.utils.noneFilter,"\n }\n\n /* Page background */\n html {\n background: #fff !important;\n }\n ").concat(this.utils.addExtraStyle(),"\n }\n\n @media print {\n .no-print {\n display: none !important;\n }\n }"))},enableDarkMode:function(){$A.isChrome()&&(this.isDarkEnabled()||(this.createDarkFilter(),this.createDarkStyle(),this.utils.addClass(document.body,"dark-mode-reverse")))},disableDarkMode:function(){this.isDarkEnabled()&&(this.utils.removeElementById("dark-mode-svg"),this.utils.removeElementById("dark-mode-style"),this.utils.removeClass(document.body,"dark-mode-reverse"))},autoDarkMode:function(){e.matchMedia&&e.matchMedia("(prefers-color-scheme: dark)").matches?this.enableDarkMode():this.disableDarkMode()},isDarkEnabled:function(){return this.utils.hasClass(document.body,"dark-mode-reverse")}}}),e.$A=t}(window)},31108:(e,t)=>{t.Z=[]},33301:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var i={isDesktop:$A.isDesktop(),windowWidth:window.innerWidth,windowMax768:window.innerWidth<=768,cacheLoading:{},cacheDrawerIndex:0,cacheDrawerOverlay:[],cacheUserActive:{},cacheUserWait:[],cacheUserBasic:$A.getStorageArray("cacheUserBasic"),cacheDialogs:$A.getStorageArray("cacheDialogs"),cacheUnreads:{},cacheProjects:$A.getStorageArray("cacheProjects"),cacheColumns:$A.getStorageArray("cacheColumns"),cacheTasks:$A.getStorageArray("cacheTasks"),cacheProjectParameter:$A.getStorageArray("cacheProjectParameter"),cacheServerUrl:$A.getStorageString("cacheServerUrl"),ajaxWsReady:!1,ajaxWsListener:[],ws:null,wsMsg:{},wsCall:{},wsTimeout:null,wsOpenNum:0,wsListener:{},wsReadTimeout:null,wsReadWaitList:[],userInfo:$A.getStorageJson("userInfo"),userId:0,userToken:"",userIsAdmin:!1,userOnline:{},dialogMsgs:[],dialogOpenId:0,files:[],fileContent:{},projectId:0,projectTotal:0,projectLoad:0,taskId:0,taskCompleteTemps:[],taskContents:[],taskFiles:[],taskLogs:[],taskLoading:[],taskFlows:[],taskFlowItems:[],taskPriority:[],columnTemplate:[],columnColorList:[{name:"默认",color:""},{name:"灰色",color:"#444444"},{name:"棕色",color:"#947364"},{name:"橘色",color:"#faaa6c"},{name:"黄色",color:"#f2d86d"},{name:"绿色",color:"#73b45c"},{name:"蓝色",color:"#51abea"},{name:"紫色",color:"#b583e3"},{name:"粉色",color:"#ff819c"},{name:"红色",color:"#ff7070"}],taskColorList:[{name:"默认",color:""},{name:"黄色",color:"#fffae6"},{name:"蓝色",color:"#e5f5ff"},{name:"绿色",color:"#ecffe5"},{name:"粉色",color:"#ffeaee"},{name:"紫色",color:"#f6ecff"},{name:"灰色",color:"#f3f3f3"}],themeMode:$A.getStorageString("cacheThemeMode"),themeList:[{name:"跟随系统",value:"auto"},{name:"明亮",value:"light"},{name:"暗黑",value:"dark"}],themeIsDark:!1};switch(i.userInfo.userid&&(i.userId=i.userInfo.userid=$A.runNum(i.userInfo.userid),i.userToken=i.userInfo.token,i.userIsAdmin=$A.inArray("admin",i.userInfo.identity)),i.cacheServerUrl&&(window.systemInfo.apiUrl=i.cacheServerUrl),i.themeMode){case"dark":$A.dark.enableDarkMode();break;case"light":$A.dark.disableDarkMode();break;default:i.themeMode="auto",$A.dark.autoDarkMode()}i.themeIsDark=$A.dark.isDarkEnabled();const r=i},52945:(e,t,n)=>{e.exports={default:n(56981),__esModule:!0}},93516:(e,t,n)=>{e.exports={default:n(80025),__esModule:!0}},64275:(e,t,n)=>{e.exports={default:n(52392),__esModule:!0}},88239:(e,t,n)=>{"use strict";var i,r=n(52945),a=(i=r)&&i.__esModule?i:{default:i};t.Z=a.default||function(e){for(var t=1;t{"use strict";var i=o(n(64275)),r=o(n(93516)),a="function"==typeof r.default&&"symbol"==typeof i.default?function(e){return typeof e}:function(e){return e&&"function"==typeof r.default&&e.constructor===r.default&&e!==r.default.prototype?"symbol":typeof e};function o(e){return e&&e.__esModule?e:{default:e}}t.Z="function"==typeof r.default&&"symbol"===a(i.default)?function(e){return void 0===e?"undefined":a(e)}:function(e){return e&&"function"==typeof r.default&&e.constructor===r.default&&e!==r.default.prototype?"symbol":void 0===e?"undefined":a(e)}},56981:(e,t,n)=>{n(72699),e.exports=n(34579).Object.assign},80025:(e,t,n)=>{n(46840),n(94058),n(8174),n(36461),e.exports=n(34579).Symbol},52392:(e,t,n)=>{n(91867),n(73871),e.exports=n(25103).f("iterator")},85663:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},79003:e=>{e.exports=function(){}},12159:(e,t,n)=>{var i=n(36727);e.exports=function(e){if(!i(e))throw TypeError(e+" is not an object!");return e}},57428:(e,t,n)=>{var i=n(7932),r=n(78728),a=n(16531);e.exports=function(e){return function(t,n,o){var s,l=i(t),u=r(l.length),c=a(o,u);if(e&&n!=n){for(;u>c;)if((s=l[c++])!=s)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===n)return e||c||0;return!e&&-1}}},32894:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},34579:e=>{var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},19216:(e,t,n)=>{var i=n(85663);e.exports=function(e,t,n){if(i(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,i){return e.call(t,n,i)};case 3:return function(n,i,r){return e.call(t,n,i,r)}}return function(){return e.apply(t,arguments)}}},8333:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},89666:(e,t,n)=>{e.exports=!n(7929)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},97467:(e,t,n)=>{var i=n(36727),r=n(33938).document,a=i(r)&&i(r.createElement);e.exports=function(e){return a?r.createElement(e):{}}},73338:e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},70337:(e,t,n)=>{var i=n(46162),r=n(48195),a=n(86274);e.exports=function(e){var t=i(e),n=r.f;if(n)for(var o,s=n(e),l=a.f,u=0;s.length>u;)l.call(e,o=s[u++])&&t.push(o);return t}},83856:(e,t,n)=>{var i=n(33938),r=n(34579),a=n(19216),o=n(41818),s=n(27069),l=function(e,t,n){var u,c,d,h=e&l.F,f=e&l.G,p=e&l.S,m=e&l.P,v=e&l.B,g=e&l.W,b=f?r:r[t]||(r[t]={}),y=b.prototype,_=f?i:p?i[t]:(i[t]||{}).prototype;for(u in f&&(n=t),n)(c=!h&&_&&void 0!==_[u])&&s(b,u)||(d=c?_[u]:n[u],b[u]=f&&"function"!=typeof _[u]?n[u]:v&&c?a(d,i):g&&_[u]==d?function(e){var t=function(t,n,i){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,i)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(d):m&&"function"==typeof d?a(Function.call,d):d,m&&((b.virtual||(b.virtual={}))[u]=d,e&l.R&&y&&!y[u]&&o(y,u,d)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},7929:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},33938:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},27069:e=>{var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},41818:(e,t,n)=>{var i=n(4743),r=n(83101);e.exports=n(89666)?function(e,t,n){return i.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},54881:(e,t,n)=>{var i=n(33938).document;e.exports=i&&i.documentElement},33758:(e,t,n)=>{e.exports=!n(89666)&&!n(7929)((function(){return 7!=Object.defineProperty(n(97467)("div"),"a",{get:function(){return 7}}).a}))},50799:(e,t,n)=>{var i=n(32894);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},71421:(e,t,n)=>{var i=n(32894);e.exports=Array.isArray||function(e){return"Array"==i(e)}},36727:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},33945:(e,t,n)=>{"use strict";var i=n(98989),r=n(83101),a=n(25378),o={};n(41818)(o,n(22939)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=i(o,{next:r(1,n)}),a(e,t+" Iterator")}},45700:(e,t,n)=>{"use strict";var i=n(16227),r=n(83856),a=n(57470),o=n(41818),s=n(15449),l=n(33945),u=n(25378),c=n(95089),d=n(22939)("iterator"),h=!([].keys&&"next"in[].keys()),f="keys",p="values",m=function(){return this};e.exports=function(e,t,n,v,g,b,y){l(n,t,v);var _,w,x,C=function(e){if(!h&&e in T)return T[e];switch(e){case f:case p:return function(){return new n(this,e)}}return function(){return new n(this,e)}},k=t+" Iterator",S=g==p,O=!1,T=e.prototype,D=T[d]||T["@@iterator"]||g&&T[g],E=D||C(g),$=g?S?C("entries"):E:void 0,M="Array"==t&&T.entries||D;if(M&&(x=c(M.call(new e)))!==Object.prototype&&x.next&&(u(x,k,!0),i||"function"==typeof x[d]||o(x,d,m)),S&&D&&D.name!==p&&(O=!0,E=function(){return D.call(this)}),i&&!y||!h&&!O&&T[d]||o(T,d,E),s[t]=E,s[k]=m,g)if(_={values:S?E:C(p),keys:b?E:C(f),entries:$},y)for(w in _)w in T||a(T,w,_[w]);else r(r.P+r.F*(h||O),t,_);return _}},85084:e=>{e.exports=function(e,t){return{value:t,done:!!e}}},15449:e=>{e.exports={}},16227:e=>{e.exports=!0},77177:(e,t,n)=>{var i=n(65730)("meta"),r=n(36727),a=n(27069),o=n(4743).f,s=0,l=Object.isExtensible||function(){return!0},u=!n(7929)((function(){return l(Object.preventExtensions({}))})),c=function(e){o(e,i,{value:{i:"O"+ ++s,w:{}}})},d=e.exports={KEY:i,NEED:!1,fastKey:function(e,t){if(!r(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,i)){if(!l(e))return"F";if(!t)return"E";c(e)}return e[i].i},getWeak:function(e,t){if(!a(e,i)){if(!l(e))return!0;if(!t)return!1;c(e)}return e[i].w},onFreeze:function(e){return u&&d.NEED&&l(e)&&!a(e,i)&&c(e),e}}},88082:(e,t,n)=>{"use strict";var i=n(89666),r=n(46162),a=n(48195),o=n(86274),s=n(66530),l=n(50799),u=Object.assign;e.exports=!u||n(7929)((function(){var e={},t={},n=Symbol(),i="abcdefghijklmnopqrst";return e[n]=7,i.split("").forEach((function(e){t[e]=e})),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=i}))?function(e,t){for(var n=s(e),u=arguments.length,c=1,d=a.f,h=o.f;u>c;)for(var f,p=l(arguments[c++]),m=d?r(p).concat(d(p)):r(p),v=m.length,g=0;v>g;)f=m[g++],i&&!h.call(p,f)||(n[f]=p[f]);return n}:u},98989:(e,t,n)=>{var i=n(12159),r=n(57856),a=n(73338),o=n(58989)("IE_PROTO"),s=function(){},l=function(){var e,t=n(97467)("iframe"),i=a.length;for(t.style.display="none",n(54881).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("