1var W=Object.defineProperty;var X=(i,t,a)=>t in i?W(i,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[t]=a;var N=(i,t,a)=>X(i,typeof t!="symbol"?t+"":t,a);import{gr as g,k1 as h,k0 as A,jU as Z,jT as q,jO as v,fr as ee,bM as te,bL as ae,bl as re,d$ as ne,fM as ie,en as oe,ep as se}from"./sSvtHvyR.js";import{m as u,k as d}from"./BSYLsQ-1.js";import{u as ce}from"./DDqtQ-Fi.js";import{A as le}from"./e0Y6qrIs.js";import{D as de}from"./B1S2JH2m.js";import{G as w}from"./DD0mkNNK.js";import"./J_Wt1L_a.js";import"./DjlRatrT.js";import"./SFk0Fnst.js";import"./Bjll5bNE.js";import"./D0Xp7-mI.js";import"./ByMFkulf.js";class m{static async getAll(t){const a=new URLSearchParams;t&&a.append("search",t);const r=a.toString()?`${this.baseUrl}?${a.toString()}`:this.baseUrl;return(await g.get(r)).data}static async getById(t){return(await g.get(`${this.baseUrl}/${t}`)).data}static async create(t){return(await g.post(this.baseUrl,t)).data}static async update(t,a){return(await g.put(`${this.baseUrl}/${t}`,a)).data}static async patch(t,a,r){return(await g.patch(`${this.baseUrl}/${t}`,{PropertyName:a,PropertyValue:r})).data}static async delete(t){await g.delete(`${this.baseUrl}/${t}`)}static async toggleActive(t,a){await this.patch(t,"IsActive",a)}}N(m,"baseUrl","/HtmlCertificateCategory");const ue=({open:i,onClose:t,onSubmit:a,isLoading:r})=>{const{t:n}=h("CertificateCategory"),{t:c}=h("Shared"),{showError:p}=A(),C=u.useMemo(()=>({fields:[{type:"text",name:"name",label:n("Name"),placeholder:n("EnterName"),required:!0}],modal:{title:n("Create"),description:n("CreateDescription"),confirmText:c(r?"Saving":"Save"),cancelText:n("Cancel")}}),[n,c,r]),f=y=>{if(!r)try{const o={Name:String(y.name)||""};a(o)}catch(o){console.error("Form submission error:",o),p(o,"UnknownError")}},l=u.useMemo(()=>({}),[]);return d.jsx(w,{schema:C,onSubmit:f,open:i,onClose:t,isLoading:r,initialValues:l})},me=({onClose:i,onSubmit:t,isLoading:a,item:r})=>{const{t:n}=h("CertificateCategory"),{t:c}=h("Shared"),{showError:p}=A(),C=u.useMemo(()=>r?{name:(r==null?void 0:r.name)||""}:{},[r]),f=u.useMemo(()=>({fields:[{type:"text",name:"name",label:n("Name"),placeholder:n("EnterName"),required:!0}],modal:{title:n("Update"),description:n("EditDescription"),confirmText:c(a?"Saving":"Save"),cancelText:n("Cancel")}}),[n,c,a]),l=y=>{if(!a)try{const o={Name:String(y.name)||""};t(o)}catch(o){console.error("Form submission error:",o),p(o,"UnknownError")}};return r?d.jsx(w,{schema:f,onSubmit:l,open:!0,onClose:i,initialValues:C,isLoading:a},`edit-${r.id}`):null};function Te(){const{t:i}=h("CertificateCategory"),{t}=h("Shared"),{showSuccess:a,showError:r}=A(),n=Z(),[c,p]=u.useState({open:!1,item:null}),[C,f]=u.useState(!1),[l,y]=u.useState({open:!1,item:null}),[o,T]=u.useState(null),{data:D,isPending:F,error:S,refetch:I}=q({queryKey:["certificateCategory"],queryFn:()=>m.getAll(),retry:2,retryDelay:1e3}),P=(D==null?void 0:D.data)??[],{data:E,isLoading:$}=q({queryKey:["certificateCategory-detail",o],queryFn:()=>m.getById(o),enabled:!!o,staleTime:se.NO_CACHE,gcTime:oe.NO_CACHE});u.useEffect(()=>{S&&r(S,"DataLoadError")},[S,r]),u.useEffect(()=>{E!=null&&E.data&&o&&(y({open:!0,item:E.data}),T(null))},[E,o]);const b=v({mutationFn:e=>m.delete(e),onSuccess:()=>{n.invalidateQueries({queryKey:["certificateCategory"]}),a("delete")},onError:e=>{console.error("Delete error:",e),r(e)}}),M=v({mutationFn:e=>m.create(e),onSuccess:()=>{n.invalidateQueries({queryKey:["certificateCategory"]}),f(!1),a("save")},onError:e=>{console.error("Create error:",e),r(e)}}),U=v({mutationFn:({id:e,data:s})=>m.update(e,s),onSuccess:()=>{n.invalidateQueries({queryKey:["certificateCategory"]}),y({open:!1,item:null}),a("update")},onError:e=>{console.error("Update error:",e),r(e)}}),k=v({mutationFn:({id:e,propertyName:s,propertyValue:x})=>m.patch(e,s,x),onSuccess:()=>{n.invalidateQueries({queryKey:["certificateCategory"]}),a("changes")},onError:e=>{console.error("Patch error:",e),r(e),n.invalidateQueries({queryKey:["certificateCategory"]})}}),Q=ce({queryKey:["certificateCategory"],mutationFn:(e,s)=>m.patch(e,"IsActive",s),toggleField:"isActive",showSuccessToast:!0}),K=e=>{e.id&&Q.toggle(e.id,!e.isActive)},R=[{field:"name",headerName:i("Name"),filterType:"string",flex:1,editable:!0,editType:"text"},{field:"isActive",headerName:i("Status"),filterType:"boolean",flex:1,cellStyle:{display:"flex",alignItems:"center",justifyContent:"center",padding:"0 !important",margin:"0 !important"},customCellRenderer:e=>{const s=e.data;return s?d.jsx(ee,{checked:!!e.value,onCheckedChange:()=>K(s),size:"sm"}):null}},{field:"insertedDate",headerName:i("InsertedDate"),filterType:"date",flex:1}],_=e=>{T(e.id)},O=e=>{b.isPending||p({open:!0,item:e})},B=()=>{var e;(e=c.item)!=null&&e.id&&(b.mutate(c.item.id),p({open:!1,item:null}))},j=()=>{p({open:!1,item:null})},G=()=>{f(!0)},L=e=>{M.mutate(e)}
1,H=e=>{var s;(s=l.item)!=null&&s.id&&U.mutate({id:l.item.id,data:e})},V=(e,s,x,z)=>{if(x===z||!e.id)return;const J=s.charAt(0).toUpperCase()+s.slice(1);k.mutate({id:e.id,propertyName:J,propertyValue:x})},Y=e=>[{label:t("Edit"),icon:ne,onClick:()=>_(e),variant:"default"},{label:b.isPending?i("Deleting"):i("Delete"),icon:ie,onClick:()=>O(e),variant:"destructive"}];return S?d.jsx(te,{title:i("Error"),error:S,variant:"error",showRetry:!0,onRetry:()=>I()}):d.jsxs(ae,{children:[d.jsx(re,{data:P,columns:R,title:i("CertificateCategory"),description:i("Description"),isPending:F,loading:$,onAddClick:G,onCellEdit:V,actions:e=>d.jsx(le,{row:e,actions:Y(e)}),texts:{addButtonLabel:t("Add")}}),d.jsx(de,{open:c.open,onOpenChange:e=>!e&&j(),onConfirm:B,onCancel:j,isLoading:b.isPending}),d.jsx(ue,{open:C,onClose:()=>f(!1),onSubmit:L,isLoading:M.isPending}),l.open&&l.item&&d.jsx(me,{onClose:()=>y({open:!1,item:null}),onSubmit:H,isLoading:U.isPending,item:l.item},l.item.id)]})}export{Te as CertificateCategoryPage,m as CertificateCategoryService};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.