UNPKG

snowy-designer

Version:

基于Epic-Designer-Pro版本的设计器,可视化开发页面表单

2 lines (1 loc) 2.08 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("vue");;/* empty css */require("radix-vue");require("clsx");require("tailwind-merge");require("lucide-vue-next");require("../../../../../ui-kit/base-ui/src/shadch-ui/button/index.cjs");require("@vueuse/core");require("../../../../../ui-kit/base-ui/src/shadch-ui/toast/index.cjs");require("vuedraggable");const s=require("../../../../../utils/src/common/data.cjs"),M=require("../../../../../utils/src/manager/pageManager.cjs");require("../../../../../utils/src/manager/pluginManager.cjs");require("monaco-editor");require("../../../../../utils/src/request/index.cjs");function S(){const i=c.ref(!1),u=M.usePageManager(),r=c.ref({});function o(){return new Promise(e=>{if(i.value)e();else{const a=c.watch(i,()=>{a(),e()})}})}async function l(e="default"){var t;await o();const a=Object.keys(r.value||{});if(a.length===1)return r.value[a[0]];const n=(t=r.value)==null?void 0:t[e];if(!n)throw new Error(`表单 [name=${e}] 不存在`);return n}async function f(e,a){const n=await l(e);return s.deepClone(await a(n))}async function v(e="default"){return await f(e,a=>a.getData())}function d(e,a="default"){var w,y,q;const n=s.findSchemas(u.pageSchema.schemas,F=>F.type==="form");n&&n.length===1&&(a=n[0].componentProps.name),u.setFormData(e,a);const t=(w=r.value)==null?void 0:w[a];((y=t==null?void 0:t.clearValidate)==null?void 0:y.call(t))??((q=t==null?void 0:t.restoreValidation)==null||q.call(t))}async function h(e="default"){return await f(e,async a=>(await a.validate(),await a.getData()))}async function g(e){await o();const a={};for(const n in r.value){const t=r.value[n];t&&(a[n]=s.deepClone(await e(t)))}return a}async function m(){return await g(e=>e.getData())}function p(e){for(const a in e)d(e[a],a)}async function D(){return await g(async e=>(await e.validate(),await e.getData()))}return{forms:r,getData:v,getFormInstance:l,getForms:m,pageManager:u,ready:i,setData:d,setForms:p,validate:h,validateAll:D}}exports.useBuilder=S;