@foormjs/vue 0.2.2 → 0.2.4
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.
- package/dist/index.d.ts +205 -127
- package/dist/index.js +267 -954
- package/dist/index.umd.cjs +1 -3
- package/package.json +4 -4
package/dist/index.umd.cjs
CHANGED
|
@@ -1,3 +1 @@
|
|
|
1
|
-
(function(k,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(k=typeof globalThis<"u"?globalThis:k||self,e(k.index={},k.Vue))})(this,function(k,e){"use strict";var we=Object.defineProperty;var Ae=(k,e,V)=>e in k?we(k,e,{enumerable:!0,configurable:!0,writable:!0,value:V}):k[e]=V;var v=(k,e,V)=>Ae(k,typeof e!="symbol"?e+"":e,V);function V(n,t){return typeof n=="function"?n(t):n}const O=new Set(["action","paragraph"]);function U(n){var t;const o={};for(const s of n)if(!O.has(s.type)){const a={v:void 0,data:o,context:{},entry:{field:s.field,type:s.type,component:s.component,name:s.name||s.field}};o[s.field]=(t=V(s.value,a))!==null&&t!==void 0?t:void 0}return o}function q(n,t){return n.fields.some(o=>o.altAction===t)}function M(n,t){if(!n)return;const o={};for(const[s,a]of Object.entries(n))o[s]=V(a,t);return o}const I=e.defineComponent({__name:"VuilessField",props:e.mergeModels({rules:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.useModel(n,"modelValue"),s=e.inject("vuiless"),a=e.ref(),l=e.ref(!1),i=e.ref(!1),d=e.computed(()=>{var p;if((p=s==null?void 0:s.value)!=null&&p.firstValidation)switch(s.value.firstValidation){case"on-change":return s.value.firstSubmitHappened||l.value;case"touched-on-blur":return s.value.firstSubmitHappened||i.value&&l.value;case"on-blur":return s.value.firstSubmitHappened||i.value;case"on-submit":return s.value.firstSubmitHappened;case"none":return!1}return!1}),f=e.computed(()=>{if(d.value||a.value)return u()});e.watch([o],()=>{a.value=void 0,l.value=!0}),e.onUnmounted(()=>{var p;(p=s==null?void 0:s.value)==null||p.unregister(e.getCurrentInstance())}),s!=null&&s.value&&s.value.register(e.getCurrentInstance(),{validate:()=>(a.value=u(),a.value||!0),clearErrors:()=>{l.value=!1,i.value=!1,a.value=void 0},reset:()=>{o.value=""}});function u(){var p,m,S;if((p=t.rules)!=null&&p.length)for(const g of t.rules){const x=g(o.value,(m=s==null?void 0:s.value)==null?void 0:m.formData,(S=s==null?void 0:s.value)==null?void 0:S.formContext);if(x!==!0)return x||"Wrong value"}}function h(){i.value=!0}const y={v:e.computed({get:()=>o.value,set:p=>o.value=p})};return(p,m)=>{var S,g;return e.renderSlot(p.$slots,"default",{onBlur:h,error:f.value,formData:(S=e.unref(s))==null?void 0:S.formData,formContext:(g=e.unref(s))==null?void 0:g.formContext,model:y.v})}}}),z=e.defineComponent({__name:"VuilessForm",props:{formData:{},formContext:{},firstValidation:{default:"on-change"}},emits:["submit"],setup(n,{emit:t}){const o=n,s=t,a=new Map,l=e.ref(!1),i=e.computed(()=>({firstSubmitHappened:l.value,firstValidation:o.firstValidation,register:(h,y)=>{a.set(h,y)},unregister:h=>a.delete(h),formData:o.formData,formContext:o.formContext}));e.provide("vuiless",i);function d(){l.value=!1;for(const{clearErrors:h}of a.values())h()}async function f(){for(const{reset:h}of a.values())h();await e.nextTick(),d()}function u(){l.value=!0;let h=!1;if(o.firstValidation!=="none")for(const{validate:y}of a.values())y()!==!0&&(h=!0);h||s("submit",o.formData)}return(h,y)=>(e.openBlock(),e.createElementBlock("form",{onSubmit:e.withModifiers(u,["prevent"])},[e.renderSlot(h.$slots,"default",{clearErrors:d,reset:f})],32))}}),F=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]},readonly:{type:[Boolean,Function]},classes:{type:[String,Object,Function]},styles:{type:[String,Object,Function]},options:{type:[Array,Function]},attrs:{},value:{type:Function},validators:{},maxLength:{},minLength:{},min:{},max:{},error:{}},setup(n){const t=n,o=e.inject("vuiless");function s(c,b,B){return typeof c=="function"?e.computed(()=>c(b.value)):c??B}const a=c=>typeof c=="object"&&c!==null&&"value"in c?c.value:c,l=e.computed(()=>({v:o.value.formData[t.field],data:o.value.formData,context:o.value.formContext??{},entry:void 0})),i=s(t.optional,l,!1),d=s(t.disabled,l,!1),f=s(t.hidden,l,!1),u=s(t.readonly,l,!1),h=e.computed(()=>!a(i)),y=e.computed(()=>({v:o.value.formData[t.field],data:o.value.formData,context:o.value.formContext??{},entry:{field:t.field,type:t.type,component:t.component,name:t.name||t.field,optional:a(i),disabled:a(d),hidden:a(f),readonly:a(u)}})),p=s(t.label,y,void 0),m=s(t.description,y,void 0),S=s(t.hint,y,void 0),g=s(t.placeholder,y,void 0),x=s(t.options,y,void 0),_=s(t.styles,y,void 0),r=e.computed(()=>{const c=typeof t.classes=="function"?t.classes(y.value):t.classes;return typeof c=="string"?{[c]:!0,disabled:a(d),required:!a(i)}:{...c,disabled:a(d),required:!a(i)}});function C(c,b){return{...r.value,error:!!c||!!b}}const $=e.computed(()=>M(t.attrs,y.value));if(typeof t.value=="function"){const c=e.computed(()=>{if(a(u))return t.value(y.value)});e.watch(c,b=>{b!==void 0&&a(u)&&(o.value.formData[t.field]=b)},{immediate:!0})}const w=t.validators.map(c=>(b,B,P)=>c({v:b,data:B,context:P??{},entry:y.value.entry}));return(c,b)=>(e.openBlock(),e.createBlock(e.unref(I),{modelValue:e.unref(o).formData[t.field],"onUpdate:modelValue":b[0]||(b[0]=B=>e.unref(o).formData[t.field]=B),rules:e.unref(w)},{default:e.withCtx(B=>[e.renderSlot(c.$slots,"default",{onBlur:B.onBlur,error:n.error||B.error,model:B.model,formData:e.unref(o).formData,formContext:e.unref(o).formContext,label:e.unref(p),description:e.unref(m),hint:e.unref(S),placeholder:e.unref(g),classes:C(n.error,B.error),styles:e.unref(_),optional:e.unref(i),disabled:e.unref(d),hidden:e.unref(f),readonly:e.unref(u),type:n.type,altAction:n.altAction,component:n.component,vName:n.name,field:n.field,options:e.unref(x),maxLength:n.maxLength,required:h.value,autocomplete:n.autocomplete,attrs:$.value})]),_:3},8,["modelValue","rules"]))}}),H={key:0},R={key:1},G={key:0},K=["onUpdate:modelValue","onBlur","placeholder","autocomplete","name","type","disabled","readonly"],W={class:"oo-error-slot"},X={key:4},Y={key:0},Q=["onUpdate:modelValue","onBlur","name","disabled","readonly"],J={key:0,value:"",disabled:""},Z=["value"],ee={class:"oo-error-slot"},te={class:"oo-field-label"},oe={key:0},ne={class:"oo-radio-group"},re=["value","onUpdate:modelValue","onBlur","name","disabled","readonly"],se={class:"oo-error-slot"},ae=["onUpdate:modelValue","onBlur","name","disabled","readonly"],le={key:0},ie={class:"oo-error-slot"},ce=["onClick"],pe={key:9},de=["disabled"],ue=e.defineComponent({__name:"oo-form",props:{form:{},formData:{},formContext:{},firstValidation:{},components:{},types:{},errors:{}},emits:["submit","action","unsupported-action"],setup(n,{emit:t}){const o=n,s=e.ref({}),a=e.computed(()=>o.formData||s.value),l=e.computed(()=>({v:void 0,data:a.value,context:o.formContext??{},entry:void 0})),i=e.computed(()=>V(o.form.title,l.value)),d=e.computed(()=>V(o.form.submit.text,l.value)),f=e.computed(()=>V(o.form.submit.disabled,l.value));function u(m){q(o.form,m)?h("action",m,a.value):h("unsupported-action",m,a.value)}const h=t;function y(m){return typeof m=="string"?m:m.key}function p(m){return typeof m=="string"?m:m.label}return(m,S)=>(e.openBlock(),e.createBlock(e.unref(z),{"first-validation":n.firstValidation,onSubmit:S[0]||(S[0]=g=>h("submit",g)),"form-data":a.value,"form-context":n.formContext},{default:e.withCtx(g=>[e.renderSlot(m.$slots,"form.header",{clearErrors:g.clearErrors,reset:g.reset,title:i.value,formContext:n.formContext,disabled:f.value},()=>[i.value?(e.openBlock(),e.createElementBlock("h2",H,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0)]),e.renderSlot(m.$slots,"form.before",{clearErrors:g.clearErrors,reset:g.reset}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.form.fields,x=>{var _;return e.openBlock(),e.createBlock(F,e.mergeProps({key:x.field},{ref_for:!0},x,{error:(_=n.errors)==null?void 0:_[x.field]}),{default:e.withCtx(r=>[e.renderSlot(m.$slots,`field:${r.type}`,e.mergeProps({ref_for:!0},r),()=>{var C,$,w;return[x.component&&((C=o.components)!=null&&C[x.component])?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.components[x.component]),e.mergeProps({key:0,"on-blur":r.onBlur,error:r.error,model:r.model,"form-data":r.formData,"form-context":r.formContext,label:r.label,description:r.description,hint:r.hint,placeholder:r.placeholder,class:r.classes,style:r.styles,optional:r.optional,required:!r.required,disabled:r.disabled,hidden:r.hidden,type:r.type,"alt-action":r.altAction,name:r.vName,field:r,options:r.options,"max-length":r.maxLength,autocomplete:r.autocomplete,onAction:u},{ref_for:!0},r.attrs,{modelValue:r.model.value,"onUpdate:modelValue":c=>r.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"])):x.component&&!(($=o.components)!=null&&$[x.component])?(e.openBlock(),e.createElementBlock("div",R," ["+e.toDisplayString(r.label)+'] Component "'+e.toDisplayString(r.component)+'" not supplied ',1)):(w=o.types)!=null&&w[x.type]?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.types[x.type]),e.mergeProps({key:2,"on-blur":r.onBlur,error:r.error,model:r.model,"form-data":r.formData,"form-context":r.formContext,label:r.label,description:r.description,hint:r.hint,placeholder:r.placeholder,class:r.classes,style:r.styles,optional:r.optional,required:!r.required,disabled:r.disabled,hidden:r.hidden,type:r.type,"alt-action":r.altAction,name:r.vName,field:r,options:r.options,"max-length":r.maxLength,autocomplete:r.autocomplete,onAction:u},{ref_for:!0},r.attrs,{modelValue:r.model.value,"onUpdate:modelValue":c=>r.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(r.type)?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(["oo-default-field",r.classes])},[e.createElementVNode("label",null,e.toDisplayString(r.label),1),r.description?(e.openBlock(),e.createElementBlock("span",G,e.toDisplayString(r.description),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",e.mergeProps({"onUpdate:modelValue":c=>r.model.value=c,onBlur:r.onBlur,placeholder:r.placeholder,autocomplete:r.autocomplete,name:r.vName,type:r.type,disabled:r.disabled,readonly:r.readonly},{ref_for:!0},r.attrs),null,16,K),[[e.vModelDynamic,r.model.value]]),e.createElementVNode("div",W,e.toDisplayString(r.error||r.hint),1)],2)),[[e.vShow,!r.hidden]]):r.type==="paragraph"?(e.openBlock(),e.createElementBlock("p",X,e.toDisplayString(r.description),1)):r.type==="select"?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:5,class:e.normalizeClass(["oo-default-field",r.classes])},[e.createElementVNode("label",null,e.toDisplayString(r.label),1),r.description?(e.openBlock(),e.createElementBlock("span",Y,e.toDisplayString(r.description),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("select",e.mergeProps({"onUpdate:modelValue":c=>r.model.value=c,onBlur:r.onBlur,name:r.vName,disabled:r.disabled,readonly:r.readonly},{ref_for:!0},r.attrs),[r.placeholder?(e.openBlock(),e.createElementBlock("option",J,e.toDisplayString(r.placeholder),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.options,c=>(e.openBlock(),e.createElementBlock("option",{key:y(c),value:y(c)},e.toDisplayString(p(c)),9,Z))),128))],16,Q),[[e.vModelSelect,r.model.value]]),e.createElementVNode("div",ee,e.toDisplayString(r.error||r.hint),1)],2)),[[e.vShow,!r.hidden]]):r.type==="radio"?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:6,class:e.normalizeClass(["oo-default-field oo-radio-field",r.classes])},[e.createElementVNode("span",te,e.toDisplayString(r.label),1),r.description?(e.openBlock(),e.createElementBlock("span",oe,e.toDisplayString(r.description),1)):e.createCommentVNode("",!0),e.createElementVNode("div",ne,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.options,c=>(e.openBlock(),e.createElementBlock("label",{key:y(c)},[e.withDirectives(e.createElementVNode("input",e.mergeProps({type:"radio",value:y(c),"onUpdate:modelValue":b=>r.model.value=b,onBlur:r.onBlur,name:r.vName,disabled:r.disabled,readonly:r.readonly},{ref_for:!0},r.attrs),null,16,re),[[e.vModelRadio,r.model.value]]),e.createTextVNode(" "+e.toDisplayString(p(c)),1)]))),128))]),e.createElementVNode("div",se,e.toDisplayString(r.error||r.hint),1)],2)),[[e.vShow,!r.hidden]]):r.type==="checkbox"?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:7,class:e.normalizeClass(["oo-default-field oo-checkbox-field",r.classes])},[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",e.mergeProps({type:"checkbox","onUpdate:modelValue":c=>r.model.value=c,onBlur:r.onBlur,name:r.vName,disabled:r.disabled,readonly:r.readonly},{ref_for:!0},r.attrs),null,16,ae),[[e.vModelCheckbox,r.model.value]]),e.createTextVNode(" "+e.toDisplayString(r.label),1)]),r.description?(e.openBlock(),e.createElementBlock("span",le,e.toDisplayString(r.description),1)):e.createCommentVNode("",!0),e.createElementVNode("div",ie,e.toDisplayString(r.error||r.hint),1)],2)),[[e.vShow,!r.hidden]]):r.type==="action"?(e.openBlock(),e.createElementBlock("div",{key:8,class:e.normalizeClass(["oo-default-field oo-action-field",r.classes])},[e.createElementVNode("button",{type:"button",onClick:c=>u(r.altAction)},e.toDisplayString(r.label),9,ce)],2)):(e.openBlock(),e.createElementBlock("div",pe," ["+e.toDisplayString(r.label)+'] Not supported field type "'+e.toDisplayString(r.type)+'" '+e.toDisplayString(r.component),1))]})]),_:2},1040,["error"])}),128)),e.renderSlot(m.$slots,"form.after",{clearErrors:g.clearErrors,reset:g.reset,disabled:f.value,formContext:n.formContext}),e.renderSlot(m.$slots,"form.submit",{disabled:f.value,text:d.value,clearErrors:g.clearErrors,reset:g.reset,formContext:n.formContext},()=>[e.createElementVNode("button",{disabled:f.value},e.toDisplayString(d.value),9,de)]),e.renderSlot(m.$slots,"form.footer",{disabled:f.value,clearErrors:g.clearErrors,reset:g.reset,formContext:n.formContext})]),_:3},8,["first-validation","form-data","form-context"]))}}),me={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 fe{constructor(){v(this,"cache",new Map)}call(t,o){return this.getFn(t)(o)}getFn(t){let o=this.cache.get(t);return o||(o=he(t),this.cache.set(t,o)),o}}function he(n){const t=`with(__ctx__){
|
|
2
|
-
${n}
|
|
3
|
-
}`,o=new Function("__ctx__",t);return s=>{const a=Object.freeze(Object.assign({},me,s));return o(a)}}const A=new fe;function N(n){const t=`return (${n})(v, data, context, entry)`;return A.getFn(t)}function T(n){const t=`return (${n})(data, context)`;return A.getFn(t)}function ye(n){const t=`return (${n})(v, data, context, entry)`;return A.getFn(t)}function ge(n,t){switch(n.type.kind){case"":{const o=n;return t.phantom&&o.type.designType==="phantom"?t.phantom(o):t.final(o)}case"object":return t.object(n);case"array":return t.array(n);case"union":return t.union(n);case"intersection":return t.intersection(n);case"tuple":return t.tuple(n);default:throw new Error(`Unknown type kind "${n.type.kind}"`)}}function D(n,t,o){return t in n?Object.defineProperty(n,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[t]=o,n}const j=new Map;var be=class{isLimitExceeded(){return this.stackErrors.length>0?this.stackErrors[this.stackErrors.length-1].length>=this.opts.errorLimit:this.errors.length>=this.opts.errorLimit}push(n){this.stackPath.push(n),this.stackErrors.push([])}pop(n){this.stackPath.pop();const t=this.stackErrors.pop();return n&&(t!=null&&t.length)&&t.forEach(o=>{this.error(o.message,o.path,o.details)}),t}clear(){this.stackErrors[this.stackErrors.length-1]=[]}error(n,t,o){const s=this.stackErrors[this.stackErrors.length-1]||this.errors,a={path:t||this.path,message:n};o!=null&&o.length&&(a.details=o),s.push(a)}throw(){throw new xe(this.errors)}validate(n,t){this.push(""),this.errors=[],this.stackErrors=[];const o=this.validateSafe(this.def,n);if(this.pop(!o),!o){if(t)return!1;this.throw()}return!0}validateSafe(n,t){if(this.isLimitExceeded())return!1;if(!ke(n))throw new Error("Can not validate not-annotated type");if(typeof this.opts.replace=="function"&&(n=this.opts.replace(n,this.path)),n.optional&&t===void 0)return!0;for(const o of this.opts.plugins){const s=o(this,n,t);if(s===!1||s===!0)return s}return this.validateAnnotatedType(n,t)}get path(){return this.stackPath.slice(1).join(".")}validateAnnotatedType(n,t){return ge(n,{final:o=>this.validatePrimitive(o,t),phantom:()=>!0,object:o=>this.validateObject(o,t),array:o=>this.validateArray(o,t),union:o=>this.validateUnion(o,t),intersection:o=>this.validateIntersection(o,t),tuple:o=>this.validateTuple(o,t)})}validateUnion(n,t){let o=0;const s=[];for(const l of n.type.items){if(this.push(`[${l.type.kind||l.type.designType}(${o})]`),this.validateSafe(l,t))return this.pop(!1),!0;const i=this.pop(!1);i&&s.push(...i),o++}this.clear();const a=n.type.items.map((l,i)=>`[${l.type.kind||l.type.designType}(${i})]`).join(", ");return this.error(`Value does not match any of the allowed types: ${a}`,void 0,s),!1}validateIntersection(n,t){for(const o of n.type.items)if(!this.validateSafe(o,t))return!1;return!0}validateTuple(n,t){if(!Array.isArray(t)||t.length!==n.type.items.length)return this.error(`Expected array of length ${n.type.items.length}`),!1;let o=0;for(const s of n.type.items){if(this.push(`[${o}]`),!this.validateSafe(s,t[o]))return this.pop(!0),!1;this.pop(!1),o++}return!0}validateArray(n,t){if(!Array.isArray(t))return this.error("Expected array"),!1;const o=n.metadata.get("expect.minLength");if(o){const i=typeof o=="number"?o:o.length;if(t.length<i){const d=typeof o=="object"&&o.message?o.message:`Expected minimum length of ${i} items, got ${t.length} items`;return this.error(d),!1}}const s=n.metadata.get("expect.maxLength");if(s){const i=typeof s=="number"?s:s.length;if(t.length>i){const d=typeof s=="object"&&s.message?s.message:`Expected maximum length of ${i} items, got ${t.length} items`;return this.error(d),!1}}let a=0,l=!0;for(const i of t){if(this.push(`[${a}]`),this.validateSafe(n.type.of,i))this.pop(!1);else if(l=!1,this.pop(!0),this.isLimitExceeded())return!1;a++}return l}validateObject(n,t){if(typeof t!="object"||t===null||Array.isArray(t))return this.error("Expected object"),!1;let o=!0;const s=new Set(Object.keys(t)),a=new Set,l=new Set;if(this.opts.skipList){const d=this.stackPath.length>1?`${this.path}.`:"";this.opts.skipList.forEach(f=>{if(f.startsWith(d)){const u=f.slice(d.length);l.add(u),s.delete(u)}})}let i=!1;typeof this.opts.partial=="function"&&(i=this.opts.partial(n,this.path));for(const[d,f]of n.type.props.entries())if(!(l.has(d)||Ee(f))&&(a.add(d),!(t[d]===void 0&&(i||this.opts.partial==="deep"||this.opts.partial===!0&&this.stackPath.length<=1)))){if(this.push(d),this.validateSafe(f,t[d]))this.pop(!1);else if(o=!1,this.pop(!0),this.isLimitExceeded())return!1}for(const d of s)if(!a.has(d)){const f=[];for(const{pattern:u,def:h}of n.type.propsPatterns)u.test(d)&&f.push({pattern:u,def:h});if(f.length){let u=!1;for(const{def:h}of f)if(this.validateSafe(h,t[d])){this.pop(!1),u=!0;break}if(!u&&(this.push(d),this.validateSafe(f[0].def,t[d]),this.pop(!0),o=!1,this.isLimitExceeded()))return!1}else if(this.opts.unknwonProps!=="ignore")if(this.opts.unknwonProps==="error"){if(this.push(d),this.error("Unexpected property"),this.pop(!0),this.isLimitExceeded())return!1;o=!1}else this.opts.unknwonProps==="strip"&&delete t[d]}return o}validatePrimitive(n,t){if(typeof n.type.value<"u")return t!==n.type.value?(this.error(`Expected ${n.type.value}, got ${t}`),!1):!0;const o=Array.isArray(t)?"array":typeof t;switch(n.type.designType){case"never":return this.error("This type is impossible, must be an internal problem"),!1;case"any":return!0;case"string":return o!==n.type.designType?(this.error(`Expected ${n.type.designType}, got ${o}`),!1):this.validateString(n,t);case"number":return o!==n.type.designType?(this.error(`Expected ${n.type.designType}, got ${o}`),!1):this.validateNumber(n,t);case"boolean":return o!==n.type.designType?(this.error(`Expected ${n.type.designType}, got ${o}`),!1):!0;case"undefined":return t!==void 0?(this.error(`Expected ${n.type.designType}, got ${o}`),!1):!0;case"null":return t!==null?(this.error(`Expected ${n.type.designType}, got ${o}`),!1):!0;default:throw new Error(`Unknown type "${n.type.designType}"`)}}validateString(n,t){const o=n.metadata.get("expect.minLength");if(o){const l=typeof o=="number"?o:o.length;if(t.length<l){const i=typeof o=="object"&&o.message?o.message:`Expected minimum length of ${l} characters, got ${t.length} characters`;return this.error(i),!1}}const s=n.metadata.get("expect.maxLength");if(s){const l=typeof s=="number"?s:s.length;if(t.length>l){const i=typeof s=="object"&&s.message?s.message:`Expected maximum length of ${l} characters, got ${t.length} characters`;return this.error(i),!1}}const a=n.metadata.get("expect.pattern");for(const{pattern:l,flags:i,message:d}of a||[]){if(!l)continue;const f=`${l}//${i||""}`;let u=j.get(f);if(u||(u=new RegExp(l,i),j.set(f,u)),!u.test(t))return this.error(d||`Value is expected to match pattern "${l}"`),!1}return!0}validateNumber(n,t){const o=n.metadata.get("expect.int");if(o&&t%1!==0){const l=typeof o=="object"&&o.message?o.message:`Expected integer, got ${t}`;return this.error(l),!1}const s=n.metadata.get("expect.min");if(s){const l=typeof s=="number"?s:s.minValue;if(t<l){const i=typeof s=="object"&&s.message?s.message:`Expected minimum ${l}, got ${t}`;return this.error(i),!1}}const a=n.metadata.get("expect.max");if(a){const l=typeof a=="number"?a:a.maxValue;if(t>l){const i=typeof a=="object"&&a.message?a.message:`Expected maximum ${l}, got ${t}`;return this.error(i),!1}}return!0}constructor(n,t){D(this,"def",void 0),D(this,"opts",void 0),D(this,"errors",void 0),D(this,"stackErrors",void 0),D(this,"stackPath",void 0),this.def=n,this.errors=[],this.stackErrors=[],this.stackPath=[],this.opts={partial:!1,unknwonProps:"error",errorLimit:10,...t,plugins:(t==null?void 0:t.plugins)||[]}}},xe=class extends Error{constructor(n){super(`${n[0].path?n[0].path+": ":""}${n[0].message}`),D(this,"errors",void 0),D(this,"name",void 0),this.errors=n,this.name="Validation Error"}};function ke(n){return n&&n.__is_atscript_annotated_type}function Ee(n){return n.type.kind===""&&n.type.designType==="phantom"}const Se=new Set(["action","paragraph","select","radio","checkbox"]);function Be(n){return(Array.isArray(n)?n:[n]).map(o=>{if(typeof o=="object"&&o!==null&&"label"in o){const{label:s,value:a}=o;return a!==void 0?{key:a,label:s}:s}return String(o)})}function E(n,t,o,s){const{transform:a,defaultValue:l,staticAsBoolean:i=!1,compiler:d=N}=s??{},f=o.get(n);if(typeof f=="string")return d(f);if(t!==void 0){const u=o.get(t);if(u!==void 0)return i?!0:a?a(u):u}return l}function Ve(n,t){var o,s,a,l;return{optional:(o=E("foorm.fn.optional",void 0,n))!==null&&o!==void 0?o:t??!1,disabled:(s=E("foorm.fn.disabled","foorm.disabled",n,{staticAsBoolean:!0}))!==null&&s!==void 0?s:!1,hidden:(a=E("foorm.fn.hidden","foorm.hidden",n,{staticAsBoolean:!0}))!==null&&a!==void 0?a:!1,readonly:(l=E("foorm.fn.readonly","foorm.readonly",n,{staticAsBoolean:!0}))!==null&&l!==void 0?l:!1}}function _e(n,t){return{label:E("foorm.fn.label","meta.label",n,{defaultValue:t}),description:E("foorm.fn.description","meta.description",n),hint:E("foorm.fn.hint","meta.hint",n),placeholder:E("foorm.fn.placeholder","meta.placeholder",n)}}function De(n){const t=n.get("foorm.attr"),o=n.get("foorm.fn.attr");if(!t&&!o)return;const s={};if(t){const a=Array.isArray(t)?t:[t];for(const l of a)if(typeof l=="object"&&l!==null&&"name"in l&&"value"in l){const{name:i,value:d}=l;s[i]=d}}if(o){const a=Array.isArray(o)?o:[o];for(const l of a)if(typeof l=="object"&&l!==null&&"name"in l&&"fn"in l){const{name:i,fn:d}=l;s[i]=N(d)}}return Object.keys(s).length>0?s:void 0}function Ce(n){var t,o;const s=n.metadata,a=n.type.props,l=E("foorm.fn.title","foorm.title",s,{compiler:T,defaultValue:""}),i=E("foorm.fn.submit.text","foorm.submit.text",s,{compiler:T,defaultValue:"Submit"}),d=E("foorm.fn.submit.disabled","foorm.submit.disabled",s,{compiler:T,defaultValue:!1}),f={text:i,disabled:d},u=[];for(const[h,y]of a.entries()){const p=y.metadata,m=(t=y.type)===null||t===void 0?void 0:t.tags,S=p.get("foorm.type"),g=m?[...m].find(c=>Se.has(c)):void 0,x=(o=S??g)!==null&&o!==void 0?o:"text",_=[],r=p.get("foorm.validate");if(r){const c=Array.isArray(r)?r:[r];for(const b of c)typeof b=="string"&&_.push(ye(b))}const C=p.get("expect.pattern")!==void 0||p.get("expect.min")!==void 0||p.get("expect.max")!==void 0||p.get("expect.minLength")!==void 0||p.get("expect.maxLength")!==void 0||p.get("expect.int")!==void 0,$=m&&m.size>0;if(C||$){const c=new be(y);_.push(b=>{var B;if(c.validate(b.v,!0))return!0;const L=(B=c.errors)===null||B===void 0?void 0:B[0];return(L==null?void 0:L.message)||"Validation failed"})}const w=Object.assign(Object.assign(Object.assign({field:h,type:x,component:p.get("foorm.component"),autocomplete:p.get("foorm.autocomplete"),altAction:p.get("foorm.altAction"),order:p.get("foorm.order"),name:h},_e(p,h)),Ve(p,y.optional)),{classes:E("foorm.fn.classes",void 0,p),styles:E("foorm.fn.styles",void 0,p),options:E("foorm.fn.options","foorm.options",p,{transform:Be}),value:E("foorm.fn.value","foorm.value",p),validators:_,attrs:De(p),maxLength:p.get("expect.maxLength"),minLength:p.get("expect.minLength"),min:p.get("expect.min"),max:p.get("expect.max")});u.push(w)}return u.sort((h,y)=>{var p,m;return((p=h.order)!==null&&p!==void 0?p:1/0)-((m=y.order)!==null&&m!==void 0?m:1/0)}),{title:l,submit:f,fields:u}}function $e(n){const t=Ce(n),o=e.reactive(U(t.fields));return{form:t,formData:o}}k.OoField=F,k.OoForm=ue,k.useFoorm=$e,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(p,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("foorm"),require("vuiless-forms"),require("@foormjs/atscript")):typeof define=="function"&&define.amd?define(["exports","vue","foorm","vuiless-forms","@foormjs/atscript"],e):(p=typeof globalThis<"u"?globalThis:p||self,e(p.index={},p.Vue,p.foorm,p.vuilessForms,p.atscript))})(this,function(p,e,V,F,q){"use strict";function A(r,o){if(!r)return;const n={};for(const[m,c]of Object.entries(r))n[m]=V.evalComputed(c,o);return n}const w=e.defineComponent({__name:"oo-field",props:{field:{},type:{},component:{},autocomplete:{},altAction:{},order:{},name:{},phantom:{type:Boolean},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]},readonly:{type:[Boolean,Function]},classes:{type:[String,Object,Function]},styles:{type:[String,Object,Function]},options:{type:[Array,Function]},attrs:{},value:{type:Function},validators:{},maxLength:{},minLength:{},min:{},max:{},error:{}},setup(r){const o=r,n=e.inject("vuiless");function m(a,u,h){return typeof a=="function"?e.computed(()=>a(u.value)):a??h}const c=a=>typeof a=="object"&&a!==null&&"value"in a?a.value:a,k=e.computed(()=>({v:n.value.formData[o.field],data:n.value.formData,context:n.value.formContext??{},entry:void 0})),b=m(o.optional,k,!1),D=m(o.disabled,k,!1),B=m(o.hidden,k,!1),g=m(o.readonly,k,!1),x=o.phantom?void 0:e.computed(()=>!c(b)),i=e.computed(()=>({v:n.value.formData[o.field],data:n.value.formData,context:n.value.formContext??{},entry:{field:o.field,type:o.type,component:o.component,name:o.name||o.field,optional:c(b),disabled:c(D),hidden:c(B),readonly:c(g)}})),S=m(o.label,i,void 0),l=m(o.description,i,void 0),C=m(o.hint,i,void 0),d=m(o.placeholder,i,void 0),y=m(o.options,i,void 0),E=m(o.styles,i,void 0),t=e.computed(()=>{const a=typeof o.classes=="function"?o.classes(i.value):o.classes;return typeof a=="string"?{[a]:!0,disabled:c(D),required:!c(b)}:{...a,disabled:c(D),required:!c(b)}});function f(a,u){return{...t.value,error:!!a||!!u}}const N=e.computed(()=>A(o.attrs,i.value)),_=o.phantom?e.computed(()=>typeof o.value=="function"?o.value(i.value):o.value):void 0;if(typeof o.value=="function"&&!o.phantom){const a=e.computed(()=>{if(c(g))return o.value(i.value)});e.watch(a,u=>{u!==void 0&&c(g)&&(n.value.formData[o.field]=u)},{immediate:!0})}const s=o.validators.map(a=>(u,h,ne)=>a({v:u,data:h,context:ne??{},entry:i.value.entry}));return(a,u)=>(e.openBlock(),e.createBlock(e.unref(F.VuilessField),{modelValue:e.unref(n).formData[o.field],"onUpdate:modelValue":u[0]||(u[0]=h=>e.unref(n).formData[o.field]=h),rules:e.unref(s)},{default:e.withCtx(h=>[e.renderSlot(a.$slots,"default",{onBlur:h.onBlur,error:r.error||h.error,model:h.model,formData:e.unref(n).formData,formContext:e.unref(n).formContext,label:e.unref(S),description:e.unref(l),hint:e.unref(C),placeholder:e.unref(d),value:e.unref(_),classes:f(r.error,h.error),styles:e.unref(E),optional:e.unref(b),disabled:e.unref(D),hidden:e.unref(B),readonly:e.unref(g),type:r.type,altAction:r.altAction,component:r.component,vName:r.name,field:r.field,options:e.unref(y),maxLength:r.maxLength,required:e.unref(x),autocomplete:r.autocomplete,attrs:N.value})]),_:3},8,["modelValue","rules"]))}}),U={key:0},L={key:1},$={key:0},j=["onUpdate:modelValue","onBlur","placeholder","autocomplete","name","type","disabled","readonly"],P={class:"oo-error-slot"},O={key:4},T={key:0},z=["onUpdate:modelValue","onBlur","name","disabled","readonly"],M={key:0,value:"",disabled:""},R=["value"],K={class:"oo-error-slot"},G={class:"oo-field-label"},H={key:0},I={class:"oo-radio-group"},J=["value","onUpdate:modelValue","onBlur","name","disabled","readonly"],Q={class:"oo-error-slot"},W=["onUpdate:modelValue","onBlur","name","disabled","readonly"],X={key:0},Y={class:"oo-error-slot"},Z=["onClick"],v={key:9},ee=["disabled"],te=e.defineComponent({__name:"oo-form",props:{form:{},formData:{},formContext:{},firstValidation:{},components:{},types:{},errors:{}},emits:["submit","action","unsupported-action"],setup(r,{emit:o}){const n=r,m=e.ref({}),c=e.computed(()=>n.formData||m.value),k=e.computed(()=>({v:void 0,data:c.value,context:n.formContext??{},entry:void 0})),b=e.computed(()=>V.evalComputed(n.form.title,k.value)),D=e.computed(()=>V.evalComputed(n.form.submit.text,k.value)),B=e.computed(()=>V.evalComputed(n.form.submit.disabled,k.value));function g(l){V.supportsAltAction(n.form,l)?x("action",l,c.value):x("unsupported-action",l,c.value)}const x=o;function i(l){return typeof l=="string"?l:l.key}function S(l){return typeof l=="string"?l:l.label}return(l,C)=>(e.openBlock(),e.createBlock(e.unref(F.VuilessForm),{"first-validation":r.firstValidation,onSubmit:C[0]||(C[0]=d=>x("submit",d)),"form-data":c.value,"form-context":r.formContext},{default:e.withCtx(d=>[e.renderSlot(l.$slots,"form.header",{clearErrors:d.clearErrors,reset:d.reset,title:b.value,formContext:r.formContext,disabled:B.value},()=>[b.value?(e.openBlock(),e.createElementBlock("h2",U,e.toDisplayString(b.value),1)):e.createCommentVNode("",!0)]),e.renderSlot(l.$slots,"form.before",{clearErrors:d.clearErrors,reset:d.reset}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.form.fields,y=>{var E;return e.openBlock(),e.createBlock(w,e.mergeProps({key:y.field},{ref_for:!0},y,{error:(E=r.errors)==null?void 0:E[y.field]}),{default:e.withCtx(t=>[e.renderSlot(l.$slots,`field:${t.type}`,e.mergeProps({ref_for:!0},t),()=>{var f,N,_;return[y.component&&((f=n.components)!=null&&f[y.component])?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.components[y.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:g},{ref_for:!0},t.attrs,{modelValue:t.model.value,"onUpdate:modelValue":s=>t.model.value=s}),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"])):y.component&&!((N=n.components)!=null&&N[y.component])?(e.openBlock(),e.createElementBlock("div",L," ["+e.toDisplayString(t.label)+'] Component "'+e.toDisplayString(t.component)+'" not supplied ',1)):(_=n.types)!=null&&_[y.type]?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.types[y.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:g},{ref_for:!0},t.attrs,{modelValue:t.model.value,"onUpdate:modelValue":s=>t.model.value=s}),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.withDirectives((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",e.mergeProps({"onUpdate:modelValue":s=>t.model.value=s,onBlur:t.onBlur,placeholder:t.placeholder,autocomplete:t.autocomplete,name:t.vName,type:t.type,disabled:t.disabled,readonly:t.readonly},{ref_for:!0},t.attrs),null,16,j),[[e.vModelDynamic,t.model.value]]),e.createElementVNode("div",P,e.toDisplayString(t.error||t.hint),1)],2)),[[e.vShow,!t.hidden]]):t.type==="paragraph"?(e.openBlock(),e.createElementBlock("p",O,e.toDisplayString(t.value),1)):t.type==="select"?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:5,class:e.normalizeClass(["oo-default-field",t.classes])},[e.createElementVNode("label",null,e.toDisplayString(t.label),1),t.description?(e.openBlock(),e.createElementBlock("span",T,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("select",e.mergeProps({"onUpdate:modelValue":s=>t.model.value=s,onBlur:t.onBlur,name:t.vName,disabled:t.disabled,readonly:t.readonly},{ref_for:!0},t.attrs),[t.placeholder?(e.openBlock(),e.createElementBlock("option",M,e.toDisplayString(t.placeholder),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,s=>(e.openBlock(),e.createElementBlock("option",{key:i(s),value:i(s)},e.toDisplayString(S(s)),9,R))),128))],16,z),[[e.vModelSelect,t.model.value]]),e.createElementVNode("div",K,e.toDisplayString(t.error||t.hint),1)],2)),[[e.vShow,!t.hidden]]):t.type==="radio"?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:6,class:e.normalizeClass(["oo-default-field oo-radio-field",t.classes])},[e.createElementVNode("span",G,e.toDisplayString(t.label),1),t.description?(e.openBlock(),e.createElementBlock("span",H,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0),e.createElementVNode("div",I,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,s=>(e.openBlock(),e.createElementBlock("label",{key:i(s)},[e.withDirectives(e.createElementVNode("input",e.mergeProps({type:"radio",value:i(s),"onUpdate:modelValue":a=>t.model.value=a,onBlur:t.onBlur,name:t.vName,disabled:t.disabled,readonly:t.readonly},{ref_for:!0},t.attrs),null,16,J),[[e.vModelRadio,t.model.value]]),e.createTextVNode(" "+e.toDisplayString(S(s)),1)]))),128))]),e.createElementVNode("div",Q,e.toDisplayString(t.error||t.hint),1)],2)),[[e.vShow,!t.hidden]]):t.type==="checkbox"?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:7,class:e.normalizeClass(["oo-default-field oo-checkbox-field",t.classes])},[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",e.mergeProps({type:"checkbox","onUpdate:modelValue":s=>t.model.value=s,onBlur:t.onBlur,name:t.vName,disabled:t.disabled,readonly:t.readonly},{ref_for:!0},t.attrs),null,16,W),[[e.vModelCheckbox,t.model.value]]),e.createTextVNode(" "+e.toDisplayString(t.label),1)]),t.description?(e.openBlock(),e.createElementBlock("span",X,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Y,e.toDisplayString(t.error||t.hint),1)],2)),[[e.vShow,!t.hidden]]):t.type==="action"?(e.openBlock(),e.createElementBlock("div",{key:8,class:e.normalizeClass(["oo-default-field oo-action-field",t.classes])},[e.createElementVNode("button",{type:"button",onClick:s=>g(t.altAction)},e.toDisplayString(t.label),9,Z)],2)):(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,["error"])}),128)),e.renderSlot(l.$slots,"form.after",{clearErrors:d.clearErrors,reset:d.reset,disabled:B.value,formContext:r.formContext}),e.renderSlot(l.$slots,"form.submit",{disabled:B.value,text:D.value,clearErrors:d.clearErrors,reset:d.reset,formContext:r.formContext},()=>[e.createElementVNode("button",{disabled:B.value},e.toDisplayString(D.value),9,ee)]),e.renderSlot(l.$slots,"form.footer",{disabled:B.value,clearErrors:d.clearErrors,reset:d.reset,formContext:r.formContext})]),_:3},8,["first-validation","form-data","form-context"]))}});function oe(r){const o=q.createFoorm(r),n=e.reactive(V.createFormData(o.fields));return{form:o,formData:n}}p.OoField=w,p.OoForm=te,p.useFoorm=oe,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@foormjs/vue",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "@foormjs/vue",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"vue": "^3.5.28",
|
|
44
44
|
"vuiless-forms": "^0.0.3",
|
|
45
|
-
"@foormjs/atscript": "^0.2.
|
|
46
|
-
"foorm": "^0.2.
|
|
45
|
+
"@foormjs/atscript": "^0.2.4",
|
|
46
|
+
"foorm": "^0.2.4"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"@atscript/core": "^0.1.8",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
},
|
|
67
67
|
"scripts": {
|
|
68
68
|
"dev": "vite",
|
|
69
|
-
"build": "run-
|
|
69
|
+
"build": "run-s type-check build-only",
|
|
70
70
|
"preview": "vite preview",
|
|
71
71
|
"build-only": "vite build",
|
|
72
72
|
"type-check": "vue-tsc --build --force",
|