UNPKG

epic-designer

Version:

基于vue3的设计器,可视化开发页面表单

2 lines (1 loc) 2.15 kB
"use strict";const a=require("vue");require("@vueuse/core");require("../../../../../hooks/src/store/index.cjs");const p=require("../../../../../hooks/src/common/theme.cjs");;/* empty css */require("vuedraggable");const h=require("monaco-editor");function b(n){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const r in n)if(r!=="default"){const t=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(i,r,t.get?t:{enumerable:!0,get:()=>n[r]})}}return i.default=n,Object.freeze(i)}const o=b(h),v=a.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:r}){const t=n,s=r,c=a.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 a.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&&a.watch(()=>f.value,()=>{a.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)=>(a.openBlock(),a.createElementBlock("div",{ref_key:"editContainer",ref:c,class:"epic-code-editor"},null,512))}});module.exports=v;