1/* empty css *//* empty css *//* empty css *//* empty css */import{u as ae}from"./Qz999KNh.js";import{M as O,cd as W,x as i,u as o,H as b,cr as te,bE as d,bO as r,bp as re,bc as n,bV as oe,bS as se,b7 as ie,w as x,B as I,b as B,bo as V,bm as p,s as ne,b0 as S,a_ as ce}from"./HqA1Igia.js";import{u as le,e as de}from"./BTB4REQa.js";import{u as ue}from"./eWyPjS__.js";import{S as me}from"./DrLnRVi4.js";import{a as be,F as ge}from"./D488QaZV.js";import{_ as ve}from"./BOYm_eYX.js";import{r as G}from"./n5Y1udX_.js";import{r as P}from"./BS3Tg2nM.js";import{r as H}from"./BFej6G7l.js";import{r as M}from"./BNaPjdKW.js";import{E as q}from"./BEoYgEP2.js";import{a as l}from"./Dg6PWhg0.js";import"./D5PY8D_I.js";import"./CXuYN6eo.js";import"./Cu74VIjW.js";const xe={class:"flex flex-col gap-2 md:flex-row md:items-end md:justify-between"},pe={class:"flex min-w-0 items-center gap-3"},fe={class:"min-w-0"},he={class:"break-words text-xl font-bold tracking-tight text-[var(--text)] lg:text-2xl"},_e={class:"mt-1 break-words text-xs text-[var(--muted)] lg:text-sm"},Se={class:"flex flex-wrap items-center gap-2"},we=O({__name:"FinanceiroCategoriasHeader",setup(U){const{tn:e}=W();return(u,_)=>{const F=ve;return n(),i("div",xe,[o("div",pe,[b(F,{to:"/financeiro",class:"flex shrink-0 rounded-xl border border-[var(--accent)]/25 p-2 text-[var(--text)] glass-inner transition duration-200 hover:bg-[var(--accent)]/10"},{default:te(()=>[b(r(G),{class:"h-5 w-5 lg:h-6 lg:w-6"})]),_:1}),o("div",fe,[o("h1",he,d(r(e)("Categorias e Subcategorias")),1),o("p",_e,d(r(e)("Gerencie as categorias e subcategorias financeiras")),1)])]),o("div",Se,[re(u.$slots,"actions")])])}}}),ye=Object.assign(we,{__name:"FinanceiroCategoriasHeader"}),ke={class:"financeiro-page financeiro-categorias min-h-screen"},Ce={class:"mx-auto w-full min-w-0 max-w-[1320px] space-y-4 overflow-x-hidden px-4 py-4 md:px-6"},Ee={key:0,class:"dashboard-card rounded-3xl p-12 text-center"},$e={class:"text-sm text-[var(--muted)]"},Be={key:1,class:"dashboard-card rounded-3xl p-4 md:p-6"},Fe={class:"text-lg font-bold text-[var(--text)] mb-4"},Ne={class:"mb-4 space-y-2"},Te={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},je={key:2,class:"dashboard-card rounded-3xl p-4 md:p-6"},Ie={class:"flex items-center gap-3 mb-4"},Ve={class:"text-lg font-bold text-[var(--text)]"},Le={key:0,class:"mb-4 text-sm text-[var(--muted)]"},ze={class:"font-semibold text-[var(--text)]"},Ae={key:3,class:"space-y-4"},De={class:"mb-4 flex min-w-0 flex-col gap-3 sm:flex-row sm:items-center sm:justify-between"},Pe={class:"flex min-w-0 flex-wrap items-center gap-2 sm:gap-3"},He={class:"break-words text-lg font-bold text-[var(--text)]"},Me={class:"inline-flex shrink-0 items-center rounded-full bg-[var(--surface-2)] px-2.5 py-1 text-[11px] font-bold text-[var(--muted)]"},qe=["onClick"],Oe={key:0,class:"space-y-2"},We={class:"flex flex-col gap-2 p-3 transition duration-200 hover:bg-[var(--accent)]/8 sm:flex-row sm:items-center sm:justify-between"},Ge={class:"flex min-w-0 flex-1 items-center gap-3"},Ue={class:"min-w-0 break-words text-sm font-medium text-[var(--text)]"},Je={key:2,class:"shrink-0 rounded-full bg-[var(--surface-2)] px-2 py-0.5 text-[11px] font-bold text-[var(--muted)]"},Ke={class:"flex shrink-0 flex-wrap items-center gap-2 sm:ml-4"},Qe=["onClick","title"],Re=["onClick","title"],Xe=["onClick","title"],Ye={key:0,class:"pl-6 pr-3 py-2 border-t border-[var(--border)] space-y-1"},Ze={class:"flex min-w-0 flex-1 items-center gap-2"},ea={class:"min-w-0 break-words text-sm text-[var(--text)]"},aa={key:0,class:"flex shrink-0 items-center gap-1 self-end sm:self-auto"},ta=["onClick","title"],ra=["onClick","title"],oa={key:1,class:"pl-6 pr-3 py-2 border-t border-[var(--border)]"},sa=["onClick"],ia={key:1,class:"text-sm text-[var(--muted)] italic py-2"},$a=O({__name:"index",setup(U){const{tn:e}=W(),u=ae(),_=oe(),F=se(),{canEditFinanceiro:w}=ue(),N=p(!1),k=p(!1),g=p(null),f=p(null),C=p(!1),v=p(null),h=p(null),L=p([]),E=ne(()=>L.value),J=s=>{g.value=null,f.value=E.value.find(t=>
1t.id===s)||null,k.value=!0},K=s=>{g.value=s,f.value=E.value.find(t=>t.id===s.categoria_custo_id)||null,k.value=!0},z=()=>{k.value=!1,g.value=null,f.value=null},A=s=>{v.value=null,h.value=s,C.value=!0},Q=(s,t)=>{v.value=s,h.value=t,C.value=!0},T=()=>{C.value=!1,v.value=null,h.value=null},R=async s=>{try{const t=_.barbeariaSelecionada?.id;if(!t){l.error(e("Estabelecimento não selecionada"));return}if(!h.value){l.error(e("Categoria não selecionada"));return}s.barbearia_id=t;const a=v.value?.subcategoria_custo_id||h.value.id;v.value?(await u.updateSubSubcategoria(v.value.id,s),l.success(e("Subcategoria atualizada com sucesso!"))):(await u.createSubSubcategoria(a,s),l.success(e("Subcategoria criada com sucesso!"))),await y(),T()}catch(t){l.error(t.message||"Erro ao salvar subcategoria")}},X=async s=>{try{await q.confirm(`Tem certeza que deseja deletar "${s.nome}"?`,"Confirmar Exclusão",{confirmButtonText:e("Sim, deletar"),cancelButtonText:e("Cancelar"),type:"warning"});const t=_.barbeariaSelecionada?.id;if(!t){l.error(e("Estabelecimento não selecionada"));return}await u.deleteSubSubcategoria(s.id,t),l.success(e("Subcategoria deletada com sucesso!")),await y()}catch(t){t!=="cancel"&&l.error(t.message||"Erro ao deletar subcategoria")}},Y=async s=>{try{const t=_.barbeariaSelecionada?.id;if(!t){l.error(e("Estabelecimento não selecionada"));return}if(!f.value&&!g.value){l.error(e("Selecione uma categoria"));return}s.barbearia_id=t;const a=g.value?.categoria_custo_id||f.value?.id;if(!a){l.error(e("Categoria não encontrada"));return}g.value?(await u.updateSubcategoria(a,g.value.id,s),l.success(e("Categoria atualizada com sucesso!"))):(await u.createSubcategoria(a,s),l.success(e("Categoria criada com sucesso!"))),await y(),z()}catch(t){l.error(t.message||"Erro ao salvar categoria")}},Z=async(s,t)=>{try{await q.confirm(`Tem certeza que deseja deletar a categoria "${s.nome}"?`,"Confirmar Exclusão",{confirmButtonText:e("Sim, deletar"),cancelButtonText:e("Cancelar"),type:"warning"});const a=_.barbeariaSelecionada?.id;if(!a){l.error(e("Estabelecimento não selecionada"));return}const c=s.categoria_custo_id||t.id;await u.deleteSubcategoria(c,s.id,a),l.success(e("Categoria deletada com sucesso!")),await y()}catch(a){a!=="cancel"&&l.error(a.message||"Erro ao deletar categoria")}};let j=!1;const y=async()=>{const s=_.barbeariaSelecionada?.id;if(s&&!j){j=!0,N.value=!0;try{await u.loadCategorias(s);const t=await Promise.all(u.categorias.map(async a=>{const c=await u.loadSubcategorias(a.id,s,!0),m=await Promise.all((c||[]).map(async $=>{const ee=await u.loadSubSubcategorias($.id,s);return{...$,subSubcategorias:ee||[]}}));return{...a,subcategorias:m}}));L.value=t}catch(t){console.error("Erro ao carregar categorias:",t),F.addNotification({type:"error",message:e("Erro ao carregar categorias")})}finally{N.value=!1,j=!1}}},D=async()=>{await de()&&await y()};return ie(D),le(D),(s,t)=>(n(),i("div",ke,[o("div",Ce,[b(ye),N.value?(n(),i("div",Ee,[t[1]||(t[1]=o("div",{class:"animate-spin h-8 w-8 border-4 border-[var(--accent)] border-t-transparent rounded-full mx-auto mb-4"},null,-1)),o("p",$e,d(r(e)("Carregando categorias...")),1)])):x("",!0),k.value?(n(),i("div",Be,[o("h3",Fe,d(g.value?"Editar Categoria":"Nova Categoria"),1),o("div",Ne,[o("label",Te,d(r(e)("Tipo (Entrada/SaÃda) *")),1),b(me,{modelValue:f.value,"onUpdate:modelValue":[t[0]||(t[0]=a=>f.value=a),()=>{}],items:E.value,placeholder:r(e)("Buscar Entrada ou SaÃda..."),"get-display-text":a=>a.nome,"get-item-key":a=>a.id,disabled:!!g.value},null,8,["modelValue","items","placeholder","get-display-text","get-item-key","disabled"])]),b(be,{"model-value":g.value,"is-loading":r(u).isLoading,"show-cancel":!0,onSave:Y,onCancel:z},null,8,["model-value","is-loading"])])):C.value?(n(),i("div",je,[o("div",Ie,[o("button",{onClick:T,class:"p-2 rounded-xl text-[var(--muted)] hover:text-[var(--text)] glass-inner hover:bg-[var(--accent)]/10 transition duration-200"},[b(r(G),{class:"h-5 w-5"})]),o("h3",Ve,d(v.value?"Editar Subcategoria":"Nova Subcategoria"),1)]),h.value?(n(),i("p",Le,[I(d(r(e)("Dentro de:"))+" ",1),o("span",ze,d(h.value.nome),1)])):x("",!0),b(ge,{"model-value":v.value,"is-loading":r(u).isLoading,"show-cancel":!0,onSave:R,onCancel:T},null,8,["model-value","is-loading"])])):(n(),i("div",Ae,[(n(!0),i(B,null,V(E.value,a=>(n(),i("div",{key:a.id,class:"dashboard-card min-w-0 overflow-hidden rounded-3xl p-4 md:p-6",style:S({borderLeftColor:a.cor,borderLeftWidth:"4px"})},[o("div",De,[o("div",Pe,[o("div",{class:"h-4 w-4 shrink-0 rounded",style:S({backgroundColor:a.cor})},null,4),o("h3",He,d(a.nome),1),o("span",Me,d(a.subcategorias?.length||0)+" categorias ",1)]),r(w)?(n(),i("button",{key:0,onClick:c=>J(a.id),class:"inline-flex w-full shrink-0 items-center justify-center gap-1.5 rounded-lg px-2.5 py-1 text-xs font-semibold text-[var(--accent)] transition duration-200 hover:bg-[var(--surface-2)] sm:w-auto"},[b(r(P),{class:"h-3.5 w-3.5"}),I(" "+d(r(e)("Adicionar Categoria")),1)],8,qe)):x("",!0)]),a.subcategorias&&a.subcategorias.length>0?(n(),i("div",Oe,[(n(!0),i(B,null,V(a.subcategorias,c=>(n(),i("div",{key:c.id,class:"rounded-xl border border-[var(--accent)]/25 overflow-hidden glass-inner"},[o("div",We,[o("div",Ge,[c.cor?(n(),i("div",{key:0,class:"h-4 w-4 shrink-0 rounded",style:S({backgroundColor:c.cor})},null,4)):(n(),i("div",{key:1,class:"h-4 w-4 shrink-0 rounded",style:S({backgroundColor:a.cor})},null,4)),o("span",Ue,d(c.nome),1),c.sistema?(n(),i("span",Je,d(r(e)("Sistema")),1)):x("",!0)]),o("div",Ke,[r(w)?(n(),i("button",{key:0,onClick:m=>A(c),class:ce(["items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-semibold text-[var(--accent)] transition duration-200 hover:bg-[var(--surface-2)]",(c.subSubcategorias?.length??0)>0?"inline-flex":"hidden sm:inline-flex"]),title:r(e)("Adicionar subcategoria")},[b(r(P),{class:"h-4 w-4"}),I(" "+d(r(e)("Adicionar Subcategoria")),1)],10,Qe)):x("",!0),r(w)&&!c.sistema?(n(),i(B,{key:1},[o("button",{onClick:m=>K(c),class:"p-2 rounded-lg text-[var(--muted)] hover:text-[var(--accent)] transition duration-200",title:r(e)("Editar categoria")},[b(r(H),{class:"h-4 w-4"})],8,Re),o("button",{onClick:m=>Z(c,a),class:"p-2 rounded-lg text-[var(--muted)] hover:text-red-600 dark:hover:text-red-400 transition duration-200",title:r(e)("Deletar categoria")},[b(r(M),{class:"h-4 w-4"})],8,Xe)],64)):x("",!0)])]),c.subSubcategorias&&c.subSubcategorias.length>0?(n(),i("div",Ye,[(n(!0),i(B,null,V(c.subSubcategorias,m=>(n(),i("div",{key:m.id,class:"flex flex-col gap-2 rounded-lg px-3 py-2 transition duration-200 hover:bg-[var(--accent)]/8 sm:flex-row sm:items-center sm:justify-between"},[o("div",Ze,[m.cor?(n(),i("div",{key:0,class:"h-3 w-3 shrink-0 rounded",style:S({backgroundColor:m.cor})},null,4)):(n(),i("div",{key:1,class:"h-3 w-3 shrink-0 rounded",style:S({backgroundColor:c.cor||a.cor})},null,4)),o("span",ea,d(m.nome),1)]),r(w)&&!m.sistema?(n(),i("div",aa,[o("button",{onClick:$=>Q(m,c),class:"p-1.5 rounded-lg text-[var(--muted)] hover:text-[var(--accent)] transition duration-200",title:r(e)("Editar subcategoria")},[b(r(H),{class:"h-4 w-4"})],8,ta),o("button",{onClick:$=>X(m),class:"p-1.5 rounded-lg text-[var(--muted)] hover:text-red-600 dark:hover:text-red-400 transition duration-200",title:r(e)("Deletar subcategoria")},[b(r(M),{class:"h-4 w-4"})],8,ra)])):x("",!0)]))),128))])):r(w)?(n(),i("div",oa,[o("button",{onClick:m=>A(c),class:"text-xs font-semibold text-[var(--accent)] hover:underline transition duration-200"},d(r(e)("+ Adicionar subcategoria")),9,sa)])):x("",!0)]))),128))])):(n(),i("div",ia,d(r(e)("Nenhuma categoria cadastrada")),1))],4))),128))]))])]))}});
1export{$a 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.