fx-epic-designer
Version:
基于vue3的设计器,可视化开发页面表单
2 lines (1 loc) • 2.21 kB
JavaScript
"use strict";const r=require("vue");require("@vueuse/core");require("../../../../../hooks/src/store/index.cjs");const p=require("../../../../../hooks/src/common/theme.cjs");;/* empty css */require("vuedraggable");require("../../../../../utils/src/manager/pluginManager.cjs");const h=require("monaco-editor");function b(n){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const a in n)if(a!=="default"){const t=Object.getOwnPropertyDescriptor(n,a);Object.defineProperty(i,a,t.get?t:{enumerable:!0,get:()=>n[a]})}}return i.default=n,Object.freeze(i)}const o=b(h),v=r.defineComponent({__name:"index",props:{autoToggleTheme:{type:Boolean},config:{default:()=>({minimap:{enabled:!1},selectOnLineNumbers:!0})},language:{default:"json"},lineNumbers:{default:"on"},modelValue:{default:""},readOnly:{type:Boolean,default:!1},theme:{default:"vs-light"},valueFormat:{default:"string"}},emits:["update:modelValue"],setup(n,{expose:i,emit:a}){const t=n,s=a,c=r.ref(null);let e=null;const{isDark:f}=p.useTheme();function m(){f.value?o.editor.setTheme("vs-dark"):o.editor.setTheme("vs-light")}function d(u){e==null||e.setValue(u||"")}function g(u){const l=e==null?void 0:e.getPosition();l&&(e==null||e.executeEdits("",[{range:new o.Range(l.lineNumber,l.column,l.lineNumber,l.column),text:u}]),e==null||e.setPosition({...l,column:l.column+u.length}),e==null||e.focus())}return r.onMounted(()=>{e=o.editor.create(c.value,{value:u(),...t.config,automaticLayout:!0,language:t.language,lineNumbers:t.lineNumbers,readOnly:t.readOnly,scrollbar:{horizontalScrollbarSize:10,verticalScrollbarSize:10},scrollBeyondLastLine:!1,theme:t.theme}),t.autoToggleTheme&&r.watch(()=>f.value,()=>{r.nextTick(()=>m())},{immediate:!0});function u(){return t.valueFormat==="json"&&t.modelValue?JSON.stringify(t.modelValue,null,2):t.modelValue??""}e.onDidChangeModelContent(()=>{const l=e==null?void 0:e.getValue();if(t.valueFormat==="json"&&l){s("update:modelValue",JSON.parse(l));return}s("update:modelValue",l??"")})}),i({insertText:g,setValue:d}),(u,l)=>(r.openBlock(),r.createElementBlock("div",{ref_key:"editContainer",ref:c,class:"epic-code-editor"},null,512))}});module.exports=v;