2022-02-13 14:10:06 +08:00

1 line
6.2 KiB
JavaScript
Vendored

"use strict";(self.webpackChunkDooTask=self.webpackChunkDooTask||[]).push([[911],{3911:(e,t,r)=>{r.r(t),r.d(t,{default:()=>d});var o=r(20629);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 n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var o,i,n=[],s=!0,a=!1;try{for(r=r.call(e);!(s=(o=r.next()).done)&&(n.push(o.value),!t||n.length!==t);s=!0);}catch(e){a=!0,i=e}finally{try{s||null==r.return||r.return()}finally{if(a)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return c(e,t)}(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 c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}const u={name:"AceEditor",props:{value:{default:""},options:{type:Object,default:function(){return{}}},theme:{type:String,default:"auto"},ext:{type:String,default:"txt"},height:{type:Number||null,default:null},width:{type:Number||null,default:null},wrap:{type:Boolean,default:!1},readOnly:{type:Boolean,default:!1}},render:function(e){return e("div",{class:"no-dark-mode"})},data:function(){return{code:"",editor:null,cursorPosition:{row:0,column:0},supportedModes:{Apache_Conf:["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],BatchFile:["bat|cmd"],C_Cpp:["cpp|c|cc|cxx|h|hh|hpp|ino"],CSharp:["cs"],CSS:["css"],Dockerfile:["^Dockerfile"],golang:["go"],HTML:["html|htm|xhtml|vue|we|wpy"],Java:["java"],JavaScript:["js|jsm|jsx"],JSON:["json"],JSP:["jsp"],LESS:["less"],Lua:["lua"],Makefile:["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],Markdown:["md|markdown"],MySQL:["mysql"],Nginx:["nginx|conf"],INI:["ini|conf|cfg|prefs"],ObjectiveC:["m|mm"],Perl:["pl|pm"],Perl6:["p6|pl6|pm6"],pgSQL:["pgsql"],PHP_Laravel_blade:["blade.php"],PHP:["php|inc|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],Powershell:["ps1"],Python:["py"],R:["r"],Ruby:["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],Rust:["rs"],SASS:["sass"],SCSS:["scss"],SH:["sh|bash|^.bashrc"],SQL:["sql"],SQLServer:["sqlserver"],Swift:["swift"],Text:["txt"],Typescript:["ts|typescript|str"],VBScript:["vbs|vb"],Verilog:["v|vh|sv|svh"],XML:["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"],YAML:["yaml|yml"],Compress:["tar|zip|7z|rar|gz|arj|z"],images:["icon|jpg|jpeg|png|bmp|gif|tif|emf"]}}},mounted:function(){var e=this;$A.loadScriptS(["js/ace/ace.js","js/ace/mode-json.js"],(function(){e.setSize(e.$el,{height:e.height,width:e.width}),e.editor=window.ace.edit(e.$el,{wrap:e.wrap,showPrintMargin:!1,readOnly:e.readOnly,keyboardHandler:"vscode"}),e.editor.session.setMode("ace/mode/".concat(e.getFileMode())),e.$emit("mounted",e.editor),e.editor.session.$worker&&e.editor.session.$worker.addEventListener("annotate",e.workerMessage,!1),e.editor.setValue(e.value),e.editor.clearSelection(),e.editor.setOptions(e.options),e.editTheme&&e.editor.setTheme("ace/theme/".concat(e.editTheme)),e.editor.commands.addCommand({name:"保存文件",bindKey:{win:"Ctrl-S",mac:"Command-S"},exec:function(){e.$emit("saveData")},readOnly:!1}),e.editor.getSession().on("change",(function(){e.code=e.editor.getValue(),e.$emit("input",e.code)}))}))},methods:{workerMessage:function(e){var t=e.data;this.cursorPosition=this.editor.selection.getCursor();var r=l(t,1)[0];r&&"error"===r.type?this.$emit("validationFailed",r):this.$emit("change",this.editor.getValue())},setSize:function(e,t){var r=this,o=t.width,i=void 0===o?this.width:o,n=t.height,s=void 0===n?this.height:n;e.style.width=i&&"number"==typeof i?"".concat(i,"px"):"100%",e.style.height=s&&"number"==typeof s?"".concat(s,"px"):"100%",this.$nextTick((function(){return r.editor&&r.editor.resize()}))},getFileMode:function(){var e=this.ext||"text";for(var t in this.supportedModes)for(var r=this.supportedModes[t][0].split("|"),o=t.toLowerCase(),i=0;i<r.length;i++)if(e==r[i])return o;return"text"}},computed:s(s({},(0,o.rn)(["themeIsDark"])),{},{editTheme:function(){return"auto"==this.theme?this.themeIsDark?"dracula-dark":"chrome":this.theme}}),watch:{options:function(e){e&&"object"===i(e)&&this.editor&&this.editor.setOptions(e)},editTheme:function(e){e&&"string"==typeof e&&this.editor&&this.editor.setTheme("ace/theme/".concat(e))},ext:function(e){e&&"string"==typeof e&&this.editor&&this.editor.session.setMode("ace/mode/".concat(this.getFileMode()))},width:function(e){this.setSize(this.el,{width:e})},height:function(e){this.setSize(this.el,{height:e})},readOnly:function(e){"boolean"==typeof e&&this.editor&&this.editor.setReadOnly(e)},value:function(e){if(this.editor&&e!=this.code){this.editor.setValue(e),this.editor.clearSelection();var t=this.cursorPosition,r=t.row,o=t.column;this.editor.selection.moveCursorTo(r,o)}}},beforeDestroy:function(){this.editor&&(this.editor.session.$worker&&this.editor.session.$worker.removeEventListener("message",this.workerMessage,!1),this.editor.destroy(),this.editor.container.remove())}};const d=(0,r(51900).Z)(u,undefined,undefined,!1,null,null,null).exports}}]);