epic-designer
Version:
基于vue3的设计器,可视化开发页面表单
7 lines (6 loc) • 3.09 kB
JavaScript
"use strict";const l=require("vue");;/* empty css */const v=require("../../../../base-ui/src/icon/icon.vue.cjs");;/* empty css */;/* empty css */require("../../../../../manager/src/pluginManager.cjs");require("../../../../../git/epic/epic-designer/node_modules/.pnpm/jsep@1.4.0/node_modules/jsep/dist/jsep.cjs");require("@vueuse/core");require("../../../../../hooks/src/store/index.cjs");const y=require("../../../../../hooks/src/common/theme.cjs");;/* empty css */require("vue-draggable-plus");const b=require("monaco-editor");function h(u){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(u){for(const o in u)if(o!=="default"){const t=Object.getOwnPropertyDescriptor(u,o);Object.defineProperty(a,o,t.get?t:{enumerable:!0,get:()=>u[o]})}}return a.default=u,Object.freeze(a)}const s=h(b),_=`position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 2999;`,V=l.defineComponent({__name:"index",props:{allowFullscreen:{type:Boolean,default:!0},autoToggleTheme:{type:Boolean},bordered:{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(u,{expose:a,emit:o}){const t=u,c=o,i=l.ref(!1),f=l.ref(null);let e=null;const{isDark:d}=y.useTheme();function m(){d.value?s.editor.setTheme("vs-dark"):s.editor.setTheme("vs-light")}function p(r){e==null||e.setValue(r||"")}function g(r){const n=e==null?void 0:e.getPosition();n&&(e==null||e.executeEdits("",[{range:new s.Range(n.lineNumber,n.column,n.lineNumber,n.column),text:r}]),e==null||e.setPosition({...n,column:n.column+r.length}),e==null||e.focus())}return l.onMounted(()=>{e=s.editor.create(f.value,{value:r(),...t.config,automaticLayout:!0,language:t.language,lineNumbers:t.lineNumbers,readOnly:t.readOnly,scrollBeyondLastLine:!1,theme:t.theme}),t.autoToggleTheme&&l.watch(()=>d.value,()=>{l.nextTick(()=>m())},{immediate:!0});function r(){return t.valueFormat==="json"&&t.modelValue?JSON.stringify(t.modelValue,null,2):t.modelValue??""}e.onDidChangeModelContent(()=>{const n=e==null?void 0:e.getValue();if(t.valueFormat==="json"&&n){c("update:modelValue",JSON.parse(n));return}c("update:modelValue",n??"")})}),a({insertText:g,setValue:p}),(r,n)=>(l.openBlock(),l.createElementBlock("div",{ref_key:"editContainer",ref:f,class:l.normalizeClass([{bordered:t.bordered},"epic-code-editor relative"]),style:l.normalizeStyle(i.value?_:"")},[t.allowFullscreen?(l.openBlock(),l.createElementBlock("div",{key:0,class:"z-999 text-$ep-text-helper absolute right-4 top-2 cursor-pointer text-xl",onClick:n[0]||(n[0]=q=>i.value=!i.value)},[l.createVNode(l.unref(v),{name:i.value?"icon--epic--close-fullscreen":"icon--epic--open-fullscreen"},null,8,["name"])])):l.createCommentVNode("",!0)],6))}});module.exports=V;