ll-package
Version:
2 lines (1 loc) • 4.34 kB
JavaScript
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const v=require("../../../@babel/runtime/helpers/esm/extends.js"),d=require("vue"),A=require("../../../lodash-es/cloneDeep.js"),K=require("../../../lodash-es/intersection.js"),W=require("../../../lodash-es/isEqual.js"),$=require("../../../lodash-es/debounce.js"),z=require("../../../lodash-es/omit.js"),G=require("./utils/validateUtil.js"),H=require("./utils/messages.js"),J=require("./utils/asyncUtil.js");function _(l){let a=!1;return l&&l.length&&l.every(s=>s.required?(a=!0,!1):!0),a}function I(l){return l==null?[]:Array.isArray(l)?l:[l]}function O(l,a,s){let f=l;a=a.replace(/\[(\w+)\]/g,".$1"),a=a.replace(/^\./,"");const r=a.split(".");let g=0;for(let P=r.length;g<P-1&&!(!f&&!s);++g){const q=r[g];if(q in f)f=f[q];else{if(s)throw new Error("please transfer a valid name path to validate!");break}}return{o:f,k:r[g],v:f?f[r[g]]:null,isValid:f&&r[g]in f}}function N(l){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:d.ref({}),s=arguments.length>2?arguments[2]:void 0;const f=A.default(d.unref(l)),r=d.reactive({}),g=d.shallowRef([]),P=e=>{v.default(d.unref(l),v.default(v.default({},A.default(f)),e)),d.nextTick(()=>{Object.keys(r).forEach(t=>{r[t]={autoLink:!1,required:_(d.unref(a)[t])}})})},q=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return t.length?e.filter(i=>{const u=I(i.trigger||"change");return K.default(u,t).length}):e};let b=null;const T=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0;const u=[],o={};for(let h=0;h<e.length;h++){const c=e[h],p=O(d.unref(l),c,i);if(!p.isValid)continue;o[c]=p.v;const M=q(d.unref(a)[c],I(t&&t.trigger));M.length&&u.push(j(c,p.v,M,t||{}).then(()=>({name:c,errors:[],warnings:[]})).catch(U=>{const y=[],V=[];return U.forEach(B=>{let{rule:{warningOnly:C},errors:R}=B;C?V.push(...R):y.push(...R)}),y.length?Promise.reject({name:c,errors:y,warnings:V}):{name:c,errors:y,warnings:V}}))}const n=J.allPromiseFinish(u);b=n;const m=n.then(()=>b===n?Promise.resolve(o):Promise.reject([])).catch(h=>{const c=h.filter(p=>p&&p.errors.length);return Promise.reject({values:o,errorFields:c,outOfDate:b!==n})});return m.catch(h=>h),m},j=function(e,t,i){let u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=G.validateRules([e],t,i,v.default({validateMessages:H.defaultValidateMessages},u),!!u.validateFirst);return r[e]?(r[e].validateStatus="validating",o.catch(n=>n).then(function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];var m;if(r[e].validateStatus==="validating"){const h=n.filter(c=>c&&c.errors.length);r[e].validateStatus=h.length?"error":"success",r[e].help=h.length?h.map(c=>c.errors):null,(m=s==null?void 0:s.onValidate)===null||m===void 0||m.call(s,e,!h.length,h.length?d.toRaw(r[e].help[0]):null)}}),o):o.catch(n=>n)},F=(e,t)=>{let i=[],u=!0;e?Array.isArray(e)?i=e:i=[e]:(u=!1,i=g.value);const o=T(i,t||{},u);return o.catch(n=>n),o},x=e=>{let t=[];e?Array.isArray(e)?t=e:t=[e]:t=g.value,t.forEach(i=>{r[i]&&v.default(r[i],{validateStatus:"",help:null})})},D=e=>{const t={autoLink:!1},i=[],u=Array.isArray(e)?e:[e];for(let o=0;o<u.length;o++){const n=u[o];(n==null?void 0:n.validateStatus)==="error"&&(t.validateStatus="error",n.help&&i.push(n.help)),t.required=t.required||(n==null?void 0:n.required)}return t.help=i,t};let E=f,S=!0;const k=e=>{const t=[];g.value.forEach(i=>{const u=O(e,i,!1),o=O(E,i,!1);(S&&(s==null?void 0:s.immediate)&&u.isValid||!W.default(u.v,o.v))&&t.push(i)}),F(t,{trigger:"change"}),S=!1,E=A.default(d.toRaw(e))},w=s==null?void 0:s.debounce;let L=!0;return d.watch(a,()=>{g.value=a?Object.keys(d.unref(a)):[],!L&&s&&s.validateOnRuleChange&&F(),L=!1},{deep:!0,immediate:!0}),d.watch(g,()=>{const e={};g.value.forEach(t=>{e[t]=v.default({},r[t],{autoLink:!1,required:_(d.unref(a)[t])}),delete r[t]});for(const t in r)Object.prototype.hasOwnProperty.call(r,t)&&delete r[t];v.default(r,e)},{immediate:!0}),d.watch(l,w&&w.wait?$.default(k,w.wait,z.default(w,["wait"])):k,{immediate:s&&!!s.immediate,deep:!0}),{modelRef:l,rulesRef:a,initialModel:f,validateInfos:r,resetFields:P,validate:F,validateField:j,mergeValidateInfo:D,clearValidate:x}}exports.default=N;
;