@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 +1 -1
- package/dist/index.js +200 -113
- package/dist/types/src/services/Preset/index.d.ts +4 -1
- package/dist/types/src/services/RuntimeCore/RuntimeAdapter.d.ts +2 -0
- package/dist/types/src/services/RuntimeCore/index.d.ts +2 -2
- package/dist/types/src/types/adapter.d.ts +2 -0
- package/dist/types/src/types/contextTypes.d.ts +2 -2
- package/dist/types/src/types/formCustomizerTypes.d.ts +5 -5
- package/package.json +1 -1
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
|
|
2
|
-
var
|
|
3
|
-
var a = (r, e, t) => (
|
|
4
|
-
import { isRef as
|
|
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
|
|
115
|
+
function N(r, e) {
|
|
116
116
|
return r.replace(/undefined/g, e);
|
|
117
117
|
}
|
|
118
|
-
class
|
|
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 =
|
|
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
|
-
|
|
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
|
-
) :
|
|
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
|
|
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
|
|
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",
|
|
196
|
-
a(this, "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
|
|
200
|
-
a(this, "defaultValueEffect", new
|
|
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 =
|
|
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),
|
|
271
|
-
let
|
|
272
|
-
if (l.isProcessInprogress(
|
|
273
|
-
let h = i.processedSchemas.value[
|
|
274
|
-
h && l.isObject(h) && d !== "component" && (
|
|
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" && (
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
) :
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
437
|
-
return typeof r == "function" || Object.prototype.toString.call(r) === "[object Object]" && !
|
|
446
|
+
function pe(r) {
|
|
447
|
+
return typeof r == "function" || Object.prototype.toString.call(r) === "[object Object]" && !ae(r);
|
|
438
448
|
}
|
|
439
|
-
class
|
|
449
|
+
class he {
|
|
440
450
|
constructor(e) {
|
|
441
|
-
a(this, "schemas",
|
|
442
|
-
a(this, "model",
|
|
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",
|
|
449
|
-
a(this, "hydrateEffect", new
|
|
450
|
-
a(this, "native",
|
|
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
|
|
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
|
|
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 (
|
|
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:
|
|
490
|
+
model: E(g(this.model.value))
|
|
481
491
|
};
|
|
482
492
|
}
|
|
483
493
|
runtimeItemProcessor(e, t, s = this.model.value, i) {
|
|
484
|
-
var
|
|
485
|
-
const o =
|
|
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, (
|
|
489
|
-
const n = m(g((
|
|
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((
|
|
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 ?? {},
|
|
498
|
-
let
|
|
499
|
-
|
|
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
|
|
502
|
-
if (!l.isUndefined(t) && !l.isObjectEmpty(
|
|
503
|
-
let
|
|
504
|
-
l.isUndefined(y) ?
|
|
505
|
-
|
|
506
|
-
y.toLowerCase().includes(
|
|
507
|
-
}),
|
|
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
|
|
527
|
+
return Z(p(se, R(c, {
|
|
518
528
|
label: `${h}:`
|
|
519
529
|
}, d, ee), {
|
|
520
530
|
default() {
|
|
521
|
-
return
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
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
|
-
}), [[
|
|
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
|
-
},
|
|
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.
|
|
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.
|
|
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
|
|
594
|
+
return Z(p(d, {
|
|
583
595
|
onClick: () => s.deleteListItem(e, u)
|
|
584
|
-
}, null), [[
|
|
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, [
|
|
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,
|
|
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
|
|
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
|
|
645
|
+
const me = {
|
|
630
646
|
ArcoVue: {
|
|
631
647
|
getRuntimeField(r) {
|
|
632
648
|
return {
|
|
633
|
-
field:
|
|
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:
|
|
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(({
|
|
710
|
-
s
|
|
711
|
-
|
|
712
|
-
|
|
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
|
-
},
|
|
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(
|
|
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(
|
|
859
|
+
}), a(j, "componentPropsPreset", {
|
|
773
860
|
options: {
|
|
774
861
|
defaultValue: []
|
|
775
862
|
}
|
|
776
863
|
}), // 基于基本功能提出基本预设
|
|
777
|
-
a(
|
|
778
|
-
let L =
|
|
779
|
-
const
|
|
864
|
+
a(j, "placeholderPresetByComponentName", j.getPlaceholderPrefixPresetByComponentName());
|
|
865
|
+
let L = j;
|
|
866
|
+
const b = {
|
|
780
867
|
...L,
|
|
781
868
|
adapters: {
|
|
782
|
-
...
|
|
869
|
+
...me
|
|
783
870
|
}
|
|
784
|
-
}, be = /* @__PURE__ */
|
|
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
|
|
879
|
+
const e = new he(r.setup);
|
|
793
880
|
return () => e.exec();
|
|
794
881
|
}
|
|
795
882
|
});
|
|
796
|
-
function
|
|
797
|
-
const e = new
|
|
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
|
|
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
|
-
|
|
904
|
+
ve as useForm,
|
|
818
905
|
ge as useFormPresetConfigurer,
|
|
819
|
-
|
|
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;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Ref } from "vue";
|
|
2
|
-
import { Setup, Schema, AnyObject, ItemSchema, GroupSchema, ListSchema, ProcessorBySchemaType,
|
|
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:
|
|
16
|
+
runtime: Runtime;
|
|
17
17
|
globalNativeFormOverride: {
|
|
18
18
|
props: {};
|
|
19
19
|
slots: {};
|
|
@@ -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<
|
|
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
|
|
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
|
|
78
|
+
label?: string;
|
|
79
79
|
children: ProxyedSchema[];
|
|
80
80
|
grid?: GridStyle;
|
|
81
|
-
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
|
|
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?:
|
|
99
|
+
runtime?: Runtime;
|
|
100
100
|
schemas: ProxyedSchema[];
|
|
101
101
|
}
|
|
102
102
|
export type NativeCustomizationOptions = {
|