UNPKG

@xfc/vue3-form-render

Version:

Convert JSON to Vue Form

2 lines (1 loc) 16.5 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue");var ze=typeof global=="object"&&global&&global.Object===Object&&global,We=typeof self=="object"&&self&&self.Object===Object&&self,S=ze||We||Function("return this")(),R=S.Symbol,Ee=Object.prototype,He=Ee.hasOwnProperty,Ge=Ee.toString,k=R?R.toStringTag:void 0;function Je(e){var r=He.call(e,k),t=e[k];try{e[k]=void 0;var o=!0}catch{}var v=Ge.call(e);return o&&(r?e[k]=t:delete e[k]),v}var Ke=Object.prototype,Qe=Ke.toString;function Xe(e){return Qe.call(e)}var Ye="[object Null]",Ze="[object Undefined]",ie=R?R.toStringTag:void 0;function L(e){return e==null?e===void 0?Ze:Ye:ie&&ie in Object(e)?Je(e):Xe(e)}function W(e){return e!=null&&typeof e=="object"}var ne=Array.isArray;function G(e){var r=typeof e;return e!=null&&(r=="object"||r=="function")}var er="[object AsyncFunction]",rr="[object Function]",tr="[object GeneratorFunction]",nr="[object Proxy]";function Ie(e){if(!G(e))return!1;var r=L(e);return r==rr||r==tr||r==er||r==nr}var X=S["__core-js_shared__"],ue=function(){var e=/[^.]+$/.exec(X&&X.keys&&X.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function or(e){return!!ue&&ue in e}var ar=Function.prototype,cr=ar.toString;function U(e){if(e!=null){try{return cr.call(e)}catch{}try{return e+""}catch{}}return""}var ir=/[\\^$.*+?()[\]{}|]/g,ur=/^\[object .+?Constructor\]$/,sr=Function.prototype,lr=Object.prototype,fr=sr.toString,dr=lr.hasOwnProperty,pr=RegExp("^"+fr.call(dr).replace(ir,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function br(e){if(!G(e)||or(e))return!1;var r=Ie(e)?pr:ur;return r.test(U(e))}function yr(e,r){return e==null?void 0:e[r]}function x(e,r){var t=yr(e,r);return br(t)?t:void 0}var Z=x(S,"WeakMap"),se=Object.create,hr=function(){function e(){}return function(r){if(!G(r))return{};if(se)return se(r);e.prototype=r;var t=new e;return e.prototype=void 0,t}}(),le=function(){try{var e=x(Object,"defineProperty");return e({},"",{}),e}catch{}}();function vr(e,r){for(var t=-1,o=e==null?0:e.length;++t<o&&r(e[t],t,e)!==!1;);return e}var jr=9007199254740991,_r=/^(?:0|[1-9]\d*)$/;function mr(e,r){var t=typeof e;return r=r??jr,!!r&&(t=="number"||t!="symbol"&&_r.test(e))&&e>-1&&e%1==0&&e<r}function gr(e,r,t){r=="__proto__"&&le?le(e,r,{configurable:!0,enumerable:!0,value:t,writable:!0}):e[r]=t}function Pe(e,r){return e===r||e!==e&&r!==r}var Or=Object.prototype,wr=Or.hasOwnProperty;function Ar(e,r,t){var o=e[r];(!(wr.call(e,r)&&Pe(o,t))||t===void 0&&!(r in e))&&gr(e,r,t)}var Sr=9007199254740991;function Ue(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Sr}function Fr(e){return e!=null&&Ue(e.length)&&!Ie(e)}var Dr=Object.prototype;function xe(e){var r=e&&e.constructor,t=typeof r=="function"&&r.prototype||Dr;return e===t}function zr(e,r){for(var t=-1,o=Array(e);++t<e;)o[t]=r(t);return o}var Er="[object Arguments]";function fe(e){return W(e)&&L(e)==Er}var Re=Object.prototype,Ir=Re.hasOwnProperty,Pr=Re.propertyIsEnumerable,Ur=fe(function(){return arguments}())?fe:function(e){return W(e)&&Ir.call(e,"callee")&&!Pr.call(e,"callee")};function xr(){return!1}var Me=typeof exports=="object"&&exports&&!exports.nodeType&&exports,de=Me&&typeof module=="object"&&module&&!module.nodeType&&module,Rr=de&&de.exports===Me,pe=Rr?S.Buffer:void 0,Mr=pe?pe.isBuffer:void 0,Ve=Mr||xr,Vr="[object Arguments]",Nr="[object Array]",Br="[object Boolean]",Tr="[object Date]",kr="[object Error]",Cr="[object Function]",$r="[object Map]",qr="[object Number]",Lr="[object Object]",Wr="[object RegExp]",Hr="[object Set]",Gr="[object String]",Jr="[object WeakMap]",Kr="[object ArrayBuffer]",Qr="[object DataView]",Xr="[object Float32Array]",Yr="[object Float64Array]",Zr="[object Int8Array]",et="[object Int16Array]",rt="[object Int32Array]",tt="[object Uint8Array]",nt="[object Uint8ClampedArray]",ot="[object Uint16Array]",at="[object Uint32Array]",p={};p[Xr]=p[Yr]=p[Zr]=p[et]=p[rt]=p[tt]=p[nt]=p[ot]=p[at]=!0;p[Vr]=p[Nr]=p[Kr]=p[Br]=p[Qr]=p[Tr]=p[kr]=p[Cr]=p[$r]=p[qr]=p[Lr]=p[Wr]=p[Hr]=p[Gr]=p[Jr]=!1;function ct(e){return W(e)&&Ue(e.length)&&!!p[L(e)]}function oe(e){return function(r){return e(r)}}var Ne=typeof exports=="object"&&exports&&!exports.nodeType&&exports,C=Ne&&typeof module=="object"&&module&&!module.nodeType&&module,it=C&&C.exports===Ne,Y=it&&ze.process,M=function(){try{var e=C&&C.require&&C.require("util").types;return e||Y&&Y.binding&&Y.binding("util")}catch{}}(),be=M&&M.isTypedArray,ut=be?oe(be):ct,st=Object.prototype,lt=st.hasOwnProperty;function ft(e,r){var t=ne(e),o=!t&&Ur(e),v=!t&&!o&&Ve(e),c=!t&&!o&&!v&&ut(e),y=t||o||v||c,m=y?zr(e.length,String):[],s=m.length;for(var l in e)lt.call(e,l)&&!(y&&(l=="length"||v&&(l=="offset"||l=="parent")||c&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||mr(l,s)))&&m.push(l);return m}function Be(e,r){return function(t){return e(r(t))}}var dt=Be(Object.keys,Object),pt=Object.prototype,bt=pt.hasOwnProperty;function yt(e){if(!xe(e))return dt(e);var r=[];for(var t in Object(e))bt.call(e,t)&&t!="constructor"&&r.push(t);return r}function ht(e){return Fr(e)?ft(e):yt(e)}var $=x(Object,"create");function vt(){this.__data__=$?$(null):{},this.size=0}function jt(e){var r=this.has(e)&&delete this.__data__[e];return this.size-=r?1:0,r}var _t="__lodash_hash_undefined__",mt=Object.prototype,gt=mt.hasOwnProperty;function Ot(e){var r=this.__data__;if($){var t=r[e];return t===_t?void 0:t}return gt.call(r,e)?r[e]:void 0}var wt=Object.prototype,At=wt.hasOwnProperty;function St(e){var r=this.__data__;return $?r[e]!==void 0:At.call(r,e)}var Ft="__lodash_hash_undefined__";function Dt(e,r){var t=this.__data__;return this.size+=this.has(e)?0:1,t[e]=$&&r===void 0?Ft:r,this}function P(e){var r=-1,t=e==null?0:e.length;for(this.clear();++r<t;){var o=e[r];this.set(o[0],o[1])}}P.prototype.clear=vt;P.prototype.delete=jt;P.prototype.get=Ot;P.prototype.has=St;P.prototype.set=Dt;function zt(){this.__data__=[],this.size=0}function J(e,r){for(var t=e.length;t--;)if(Pe(e[t][0],r))return t;return-1}var Et=Array.prototype,It=Et.splice;function Pt(e){var r=this.__data__,t=J(r,e);if(t<0)return!1;var o=r.length-1;return t==o?r.pop():It.call(r,t,1),--this.size,!0}function Ut(e){var r=this.__data__,t=J(r,e);return t<0?void 0:r[t][1]}function xt(e){return J(this.__data__,e)>-1}function Rt(e,r){var t=this.__data__,o=J(t,e);return o<0?(++this.size,t.push([e,r])):t[o][1]=r,this}function E(e){var r=-1,t=e==null?0:e.length;for(this.clear();++r<t;){var o=e[r];this.set(o[0],o[1])}}E.prototype.clear=zt;E.prototype.delete=Pt;E.prototype.get=Ut;E.prototype.has=xt;E.prototype.set=Rt;var q=x(S,"Map");function Mt(){this.size=0,this.__data__={hash:new P,map:new(q||E),string:new P}}function Vt(e){var r=typeof e;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?e!=="__proto__":e===null}function K(e,r){var t=e.__data__;return Vt(r)?t[typeof r=="string"?"string":"hash"]:t.map}function Nt(e){var r=K(this,e).delete(e);return this.size-=r?1:0,r}function Bt(e){return K(this,e).get(e)}function Tt(e){return K(this,e).has(e)}function kt(e,r){var t=K(this,e),o=t.size;return t.set(e,r),this.size+=t.size==o?0:1,this}function V(e){var r=-1,t=e==null?0:e.length;for(this.clear();++r<t;){var o=e[r];this.set(o[0],o[1])}}V.prototype.clear=Mt;V.prototype.delete=Nt;V.prototype.get=Bt;V.prototype.has=Tt;V.prototype.set=kt;function Ct(e,r){for(var t=-1,o=r.length,v=e.length;++t<o;)e[v+t]=r[t];return e}var $t=Be(Object.getPrototypeOf,Object);function qt(){this.__data__=new E,this.size=0}function Lt(e){var r=this.__data__,t=r.delete(e);return this.size=r.size,t}function Wt(e){return this.__data__.get(e)}function Ht(e){return this.__data__.has(e)}var Gt=200;function Jt(e,r){var t=this.__data__;if(t instanceof E){var o=t.__data__;if(!q||o.length<Gt-1)return o.push([e,r]),this.size=++t.size,this;t=this.__data__=new V(o)}return t.set(e,r),this.size=t.size,this}function N(e){var r=this.__data__=new E(e);this.size=r.size}N.prototype.clear=qt;N.prototype.delete=Lt;N.prototype.get=Wt;N.prototype.has=Ht;N.prototype.set=Jt;var Te=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ye=Te&&typeof module=="object"&&module&&!module.nodeType&&module,Kt=ye&&ye.exports===Te,he=Kt?S.Buffer:void 0;he&&he.allocUnsafe;function Qt(e,r){return e.slice()}function Xt(e,r){for(var t=-1,o=e==null?0:e.length,v=0,c=[];++t<o;){var y=e[t];r(y,t,e)&&(c[v++]=y)}return c}function Yt(){return[]}var Zt=Object.prototype,en=Zt.propertyIsEnumerable,ve=Object.getOwnPropertySymbols,rn=ve?function(e){return e==null?[]:(e=Object(e),Xt(ve(e),function(r){return en.call(e,r)}))}:Yt;function tn(e,r,t){var o=r(e);return ne(e)?o:Ct(o,t(e))}function nn(e){return tn(e,ht,rn)}var ee=x(S,"DataView"),re=x(S,"Promise"),te=x(S,"Set"),je="[object Map]",on="[object Object]",_e="[object Promise]",me="[object Set]",ge="[object WeakMap]",Oe="[object DataView]",an=U(ee),cn=U(q),un=U(re),sn=U(te),ln=U(Z),z=L;(ee&&z(new ee(new ArrayBuffer(1)))!=Oe||q&&z(new q)!=je||re&&z(re.resolve())!=_e||te&&z(new te)!=me||Z&&z(new Z)!=ge)&&(z=function(e){var r=L(e),t=r==on?e.constructor:void 0,o=t?U(t):"";if(o)switch(o){case an:return Oe;case cn:return je;case un:return _e;case sn:return me;case ln:return ge}return r});var fn=Object.prototype,dn=fn.hasOwnProperty;function pn(e){var r=e.length,t=new e.constructor(r);return r&&typeof e[0]=="string"&&dn.call(e,"index")&&(t.index=e.index,t.input=e.input),t}var we=S.Uint8Array;function ae(e){var r=new e.constructor(e.byteLength);return new we(r).set(new we(e)),r}function bn(e,r){var t=ae(e.buffer);return new e.constructor(t,e.byteOffset,e.byteLength)}var yn=/\w*$/;function hn(e){var r=new e.constructor(e.source,yn.exec(e));return r.lastIndex=e.lastIndex,r}var Ae=R?R.prototype:void 0,Se=Ae?Ae.valueOf:void 0;function vn(e){return Se?Object(Se.call(e)):{}}function jn(e,r){var t=ae(e.buffer);return new e.constructor(t,e.byteOffset,e.length)}var _n="[object Boolean]",mn="[object Date]",gn="[object Map]",On="[object Number]",wn="[object RegExp]",An="[object Set]",Sn="[object String]",Fn="[object Symbol]",Dn="[object ArrayBuffer]",zn="[object DataView]",En="[object Float32Array]",In="[object Float64Array]",Pn="[object Int8Array]",Un="[object Int16Array]",xn="[object Int32Array]",Rn="[object Uint8Array]",Mn="[object Uint8ClampedArray]",Vn="[object Uint16Array]",Nn="[object Uint32Array]";function Bn(e,r,t){var o=e.constructor;switch(r){case Dn:return ae(e);case _n:case mn:return new o(+e);case zn:return bn(e);case En:case In:case Pn:case Un:case xn:case Rn:case Mn:case Vn:case Nn:return jn(e);case gn:return new o;case On:case Sn:return new o(e);case wn:return hn(e);case An:return new o;case Fn:return vn(e)}}function Tn(e){return typeof e.constructor=="function"&&!xe(e)?hr($t(e)):{}}var kn="[object Map]";function Cn(e){return W(e)&&z(e)==kn}var Fe=M&&M.isMap,$n=Fe?oe(Fe):Cn,qn="[object Set]";function Ln(e){return W(e)&&z(e)==qn}var De=M&&M.isSet,Wn=De?oe(De):Ln,Hn=1,ke="[object Arguments]",Gn="[object Array]",Jn="[object Boolean]",Kn="[object Date]",Qn="[object Error]",Ce="[object Function]",Xn="[object GeneratorFunction]",Yn="[object Map]",Zn="[object Number]",$e="[object Object]",eo="[object RegExp]",ro="[object Set]",to="[object String]",no="[object Symbol]",oo="[object WeakMap]",ao="[object ArrayBuffer]",co="[object DataView]",io="[object Float32Array]",uo="[object Float64Array]",so="[object Int8Array]",lo="[object Int16Array]",fo="[object Int32Array]",po="[object Uint8Array]",bo="[object Uint8ClampedArray]",yo="[object Uint16Array]",ho="[object Uint32Array]",f={};f[ke]=f[Gn]=f[ao]=f[co]=f[Jn]=f[Kn]=f[io]=f[uo]=f[so]=f[lo]=f[fo]=f[Yn]=f[Zn]=f[$e]=f[eo]=f[ro]=f[to]=f[no]=f[po]=f[bo]=f[yo]=f[ho]=!0;f[Qn]=f[Ce]=f[oo]=!1;function H(e,r,t,o,v,c){var y,m=r&Hn;if(y!==void 0)return y;if(!G(e))return e;var s=ne(e);if(s)y=pn(e);else{var l=z(e),O=l==Ce||l==Xn;if(Ve(e))return Qt(e);if(l==$e||l==ke||O&&!v)y=O?{}:Tn(e);else{if(!f[l])return v?e:{};y=Bn(e,l)}}c||(c=new N);var w=c.get(e);if(w)return w;c.set(e,y),Wn(e)?e.forEach(function(g){y.add(H(g,r,t,g,e,c))}):$n(e)&&e.forEach(function(g,a){y.set(a,H(g,r,t,a,e,c))});var F=nn,I=s?void 0:F(e);return vr(I||e,function(g,a){I&&(a=g,g=e[a]),Ar(y,a,H(g,r,t,a,e,c))}),y}var vo=1,jo=4;function _o(e){return H(e,vo|jo)}const ce=Symbol("renderInjection"),qe=function(e){const r={},t={},o=function(c,y,m){r[c]=y,m&&(t[c]=m)},v=function(c){delete r[c],delete t[c]};return{Render:u.defineComponent({name:"Render",props:{field:{type:Object,required:!0},modelValue:{type:[String,Number,Boolean,Array,Object],required:!1},readonly:{type:Boolean,required:!1,default:!1}},emits:{"update:modelValue":c=>!0,input:c=>!0},setup(c,{emit:y,slots:m,expose:s,attrs:l}){const O=u.inject(ce,{readonly:c.readonly}),w=u.ref(),F={};s(F),u.onMounted(()=>{if(w.value){const a=Object.entries(w.value);for(const[h,_]of a)F[h]=_}});const I=a=>{const h={};if(Object.keys(a.props).forEach(j=>h[j]=a.props[j]),h.ref=w,O.readonly)return h;h.modelValue=c.modelValue,h["onUpdate:modelValue"]=j=>{y("update:modelValue",j),y("input",j)};const _=a.on;return _&&Object.keys(_).forEach(j=>{const A=_[j];A&&(h[j]=(...n)=>{try{(typeof A=="string"?new Function("event","$inject","ref","field",A):A).call(this,n,O,w,c.field)}catch(i){console.error(i)}})}),delete a.on,h},g=a=>{const h={},_=a.slots||{};return Object.keys(_).forEach(j=>h[j]=_[j]),delete a.slots,h};return()=>{const a=_o(c.field),h=t[a.name];h&&h.call(this,a,O),e&&e.call(this,a,O);const _=I(a),j=g(a),A=r[a.name]||u.resolveComponent(a.name);if(!A||typeof A=="string")return u.h("span",{style:{color:"red"}},`${a.name} component not registered`);const n=u.h(A,u.mergeProps(_,l),u.mergeProps(m,j)),i=[],d={mounted(){const b=_.onMounted;b&&b.call(this,void 0,O,w,c.field)},unmounted(){const b=_.onUnmounted;b&&b.call(this,void 0,O,w,c.field)}};return i.push([d]),u.withDirectives(n,i)}}}),addComponent:o,removeComponent:v,components:r,hooks:t}};function mo(e={}){const r=u.unref(e),{Render:t,addComponent:o,removeComponent:v,components:c,hooks:y}=qe(r.globalHook),m=u.defineComponent({name:"FormRender",props:{field:{type:Object,required:!0},formData:{type:Object,required:!0},readonly:{type:Boolean,default:!1}},setup(s,{slots:l,attrs:O,expose:w}){const F=u.ref(),I={formItem:n=>{var d;if(s.readonly)return g(n);const i=(d=n.children)==null?void 0:d.map(b=>a(b));return u.h(t,{field:n,modelValue:s.formData[n.id],"onUpdate:modelValue":b=>{n.value=b,s.formData[n.id]=b}},i)},container:n=>{var d;const i=(d=n.children)==null?void 0:d.map(b=>a(b));return u.h(t,{field:n,modelValue:n.value,"onUpdate:modelValue":b=>n.value=b},i)}},g=n=>{const i=s.formData[n.id];let d=Array.isArray(i)?i:[i];if(n.props.options){const B=Le=>{const Q=[];for(const T of Le)d.includes(T.value)&&Q.push(T.label),T.children&&T.children.length>0&&Q.push(...B(T.children));return Q};d=B(n.props.options)}const b=u.h("span",d.join(",")),D=u.renderSlot(l,"readonly",{value:i,field:n},()=>[b]);return u.renderSlot(l,`readonly-${n.name}`,{value:i,field:n},()=>[D])},a=n=>{if(n.hidden)return;const i={...I,...r.renders||{}},d=i[n.id]||i[n.name]||i[n.type];if(d){const b=d(n),D=u.renderSlot(l,n.id,{node:b,field:n},()=>[b]),B=u.renderSlot(l,n.name,{node:D,field:n},()=>[D]);return u.renderSlot(l,n.type,{node:B,field:n},()=>[B])}return u.h("span",{style:{color:"red"}},`No rendering found for ${n.id}`)},h=n=>{var i;n.type==="formItem"&&(n.value!==void 0?s.formData[n.id]===void 0&&(s.formData[n.id]=n.value):s.formData[n.id]===void 0&&(s.formData[n.id]=void 0)),(i=n.children)==null||i.forEach(d=>{h(d)})},_=()=>{h(s.field)},j=n=>{const i=d=>{if(d.id===n)return d;if(d.children)for(const b of d.children){const D=i(b);if(D)return D}};return i(s.field)};u.onMounted(()=>{if(F.value){const n=Object.entries(F.value);for(const[i,d]of n)A[i]=d}}),u.provide(ce,{readonly:s.readonly||!1,rootRef:F,formData:s.formData,getField:j,...r.injects||{}}),_();const A={getField:j,initFormData:_,renderItem:a,renderReadonly:g,renders:I};return w(A),()=>{var b;if(s.field.hidden)return;const n=(b=s.field.children)==null?void 0:b.map(D=>a(D)),i=u.h(t,{field:s.field,ref:F,...O},[u.renderSlot(l,"prepend",{field:s.field}),u.renderSlot(l,"default",{child:n,field:s.field},()=>[n]),u.renderSlot(l,"append",{field:s.field})]),d=u.renderSlot(l,s.field.id,{node:i,child:n,field:s.field},()=>[i]);return u.renderSlot(l,s.field.name,{node:i,child:n,field:s.field},()=>[d])}}});return{Render:t,FormRender:m,addComponent:o,removeComponent:v,components:c,hooks:y}}exports.RENDER_INJECTION_KEY=ce;exports.useFormRender=mo;exports.useRender=qe;