UNPKG

ll-package

Version:

2 lines (1 loc) 7.91 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const q=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),x=require("../../../@babel/runtime/helpers/esm/extends.js"),a=require("vue"),re=require("../../../@ant-design/icons-vue/es/icons/LoadingOutlined.js"),ue=require("../../../@ant-design/icons-vue/es/icons/CloseCircleFilled.js"),ne=require("../../../@ant-design/icons-vue/es/icons/CheckCircleFilled.js"),ie=require("../../../@ant-design/icons-vue/es/icons/ExclamationCircleFilled.js"),oe=require("../../../lodash-es/cloneDeep.js"),N=require("../_util/vue-types/index.js"),se=require("../grid/Row.js"),de=require("../_util/props-util/index.js"),ce=require("./utils/validateUtil.js"),fe=require("./utils/valueUtil.js"),j=require("./utils/typeUtil.js"),ve=require("../vc-util/warning.js"),me=require("../../../lodash-es/find.js"),z=require("../_util/type.js"),ge=require("../config-provider/hooks/useConfigInject.js"),he=require("./context.js"),be=require("./FormItemLabel.js"),ye=require("./FormItemInput.js"),W=require("./FormItemContext.js"),qe=require("./utils/useDebounce.js"),Fe=require("../_util/classNames.js"),we=require("./style/index.js");z.tuple("success","warning","error","validating","");const ke={success:ne.default,warning:ie.default,error:ue.default,validating:re.default};function T(t,R,i){let s=t;const b=R;let v=0;try{for(let r=b.length;v<r-1&&!(!s&&!i);++v){const S=b[v];if(S in s)s=s[S];else{if(i)throw Error("please transfer a valid name path to form item!");break}}if(i&&!s)throw Error("please transfer a valid name path to form item!")}catch{console.error("please transfer a valid name path to form item!")}return{o:s,k:b[v],v:s?s[b[v]]:void 0}}const J=()=>({htmlFor:String,prefixCls:String,label:N.default.any,help:N.default.any,extra:N.default.any,labelCol:{type:Object},wrapperCol:{type:Object},hasFeedback:{type:Boolean,default:!1},colon:{type:Boolean,default:void 0},labelAlign:String,prop:{type:[String,Number,Array]},name:{type:[String,Number,Array]},rules:[Array,Object],autoLink:{type:Boolean,default:!0},required:{type:Boolean,default:void 0},validateFirst:{type:Boolean,default:void 0},validateStatus:N.default.oneOf(z.tuple("","success","warning","error","validating")),validateTrigger:{type:[String,Array]},messageVariables:{type:Object},hidden:Boolean,noStyle:Boolean,tooltip:String});let Ce=0;const Se="form_item",Ie=a.defineComponent({compatConfig:{MODE:3},name:"AFormItem",inheritAttrs:!1,__ANT_NEW_FORM_ITEM:!0,props:J(),slots:Object,setup(t,R){let{slots:i,attrs:s,expose:b}=R;ve.warning(t.prop===void 0,"`prop` is deprecated. Please use `name` instead.");const v=`form-item-${++Ce}`,{prefixCls:r}=ge.default("form",t),[S,Q]=we.default(r),$=a.shallowRef(),o=he.useInjectForm(),y=a.computed(()=>t.name||t.prop),m=a.shallowRef([]),F=a.shallowRef(!1),V=a.shallowRef(),g=a.computed(()=>{const e=y.value;return fe.getNamePath(e)}),p=a.computed(()=>{if(g.value.length){const e=o.name.value,l=g.value.join("_");return e?`${e}_${l}`:`${Se}_${l}`}else return}),X=()=>{const e=o.model.value;if(!(!e||!y.value))return T(e,g.value,!0).v},I=a.computed(()=>X()),L=a.shallowRef(oe.default(I.value)),_=a.computed(()=>{let e=t.validateTrigger!==void 0?t.validateTrigger:o.validateTrigger.value;return e=e===void 0?"change":e,j.toArray(e)}),A=a.computed(()=>{let e=o.rules.value;const l=t.rules,u=t.required!==void 0?{required:!!t.required,trigger:_.value}:[],n=T(e,g.value);e=e?n.o[n.k]||n.v:[];const f=[].concat(l||e||[]);return me.default(f,d=>d.required)?f:f.concat(u)}),Y=a.computed(()=>{const e=A.value;let l=!1;return e&&e.length&&e.every(u=>u.required?(l=!0,!1):!0),l||t.required}),h=a.shallowRef();a.watchEffect(()=>{h.value=t.validateStatus});const Z=a.computed(()=>{let e={};return typeof t.label=="string"?e.label=t.label:t.name&&(e.label=String(t.name)),t.messageVariables&&(e=x.default(x.default({},e),t.messageVariables)),e}),B=e=>{if(g.value.length===0)return;const{validateFirst:l=!1}=t,{triggerName:u}=e||{};let n=A.value;if(u&&(n=n.filter(d=>{const{trigger:k}=d;return!k&&!_.value.length?!0:j.toArray(k||_.value).includes(u)})),!n.length)return Promise.resolve();const f=ce.validateRules(g.value,I.value,n,x.default({validateMessages:o.validateMessages.value},e),l,Z.value);return h.value="validating",m.value=[],f.catch(d=>d).then(function(){let d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];if(h.value==="validating"){const k=d.filter(C=>C&&C.errors.length);h.value=k.length?"error":"success",m.value=k.map(C=>C.errors),o.onValidate(y.value,!m.value.length,m.value.length?a.toRaw(m.value[0]):null)}}),f},D=()=>{B({triggerName:"blur"})},U=()=>{if(F.value){F.value=!1;return}B({triggerName:"change"})},M=()=>{h.value=t.validateStatus,F.value=!1,m.value=[]},G=()=>{var e;h.value=t.validateStatus,F.value=!0,m.value=[];const l=o.model.value||{},u=I.value,n=T(l,g.value,!0);Array.isArray(u)?n.o[n.k]=[].concat((e=L.value)!==null&&e!==void 0?e:[]):n.o[n.k]=L.value,a.nextTick(()=>{F.value=!1})},H=a.computed(()=>t.htmlFor===void 0?p.value:t.htmlFor),ee=()=>{const e=H.value;if(!e||!V.value)return;const l=V.value.$el.querySelector(`[id="${e}"]`);l&&l.focus&&l.focus()};b({onFieldBlur:D,onFieldChange:U,clearValidate:M,resetField:G}),W.useProvideFormItemContext({id:p,onFieldBlur:()=>{t.autoLink&&D()},onFieldChange:()=>{t.autoLink&&U()},clearValidate:M},a.computed(()=>!!(t.autoLink&&o.model.value&&y.value)));let E=!1;a.watch(y,e=>{e?E||(E=!0,o.addField(v,{fieldValue:I,fieldId:p,fieldName:y,resetField:G,clearValidate:M,namePath:g,validateRules:B,rules:A})):(E=!1,o.removeField(v))},{immediate:!0}),a.onBeforeUnmount(()=>{o.removeField(v)});const O=qe.default(m),c=a.computed(()=>t.validateStatus!==void 0?t.validateStatus:O.value.length?"error":h.value),te=a.computed(()=>({[`${r.value}-item`]:!0,[Q.value]:!0,[`${r.value}-item-has-feedback`]:c.value&&t.hasFeedback,[`${r.value}-item-has-success`]:c.value==="success",[`${r.value}-item-has-warning`]:c.value==="warning",[`${r.value}-item-has-error`]:c.value==="error",[`${r.value}-item-is-validating`]:c.value==="validating",[`${r.value}-item-hidden`]:t.hidden})),K=a.reactive({});W.FormItemInputContext.useProvide(K),a.watchEffect(()=>{let e;if(t.hasFeedback){const l=c.value&&ke[c.value];e=l?a.createVNode("span",{class:Fe.default(`${r.value}-item-feedback-icon`,`${r.value}-item-feedback-icon-${c.value}`)},[a.createVNode(l,null,null)]):null}x.default(K,{status:c.value,hasFeedback:t.hasFeedback,feedbackIcon:e,isFormItemInput:!0})});const w=a.shallowRef(null),P=a.shallowRef(!1),ae=()=>{if($.value){const e=getComputedStyle($.value);w.value=parseInt(e.marginBottom,10)}};a.onMounted(()=>{a.watch(P,()=>{P.value&&ae()},{flush:"post",immediate:!0})});const le=e=>{e||(w.value=null)};return()=>{var e,l;if(t.noStyle)return(e=i.default)===null||e===void 0?void 0:e.call(i);const u=(l=t.help)!==null&&l!==void 0?l:i.help?de.filterEmpty(i.help()):null,n=!!(u!=null&&Array.isArray(u)&&u.length||O.value.length);return P.value=n,S(a.createVNode("div",{class:[te.value,n?`${r.value}-item-with-help`:"",s.class],ref:$},[a.createVNode(se.default,q.default(q.default({},s),{},{class:`${r.value}-row`,key:"row"}),{default:()=>{var f,d;return a.createVNode(a.Fragment,null,[a.createVNode(be.default,q.default(q.default({},t),{},{htmlFor:H.value,required:Y.value,requiredMark:o.requiredMark.value,prefixCls:r.value,onClick:ee,label:t.label}),{label:i.label,tooltip:i.tooltip}),a.createVNode(ye.default,q.default(q.default({},t),{},{errors:u!=null?j.toArray(u):O.value,marginBottom:w.value,prefixCls:r.value,status:c.value,ref:V,help:u,extra:(f=t.extra)!==null&&f!==void 0?f:(d=i.extra)===null||d===void 0?void 0:d.call(i),onErrorVisibleChanged:le}),{default:i.default})])}}),!!w.value&&a.createVNode("div",{class:`${r.value}-margin-offset`,style:{marginBottom:`-${w.value}px`}},null)]))}}});exports.default=Ie;exports.formItemProps=J;