1/* ANPG DEVTEAM - 23/09/2026, 12:53:51 */ 2import{e as B,u as G,d as _,j as e}from"./data-vendor-BRYI0K8G.js";import{r as o}from"./react-vendor-Bj9LQV-u.js";import{A as K}from"./AdminLayout-Dwt36cjQ.js";import{b as l,w as C,af as R,ag as V,ah as $,ai as J,bf as U,bM as W,bh as i,c_ as h}from"./index-cwV7SCbt.js";import{I as F}from"./input-DXoiBR8B.js";import{L as c}from"./label-ZRKjaR0k.js";import{T as X}from"./textarea-DXuDKDDL.js";import{S as Y}from"./switch-DHlsO-Hx.js";import{B as E}from"./badge-DH3OcwR0.js";import{T as Z,a as ee,b as N,c as d,d as se,e as n}from"./table-BsLKLLWw.js";import{S as Q,a as T,b as P,c as I,d as b}from"./select-DB2ezOdP.js";import{A as ae,a as re,b as te,c as ie,d as ne,e as oe,f as le,g as ce}from"./alert-dialog-CI41h6wJ.js";import{C as de,b as me,c as ue,d as pe,a as xe}from"./card--xtz4eBf.js";import{P as he}from"./plus-DNnuudfk.js";import{P as ge}from"./pencil-MGvtVn2j.js";import{T as je}from"./trash-2-DsWPE62z.js";import"./message-square-PMubaXRc.js";import"./newspaper-CHlewEV4.js";import"./tag-C9YMMS4O.js";import"./camera-BaCLsw_E.js";import"./shield-check-WsIH1iGp.js";import"./sliders-horizontal-BQ-86nOU.js";import"./user-check-C6J6ewlk.js";import"./network-O6WVq_gh.js";import"./clock-BrMjUDom.js";import"./book-open-YlczfV9G.js";import"./bot-Dh7mXPIY.js";import"./gavel-PkPxUdh7.js";import"./presentation-CMVRwA7v.js";import"./star-DIWblV4s.js";import"./clipboard-check-CX6a16zF.js";import"./folder-open-Caf45xKb.js";import"./settings-2-Bi0RsXgx.js";import"./rocket-C18tjCXj.js";import"./user-GGMDWiDQ.js";import"./arrow-left-BeqZSyXi.js";import"./circle-check-big-B8jnYIp7.js";import"./charts-vendor-Cs07Jtv5.js";import"./motion-vendor-DMc3mo8t.js";import"./i18n-vendor-BSIZ7LIS.js";import"./index-D6PzSG9l.js";import"./index-BdQq_4o_.js";import"./index-BatE7gkT.js";import"./chevron-up-BjRn6whD.js";const k=["general","licensing","production","investment","technical"];function ls(){const g=B(),[j,z]=o.useState("all"),[O,m]=o.useState(!1),[u,w]=o.useState(null),[v,f]=o.useState(null),[a,t]=o.useState({question_pt:"",answer_pt:"",category:"general",sort_order:0,is_active:!0}),{data:y,isLoading:H}=G({queryKey:["admin-faq-items"],queryFn:async()=>(await h.list({sort:"category,sort_order",limit:500})).data}),A=_({mutationFn:async s=>{await h.create(s)},onSuccess:()=>{g.invalidateQueries({queryKey:["admin-faq-items"]}),i.success("FAQ criada"),p()},onError:s=>i.error(`Erro: ${s.message}`)}),q=_({mutationFn:async({id:s,data:x})=>{await h.update(s,x)},onSuccess:()=>{g.invalidateQueries({queryKey:["admin-faq-items"]}),i.success("FAQ actualizada"),p()},onError:s=>i.error(`Erro: ${s.message}`)}),D=_({mutationFn:async s=>{await h.delete(s)},onSuccess:()=>{g.invalidateQueries({queryKey:["admin-faq-items"]}),i.success("FAQ eliminada"),f(null)},onError:s=>i.error(`Erro: ${s.message}`)}),p=()=>{m(!1),w(null),t({question_pt:"",answer_pt:"",category:"general",sort_order:0,is_active:!0})},L=s=>{w(s),t({question_pt:s.question_pt,answer_pt:s.answer_pt,category:s.category,sort_order:s.sort_order,is_active:s.is_active}),m(!0)},M=s=>{if(s.preventDefault(),!a.question_pt||!a.answer_pt){i.error("Pergunta e resposta são obrigatórias");return}const x={question_pt:a.question_pt,question_en:null,answer_pt:a.answer_pt,answer_en:null,category:a.category,sort_order:a.sort_order,is_active:a.is_active};u?q.mutate({id:u.id,data:x}):A.mutate(x)},r=y==null?void 0:y.filter(s=>j==="all"||s.category===j),S=A.isPending||q.isPending;return e.jsxs(K,{title:"FAQ",subtitle:"Gerir perguntas frequentes",children:[e.jsx("main",{className:"container mx-auto px-4 py-8",children:e.jsxs(de,{children:[e.jsx(me,{children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx(ue,{children:"FAQ"}),e.jsx(pe,{children:"Gerir perguntas e respostas frequentes do website"})]}),e.jsxs(l,{onClick:()=>{p(),m(!0)},children:[e.jsx(he,{className:"h-4 w-4 mr-2"}),"Nova FAQ"]})]})}),e.jsxs(xe,{children:[e.jsxs("div",{className:"flex gap-4 mb-6",children:[e.jsxs(Q,{value:j,onValueChange:z,children:[e.jsx(T,{className:"w-[200px]",children:e.jsx(P,{placeholder:"Categoria"})}),e.jsxs(I,{children:[e.jsx(b,{value:"all",children:"Todas"}),k.map(s=>e.jsx(b,{value:s,className:"capitalize",children:s},s))]})]}),e.jsxs("span",{className:"text-sm text-muted-foreground self-center",children:[(r==null?void 0:r.length)||0," FAQ(s)"]})]}),H?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(C,{className:"h-8 w-8 animate-spin text-muted-foreground"})}):e.jsx("div",{className:"rounded-md border",children:e.jsxs(Z,{children:[e.jsx(ee,{children:e.jsxs(N,{children:[e.jsx(d,{children:"Pergunta"}),e.jsx(d,{children:"Categoria"}),e.jsx(d,{children:"Ordem"}),e.jsx(d,{children:"Estado"}),e.jsx(d,{className:"text-right",children:"Acções"})]})}),e.jsx(se,{children:(r==null?void 0:r.length)===0?e.jsx(N,{children:e.jsx(n,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"Nenhuma FAQ encontrada"})}):r==null?void 0:r.map(s=>e.jsxs(N,{children:[e.jsx(n,{className:"font-medium max-w-md truncate",children:s.question_pt}),e.jsx(n,{children:e.jsx(E,{variant:"outline",className:"capitalize",children:s.category})}),e.jsx(n,{children:s.sort_order}),e.jsx(n,{children:e.jsx(E,{variant:s.is_active?"default":"secondary",children:s.is_active?"Activa":"Inactiva"})}),e.jsx(n,{className:"text-right",children:e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(l,{variant:"ghost",size:"icon",onClick:()=>L(s),children:e.jsx(ge,{className:"h-4 w-4"})}),e.jsx(l,{variant:"ghost",size:"icon",onClick:()=>f(s),children:e.jsx(je,{className:"h-4 w-4 text-destructive"})})]})})]},s.id))})]})})]})]})}),e.jsx(R,{open:O,onOpenChange:m,children:e.jsxs(V,{className:"sm:max-w-[700px] max-h-[90vh] overflow-y-auto",children:[e.jsxs($,{children:[e.jsx(J,{children:u?"Editar FAQ":"Nova FAQ"}),e.jsx(U,{children:"Preencha a pergunta e resposta em Português. Será traduzido automaticamente para os outros idiomas."})]}),e.jsxs("form",{onSubmit:M,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(c,{children:"Pergunta *"}),e.jsx(F,{value:a.question_pt,onChange:s=>t({...a,question_pt:s.target.value}),required:!0})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(c,{children:"Resposta *"}),e.jsx(X,{value:a.answer_pt,onChange:s=>t({...a,answer_pt:s.target.value}),rows:4,required:!0})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(c,{children:"Categoria"}),e.jsxs(Q,{value:a.category,onValueChange:s=>t({...a,category:s}),children:[e.jsx(T,{children:e.jsx(P,{})}),e.jsx(I,{children:k.map(s=>e.jsx(b,{value:s,className:"capitalize",children:s},s))})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(c,{children:"Ordem"}),e.jsx(F,{type:"number",value:a.sort_order,onChange:s=>t({...a,sort_order:Number(s.target.value)})})]}),e.jsxs("div",{className:"flex items-end gap-2 pb-1",children:[e.jsx(Y,{checked:a.is_active,onCheckedChange:s=>t({...a,is_active:s})}),e.jsx(c,{children:"Activa"})]})]})]}),e.jsxs(W,{children:[e.jsx(l,{type:"button",variant:"outline",onClick:p,children:"Cancelar"}),e.jsxs(l,{type:"submit",disabled:S,children:[S&&e.jsx(C,{className:"h-4 w-4 mr-2 animate-spin"}),u?"Guardar":"Criar"]})]})]})]})}),e.jsx(ae,{open:!!v,onOpenChange:()=>f(null),children:e.jsxs(re,{children:[e.jsxs(te,{children:[e.jsx(ie,{children:"Eliminar FAQ"}),e.jsx(ne,{children:"Eliminar esta pergunta frequente?"})]}),e.jsxs(oe,{children:[e.jsx(le,{children:"Cancelar"}),e.jsxs(ce,{onClick:()=>v&&D.mutate(v.id),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:[D.isPending&&e.jsx(C,{className:"h-4 w-4 mr-2 animate-spin"}),"Eliminar"]})]})]})})]})}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.