@verdnatura/vn-front-lib 0.1.6 → 0.1.8

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.
@@ -0,0 +1,2 @@
1
+ const e=require("./rolldown-runtime-DF3sbh8G.cjs"),t=require("./composables-BTfGi73U.cjs"),n=require("./stores.cjs"),r=require("./filters.cjs");let i=require("vue"),a=require("quasar");a=e.r(a);let o=require("vue-i18n"),s=require("axios");s=e.r(s);let c=require("vue-router");function l(e){let t=e;t.__i18n=t.__i18n||[],t.__i18n.push({locale:``,resource:{es:{Confirm:{t:0,b:{t:2,i:[{t:3}],s:`Confirmar`}},"Are you sure you want to continue?":{t:0,b:{t:2,i:[{t:3}],s:`¿Seguro que quieres continuar?`}}}}})}var u=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},d={class:`text-h6`},f=[`innerHTML`],p={__name:`VnConfirm`,props:{icon:{type:String,default:null},title:{type:String,default:null},message:{type:[String,Boolean],default:null},data:{type:Object,required:!1,default:null},promise:{type:Function,required:!1,default:null},persistent:{type:Boolean,default:!1},closable:{type:Boolean,default:!0},cardClass:{type:String,default:null}},emits:[`confirm`,`cancel`,...a.useDialogPluginComponent.emits],setup(e,{expose:t,emit:n}){let{t:r}=(0,o.useI18n)(),s=e,c=n;t({show:()=>l.value.show(),hide:()=>l.value.hide()});let{dialogRef:l,onDialogHide:u,onDialogOK:p,onDialogCancel:m}=a.useDialogPluginComponent(),h=s.title||r(`Confirm`),g=s.message||s.message!==!1&&r(`Are you sure you want to continue?`),_=(0,i.ref)(!1);async function v(){if(_.value=!0,s.promise)try{await s.promise(s.data)}finally{_.value=!1}p(s.data)}function y(){c(`cancel`),m()}return(t,n)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QDialog),{ref_key:`dialogRef`,ref:l,persistent:e.persistent,onHide:(0,i.unref)(u)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.QCard),{class:(0,i.normalizeClass)([`q-pa-sm`,e.cardClass])},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.QCardSection),{class:`row items-center q-pb-none`},{default:(0,i.withCtx)(()=>[e.icon?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QAvatar),{key:0,icon:e.icon,color:`primary`,"text-color":`white`,size:`xl`},null,8,[`icon`])):(0,i.createCommentVNode)(``,!0),(0,i.createElementVNode)(`span`,d,(0,i.toDisplayString)((0,i.unref)(h)),1),(0,i.createVNode)((0,i.unref)(a.QSpace)),e.closable?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QBtn),{key:1,icon:`close`,disable:_.value,flat:``,round:``,dense:``,onClick:n[0]||=e=>y()},null,8,[`disable`])):(0,i.createCommentVNode)(``,!0)]),_:1}),(0,i.createVNode)((0,i.unref)(a.QCardSection),{class:`q-pb-none`,"data-cy":`VnConfirm_message`},{default:(0,i.withCtx)(()=>[(0,i.unref)(g)===!1?(0,i.createCommentVNode)(``,!0):((0,i.openBlock)(),(0,i.createElementBlock)(`span`,{key:0,innerHTML:(0,i.unref)(g)},null,8,f))]),_:1}),(0,i.createVNode)((0,i.unref)(a.QCardSection),{class:`row items-center q-pt-none`},{default:(0,i.withCtx)(()=>[(0,i.renderSlot)(t.$slots,`custom-html`,{},void 0,!0)]),_:3}),t.$slots.actions?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QCardActions),{key:0,align:`right`},{default:(0,i.withCtx)(()=>[(0,i.renderSlot)(t.$slots,`actions`,{actions:{confirm:v,cancel:y}},void 0,!0)]),_:3})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QCardActions),{key:1,align:`right`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.QBtn),{label:(0,i.unref)(r)(`globals.cancel`),color:`primary`,disable:_.value,flat:``,onClick:n[1]||=e=>y(),"data-cy":`VnConfirm_cancel`},null,8,[`label`,`disable`]),(0,i.createVNode)((0,i.unref)(a.QBtn),{label:(0,i.unref)(r)(`globals.confirm`),title:(0,i.unref)(r)(`globals.confirm`),color:`primary`,loading:_.value,onClick:n[2]||=e=>v(),unelevated:``,autofocus:``,"data-cy":`VnConfirm_confirm`},null,8,[`label`,`title`,`loading`])]),_:1}))]),_:3},8,[`class`])]),_:3},8,[`persistent`,`onHide`]))}};typeof l==`function`&&l(p);var m=u(p,[[`__scopeId`,`data-v-087d2dc1`]]),h={class:`row q-gutter-md q-mb-md`},g={class:`row q-gutter-md q-mb-md`},_={class:`row q-gutter-md q-mb-md`},v={__name:`VnSkeletonForm`,setup(e){return(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,null,[(0,i.createElementVNode)(`div`,h,[(0,i.createVNode)((0,i.unref)(a.QSkeleton),{type:`QInput`,class:`col`,square:``}),(0,i.createVNode)((0,i.unref)(a.QSkeleton),{type:`QInput`,class:`col`,square:``})]),(0,i.createElementVNode)(`div`,g,[(0,i.createVNode)((0,i.unref)(a.QSkeleton),{type:`QInput`,class:`col`,square:``}),(0,i.createVNode)((0,i.unref)(a.QSkeleton),{type:`QInput`,class:`col`,square:``})]),(0,i.createElementVNode)(`div`,_,[(0,i.createVNode)((0,i.unref)(a.QSkeleton),{type:`QInput`,class:`col`,square:``}),(0,i.createVNode)((0,i.unref)(a.QSkeleton),{type:`QInput`,class:`col`,square:``})])],64))}},y=u({__name:`VnSpinner`,props:{size:{type:String,default:`40px`},noTransition:{type:Boolean,default:!1}},setup(e){let t={xs:`16px`,sm:`24px`,md:`40px`,lg:`56px`,xl:`72px`};return(n,r)=>e.noTransition?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:1,class:`vn-spinner`,style:(0,i.normalizeStyle)({width:t[e.size]||e.size,height:t[e.size]||e.size})},null,4)):((0,i.openBlock)(),(0,i.createBlock)(i.Transition,{key:0,name:`vn-spinner-fade`,appear:``},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,{class:`vn-spinner`,style:(0,i.normalizeStyle)({width:t[e.size]||e.size,height:t[e.size]||e.size})},null,4)]),_:1}))}},[[`__scopeId`,`data-v-e5edebae`]]),b=u({__name:`VnDate`,props:{modelValue:{type:[String,Number],default:``},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=(0,i.useModel)(e,`modelValue`);return(e,n)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QDate),{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,"today-btn":!0,options:e.$attrs.options,autocomplete:`off`},null,8,[`modelValue`,`options`]))}},[[`__scopeId`,`data-v-8338d4d1`]]);function x(e){let t=e;t.__i18n=t.__i18n||[],t.__i18n.push({locale:``,resource:{en:{inputMin:{t:0,b:{t:2,i:[{t:3,v:`Must be more than `},{t:4,k:`value`}]}},maxLength:{t:0,b:{t:2,i:[{t:3,v:`The value exceeds `},{t:4,k:`value`},{t:3,v:` characters`}]}},inputMax:{t:0,b:{t:2,i:[{t:3,v:`Must be less than `},{t:4,k:`value`}]}}},es:{inputMin:{t:0,b:{t:2,i:[{t:3,v:`Debe ser mayor a `},{t:4,k:`value`}]}},maxLength:{t:0,b:{t:2,i:[{t:3,v:`El valor excede los `},{t:4,k:`value`},{t:3,v:` carácteres`}]}},inputMax:{t:0,b:{t:2,i:[{t:3,v:`Debe ser menor a `},{t:4,k:`value`}]}},"Convert to uppercase":{t:0,b:{t:2,i:[{t:3}],s:`Convertir a mayúsculas`}},Remove:{t:0,b:{t:2,i:[{t:3}],s:`Eliminar`}}}}})}var S={__name:`VnInput`,props:(0,i.mergeModels)({isOutlined:{type:Boolean,default:!1},info:{type:String,default:``},clearable:{type:Boolean,default:!0},emptyToNull:{type:Boolean,default:!0},insertable:{type:Boolean,default:!1},maxlength:{type:Number,default:null},uppercase:{type:Boolean,default:!1},clearOnHover:{type:Boolean,default:!1}},{modelValue:{default:null},modelModifiers:{}}),emits:(0,i.mergeModels)([`remove`],[`update:modelValue`]),setup(e,{expose:n,emit:r}){let s=(0,i.useAttrs)(),{isRequired:c,requiredFieldRule:l}=t.g(s),{t:u}=(0,o.useI18n)(),d=r,f=e,p=(0,i.useModel)(e,`modelValue`),m=[`number`,`search`,`tel`,`url`,`password`],h=e=>{let t=e;f.emptyToNull&&t===``&&(t=null),p.value=t},g=(0,i.ref)(null),_=(0,i.ref)(!1),v=(0,i.computed)(()=>f.isOutlined?{dense:!0,outlined:!0,rounded:!0}:{}),y=e=>{g.value?.focus(e)},b=e=>{(0,i.nextTick)(()=>{let t=e.target||g.value?.$el?.querySelector(`input`),n=e.target.type||t?.getAttribute(`type`);if(n!==`email`){if(!m.includes(n)){if(t?.setSelectionRange){let e=t.value?.length??0;t.setSelectionRange(e,e)}return}t?.select?.()}})};n({focus:y,vnInputRef:g});let x=(0,i.computed)(()=>[l,...s.rules??[],e=>{let t=f.maxlength;if(t&&+e?.length>t)return u(`maxLength`,{value:t});let{min:n,max:r}=s,i=n===void 0?void 0:Number(n),a=r===void 0?void 0:Number(r);return i!==void 0&&i>=0&&Math.floor(e)<i?u(`inputMin`,{value:i}):a!==void 0&&a>0&&Math.floor(e)>a?u(`inputMax`,{value:a}):!0}]),S=e=>{e.key!==`Backspace`&&f.insertable&&e.key.match(/[0-9]/)&&C(e)},C=e=>{e.preventDefault();let t=e.target,n=t.selectionStart,r=f.maxlength,a=p.value;a||=e.key;let o=e.key;o&&!isNaN(o)&&n<r&&h(a.substring(0,n)+o+a.substring(n+1)),(0,i.nextTick)(()=>{t.setSelectionRange(n+1,n+1)})},w=()=>{p.value=p.value?.toUpperCase()||``};return(0,i.onMounted)(()=>{s.autofocus&&y()}),(t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{onMouseover:n[1]||=e=>_.value=!0,onMouseleave:n[2]||=e=>_.value=!1},[(0,i.createVNode)((0,i.unref)(a.QInput),(0,i.mergeProps)({ref_key:`vnInputRef`,ref:g,"model-value":(0,i.unref)(p),"onUpdate:modelValue":h},{...(0,i.unref)(s),...v.value},{class:{required:(0,i.unref)(c)},onKeydown:S,onFocus:b,clearable:!1,rules:x.value,"lazy-rules":!0,"hide-bottom-space":``,"data-cy":((0,i.unref)(s)[`data-cy`]??(0,i.unref)(s).label)+`_input`,dense:``}),(0,i.createSlots)({append:(0,i.withCtx)(()=>[(0,i.withDirectives)((0,i.createVNode)((0,i.unref)(a.QIcon),{name:`close`,size:`xs`,class:`cursor-pointer`,style:(0,i.normalizeStyle)({visibility:_.value&&(0,i.unref)(p)&&!(0,i.unref)(s).disabled&&!(0,i.unref)(s).readonly&&f.clearable?`visible`:`hidden`}),onClick:n[0]||=()=>{h(null),g.value?.focus(),d(`remove`)}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.QTooltip),null,{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(u)(`Remove`)),1)]),_:1})]),_:1},8,[`style`]),[[i.vShow,!e.clearOnHover||_.value]]),!(0,i.unref)(s).disabled&&!(0,i.unref)(s).readonly&&f.uppercase?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QIcon),{key:0,name:`match_case`,size:`xs`,onClick:w,class:`uppercase-icon`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.QTooltip),null,{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(u)(`Convert to uppercase`)),1)]),_:1})]),_:1})):(0,i.createCommentVNode)(``,!0),t.$slots.append&&!(0,i.unref)(s).disabled?(0,i.renderSlot)(t.$slots,`append`,{},void 0,void 0,1):(0,i.createCommentVNode)(``,!0),e.info?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QIcon),{key:2,name:`info`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.QTooltip),{"max-width":`350px`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(e.info),1)]),_:1})]),_:1})):(0,i.createCommentVNode)(``,!0)]),_:2},[t.$slots.hint?{name:`hint`,fn:(0,i.withCtx)(()=>[(0,i.renderSlot)(t.$slots,`hint`)]),key:`0`}:void 0,t.$slots.prepend?{name:`prepend`,fn:(0,i.withCtx)(()=>[(0,i.renderSlot)(t.$slots,`prepend`)]),key:`1`}:void 0]),1040,[`model-value`,`class`,`rules`,`data-cy`])],32))}};typeof x==`function`&&x(S);function C(e){let t=e;t.__i18n=t.__i18n||[],t.__i18n.push({locale:``,resource:{es:{"Open date":{t:0,b:{t:2,i:[{t:3}],s:`Abrir fecha`}},Remove:{t:0,b:{t:2,i:[{t:3}],s:`Eliminar`}}}}})}var w=`DD/MM/YYYY`,T={__name:`VnInputDate`,props:(0,i.mergeModels)({isOutlined:{type:Boolean,default:!1},showEvent:{type:Boolean,default:!0},hideYearNavigation:{type:Boolean,default:!1},clearOnHover:{type:Boolean,default:!1}},{modelValue:{type:[String,Date,Object]},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let n=(0,i.useAttrs)(),{t:r}=(0,o.useI18n)(),{isRequired:s,requiredFieldRule:c}=t.g(n),l=(0,i.useModel)(e,`modelValue`),u=e,d=(0,i.ref)(null),f=(0,a.getCssVar)(`negative`),p=(0,i.ref)(``),m=(0,i.ref)(),h=(0,i.ref)(),g=[c,...n.rules??[]],_=(0,i.computed)(()=>l.value?.neq||l.value?.nin||l.value),v=(0,i.computed)(()=>{if(_.value)return Array.isArray(_.value)?_.value.map(e=>a.date.formatDate(new Date(e),w)).join(`, `):a.date.formatDate(new Date(_.value),w)}),y=(0,i.computed)(()=>{let e=Array.isArray(_.value)?_.value[0]:_.value;return e&&a.date.formatDate(new Date(e),`YYYY/MM/DD`)}),x=(0,i.computed)(()=>u.isOutlined?{dense:!0,outlined:!0,rounded:!0}:{}),S=(0,i.ref)(``),C=n[`data-cy`]??n.label,T=C+`_menu`,E=C+`_inputDate`,D=e=>{if(!e&&n.clearable){S.value=null,l.value=null;return}S.value=e.replace(/[^0-9./-]/g,``)},O=e=>{e&&(S.value=e.split(`/`).reverse().join(`/`),k(),m.value=!1)};(0,i.watch)(()=>l.value,()=>{let e=Array.isArray(_.value)?_.value[0]:_.value;S.value=e?a.date.formatDate(new Date(e),w):``},{immediate:!0}),(0,i.watch)(m,e=>{e&&u.hideYearNavigation&&(0,i.nextTick)(()=>{let e=[`back`,`type`,`forward`];document.querySelectorAll(`.q-date__navigation`).forEach(t=>{for(let n=0;n<e.length;n++)t.lastElementChild&&t.removeChild(t.lastElementChild)})})});let k=()=>{let e=S.value;if(!e||e===l.value){p.value=``;return}if(!/^([0]?[1-9]|[12][0-9]|3[01])([./-])([0]?[1-9]|1[0-2])([./-](\d{1,4}))?$/.test(e)){p.value=f;return}e=e.replace(/[.-]/g,`/`);let t=e.split(`/`);if(t.length<2){p.value=f;return}let[n,r,i]=t;n.length===1&&(n=`0`+n),r.length===1&&(r=`0`+r);let o=Date.vnNew().getFullYear();i||=o;let s=o.toString().slice(0,1);switch(i.length){case 1:i=`${s}00${i}`;break;case 2:i=`${s}0${i}`;break;case 3:i=`${s}${i}`}let c=`${i}/${r}/${n}`;c=a.date.formatDate(new Date(c).toISOString(),`YYYY-MM-DDTHH:mm:ss.SSSZ`);let[u,d,m]=c.split(`-`).map(e=>parseInt(e)),h=new Date(u,d-1,m);if(!(h instanceof Date&&!isNaN(h)&&h.getFullYear()===parseInt(i)&&h.getMonth()===parseInt(r)-1&&h.getDate()===parseInt(n))){p.value=f;return}if(_.value){let e=Array.isArray(_.value)?_.value[0]:_.value,t=e instanceof Date?e:new Date(e);h.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds())}let g=h.toISOString();l.value?.neq?l.value={neq:g}:l.value?.nin?l.value={nin:[...l.value.nin,g]}:l.value=g,p.value=``},A=e=>{k(),(0,i.nextTick)(()=>{let e=new KeyboardEvent(`keydown`,{key:`Enter`,code:`Enter`,bubbles:!0,cancelable:!0});d.value?.$el?.dispatchEvent(e)})};return(t,o)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{onMouseover:o[8]||=e=>h.value=!0,onMouseleave:o[9]||=e=>h.value=!1},[(0,i.createVNode)((0,i.unref)(a.QInput),(0,i.mergeProps)({ref_key:`vnInputDateRef`,ref:d,modelValue:S.value,"onUpdate:modelValue":o[5]||=e=>S.value=e,class:`vn-input-date`,placeholder:`dd/mm/aaaa`},{...(0,i.unref)(n),...x.value},{class:{required:(0,i.unref)(s)},rules:g,clearable:!1,"input-style":{color:p.value},"input-class":{"text-strike":!!(l.value?.neq||l.value?.nin)},title:v.value,onClick:o[6]||=e=>m.value=!m.value,onKeydown:[o[7]||=e=>m.value=!1,(0,i.withKeys)((0,i.withModifiers)(A,[`prevent`]),[`enter`])],onFocusout:k,"hide-bottom-space":``,"data-cy":E,"onUpdate:modelValue":D,autocomplete:`off`}),{append:(0,i.withCtx)(()=>[((0,i.unref)(n).clearable==null||(0,i.unref)(n).clearable)&&(!e.clearOnHover||h.value)&&S.value&&!(0,i.unref)(n).disable?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QIcon),{key:0,name:`close`,size:`xs`,class:`cursor-pointer`,onClick:o[0]||=e=>{d.value.focus(),S.value=null,l.value=null,m.value=!1}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.QTooltip),null,{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(r)(`Remove`)),1)]),_:1})]),_:1})):(0,i.createCommentVNode)(``,!0)]),default:(0,i.withCtx)(()=>[t.$q.screen.gt.xs?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QMenu),{key:0,"transition-show":`scale`,"transition-hide":`scale`,modelValue:m.value,"onUpdate:modelValue":o[2]||=e=>m.value=e,anchor:`bottom left`,self:`top start`,"no-focus":!0,"no-parent-event":!0,"data-cy":T},{default:(0,i.withCtx)(()=>[(0,i.createVNode)(b,{modelValue:y.value,"onUpdate:modelValue":[o[1]||=e=>y.value=e,O]},null,8,[`modelValue`])]),_:1},8,[`modelValue`])):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QDialog),{key:1,modelValue:m.value,"onUpdate:modelValue":o[4]||=e=>m.value=e},{default:(0,i.withCtx)(()=>[(0,i.createVNode)(b,{modelValue:y.value,"onUpdate:modelValue":[o[3]||=e=>y.value=e,O]},null,8,[`modelValue`])]),_:1},8,[`modelValue`]))]),_:1},16,[`modelValue`,`class`,`input-style`,`input-class`,`title`,`onKeydown`])],32))}};typeof C==`function`&&C(T);var E={__name:`VnFetch`,props:{autoLoad:{type:Boolean,default:!1},url:{type:String,default:``},filter:{type:Object,default:null},where:{type:Object,default:null},sortBy:{type:String,default:``},limit:{type:[String,Number],default:``},params:{type:Object,default:null}},emits:[`onFetch`],setup(e,{expose:t,emit:n}){let r=e,a=n;t({fetch:o}),(0,i.onMounted)(async()=>{r.autoLoad&&await o()});async function o(e={}){try{let t={...e,...r.filter};r.where&&!e.where&&(t.where=r.where),r.sortBy&&(t.order=r.sortBy),r.limit&&(t.limit=r.limit);let{data:n}=await s.default.get(r.url,{params:{filter:JSON.stringify(t),...r.params}});return a(`onFetch`,n),n}catch{}}return(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`template`))}},D={class:`column items-center full-width`,style:{position:`relative`}},O=[`textContent`],k=u({__name:`VnForm`,props:{url:{type:String,default:``},model:{type:String,default:null},filter:{type:Object,default:null},urlUpdate:{type:String,default:null},urlCreate:{type:String,default:null},defaultActions:{type:Boolean,default:!0},defaultButtons:{type:Object,default:()=>{}},autoLoad:{type:Boolean,default:!1},formInitialData:{type:Object,default:()=>{}},observeFormChanges:{type:Boolean,default:!0,description:`Esto se usa principalmente para permitir guardar sin hacer cambios (Útil para la feature de clonar ya que en este caso queremos poder guardar de primeras)`},mapper:{type:Function,default:r.onBeforeSave},clearStoreOnUnmount:{type:Boolean,default:!0},saveFn:{type:Function,default:null},goTo:{type:String,default:``,description:`It is used for redirect on click "save and continue"`},reload:{type:Boolean,default:!0},defaultTrim:{type:Boolean,default:!0},maxWidth:{type:[String,Boolean],default:`800px`},onDataSaved:{type:Function,default:()=>{}},preventSubmit:{type:Boolean,default:!1},customMethod:{type:String,default:null},formUrl:{type:[String,Boolean],default:`createForm`},paddingClass:{type:String,default:`q-pa-md`},showTitle:{type:Boolean,default:!1},title:{type:String,default:null}},emits:[`onFetch`,`onDataSaved`,`onDataSaveFail`,`submit`],setup(e,{expose:r,emit:l}){let{push:u}=(0,c.useRouter)(),d=a.useQuasar(),f=t.t(),p=n.useStateStore(),{t:h}=(0,o.useI18n)(),{validate:g,validations:_}=t._(),{notify:b}=t.u(),x=(0,c.useRoute)(),S=(0,i.ref)(null),C=e,w=l,T=(0,i.computed)(()=>C.model??`formModel_${x?.meta?.title??x.name}`).value,E=(0,i.ref)(!1),k=t.m(T),A=(0,i.ref)(!1),j=(0,i.ref)(!1),M=(0,i.ref)(!C.observeFormChanges),N={},P=(0,i.computed)(()=>f.get(T)),F=(0,i.ref)(),I=(0,i.computed)(()=>S.value?.$el),L=(0,i.computed)(()=>({save:{dataCy:`saveDefaultBtn`,color:`primary`,icon:`save`,label:`globals.save`,click:async e=>R(e),type:`submit`},reset:{dataCy:`resetDefaultBtn`,color:`primary`,icon:`restart_alt`,label:`globals.reset`,click:()=>U()},...C.defaultButtons})),R=async e=>{await S.value.validate()&&await V(e)};function z(){N=C.formUrl?JSON.parse(x?.query[C.formUrl]??`{}`):void 0}(0,i.onMounted)(async()=>{!k.store.url&&C.url&&k.setOptions({url:C.url,filter:C.filter}),z(),(0,i.nextTick)(()=>E.value=!0),C.formInitialData&&N&&f.set(T,{...C.formInitialData,...N}),C.formInitialData||(C.autoLoad&&C.url?await B():k.store.data&&G(`onFetch`,{val:k.store.data})),C.observeFormChanges&&(0,i.watch)(()=>F.value,(e,t)=>{t&&(M.value=!j.value&&JSON.stringify(e)!==JSON.stringify(P.value),j.value=!1)},{deep:!0})}),C.url||(0,i.watch)(()=>k.store.data,e=>G(`onFetch`,{val:e})),(0,i.watch)(P,async e=>{e&&(F.value=JSON.parse(JSON.stringify(e))),await(0,i.nextTick)(),I.value&&t.p(I.value)},{immediate:!0}),(0,i.watch)(()=>[C.url,C.filter],async()=>{f.set(T,null),U(),await B()}),C.formInitialData&&(0,i.watch)(()=>C.formInitialData,e=>{e&&f.set(T,{...e,...N})}),(0,c.onBeforeRouteLeave)((e,t,n)=>{M.value&&C.observeFormChanges?d.dialog({component:m,componentProps:{title:h(`globals.unsavedPopup.title`),message:h(`globals.unsavedPopup.subtitle`),promise:()=>n()}}):n()}),(0,i.onUnmounted)(()=>{if(M.value)return f.set(T,P.value);C.clearStoreOnUnmount&&f.unset(T)});async function B(){try{let e;e=C.model?(await k.addFilter({filter:C.filter})).response?.data:(await s.default.get(C.url,{params:{filter:JSON.stringify(C.filter)}})).data,Array.isArray(e)&&(e=e[0]??{}),G(`onFetch`,{val:e})}catch(e){throw f.set(T,{}),e}}async function V(){if(C.observeFormChanges&&!M.value)return b(`globals.noChanges`,`negative`);A.value=!0;try{F.value=K(F.value);let e=C.urlCreate?`post`:`patch`,t=e===`post`?C.mapper(F.value):C.mapper(F.value,P.value),n=C.urlCreate||C.urlUpdate||C.url||k.store.url,r=await Promise.resolve(C.saveFn?C.saveFn(t):s.default[C.customMethod??e](n,t));C.urlCreate&&b(`globals.dataCreated`,`positive`),M.value=!1,G(`onDataSaved`,{val:F.value,res:r?.data,old:P.value,rawRes:r}),C.reload&&await k.fetch({})}catch(e){throw w(`onDataSaveFail`,F.value),e}finally{A.value=!1}}async function H(){await V(!0),u({path:C.goTo})}function U(){F.value=JSON.parse(JSON.stringify(P.value)),G(`onFetch`,{val:P.value}),C.observeFormChanges&&(M.value=!1,j.value=!0)}function W(e,t,n){t(()=>{let{options:t,filterFn:r}=n;t.value=r(t,e)},e=>{e.setOptionIndex(-1),e.moveOptionSelection(1,!0)})}async function G(e,{val:n,res:r,old:i,rawRes:a}={val:null,res:null,old:null,rawRes:null}){f.set(T,n),C.url||(k.store.data=n),w(e,f.get(T),r,i,F,a),I.value&&t.p(I.value)}function K(e){if(!C.defaultTrim)return e;for(let t in e)typeof e[t]==`string`&&(e[t]=e[t].trim());return e}async function q(e){if(e.key===`Enter`&&!C.preventSubmit&&M.value){let t=e.target;if(t.type==`textarea`&&e.shiftKey){let{selectionStart:e,selectionEnd:n}=t;t.value=t.value.substring(0,e)+`
2
+ `+t.value.substring(n),e=n=e+1;return}await S.value.submit(e)}}return r({submitForm:R,myForm:S,save:V,isLoading:A,hasChanges:M,reset:U,fetch:B,formData:F}),(n,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,null,[(0,i.createElementVNode)(`div`,D,[(0,i.createVNode)((0,i.unref)(a.QInnerLoading),{showing:A.value,label:(0,i.unref)(h)(`globals.pleaseWait`),color:`primary`,style:{"min-width":`100%`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(y),{size:`md`})]),_:1},8,[`showing`,`label`]),F.value?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QForm),(0,i.mergeProps)({key:0,id:`vnForm`},n.$attrs,{ref_key:`myForm`,ref:S,onSubmit:(0,i.withModifiers)(V,[`prevent`]),onKeyup:(0,i.withModifiers)(q,[`prevent`]),onReset:U,class:[`full-width`,[e.paddingClass]],style:{maxWidth:e.maxWidth||`none`,width:`100%`}}),{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.QCard),{class:`q-pa-none`},{default:(0,i.withCtx)(()=>[e.showTitle?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QCardSection),{key:0,class:`vn-basic-data__header q-px-none q-pb-none`},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`span`,{class:`text-h6`,textContent:(0,i.toDisplayString)(e.title||n.$t(`globals.pageTitles.basicData`))},null,8,O)]),_:1})):(0,i.createCommentVNode)(``,!0),F.value?(0,i.renderSlot)(n.$slots,`form`,{data:F.value,validate:(0,i.unref)(g),validations:(0,i.unref)(_)(),filter:W},void 0,!0,1):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(v),{key:2}))]),_:3})]),_:3},16,[`class`,`style`])):(0,i.createCommentVNode)(``,!0)]),C.defaultActions&&(0,i.unref)(p)?.isSubToolbarShown()&&E.value?((0,i.openBlock)(),(0,i.createBlock)(i.Teleport,{key:0,to:`#st-actions`},[(0,i.createVNode)((0,i.unref)(a.QBtnGroup),{push:``,class:`q-gutter-x-sm`},{default:(0,i.withCtx)(()=>[(0,i.renderSlot)(n.$slots,`moreActions`,{},void 0,!0),(0,i.createVNode)((0,i.unref)(a.QBtn),{label:(0,i.unref)(t.h)(L.value.reset.label),color:L.value.reset.color,icon:L.value.reset.icon,flat:``,onClick:L.value.reset.click,disable:!M.value,title:(0,i.unref)(h)(L.value.reset.label),"data-cy":`resetDefaultBtn`},null,8,[`label`,`color`,`icon`,`onClick`,`disable`,`title`]),(0,i.createVNode)((0,i.unref)(a.QBtn),{"data-cy":`saveDefaultBtn`,label:(0,i.unref)(t.h)(`globals.save`),color:`primary`,icon:`save`,onClick:L.value.save.click,disable:!M.value,title:(0,i.unref)(h)(L.value.save.label),flat:!!C.goTo},null,8,[`label`,`onClick`,`disable`,`title`,`flat`]),C.goTo?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.QBtn),{key:0,"data-cy":`saveAndContinueDefaultBtn`,onClick:H,label:(0,i.unref)(t.h)(`globals.saveAndContinue`)+` `+(0,i.unref)(h)(`globals.`+C.goTo.split(`/`).pop()),title:(0,i.unref)(h)(`globals.saveAndContinue`)+` `+(0,i.unref)(h)(`globals.`+C.goTo.split(`/`).pop()),disable:!M.value,color:`primary`,icon:`save`},null,8,[`label`,`title`,`disable`])):(0,i.createCommentVNode)(``,!0)]),_:3})])):(0,i.createCommentVNode)(``,!0)],64))}},[[`__scopeId`,`data-v-addfa85d`]]),A=e.n({VnConfirm:()=>m,VnDate:()=>b,VnFetch:()=>E,VnForm:()=>k,VnInput:()=>S,VnInputDate:()=>T,VnSkeletonForm:()=>v,VnSpinner:()=>y});Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return A}});
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./components-S2tB-VQF.cjs");exports.VnConfirm=e.l,exports.VnDate=e.o,exports.VnFetch=e.r,exports.VnForm=e.n,exports.VnInput=e.a,exports.VnInputDate=e.i,exports.VnSkeletonForm=e.c,exports.VnSpinner=e.s;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./components-DH7vFPBF.cjs");exports.VnConfirm=e.l,exports.VnDate=e.o,exports.VnFetch=e.r,exports.VnForm=e.n,exports.VnInput=e.a,exports.VnInputDate=e.i,exports.VnSkeletonForm=e.c,exports.VnSpinner=e.s;
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s } from "./components-juAevl7-.js";
1
+ import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s } from "./components-BVCHOTDW.js";
2
2
  export { r as VnConfirm, a as VnDate, o as VnFetch, i as VnForm, e as VnInput, n as VnInputDate, t as VnSkeletonForm, s as VnSpinner };
package/dist/stores.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-DF3sbh8G.cjs");let t=require("vue"),n=require("pinia"),r=require("axios");r=e.r(r,1);var i=(0,n.defineStore)(`validationsStore`,{state:()=>({validations:null}),actions:{async fetchModels(){let{data:e}=await r.default.get(`Schemas/modelinfo`);this.validations=e}}}),a=(0,n.defineStore)(`arrayDataStore`,()=>{let e=(0,t.ref)({}),n={filter:{},userFilter:{},userParams:{},appliedParams:null,rawResponse:null,url:``,limit:20,skip:0,order:``,isLoading:!1,userParamsChanged:!1,exprBuilder:null,dynamicExprBuilder:{},dynamicWhereBuilder:{},searchUrl:`params`,navigate:null,page:1,mapKey:`id`,oneRecord:!1,hasChanges:!1,isLocal:!1,customFilterFn:null,remoteParamsArray:[],keyData:null,isStackableParams:!1,nonStackableParams:[],stackedParams:[],dataAnalyticsFilter:!1,ignoreUrlParams:[]};function r(t){return e.value[t]}function i(t){e.value[t]=s(t)}function a(t){e.value[t]?.channel?.close(),delete e.value[t]}function o(t,r=[]){r.length?r.forEach(r=>{if(r.includes(`.`)){let[i,a]=r.split(`.`);e.value[t][i][a]=n[a]}else Object.hasOwn(e.value[t],r)&&(e.value[t][r]=n[r])}):e.value[t]=s()}function s(e){return Object.assign(JSON.parse(JSON.stringify(n)),{data:(0,t.ref)(),map:(0,t.ref)(new Map),channel:new BroadcastChannel(`channel-data-${e}`)})}function c(e){o(e,[`skip`,`filter.skip`,`page`])}return{get:r,set:i,clear:a,reset:o,resetPagination:c}}),o=(0,n.defineStore)(`stateStore`,()=>{let e=(0,t.ref)(!1),n=(0,t.ref)(!1),r=(0,t.ref)(!1),i=(0,t.ref)(!1),a=(0,t.ref)(!1),o=(0,t.ref)(null),s=(0,t.ref)({});function c(e){o.value=e}function l(){n.value=!n.value}function u(){r.value=!r.value}function d(){i.value=!i.value}function f(e){r.value=e}function p(e){i.value=e}function m(){a.value=!a.value}function h(){e.value=!0}function g(){return e.value}function _(){return n.value}function v(){return r.value}function y(){return a.value}function b(e){s.value=e}return{cardDescriptor:o,cardDescriptorChangeValue:c,leftDrawer:n,rightDrawer:r,rightAdvancedDrawer:i,setMounted:h,isHeaderMounted:g,toggleLeftDrawer:l,toggleRightDrawer:u,toggleRightAdvancedDrawer:d,isLeftDrawerShown:_,isRightDrawerShown:v,isSubToolbarShown:y,toggleSubToolbar:m,rightDrawerChangeValue:f,rightAdvancedDrawerChangeValue:p,descriptors:s,setDescriptors:b}});exports.useArrayDataStore=a,exports.useStateStore=o,exports.useValidationsStore=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-DF3sbh8G.cjs");let t=require("vue"),n=require("pinia"),r=require("axios");r=e.r(r,1);var i=(0,n.defineStore)(`validationsStore`,{state:()=>({validations:null}),actions:{async fetchModels(){let{data:e}=await r.default.get(`Schemas/modelinfo`);this.validations=e}}}),a=(0,n.defineStore)(`arrayDataStore`,()=>{let e=(0,t.ref)({}),n={filter:{},userFilter:{},userParams:{},appliedParams:null,rawResponse:null,url:``,limit:20,skip:0,order:``,isLoading:!1,userParamsChanged:!1,exprBuilder:null,dynamicExprBuilder:{},dynamicWhereBuilder:{},searchUrl:`params`,navigate:null,page:1,mapKey:`id`,oneRecord:!1,hasChanges:!1,isLocal:!1,customFilterFn:null,remoteParamsArray:[],keyData:null,isStackableParams:!1,nonStackableParams:[],stackedParams:[],dataAnalyticsFilter:!1,ignoreUrlParams:[]};function r(t){return e.value[t]}function i(t){e.value[t]=s(t)}function a(t){e.value[t]?.channel?.close(),delete e.value[t]}function o(t,r=[]){r.length?r.forEach(r=>{if(r.includes(`.`)){let[i,a]=r.split(`.`);e.value[t][i][a]=n[a]}else Object.hasOwn(e.value[t],r)&&(e.value[t][r]=n[r])}):e.value[t]=s()}function s(){return Object.assign(JSON.parse(JSON.stringify(n)),{data:(0,t.ref)(),map:(0,t.ref)(new Map)})}function c(e){o(e,[`skip`,`filter.skip`,`page`])}return{get:r,set:i,clear:a,reset:o,resetPagination:c}}),o=(0,n.defineStore)(`stateStore`,()=>{let e=(0,t.ref)(!1),n=(0,t.ref)(!1),r=(0,t.ref)(!1),i=(0,t.ref)(!1),a=(0,t.ref)(!1),o=(0,t.ref)(null),s=(0,t.ref)({});function c(e){o.value=e}function l(){n.value=!n.value}function u(){r.value=!r.value}function d(){i.value=!i.value}function f(e){r.value=e}function p(e){i.value=e}function m(){a.value=!a.value}function h(){e.value=!0}function g(){return e.value}function _(){return n.value}function v(){return r.value}function y(){return a.value}function b(e){s.value=e}return{cardDescriptor:o,cardDescriptorChangeValue:c,leftDrawer:n,rightDrawer:r,rightAdvancedDrawer:i,setMounted:h,isHeaderMounted:g,toggleLeftDrawer:l,toggleRightDrawer:u,toggleRightAdvancedDrawer:d,isLeftDrawerShown:_,isRightDrawerShown:v,isSubToolbarShown:y,toggleSubToolbar:m,rightDrawerChangeValue:f,rightAdvancedDrawerChangeValue:p,descriptors:s,setDescriptors:b}});exports.useArrayDataStore=a,exports.useStateStore=o,exports.useValidationsStore=i;
package/dist/stores.js CHANGED
@@ -57,11 +57,10 @@ var r = t("validationsStore", {
57
57
  } else Object.hasOwn(t.value[e], r) && (t.value[e][r] = n[r]);
58
58
  }) : t.value[e] = s();
59
59
  }
60
- function s(t) {
60
+ function s() {
61
61
  return Object.assign(JSON.parse(JSON.stringify(n)), {
62
62
  data: e(),
63
- map: e(/* @__PURE__ */ new Map()),
64
- channel: new BroadcastChannel(`channel-data-${t}`)
63
+ map: e(/* @__PURE__ */ new Map())
65
64
  });
66
65
  }
67
66
  function c(e) {
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./components-S2tB-VQF.cjs"),t=require("./composables-BTfGi73U.cjs");function n(n,r={}){for(let t in e.t)n.component(t,e.t[t]);t.f(r.i18n)}var r={install:n};exports.VnConfirm=e.l,exports.VnDate=e.o,exports.VnFetch=e.r,exports.VnForm=e.n,exports.VnInput=e.a,exports.VnInputDate=e.i,exports.VnSkeletonForm=e.c,exports.VnSpinner=e.s,exports.default=r,exports.fetchLocalData=t.n,exports.focusFirstInput=t.p,exports.getObjectByKeys=t.a,exports.getObjectDifferences=t.o,exports.getRemoteAndLocalParams=t.r,Object.defineProperty(exports,"i18n",{enumerable:!0,get:function(){return t.d}}),exports.isComparableObject=t.s,exports.isSameValue=t.c,exports.requestData=t.i,exports.tMobile=t.h,exports.useArrayData=t.m,exports.useGlobalMessages=t.f,exports.useNotify=t.u,exports.useObjectComparison=t.l,exports.useRequired=t.g,exports.useState=t.t,exports.useValidator=t._;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./components-DH7vFPBF.cjs"),t=require("./composables-BTfGi73U.cjs");function n(n,r={}){for(let t in e.t)n.component(t,e.t[t]);t.f(r.i18n)}var r={install:n};exports.VnConfirm=e.l,exports.VnDate=e.o,exports.VnFetch=e.r,exports.VnForm=e.n,exports.VnInput=e.a,exports.VnInputDate=e.i,exports.VnSkeletonForm=e.c,exports.VnSpinner=e.s,exports.default=r,exports.fetchLocalData=t.n,exports.focusFirstInput=t.p,exports.getObjectByKeys=t.a,exports.getObjectDifferences=t.o,exports.getRemoteAndLocalParams=t.r,Object.defineProperty(exports,"i18n",{enumerable:!0,get:function(){return t.d}}),exports.isComparableObject=t.s,exports.isSameValue=t.c,exports.requestData=t.i,exports.tMobile=t.h,exports.useArrayData=t.m,exports.useGlobalMessages=t.f,exports.useNotify=t.u,exports.useObjectComparison=t.l,exports.useRequired=t.g,exports.useState=t.t,exports.useValidator=t._;
@@ -1,5 +1,5 @@
1
1
  import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, u as g } from "./composables-xGr9z2hA.js";
2
- import { a as _, c as v, i as y, l as b, n as x, o as S, r as C, s as w, t as T } from "./components-juAevl7-.js";
2
+ import { a as _, c as v, i as y, l as b, n as x, o as S, r as C, s as w, t as T } from "./components-BVCHOTDW.js";
3
3
  //#region lib/main.js
4
4
  function E(e, t = {}) {
5
5
  for (let t in T) e.component(t, T[t]);
@@ -3,7 +3,7 @@ import { nextTick, watch, computed, ref, useAttrs } from 'vue';
3
3
  import { useI18n } from 'vue-i18n';
4
4
  import { date, getCssVar, QInput, QIcon, QTooltip, QMenu, QDialog } from 'quasar';
5
5
  import VnDate from './VnDate.vue';
6
- import { useRequired } from '@verdnatura/vn-front-lib/composables';
6
+ import { useRequired } from 'lib/composables/useRequired';
7
7
 
8
8
  const $attrs = useAttrs();
9
9
  const { t } = useI18n();
@@ -60,11 +60,10 @@ export const useArrayDataStore = defineStore('arrayDataStore', () => {
60
60
  });
61
61
  }
62
62
 
63
- function getDefaultState(key) {
63
+ function getDefaultState() {
64
64
  return Object.assign(JSON.parse(JSON.stringify(defaultOpts)), {
65
65
  data: ref(),
66
66
  map: ref(new Map()),
67
- channel: new BroadcastChannel(`channel-data-${key}`),
68
67
  });
69
68
  }
70
69
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdnatura/vn-front-lib",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Vue 3 component and composable library",
5
5
  "license": "GPL-3.0",
6
6
  "author": "Verdnatura Levante SL",