@harbor-design/proform 1.1.11 → 1.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var J=Object.defineProperty;var Q=(r,e,t)=>e in r?J(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var u=(r,e,t)=>(Q(r,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue");class a{static typeChecker(e){return{}.toString.call(e)}static isString(e){return typeof e=="string"}static isArray(e){return this.typeChecker(e)==="[object Array]"}static isFunction(e){return this.typeChecker(e)==="[object Function]"}static isPromise(e){return e instanceof Promise}static isObject(e){return this.typeChecker(e)==="[object Object]"}static isAsyncFunction(e){return this.typeChecker(e)==="[object AsyncFunction]"}static isUndefined(e){return e===void 0}static isArrayEmpty(e){return(e==null?void 0:e.length)<1}static isObjectEmpty(e){return this.isArrayEmpty(Object.keys(e))}static isListSchema(e){return e.type==="list"}static isGroupSchema(e){return e.type==="group"}static isItemSchema(e){return this.isUndefined(e.type)||e.type==="item"}static isProcessInprogress(e){if(e===void 0)return!0;if(this.isObject(e)){if(e.setup&&this.isFunction(e.setup)&&e.props)return!1;if(this.isObjectEmpty(e))return!0;for(const t in e)if(e.hasOwnProperty(t)&&this.isProcessInprogress(e[t]))return!0}else if(this.isArray(e)){if(this.isArrayEmpty(e))return!0;for(const t of e)if(this.isProcessInprogress(t))return!0}return!1}}function m(r,...e){return e.forEach(t=>{if(Array.isArray(t))Array.isArray(r)||(r=[]),t.forEach((s,i)=>{typeof s=="object"&&s!==null?r[i]=m(Array.isArray(s)?[]:{},s):r[i]=s});else for(let s in t)t.hasOwnProperty(s)&&(typeof t[s]=="object"&&t[s]!==null?r[s]=m(r[s]||{},t[s]):r[s]=t[s])}),r}function g(r){const e=new WeakMap;function t(s){if(s===null||typeof s!="object")return s;if(s instanceof Date)return new Date(s);if(s instanceof RegExp)return new RegExp(s);if(s instanceof Map){const n=new Map;for(let[l,c]of s)n.set(t(l),t(c));return n}if(s instanceof Set){const n=new Set;for(let l of s)n.add(t(l));return n}if(e.has(s))return e.get(s);if(Array.isArray(s)){const n=[];e.set(s,n);for(let l=0;l<s.length;l++)n[l]=t(s[l]);return n}const i=Object.create(Object.getPrototypeOf(s));e.set(s,i);for(let n in s)s.hasOwnProperty(n)&&(i[n]=t(s[n]));return i}return t(r)}function F(r,e){return r.replace(/undefined/g,e)}class X{constructor(e){u(this,"runtimeCore");this.formCustomization=e}cleanFallbackFields(e){return e!==null&&typeof e=="object"&&(delete e.__yiwwhl_async_field_fallback,Object.values(e).forEach(t=>{this.cleanFallbackFields(t)})),e}setup(e){return this.runtimeCore=e,Object.assign(this.runtimeCore.native,this.formCustomization.native),Object.assign(this.runtimeCore.grid,this.formCustomization.grid),Object.assign(this.runtimeCore.runtime,this.formCustomization.runtime),this.formCustomization.ui&&(this.runtimeCore.ui=this.formCustomization.ui),this.formCustomization}submit(){var s;const e=(s=d.presets.uiPresets[this.runtimeCore.ui])==null?void 0:s.adapter,t=I.adapters[this.runtimeCore.ui];return(e==null?void 0:e.validateForm(this))??(t==null?void 0:t.validateForm(this))}hydrate(e){if(!this.runtimeCore)return Promise.reject({code:"0002",message:"hydrate 使用时机错误,建议将 hydrate 操作放到 onMounted 等页面节点挂载完成的钩子中,或者使用响应式的值来注入数据"});this.runtimeCore.hydrateEffect.trackEffect(()=>{o.isRef(e)?o.watch(()=>e.value,()=>{m(this.runtimeCore.model.value,e.value)},{deep:!0,immediate:!0}):o.isReactive(e)?o.watch(()=>e,()=>{m(this.runtimeCore.model.value,e)},{deep:!0,immediate:!0}):m(this.runtimeCore.model.value,e)},{lazy:!0})}}class E{constructor(){u(this,"effects",new Set)}clearEffects(){this.effects.clear()}triggerEffects(){Array.from(this.effects).forEach(e=>e())}trackEffect(e,t={lazy:!1}){return!t.lazy&&e(),this.effects.add(e),()=>this.effects.delete(e)}}class Y{constructor(e){u(this,"runtimeCore");u(this,"processedSchemas");u(this,"processedModel");u(this,"getRuntimeMeta");u(this,"stableSchemas",[]);u(this,"stableModel",{});u(this,"schemaPreset",I.schemaPreset);u(this,"componentPropsPreset",I.componentPropsPreset);u(this,"stableUpdaterProcessProgress");u(this,"stableUpdaterTimes",0);u(this,"schemaEffect",new E);u(this,"defaultValueEffect",new E);u(this,"defaultValueInprogressMap",new Map);u(this,"baseDefaultValueFunctionsLength");this.runtimeCore=e,this.processedSchemas=e.schemas,this.processedModel=e.model,this.getRuntimeMeta=e.getRuntimeMeta.bind(e),o.watch(()=>this.processedModel.value,()=>{this.schemaEffect.triggerEffects()},{deep:!0})}parse(e,t){e.forEach((s,i)=>{this.parseItem(s,i,t)})}initSchemas(e){return e.map(t=>{const s={};return t.children&&(s.children=this.initSchemas(t.children)),s})}countFunctionDefaultValues(e){let t=0,s=new Set;function i(n){if(!s.has(n)&&(Array.isArray(n)||n!==null&&typeof n=="object")){s.add(n);for(let l in n)n.hasOwnProperty(l)&&(l==="defaultValue"&&typeof n[l]=="function"&&!n[l].toString().includes("[native code]")&&t++,i(n[l]))}}return i(e),t}parseSchemas(e,t){a.isArrayEmpty(this.processedSchemas.value)&&(this.baseDefaultValueFunctionsLength=this.countFunctionDefaultValues(g(e)),this.processedSchemas.value=this.initSchemas(e)),this.parse(e,t)}parseStable(e){const t={};if(!a.isUndefined(e.stable))t[e.key]=this.parseStable(e.stable);else return e;return t}stableUpdater(e=[]){if(e.every(Boolean)){const t=o.toRaw(this.processedSchemas.value);!a.isProcessInprogress(t)&&a.isObjectEmpty(this.stableModel)&&(this.stableUpdaterProcessProgress||(this.stableUpdaterProcessProgress=Array.from({length:t.length}).fill(!1)),this.stableUpdaterProcessProgress[this.stableUpdaterTimes]=!0,this.stableUpdaterTimes++,this.modelProcessor(t))}}parseItem(e,t,s){const i=this,n=Array.from({length:Object.keys(e).filter(c=>c!=="children").length}).fill(!1);this.objectParser({data:e,index:t,updater:l});function l(c){const f=c.index,h=c.key,y=c.keyIndex;if(a.isUndefined(c.stable))return;const j=i.parseStable(c.stable),v=s==null?void 0:s.index,b=s==null?void 0:s.key;let P=j;if(a.isProcessInprogress(P)||(n[y]=!0),s){let p=i.processedSchemas.value[v][b][f][h];p&&a.isObject(p)&&h!=="component"&&(P=m(p,P)),i.processedSchemas.value[v][b][f][h]=P,i.stableUpdater(n)}else{let p=i.processedSchemas.value[f][h];p&&a.isObject(p)&&h!=="component"&&(P=m(p,P)),i.processedSchemas.value[f][h]=P,i.stableUpdater(n)}}}objectParser(e){const t=e.data;Object.keys(t).forEach((i,n)=>{if(i==="children")this.parseSchemas(t[i],{...e,key:i,keyIndex:n});else{const l=c=>{e.updater({...e,key:i,keyIndex:n,stable:c})};a.isFunction(t[i])?i!=="defaultValue"?this.schemaEffect.trackEffect(()=>{if(i==="component"){const c=t[i](this.getRuntimeMeta());this.promiseFieldParser(c,l,!1)}else this.fieldParser(t[i],l)}):this.defaultValueEffect.trackEffect(()=>{const c=this.schemaEffect.trackEffect(()=>{/\{\s*model\s*\}/.test(t[i].toString())?this.fieldParser(t[i],f=>{if(!f)return l(f);this.defaultValueInprogressMap.set(t[i],f),!a.isProcessInprogress(f)&&this.defaultValueInprogressMap.size===this.baseDefaultValueFunctionsLength&&Array.from(this.defaultValueInprogressMap.values()).every(h=>!h.includes("undefined"))?(l(f),this.defaultValueEffect.clearEffects(),o.nextTick(()=>{c()})):l(f)}):this.fieldParser(t[i],f=>{this.defaultValueInprogressMap.set(t[i],f),!a.isProcessInprogress(f)&&this.defaultValueInprogressMap.size===this.baseDefaultValueFunctionsLength&&Array.from(this.defaultValueInprogressMap.values()).every(h=>!h.includes("undefined"))?(l(f),this.defaultValueEffect.clearEffects(),o.nextTick(()=>{c()})):l(f)})})}):i==="component"||i==="slots"||i==="runtime"?this.promiseFieldParser(t[i],l,!1):this.fieldParser(t[i],l)}})}promiseFieldParser(e,t,s){a.isPromise(e)?e.then(i=>{a.isString(i)&&(i=F(i,"")),s&&a.isObject(i)?this.objectParser({data:i,updater:t}):t(i)}):(a.isString(e)&&(e=F(e,"")),s&&a.isObject(e)?this.objectParser({data:e,updater:t}):t(e))}fieldParser(e,t,s=!0){if(a.isFunction(e))if(e.name.startsWith("__proform_raw_"))t((...i)=>{e({rawArgs:i,...this.getRuntimeMeta()})});else{const i=e(this.getRuntimeMeta());this.promiseFieldParser(i,t,s)}else o.isRef(e)?o.watch(()=>e.value,()=>{a.isUndefined(e.value)||(s&&a.isObject(e.value)?this.objectParser({data:e.value,updater:t}):t(e.value))},{immediate:!0,deep:!0}):o.isReactive(e)?o.watch(()=>e,()=>{a.isUndefined(e)||(s&&a.isObject(e)?this.objectParser({data:e,updater:t}):t(e))},{immediate:!0,deep:!0}):s&&a.isObject(e)?this.objectParser({data:e,updater:t}):t(e)}modelProcessor(e){e.map(t=>this.createModel(t,this.processedModel.value)),a.isObjectEmpty(this.stableModel)&&this.stableUpdaterProcessProgress.every(Boolean)&&this.defaultValueEffect.effects.size===0&&(this.stableModel=g(this.processedModel.value),this.runtimeCore.hydrateEffect.triggerEffects(),this.runtimeCore.hydrateEffect.clearEffects())}createModel(e,t){a.isListSchema(e)&&(t[e.field]||(t[e.field]=[{}]),e.children.forEach(s=>{this.createModel(s,t[e.field][0])})),a.isGroupSchema(e)&&e.children.forEach(s=>{this.createModel(s,t)}),a.isItemSchema(e)&&(t[e.field]=e.defaultValue)}}class w{static getFormContainer({ui:e}={}){return d.presets.uiPresets[e??d.presets.ui].container.Form}static getFormItemContainer({ui:e}={}){return d.presets.uiPresets[e??d.presets.ui].container.FormItem}static getItemContainer({ui:e}={}){return d.presets.uiPresets[e??d.presets.ui].container.Item}static getGroupContainer({ui:e}={}){return d.presets.uiPresets[e??d.presets.ui].container.Group}static getListContainer({ui:e}={}){return d.presets.uiPresets[e??d.presets.ui].container.List}static getListItemContainer({ui:e}={}){return d.presets.uiPresets[e??d.presets.ui].container.ListItem}}class Z{constructor(e){this.ui=e}getRuntimeField(e){var i;const t=(i=d.presets.uiPresets[this.ui])==null?void 0:i.adapter,s=I.adapters[this.ui];return(t==null?void 0:t.getRuntimeField(e))??(s==null?void 0:s.getRuntimeField(e))}getRuntimeRequired(e){var i;const t=(i=d.presets.uiPresets[this.ui])==null?void 0:i.adapter,s=I.adapters[this.ui];return(t==null?void 0:t.getRuntimeRequired(e))??(s==null?void 0:s.getRuntimeRequired(e))}getFormModelPropName(){var s;const e=(s=d.presets.uiPresets[this.ui])==null?void 0:s.adapter,t=I.adapters[this.ui];return(e==null?void 0:e.getFormModelPropName())??(t==null?void 0:t.getFormModelPropName())}}function A(r){return typeof r=="function"||Object.prototype.toString.call(r)==="[object Object]"&&!o.isVNode(r)}class ee{constructor(e){u(this,"schemas",o.ref([]));u(this,"model",o.ref({}));u(this,"processorBySchemaType",{item:this.runtimeItemProcessor.bind(this),group:this.runtimeGroupProcessor.bind(this),list:this.runtimeListProcessor.bind(this)});u(this,"formRef",o.ref(null));u(this,"hydrateEffect",new E);u(this,"native",o.reactive({}));u(this,"grid",{});u(this,"runtime",{});u(this,"globalNativeFormOverride",{props:{},slots:{}});this.setup=e,this.processor=new Y(this);const t=this.setup(this);if(this.ui=t.ui??d.presets.ui,this.runtimeAdapter=new Z(this.ui),o.isRef(t.schemas)){const s=o.watch(()=>t.schemas,()=>{this.processor.parseSchemas(t.schemas.value),o.nextTick(()=>{s()})},{deep:!0})}else if(o.isReactive(t.schemas)){const s=o.watch(()=>t.schemas,()=>{this.processor.parseSchemas(t.schemas),o.nextTick(()=>{s()})},{deep:!0})}else this.processor.parseSchemas(t.schemas)}getRuntimeMeta(){return{model:o.toRaw(g(this.model.value))}}runtimeItemProcessor(e,t,s=this.model.value,i){var N,O,M,q,L,U,k,x,z,_,$,T,D;const n=o.toRaw(e.component);if(!n)return;m(this.globalNativeFormOverride.props,(O=(N=e.native)==null?void 0:N.props)==null?void 0:O.Form),m(this.globalNativeFormOverride.slots,(q=(M=e.native)==null?void 0:M.slots)==null?void 0:q.Form);const l=m(g((U=(L=this.native)==null?void 0:L.slots)==null?void 0:U.FormItem)??{},(x=(k=e.native)==null?void 0:k.slots)==null?void 0:x.FormItem),c={display:"grid",gridColumn:"1 / -1",...e.grid},f=m(g((_=(z=this.native)==null?void 0:z.props)==null?void 0:_.FormItem)??{},(T=($=e.native)==null?void 0:$.props)==null?void 0:T.FormItem),h=this.runtimeAdapter.getRuntimeField({schema:e,parentSchema:i,index:t}),y=n.name,j=e.componentProps??{},v=I.placeholderPresetByComponentName;let b=e.placeholder,P=e.show;P===void 0&&(P=!0),P||delete s[e.field];let p=e.label;const V=(i==null?void 0:i.runtime)??this.runtime;if(!a.isUndefined(t)&&!a.isObjectEmpty(V)&&(p=F((D=V==null?void 0:V.customizeItemLabel)==null?void 0:D.call(V,e.label??"",t+1),"")),!b){let C="请输入";a.isUndefined(y)?b=`${C}${p}`:v[y.toLowerCase()]?(C=v[y.toLowerCase()],b=`${C}${p}`):(Object.keys(v).forEach(B=>{y.toLowerCase().includes(B.toLowerCase())&&(C=v[B])}),b=`${C}${p}`)}const K=this.runtimeAdapter.getRuntimeRequired({...e,label:p}),W=w.getItemContainer(this),H=w.getFormItemContainer(this);return o.createVNode("div",{style:c},[o.createVNode(W,null,{default(){return o.withDirectives(o.createVNode(H,o.mergeProps(f,{label:`${p}:`},h,K),{default(){return o.createVNode(n,o.mergeProps({modelValue:s[e.field],"onUpdate:modelValue":C=>s[e.field]=C,placeholder:b},j),null)},...l}),[[o.vShow,P]])}})])}runtimeGroupProcessor(e){let t;const s={display:"grid",gridColumn:"1 / -1",...e.grid},i=w.getGroupContainer(this);return o.createVNode("div",{style:s},[o.createVNode(i,{schema:e},A(t=e.children.map(n=>this.runtimeItemProcessor(n)))?t:{default:()=>[t]})])}addListItem(e){var t,s;if(!((t=this.processor.stableModel[e.field])!=null&&t[0]))return Promise.reject({code:"0001",message:"异步默认值数据正在处理中,请您耐心等待... "});(s=this.processor.stableModel[e.field])!=null&&s[0]&&this.model.value[e.field].push(g(this.processor.stableModel[e.field][0])),this.formRef.value.clearValidate()}deleteListItem(e,t){this.model.value[e.field].splice(t,1),this.formRef.value.clearValidate()}runtimeListProcessor(e){const t={display:"grid",gridColumn:"1 / -1",...e.grid},s=this;s.model.value[e.field]||(s.model.value[e.field]=[{}]);const i=w.getListContainer(this),n=w.getListItemContainer(this);return o.createVNode("div",{style:t},[o.createVNode(i,{schema:e},{default(){return s.model.value[e.field].map((l,c)=>o.createVNode(n,null,{default(){return e.children.map(f=>s.runtimeItemProcessor(f,c,l,e))},delete({container:f}={}){var y;let h=f??o.createVNode("button",null,null);return o.withDirectives(o.createVNode(h,{onClick:()=>s.deleteListItem(e,c)},null),[[o.vShow,((y=s.model.value[e.field])==null?void 0:y.length)>1]])}}))},add({container:l}={}){let c=l??o.createVNode("button",null,[o.createTextVNode("添加")]);return o.createVNode(c,{onClick:()=>s.addListItem(e)},null)}})])}runtimeProcessor(e){return e.map(t=>(t.type||(t.type="item"),this.processorBySchemaType[t.type](t)))}exec(){var c,f,h,y;const e={display:"grid",gridColumn:"1 / -1",gridAutoColumns:"1fr",...this.grid},t=this,s=m(g((f=(c=this.native)==null?void 0:c.props)==null?void 0:f.Form)??{},this.globalNativeFormOverride.props),i=m(g((y=(h=this.native)==null?void 0:h.slots)==null?void 0:y.Form)??{},this.globalNativeFormOverride.slots),n=w.getFormContainer(this),l=this.runtimeAdapter.getFormModelPropName();return o.createVNode(n,o.mergeProps(s,{ref:this.formRef},{[l]:this.model.value}),{default(){return o.createVNode("div",{style:e},[t.runtimeProcessor(t.schemas.value)])},...i})}}class d{}u(d,"presets");function G({parentSchema:r,schema:e,index:t}){return r?`${r.field}.${t}.${e.field}`:e.field}const te={ArcoVue:{getRuntimeField(r){return{field:G(r)}},getRuntimeRequired(r){var e,t;if(r.required)if(!r.rules)r.rules=[],(e=r.rules)==null||e.push({required:!0,message:`${r.label}是必填项`});else{const s=r.rules.findIndex(i=>!a.isUndefined(i.required));s!==-1&&(r.rules[s].required=!0,r.rules[s].message=`${r.label}是必填项`)}else if(r.rules){const s=(t=r.rules)==null?void 0:t.findIndex(i=>!!i.required);s!==-1&&(r.rules[s].required=!1)}return{rules:r.rules}},getFormModelPropName(){return"model"},validateForm(r){return new Promise((e,t)=>{r.runtimeCore.formRef.value.validate(s=>s?t(s):e(r.cleanFallbackFields(o.toRaw(r.runtimeCore.processor.processedModel.value))))})}},NutUI:{getRuntimeField(r){return{prop:G(r)}},getRuntimeRequired(r){var e,t;if(r.required)if(!r.rules)r.rules=[],(e=r.rules)==null||e.push({required:!0,message:`${r.label}是必填项`});else{const s=r.rules.findIndex(i=>!a.isUndefined(i.required));s!==-1&&(r.rules[s].required=!0,r.rules[s].message=`${r.label}是必填项`)}else if(r.rules){const s=(t=r.rules)==null?void 0:t.findIndex(i=>!!i.required);s!==-1&&(r.rules[s].required=!1)}return{rules:r.rules,required:r.required}},getFormModelPropName(){return"modelValue"},validateForm(r){return new Promise((e,t)=>{r.runtimeCore.formRef.value.validate().then(({valid:s,errors:i})=>{s?e(r.cleanFallbackFields(o.toRaw(r.runtimeCore.processor.processedModel.value))):t(i)})})}}},S=class S{static getPlaceholderPrefixPresetByComponentName(){const e={请选择:["select","tree"],请输入:["input"]},t={};for(let s in e)e[s].forEach(i=>{t[i]=s});return t}};u(S,"schemaPreset",{type:{defaultValue:"item"},component:{defaultValue:void 0},componentProps:{defaultValue:void 0},defaultValue:{defaultValue:void 0},label:{defaultValue:""},field:{defaultValue:"__yiwwhl_async_field_fallback"},rules:{defaultValue:[]},show:{defaultValue:!0},required:{defaultValue:!1},placeholder:{defaultValue:void 0},children:{defaultValue:[]},native:{defaultValue:void 0},grid:{default:void 0}}),u(S,"componentPropsPreset",{options:{defaultValue:[]}}),u(S,"placeholderPresetByComponentName",S.getPlaceholderPrefixPresetByComponentName());let R=S;const I={...R,adapters:{...te}},se=o.defineComponent({props:{setup:{type:Function,required:!0}},setup(r){const e=new ee(r.setup);return()=>e.exec()}});function re(r){const e=new X(r);return[e.setup.bind(e),{submit:e.submit.bind(e),hydrate:e.hydrate.bind(e)}]}function ie(r){d.presets=r}function oe(r,e){return e==="raw"&&Object.defineProperty(r,"name",{value:`__proform_raw_${r.name}`,writable:!0}),r}exports.ProForm=se;exports.useForm=re;exports.useFormPresetConfigurer=ie;exports.useModifiers=oe;
1
+ "use strict";var Q=Object.defineProperty;var X=(r,e,t)=>e in r?Q(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var u=(r,e,t)=>(X(r,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue");class a{static typeChecker(e){return{}.toString.call(e)}static isString(e){return typeof e=="string"}static isArray(e){return this.typeChecker(e)==="[object Array]"}static isFunction(e){return this.typeChecker(e)==="[object Function]"}static isPromise(e){return e instanceof Promise}static isObject(e){return this.typeChecker(e)==="[object Object]"}static isAsyncFunction(e){return this.typeChecker(e)==="[object AsyncFunction]"}static isUndefined(e){return e===void 0}static isArrayEmpty(e){return(e==null?void 0:e.length)<1}static isObjectEmpty(e){return this.isArrayEmpty(Object.keys(e))}static isListSchema(e){return e.type==="list"}static isGroupSchema(e){return e.type==="group"}static isItemSchema(e){return this.isUndefined(e.type)||e.type==="item"}static isProcessInprogress(e){if(e===void 0)return!0;if(this.isObject(e)){if(e.setup&&this.isFunction(e.setup)&&e.props)return!1;if(this.isObjectEmpty(e))return!0;for(const t in e)if(e.hasOwnProperty(t)&&this.isProcessInprogress(e[t]))return!0}else if(this.isArray(e)){if(this.isArrayEmpty(e))return!0;for(const t of e)if(this.isProcessInprogress(t))return!0}return!1}}function m(r,...e){return e.forEach(t=>{if(Array.isArray(t))Array.isArray(r)||(r=[]),t.forEach((s,i)=>{typeof s=="object"&&s!==null?r[i]=m(Array.isArray(s)?[]:{},s):r[i]=s});else for(let s in t)t.hasOwnProperty(s)&&(typeof t[s]=="object"&&t[s]!==null?r[s]=m(r[s]||{},t[s]):r[s]=t[s])}),r}function g(r){const e=new WeakMap;function t(s){if(s===null||typeof s!="object")return s;if(s instanceof Date)return new Date(s);if(s instanceof RegExp)return new RegExp(s);if(s instanceof Map){const n=new Map;for(let[l,c]of s)n.set(t(l),t(c));return n}if(s instanceof Set){const n=new Set;for(let l of s)n.add(t(l));return n}if(e.has(s))return e.get(s);if(Array.isArray(s)){const n=[];e.set(s,n);for(let l=0;l<s.length;l++)n[l]=t(s[l]);return n}const i=Object.create(Object.getPrototypeOf(s));e.set(s,i);for(let n in s)s.hasOwnProperty(n)&&(i[n]=t(s[n]));return i}return t(r)}function j(r,e){return r.replace(/undefined/g,e)}class Y{constructor(e){u(this,"runtimeCore");this.formCustomization=e}cleanFallbackFields(e){return e!==null&&typeof e=="object"&&(delete e.__yiwwhl_async_field_fallback,Object.values(e).forEach(t=>{this.cleanFallbackFields(t)})),e}setup(e){return this.runtimeCore=e,Object.assign(this.runtimeCore.native,this.formCustomization.native),Object.assign(this.runtimeCore.grid,this.formCustomization.grid),Object.assign(this.runtimeCore.runtime,this.formCustomization.runtime),this.formCustomization.ui&&(this.runtimeCore.ui=this.formCustomization.ui),this.formCustomization}submit(){var s;const e=(s=d.presets.uiPresets[this.runtimeCore.ui])==null?void 0:s.adapter,t=b.adapters[this.runtimeCore.ui];return(e==null?void 0:e.validateForm(this))??(t==null?void 0:t.validateForm(this))}hydrate(e){if(!this.runtimeCore)return Promise.reject({code:"0002",message:"hydrate 使用时机错误,建议将 hydrate 操作放到 onMounted 等页面节点挂载完成的钩子中,或者使用响应式的值来注入数据"});this.runtimeCore.hydrateEffect.trackEffect(()=>{o.isRef(e)?o.watch(()=>e.value,()=>{m(this.runtimeCore.model.value,e.value)},{deep:!0,immediate:!0}):o.isReactive(e)?o.watch(()=>e,()=>{m(this.runtimeCore.model.value,e)},{deep:!0,immediate:!0}):m(this.runtimeCore.model.value,e)},{lazy:!0})}}class E{constructor(){u(this,"effects",new Set)}clearEffects(){this.effects.clear()}triggerEffects(){Array.from(this.effects).forEach(e=>e())}trackEffect(e,t={lazy:!1}){return!t.lazy&&e(),this.effects.add(e),()=>this.effects.delete(e)}}class Z{constructor(e){u(this,"runtimeCore");u(this,"processedSchemas");u(this,"processedModel");u(this,"getRuntimeMeta");u(this,"stableSchemas",[]);u(this,"stableModel",{});u(this,"schemaPreset",b.schemaPreset);u(this,"componentPropsPreset",b.componentPropsPreset);u(this,"stableUpdaterProcessProgress");u(this,"stableUpdaterTimes",0);u(this,"schemaEffect",new E);u(this,"defaultValueEffect",new E);u(this,"defaultValueInprogressMap",new Map);u(this,"baseDefaultValueFunctionsLength");this.runtimeCore=e,this.processedSchemas=e.schemas,this.processedModel=e.model,this.getRuntimeMeta=e.getRuntimeMeta.bind(e),o.watch(()=>this.processedModel.value,()=>{this.schemaEffect.triggerEffects()},{deep:!0})}parse(e,t){e.forEach((s,i)=>{this.parseItem(s,i,t)})}initSchemas(e){return e.map(t=>{const s={};return t.children&&(s.children=this.initSchemas(t.children)),s})}countFunctionDefaultValues(e){let t=0,s=new Set;function i(n){if(!s.has(n)&&(Array.isArray(n)||n!==null&&typeof n=="object")){s.add(n);for(let l in n)n.hasOwnProperty(l)&&(l==="defaultValue"&&typeof n[l]=="function"&&!n[l].toString().includes("[native code]")&&t++,i(n[l]))}}return i(e),t}parseSchemas(e,t){a.isArrayEmpty(this.processedSchemas.value)&&(this.baseDefaultValueFunctionsLength=this.countFunctionDefaultValues(g(e)),this.processedSchemas.value=this.initSchemas(e)),this.parse(e,t)}parseStable(e){const t={};if(!a.isUndefined(e.stable))t[e.key]=this.parseStable(e.stable);else return e;return t}stableUpdater(e=[]){if(e.every(Boolean)){const t=o.toRaw(this.processedSchemas.value);!a.isProcessInprogress(t)&&a.isObjectEmpty(this.stableModel)&&(this.stableUpdaterProcessProgress||(this.stableUpdaterProcessProgress=Array.from({length:t.length}).fill(!1)),this.stableUpdaterProcessProgress[this.stableUpdaterTimes]=!0,this.stableUpdaterTimes++,this.modelProcessor(t))}}parseItem(e,t,s){const i=this,n=Array.from({length:Object.keys(e).filter(c=>c!=="children").length}).fill(!1);this.objectParser({data:e,index:t,updater:l});function l(c){const f=c.index,p=c.key,y=c.keyIndex;if(a.isUndefined(c.stable))return;const F=i.parseStable(c.stable),C=s==null?void 0:s.index,v=s==null?void 0:s.key;let P=F;if(a.isProcessInprogress(P)||(n[y]=!0),s){let h=i.processedSchemas.value[C][v][f][p];h&&a.isObject(h)&&p!=="component"&&(P=m(h,P)),i.processedSchemas.value[C][v][f][p]=P,i.stableUpdater(n)}else{let h=i.processedSchemas.value[f][p];h&&a.isObject(h)&&p!=="component"&&(P=m(h,P)),i.processedSchemas.value[f][p]=P,i.stableUpdater(n)}}}objectParser(e){const t=e.data;Object.keys(t).forEach((i,n)=>{if(i==="children")this.parseSchemas(t[i],{...e,key:i,keyIndex:n});else{const l=c=>{e.updater({...e,key:i,keyIndex:n,stable:c})};a.isFunction(t[i])?i!=="defaultValue"?this.schemaEffect.trackEffect(()=>{if(i==="component"){const c=t[i](this.getRuntimeMeta());this.promiseFieldParser(c,l,!1)}else this.fieldParser(t[i],l)}):this.defaultValueEffect.trackEffect(()=>{const c=this.schemaEffect.trackEffect(()=>{/\{\s*model\s*\}/.test(t[i].toString())?this.fieldParser(t[i],f=>{if(!f)return l(f);this.defaultValueInprogressMap.set(t[i],f),!a.isProcessInprogress(f)&&this.defaultValueInprogressMap.size===this.baseDefaultValueFunctionsLength&&Array.from(this.defaultValueInprogressMap.values()).every(p=>!p.includes("undefined"))?(l(f),this.defaultValueEffect.clearEffects(),o.nextTick(()=>{c()})):l(f)}):this.fieldParser(t[i],f=>{this.defaultValueInprogressMap.set(t[i],f),!a.isProcessInprogress(f)&&this.defaultValueInprogressMap.size===this.baseDefaultValueFunctionsLength&&Array.from(this.defaultValueInprogressMap.values()).every(p=>!p.includes("undefined"))?(l(f),this.defaultValueEffect.clearEffects(),o.nextTick(()=>{c()})):l(f)})})}):i==="component"||i==="slots"||i==="runtime"?this.promiseFieldParser(t[i],l,!1):this.fieldParser(t[i],l)}})}promiseFieldParser(e,t,s){a.isPromise(e)?e.then(i=>{a.isString(i)&&(i=j(i,"")),s&&a.isObject(i)?this.objectParser({data:i,updater:t}):t(i)}):(a.isString(e)&&(e=j(e,"")),s&&a.isObject(e)?this.objectParser({data:e,updater:t}):t(e))}fieldParser(e,t,s=!0){if(a.isFunction(e))if(e.name.startsWith("__proform_raw_"))t((...i)=>{e({rawArgs:i,...this.getRuntimeMeta()})});else{const i=e(this.getRuntimeMeta());this.promiseFieldParser(i,t,s)}else o.isRef(e)?o.watch(()=>e.value,()=>{a.isUndefined(e.value)||(s&&a.isObject(e.value)?this.objectParser({data:e.value,updater:t}):t(e.value))},{immediate:!0,deep:!0}):o.isReactive(e)?o.watch(()=>e,()=>{a.isUndefined(e)||(s&&a.isObject(e)?this.objectParser({data:e,updater:t}):t(e))},{immediate:!0,deep:!0}):s&&a.isObject(e)?this.objectParser({data:e,updater:t}):t(e)}modelProcessor(e){e.map(t=>this.createModel(t,this.processedModel.value)),a.isObjectEmpty(this.stableModel)&&this.stableUpdaterProcessProgress.every(Boolean)&&this.defaultValueEffect.effects.size===0&&(this.stableModel=g(this.processedModel.value),this.runtimeCore.hydrateEffect.triggerEffects(),this.runtimeCore.hydrateEffect.clearEffects())}createModel(e,t){a.isListSchema(e)&&(t[e.field]||(t[e.field]=[{}]),e.children.forEach(s=>{this.createModel(s,t[e.field][0])})),a.isGroupSchema(e)&&e.children.forEach(s=>{this.createModel(s,t)}),a.isItemSchema(e)&&(t[e.field]=e.defaultValue)}}class I{static getFormContainer({ui:e}={}){return d.presets.uiPresets[e??d.presets.ui].container.Form}static getFormItemContainer({ui:e}={}){return d.presets.uiPresets[e??d.presets.ui].container.FormItem}static getItemContainer({ui:e}={}){return d.presets.uiPresets[e??d.presets.ui].container.Item}static getGroupContainer({ui:e}={}){return d.presets.uiPresets[e??d.presets.ui].container.Group}static getListContainer({ui:e}={}){return d.presets.uiPresets[e??d.presets.ui].container.List}static getListItemContainer({ui:e}={}){return d.presets.uiPresets[e??d.presets.ui].container.ListItem}}class A{constructor(e){this.ui=e}getRuntimeField(e){var i;const t=(i=d.presets.uiPresets[this.ui])==null?void 0:i.adapter,s=b.adapters[this.ui];return(t==null?void 0:t.getRuntimeField(e))??(s==null?void 0:s.getRuntimeField(e))}getRuntimeRequired(e){var i;const t=(i=d.presets.uiPresets[this.ui])==null?void 0:i.adapter,s=b.adapters[this.ui];return(t==null?void 0:t.getRuntimeRequired(e))??(s==null?void 0:s.getRuntimeRequired(e))}getFormModelPropName(){var s;const e=(s=d.presets.uiPresets[this.ui])==null?void 0:s.adapter,t=b.adapters[this.ui];return(e==null?void 0:e.getFormModelPropName())??(t==null?void 0:t.getFormModelPropName())}formComponentRenderer(e){var i;const t=(i=d.presets.uiPresets[this.ui])==null?void 0:i.adapter,s=b.adapters[this.ui];return(t==null?void 0:t.formComponentRenderer(e))??(s==null?void 0:s.formComponentRenderer(e))}clearValidate(e){var i;const t=(i=d.presets.uiPresets[this.ui])==null?void 0:i.adapter,s=b.adapters[this.ui];return(t==null?void 0:t.clearValidate(e))??(s==null?void 0:s.clearValidate(e))}}function ee(r){return typeof r=="function"||Object.prototype.toString.call(r)==="[object Object]"&&!o.isVNode(r)}class te{constructor(e){u(this,"schemas",o.ref([]));u(this,"model",o.ref({}));u(this,"processorBySchemaType",{item:this.runtimeItemProcessor.bind(this),group:this.runtimeGroupProcessor.bind(this),list:this.runtimeListProcessor.bind(this)});u(this,"formRef",o.ref(null));u(this,"hydrateEffect",new E);u(this,"native",o.reactive({}));u(this,"grid",{});u(this,"runtime",{});u(this,"globalNativeFormOverride",{props:{},slots:{}});this.setup=e,this.processor=new Z(this);const t=this.setup(this);if(this.ui=t.ui??d.presets.ui,this.runtimeAdapter=new A(this.ui),o.isRef(t.schemas)){const s=o.watch(()=>t.schemas,()=>{this.processor.parseSchemas(t.schemas.value),o.nextTick(()=>{s()})},{deep:!0})}else if(o.isReactive(t.schemas)){const s=o.watch(()=>t.schemas,()=>{this.processor.parseSchemas(t.schemas),o.nextTick(()=>{s()})},{deep:!0})}else this.processor.parseSchemas(t.schemas)}getRuntimeMeta(){return{model:o.toRaw(g(this.model.value))}}runtimeItemProcessor(e,t,s=this.model.value,i){var O,q,M,U,L,x,k,z,$,_,T,D,B;const n=o.toRaw(e.component);if(!n)return;m(this.globalNativeFormOverride.props,(q=(O=e.native)==null?void 0:O.props)==null?void 0:q.Form),m(this.globalNativeFormOverride.slots,(U=(M=e.native)==null?void 0:M.slots)==null?void 0:U.Form);const l=m(g((x=(L=this.native)==null?void 0:L.slots)==null?void 0:x.FormItem)??{},(z=(k=e.native)==null?void 0:k.slots)==null?void 0:z.FormItem),c={display:"grid",gridColumn:"1 / -1",...e.grid},f=m(g((_=($=this.native)==null?void 0:$.props)==null?void 0:_.FormItem)??{},(D=(T=e.native)==null?void 0:T.props)==null?void 0:D.FormItem),p=this.runtimeAdapter.getRuntimeField({schema:e,parentSchema:i,index:t}),y=n.name,F=e.componentProps??{},C=b.placeholderPresetByComponentName;let v=e.placeholder,P=e.show;P===void 0&&(P=!0),P||delete s[e.field];let h=e.label;const V=(i==null?void 0:i.runtime)??this.runtime;if(!a.isUndefined(t)&&!a.isObjectEmpty(V)&&(h=j((B=V==null?void 0:V.customizeItemLabel)==null?void 0:B.call(V,e.label??"",t+1),"")),!v){let R="请输入";a.isUndefined(y)?v=`${R}${h}`:C[y.toLowerCase()]?(R=C[y.toLowerCase()],v=`${R}${h}`):(Object.keys(C).forEach(G=>{y.toLowerCase().includes(G.toLowerCase())&&(R=C[G])}),v=`${R}${h}`)}const K=this.runtimeAdapter.getRuntimeRequired({...e,label:h}),W=I.getItemContainer(this),H=I.getFormItemContainer(this),J=this;return o.createVNode("div",{style:c},[o.createVNode(W,null,{default(){return o.withDirectives(o.createVNode(H,o.mergeProps(f,{label:`${h}:`},p,K),{default(){return J.runtimeAdapter.formComponentRenderer({Component:n,schema:e,baseModel:s,placeholder:v,props:F})},...l}),[[o.vShow,P]])}})])}runtimeGroupProcessor(e){let t;const s={display:"grid",gridColumn:"1 / -1",...e.grid},i=I.getGroupContainer(this);return o.createVNode("div",{style:s},[o.createVNode(i,{schema:e},ee(t=e.children.map(n=>this.runtimeItemProcessor(n)))?t:{default:()=>[t]})])}addListItem(e){var t,s;if(!((t=this.processor.stableModel[e.field])!=null&&t[0]))return Promise.reject({code:"0001",message:"异步默认值数据正在处理中,请您耐心等待... "});(s=this.processor.stableModel[e.field])!=null&&s[0]&&this.model.value[e.field].push(g(this.processor.stableModel[e.field][0])),this.runtimeAdapter.clearValidate(this)}deleteListItem(e,t){this.model.value[e.field].splice(t,1),this.runtimeAdapter.clearValidate(this)}runtimeListProcessor(e){const t={display:"grid",gridColumn:"1 / -1",...e.grid},s=this;s.model.value[e.field]||(s.model.value[e.field]=[{}]);const i=I.getListContainer(this),n=I.getListItemContainer(this);return o.createVNode("div",{style:t},[o.createVNode(i,{schema:e},{default(){return s.model.value[e.field].map((l,c)=>o.createVNode(n,null,{default(){return e.children.map(f=>s.runtimeItemProcessor(f,c,l,e))},delete({container:f}={}){var y;let p=f??o.createVNode("button",null,null);return o.withDirectives(o.createVNode(p,{onClick:()=>s.deleteListItem(e,c)},null),[[o.vShow,((y=s.model.value[e.field])==null?void 0:y.length)>1]])}}))},add({container:l}={}){let c=l??o.createVNode("button",null,[o.createTextVNode("添加")]);return o.createVNode(c,{onClick:()=>s.addListItem(e)},null)}})])}runtimeProcessor(e){return e.map(t=>(t.type||(t.type="item"),this.processorBySchemaType[t.type](t)))}exec(){var c,f,p,y;const e={display:"grid",gridColumn:"1 / -1",gridAutoColumns:"1fr",...this.grid},t=this,s=m(g((f=(c=this.native)==null?void 0:c.props)==null?void 0:f.Form)??{},this.globalNativeFormOverride.props),i=m(g((y=(p=this.native)==null?void 0:p.slots)==null?void 0:y.Form)??{},this.globalNativeFormOverride.slots),n=I.getFormContainer(this),l=this.runtimeAdapter.getFormModelPropName();return o.createVNode(n,o.mergeProps(s,{ref:this.formRef},{[l]:this.model.value}),{default(){return o.createVNode("div",{style:e},[t.runtimeProcessor(t.schemas.value)])},...i})}}class d{}u(d,"presets");function S({parentSchema:r,schema:e,index:t}){return r?`${r.field}.${t}.${e.field}`:e.field}const se={ArcoVue:{getRuntimeField(r){return{field:S(r)}},getRuntimeRequired(r){var e,t;if(r.required)if(!r.rules)r.rules=[],(e=r.rules)==null||e.push({required:!0,message:`${r.label}是必填项`});else{const s=r.rules.findIndex(i=>!a.isUndefined(i.required));s!==-1&&(r.rules[s].required=!0,r.rules[s].message=`${r.label}是必填项`)}else if(r.rules){const s=(t=r.rules)==null?void 0:t.findIndex(i=>!!i.required);s!==-1&&(r.rules[s].required=!1)}return{rules:r.rules}},getFormModelPropName(){return"model"},formComponentRenderer({Component:r,baseModel:e,schema:t,placeholder:s,props:i}){return o.createVNode(r,o.mergeProps({modelValue:e[t.field],"onUpdate:modelValue":n=>e[t.field]=n,placeholder:s},i),null)},validateForm(r){return new Promise((e,t)=>{r.runtimeCore.formRef.value.validate(s=>s?t(s):e(r.cleanFallbackFields(o.toRaw(r.runtimeCore.processor.processedModel.value))))})},clearValidate(r){r.formRef.value.clearValidate()}},NutUI:{getRuntimeField(r){return{prop:S(r)}},getRuntimeRequired(r){var e,t;if(r.required)if(!r.rules)r.rules=[],(e=r.rules)==null||e.push({required:!0,message:`${r.label}是必填项`});else{const s=r.rules.findIndex(i=>!a.isUndefined(i.required));s!==-1&&(r.rules[s].required=!0,r.rules[s].message=`${r.label}是必填项`)}else if(r.rules){const s=(t=r.rules)==null?void 0:t.findIndex(i=>!!i.required);s!==-1&&(r.rules[s].required=!1)}return{rules:r.rules,required:r.required}},getFormModelPropName(){return"modelValue"},formComponentRenderer({Component:r,baseModel:e,schema:t,placeholder:s,props:i}){return o.createVNode(r,o.mergeProps({modelValue:e[t.field],"onUpdate:modelValue":n=>e[t.field]=n,placeholder:s},i),null)},validateForm(r){return new Promise((e,t)=>{r.runtimeCore.formRef.value.validate().then(({valid:s,errors:i})=>{s?e(r.cleanFallbackFields(o.toRaw(r.runtimeCore.processor.processedModel.value))):t(i)})})},clearValidate(r){r.formRef.value.reset()}},NaiveUI:{getRuntimeField(r){return{path:S(r)}},getRuntimeRequired(r){var e,t;if(r.required)if(!r.rules)r.rules=[],(e=r.rules)==null||e.push({required:!0,message:`${r.label}是必填项`,trigger:["input","blur"]});else{const s=r.rules.findIndex(i=>!a.isUndefined(i.required));s!==-1&&(r.rules[s].required=!0,r.rules[s].message=`${r.label}是必填项`)}else if(r.rules){const s=(t=r.rules)==null?void 0:t.findIndex(i=>!!i.required);s!==-1&&(r.rules[s].required=!1)}return{rule:r.rules}},getFormModelPropName(){return"model"},formComponentRenderer({Component:r,baseModel:e,schema:t,placeholder:s,props:i}){return o.createVNode(r,o.mergeProps({value:e[t.field],"onUpdate:value":n=>e[t.field]=n,placeholder:s},i),null)},validateForm(r){return new Promise((e,t)=>{r.runtimeCore.formRef.value.validate(s=>s?t(s):e(r.cleanFallbackFields(o.toRaw(r.runtimeCore.processor.processedModel.value))))})},clearValidate(r){r.formRef.value.restoreValidation()}}},w=class w{static getPlaceholderPrefixPresetByComponentName(){const e={请选择:["select","tree"],请输入:["input"]},t={};for(let s in e)e[s].forEach(i=>{t[i]=s});return t}};u(w,"schemaPreset",{type:{defaultValue:"item"},component:{defaultValue:void 0},componentProps:{defaultValue:void 0},defaultValue:{defaultValue:void 0},label:{defaultValue:""},field:{defaultValue:"__yiwwhl_async_field_fallback"},rules:{defaultValue:[]},show:{defaultValue:!0},required:{defaultValue:!1},placeholder:{defaultValue:void 0},children:{defaultValue:[]},native:{defaultValue:void 0},grid:{default:void 0}}),u(w,"componentPropsPreset",{options:{defaultValue:[]}}),u(w,"placeholderPresetByComponentName",w.getPlaceholderPrefixPresetByComponentName());let N=w;const b={...N,adapters:{...se}},re=o.defineComponent({props:{setup:{type:Function,required:!0}},setup(r){const e=new te(r.setup);return()=>e.exec()}});function ie(r){const e=new Y(r);return[e.setup.bind(e),{submit:e.submit.bind(e),hydrate:e.hydrate.bind(e)}]}function oe(r){d.presets=r}function ne(r,e){return e==="raw"&&Object.defineProperty(r,"name",{value:`__proform_raw_${r.name}`,writable:!0}),r}exports.ProForm=re;exports.useForm=ie;exports.useFormPresetConfigurer=oe;exports.useModifiers=ne;
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- var re = Object.defineProperty;
2
- var ie = (r, e, t) => e in r ? re(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
- var a = (r, e, t) => (ie(r, typeof e != "symbol" ? e + "" : e, t), t);
4
- import { isRef as U, watch as I, isReactive as x, toRaw as V, nextTick as w, ref as R, reactive as oe, createVNode as p, withDirectives as Y, mergeProps as M, vShow as Z, createTextVNode as ne, isVNode as le, defineComponent as ae } from "vue";
1
+ var ie = Object.defineProperty;
2
+ var oe = (r, e, t) => e in r ? ie(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
+ var a = (r, e, t) => (oe(r, typeof e != "symbol" ? e + "" : e, t), t);
4
+ import { isRef as x, watch as I, isReactive as k, toRaw as E, nextTick as w, ref as q, reactive as ne, createVNode as p, withDirectives as Z, mergeProps as R, vShow as A, createTextVNode as le, isVNode as ae, defineComponent as ue } from "vue";
5
5
  class l {
6
6
  static typeChecker(e) {
7
7
  return {}.toString.call(e);
@@ -112,10 +112,10 @@ function g(r) {
112
112
  }
113
113
  return t(r);
114
114
  }
115
- function q(r, e) {
115
+ function N(r, e) {
116
116
  return r.replace(/undefined/g, e);
117
117
  }
118
- class ue {
118
+ class ce {
119
119
  constructor(e) {
120
120
  a(this, "runtimeCore");
121
121
  this.formCustomization = e;
@@ -131,7 +131,7 @@ class ue {
131
131
  }
132
132
  submit() {
133
133
  var s;
134
- const e = (s = f.presets.uiPresets[this.runtimeCore.ui]) == null ? void 0 : s.adapter, t = j.adapters[this.runtimeCore.ui];
134
+ const e = (s = f.presets.uiPresets[this.runtimeCore.ui]) == null ? void 0 : s.adapter, t = b.adapters[this.runtimeCore.ui];
135
135
  return (e == null ? void 0 : e.validateForm(this)) ?? (t == null ? void 0 : t.validateForm(this));
136
136
  }
137
137
  hydrate(e) {
@@ -142,7 +142,7 @@ class ue {
142
142
  });
143
143
  this.runtimeCore.hydrateEffect.trackEffect(
144
144
  () => {
145
- U(e) ? I(
145
+ x(e) ? I(
146
146
  () => e.value,
147
147
  () => {
148
148
  m(this.runtimeCore.model.value, e.value);
@@ -151,7 +151,7 @@ class ue {
151
151
  deep: !0,
152
152
  immediate: !0
153
153
  }
154
- ) : x(e) ? I(
154
+ ) : k(e) ? I(
155
155
  () => e,
156
156
  () => {
157
157
  m(this.runtimeCore.model.value, e);
@@ -168,7 +168,7 @@ class ue {
168
168
  );
169
169
  }
170
170
  }
171
- class N {
171
+ class U {
172
172
  constructor() {
173
173
  a(this, "effects", /* @__PURE__ */ new Set());
174
174
  }
@@ -184,7 +184,7 @@ class N {
184
184
  return !t.lazy && e(), this.effects.add(e), () => this.effects.delete(e);
185
185
  }
186
186
  }
187
- class ce {
187
+ class fe {
188
188
  constructor(e) {
189
189
  a(this, "runtimeCore");
190
190
  a(this, "processedSchemas");
@@ -192,12 +192,12 @@ class ce {
192
192
  a(this, "getRuntimeMeta");
193
193
  a(this, "stableSchemas", []);
194
194
  a(this, "stableModel", {});
195
- a(this, "schemaPreset", j.schemaPreset);
196
- a(this, "componentPropsPreset", j.componentPropsPreset);
195
+ a(this, "schemaPreset", b.schemaPreset);
196
+ a(this, "componentPropsPreset", b.componentPropsPreset);
197
197
  a(this, "stableUpdaterProcessProgress");
198
198
  a(this, "stableUpdaterTimes", 0);
199
- a(this, "schemaEffect", new N());
200
- a(this, "defaultValueEffect", new N());
199
+ a(this, "schemaEffect", new U());
200
+ a(this, "defaultValueEffect", new U());
201
201
  a(this, "defaultValueInprogressMap", /* @__PURE__ */ new Map());
202
202
  a(this, "baseDefaultValueFunctionsLength");
203
203
  this.runtimeCore = e, this.processedSchemas = e.schemas, this.processedModel = e.model, this.getRuntimeMeta = e.getRuntimeMeta.bind(e), I(
@@ -251,7 +251,7 @@ class ce {
251
251
  // 对于稳定初始化更新的抽象
252
252
  stableUpdater(e = []) {
253
253
  if (e.every(Boolean)) {
254
- const t = V(this.processedSchemas.value);
254
+ const t = E(this.processedSchemas.value);
255
255
  !l.isProcessInprogress(t) && l.isObjectEmpty(this.stableModel) && (this.stableUpdaterProcessProgress || (this.stableUpdaterProcessProgress = Array.from({
256
256
  length: t.length
257
257
  }).fill(!1)), this.stableUpdaterProcessProgress[this.stableUpdaterTimes] = !0, this.stableUpdaterTimes++, this.modelProcessor(t));
@@ -267,14 +267,14 @@ class ce {
267
267
  const c = u.index, d = u.key, y = u.keyIndex;
268
268
  if (l.isUndefined(u.stable))
269
269
  return;
270
- const O = i.parseStable(u.stable), v = s == null ? void 0 : s.index, P = s == null ? void 0 : s.key;
271
- let b = O;
272
- if (l.isProcessInprogress(b) || (o[y] = !0), s) {
273
- let h = i.processedSchemas.value[v][P][c][d];
274
- h && l.isObject(h) && d !== "component" && (b = m(h, b)), i.processedSchemas.value[v][P][c][d] = b, i.stableUpdater(o);
270
+ const O = i.parseStable(u.stable), C = s == null ? void 0 : s.index, v = s == null ? void 0 : s.key;
271
+ let P = O;
272
+ if (l.isProcessInprogress(P) || (o[y] = !0), s) {
273
+ let h = i.processedSchemas.value[C][v][c][d];
274
+ h && l.isObject(h) && d !== "component" && (P = m(h, P)), i.processedSchemas.value[C][v][c][d] = P, i.stableUpdater(o);
275
275
  } else {
276
276
  let h = i.processedSchemas.value[c][d];
277
- h && l.isObject(h) && d !== "component" && (b = m(h, b)), i.processedSchemas.value[c][d] = b, i.stableUpdater(o);
277
+ h && l.isObject(h) && d !== "component" && (P = m(h, P)), i.processedSchemas.value[c][d] = P, i.stableUpdater(o);
278
278
  }
279
279
  }
280
280
  }
@@ -327,11 +327,11 @@ class ce {
327
327
  }
328
328
  promiseFieldParser(e, t, s) {
329
329
  l.isPromise(e) ? e.then((i) => {
330
- l.isString(i) && (i = q(i, "")), s && l.isObject(i) ? this.objectParser({
330
+ l.isString(i) && (i = N(i, "")), s && l.isObject(i) ? this.objectParser({
331
331
  data: i,
332
332
  updater: t
333
333
  }) : t(i);
334
- }) : (l.isString(e) && (e = q(e, "")), s && l.isObject(e) ? this.objectParser({
334
+ }) : (l.isString(e) && (e = N(e, "")), s && l.isObject(e) ? this.objectParser({
335
335
  data: e,
336
336
  updater: t
337
337
  }) : t(e));
@@ -351,7 +351,7 @@ class ce {
351
351
  this.promiseFieldParser(i, t, s);
352
352
  }
353
353
  else
354
- U(e) ? I(
354
+ x(e) ? I(
355
355
  () => e.value,
356
356
  () => {
357
357
  l.isUndefined(e.value) || (s && l.isObject(e.value) ? this.objectParser({
@@ -363,7 +363,7 @@ class ce {
363
363
  immediate: !0,
364
364
  deep: !0
365
365
  }
366
- ) : x(e) ? I(
366
+ ) : k(e) ? I(
367
367
  () => e,
368
368
  () => {
369
369
  l.isUndefined(e) || (s && l.isObject(e) ? this.objectParser({
@@ -413,50 +413,60 @@ class F {
413
413
  return f.presets.uiPresets[e ?? f.presets.ui].container.ListItem;
414
414
  }
415
415
  }
416
- class fe {
416
+ class de {
417
417
  constructor(e) {
418
418
  this.ui = e;
419
419
  }
420
420
  getRuntimeField(e) {
421
421
  var i;
422
- const t = (i = f.presets.uiPresets[this.ui]) == null ? void 0 : i.adapter, s = j.adapters[this.ui];
422
+ const t = (i = f.presets.uiPresets[this.ui]) == null ? void 0 : i.adapter, s = b.adapters[this.ui];
423
423
  return (t == null ? void 0 : t.getRuntimeField(e)) ?? (s == null ? void 0 : s.getRuntimeField(e));
424
424
  }
425
425
  getRuntimeRequired(e) {
426
426
  var i;
427
- const t = (i = f.presets.uiPresets[this.ui]) == null ? void 0 : i.adapter, s = j.adapters[this.ui];
427
+ const t = (i = f.presets.uiPresets[this.ui]) == null ? void 0 : i.adapter, s = b.adapters[this.ui];
428
428
  return (t == null ? void 0 : t.getRuntimeRequired(e)) ?? (s == null ? void 0 : s.getRuntimeRequired(e));
429
429
  }
430
430
  getFormModelPropName() {
431
431
  var s;
432
- const e = (s = f.presets.uiPresets[this.ui]) == null ? void 0 : s.adapter, t = j.adapters[this.ui];
432
+ const e = (s = f.presets.uiPresets[this.ui]) == null ? void 0 : s.adapter, t = b.adapters[this.ui];
433
433
  return (e == null ? void 0 : e.getFormModelPropName()) ?? (t == null ? void 0 : t.getFormModelPropName());
434
434
  }
435
+ formComponentRenderer(e) {
436
+ var i;
437
+ const t = (i = f.presets.uiPresets[this.ui]) == null ? void 0 : i.adapter, s = b.adapters[this.ui];
438
+ return (t == null ? void 0 : t.formComponentRenderer(e)) ?? (s == null ? void 0 : s.formComponentRenderer(e));
439
+ }
440
+ clearValidate(e) {
441
+ var i;
442
+ const t = (i = f.presets.uiPresets[this.ui]) == null ? void 0 : i.adapter, s = b.adapters[this.ui];
443
+ return (t == null ? void 0 : t.clearValidate(e)) ?? (s == null ? void 0 : s.clearValidate(e));
444
+ }
435
445
  }
436
- function de(r) {
437
- return typeof r == "function" || Object.prototype.toString.call(r) === "[object Object]" && !le(r);
446
+ function pe(r) {
447
+ return typeof r == "function" || Object.prototype.toString.call(r) === "[object Object]" && !ae(r);
438
448
  }
439
- class pe {
449
+ class he {
440
450
  constructor(e) {
441
- a(this, "schemas", R([]));
442
- a(this, "model", R({}));
451
+ a(this, "schemas", q([]));
452
+ a(this, "model", q({}));
443
453
  a(this, "processorBySchemaType", {
444
454
  item: this.runtimeItemProcessor.bind(this),
445
455
  group: this.runtimeGroupProcessor.bind(this),
446
456
  list: this.runtimeListProcessor.bind(this)
447
457
  });
448
- a(this, "formRef", R(null));
449
- a(this, "hydrateEffect", new N());
450
- a(this, "native", oe({}));
458
+ a(this, "formRef", q(null));
459
+ a(this, "hydrateEffect", new U());
460
+ a(this, "native", ne({}));
451
461
  a(this, "grid", {});
452
462
  a(this, "runtime", {});
453
463
  a(this, "globalNativeFormOverride", {
454
464
  props: {},
455
465
  slots: {}
456
466
  });
457
- this.setup = e, this.processor = new ce(this);
467
+ this.setup = e, this.processor = new fe(this);
458
468
  const t = this.setup(this);
459
- if (this.ui = t.ui ?? f.presets.ui, this.runtimeAdapter = new fe(this.ui), U(t.schemas)) {
469
+ if (this.ui = t.ui ?? f.presets.ui, this.runtimeAdapter = new de(this.ui), x(t.schemas)) {
460
470
  const s = I(() => t.schemas, () => {
461
471
  this.processor.parseSchemas(t.schemas.value), w(() => {
462
472
  s();
@@ -464,7 +474,7 @@ class pe {
464
474
  }, {
465
475
  deep: !0
466
476
  });
467
- } else if (x(t.schemas)) {
477
+ } else if (k(t.schemas)) {
468
478
  const s = I(() => t.schemas, () => {
469
479
  this.processor.parseSchemas(t.schemas), w(() => {
470
480
  s();
@@ -477,55 +487,57 @@ class pe {
477
487
  }
478
488
  getRuntimeMeta() {
479
489
  return {
480
- model: V(g(this.model.value))
490
+ model: E(g(this.model.value))
481
491
  };
482
492
  }
483
493
  runtimeItemProcessor(e, t, s = this.model.value, i) {
484
- var k, z, _, $, B, D, G, T, K, W, H, J, Q;
485
- const o = V(e.component);
494
+ var z, $, _, B, D, G, T, K, W, H, J, Q, X;
495
+ const o = E(e.component);
486
496
  if (!o)
487
497
  return;
488
- m(this.globalNativeFormOverride.props, (z = (k = e.native) == null ? void 0 : k.props) == null ? void 0 : z.Form), m(this.globalNativeFormOverride.slots, ($ = (_ = e.native) == null ? void 0 : _.slots) == null ? void 0 : $.Form);
489
- const n = m(g((D = (B = this.native) == null ? void 0 : B.slots) == null ? void 0 : D.FormItem) ?? {}, (T = (G = e.native) == null ? void 0 : G.slots) == null ? void 0 : T.FormItem), u = {
498
+ m(this.globalNativeFormOverride.props, ($ = (z = e.native) == null ? void 0 : z.props) == null ? void 0 : $.Form), m(this.globalNativeFormOverride.slots, (B = (_ = e.native) == null ? void 0 : _.slots) == null ? void 0 : B.Form);
499
+ const n = m(g((G = (D = this.native) == null ? void 0 : D.slots) == null ? void 0 : G.FormItem) ?? {}, (K = (T = e.native) == null ? void 0 : T.slots) == null ? void 0 : K.FormItem), u = {
490
500
  display: "grid",
491
501
  gridColumn: "1 / -1",
492
502
  ...e.grid
493
- }, c = m(g((W = (K = this.native) == null ? void 0 : K.props) == null ? void 0 : W.FormItem) ?? {}, (J = (H = e.native) == null ? void 0 : H.props) == null ? void 0 : J.FormItem), d = this.runtimeAdapter.getRuntimeField({
503
+ }, c = m(g((H = (W = this.native) == null ? void 0 : W.props) == null ? void 0 : H.FormItem) ?? {}, (Q = (J = e.native) == null ? void 0 : J.props) == null ? void 0 : Q.FormItem), d = this.runtimeAdapter.getRuntimeField({
494
504
  schema: e,
495
505
  parentSchema: i,
496
506
  index: t
497
- }), y = o.name, O = e.componentProps ?? {}, v = j.placeholderPresetByComponentName;
498
- let P = e.placeholder, b = e.show;
499
- b === void 0 && (b = !0), b || delete s[e.field];
507
+ }), y = o.name, O = e.componentProps ?? {}, C = b.placeholderPresetByComponentName;
508
+ let v = e.placeholder, P = e.show;
509
+ P === void 0 && (P = !0), P || delete s[e.field];
500
510
  let h = e.label;
501
- const E = (i == null ? void 0 : i.runtime) ?? this.runtime;
502
- if (!l.isUndefined(t) && !l.isObjectEmpty(E) && (h = q((Q = E == null ? void 0 : E.customizeItemLabel) == null ? void 0 : Q.call(E, e.label ?? "", t + 1), "")), !P) {
503
- let C = "请输入";
504
- l.isUndefined(y) ? P = `${C}${h}` : /* @ts-expect-error */ v[y.toLowerCase()] ? (C = // @ts-expect-error
505
- v[y.toLowerCase()], P = `${C}${h}`) : (Object.keys(v).forEach((X) => {
506
- y.toLowerCase().includes(X.toLowerCase()) && (C = v[X]);
507
- }), P = `${C}${h}`);
511
+ const V = (i == null ? void 0 : i.runtime) ?? this.runtime;
512
+ if (!l.isUndefined(t) && !l.isObjectEmpty(V) && (h = N((X = V == null ? void 0 : V.customizeItemLabel) == null ? void 0 : X.call(V, e.label ?? "", t + 1), "")), !v) {
513
+ let S = "请输入";
514
+ l.isUndefined(y) ? v = `${S}${h}` : /* @ts-expect-error */ C[y.toLowerCase()] ? (S = // @ts-expect-error
515
+ C[y.toLowerCase()], v = `${S}${h}`) : (Object.keys(C).forEach((Y) => {
516
+ y.toLowerCase().includes(Y.toLowerCase()) && (S = C[Y]);
517
+ }), v = `${S}${h}`);
508
518
  }
509
519
  const ee = this.runtimeAdapter.getRuntimeRequired({
510
520
  ...e,
511
521
  label: h
512
- }), te = F.getItemContainer(this), se = F.getFormItemContainer(this);
522
+ }), te = F.getItemContainer(this), se = F.getFormItemContainer(this), re = this;
513
523
  return p("div", {
514
524
  style: u
515
525
  }, [p(te, null, {
516
526
  default() {
517
- return Y(p(se, M(c, {
527
+ return Z(p(se, R(c, {
518
528
  label: `${h}:`
519
529
  }, d, ee), {
520
530
  default() {
521
- return p(o, M({
522
- modelValue: s[e.field],
523
- "onUpdate:modelValue": (C) => s[e.field] = C,
524
- placeholder: P
525
- }, O), null);
531
+ return re.runtimeAdapter.formComponentRenderer({
532
+ Component: o,
533
+ schema: e,
534
+ baseModel: s,
535
+ placeholder: v,
536
+ props: O
537
+ });
526
538
  },
527
539
  ...n
528
- }), [[Z, b]]);
540
+ }), [[A, P]]);
529
541
  }
530
542
  })]);
531
543
  }
@@ -540,7 +552,7 @@ class pe {
540
552
  style: s
541
553
  }, [p(i, {
542
554
  schema: e
543
- }, de(t = e.children.map((o) => this.runtimeItemProcessor(o))) ? t : {
555
+ }, pe(t = e.children.map((o) => this.runtimeItemProcessor(o))) ? t : {
544
556
  default: () => [t]
545
557
  })]);
546
558
  }
@@ -551,10 +563,10 @@ class pe {
551
563
  code: "0001",
552
564
  message: "异步默认值数据正在处理中,请您耐心等待... "
553
565
  });
554
- (s = this.processor.stableModel[e.field]) != null && s[0] && this.model.value[e.field].push(g(this.processor.stableModel[e.field][0])), this.formRef.value.clearValidate();
566
+ (s = this.processor.stableModel[e.field]) != null && s[0] && this.model.value[e.field].push(g(this.processor.stableModel[e.field][0])), this.runtimeAdapter.clearValidate(this);
555
567
  }
556
568
  deleteListItem(e, t) {
557
- this.model.value[e.field].splice(t, 1), this.formRef.value.clearValidate();
569
+ this.model.value[e.field].splice(t, 1), this.runtimeAdapter.clearValidate(this);
558
570
  }
559
571
  runtimeListProcessor(e) {
560
572
  const t = {
@@ -579,16 +591,16 @@ class pe {
579
591
  } = {}) {
580
592
  var y;
581
593
  let d = c ?? p("button", null, null);
582
- return Y(p(d, {
594
+ return Z(p(d, {
583
595
  onClick: () => s.deleteListItem(e, u)
584
- }, null), [[Z, ((y = s.model.value[e.field]) == null ? void 0 : y.length) > 1]]);
596
+ }, null), [[A, ((y = s.model.value[e.field]) == null ? void 0 : y.length) > 1]]);
585
597
  }
586
598
  }));
587
599
  },
588
600
  add({
589
601
  container: n
590
602
  } = {}) {
591
- let u = n ?? p("button", null, [ne("添加")]);
603
+ let u = n ?? p("button", null, [le("添加")]);
592
604
  return p(u, {
593
605
  onClick: () => s.addListItem(e)
594
606
  }, null);
@@ -606,7 +618,7 @@ class pe {
606
618
  gridAutoColumns: "1fr",
607
619
  ...this.grid
608
620
  }, t = this, s = m(g((c = (u = this.native) == null ? void 0 : u.props) == null ? void 0 : c.Form) ?? {}, this.globalNativeFormOverride.props), i = m(g((y = (d = this.native) == null ? void 0 : d.slots) == null ? void 0 : y.Form) ?? {}, this.globalNativeFormOverride.slots), o = F.getFormContainer(this), n = this.runtimeAdapter.getFormModelPropName();
609
- return p(o, M(s, {
621
+ return p(o, R(s, {
610
622
  ref: this.formRef
611
623
  }, {
612
624
  [n]: this.model.value
@@ -623,14 +635,18 @@ class pe {
623
635
  class f {
624
636
  }
625
637
  a(f, "presets");
626
- function A({ parentSchema: r, schema: e, index: t }) {
638
+ function M({
639
+ parentSchema: r,
640
+ schema: e,
641
+ index: t
642
+ }) {
627
643
  return r ? `${r.field}.${t}.${e.field}` : e.field;
628
644
  }
629
- const he = {
645
+ const me = {
630
646
  ArcoVue: {
631
647
  getRuntimeField(r) {
632
648
  return {
633
- field: A(r)
649
+ field: M(r)
634
650
  };
635
651
  },
636
652
  getRuntimeRequired(r) {
@@ -642,15 +658,11 @@ const he = {
642
658
  message: `${r.label}是必填项`
643
659
  });
644
660
  else {
645
- const s = r.rules.findIndex(
646
- (i) => !l.isUndefined(i.required)
647
- );
661
+ const s = r.rules.findIndex((i) => !l.isUndefined(i.required));
648
662
  s !== -1 && (r.rules[s].required = !0, r.rules[s].message = `${r.label}是必填项`);
649
663
  }
650
664
  else if (r.rules) {
651
- const s = (t = r.rules) == null ? void 0 : t.findIndex(
652
- (i) => !!i.required
653
- );
665
+ const s = (t = r.rules) == null ? void 0 : t.findIndex((i) => !!i.required);
654
666
  s !== -1 && (r.rules[s].required = !1);
655
667
  }
656
668
  return {
@@ -660,20 +672,32 @@ const he = {
660
672
  getFormModelPropName() {
661
673
  return "model";
662
674
  },
675
+ formComponentRenderer({
676
+ Component: r,
677
+ baseModel: e,
678
+ schema: t,
679
+ placeholder: s,
680
+ props: i
681
+ }) {
682
+ return p(r, R({
683
+ modelValue: e[t.field],
684
+ "onUpdate:modelValue": (o) => e[t.field] = o,
685
+ placeholder: s
686
+ }, i), null);
687
+ },
663
688
  validateForm(r) {
664
689
  return new Promise((e, t) => {
665
- r.runtimeCore.formRef.value.validate((s) => s ? t(s) : e(
666
- r.cleanFallbackFields(
667
- V(r.runtimeCore.processor.processedModel.value)
668
- )
669
- ));
690
+ r.runtimeCore.formRef.value.validate((s) => s ? t(s) : e(r.cleanFallbackFields(E(r.runtimeCore.processor.processedModel.value))));
670
691
  });
692
+ },
693
+ clearValidate(r) {
694
+ r.formRef.value.clearValidate();
671
695
  }
672
696
  },
673
697
  NutUI: {
674
698
  getRuntimeField(r) {
675
699
  return {
676
- prop: A(r)
700
+ prop: M(r)
677
701
  };
678
702
  },
679
703
  getRuntimeRequired(r) {
@@ -685,15 +709,11 @@ const he = {
685
709
  message: `${r.label}是必填项`
686
710
  });
687
711
  else {
688
- const s = r.rules.findIndex(
689
- (i) => !l.isUndefined(i.required)
690
- );
712
+ const s = r.rules.findIndex((i) => !l.isUndefined(i.required));
691
713
  s !== -1 && (r.rules[s].required = !0, r.rules[s].message = `${r.label}是必填项`);
692
714
  }
693
715
  else if (r.rules) {
694
- const s = (t = r.rules) == null ? void 0 : t.findIndex(
695
- (i) => !!i.required
696
- );
716
+ const s = (t = r.rules) == null ? void 0 : t.findIndex((i) => !!i.required);
697
717
  s !== -1 && (r.rules[s].required = !1);
698
718
  }
699
719
  return {
@@ -704,19 +724,86 @@ const he = {
704
724
  getFormModelPropName() {
705
725
  return "modelValue";
706
726
  },
727
+ formComponentRenderer({
728
+ Component: r,
729
+ baseModel: e,
730
+ schema: t,
731
+ placeholder: s,
732
+ props: i
733
+ }) {
734
+ return p(r, R({
735
+ modelValue: e[t.field],
736
+ "onUpdate:modelValue": (o) => e[t.field] = o,
737
+ placeholder: s
738
+ }, i), null);
739
+ },
707
740
  validateForm(r) {
708
741
  return new Promise((e, t) => {
709
- r.runtimeCore.formRef.value.validate().then(({ valid: s, errors: i }) => {
710
- s ? e(
711
- r.cleanFallbackFields(
712
- V(r.runtimeCore.processor.processedModel.value)
713
- )
714
- ) : t(i);
742
+ r.runtimeCore.formRef.value.validate().then(({
743
+ valid: s,
744
+ errors: i
745
+ }) => {
746
+ s ? e(r.cleanFallbackFields(E(r.runtimeCore.processor.processedModel.value))) : t(i);
715
747
  });
716
748
  });
749
+ },
750
+ clearValidate(r) {
751
+ r.formRef.value.reset();
752
+ }
753
+ },
754
+ NaiveUI: {
755
+ getRuntimeField(r) {
756
+ return {
757
+ path: M(r)
758
+ };
759
+ },
760
+ getRuntimeRequired(r) {
761
+ var e, t;
762
+ if (r.required)
763
+ if (!r.rules)
764
+ r.rules = [], (e = r.rules) == null || e.push({
765
+ required: !0,
766
+ message: `${r.label}是必填项`,
767
+ trigger: ["input", "blur"]
768
+ });
769
+ else {
770
+ const s = r.rules.findIndex((i) => !l.isUndefined(i.required));
771
+ s !== -1 && (r.rules[s].required = !0, r.rules[s].message = `${r.label}是必填项`);
772
+ }
773
+ else if (r.rules) {
774
+ const s = (t = r.rules) == null ? void 0 : t.findIndex((i) => !!i.required);
775
+ s !== -1 && (r.rules[s].required = !1);
776
+ }
777
+ return {
778
+ rule: r.rules
779
+ };
780
+ },
781
+ getFormModelPropName() {
782
+ return "model";
783
+ },
784
+ formComponentRenderer({
785
+ Component: r,
786
+ baseModel: e,
787
+ schema: t,
788
+ placeholder: s,
789
+ props: i
790
+ }) {
791
+ return p(r, R({
792
+ value: e[t.field],
793
+ "onUpdate:value": (o) => e[t.field] = o,
794
+ placeholder: s
795
+ }, i), null);
796
+ },
797
+ validateForm(r) {
798
+ return new Promise((e, t) => {
799
+ r.runtimeCore.formRef.value.validate((s) => s ? t(s) : e(r.cleanFallbackFields(E(r.runtimeCore.processor.processedModel.value))));
800
+ });
801
+ },
802
+ clearValidate(r) {
803
+ r.formRef.value.restoreValidation();
717
804
  }
718
805
  }
719
- }, S = class S {
806
+ }, j = class j {
720
807
  static getPlaceholderPrefixPresetByComponentName() {
721
808
  const e = {
722
809
  请选择: ["select", "tree"],
@@ -729,7 +816,7 @@ const he = {
729
816
  return t;
730
817
  }
731
818
  };
732
- a(S, "schemaPreset", {
819
+ a(j, "schemaPreset", {
733
820
  type: {
734
821
  defaultValue: "item"
735
822
  },
@@ -769,19 +856,19 @@ a(S, "schemaPreset", {
769
856
  grid: {
770
857
  default: void 0
771
858
  }
772
- }), a(S, "componentPropsPreset", {
859
+ }), a(j, "componentPropsPreset", {
773
860
  options: {
774
861
  defaultValue: []
775
862
  }
776
863
  }), // 基于基本功能提出基本预设
777
- a(S, "placeholderPresetByComponentName", S.getPlaceholderPrefixPresetByComponentName());
778
- let L = S;
779
- const j = {
864
+ a(j, "placeholderPresetByComponentName", j.getPlaceholderPrefixPresetByComponentName());
865
+ let L = j;
866
+ const b = {
780
867
  ...L,
781
868
  adapters: {
782
- ...he
869
+ ...me
783
870
  }
784
- }, be = /* @__PURE__ */ ae({
871
+ }, be = /* @__PURE__ */ ue({
785
872
  props: {
786
873
  setup: {
787
874
  type: Function,
@@ -789,12 +876,12 @@ const j = {
789
876
  }
790
877
  },
791
878
  setup(r) {
792
- const e = new pe(r.setup);
879
+ const e = new he(r.setup);
793
880
  return () => e.exec();
794
881
  }
795
882
  });
796
- function Pe(r) {
797
- const e = new ue(r);
883
+ function ve(r) {
884
+ const e = new ce(r);
798
885
  return [
799
886
  e.setup.bind(e),
800
887
  {
@@ -806,7 +893,7 @@ function Pe(r) {
806
893
  function ge(r) {
807
894
  f.presets = r;
808
895
  }
809
- function ve(r, e) {
896
+ function Ce(r, e) {
810
897
  return e === "raw" && Object.defineProperty(r, "name", {
811
898
  value: `__proform_raw_${r.name}`,
812
899
  writable: !0
@@ -814,7 +901,7 @@ function ve(r, e) {
814
901
  }
815
902
  export {
816
903
  be as ProForm,
817
- Pe as useForm,
904
+ ve as useForm,
818
905
  ge as useFormPresetConfigurer,
819
- ve as useModifiers
906
+ Ce as useModifiers
820
907
  };
@@ -1,6 +1,9 @@
1
1
  declare const _default: {
2
2
  adapters: {
3
- [x: string]: import("../../types").AdaptedInterface;
3
+ [x: string & {}]: import("../../types").AdaptedInterface;
4
+ ArcoVue: import("../../types").AdaptedInterface;
5
+ NutUI: import("../../types").AdaptedInterface;
6
+ NaiveUI: import("../../types").AdaptedInterface;
4
7
  };
5
8
  schemaPreset: Record<keyof import("../../types").ItemSchema, any> & {
6
9
  children: any;
@@ -5,4 +5,6 @@ export default class RuntimeAdpter {
5
5
  getRuntimeField(runtimeArgs: AnyObject): any;
6
6
  getRuntimeRequired(runtimeArgs: AnyObject): any;
7
7
  getFormModelPropName(): any;
8
+ formComponentRenderer(runtimeArgs: AnyObject): any;
9
+ clearValidate(runtimeArgs: AnyObject): any;
8
10
  }
@@ -1,5 +1,5 @@
1
1
  import { Ref } from "vue";
2
- import { Setup, Schema, AnyObject, ItemSchema, GroupSchema, ListSchema, ProcessorBySchemaType, runtime, NativeCustomizationOptions } from "../../types";
2
+ import { Setup, Schema, AnyObject, ItemSchema, GroupSchema, ListSchema, ProcessorBySchemaType, Runtime, NativeCustomizationOptions } from "../../types";
3
3
  import Processor from "../Processor";
4
4
  import Effect from "../Effect";
5
5
  import RuntimeAdpter from "./RuntimeAdapter";
@@ -13,7 +13,7 @@ export default class RuntimeCore {
13
13
  hydrateEffect: Effect;
14
14
  native: NativeCustomizationOptions;
15
15
  grid: {};
16
- runtime: runtime;
16
+ runtime: Runtime;
17
17
  globalNativeFormOverride: {
18
18
  props: {};
19
19
  slots: {};
@@ -3,5 +3,7 @@ export interface AdaptedInterface {
3
3
  getRuntimeField: AnyFunction;
4
4
  getRuntimeRequired: AnyFunction;
5
5
  getFormModelPropName: AnyFunction;
6
+ formComponentRenderer: AnyFunction;
6
7
  validateForm: AnyFunction;
8
+ clearValidate: AnyFunction;
7
9
  }
@@ -14,8 +14,8 @@ export interface FormPreset {
14
14
  };
15
15
  adapter?: AdaptedInterface;
16
16
  }
17
- export type UIName = "ArcoVue" | "NutUI" | (string & {});
18
- export type AdaptedInterfacePreset = Record<string, AdaptedInterface>;
17
+ export type UIName = "ArcoVue" | "NutUI" | "NaiveUI" | (string & {});
18
+ export type AdaptedInterfacePreset = Record<UIName, AdaptedInterface>;
19
19
  export type FormPresets = {
20
20
  ui: UIName;
21
21
  uiPresets: Partial<Record<UIName, FormPreset>>;
@@ -68,17 +68,17 @@ export interface ItemSchema {
68
68
  }
69
69
  export interface GroupSchema {
70
70
  type: "group";
71
- label: string;
71
+ label?: string;
72
72
  children: ProxyedSchema[];
73
73
  grid?: GridStyle;
74
74
  }
75
75
  export interface ListSchema {
76
76
  type: "list";
77
77
  field: string;
78
- label: string;
78
+ label?: string;
79
79
  children: ProxyedSchema[];
80
80
  grid?: GridStyle;
81
- runtime?: runtime;
81
+ runtime?: Runtime;
82
82
  }
83
83
  export type Schema = ItemSchema | GroupSchema | ListSchema;
84
84
  export interface runtimeMeta {
@@ -89,14 +89,14 @@ export type ProFormProxy<T> = {
89
89
  [K in keyof T]: ProFormProxyRule<T[K]>;
90
90
  };
91
91
  export type ProxyedSchema = ProFormProxy<ItemSchema | GroupSchema | ListSchema>;
92
- export interface runtime {
92
+ export interface Runtime {
93
93
  customizeItemLabel?: (rawLabel: string, rawIndex: number) => any;
94
94
  }
95
95
  export interface FormCustomization {
96
96
  ui?: UIName;
97
97
  grid?: GridStyle;
98
98
  native?: NativeCustomizationOptions;
99
- runtime?: runtime;
99
+ runtime?: Runtime;
100
100
  schemas: ProxyedSchema[];
101
101
  }
102
102
  export type NativeCustomizationOptions = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@harbor-design/proform",
3
- "version": "1.1.11",
3
+ "version": "1.1.13",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",