UNPKG

ll-package

Version:

2 lines (1 loc) 6.04 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const $=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),f=require("../../../@babel/runtime/helpers/esm/extends.js"),o=require("vue"),L=require("../_util/vue-types/index.js"),oe=require("../_util/classNames.js"),k=require("../_util/warning.js"),ne=require("./FormItem.js"),v=require("./utils/valueUtil.js"),ie=require("./utils/messages.js"),se=require("./utils/asyncUtil.js"),q=require("./utils/typeUtil.js"),ue=require("../../../lodash-es/isEqual.js"),de=require("../../../scroll-into-view-if-needed/es/index.js"),ce=require("../_util/props-util/initDefaultProps.js"),a=require("../_util/type.js"),me=require("../config-provider/hooks/useConfigInject.js"),fe=require("./context.js"),ve=require("./useForm.js"),ge=require("../config-provider/context.js"),he=require("./style/index.js"),Fe=require("../config-provider/SizeContext.js"),ye=require("../config-provider/DisabledContext.js"),R=()=>({layout:L.default.oneOf(a.tuple("horizontal","inline","vertical")),labelCol:a.objectType(),wrapperCol:a.objectType(),colon:a.booleanType(),labelAlign:a.stringType(),labelWrap:a.booleanType(),prefixCls:String,requiredMark:a.someType([String,Boolean]),hideRequiredMark:a.booleanType(),model:L.default.object,rules:a.objectType(),validateMessages:a.objectType(),validateOnRuleChange:a.booleanType(),scrollToFirstError:a.anyType(),onSubmit:a.functionType(),name:String,validateTrigger:a.someType([String,Array]),size:a.stringType(),disabled:a.booleanType(),onValuesChange:a.functionType(),onFieldsChange:a.functionType(),onFinish:a.functionType(),onFinishFailed:a.functionType(),onValidate:a.functionType()});function be(t,p){return ue.default(q.toArray(t),q.toArray(p))}const qe=o.defineComponent({compatConfig:{MODE:3},name:"AForm",inheritAttrs:!1,props:ce.default(R(),{layout:"horizontal",hideRequiredMark:!1,colon:!0}),Item:ne.default,useForm:ve.default,setup(t,p){let{emit:g,slots:N,expose:_,attrs:S}=p;const{prefixCls:d,direction:I,form:h,size:P,disabled:z}=me.default("form",t),w=o.computed(()=>t.requiredMark===""||t.requiredMark),x=o.computed(()=>{var e;return w.value!==void 0?w.value:h&&((e=h.value)===null||e===void 0?void 0:e.requiredMark)!==void 0?h.value.requiredMark:!t.hideRequiredMark});Fe.useProviderSize(P),ye.useProviderDisabled(z);const D=o.computed(()=>{var e,r;return(e=t.colon)!==null&&e!==void 0?e:(r=h.value)===null||r===void 0?void 0:r.colon}),{validateMessages:B}=ge.useInjectGlobalForm(),E=o.computed(()=>f.default(f.default(f.default({},ie.defaultValidateMessages),B.value),t.validateMessages)),[W,U]=he.default(d),G=o.computed(()=>oe.default(d.value,{[`${d.value}-${t.layout}`]:!0,[`${d.value}-hide-required-mark`]:x.value===!1,[`${d.value}-rtl`]:I.value==="rtl",[`${d.value}-${P.value}`]:P.value},U.value)),T=o.ref(),c={},H=(e,r)=>{c[e]=r},J=e=>{delete c[e]},M=e=>{const r=!!e,l=r?q.toArray(e).map(v.getNamePath):[];return r?Object.values(c).filter(n=>l.findIndex(s=>be(s,n.fieldName.value))>-1):Object.values(c)},K=e=>{if(!t.model){k.default(!1,"Form","model is required for resetFields to work.");return}M(e).forEach(r=>{r.resetField()})},Q=e=>{M(e).forEach(r=>{r.clearValidate()})},X=e=>{const{scrollToFirstError:r}=t;if(g("finishFailed",e),r&&e.errorFields.length){let l={};typeof r=="object"&&(l=r),O(e.errorFields[0].name,l)}},Y=function(){return Z(...arguments)},O=function(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const l=M(e?[e]:void 0);if(l.length){const n=l[0].fieldId.value,s=n?document.getElementById(n):null;s&&de.default(s,f.default({scrollMode:"if-needed",block:"nearest"},r))}},C=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;if(e===!0){const r=[];return Object.values(c).forEach(l=>{let{namePath:n}=l;r.push(n.value)}),v.cloneByNamePathList(t.model,r)}else return v.cloneByNamePathList(t.model,e)},F=(e,r)=>{if(k.default(!(e instanceof Function),"Form","validateFields/validateField/validate not support callback, please use promise instead"),!t.model)return k.default(!1,"Form","model is required for validateFields to work."),Promise.reject("Form `model` is required for validateFields to work.");const l=!!e,n=l?q.toArray(e).map(v.getNamePath):[],s=[];Object.values(c).forEach(i=>{var m;if(l||n.push(i.namePath.value),!(!((m=i.rules)===null||m===void 0)&&m.value.length))return;const u=i.namePath.value;if(!l||v.containsNamePath(n,u)){const te=i.validateRules(f.default({validateMessages:E.value},r));s.push(te.then(()=>({name:u,errors:[],warnings:[]})).catch(re=>{const b=[],j=[];return re.forEach(ae=>{let{rule:{warningOnly:le},errors:V}=ae;le?j.push(...V):b.push(...V)}),b.length?Promise.reject({name:u,errors:b,warnings:j}):{name:u,errors:b,warnings:j}}))}});const y=se.allPromiseFinish(s);T.value=y;const A=y.then(()=>T.value===y?Promise.resolve(C(n)):Promise.reject([])).catch(i=>{const m=i.filter(u=>u&&u.errors.length);return Promise.reject({values:C(n),errorFields:m,outOfDate:T.value!==y})});return A.catch(i=>i),A},Z=function(){return F(...arguments)},ee=e=>{e.preventDefault(),e.stopPropagation(),g("submit",e),t.model&&F().then(l=>{g("finish",l)}).catch(l=>{X(l)})};return _({resetFields:K,clearValidate:Q,validateFields:F,getFieldsValue:C,validate:Y,scrollToField:O}),fe.useProvideForm({model:o.computed(()=>t.model),name:o.computed(()=>t.name),labelAlign:o.computed(()=>t.labelAlign),labelCol:o.computed(()=>t.labelCol),labelWrap:o.computed(()=>t.labelWrap),wrapperCol:o.computed(()=>t.wrapperCol),vertical:o.computed(()=>t.layout==="vertical"),colon:D,requiredMark:x,validateTrigger:o.computed(()=>t.validateTrigger),rules:o.computed(()=>t.rules),addField:H,removeField:J,onValidate:(e,r,l)=>{g("validate",e,r,l)},validateMessages:E}),o.watch(()=>t.rules,()=>{t.validateOnRuleChange&&F()}),()=>{var e;return W(o.createVNode("form",$.default($.default({},S),{},{onSubmit:ee,class:[G.value,S.class]}),[(e=N.default)===null||e===void 0?void 0:e.call(N)]))}}}),pe=qe;exports.default=pe;exports.formProps=R;