1var Ce=Object.defineProperty;var Se=(l,a,r)=>a in l?Ce(l,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):l[a]=r;var G=(l,a,r)=>Se(l,typeof a!="symbol"?a+"":a,r);import{m as u,k as i}from"./BSYLsQ-1.js";import{gE as x,kf as D,ke as K,k6 as B,cS as Y,ad as W,eM as X,k7 as ve,k1 as E,fB as be,hs as xe,bR as Ee,bQ as De,e8 as ke,fX as _,bl as z,eF as Me,ew as Ae,ey as we}from"./C1VBpTXZ.js";import{u as Ie}from"./B40vA0qN.js";import{u as je}from"./DvpWsLzX.js";import{D as H}from"./CnBOezS_.js";import{B as Ne}from"./D1TOhXeT.js";import{C as qe}from"./QWdKJGoJ.js";import{G as J}from"./jNE8QrUl.js";import{C as Z}from"./DtG5sfBg.js";import"./DlPWDibz.js";import"./DjlRatrT.js";import"./SFk0Fnst.js";import"./BY0R6b8G.js";import"./BDV7tMia.js";import"./CVcd3GKi.js";import"./BK884DBU.js";import"./CrIbqNMQ.js";import"./Cvvv2JMI.js";import"./DbSJdHCo.js";import"./CAn6CeTS.js";class h{static async getAll(a){const r=new URLSearchParams;a&&r.append("search",a);const t=r.toString()?`${this.baseUrl}/GetAll?${r.toString()}`:`${this.baseUrl}/GetAll`;return(await x.get(t)).data}static async getById(a){return(await x.get(`${this.baseUrl}/GetById/${a}`)).data}static async create(a){return(await x.post(this.baseUrl,a)).data}static async update(a,r){return(await x.put(`${this.baseUrl}/${a}`,r)).data}static async patch(a,r,t){return(await x.patch(`${this.baseUrl}/${a}`,{PropertyName:r,PropertyValue:t},{headers:{"Content-Type":"application/json-patch+json"}})).data}static async delete(a){await x.delete(`${this.baseUrl}/${a}`)}static async toggleActive(a,r){await this.patch(a,"IsActive",r)}static async bulkUpdateStatus(a){await Promise.all(a.map(r=>this.patch(r,"IsActive",!0)))}static async bulkDelete(a){await Promise.all(a.map(r=>this.delete(r)))}}G(h,"baseUrl","/Region");const Fe=({open:l,onClose:a,onSubmit:r,isLoading:t})=>{const{t:n}=D("Bolge"),{t:m}=D("Shared"),{showError:k,showSuccess:M}=K(),{data:d}=B({queryKey:["companies"],queryFn:()=>Z.getBase(),enabled:l}),y=(d==null?void 0:d.data)??[],f=u.useMemo(()=>y.map(o=>({label:o.name,value:o.id})),[y]),S=()=>String(Math.floor(Math.random()*1e5)).padStart(5,"0"),A=u.useMemo(()=>({fields:[{type:"select",name:"companyId",label:n("Companies"),placeholder:m("Select"),required:!0,options:f},{type:"text",name:"name",label:n("Name"),placeholder:n("EnterName"),required:!0,validate:(o,c)=>{if(String(o||"").length>249)return n("MaxCharacters")}},{type:"custom",name:"code",label:n("Code"),required:!0,render:({value:o,onChange:c,values:C})=>{const g=()=>{const p=S();c(p),M("CodeAssigned")};return i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Y,{type:"text",value:String(o||""),onChange:p=>c(p.target.value),placeholder:n("EnterCode"),maxLength:249}),i.jsx(W,{type:"button",variant:"outline",size:"icon",onClick:g,title:n("GenerateCode")||"Otomatik Kod Ãret",disabled:!1,className:"h-10 w-10 flex-shrink-0",children:i.jsx(X,{className:"h-4 w-4"})})]})},validate:(o,c)=>{if(String(o||"").length>249)return n("MaxCharacters")}}],modal:{title:n("AddRegion"),description:n("CreateDescription"),confirmText:m(t?"Saving":"Save"),cancelText:m("Cancel")}}),[n,m,t,f]),v=o=>{if(!t)try{const c={name:String(o.name)||"",code:String(o.code)||"",companyId:Number(o.companyId)||0};r(c)}catch(c){console.error("Form submission error:",c),k(c,"UnknownError")}},w=u.useMemo(()=>({}),[]);return i.jsx(J,{schema:A,onSubmit:v,open:l,onClose:a,isLoading:t,initialValues:w})},Pe=({onClose:l,onSubmit:a,isLoading:r,item:t})=>{const{t:n}=D("Bolge"),{t:m}=D("Shared"),{showError:k,showSuccess:M}=K(),{data:d}=B({queryKey:["companies"],queryFn:()=>Z.getBase()}),y=(d==null?void 0:d.data)??[],f=u.useMemo(()=>y.map(o=>({label:o.name,value:o.id})),[y]),S=()=>String(Math.floor(Math.random()*1e5)).padStart(5,"0"),A=u.useMemo(()=>{var o;return t?{companyId:(t==null?void 0:t.companyId)||((o=t==null?void 0:t.company)==null?void 0:o.id)||0,name:(t==null?void 0:t.name)||"",code:(t==null?void 0:t.code)||""}:{}},[t]),v=u.useMemo(()=>({fields:[{type:"select",name:"companyId",label:n("Companies"),placeholder:m("Select"),required:!0,options:f},{type:"text",name:"name",label:n("Name"),placeholder:n("EnterName"),required:!0,validate:(o,c)=>{if(String(o||"").length>249)return n("MaxCharacters")}}
1,{type:"custom",name:"code",label:n("Code"),required:!0,render:({value:o,onChange:c,values:C})=>{const g=()=>{const p=S();c(p),M("CodeAssigned")};return i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Y,{type:"text",value:String(o||""),onChange:p=>c(p.target.value),placeholder:n("EnterCode"),maxLength:249}),i.jsx(W,{type:"button",variant:"outline",size:"icon",onClick:g,title:n("GenerateCode")||"Otomatik Kod Ãret",disabled:!1,className:"h-10 w-10 flex-shrink-0",children:i.jsx(X,{className:"h-4 w-4"})})]})},validate:(o,c)=>{if(String(o||"").length>249)return n("MaxCharacters")}}],modal:{title:n("UpdateRegion"),description:n("EditDescription"),confirmText:m(r?"Saving":"Save"),cancelText:m("Cancel")}}),[n,m,r,f]),w=o=>{if(!r)try{const c={name:String(o.name)||"",code:String(o.code)||"",companyId:Number(o.companyId)||0,isActive:(t==null?void 0:t.isActive)??!0};a(c)}catch(c){console.error("Form submission error:",c),k(c,"UnknownError")}};return t?i.jsx(J,{schema:v,onSubmit:w,open:!0,onClose:l,initialValues:A,isLoading:r},`edit-${t.id}`):null};function at(){const{t:l}=D("Bolge"),{t:a}=D("Shared"),{showSuccess:r,showError:t}=K(),n=ve(),{page:m,pageSize:k,onPaginationChange:M}=je({defaultPageSize:20}),[d,y]=u.useState([]),[f,S]=u.useState({open:!1,item:null}),[A,v]=u.useState(!1),[w,o]=u.useState(!1),[c,C]=u.useState(!1),[g,p]=u.useState({open:!1,item:null}),[I,Q]=u.useState(null),{data:q,isPending:ee,error:j}=B({queryKey:["region"],queryFn:()=>h.getAll(),retry:2,retryDelay:1e3}),te=u.useMemo(()=>((q==null?void 0:q.data)??[]).map(e=>{var s;return{...e,companyDisplay:e.companyName||((s=e.company)==null?void 0:s.name)||""}}),[q]),{data:N,isLoading:ae}=B({queryKey:["region-detail",I],queryFn:()=>h.getById(I),enabled:!!I,staleTime:we.NO_CACHE,gcTime:Ae.NO_CACHE});u.useEffect(()=>{j&&t(j,"DataLoadError")},[j,t]),u.useEffect(()=>{N!=null&&N.data&&I&&(p({open:!0,item:N.data}),Q(null))},[N,I]);const F=E({mutationFn:e=>h.delete(e),onSuccess:()=>{n.invalidateQueries({queryKey:["region"]}),r("delete")},onError:e=>{console.error("Delete error:",e),t(e)}}),T=E({mutationFn:e=>h.bulkDelete(e),onSuccess:()=>{n.invalidateQueries({queryKey:["region"]}),y([]),v(!1),r("delete")},onError:e=>{console.error("Bulk delete error:",e),t(e)}}),U=E({mutationFn:async e=>{const s=n.getQueryData(["region"]);s!=null&&s.data&&await Promise.all(e.map(b=>{const P=s.data.find(R=>R.id===b);return P?h.patch(b,"IsActive",!P.isActive):Promise.resolve()}))},onSuccess:()=>{n.invalidateQueries({queryKey:["region"]}),r("changes"),o(!1),y([])},onError:e=>{console.error("Bulk status update error:",e),t(e)}}),O=E({mutationFn:e=>h.create(e),onSuccess:()=>{n.invalidateQueries({queryKey:["region"]}),C(!1),r("save")},onError:e=>{console.error("Create error:",e),t(e)}}),$=E({mutationFn:({id:e,data:s})=>h.update(e,s),onSuccess:()=>{n.invalidateQueries({queryKey:["region"]}),p({open:!1,item:null}),r("update")},onError:e=>{console.error("Update error:",e),t(e)}}),ne=Ie({queryKey:["region"],mutationFn:(e,s)=>h.patch(e,"IsActive",s),toggleField:"isActive"}),re=e=>{e.id&&ne.toggle(e.id,!e.isActive)},oe=u.useMemo(()=>[{field:"name",headerName:l("Name"),filterType:"string",editable:!0,editType:"text"},{field:"code",headerName:l("Code"),filterType:"string",editable:!0,editType:"text"},{field:"companyDisplay",headerName:l("CompanyName"),filterType:"select"},{field:"isActive",headerName:l("Status"),filterType:"boolean",customCellRenderer:e=>{const s=e.data;return s?i.jsx(be,{checked:!!s.isActive,onCheckedChange:()=>re(s),size:"sm"}):null}},{field:"insertedDate",headerName:l("InsertedDate"),filterType:"date",valueFormatter:e=>e.value?xe(String(e.value)):"-"}],[l]),se=e=>{Q(e.id)},ie=e=>{F.isPending||S({open:!0,item:e})},le=()=>{var e;(e=f.item)!=null&&e.id&&(F.mutate(f.item.id),S({open:!1,item:null}))},L=()=>{S({open:!1,item:null})},ce=()=>{d.length!==0&&v(!0)},de=()=>{d.length>0&&T.mutate(d)},V=()=>{v(!1)},ue=()=>{d.length!==0&&o(!0)},me=()=>{C(!0)},pe=e=>{O.mutate(e)},ge=e=>{var s;(s=g.item)!=null&&s.id&&$.mutate({id:g.item.id,data:e})},he=E({mutationFn:({id:e,propertyName:s,propertyValue:b})=>h.patch(e,s,b),onSuccess:()=>{n.invalidateQueries({queryKey:["region"]}),r("changes")}
1,onError:e=>{console.error("Patch error:",e),t(e),n.invalidateQueries({queryKey:["region"]})}}),ye=(e,s,b,P)=>{if(b===P)return;const R=s.charAt(0).toUpperCase()+s.slice(1);he.mutate({id:e.id,propertyName:R,propertyValue:b})},fe=e=>[{label:a("Edit"),permission:"Edit",icon:ke,onClick:()=>se(e),variant:"default",primary:!0,iconOnly:!0},{label:F.isPending?a("Deleting"):a("Delete"),permission:"Delete",icon:_,onClick:()=>ie(e),variant:"destructive",primary:!0,iconOnly:!0}];return j?i.jsx(Ee,{title:a("Error"),error:j,variant:"error",showRetry:!0,onRetry:()=>n.invalidateQueries({queryKey:["region"]})}):i.jsxs(De,{children:[i.jsx(qe,{data:te,columns:oe,getRowId:e=>e.id??0,title:l("Regions"),isPending:ee,loading:ae,variant:"table",defaultSort:{field:"insertedDate",direction:"desc"},onAddClick:me,onCellEdit:ye,actions:fe,layout:{titleField:"name",metaFields:[],statusField:"isActive",hideStatusLabel:!0,titleColumnWidth:"35%"},selection:{selectedIds:d,onChange:e=>y(e.map(Number).filter(s=>s>0)),actions:i.jsxs(i.Fragment,{children:[i.jsx(z,{icon:Me,text:l("ChangeStatusOfSelected"),permission:"ToggleActive",onClick:ue,disabled:d.length===0||U.isPending}),i.jsx(z,{icon:_,text:l("DeleteSelected"),permission:"Delete",tone:"danger",onClick:ce,disabled:d.length===0||T.isPending})]})},initialPage:m,pageSize:k,onPaginationChange:M,texts:{addButtonLabel:a("Add"),itemLabel:l("ItemLabel")}}),c&&i.jsx(Fe,{open:c,onClose:()=>C(!1),onSubmit:pe,isLoading:O.isPending}),g.open&&g.item&&i.jsx(Pe,{onClose:()=>p({open:!1,item:null}),onSubmit:ge,isLoading:$.isPending,item:g.item},g.item.id),i.jsx(H,{open:f.open,onOpenChange:e=>!e&&L(),onConfirm:le,onCancel:L,isLoading:F.isPending}),i.jsx(Ne,{open:w,onOpenChange:o,onConfirm:()=>{U.mutate(d)},onCancel:()=>o(!1),isLoading:U.isPending,selectedCount:d.length}),i.jsx(H,{open:A,onOpenChange:e=>!e&&V(),onConfirm:de,onCancel:V,isLoading:T.isPending})]})}export{at as RegionPage,h as RegionService};
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.