@foormjs/vue 0.0.3 → 0.2.0

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.
@@ -1 +1,3 @@
1
- (function(B,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(B=typeof globalThis<"u"?globalThis:B||self,e(B.index={},B.Vue))})(this,function(B,e){"use strict";function b(l,n){return S(l)?l(n):l}function D(l,n){if(typeof l=="object"&&l!==null){const r={};for(const[o,m]of Object.entries(l))r[o]=b(m,n);return r}return S(l)?l(n):l}function S(l){return typeof l=="function"}const E=e.defineComponent({__name:"VuilessField",props:e.mergeModels({rules:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const n=l,r=e.useModel(l,"modelValue"),o=e.inject("vuiless"),m=e.ref(),d=e.ref(!1),f=e.ref(!1),u=e.computed(()=>{var a;if((a=o==null?void 0:o.value)!=null&&a.firstValidation)switch(o.value.firstValidation){case"on-change":return o.value.firstSubmitHappened||d.value;case"touched-on-blur":return o.value.firstSubmitHappened||f.value&&d.value;case"on-blur":return o.value.firstSubmitHappened||f.value;case"on-submit":return o.value.firstSubmitHappened;case"none":return!1}return!1}),y=e.computed(()=>{if(u.value||m.value)return s()});e.watch([r],()=>{m.value=void 0,d.value=!0}),e.onUnmounted(()=>{var a;(a=o==null?void 0:o.value)==null||a.unregister(e.getCurrentInstance())}),o!=null&&o.value&&o.value.register(e.getCurrentInstance(),{validate:()=>(m.value=s(),m.value||!0),clearErrors:()=>{d.value=!1,f.value=!1,m.value=void 0},reset:()=>{r.value=""}});function s(){var a,t,h;if((a=n.rules)!=null&&a.length)for(const g of n.rules){const c=g(r.value,(t=o==null?void 0:o.value)==null?void 0:t.formData,(h=o==null?void 0:o.value)==null?void 0:h.formContext);if(c!==!0)return c||"Wrong value"}}function p(){f.value=!0}const i={v:e.computed({get:()=>r.value,set:a=>r.value=a})};return(a,t)=>{var h,g;return e.renderSlot(a.$slots,"default",{onBlur:p,error:y.value,formData:(h=e.unref(o))==null?void 0:h.formData,formContext:(g=e.unref(o))==null?void 0:g.formContext,model:i.v})}}}),x=e.defineComponent({__name:"VuilessForm",props:{formData:{},formContext:{},firstValidation:{default:"on-change"}},emits:["submit"],setup(l,{emit:n}){const r=l,o=n,m=new Map,d=e.ref(!1),f=e.computed(()=>({firstSubmitHappened:d.value,firstValidation:r.firstValidation,register:(p,i)=>{m.set(p,i)},unregister:p=>m.delete(p),formData:r.formData,formContext:r.formContext}));e.provide("vuiless",f);function u(){d.value=!1;for(const{clearErrors:p}of m.values())p()}async function y(){for(const{reset:p}of m.values())p();await e.nextTick(),u()}function s(){d.value=!0;let p=!1;if(r.firstValidation!=="none")for(const{validate:i}of m.values())i()!==!0&&(p=!0);p||o("submit",r.formData)}return(p,i)=>(e.openBlock(),e.createElementBlock("form",{onSubmit:e.withModifiers(s,["prevent"])},[e.renderSlot(p.$slots,"default",{clearErrors:u,reset:y})],32))}}),V=e.defineComponent({__name:"oo-field",props:{field:{},altAction:{},label:{},description:{},hint:{},placeholder:{},classes:{},styles:{},type:{},component:{},autocomplete:{},name:{},value:{},options:{},attrs:{},optional:{type:Boolean},disabled:{type:Boolean},hidden:{type:Boolean},length:{},validators:{}},setup(l){const n=l,r=e.inject("vuiless"),o=e.computed(()=>({v:r.value.formData[n.field],data:r==null?void 0:r.value.formData,context:r==null?void 0:r.value.formContext,entry:n})),m=e.computed(()=>b(n.label,o.value)),d=e.computed(()=>b(n.description,o.value)),f=e.computed(()=>b(n.hint,o.value)),u=e.computed(()=>b(n.placeholder,o.value)),y=e.computed(()=>b(n.optional,o.value)),s=e.computed(()=>b(n.disabled,o.value)),p=e.computed(()=>b(n.hidden,o.value)),i=e.computed(()=>b(n.options,o.value)),a=e.computed(()=>{const c=D(n.classes,o.value);return typeof c=="string"?{[c]:!0,disabled:s.value,required:!y.value}:{...c||{},disabled:s.value,required:!y.value}}),t=e.computed(()=>D(n.styles,o.value)),h=e.computed(()=>D(n.attrs,o.value)),g=e.computed(()=>{var c;return(c=n.validators)==null?void 0:c.map(k=>(C,A,F)=>k({v:C,data:A,context:F,entry:n}))});return(c,k)=>(e.openBlock(),e.createBlock(e.unref(E),{modelValue:e.unref(r).formData[n.field],"onUpdate:modelValue":k[0]||(k[0]=C=>e.unref(r).formData[n.field]=C),rules:g.value},{default:e.withCtx(C=>[e.renderSlot(c.$slots,"default",{onBlur:C.onBlur,error:C.error,model:C.model,formData:e.unref(r).formData,formContext:e.unref(r).formContext,label:m.value,description:d.value,hint:f.value,placeholder:u.value,classes:{...a.value,error:!!C.error},styles:t.value,optional:y.value,disabled:s.value,hidden:p.value,type:c.type,altAction:c.altAction,component:c.component,vName:c.name,field:c.field,options:i.value,length:c.length,required:!y.value,autocomplete:c.autocomplete,attrs:h.value})]),_:3},8,["modelValue","rules"]))}}),_={key:0},N={key:1},$={key:0},q=["onUpdate:modelValue","onBlur","placeholder","autocomplete","name","type"],w={class:"oo-error-slot"},j={key:4},v={key:5},M=["disabled"],P=e.defineComponent({__name:"oo-form",props:{form:{},formData:{},formContext:{},firstValidation:{},components:{},types:{}},emits:["submit"],setup(l,{emit:n}){const r=l,o=e.computed(()=>r.form.executable()),m=e.computed(()=>({v:void 0,data:f.value,context:r.formContext,entry:r})),d=e.ref({}),f=e.computed(()=>r.formData||d.value),u=e.computed(()=>b(o.value.submit.disabled,m.value)),y=n;return(s,p)=>(e.openBlock(),e.createBlock(e.unref(x),{"first-validation":s.firstValidation,onSubmit:p[0]||(p[0]=i=>y("submit",i)),"form-data":f.value,"form-context":s.formContext},{default:e.withCtx(i=>[e.renderSlot(s.$slots,"form.header",{clearErrors:i.clearErrors,reset:i.reset,title:o.value.title,formContext:s.formContext,disabled:u.value},()=>[o.value.title?(e.openBlock(),e.createElementBlock("h2",_,e.toDisplayString(o.value.title),1)):e.createCommentVNode("",!0)]),e.renderSlot(s.$slots,"form.before",{clearErrors:i.clearErrors,reset:i.reset}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value.entries,a=>(e.openBlock(),e.createBlock(V,e.normalizeProps(e.guardReactiveProps(a)),{default:e.withCtx(t=>[e.renderSlot(s.$slots,`field:${t.type}`,e.normalizeProps(e.guardReactiveProps(t)),()=>{var h,g,c;return[a.component&&((h=r.components)!=null&&h[a.component])?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.components[a.component]),e.mergeProps({key:0,"on-blur":t.onBlur,error:t.error,model:t.model,"form-data":t.formData,"form-context":t.formContext,label:t.label,description:t.description,hint:t.hint,placeholder:t.placeholder,class:t.classes,style:t.styles,optional:t.optional,required:!t.required,disabled:t.disabled,hidden:t.hidden,type:t.type,"alt-action":t.altAction,name:t.vName,field:t,options:t.options,length:t.length,autocomplete:t.autocomplete},t.attrs),null,16,["on-blur","error","model","form-data","form-context","label","description","hint","placeholder","class","style","optional","required","disabled","hidden","type","alt-action","name","field","options","length","autocomplete"])):a.component&&!((g=r.components)!=null&&g[a.component])?(e.openBlock(),e.createElementBlock("div",N," ["+e.toDisplayString(t.label)+'] Component "'+e.toDisplayString(t.component)+'" not supplied ',1)):(c=r.types)!=null&&c[a.type]?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.types[a.type]),e.mergeProps({key:2,"on-blur":t.onBlur,error:t.error,model:t.model,"form-data":t.formData,"form-context":t.formContext,label:t.label,description:t.description,hint:t.hint,placeholder:t.placeholder,class:t.classes,style:t.styles,optional:t.optional,required:!t.required,disabled:t.disabled,hidden:t.hidden,type:t.type,"alt-action":t.altAction,name:t.vName,field:t,options:t.options,length:t.length,autocomplete:t.autocomplete},t.attrs),null,16,["on-blur","error","model","form-data","form-context","label","description","hint","placeholder","class","style","optional","required","disabled","hidden","type","alt-action","name","field","options","length","autocomplete"])):["text","password","number"].includes(t.type)?(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(["oo-default-field",t.classes])},[e.createElementVNode("label",null,e.toDisplayString(t.label),1),t.description?(e.openBlock(),e.createElementBlock("span",$,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":k=>t.model.value=k,onBlur:t.onBlur,placeholder:t.placeholder,autocomplete:t.autocomplete,name:t.vName,type:t.type},null,40,q),[[e.vModelDynamic,t.model.value]]),e.createElementVNode("div",w,e.toDisplayString(t.error||t.hint),1)],2)):t.type==="paragraph"?(e.openBlock(),e.createElementBlock("p",j,e.toDisplayString(t.description),1)):(e.openBlock(),e.createElementBlock("div",v," ["+e.toDisplayString(t.label)+'] Not supported field type "'+e.toDisplayString(t.type)+'" '+e.toDisplayString(t.component),1))]})]),_:2},1040))),256)),e.renderSlot(s.$slots,"form.after",{clearErrors:i.clearErrors,reset:i.reset,disabled:u.value,formContext:s.formContext}),e.renderSlot(s.$slots,"form.submit",{disabled:u.value,clearErrors:i.clearErrors,reset:i.reset,formContext:s.formContext},()=>[e.createElementVNode("button",{disabled:u.value},e.toDisplayString(o.value.submit.text),9,M)]),e.renderSlot(s.$slots,"form.footer",{disabled:u.value,clearErrors:i.clearErrors,reset:i.reset,formContext:s.formContext})]),_:3},8,["first-validation","form-data","form-context"]))}});B.OoField=V,B.OoForm=P,Object.defineProperty(B,Symbol.toStringTag,{value:"Module"})});
1
+ (function(h,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(h=typeof globalThis<"u"?globalThis:h||self,e(h.index={},h.Vue))})(this,function(h,e){"use strict";var Z=Object.defineProperty;var ee=(h,e,f)=>e in h?Z(h,e,{enumerable:!0,configurable:!0,writable:!0,value:f}):h[e]=f;var L=(h,e,f)=>ee(h,typeof e!="symbol"?e+"":e,f);function f(l,o){return typeof l=="function"?l(o):l}function q(l){var o;const n={};for(const a of l)a.type!=="action"&&(n[a.field]=(o=a.value)!==null&&o!==void 0?o:void 0);return n}function w(l,o){return l.fields.some(n=>n.altAction===o)}function $(l,o){if(!l)return;const n={};for(const[a,s]of Object.entries(l))n[a]=f(s,o);return n}const T=e.defineComponent({__name:"VuilessField",props:e.mergeModels({rules:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const o=l,n=e.useModel(l,"modelValue"),a=e.inject("vuiless"),s=e.ref(),d=e.ref(!1),y=e.ref(!1),g=e.computed(()=>{var m;if((m=a==null?void 0:a.value)!=null&&m.firstValidation)switch(a.value.firstValidation){case"on-change":return a.value.firstSubmitHappened||d.value;case"touched-on-blur":return a.value.firstSubmitHappened||y.value&&d.value;case"on-blur":return a.value.firstSubmitHappened||y.value;case"on-submit":return a.value.firstSubmitHappened;case"none":return!1}return!1}),x=e.computed(()=>{if(g.value||s.value)return B()});e.watch([n],()=>{s.value=void 0,d.value=!0}),e.onUnmounted(()=>{var m;(m=a==null?void 0:a.value)==null||m.unregister(e.getCurrentInstance())}),a!=null&&a.value&&a.value.register(e.getCurrentInstance(),{validate:()=>(s.value=B(),s.value||!0),clearErrors:()=>{d.value=!1,y.value=!1,s.value=void 0},reset:()=>{n.value=""}});function B(){var m,r,i;if((m=o.rules)!=null&&m.length)for(const v of o.rules){const t=v(n.value,(r=a==null?void 0:a.value)==null?void 0:r.formData,(i=a==null?void 0:a.value)==null?void 0:i.formContext);if(t!==!0)return t||"Wrong value"}}function u(){y.value=!0}const c={v:e.computed({get:()=>n.value,set:m=>n.value=m})};return(m,r)=>{var i,v;return e.renderSlot(m.$slots,"default",{onBlur:u,error:x.value,formData:(i=e.unref(a))==null?void 0:i.formData,formContext:(v=e.unref(a))==null?void 0:v.formContext,model:c.v})}}}),M=e.defineComponent({__name:"VuilessForm",props:{formData:{},formContext:{},firstValidation:{default:"on-change"}},emits:["submit"],setup(l,{emit:o}){const n=l,a=o,s=new Map,d=e.ref(!1),y=e.computed(()=>({firstSubmitHappened:d.value,firstValidation:n.firstValidation,register:(u,c)=>{s.set(u,c)},unregister:u=>s.delete(u),formData:n.formData,formContext:n.formContext}));e.provide("vuiless",y);function g(){d.value=!1;for(const{clearErrors:u}of s.values())u()}async function x(){for(const{reset:u}of s.values())u();await e.nextTick(),g()}function B(){d.value=!0;let u=!1;if(n.firstValidation!=="none")for(const{validate:c}of s.values())c()!==!0&&(u=!0);u||a("submit",n.formData)}return(u,c)=>(e.openBlock(),e.createElementBlock("form",{onSubmit:e.withModifiers(B,["prevent"])},[e.renderSlot(u.$slots,"default",{clearErrors:g,reset:x})],32))}}),A=e.defineComponent({__name:"oo-field",props:{field:{},type:{},component:{},autocomplete:{},altAction:{},order:{},name:{},label:{type:[String,Function]},description:{type:[String,Function]},hint:{type:[String,Function]},placeholder:{type:[String,Function]},optional:{type:[Boolean,Function]},disabled:{type:[Boolean,Function]},hidden:{type:[Boolean,Function]},classes:{type:[String,Object,Function]},styles:{type:[String,Object,Function]},options:{type:[Array,Function]},attrs:{},value:{},validators:{},maxLength:{},minLength:{},min:{},max:{},error:{}},setup(l){const o=l,n=e.inject("vuiless"),a=e.computed(()=>({v:n.value.formData[o.field],data:n.value.formData,context:n.value.formContext??{}})),s=e.computed(()=>f(o.optional,a.value)),d=e.computed(()=>f(o.disabled,a.value)),y=e.computed(()=>f(o.hidden,a.value)),g=e.computed(()=>({...a.value,entry:{field:o.field,type:o.type,component:o.component,name:o.name||o.field,disabled:d.value,optional:s.value,hidden:y.value}})),x=e.computed(()=>f(o.label,g.value)),B=e.computed(()=>f(o.description,g.value)),u=e.computed(()=>f(o.hint,g.value)),c=e.computed(()=>f(o.placeholder,g.value)),m=e.computed(()=>f(o.options,g.value)),r=e.computed(()=>{const S=f(o.classes,g.value);return typeof S=="string"?{[S]:!0,disabled:d.value,required:!s.value}:{...S||{},disabled:d.value,required:!s.value}}),i=e.computed(()=>f(o.styles,g.value)),v=e.computed(()=>$(o.attrs,g.value)),t=e.computed(()=>o.validators.map(S=>(D,b,C)=>S({v:D,data:b,context:C??{},entry:g.value.entry})));return(S,D)=>(e.openBlock(),e.createBlock(e.unref(T),{modelValue:e.unref(n).formData[o.field],"onUpdate:modelValue":D[0]||(D[0]=b=>e.unref(n).formData[o.field]=b),rules:t.value},{default:e.withCtx(b=>[e.renderSlot(S.$slots,"default",{onBlur:b.onBlur,error:l.error||b.error,model:b.model,formData:e.unref(n).formData,formContext:e.unref(n).formContext,label:x.value,description:B.value,hint:u.value,placeholder:c.value,classes:{...r.value,error:!!l.error||!!b.error},styles:i.value,optional:s.value,disabled:d.value,hidden:y.value,type:l.type,altAction:l.altAction,component:l.component,vName:l.name,field:l.field,options:m.value,maxLength:l.maxLength,required:!s.value,autocomplete:l.autocomplete,attrs:v.value})]),_:3},8,["modelValue","rules"]))}}),N={key:0},j={key:1},I={key:0},O=["onUpdate:modelValue","onBlur","placeholder","autocomplete","name","type"],U={class:"oo-error-slot"},P={key:4},H={key:5},z=["disabled"],G=e.defineComponent({__name:"oo-form",props:{form:{},formData:{},formContext:{},firstValidation:{},components:{},types:{},errors:{}},emits:["submit","action","unsupported-action"],setup(l,{emit:o}){const n=l,a=e.ref({}),s=e.computed(()=>n.formData||a.value),d=e.computed(()=>({v:void 0,data:s.value,context:n.formContext??{}})),y=e.computed(()=>f(n.form.title,d.value)),g=e.computed(()=>f(n.form.submit.text,d.value)),x=e.computed(()=>f(n.form.submit.disabled,d.value));function B(c){w(n.form,c)?u("action",c,s.value):u("unsupported-action",c,s.value)}const u=o;return(c,m)=>(e.openBlock(),e.createBlock(e.unref(M),{"first-validation":l.firstValidation,onSubmit:m[0]||(m[0]=r=>u("submit",r)),"form-data":s.value,"form-context":l.formContext},{default:e.withCtx(r=>[e.renderSlot(c.$slots,"form.header",{clearErrors:r.clearErrors,reset:r.reset,title:y.value,formContext:l.formContext,disabled:x.value},()=>[y.value?(e.openBlock(),e.createElementBlock("h2",N,e.toDisplayString(y.value),1)):e.createCommentVNode("",!0)]),e.renderSlot(c.$slots,"form.before",{clearErrors:r.clearErrors,reset:r.reset}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.form.fields,i=>{var v;return e.openBlock(),e.createBlock(A,e.mergeProps({key:i.field},{ref_for:!0},i,{error:(v=l.errors)==null?void 0:v[i.field]}),{default:e.withCtx(t=>[e.renderSlot(c.$slots,`field:${t.type}`,e.mergeProps({ref_for:!0},t),()=>{var S,D,b;return[i.component&&((S=n.components)!=null&&S[i.component])?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.components[i.component]),e.mergeProps({key:0,"on-blur":t.onBlur,error:t.error,model:t.model,"form-data":t.formData,"form-context":t.formContext,label:t.label,description:t.description,hint:t.hint,placeholder:t.placeholder,class:t.classes,style:t.styles,optional:t.optional,required:!t.required,disabled:t.disabled,hidden:t.hidden,type:t.type,"alt-action":t.altAction,name:t.vName,field:t,options:t.options,"max-length":t.maxLength,autocomplete:t.autocomplete,onAction:B},{ref_for:!0},t.attrs,{modelValue:t.model.value,"onUpdate:modelValue":C=>t.model.value=C}),null,16,["on-blur","error","model","form-data","form-context","label","description","hint","placeholder","class","style","optional","required","disabled","hidden","type","alt-action","name","field","options","max-length","autocomplete","modelValue","onUpdate:modelValue"])):i.component&&!((D=n.components)!=null&&D[i.component])?(e.openBlock(),e.createElementBlock("div",j," ["+e.toDisplayString(t.label)+'] Component "'+e.toDisplayString(t.component)+'" not supplied ',1)):(b=n.types)!=null&&b[i.type]?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.types[i.type]),e.mergeProps({key:2,"on-blur":t.onBlur,error:t.error,model:t.model,"form-data":t.formData,"form-context":t.formContext,label:t.label,description:t.description,hint:t.hint,placeholder:t.placeholder,class:t.classes,style:t.styles,optional:t.optional,required:!t.required,disabled:t.disabled,hidden:t.hidden,type:t.type,"alt-action":t.altAction,name:t.vName,field:t,options:t.options,"max-length":t.maxLength,autocomplete:t.autocomplete,onAction:B},{ref_for:!0},t.attrs,{modelValue:t.model.value,"onUpdate:modelValue":C=>t.model.value=C}),null,16,["on-blur","error","model","form-data","form-context","label","description","hint","placeholder","class","style","optional","required","disabled","hidden","type","alt-action","name","field","options","max-length","autocomplete","modelValue","onUpdate:modelValue"])):["text","password","number"].includes(t.type)?(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(["oo-default-field",t.classes])},[e.createElementVNode("label",null,e.toDisplayString(t.label),1),t.description?(e.openBlock(),e.createElementBlock("span",I,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":C=>t.model.value=C,onBlur:t.onBlur,placeholder:t.placeholder,autocomplete:t.autocomplete,name:t.vName,type:t.type},null,40,O),[[e.vModelDynamic,t.model.value]]),e.createElementVNode("div",U,e.toDisplayString(t.error||t.hint),1)],2)):t.type==="paragraph"?(e.openBlock(),e.createElementBlock("p",P,e.toDisplayString(t.description),1)):(e.openBlock(),e.createElementBlock("div",H," ["+e.toDisplayString(t.label)+'] Not supported field type "'+e.toDisplayString(t.type)+'" '+e.toDisplayString(t.component),1))]})]),_:2},1040,["error"])}),128)),e.renderSlot(c.$slots,"form.after",{clearErrors:r.clearErrors,reset:r.reset,disabled:x.value,formContext:l.formContext}),e.renderSlot(c.$slots,"form.submit",{disabled:x.value,text:g.value,clearErrors:r.clearErrors,reset:r.reset,formContext:l.formContext},()=>[e.createElementVNode("button",{disabled:x.value},e.toDisplayString(g.value),9,z)]),e.renderSlot(c.$slots,"form.footer",{disabled:x.value,clearErrors:r.clearErrors,reset:r.reset,formContext:l.formContext})]),_:3},8,["first-validation","form-data","form-context"]))}}),X={global:null,process:null,Buffer:null,require:null,__filename:null,__dirname:null,exports:null,module:null,setImmediate:null,clearImmediate:null,setTimeout:null,clearTimeout:null,setInterval:null,clearInterval:null,queueMicrotask:null,queueGlobalMicrotask:null,globalThis:null,window:null,self:null,document:null,localStorage:null,sessionStorage:null,indexedDB:null,caches:null,console:null,performance:null,fetch:null,XMLHttpRequest:null,Image:null,Audio:null,navigator:null,navigation:null,location:null,history:null,screen:null,requestAnimationFrame:null,cancelAnimationFrame:null,cancelIdleCallback:null,captureEvents:null,chrome:null,clientInformation:null,addEventListener:null,removeEventListener:null,blur:null,close:null,closed:null,confirm:null,alert:null,customElements:null,dispatchEvent:null,debug:null,focus:null,find:null,frames:null,getSelection:null,getScreenDetails:null,getEventListeners:null,keys:null,launchQueue:null,parent:null,postMessage:null,print:null,profile:null,profileEnd:null,prompt:null,queryLocalFonts:null,queryObjects:null,releaseEvents:null,reportError:null,resizeBy:null,resizeTo:null,scheduler:null,stop:null,scroll:null,scrollBy:null,scrollTo:null,scrollY:null,scrollX:null,top:null,eval:null,__ctx__:null};class Q{constructor(){L(this,"cache",new Map)}call(o,n){return this.getFn(o)(n)}getFn(o){let n=this.cache.get(o);return n||(n=R(o),this.cache.set(o,n)),n}}function R(l){const o=`with(__ctx__){
2
+ ${l}
3
+ }`,n=new Function("__ctx__",o);return a=>{const s=Object.freeze(Object.assign({},X,a));return n(s)}}const _=new Q;function k(l){const o=`return (${l})(v, data, context, entry)`;return _.getFn(o)}function F(l){const o=`return (${l})(data, context)`;return _.getFn(o)}function W(l){const o=`return (${l})(v, data, context)`;return _.getFn(o)}function V(l,o,n,a,s){const d=n.get(o);if(typeof d=="string")return a(d);const y=n.get(l);return y!==void 0?y:s}function Y(l){var o,n,a;const s=l.metadata,d=l.type.props,y=V("foorm.title","foorm.fn.title",s,F,""),g=V("foorm.submit.text","foorm.fn.submit.text",s,F,"Submit"),x=(()=>{const c=s.get("foorm.fn.submit.disabled");return typeof c=="string"?F(c):!1})(),B={text:g,disabled:x},u=[];for(const[c,m]of d.entries()){const r=m.metadata,i=(o=m.type)===null||o===void 0?void 0:o.tags,v=r.get("foorm.type"),t=(n=i==null?void 0:i.has("action"))!==null&&n!==void 0?n:!1,S=(a=i==null?void 0:i.has("paragraph"))!==null&&a!==void 0?a:!1,D=v??(t?"action":S?"paragraph":"text"),b=[],C=r.get("foorm.validate");if(C){const p=Array.isArray(C)?C:[C];for(const E of p)typeof E=="string"&&b.push(W(E))}const K={field:c,type:D,component:r.get("foorm.component"),autocomplete:r.get("foorm.autocomplete"),altAction:r.get("foorm.altAction"),order:r.get("foorm.order"),name:c,label:V("meta.label","foorm.fn.label",r,k,c),description:V("meta.description","foorm.fn.description",r,k,""),hint:V("meta.hint","foorm.fn.hint",r,k,""),placeholder:V("meta.placeholder","foorm.fn.placeholder",r,k,""),optional:(()=>{var p;const E=r.get("foorm.fn.optional");return typeof E=="string"?k(E):(p=m.optional)!==null&&p!==void 0?p:!1})(),disabled:(()=>{const p=r.get("foorm.fn.disabled");return typeof p=="string"?k(p):r.get("foorm.disabled")!==void 0})(),hidden:(()=>{const p=r.get("foorm.fn.hidden");return typeof p=="string"?k(p):r.get("foorm.hidden")!==void 0})(),classes:(()=>{const p=r.get("foorm.fn.classes");if(typeof p=="string")return k(p)})(),styles:(()=>{const p=r.get("foorm.fn.styles");if(typeof p=="string")return k(p)})(),options:(()=>{const p=r.get("foorm.fn.options");if(typeof p=="string")return k(p)})(),value:r.get("foorm.value"),validators:b,maxLength:r.get("expect.maxLength"),minLength:r.get("expect.minLength"),min:r.get("expect.min"),max:r.get("expect.max")};u.push(K)}return u.sort((c,m)=>{var r,i;return((r=c.order)!==null&&r!==void 0?r:1/0)-((i=m.order)!==null&&i!==void 0?i:1/0)}),{title:y,submit:B,fields:u}}function J(l){const o=Y(l),n=e.reactive(q(o.fields));return{form:o,formData:n}}h.OoField=A,h.OoForm=G,h.useFoorm=J,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foormjs/vue",
3
- "version": "0.0.3",
3
+ "version": "0.2.0",
4
4
  "description": "@foormjs/vue",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -39,27 +39,38 @@
39
39
  "url": "https://github.com/foormjs/foormjs/issues"
40
40
  },
41
41
  "homepage": "https://github.com/foormjs/foormjs/tree/main/packages/vue#readme",
42
+ "dependencies": {
43
+ "vue": "^3.5.28",
44
+ "vuiless-forms": "^0.0.3",
45
+ "@foormjs/atscript": "^0.2.0",
46
+ "foorm": "^0.2.0"
47
+ },
48
+ "peerDependencies": {
49
+ "@atscript/core": "^0.1.6",
50
+ "@atscript/typescript": "^0.1.6"
51
+ },
52
+ "devDependencies": {
53
+ "@atscript/core": "^0.1.6",
54
+ "@atscript/typescript": "^0.1.6",
55
+ "@playwright/test": "^1.58.2",
56
+ "@tsconfig/node20": "^20.1.9",
57
+ "@types/node": "^20.19.33",
58
+ "@vitejs/plugin-vue": "^5.2.4",
59
+ "@vue/tsconfig": "^0.5.1",
60
+ "npm-run-all2": "^6.2.6",
61
+ "typescript": "~5.4.5",
62
+ "unplugin-atscript": "^0.1.3",
63
+ "vite": "^5.4.21",
64
+ "vite-plugin-dts": "^3.9.1",
65
+ "vue-tsc": "^2.2.12"
66
+ },
42
67
  "scripts": {
43
68
  "dev": "vite",
44
69
  "build": "run-p type-check \"build-only {@}\" --",
45
70
  "preview": "vite preview",
46
71
  "build-only": "vite build",
47
- "type-check": "vue-tsc --build --force"
48
- },
49
- "dependencies": {
50
- "foorm": "0.0.3",
51
- "vue": "^3.3.9",
52
- "vuiless-forms": "^0.0.3"
53
- },
54
- "devDependencies": {
55
- "@tsconfig/node20": "^20.1.2",
56
- "@types/node": "^20.11.28",
57
- "@vitejs/plugin-vue": "^5.0.4",
58
- "@vue/tsconfig": "^0.5.1",
59
- "npm-run-all2": "^6.1.2",
60
- "typescript": "~5.4.0",
61
- "vite": "^5.1.6",
62
- "vite-plugin-dts": "^3.8.1",
63
- "vue-tsc": "^2.0.6"
72
+ "type-check": "vue-tsc --build --force",
73
+ "pub": "pnpm publish --access public --no-git-checks",
74
+ "test:e2e": "playwright test"
64
75
  }
65
- }
76
+ }