1import{k as at,n as R,bh as Se,r as h,b1 as J,bo as W,j as e,ax as ke,ay as Ce,az as De,aA as Re,aM as we,L as A,c as q,d as M,e as w,aL as nt,P as lt,aB as rt,al as Rt,am as wt,an as Tt,ao as Pt,bm as Ft,ad as Et,ae as Mt,o as At,a9 as Te,b0 as $,a4 as ot,ac as it,W as Pe,eA as $t,_ as ct,N as ut,C as Lt,x as zt,b4 as Ot,ak as qt,ab as Bt,a5 as Qt}from"./index-BOnFUPNC.js";import{P as It}from"./PaginationBar-CX7zuTaR.js";import{L as Ye}from"./pagination-Dy8-spPX.js";import{f as dt,e as Vt,t as Ht,s as Kt,a as Jt,u as Wt,c as Yt,d as Gt,r as Zt,l as ie,g as Ge,b as Xt,h as Ut}from"./api-BMFi3HOI.js";import{S as fe}from"./switch-BGF5y80v.js";import{C as es}from"./checkbox-CnD9Khib.js";import{a as ts}from"./ManageTableUi-CvX6UYeX.js";/** 2 * @license lucide-react v0.460.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const ss=at("Settings2",[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);/** 7 * @license lucide-react v0.460.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const as=at("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]),Y={all:["remunerations"],list:(t={})=>["remunerations","list",t],types:()=>["remunerations","types"],rules:()=>["remunerations","points-rules"]},ne={all:["taxonomy-types"],list:t=>["taxonomy-types",t]},ce=5*60*1e3,mt="remuneracoes-table",Ze=50,pt=[{value:1,label:"Janeiro"},{value:2,label:"Fevereiro"},{value:3,label:"Março"},{value:4,label:"Abril"},{value:5,label:"Maio"},{value:6,label:"Junho"},{value:7,label:"Julho"},{value:8,label:"Agosto"},{value:9,label:"Setembro"},{value:10,label:"Outubro"},{value:11,label:"Novembro"},{value:12,label:"Dezembro"}];function ns(t=new Date){const s=t.getFullYear();return[s-1,s,s+1]}function ue(t,s){const a=pt.find(l=>l.value===Number(s));return`${(a==null?void 0:a.label)||s}/${t}`}function Fe(){return{rounding_mode:"down",rounding_step:500,limit_enabled:!1,limit_type:"value",limit_value:null,progression_enabled:!1,bands:[]}}function z(t){if(typeof t=="number"&&Number.isFinite(t))return{...Fe(),limit_enabled:t>0,limit_type:"value",limit_value:t>0?t:null};const s=t&&typeof t=="object"?t:{},a=(s.bands||[]).map(n=>({min:Number(n.min)||0,max:n.max==null||n.max===""?null:Number(n.max),percent:Number(n.percent)||0})).sort((n,i)=>n.min-i.min),l=Number(s.rounding_step);return{rounding_mode:s.rounding_mode==="up"?"up":"down",rounding_step:Number.isFinite(l)&&l>0?l:500,limit_enabled:!!s.limit_enabled,limit_type:s.limit_type==="points"?"points":"value",limit_value:s.limit_value==null||s.limit_value===""?null:Number(s.limit_value),progression_enabled:!!s.progression_enabled,bands:a}}function ls(t,s){const a=Number(t);if(!Number.isFinite(a)||a<=0)return 0;const l=z(s),n=l.rounding_step||500;return n<=0?a:l.rounding_mode==="up"?Math.ceil(a/n)*n:Math.floor(a/n)*n}function rs(t,s){const a=z(s);if(!a.progression_enabled)return 100;const l=Number(t);if(!Number.isFinite(l))return 100;for(const n of a.bands){const i=n.max;if(l>=n.min&&(i==null||Number.isNaN(i)||l<=i))return Number(n.percent)||0}return 100}function os(t){const s=z(t);return`Pontos arredondados para ${s.rounding_mode==="up"?"cima":"baixo"} em blocos de ${s.rounding_step}.`}function is(t,s,a,l=null){const n=z(l),i=s!=null&&s.has_base_salary?Number(t.base_salary||0):0,b=s!=null&&s.has_bonus?Number(t.bonus_amount||0):0,u=s!=null&&s.has_prolabore?Number(t.prolabore_amount||0):0,x=Number(t.points_percentage||0),d=a==null||a===""?null:Number(a),r=d!=null&&Number.isFinite(d)?d:null;let m=0,g=null;if(s!=null&&s.has_points&&r!=null&&r>0&&x>0){let T=r;const N=Number(n.limit_value);n.limit_enabled&&n.limit_type==="points"&&Number.isFinite(N)&&N>0&&(T=Math.min(T,N)),g=rs(T,n),m=T*x*(g/100),n.limit_enabled&&n.limit_type==="value"&&Number.isFinite(N)&&N>0&&m>N&&(m=N)}const f=i+b+m,v=s!=null&&s.is_partner?Math.max(0,f-u):0;return{points:r,points_value:pe(m),profit_amount:pe(v),final_amount:pe(f),progression_percent:g}}function pe(t){return Math.round(Number(t)*100)/100}function cs(t,s,a,l,n){return(t||[]).map(i=>{const b=xt(i,s,a),u=is(i,b,l==null?void 0:l[i.id],n);return{...i,...u,flags:b}})}function Ee(t,s){const a={},l=z(s||(t==null?void 0:t.rules));for(const n of(t==null?void 0:t.data)||[]){const i=n.user_id;i!=null&&(n.points!=null&&n.points!==""?a[i]=ls(Number(n.points),l):n.points_rounded!=null&&n.points_rounded!==""&&(a[i]=Number(n.points_rounded)))}return a}function H(t,s){if(!s)return"";const a=(t||[]).find(l=>l.key===s);return(a==null?void 0:a.label)||s}function Xe(t){const s={};
11for(const a of t||[])a!=null&&a.key&&(s[a.key]=a);return s}function xt(t,s,a){const l=(s==null?void 0:s[t==null?void 0:t.employment_type])||{},n=(a==null?void 0:a[t==null?void 0:t.compensation_type])||{};return{is_partner:!!l.is_partner,has_base_salary:!!(l.has_base_salary||n.has_base_salary),has_bonus:!!(l.has_bonus||n.has_bonus),has_points:!!(l.has_points||n.has_points),has_prolabore:!!l.has_prolabore,has_profit_sharing:!!l.has_profit_sharing}}function xe(t,s){const a=t||[],l=a.filter(n=>n.is_enabled!==!1);if(s&&!l.some(n=>n.key===s)){const n=a.find(i=>i.key===s);return n?[...l,n]:[...l,{key:s,label:s}]}return l}function us(t){if(t==null)return null;const s=String(t).trim();if(s==="")return null;const a=Number(s.replace(",","."));return Number.isFinite(a)?a:Number.NaN}function ds(t,s){return t==null&&s==null?!0:t==null||s==null?!1:Number(t)===Number(s)}function ms(t,s,a){const l=t==null||t==="",n=s==null||s==="";if(l&&n)return 0;if(l)return 1;if(n)return-1;if(typeof t=="number"&&typeof s=="number")return a==="desc"?s-t:t-s;const i=String(t).localeCompare(String(s),"pt-BR",{sensitivity:"base",numeric:!0});return a==="desc"?-i:i}function ps(t,s,a,l){const n=[...t];return a?n.sort((i,b)=>{let u,x;if(a==="employee")u=i.name,x=b.name;else if(a==="vinculo")u=H(s.employment_types,i.employment_type),x=H(s.employment_types,b.employment_type);else if(a==="forma")u=H(s.compensation_types,i.compensation_type),x=H(s.compensation_types,b.compensation_type);else if(a==="partner")u=H(s.partner_types,i.partner_type),x=H(s.partner_types,b.partner_type);else{u=i[a],x=b[a];const d=u==null||u===""?null:Number(u),r=x==null||x===""?null:Number(x);d!=null&&r!=null&&Number.isFinite(d)&&Number.isFinite(r)&&(u=d,x=r)}return ms(u,x,l)}):n.sort((i,b)=>(i.name||"").localeCompare(b.name||"","pt-BR"))}function xs(){const t={pageSize:Ze,sortKey:"employee",sortDir:"asc"};try{const s=localStorage.getItem(mt);if(!s)return t;const a=JSON.parse(s);return{pageSize:Number(a.pageSize)>0?Number(a.pageSize):Ze,sortKey:a.sortKey||"employee",sortDir:a.sortDir==="desc"?"desc":"asc"}}catch{return t}}function bs(t){try{localStorage.setItem(mt,JSON.stringify(t))}catch{}}function hs(t,s){var d,r;let a=0,l=0,n=0,i=0,b=0,u=0,x=0;for(const m of t)a+=Number(m.base_salary||0),l+=Number(m.prolabore_amount||0),n+=Number(m.points_percentage||0),i+=Number(m.points_value||0),b+=Number(m.profit_amount||0),u+=Number(m.final_amount||0),((d=s==null?void 0:s[m.employment_type])!=null&&d.is_partner||(r=m.flags)!=null&&r.is_partner)&&(x+=1);return{payroll_total:a,prolabore_total:l,points_percentage_total:n,points_value_total:i,profit_total:b,final_total:u,partners_count:x,records:t.length}}async function gs({year:t,month:s,rules:a,setPointsByUserId:l,setPointsMeta:n}){var m,g,f;const i=await dt({year:t,month:s}),b=z(i.rules||a);l(Ee(i,b)),n(i);const u=i.matched_count??0,x=((m=i.missing_advbox_link)==null?void 0:m.length)??0,d=((g=i.unmatched_advbox)==null?void 0:g.length)??0,r=[`Pontos de ${((f=i.competence)==null?void 0:f.label)||ue(t,s)} carregados para ${u} colaborador(es).`];return x&&r.push(`${x} sem vÃnculo Advbox.`),d&&r.push(`${d} usuário(s) Advbox sem correspondência.`),r.push(os(b)),u===0?R.error(r.join(" ")):R.success(r.join(" ")),i}async function fs({year:t,month:s,rows:a,pointsByUserId:l,rules:n,setPointsByUserId:i,setPointsMeta:b}){if(a.length===0)return;let u={};for(const[d,r]of Object.entries(l))r==null||r===""||(u[d]=r);try{const d=await dt({year:t,month:s}),r=z(d.rules||n),g={...Ee(d,r),...u};i(g),b(d),u=g}catch{}const x=await Vt({year:t,month:s,points:u});Ht(x,`remuneracoes-${String(s).padStart(2,"0")}-${t}.pdf`)}const ye=new Map,_e=new Set;function je(t){return ye.get(t)||null}function re(t,s){s?ye.set(t,s):ye.delete(t),_e.forEach(a=>a(t))}function ys(t){return _e.add(t),()=>_e.delete(t)}const _s="flex h-9 w-full rounded-md border border-input bg-background px-2.5 py-1 text-sm";function ve(){return{min:"",max:"",percent:""}}function Ue(t){const s=z(t);return{...s,rounding_step:String(s.rounding_step??500),limit_value:s.limit_value==null?"":String(s.limit_value),bands:(s.bands||[]).length?s.bands.map(a=>({min:a.min==null?"":String(a.min),max:a.max==null?"":String(a.max),percent:a.percent==null?"":String(a.percent)}
11)):[ve()]}}function js(t){const s=Number(String(t.rounding_step).replace(",",".")),a=t.limit_value===""?null:Number(String(t.limit_value).replace(",",".")),l=(t.bands||[]).map(n=>({min:n.min===""?null:Number(String(n.min).replace(",",".")),max:n.max===""?null:Number(String(n.max).replace(",",".")),percent:n.percent===""?null:Number(String(n.percent).replace(",","."))})).filter(n=>n.min!=null||n.max!=null||n.percent!=null);return{rounding_mode:t.rounding_mode==="up"?"up":"down",rounding_step:Number.isFinite(s)&&s>0?s:500,limit_enabled:!!t.limit_enabled,limit_type:t.limit_type==="points"?"points":"value",limit_value:Number.isFinite(a)?a:null,progression_enabled:!!t.progression_enabled,bands:t.progression_enabled?l:[]}}function vs({open:t,onOpenChange:s}){const a=Se(),[l,n]=h.useState(()=>Ue(Fe())),i=J({queryKey:Y.rules(),queryFn:Jt,enabled:t});h.useEffect(()=>{var m;if(!t)return;const r=(m=i.data)==null?void 0:m.data;r&&n(Ue(r))},[t,i.data]);const b=W({mutationFn:r=>Kt(r),onSuccess:r=>{a.setQueryData(Y.rules(),r),a.setQueriesData({queryKey:Y.all},m=>!m||!m.rules?m:{...m,rules:r.data}),R.success("Regras de pontos salvas."),s(!1)},onError:r=>{var f,v,T,N;const m=((v=(f=r==null?void 0:r.response)==null?void 0:f.data)==null?void 0:v.errors)||{},g=Object.values(m).flat()[0];R.error(g||((N=(T=r==null?void 0:r.response)==null?void 0:T.data)==null?void 0:N.message)||"Não foi possÃvel salvar as regras.")}}),u=r=>n(m=>({...m,...r})),x=(r,m)=>{n(g=>({...g,bands:g.bands.map((f,v)=>v===r?{...f,...m}:f)}))},d=r=>{r.preventDefault(),b.mutate(js(l))};return e.jsx(ke,{open:t,onOpenChange:s,children:e.jsxs(Ce,{className:"sm:max-w-2xl",children:[e.jsxs(De,{children:[e.jsx(Re,{children:"Regras de pontos"}),e.jsx(we,{children:"Defina arredondamento, limite e faixas percentuais usados no cálculo da competência."})]}),i.isLoading?e.jsx("div",{className:"flex justify-center py-10",children:e.jsx(A,{className:"h-6 w-6 animate-spin text-primary"})}):e.jsxs("form",{className:"space-y-6",onSubmit:d,children:[e.jsxs("section",{className:"space-y-3",children:[e.jsx("h3",{className:"text-sm font-semibold",children:"Arredondamento"}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[e.jsx("input",{type:"radio",name:"rounding_mode",checked:l.rounding_mode!=="up",onChange:()=>u({rounding_mode:"down"})}),"Para baixo (ex.: 1240 â 1000)"]}),e.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[e.jsx("input",{type:"radio",name:"rounding_mode",checked:l.rounding_mode==="up",onChange:()=>u({rounding_mode:"up"})}),"Para cima (ex.: 1240 â 1500)"]})]}),e.jsxs("div",{className:"max-w-[12rem] space-y-1.5",children:[e.jsx(q,{htmlFor:"rounding_step",children:"Em blocos de"}),e.jsx(M,{id:"rounding_step",type:"number",min:"1",step:"1",value:l.rounding_step,onChange:r=>u({rounding_step:r.target.value})})]})]}),e.jsxs("section",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold",children:"Limite"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Teto de pontos considerados ou do valor pago em R$."})]}),e.jsx(fe,{checked:l.limit_enabled,onCheckedChange:r=>u({limit_enabled:r}),"aria-label":"Ativar limite"})]}),l.limit_enabled?e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(q,{htmlFor:"limit_type",children:"Tipo"}),e.jsxs("select",{id:"limit_type",className:_s,value:l.limit_type,onChange:r=>u({limit_type:r.target.value}),children:[e.jsx("option",{value:"points",children:"Limite de pontos"}),e.jsx("option",{value:"value",children:"Teto em R$ do valor"})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(q,{htmlFor:"limit_value",children:l.limit_type==="value"?"Valor máximo (R$)":"Pontos máximos"}),e.jsx(M,{id:"limit_value",type:"number",min:"0",step:l.limit_type==="value"?"0.01":"1",value:l.limit_value,onChange:r=>u({limit_value:r.target.value})})]})]}):null]}),e.jsxs("section",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold",children:"Progressão por faixa"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Ex.: 1.000 a 3.000 pontos paga 50%; 3.001 a 10.000 paga 80% do valor por ponto."})]}),e.jsx(fe,{checked:l.progression_enabled,onCheckedChange:r=>u({progression_enabled:r,bands:r&&l.bands.length===0?[ve()]:l.bands}),"aria-label":"Ativar progressão"})]}),l.progression_enabled?e.jsxs("div",{className:"space-y-2",children:[l.bands.map((r,m)=>e.jsxs("div",{className:"grid grid-cols-[1fr_1fr_1fr_auto] items-end gap-2",children:[e.jsxs("div",{className:"space-y-1",children:[m===0?e.jsx(q,{children:"De"}
11):null,e.jsx(M,{type:"number",min:"0",placeholder:"1000",value:r.min,onChange:g=>x(m,{min:g.target.value})})]}),e.jsxs("div",{className:"space-y-1",children:[m===0?e.jsx(q,{children:"Até"}):null,e.jsx(M,{type:"number",min:"0",placeholder:"sem teto",value:r.max,onChange:g=>x(m,{max:g.target.value})})]}),e.jsxs("div",{className:"space-y-1",children:[m===0?e.jsx(q,{children:"Paga %"}):null,e.jsx(M,{type:"number",min:"0",max:"100",step:"0.01",placeholder:"50",value:r.percent,onChange:g=>x(m,{percent:g.target.value})})]}),e.jsx(w,{type:"button",variant:"ghost",size:"icon",className:"text-destructive",disabled:l.bands.length<=1,onClick:()=>n(g=>({...g,bands:g.bands.filter((f,v)=>v!==m)})),"aria-label":"Remover faixa",children:e.jsx(nt,{className:"h-4 w-4"})})]},m)),e.jsxs(w,{type:"button",variant:"outline",size:"sm",onClick:()=>n(r=>({...r,bands:[...r.bands,ve()]})),children:[e.jsx(lt,{className:"h-3.5 w-3.5 mr-1"}),"Adicionar faixa"]})]}):null]}),e.jsxs(rt,{children:[e.jsx(w,{type:"button",variant:"outline",onClick:()=>s(!1),children:"Cancelar"}),e.jsxs(w,{type:"submit",disabled:b.isPending,children:[b.isPending?e.jsx(A,{className:"h-4 w-4 mr-1.5 animate-spin"}):null,"Salvar regras"]})]})]})]})})}const et=[{key:"employment",label:"VÃnculo",flags:[{key:"is_partner",label:"à sócio (mostra tipo de sócio, pró-labore, lucros)"},{key:"has_base_salary",label:"Recebe salário base"},{key:"has_bonus",label:"Recebe bônus"},{key:"has_points",label:"Recebe pontos (% por ponto)"},{key:"has_prolabore",label:"Recebe pró-labore"},{key:"has_profit_sharing",label:"Recebe distribuição de lucros"}]},{key:"compensation",label:"Forma de remuneração",flags:[{key:"has_base_salary",label:"Inclui salário base"},{key:"has_bonus",label:"Inclui bônus"},{key:"has_points",label:"Inclui pontos"}]},{key:"partner",label:"Tipo de sócio",flags:[]}];function Ns({item:t,flags:s,index:a,total:l,onMove:n,onPatch:i,onDelete:b,busy:u}){const[x,d]=h.useState(!1),[r,m]=h.useState(t.label||""),g=!t.is_default;return h.useEffect(()=>{m(t.label||"")},[t.label]),e.jsxs("div",{className:"rounded-lg border border-border bg-background",children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2",children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx(w,{type:"button",variant:"ghost",size:"icon",className:"h-6 w-6",disabled:a===0||u,onClick:()=>n(a,-1),"aria-label":"Subir",children:e.jsx(Et,{className:"h-3.5 w-3.5"})}),e.jsx(w,{type:"button",variant:"ghost",size:"icon",className:"h-6 w-6",disabled:a>=l-1||u,onClick:()=>n(a,1),"aria-label":"Descer",children:e.jsx(Mt,{className:"h-3.5 w-3.5"})})]}),e.jsx(M,{value:r,disabled:u,onChange:f=>m(f.target.value),onBlur:()=>{const f=r.trim();if(!f||f===t.label){m(t.label||"");return}i(t.id,{label:f})},className:"h-8"}),t.is_default?e.jsx(At,{variant:"secondary",children:"padrão"}):null,e.jsx(fe,{checked:t.is_enabled!==!1,disabled:u,onCheckedChange:f=>i(t.id,{is_enabled:f}),"aria-label":t.is_enabled!==!1?"Desabilitar tipo":"Habilitar tipo"}),s.length>0?e.jsx(w,{type:"button",variant:"ghost",size:"sm",onClick:()=>d(f=>!f),children:"Flags"}):null,e.jsx(w,{type:"button",variant:"ghost",size:"icon",className:"text-destructive",disabled:!g||u,onClick:()=>b(t),"aria-label":"Excluir tipo",children:e.jsx(nt,{className:"h-4 w-4"})})]}),x&&s.length>0?e.jsx("div",{className:"grid gap-2 border-t border-border px-4 py-3 sm:grid-cols-2",children:s.map(f=>e.jsxs("label",{className:"flex items-start gap-2 text-sm",children:[e.jsx(es,{checked:!!t[f.key],disabled:u,onCheckedChange:v=>i(t.id,{[f.key]:!!v})}),e.jsx("span",{children:f.label})]},f.key))}):null]})}function Ss({kind:t,flags:s}){const a=Se(),l=Ft(),[n,i]=h.useState(""),b=ne.list(t),u=J({queryKey:b,queryFn:()=>ie(t),staleTime:ce}),x=h.useMemo(()=>{var o;return((o=u.data)==null?void 0:o.data)||[]},[u.data]),d=o=>{a.setQueryData(b,p=>({...p||{},data:o}))},r=W({mutationFn:({id:o,payload:p})=>Wt(t,o,p),onSuccess:o=>{d(x.map(p=>p.id===o.data.id?{...p,...o.data}:p))},onError:o=>{var p,y;R.error(((y=(p=o==null?void 0:o.response)==null?void 0:p.data)==null?void 0:y.message)||"Não foi possÃvel atualizar o tipo."),a.invalidateQueries({queryKey:b})}}),m=W({mutationFn:o=>Yt(t,o),onSuccess:o=>{d([...x,o.data]),i("")},onError:o=>{var p,y;return R.error(((y=(p=o==null?void 0:o.response)==null?void 0:p.data)==null?void 0:y.message)||"Não foi possÃvel criar o tipo.")}}),g=W({mutationFn:o=>Gt(t,o),onSuccess:(o,p)=>d(x.filter(y=>y.id!==p)),onError:o=>{var p,y,k,S,F,L;return R.error(((y=(p=o==null?void 0:o.response)==null?void 0:p.data)==null?void 0:y.message)||((L=(F=(S=(k=o==null?void 0:o.response)==null?void 0:k.data)==null?void 0:S.errors)==null?void 0:F.type)==null?void 0:L[0])||"Não foi possÃvel excluir o tipo.")}}),f=W({mutationFn:o=>Zt(t,o),onError:o=>{var p,y;R.error(((y=(p=o==null?void 0:o.response)==null?void 0:p.data)==null?void 0:y.message)||"Não foi possÃvel reordenar."),a.invalidateQueries({queryKey:b})}}),v=(o,p)=>{const y=[...x],k=o+p;if(k<0||k>=y.length)return;const[S]=y.splice(o,1);y.splice(k,0,S),d(y),f.mutate(y.map(F=>F.id))},T=async o=>{await l({title:"Excluir tipo",description:"Tipos em uso por colaboradores não podem ser excluÃdos â desabilite-os no lugar.",confirmText:"Excluir",variant:"destructive"})&&g.mutate(o.id)},N=r.isPending||m.isPending||g.isPending;return e.jsxs("div",{className:"space-y-3",children:[u.isLoading?e.jsx("div",{className:"flex justify-center py-8",children:e.jsx(A,{className:"h-6 w-6 animate-spin text-primary"})}):e.jsx("div",{className:"space-y-2",children:x.map((o,p)=>e.jsx(Ns,{item:o,flags:s,index:p,total:x.length,onMove:v,onPatch:(y,k)=>{d(x.map(S=>S.id===y?{...S,...k}:S)),r.mutate({id:y,payload:k})},onDelete:T,busy:N},o.id))}),e.jsxs("form",{className:"flex gap-2",onSubmit:o=>{o.preventDefault();const p=n.trim();p&&m.mutate({label:p})},children:[e.jsx(M,{value:n,onChange:o=>i(o.target.value),placeholder:"Novo tipo",className:"h-9"}),e.jsxs(w,{type:"submit",size:"sm",disabled:m.isPending||!n.trim(),children:[e.jsx(lt,{className:"h-3.5 w-3.5 mr-1"}),"Adicionar"]})]})]})}function ks({open:t,onOpenChange:s}){return e.jsx(ke,{open:t,onOpenChange:s,children:e.jsxs(Ce,{className:"sm:max-w-2xl",children:[e.jsxs(De,{children:[e.jsx(Re,{children:"Configurar tipos"}),e.jsx(we,{children:"Defina vÃnculos, formas de remuneração e tipos de sócio. A key de cada tipo é imutável."})]}),e.jsxs(Rt,{defaultValue:"employment",children:[e.jsx(wt,{children:et.map(a=>e.jsx(Tt,{value:a.key,children:a.label},a.key))}),et.map(a=>e.jsx(Pt,{value:a.key,children:t?e.jsx(Ss,{kind:a.key,flags:a.flags}):null},a.key))]})]})})}const bt="h-8 w-full min-w-[5.5rem] rounded-md border border-input bg-background px-2 py-1 text-xs tabular-nums",be="__none__";function K(){return e.jsx("span",{className:"italic text-muted-foreground text-xs",children:"â"})}function he({value:t,onChange:s,options:a,disabled:l,emptyLabel:n="â"}){const i=t||be;return e.jsxs("select",{className:Te(bt,"min-w-[7rem]",l&&"cursor-not-allowed opacity-60"),value:i,disabled:l,onChange:b=>{const u=b.target.value===be?null:b.target.value;u!==(t||null)&&s(u)},children:[e.jsx("option",{value:be,children:n}),(a||[]).map(b=>e.jsx("option",{value:b.key,children:b.label},b.key))]})}function ae({value:t,onCommit:s,disabled:a,prefix:l,suffix:n,step:i="0.01"}){const[b,u]=h.useState(t==null||t===""?"":String(t)),x=h.useRef(!1);h.useEffect(()=>{u(t==null||t===""?"":String(t))},[t]);const d=()=>{const r=us(b);if(Number.isNaN(r)){R.error("Valor inválido"),u(t==null||t===""?"":String(t));return}const m=t==null||t===""?null:Number(t);ds(r,m)||s(r)};return e.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[l?e.jsx("span",{className:"text-[11px] text-muted-foreground shrink-0",children:l}
11):null,e.jsx(M,{type:"text",inputMode:"decimal",step:i,disabled:a,placeholder:"â",value:b,onChange:r=>u(r.target.value),onBlur:()=>{if(x.current){x.current=!1;return}d()},onKeyDown:r=>{r.key==="Enter"&&(r.preventDefault(),r.currentTarget.blur()),r.key==="Escape"&&(r.preventDefault(),x.current=!0,u(t==null||t===""?"":String(t)),r.currentTarget.blur())},className:Te(bt,"h-8")}),n?e.jsx("span",{className:"text-[11px] text-muted-foreground shrink-0",children:n}):null]})}const Ne=[{key:"status",label:"",width:"36px"},{key:"employee",label:"Colaborador",width:"minmax(200px, 1.6fr)",sort:!0},{key:"vinculo",label:"VÃnculo",width:"150px",sort:!0},{key:"forma",label:"Forma",width:"160px",sort:!0},{key:"base_salary",label:"Salário base",width:"140px",sort:!0},{key:"bonus_amount",label:"Bônus",width:"120px",sort:!0},{key:"points_percentage",label:"% por ponto",width:"120px",sort:!0},{key:"points",label:"Pontos",width:"110px",sort:!0},{key:"points_value",label:"Valor pontos",width:"130px",sort:!0},{key:"prolabore_amount",label:"Pró-labore",width:"130px",sort:!0},{key:"profit_amount",label:"Lucros",width:"120px",sort:!0},{key:"final_amount",label:"Total",width:"130px",sort:!0},{key:"partner",label:"Tipo de sócio",width:"150px",sort:!0}];function Cs({userId:t}){const s=h.useSyncExternalStore(a=>ys(l=>{(l==null||l===t)&&a()}),()=>je(t),()=>je(t));return s==="saving"?e.jsx(A,{className:"h-4 w-4 animate-spin text-muted-foreground","aria-label":"Salvando"}):s==="saved"?e.jsx(ot,{className:"h-4 w-4 text-emerald-600","aria-label":"Salvo"}):s==="error"?e.jsx(it,{className:"h-4 w-4 text-destructive","aria-label":"Erro"}):e.jsx("span",{className:"block h-4 w-4"})}const Ds=h.memo(function({row:s,types:a,employmentByKey:l,compensationByKey:n,onPatch:i,onPointsChange:b}){const u=s.flags||xt(s,l,n),x={id:s.id,name:s.name,avatar:s.avatar,position:s.position||s.email};return e.jsxs("div",{className:"grid gap-3 px-4 py-2.5 border-b border-border last:border-b-0 items-center",style:{gridTemplateColumns:Ne.map(d=>d.width).join(" ")},children:[e.jsx(Cs,{userId:s.id}),e.jsx(ts,{user:x,absenceLabel:s.absence_label}),e.jsx(he,{value:s.employment_type,options:xe(a.employment_types,s.employment_type),onChange:d=>i(s.id,"employment_type",d)}),u.is_partner?e.jsx("select",{className:"h-8 w-full min-w-[7rem] rounded-md border border-input bg-muted px-2 py-1 text-xs text-muted-foreground cursor-not-allowed",disabled:!0,title:"Sócios não escolhem forma de remuneração",value:"",children:e.jsx("option",{value:"",children:"Sócios não escolhem forma de remuneração"})}):e.jsx(he,{value:s.compensation_type,options:xe(a.compensation_types,s.compensation_type),onChange:d=>i(s.id,"compensation_type",d)}),u.has_base_salary?e.jsx(ae,{value:s.base_salary,prefix:"R$",onCommit:d=>i(s.id,"base_salary",d)}):e.jsx(K,{}),u.has_bonus?e.jsx(ae,{value:s.bonus_amount,prefix:"R$",onCommit:d=>i(s.id,"bonus_amount",d)}):e.jsx(K,{}),u.has_points?e.jsx(ae,{value:s.points_percentage,suffix:"%",step:"0.0001",onCommit:d=>i(s.id,"points_percentage",d)}):e.jsx(K,{}),u.has_points?e.jsx(ae,{value:s.points,step:"1",onCommit:d=>b(s.id,d)}):e.jsx(K,{}),e.jsxs("span",{className:"text-sm tabular-nums text-muted-foreground",children:[u.has_points?$(s.points_value||0):"â",u.has_points&&s.progression_percent!=null&&s.progression_percent!==100?e.jsxs("span",{className:"block text-[10px] text-muted-foreground/80",children:[s.progression_percent,"%"]}):null]}),u.has_prolabore?e.jsx(ae,{value:s.prolabore_amount,prefix:"R$",onCommit:d=>i(s.id,"prolabore_amount",d)}):e.jsx(K,{}),e.jsx("span",{className:"text-sm tabular-nums text-muted-foreground",children:u.is_partner?$(s.profit_amount||0):"â"}),e.jsx("span",{className:"text-sm font-medium tabular-nums",children:$(s.final_amount||0)}),u.is_partner?e.jsx(he,{value:s.partner_type,options:xe(a.partner_types,s.partner_type),onChange:d=>i(s.id,"partner_type",d)}):e.jsx(K,{})]})});function tt(t){if(t==null||t==="")return"0%";const s=Number(t);return Number.isFinite(s)?`${s.toLocaleString("pt-BR",{maximumFractionDigits:4})}%`:"0%"}function oe({icon:t,label:s,value:a,hint:l,iconClass:n,iconWrap:i}){return e.jsx(Lt,{children:e.jsxs(zt,{className:"flex items-center gap-3 p-4",children:[e.jsx("span",{className:`flex h-10 w-10 shrink-0 items-center justify-center rounded-lg ${i}`,children:e.jsx(t,{className:`h-5 w-5 ${n}`})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:s}),e.jsx("p",{className:"text-lg font-semibold tabular-nums tracking-tight truncate",children:a}),l?e.jsx("p",{className:"text-[11px] text-muted-foreground truncate",children:l}):null]})]})})}function Rs({summary:t,year:s,month:a,pointsMeta:l}){return e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4",children:[e.jsx(oe,{icon:Pe,label:"Folha de salários",value:$(t.payroll_total||0),hint:ue(s,a),iconWrap:"bg-emerald-50",iconClass:"text-emerald-600"}),e.jsx(oe,{icon:$t,label:"Valor pontos",value:$(t.points_value_total||0),hint:l?`${tt(t.points_percentage_total)} cadastrado`:tt(t.points_percentage_total),iconWrap:"bg-sky-50",iconClass:"text-sky-600"}),e.jsx(oe,{icon:ct,label:"Lucros",value:$(t.profit_total||0),hint:`${t.partners_count??0} sócio(s)`,iconWrap:"bg-violet-50",iconClass:"text-violet-600"}),e.jsx(oe,{icon:ut,label:"Total da competência",value:$(t.final_total||0),hint:`${t.records??0} colaborador(es)`,iconWrap:"bg-orange-50",iconClass:"text-orange-600"})]})}function ge(t,s){const a=new Date(t,s,0),l=String(a.getMonth()+1).padStart(2,"0"),n=String(a.getDate()).padStart(2,"0");return`${a.getFullYear()}-${l}-${n}`}function ws({open:t,onOpenChange:s,year:a,month:l,pointsByUserId:n={},onGenerated:i}){const[b,u]=h.useState(""),[x,d]=h.useState(null),[r,m]=h.useState(!1),[g,f]=h.useState(!1);h.useEffect(()=>{if(!t)return;u(ge(a,l)),d(null);let o=!1;return m(!0),Ge({year:a,month:l,due_date:ge(a,l),points:n,dry_run:!0}).then(p=>{o||d(p)}).catch(p=>{var y,k;
11o||R.error(((k=(y=p==null?void 0:p.response)==null?void 0:y.data)==null?void 0:k.message)||"Não foi possÃvel montar a prévia.")}).finally(()=>{o||m(!1)}),()=>{o=!0}},[t,a,l,n]);const v=async()=>{var o,p,y,k;f(!0);try{const S=await Ge({year:a,month:l,due_date:b||ge(a,l),points:n,dry_run:!1}),F=S.created??0,L=((o=S.failed)==null?void 0:o.length)??0;L&&F?R.error(`${F} gerado(s), ${L} com erro no Advbox.`):L&&!F?R.error(((p=S.failed[0])==null?void 0:p.error)||"Não foi possÃvel gerar os pagamentos no Advbox."):R.success(S.message||`${F} pagamento(s) gerado(s).`),i==null||i(),s(!1)}catch(S){R.error(((k=(y=S==null?void 0:S.response)==null?void 0:y.data)==null?void 0:k.message)||"Não foi possÃvel gerar os pagamentos.")}finally{f(!1)}},T=(x==null?void 0:x.preview)||[],N=T.filter(o=>!o.already_created&&!o.already_paid);return e.jsx(ke,{open:t,onOpenChange:s,children:e.jsxs(Ce,{className:"max-w-lg",children:[e.jsxs(De,{children:[e.jsxs(Re,{className:"flex items-center gap-2",children:[e.jsx(Pe,{className:"h-4 w-4"}),"Gerar pagamentos"]}),e.jsxs(we,{children:["Cria lançamentos no Advbox (SALARIO / PRO LABORE) da competência ",ue(a,l)," e lista em Pagamentos."]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(q,{htmlFor:"payroll-due",children:"Vencimento"}),e.jsx(M,{id:"payroll-due",type:"date",value:b,onChange:o=>u(o.target.value)})]}),r?e.jsx("div",{className:"flex justify-center py-8",children:e.jsx(A,{className:"h-6 w-6 animate-spin text-primary"})}):e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-sm text-muted-foreground",children:[N.length," lançamento(s) novo(s)",(x==null?void 0:x.total)!=null?` · ${$(x.total)}`:""]}),e.jsx("div",{className:"max-h-64 overflow-auto rounded-md border border-border",children:T.length===0?e.jsx("p",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"Nenhum valor para gerar nesta competência."}):T.map(o=>e.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-border px-3 py-2 text-sm last:border-b-0",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"truncate font-medium",children:o.user_name}),e.jsxs("p",{className:"text-[11px] text-muted-foreground",children:[o.type_name,o.already_paid?" · já pago":o.already_created?" · já gerado":""]})]}),e.jsx("p",{className:"tabular-nums shrink-0",children:$(o.amount)})]},`${o.user_id}-${o.kind}`))})]})]}),e.jsxs(rt,{children:[e.jsx(w,{type:"button",variant:"outline",onClick:()=>s(!1),children:"Cancelar"}),e.jsxs(w,{type:"button",onClick:v,disabled:g||r||N.length===0,children:[g?e.jsx(A,{className:"h-4 w-4 mr-1.5 animate-spin"}):null,"Gerar no Advbox"]})]})]})})}const st="flex h-9 rounded-md border border-input bg-background px-2.5 py-1 text-sm";function Ls(){var Qe,Ie,Ve,He,Ke,Je,We;const t=Se(),s=h.useMemo(()=>new Date,[]),[a,l]=h.useState(""),[n,i]=h.useState(!1),[b,u]=h.useState(!1),[x,d]=h.useState(1),[r,m]=h.useState(()=>xs()),[g,f]=h.useState(s.getFullYear()),[v,T]=h.useState(s.getMonth()+1),[N,o]=h.useState({}),[p,y]=h.useState(null),[k,S]=h.useState(!1),[F,L]=h.useState(!1),[ht,Me]=h.useState(!1),B=Y.list({per_page:Ye}),E=J({queryKey:B,queryFn:()=>Ut({per_page:Ye})}),Ae=J({queryKey:ne.list("employment"),queryFn:()=>ie("employment"),staleTime:ce}),$e=J({queryKey:ne.list("compensation"),queryFn:()=>ie("compensation"),staleTime:ce}),Le=J({queryKey:ne.list("partner"),queryFn:()=>ie("partner"),staleTime:ce}),G=h.useMemo(()=>{var c;return((c=E.data)==null?void 0:c.data)||[]},[(Qe=E.data)==null?void 0:Qe.data]),O=h.useMemo(()=>{var c,_,j,I,U,ee,te,se,C;return{employment_types:((c=Ae.data)==null?void 0:c.data)||((j=(_=E.data)==null?void 0:_.types)==null?void 0:j.employment_types)||[],compensation_types:((I=$e.data)==null?void 0:I.data)||((ee=(U=E.data)==null?void 0:U.types)==null?void 0:ee.compensation_types)||[],partner_types:((te=Le.data)==null?void 0:te.data)||((C=(se=E.data)==null?void 0:se.types)==null?void 0:C.partner_types)||[]}},[Ae.data,$e.data,Le.data,E.data]),Z=h.useMemo(()=>Xe(O.employment_types),[O.employment_types]),de=h.useMemo(()=>Xe(O.compensation_types),[O.compensation_types]),P=h.useMemo(()=>{var c;return z(((c=E.data)==null?void 0:c.rules)||(p==null?void 0:p.rules)||Fe())},[(Ie=E.data)==null?void 0:Ie.rules,p==null?void 0:p.rules]),gt=JSON.stringify(P);h.useEffect(()=>{p!=null&&p.data&&o(Ee(p,P))},[gt,p]);const le=h.useMemo(()=>cs(G,Z,de,N,P),[G,Z,de,N,P]),Q=h.useMemo(()=>{const c=le.filter(_=>{var j;return Ot([_.name,_.position,_.email,(j=_.circle)==null?void 0:j.name].filter(
11Boolean).join(" "),a)});return ps(c,O,r.sortKey,r.sortDir)},[le,a,O,r.sortKey,r.sortDir]),X=r.pageSize,ze=Math.max(1,Math.ceil(Q.length/X)||1),me=Math.min(x,ze),ft=h.useMemo(()=>{const c=(me-1)*X;return Q.slice(c,c+X)},[Q,me,X]),yt=h.useMemo(()=>hs(le,Z),[le,Z]),_t=c=>{m(c),bs(c)},jt=c=>{const _=r.sortKey===c&&r.sortDir==="asc"?"desc":"asc";_t({...r,sortKey:c,sortDir:_}),d(1)},Oe=(c,_)=>{f(c),T(_),o({}),y(null)},qe=W({mutationFn:({id:c,field:_,value:j})=>Xt(c,{[_]:j})}),vt=h.useCallback(async(c,_,j)=>{var ee,te,se;const I=t.getQueryData(B),U=(ee=I==null?void 0:I.data)==null?void 0:ee.find(C=>C.id===c);if(U){re(c,"saving"),t.setQueryData(B,C=>C!=null&&C.data?{...C,data:C.data.map(D=>D.id===c?{...D,[_]:j}:D)}:C);try{const C=await qe.mutateAsync({id:c,field:_,value:j});t.setQueryData(B,D=>D!=null&&D.data?{...D,data:D.data.map(V=>V.id===C.data.id?{...V,...C.data}:V)}:D),re(c,"saved"),window.setTimeout(()=>{je(c)==="saved"&&re(c,null)},1500)}catch(C){t.setQueryData(B,D=>D!=null&&D.data?{...D,data:D.data.map(V=>V.id===c?U:V)}:D),re(c,"error"),R.error(((se=(te=C==null?void 0:C.response)==null?void 0:te.data)==null?void 0:se.message)||"Não foi possÃvel salvar.")}}},[B,qe,t]),Nt=h.useCallback((c,_)=>{o(j=>({...j,[c]:_}))},[]),St=async()=>{var c,_;S(!0);try{await gs({year:g,month:v,rules:P,setPointsByUserId:o,setPointsMeta:y})}catch(j){R.error(((_=(c=j==null?void 0:j.response)==null?void 0:c.data)==null?void 0:_.message)||"Não foi possÃvel buscar os pontos no Advbox.")}finally{S(!1)}},kt=async()=>{var c,_;L(!0);try{await fs({year:g,month:v,rows:G,pointsByUserId:N,rules:P,setPointsByUserId:o,setPointsMeta:y})}catch(j){R.error(((_=(c=j==null?void 0:j.response)==null?void 0:c.data)==null?void 0:_.message)||(j==null?void 0:j.message)||"Não foi possÃvel exportar o PDF.")}finally{L(!1)}},Ct=E.isLoading,Be=((Ke=(He=(Ve=E.error)==null?void 0:Ve.response)==null?void 0:He.data)==null?void 0:Ke.message)||(E.error?"Falha ao carregar remunerações.":null),Dt=ns(s);return e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-4 animate-fadeup",children:[e.jsx(qt,{className:"mb-0 shrink-0",icon:ct,title:"Remunerações",description:"Edite a remuneração, configure faixas de pontos e busque os pontos do Advbox da competência para calcular os valores.",actions:e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsxs(w,{type:"button",variant:"outline",size:"sm",onClick:()=>u(!0),children:[e.jsx(ss,{className:"h-4 w-4 mr-1.5"}),"Regras de pontos"]}),e.jsxs(w,{type:"button",variant:"outline",size:"sm",onClick:()=>i(!0),children:[e.jsx(as,{className:"h-4 w-4 mr-1.5"}),"Configurar tipos"]})]})}),e.jsx(Rs,{summary:yt,year:g,month:v,pointsMeta:p}),e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col rounded-xl border border-border bg-card shadow-sm",children:[e.jsxs("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between px-4 py-3 border-b border-border",children:[e.jsxs("div",{className:"relative flex-1 max-w-md",children:[e.jsx(Bt,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(M,{value:a,onChange:c=>{l(c.target.value),d(1)},placeholder:"Buscar colaborador...",className:"pl-9"})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("select",{className:st,value:v,onChange:c=>Oe(g,Number(c.target.value)),"aria-label":"Mês da competência",children:pt.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))}),e.jsx("select",{className:st,value:g,onChange:c=>Oe(Number(c.target.value),v),"aria-label":"Ano da competência",children:Dt.map(c=>e.jsx("option",{value:c,children:c},c))}),e.jsxs(w,{type:"button",variant:"outline",size:"sm",onClick:St,disabled:k,children:[k?e.jsx(A,{className:"h-4 w-4 mr-1.5 animate-spin"}):e.jsx(Qt,{className:"h-4 w-4 mr-1.5"}),"Buscar pontos Advbox"]}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[Q.length," registro(s)"]}),e.jsxs(w,{type:"button",variant:"outline",size:"sm",onClick:kt,disabled:G.length===0||F,children:[F?e.jsx(A,{className:"h-4 w-4 mr-1.5 animate-spin"}):e.jsx(ut,{className:"h-4 w-4 mr-1.5"}),"Exportar PDF"]}),e.jsxs(w,{type:"button",size:"sm",onClick:()=>Me(!0),disabled:G.length===0,children:[e.jsx(Pe,{className:"h-4 w-4 mr-1.5"}),"Gerar pagamentos"]})]})]}),p&&e.jsxs("p",{className:"px-4 py-2 text-xs text-muted-foreground border-b border-border",children:["Pontos de ",((Je=p.competence)==null?void 0:Je.label)||ue(g,v)," · ",p.matched_count??0," com pontos"," · ",((We=p.missing_advbox_link)==null?void 0:We.length)??0," sem vÃnculo Advbox",P.limit_enabled&&P.limit_value?P.limit_type==="points"?` · limite ${Number(P.limit_value).toLocaleStr
11ing("pt-BR")} pts`:` · teto ${$(P.limit_value)}`:"",P.progression_enabled?` · ${P.bands.length} faixa(s) de progressão`:""]}),Be&&e.jsx("p",{className:"px-4 py-3 text-sm text-destructive",children:Be}),e.jsx("div",{className:"min-h-0 flex-1 overflow-auto",children:Ct?e.jsx("div",{className:"flex justify-center py-16",children:e.jsx(A,{className:"h-8 w-8 animate-spin text-primary"})}):Q.length===0?e.jsx("p",{className:"py-16 text-center text-sm text-muted-foreground",children:"Nenhum colaborador encontrado."}):e.jsxs("div",{className:"min-w-[1680px]",children:[e.jsx("div",{className:"grid gap-3 px-4 py-2.5 bg-muted/40 border-b border-border text-[10px] font-semibold uppercase tracking-wide text-muted-foreground",style:{gridTemplateColumns:Ne.map(c=>c.width).join(" ")},children:Ne.map(c=>e.jsxs("button",{type:"button",disabled:!c.sort,onClick:()=>c.sort&&jt(c.key),className:Te("text-left",c.sort&&"hover:text-foreground",r.sortKey===c.key&&"text-foreground"),children:[c.label,r.sortKey===c.key?r.sortDir==="asc"?" â":" â":""]},c.key))}),ft.map(c=>e.jsx(Ds,{row:c,types:O,employmentByKey:Z,compensationByKey:de,onPatch:vt,onPointsChange:Nt},c.id))]})}),e.jsxs("div",{className:"flex flex-col gap-3 border-t border-border px-4 py-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 text-xs text-muted-foreground",children:[e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(A,{className:"h-3.5 w-3.5"})," salvando"]}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(ot,{className:"h-3.5 w-3.5 text-emerald-600"})," salvo"]}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(it,{className:"h-3.5 w-3.5 text-destructive"})," erro (alteração revertida)"]}),e.jsx("span",{className:"rounded-full border border-border px-2 py-0.5",children:"Tab/Enter para confirmar · Esc para cancelar"})]}),e.jsx(It,{meta:{total:Q.length,per_page:X,current_page:me,last_page:ze},onPageChange:d})]})]}),e.jsx(vs,{open:b,onOpenChange:c=>{u(c),c||t.invalidateQueries({queryKey:Y.all})}}),e.jsx(ks,{open:n,onOpenChange:c=>{i(c),c||(t.invalidateQueries({queryKey:ne.all}),t.invalidateQueries({queryKey:Y.all}))}}),e.jsx(ws,{open:ht,onOpenChange:Me,year:g,month:v,pointsByUserId:N})]})}export{Ls as default};
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.