snowy-designer
Version:
基于Epic-Designer-Pro版本的设计器,可视化开发页面表单
5 lines (4 loc) • 2.03 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("@vue/repl"),l=require("vue"),g=require("./es-module-shims.cjs"),v=require("./moduleCompiler.cjs"),{importMap:h,vueVersion:y}=f.useVueImportMap({runtimeDev:`${location.origin}/node_modules/.vite/deps/vue.js?v=8f14ebc7`,serverRenderer:`${location.origin}/src/vue-server-renderer-dev-proxy`});async function _(o){return new Promise(e=>{const t=f.useStore({builtinImportMap:h,outputMode:l.ref("js"),showOutput:l.ref(!0),vueVersion:y},o);t.init();const{importShim:c,setImportMap:s}=g.useEsModule(),p=l.ref(),r=t.getImportMap();s(r),b(r),p.value=void 0;const{mainFile:n}=t;setTimeout(async()=>{const i=v.compileModulesForPreview(t),u=I(i),m=new Blob([u],{type:"text/javascript"}),a=URL.createObjectURL(m),d=await c(a);Object.values(d.default).forEach(M=>w(M.__css__)),e(d.default[n])})})}function b(o){const e=document.createElement("script");e.type="importmap-shim",e.innerHTML=JSON.stringify(o),document.body.append(e)}function I(o){const t=`const __modules__ = {}; ${o.map(p=>`(() => { ${p} })();`).join(`
`)} export default __modules__;`,c=t.match(/import\s+(?:\S.*?)??from\s+['"].*?['"];?\s*/g)||[],s=t.replaceAll(/import\s+(?:\S.*?)??from\s+['"].*?['"];?\s*/g,"");return console.log(c,"-imports"),j(c.join(`
`))+s}function j(o){const e=/import\s+(?:\*\s+as\s+(\w+)|(\{[^}]*\}))\s+from\s+['"](.*?)['"];?/g,t=new Map,c=new Map;let s;for(;(s=e.exec(o))!==null;){const r=s[1],n=s[2],i=s[3];if(r)c.set(i,r);else if(n){const u=n.trim().replaceAll(/[{}]/g,"").split(",").map(m=>m.trim());t.has(i)||t.set(i,new Set),u.forEach(m=>{var a;return(a=t.get(i))==null?void 0:a.add(m)})}}return[...[...c.entries()].map(([r,n])=>`import * as ${n} from '${r}';`),...[...t.entries()].map(([r,n])=>`import { ${[...n].join(", ")} } from '${r}';`)].join(`
`)}function w(o){if(typeof o=="string"&&o.length>0){const e=document.createElement("style");e.type="text/css",e.append(document.createTextNode(o)),document.head.append(e)}}exports.parseComponent=_;