pgo-ui 1.0.65 → 1.0.66

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,4 @@
1
+ import { _ as f } from "./index-BMVwp3ri.js";
2
+ export {
3
+ f as default
4
+ };
@@ -17666,7 +17666,7 @@ return (${L});`)();
17666
17666
  }
17667
17667
  }, K = P(() => {
17668
17668
  const I = {}, Y = new Set(c.form.fields.map((Z) => Z.inputType?.toLowerCase()));
17669
- return (Y.has("search") || Y.has("inputsearch")) && (I.search = Ze(() => Promise.resolve().then(() => Cf)), I.searchbox = Ze(() => Promise.resolve().then(() => Cf))), Y.has("select") && (I.select = Ze(() => Promise.resolve().then(() => wd))), Y.has("textarea") && (I.textarea = Ze(() => Promise.resolve().then(() => ph))), (Y.has("textfield") || Y.has("text") || Y.has("string")) && (I.textfield = Ze(() => Promise.resolve().then(() => vo)), I.text = Ze(() => Promise.resolve().then(() => vo)), I.string = Ze(() => Promise.resolve().then(() => vo))), (Y.has("datepicker") || Y.has("date")) && (I.datepicker = Ze(() => Promise.resolve().then(() => ua)), I.date = Ze(() => Promise.resolve().then(() => ua))), Y.has("chipgroup") && (I.chipgroup = Ze(() => Promise.resolve().then(() => km))), Y.has("checkbox") && (I.checkbox = Ze(() => Promise.resolve().then(() => y1))), Y.has("radio") && (I.radio = Ze(() => import("./Radio-VYPzRLpZ.js"))), (Y.has("numberfield") || Y.has("number")) && (I.numberfield = Ze(() => Promise.resolve().then(() => da)), I.number = Ze(() => Promise.resolve().then(() => da))), (Y.has("file") || Y.has("filefield")) && (I.file = Ze(() => Promise.resolve().then(() => yf)), I.filefield = Ze(() => Promise.resolve().then(() => yf))), (Y.has("label") || Y.has("labelfield")) && (I.label = Ze(() => Promise.resolve().then(() => bf)), I.labelfield = Ze(() => Promise.resolve().then(() => bf))), I;
17669
+ return (Y.has("search") || Y.has("inputsearch")) && (I.search = Ze(() => Promise.resolve().then(() => Cf)), I.searchbox = Ze(() => Promise.resolve().then(() => Cf))), Y.has("select") && (I.select = Ze(() => Promise.resolve().then(() => wd))), Y.has("textarea") && (I.textarea = Ze(() => Promise.resolve().then(() => ph))), (Y.has("textfield") || Y.has("text") || Y.has("string")) && (I.textfield = Ze(() => Promise.resolve().then(() => vo)), I.text = Ze(() => Promise.resolve().then(() => vo)), I.string = Ze(() => Promise.resolve().then(() => vo))), (Y.has("datepicker") || Y.has("date")) && (I.datepicker = Ze(() => Promise.resolve().then(() => ua)), I.date = Ze(() => Promise.resolve().then(() => ua))), Y.has("chipgroup") && (I.chipgroup = Ze(() => Promise.resolve().then(() => km))), Y.has("checkbox") && (I.checkbox = Ze(() => Promise.resolve().then(() => y1))), Y.has("radio") && (I.radio = Ze(() => import("./Radio-BzQGEMaV.js"))), (Y.has("numberfield") || Y.has("number")) && (I.numberfield = Ze(() => Promise.resolve().then(() => da)), I.number = Ze(() => Promise.resolve().then(() => da))), (Y.has("file") || Y.has("filefield")) && (I.file = Ze(() => Promise.resolve().then(() => yf)), I.filefield = Ze(() => Promise.resolve().then(() => yf))), (Y.has("label") || Y.has("labelfield")) && (I.label = Ze(() => Promise.resolve().then(() => bf)), I.labelfield = Ze(() => Promise.resolve().then(() => bf))), I;
17670
17670
  }), U = (I) => {
17671
17671
  const Y = I?.toLowerCase() || "textfield";
17672
17672
  return K.value[Y] || K.value.textfield;
@@ -17856,7 +17856,7 @@ return (${L});`)();
17856
17856
  label: "buttons.draft",
17857
17857
  color: "primary",
17858
17858
  loading: i.value && u.value === "draft",
17859
- disabled: i.value,
17859
+ disabled: i.value || !o.value,
17860
17860
  onClick: Y[2] || (Y[2] = (R) => fe("draft"))
17861
17861
  }, null, 8, ["loading", "disabled"])) : F("", !0),
17862
17862
  b.value === "edit" ? (x(), xe(Z, {
@@ -17864,7 +17864,7 @@ return (${L});`)();
17864
17864
  label: "buttons.update",
17865
17865
  color: "warning",
17866
17866
  loading: i.value && u.value === "update",
17867
- disabled: i.value || !A.value,
17867
+ disabled: i.value || !A.value || !o.value,
17868
17868
  onClick: Y[3] || (Y[3] = (R) => fe("update"))
17869
17869
  }, null, 8, ["loading", "disabled"])) : F("", !0),
17870
17870
  b.value === "edit" ? (x(), xe(Z, {
@@ -17872,7 +17872,7 @@ return (${L});`)();
17872
17872
  label: "buttons.submit",
17873
17873
  color: "primary",
17874
17874
  loading: i.value && u.value === "submit",
17875
- disabled: i.value,
17875
+ disabled: i.value || !o.value,
17876
17876
  onClick: Y[4] || (Y[4] = (R) => fe("submit"))
17877
17877
  }, null, 8, ["loading", "disabled"])) : F("", !0),
17878
17878
  D(Z, {
package/dist/index.es.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as o, A as r, B as i, b as t, c as n, d as l, e as p, C as m, f as d, g as T, h as c, i as w, j as C, k as b, D as u, l as x, m as D, n as F, o as h, p as B, E as P, q as g, r as I, s as R, t as S, u as v, v as y, w as A, L as N, x as V, y as f, M as k, z as L, N as M, F as E, G, H, I as O, J as U, S as j, K as q, O as z, P as J, T as K, Q, R as W, U as X, V as Y, W as Z, X as $, Y as _, Z as aa, $ as sa, a0 as ea, a1 as oa, a2 as ra, a3 as ia, a4 as ta, a5 as na, a6 as la, a7 as pa, a8 as ma } from "./index-C8QitkFZ.js";
1
+ import { a as o, A as r, B as i, b as t, c as n, d as l, e as p, C as m, f as d, g as T, h as c, i as w, j as C, k as b, D as u, l as x, m as D, n as F, o as h, p as B, E as P, q as g, r as I, s as R, t as S, u as v, v as y, w as A, L as N, x as V, y as f, M as k, z as L, N as M, F as E, G, H, I as O, J as U, S as j, K as q, O as z, P as J, T as K, Q, R as W, U as X, V as Y, W as Z, X as $, Y as _, Z as aa, $ as sa, a0 as ea, a1 as oa, a2 as ra, a3 as ia, a4 as ta, a5 as na, a6 as la, a7 as pa, a8 as ma } from "./index-BMVwp3ri.js";
2
2
  import "vue";
3
3
  export {
4
4
  o as AppBar,
package/dist/index.umd.js CHANGED
@@ -32,7 +32,7 @@
32
32
  `);return new Function(Y+`
33
33
  return (${S});`)()})(L)}catch(L){return console.warn(`Error evaluating group condition "${A.condition}":`,L.message),!0}},H=()=>!p.form.fields||!Array.isArray(p.form.fields)?[]:p.form.fields.filter(A=>A&&!A.group),D=A=>{if(!A||A.hidden===!0)return!1;if(!A.condition)return!0;try{let L=A.condition.trim();const j=B();return!!(S=>{if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(S))return!!j[S];if(/^!/.test(S)){const ee=S.substring(1).trim();if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(ee))return!j[ee]}const Y=Object.keys(j).map(ee=>{const se=j[ee];return se==null?`const ${ee} = null;`:typeof se=="string"?`const ${ee} = "${se.replace(/"/g,'\\"')}";`:typeof se=="boolean"?`const ${ee} = ${se};`:typeof se=="number"?`const ${ee} = ${se};`:`const ${ee} = ${JSON.stringify(se)};`}).join(`
34
34
  `);return new Function(Y+`
35
- return (${S});`)()})(L)}catch(L){console.warn(`Error evaluating condition "${A.condition}":`,L.message);const j=A.condition.trim().replace(/^!/,"");if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(j)){const S=B()[j];return A.condition.trim().startsWith("!")?!S:!!S}return!0}},_=e.computed(()=>{const A={},L=new Set(p.form.fields.map(j=>j.inputType?.toLowerCase()));return(L.has("search")||L.has("inputsearch"))&&(A.search=e.defineAsyncComponent(()=>Promise.resolve().then(()=>ud)),A.searchbox=e.defineAsyncComponent(()=>Promise.resolve().then(()=>ud))),L.has("select")&&(A.select=e.defineAsyncComponent(()=>Promise.resolve().then(()=>m5))),L.has("textarea")&&(A.textarea=e.defineAsyncComponent(()=>Promise.resolve().then(()=>ld))),(L.has("textfield")||L.has("text")||L.has("string"))&&(A.textfield=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Ar)),A.text=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Ar)),A.string=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Ar))),(L.has("datepicker")||L.has("date"))&&(A.datepicker=e.defineAsyncComponent(()=>Promise.resolve().then(()=>wo)),A.date=e.defineAsyncComponent(()=>Promise.resolve().then(()=>wo))),L.has("chipgroup")&&(A.chipgroup=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Ms))),L.has("checkbox")&&(A.checkbox=e.defineAsyncComponent(()=>Promise.resolve().then(()=>ah))),L.has("radio")&&(A.radio=e.defineAsyncComponent(()=>Promise.resolve().then(()=>W9))),(L.has("numberfield")||L.has("number"))&&(A.numberfield=e.defineAsyncComponent(()=>Promise.resolve().then(()=>ko)),A.number=e.defineAsyncComponent(()=>Promise.resolve().then(()=>ko))),(L.has("file")||L.has("filefield"))&&(A.file=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Gc)),A.filefield=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Gc))),(L.has("label")||L.has("labelfield"))&&(A.label=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Kc)),A.labelfield=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Kc))),A}),T=A=>{const L=A?.toLowerCase()||"textfield";return _.value[L]||_.value.textfield},K=(A,L)=>{if(typeof A!="string")return A;if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(A))return L[A];try{const j=Object.keys(L),M=Object.values(L);return new Function(...j,`return ${A}`)(...M)}catch(j){return console.warn("Error evaluating expression:",A,j),!1}},z=A=>{if(!A)return{};const L=B(),{type:j,key:M,inputType:S,columnSpan:Y,rules:O,condition:ee,group:se,events:G,hidden:U,disabled:C,reaonly:R,value:I,default:ae,...F}=A;if(U)return{};const le={fieldKey:M};return(A.inputType==="file"||A.inputType==="filefield")&&(le.relationId=l.value||p.editItemId,le.onUploadSuccess=()=>X(),le["onView-pdf"]=ie=>h("view-pdf",ie),le.fileList=w.value?.[A.dataKey??A.key]),Object.entries(F).forEach(([ie,ke])=>{if(!(ke===""||ke===null||ke===void 0)){if(ie.startsWith("on")&&typeof ke=="string"){console.warn(`Filtering out string event handler: ${ie}`);return}typeof ke=="string"&&(ie==="disabled"||ie==="readonly"||ie==="required"||ie==="visible"||ie==="hidden")?ke.includes("===")||ke.includes("!==")||ke.includes("==")||ke.includes("!=")||ke.includes("&&")||ke.includes("||")||ke.includes("?")||ke.includes(":")?le[ie]=K(ke,L):L.hasOwnProperty(ke)?le[ie]=L[ke]:le[ie]=ke:le[ie]=ke}}),C!==void 0&&(typeof C=="string"?le.disabled=K(C,L):le.disabled=C),G&&typeof G=="object"&&Object.keys(G).forEach(ie=>{const ke=G[ie];let Ae;ie.includes(":")?Ae="on"+ie.split(":").map(de=>de.charAt(0).toUpperCase()+de.slice(1)).join(""):ie.includes("-")?Ae="on"+ie.split("-").map(de=>de.charAt(0).toUpperCase()+de.slice(1)).join(""):Ae="on"+ie.charAt(0).toUpperCase()+ie.slice(1),le[Ae]=de=>{$(ke,de)}}),le.itemText&&(le["item-text"]=le.itemText,delete le.itemText),le.itemValue&&(le["item-value"]=le.itemValue,delete le.itemValue),le.itemTitle&&(le["item-title"]=le.itemTitle,delete le.itemTitle),le},W=A=>{if(!A||!r)return[];if(Array.isArray(A))return A;if(typeof A=="string")try{return A.replace(/[\[\]]/g,"").trim().split(",").map(M=>M.trim()).map(M=>{const S=M.match(/rules\.(\w+)(\(.*\))?/);if(S){const[,Y,O]=S;if(r[Y]){if(O){const ee=O.slice(1,-1).split(",").map(se=>(se=se.trim(),isNaN(se)?se.replace(/['"]/g,""):Number(se)));return r[Y](...ee)}return r[Y]}}return null}).filter(Boolean)}catch(L){return console.error("Failed to parse rules:",A,L),[]}return[]},te=async A=>{d.value=A;const{valid:L}=await s.value?.validate();if(!L){f?.show({message:"Please fix validation errors",variant:"error"});return}if(!g){f?.show({message:"API not configured",variant:"error"});return}if(!p.form?.crudLink){f?.show({message:"Form configuration error",variant:"error"});return}c.value=!0;try{const j=oe(k),M=l.value||p.editItemId;let S;if(A==="draft"&&!M){j.status="draft";const Y=p.form?.createLink||p.form?.crudLink;S=await g.post(Y,j),l.value=S?.data?.id||S?.id,k.id=l.value,x.value="edit",await Q(),f?.show({message:S?.data?.message||"Draft saved",variant:"success"}),h("submit:success",S?.message)}else if(A==="update"){j.status="draft",j.id=M;const Y=p.form?.updateLink||p.form?.crudLink;S=await g.put(`${Y}/${M}`,j),await Q(),f?.show({message:S?.data?.message||"Updated successfully",variant:"success"}),h("submit:success",S?.message)}else if(A==="submit"){j.status="submitted",j.id=M;const Y=p.form?.updateLink||p.form?.crudLink;S=await g.put(`${Y}/${M}`,j),f?.show({message:S?.data?.message||"Submitted successfully",variant:"success"}),h("submit:success",S?.message),me(),s.value?.reset()}}catch(j){console.error("Form submission error:",j);const M=j.response?.data?.message||"Form submission failed";f?.show({message:M,variant:"error"}),(j.response?.status===422||j.response?.data?.errors)&&(s.value?.setErrors(j.response.data.errors),h("submit:error",j))}finally{c.value=!1}},oe=A=>{if(!p.form.fields||!Array.isArray(p.form.fields))return A;const L=p.form.fields.filter(M=>M&&M.NotDbField===!0).map(M=>M.key);console.log("Non-DB fields to exclude:",L);const j={};return Object.keys(A).forEach(M=>{L.includes(M)||(j[M]=A[M])}),console.log("Original form data:",A),console.log("Filtered DB-only data:",j),j},re=(A,L)=>{if(!(!L||!A))return L.split(".").reduce((j,M)=>{if(j!=null)return j[M]},A)},Q=async()=>{const A=l.value||p.editItemId;if(A)try{const L=p.form?.showLink||p.form?.crudLink,j=await g.get(`${L}/${A}`);if(j){const M=j;if(w.value=j||j.data||{},k.id=A,p.form.fields.forEach(S=>{if(!S||!S.key)return;const Y=S.dataKey??S.key;if(Y.includes(".")){const O=re(M,Y);if(O!==void 0){k[S.key]=O;return}}M[Y]!==void 0&&(k[S.key]=M[Y])}),await e.nextTick(),s.value?.validate){const S=await s.value.validate();a.value=S?.valid??!1}m.value=JSON.parse(JSON.stringify({...k})),u.value=!0}}catch(L){f?.show({message:"Error fetching data",variant:"error"}),console.error("Error fetching data:",L)}},me=()=>{i.value=!1,c.value=!1,s.value?.reset(),a.value=!1,u.value=!1,x.value=p.mode,m.value={},l.value=null,h("close",!1)},X=()=>{Q()};return E(),e.watch(()=>p.items,A=>{A&&E()},{deep:!0}),N(),Z(),e.watch(()=>p.form,A=>{A&&(A.variables&&N(),A.functions&&Z(),p.mode==="edit"&&p.editItemId&&A.crudLink&&Q())},{deep:!0}),e.watch(()=>p.mode,A=>{x.value=A,A==="edit"&&p.editItemId?Q():A==="create"&&E()}),e.onMounted(()=>{Q()}),e.watch(()=>p.modelValue,A=>{}),e.watch(i,A=>{A||(s.value?.reset(),a.value=!1,console.log("form open",s.value.isValid,a.value))}),(A,L)=>{const j=e.resolveComponent("Button");return e.openBlock(),e.createBlock(fn,{modelValue:i.value,"onUpdate:modelValue":L[5]||(L[5]=M=>i.value=M),persistent:"",padding:"p-3",bg:n.bg},{footer:e.withCtx(()=>[e.createElementVNode("div",Lw,[x.value==="create"?(e.openBlock(),e.createBlock(j,{key:0,label:"buttons.draft",color:"primary",loading:c.value&&d.value==="draft",disabled:c.value,onClick:L[2]||(L[2]=M=>te("draft"))},null,8,["loading","disabled"])):e.createCommentVNode("",!0),x.value==="edit"?(e.openBlock(),e.createBlock(j,{key:1,label:"buttons.update",color:"warning",loading:c.value&&d.value==="update",disabled:c.value||!b.value,onClick:L[3]||(L[3]=M=>te("update"))},null,8,["loading","disabled"])):e.createCommentVNode("",!0),x.value==="edit"?(e.openBlock(),e.createBlock(j,{key:2,label:"buttons.submit",color:"primary",loading:c.value&&d.value==="submit",disabled:c.value,onClick:L[4]||(L[4]=M=>te("submit"))},null,8,["loading","disabled"])):e.createCommentVNode("",!0),e.createVNode(j,{label:"buttons.close",color:"gray",disabled:c.value,onClick:me},null,8,["disabled"])])]),default:e.withCtx(()=>[n.form?.banner?(e.openBlock(),e.createBlock(e.unref(Vt),e.mergeProps({key:0},n.form?.banner,{bannerClass:"mb-4"}),null,16)):e.createCommentVNode("",!0),e.createVNode(gl,{modelValue:a.value,"onUpdate:modelValue":L[1]||(L[1]=M=>a.value=M),ref_key:"formRef",ref:s},{default:e.withCtx(()=>[p.mode==="edit"&&p.editItemId?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,"onUpdate:modelValue":L[0]||(L[0]=M=>k.id=M),type:"hidden"},null,512)),[[e.vModelText,k.id]]):e.createCommentVNode("",!0),n.form.groups?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.form.groups,(M,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:S},[q(M)?(e.openBlock(),e.createElementBlock("div",Hw,[e.createElementVNode("div",{class:e.normalizeClass(["relative grid border border-gray-300 rounded px-4 pt-6 pb-4",n.bg,e.unref(jt)[M.numberOfColumns]||e.unref(jt)[2],"gap-x-2 gap-y-4"])},[M.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["absolute top-0 -translate-y-1/2 bg-inherit px-2 text-sm font-semibold mb-2",n.lang==="dv"?"right-4":"left-4"])},e.toDisplayString(M.title?e.unref(je)(M.title,n.lang):""),3)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(P(M.name),(Y,O)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:Y?.key||O},[Y&&Y.key&&D(Y)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref($t)[Y.columnSpan]||e.unref($t)[1])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(T(Y.inputType)),e.mergeProps({modelValue:k[Y.key],"onUpdate:modelValue":ee=>k[Y.key]=ee},{ref_for:!0},z(Y),{rules:W(Y.rules)}),null,16,["modelValue","onUpdate:modelValue","rules"]))],2)):e.createCommentVNode("",!0)],64))),128))],2)])):e.createCommentVNode("",!0)],64))),128)),H().length>0?(e.openBlock(),e.createElementBlock("div",Dw,[e.createElementVNode("div",{class:e.normalizeClass(["grid",e.unref(jt)[n.form.numberOfColumns]||e.unref(jt)[2],"gap-2"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(H(),(M,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:M?.key||S},[M&&M.key&&D(M)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref($t)[M.columnSpan]||e.unref($t)[1])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(T(M.inputType)),e.mergeProps({modelValue:k[M.key],"onUpdate:modelValue":Y=>k[M.key]=Y},{ref_for:!0},z(M),{rules:W(M.rules)}),null,16,["modelValue","onUpdate:modelValue","rules"]))],2)):e.createCommentVNode("",!0)],64))),128))],2)])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["grid",e.unref(jt)[n.form.numberOfColumns]||e.unref(jt)[2],"gap-2"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.form.fields,(M,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:M?.key||S},[M&&M.key&&D(M)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref($t)[M.columnSpan]||e.unref($t)[1])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(T(M.inputType)),e.mergeProps({modelValue:k[M.key],"onUpdate:modelValue":Y=>k[M.key]=Y},{ref_for:!0},z(M),{rules:W(M.rules)}),null,16,["modelValue","onUpdate:modelValue","rules"]))],2)):e.createCommentVNode("",!0)],64))),128))],2))]),_:1},8,["modelValue"])]),_:1},8,["modelValue","bg"])}}},_5={id:35,uuid:"a9d90aff-c9a1-4ade-bb35-a2870bd2008e",ref_num:"MGF/2023/1",summary:"އާމިނަތު އަމްނާ ސަޢީދުގެ އިންޑިކޭޓިވް އެސެސްމަންޓް އާމިނަތު އަމްނާ",client_ref_number:"435-D4-A/2023/409",qazziyya_number:null,submission_id:54881,sender_type:"org",entry_type:321,sender__person_id:"A279738",sender__org_id:"7ad5ce66-fa29-4cbd-9177-0eedb8221bf6",selected_drafting:"upload",total_pages:null,file_id:68,upload_data:[{bucket:"gov",prefix:"cform",version:null,filename:"null.pdf"}],status:"submitted",remarks:null,entry_id:658841,submitted_at:"2023-09-19 11:33:34",rejected_reason:null,rejected_by:null,created_by:97,created_at:"2023-09-19T06:33:10.000000Z",updated_at:"2026-03-28T19:00:00.000000Z",updated_by:null,submissionDetails:{form_ref_number:"asdf",person_details:"person"},display_name:["null.pdf"],url:[{display_name:"431_DC_2023 IA Order.pdf",url:"http://v2.govapi.pgo.mv/api/files/9a2b3e52-ec90-471b-b7b3-a188f4d85595/stream",delete_url:"http://v2.govapi.pgo.mv/api/files/68"},{display_name:"null.pdf",url:"https://files.pgo.mv/download/gov/cform/null.pdf",delete_url:"http://v2.govapi.pgo.mv/api/files/CForm/35/default"}],file:{id:68,uuid:"9a2b3e52-ec90-471b-b7b3-a188f4d85595",path:"forms/1695105198_431_DC_2023 IA Order.pdf",created_by:"59",created_at:"2023-09-19T06:33:18.000000Z",updated_at:"2023-09-19T06:33:18.000000Z",display_name:"431_DC_2023 IA Order.pdf",url:"http://v2.govapi.pgo.mv/api/files/9a2b3e52-ec90-471b-b7b3-a188f4d85595/stream"}},Pw={key:1,class:"flex items-center justify-center py-10"},Ow={key:0,class:"mb-4"},_w={key:0,class:"mb-4"},Rw={class:"flex justify-end gap-2"},qc={__name:"ViewRecord",props:{modelValue:{type:Boolean,default:!1},form:{type:Object,required:!0},itemId:{type:[String,Number],default:null},lang:{type:String,default:"dv"},bg:{type:String,default:"bg-background-color"}},emits:["update:modelValue","close"],setup(n,{emit:t}){const{language:r}=e.inject("i18n"),o=e.ref(!0),a=e.ref(!1),l=t,i=n,s=e.inject("api"),c=e.inject("snackbar"),d=e.reactive({}),u=e.reactive({}),m=e.ref({}),h=()=>({...d,...u,props:i}),p={name:"FieldDisplay",props:{field:{type:Object,required:!0},record:{type:Object,default:()=>({})},lang:{type:String,default:"dv"}},setup(V){const{language:b}=e.inject("i18n"),E=e.inject("parentLang",""),N=e.computed(()=>V.lang||E||b?.value||"dv"),Z=D=>D?typeof D=="string"?D:D[N.value]||D.en||Object.values(D)[0]||"":"",$=e.computed(()=>V.record?.[V.field.key]),P=e.computed(()=>{const D=$.value;return Array.isArray(D)?D.filter(_=>_&&_.url):[]}),q=e.computed(()=>{const D=$.value;return D==null||D===""?"—":typeof D=="boolean"?D?"Yes":"No":Array.isArray(D)?D.length&&typeof D[0]=="object"&&D[0].url?null:D.length?D.join(", "):"—":typeof D=="object"?JSON.stringify(D):String(D)}),H=e.computed(()=>V.field.displayType?.toLowerCase()||"text");return{resolveLabel:Z,displayValue:q,displayType:H,fileLinks:P,computedLang:N}},template:`
35
+ return (${S});`)()})(L)}catch(L){console.warn(`Error evaluating condition "${A.condition}":`,L.message);const j=A.condition.trim().replace(/^!/,"");if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(j)){const S=B()[j];return A.condition.trim().startsWith("!")?!S:!!S}return!0}},_=e.computed(()=>{const A={},L=new Set(p.form.fields.map(j=>j.inputType?.toLowerCase()));return(L.has("search")||L.has("inputsearch"))&&(A.search=e.defineAsyncComponent(()=>Promise.resolve().then(()=>ud)),A.searchbox=e.defineAsyncComponent(()=>Promise.resolve().then(()=>ud))),L.has("select")&&(A.select=e.defineAsyncComponent(()=>Promise.resolve().then(()=>m5))),L.has("textarea")&&(A.textarea=e.defineAsyncComponent(()=>Promise.resolve().then(()=>ld))),(L.has("textfield")||L.has("text")||L.has("string"))&&(A.textfield=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Ar)),A.text=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Ar)),A.string=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Ar))),(L.has("datepicker")||L.has("date"))&&(A.datepicker=e.defineAsyncComponent(()=>Promise.resolve().then(()=>wo)),A.date=e.defineAsyncComponent(()=>Promise.resolve().then(()=>wo))),L.has("chipgroup")&&(A.chipgroup=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Ms))),L.has("checkbox")&&(A.checkbox=e.defineAsyncComponent(()=>Promise.resolve().then(()=>ah))),L.has("radio")&&(A.radio=e.defineAsyncComponent(()=>Promise.resolve().then(()=>W9))),(L.has("numberfield")||L.has("number"))&&(A.numberfield=e.defineAsyncComponent(()=>Promise.resolve().then(()=>ko)),A.number=e.defineAsyncComponent(()=>Promise.resolve().then(()=>ko))),(L.has("file")||L.has("filefield"))&&(A.file=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Gc)),A.filefield=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Gc))),(L.has("label")||L.has("labelfield"))&&(A.label=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Kc)),A.labelfield=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Kc))),A}),T=A=>{const L=A?.toLowerCase()||"textfield";return _.value[L]||_.value.textfield},K=(A,L)=>{if(typeof A!="string")return A;if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(A))return L[A];try{const j=Object.keys(L),M=Object.values(L);return new Function(...j,`return ${A}`)(...M)}catch(j){return console.warn("Error evaluating expression:",A,j),!1}},z=A=>{if(!A)return{};const L=B(),{type:j,key:M,inputType:S,columnSpan:Y,rules:O,condition:ee,group:se,events:G,hidden:U,disabled:C,reaonly:R,value:I,default:ae,...F}=A;if(U)return{};const le={fieldKey:M};return(A.inputType==="file"||A.inputType==="filefield")&&(le.relationId=l.value||p.editItemId,le.onUploadSuccess=()=>X(),le["onView-pdf"]=ie=>h("view-pdf",ie),le.fileList=w.value?.[A.dataKey??A.key]),Object.entries(F).forEach(([ie,ke])=>{if(!(ke===""||ke===null||ke===void 0)){if(ie.startsWith("on")&&typeof ke=="string"){console.warn(`Filtering out string event handler: ${ie}`);return}typeof ke=="string"&&(ie==="disabled"||ie==="readonly"||ie==="required"||ie==="visible"||ie==="hidden")?ke.includes("===")||ke.includes("!==")||ke.includes("==")||ke.includes("!=")||ke.includes("&&")||ke.includes("||")||ke.includes("?")||ke.includes(":")?le[ie]=K(ke,L):L.hasOwnProperty(ke)?le[ie]=L[ke]:le[ie]=ke:le[ie]=ke}}),C!==void 0&&(typeof C=="string"?le.disabled=K(C,L):le.disabled=C),G&&typeof G=="object"&&Object.keys(G).forEach(ie=>{const ke=G[ie];let Ae;ie.includes(":")?Ae="on"+ie.split(":").map(de=>de.charAt(0).toUpperCase()+de.slice(1)).join(""):ie.includes("-")?Ae="on"+ie.split("-").map(de=>de.charAt(0).toUpperCase()+de.slice(1)).join(""):Ae="on"+ie.charAt(0).toUpperCase()+ie.slice(1),le[Ae]=de=>{$(ke,de)}}),le.itemText&&(le["item-text"]=le.itemText,delete le.itemText),le.itemValue&&(le["item-value"]=le.itemValue,delete le.itemValue),le.itemTitle&&(le["item-title"]=le.itemTitle,delete le.itemTitle),le},W=A=>{if(!A||!r)return[];if(Array.isArray(A))return A;if(typeof A=="string")try{return A.replace(/[\[\]]/g,"").trim().split(",").map(M=>M.trim()).map(M=>{const S=M.match(/rules\.(\w+)(\(.*\))?/);if(S){const[,Y,O]=S;if(r[Y]){if(O){const ee=O.slice(1,-1).split(",").map(se=>(se=se.trim(),isNaN(se)?se.replace(/['"]/g,""):Number(se)));return r[Y](...ee)}return r[Y]}}return null}).filter(Boolean)}catch(L){return console.error("Failed to parse rules:",A,L),[]}return[]},te=async A=>{d.value=A;const{valid:L}=await s.value?.validate();if(!L){f?.show({message:"Please fix validation errors",variant:"error"});return}if(!g){f?.show({message:"API not configured",variant:"error"});return}if(!p.form?.crudLink){f?.show({message:"Form configuration error",variant:"error"});return}c.value=!0;try{const j=oe(k),M=l.value||p.editItemId;let S;if(A==="draft"&&!M){j.status="draft";const Y=p.form?.createLink||p.form?.crudLink;S=await g.post(Y,j),l.value=S?.data?.id||S?.id,k.id=l.value,x.value="edit",await Q(),f?.show({message:S?.data?.message||"Draft saved",variant:"success"}),h("submit:success",S?.message)}else if(A==="update"){j.status="draft",j.id=M;const Y=p.form?.updateLink||p.form?.crudLink;S=await g.put(`${Y}/${M}`,j),await Q(),f?.show({message:S?.data?.message||"Updated successfully",variant:"success"}),h("submit:success",S?.message)}else if(A==="submit"){j.status="submitted",j.id=M;const Y=p.form?.updateLink||p.form?.crudLink;S=await g.put(`${Y}/${M}`,j),f?.show({message:S?.data?.message||"Submitted successfully",variant:"success"}),h("submit:success",S?.message),me(),s.value?.reset()}}catch(j){console.error("Form submission error:",j);const M=j.response?.data?.message||"Form submission failed";f?.show({message:M,variant:"error"}),(j.response?.status===422||j.response?.data?.errors)&&(s.value?.setErrors(j.response.data.errors),h("submit:error",j))}finally{c.value=!1}},oe=A=>{if(!p.form.fields||!Array.isArray(p.form.fields))return A;const L=p.form.fields.filter(M=>M&&M.NotDbField===!0).map(M=>M.key);console.log("Non-DB fields to exclude:",L);const j={};return Object.keys(A).forEach(M=>{L.includes(M)||(j[M]=A[M])}),console.log("Original form data:",A),console.log("Filtered DB-only data:",j),j},re=(A,L)=>{if(!(!L||!A))return L.split(".").reduce((j,M)=>{if(j!=null)return j[M]},A)},Q=async()=>{const A=l.value||p.editItemId;if(A)try{const L=p.form?.showLink||p.form?.crudLink,j=await g.get(`${L}/${A}`);if(j){const M=j;if(w.value=j||j.data||{},k.id=A,p.form.fields.forEach(S=>{if(!S||!S.key)return;const Y=S.dataKey??S.key;if(Y.includes(".")){const O=re(M,Y);if(O!==void 0){k[S.key]=O;return}}M[Y]!==void 0&&(k[S.key]=M[Y])}),await e.nextTick(),s.value?.validate){const S=await s.value.validate();a.value=S?.valid??!1}m.value=JSON.parse(JSON.stringify({...k})),u.value=!0}}catch(L){f?.show({message:"Error fetching data",variant:"error"}),console.error("Error fetching data:",L)}},me=()=>{i.value=!1,c.value=!1,s.value?.reset(),a.value=!1,u.value=!1,x.value=p.mode,m.value={},l.value=null,h("close",!1)},X=()=>{Q()};return E(),e.watch(()=>p.items,A=>{A&&E()},{deep:!0}),N(),Z(),e.watch(()=>p.form,A=>{A&&(A.variables&&N(),A.functions&&Z(),p.mode==="edit"&&p.editItemId&&A.crudLink&&Q())},{deep:!0}),e.watch(()=>p.mode,A=>{x.value=A,A==="edit"&&p.editItemId?Q():A==="create"&&E()}),e.onMounted(()=>{Q()}),e.watch(()=>p.modelValue,A=>{}),e.watch(i,A=>{A||(s.value?.reset(),a.value=!1,console.log("form open",s.value.isValid,a.value))}),(A,L)=>{const j=e.resolveComponent("Button");return e.openBlock(),e.createBlock(fn,{modelValue:i.value,"onUpdate:modelValue":L[5]||(L[5]=M=>i.value=M),persistent:"",padding:"p-3",bg:n.bg},{footer:e.withCtx(()=>[e.createElementVNode("div",Lw,[x.value==="create"?(e.openBlock(),e.createBlock(j,{key:0,label:"buttons.draft",color:"primary",loading:c.value&&d.value==="draft",disabled:c.value||!a.value,onClick:L[2]||(L[2]=M=>te("draft"))},null,8,["loading","disabled"])):e.createCommentVNode("",!0),x.value==="edit"?(e.openBlock(),e.createBlock(j,{key:1,label:"buttons.update",color:"warning",loading:c.value&&d.value==="update",disabled:c.value||!b.value||!a.value,onClick:L[3]||(L[3]=M=>te("update"))},null,8,["loading","disabled"])):e.createCommentVNode("",!0),x.value==="edit"?(e.openBlock(),e.createBlock(j,{key:2,label:"buttons.submit",color:"primary",loading:c.value&&d.value==="submit",disabled:c.value||!a.value,onClick:L[4]||(L[4]=M=>te("submit"))},null,8,["loading","disabled"])):e.createCommentVNode("",!0),e.createVNode(j,{label:"buttons.close",color:"gray",disabled:c.value,onClick:me},null,8,["disabled"])])]),default:e.withCtx(()=>[n.form?.banner?(e.openBlock(),e.createBlock(e.unref(Vt),e.mergeProps({key:0},n.form?.banner,{bannerClass:"mb-4"}),null,16)):e.createCommentVNode("",!0),e.createVNode(gl,{modelValue:a.value,"onUpdate:modelValue":L[1]||(L[1]=M=>a.value=M),ref_key:"formRef",ref:s},{default:e.withCtx(()=>[p.mode==="edit"&&p.editItemId?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,"onUpdate:modelValue":L[0]||(L[0]=M=>k.id=M),type:"hidden"},null,512)),[[e.vModelText,k.id]]):e.createCommentVNode("",!0),n.form.groups?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.form.groups,(M,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:S},[q(M)?(e.openBlock(),e.createElementBlock("div",Hw,[e.createElementVNode("div",{class:e.normalizeClass(["relative grid border border-gray-300 rounded px-4 pt-6 pb-4",n.bg,e.unref(jt)[M.numberOfColumns]||e.unref(jt)[2],"gap-x-2 gap-y-4"])},[M.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["absolute top-0 -translate-y-1/2 bg-inherit px-2 text-sm font-semibold mb-2",n.lang==="dv"?"right-4":"left-4"])},e.toDisplayString(M.title?e.unref(je)(M.title,n.lang):""),3)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(P(M.name),(Y,O)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:Y?.key||O},[Y&&Y.key&&D(Y)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref($t)[Y.columnSpan]||e.unref($t)[1])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(T(Y.inputType)),e.mergeProps({modelValue:k[Y.key],"onUpdate:modelValue":ee=>k[Y.key]=ee},{ref_for:!0},z(Y),{rules:W(Y.rules)}),null,16,["modelValue","onUpdate:modelValue","rules"]))],2)):e.createCommentVNode("",!0)],64))),128))],2)])):e.createCommentVNode("",!0)],64))),128)),H().length>0?(e.openBlock(),e.createElementBlock("div",Dw,[e.createElementVNode("div",{class:e.normalizeClass(["grid",e.unref(jt)[n.form.numberOfColumns]||e.unref(jt)[2],"gap-2"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(H(),(M,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:M?.key||S},[M&&M.key&&D(M)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref($t)[M.columnSpan]||e.unref($t)[1])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(T(M.inputType)),e.mergeProps({modelValue:k[M.key],"onUpdate:modelValue":Y=>k[M.key]=Y},{ref_for:!0},z(M),{rules:W(M.rules)}),null,16,["modelValue","onUpdate:modelValue","rules"]))],2)):e.createCommentVNode("",!0)],64))),128))],2)])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["grid",e.unref(jt)[n.form.numberOfColumns]||e.unref(jt)[2],"gap-2"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.form.fields,(M,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:M?.key||S},[M&&M.key&&D(M)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref($t)[M.columnSpan]||e.unref($t)[1])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(T(M.inputType)),e.mergeProps({modelValue:k[M.key],"onUpdate:modelValue":Y=>k[M.key]=Y},{ref_for:!0},z(M),{rules:W(M.rules)}),null,16,["modelValue","onUpdate:modelValue","rules"]))],2)):e.createCommentVNode("",!0)],64))),128))],2))]),_:1},8,["modelValue"])]),_:1},8,["modelValue","bg"])}}},_5={id:35,uuid:"a9d90aff-c9a1-4ade-bb35-a2870bd2008e",ref_num:"MGF/2023/1",summary:"އާމިނަތު އަމްނާ ސަޢީދުގެ އިންޑިކޭޓިވް އެސެސްމަންޓް އާމިނަތު އަމްނާ",client_ref_number:"435-D4-A/2023/409",qazziyya_number:null,submission_id:54881,sender_type:"org",entry_type:321,sender__person_id:"A279738",sender__org_id:"7ad5ce66-fa29-4cbd-9177-0eedb8221bf6",selected_drafting:"upload",total_pages:null,file_id:68,upload_data:[{bucket:"gov",prefix:"cform",version:null,filename:"null.pdf"}],status:"submitted",remarks:null,entry_id:658841,submitted_at:"2023-09-19 11:33:34",rejected_reason:null,rejected_by:null,created_by:97,created_at:"2023-09-19T06:33:10.000000Z",updated_at:"2026-03-28T19:00:00.000000Z",updated_by:null,submissionDetails:{form_ref_number:"asdf",person_details:"person"},display_name:["null.pdf"],url:[{display_name:"431_DC_2023 IA Order.pdf",url:"http://v2.govapi.pgo.mv/api/files/9a2b3e52-ec90-471b-b7b3-a188f4d85595/stream",delete_url:"http://v2.govapi.pgo.mv/api/files/68"},{display_name:"null.pdf",url:"https://files.pgo.mv/download/gov/cform/null.pdf",delete_url:"http://v2.govapi.pgo.mv/api/files/CForm/35/default"}],file:{id:68,uuid:"9a2b3e52-ec90-471b-b7b3-a188f4d85595",path:"forms/1695105198_431_DC_2023 IA Order.pdf",created_by:"59",created_at:"2023-09-19T06:33:18.000000Z",updated_at:"2023-09-19T06:33:18.000000Z",display_name:"431_DC_2023 IA Order.pdf",url:"http://v2.govapi.pgo.mv/api/files/9a2b3e52-ec90-471b-b7b3-a188f4d85595/stream"}},Pw={key:1,class:"flex items-center justify-center py-10"},Ow={key:0,class:"mb-4"},_w={key:0,class:"mb-4"},Rw={class:"flex justify-end gap-2"},qc={__name:"ViewRecord",props:{modelValue:{type:Boolean,default:!1},form:{type:Object,required:!0},itemId:{type:[String,Number],default:null},lang:{type:String,default:"dv"},bg:{type:String,default:"bg-background-color"}},emits:["update:modelValue","close"],setup(n,{emit:t}){const{language:r}=e.inject("i18n"),o=e.ref(!0),a=e.ref(!1),l=t,i=n,s=e.inject("api"),c=e.inject("snackbar"),d=e.reactive({}),u=e.reactive({}),m=e.ref({}),h=()=>({...d,...u,props:i}),p={name:"FieldDisplay",props:{field:{type:Object,required:!0},record:{type:Object,default:()=>({})},lang:{type:String,default:"dv"}},setup(V){const{language:b}=e.inject("i18n"),E=e.inject("parentLang",""),N=e.computed(()=>V.lang||E||b?.value||"dv"),Z=D=>D?typeof D=="string"?D:D[N.value]||D.en||Object.values(D)[0]||"":"",$=e.computed(()=>V.record?.[V.field.key]),P=e.computed(()=>{const D=$.value;return Array.isArray(D)?D.filter(_=>_&&_.url):[]}),q=e.computed(()=>{const D=$.value;return D==null||D===""?"—":typeof D=="boolean"?D?"Yes":"No":Array.isArray(D)?D.length&&typeof D[0]=="object"&&D[0].url?null:D.length?D.join(", "):"—":typeof D=="object"?JSON.stringify(D):String(D)}),H=e.computed(()=>V.field.displayType?.toLowerCase()||"text");return{resolveLabel:Z,displayValue:q,displayType:H,fileLinks:P,computedLang:N}},template:`
36
36
  <div class="flex flex-col gap-1">
37
37
  <!-- Label -->
38
38
  <span
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pgo-ui",
3
- "version": "1.0.65",
3
+ "version": "1.0.66",
4
4
  "description": "A Vue 3 component library with PGO design system",
5
5
  "private": false,
6
6
  "type": "module",
@@ -1015,7 +1015,7 @@ const initializeFormData = () => {
1015
1015
  // Initialize on mount
1016
1016
  onMounted(() => {
1017
1017
  // if (props.mode === 'edit' && props.editItemId) {
1018
- fetchData()
1018
+ // fetchData()
1019
1019
  // } else {
1020
1020
  // initializeFormData()
1021
1021
  // }
@@ -101,7 +101,7 @@
101
101
  label="buttons.draft"
102
102
  color="primary"
103
103
  :loading="isSubmitting && clickedButton === 'draft'"
104
- :disabled="isSubmitting"
104
+ :disabled="isSubmitting || !valid"
105
105
  @click="handleSubmit('draft')"
106
106
  />
107
107
 
@@ -111,7 +111,7 @@
111
111
  label="buttons.update"
112
112
  color="warning"
113
113
  :loading="isSubmitting && clickedButton === 'update'"
114
- :disabled="isSubmitting || !isFormDirty"
114
+ :disabled="isSubmitting || !isFormDirty || !valid"
115
115
  @click="handleSubmit('update')"
116
116
  />
117
117
 
@@ -121,7 +121,7 @@
121
121
  label="buttons.submit"
122
122
  color="primary"
123
123
  :loading="isSubmitting && clickedButton === 'submit'"
124
- :disabled="isSubmitting"
124
+ :disabled="isSubmitting || !valid"
125
125
  @click="handleSubmit('submit')"
126
126
  />
127
127
 
@@ -1,4 +0,0 @@
1
- import { _ as f } from "./index-C8QitkFZ.js";
2
- export {
3
- f as default
4
- };