PageSourceSearch

https://dgac.gob.gt/assets/ListDigitalFormEntries-D384dS1C.js

js dgac.gob.gt collected 2026-09-24 23:03:00 UTC 12,035 bytes, 2 lines download raw bytes

1import{r as h,j as e,bH as je,bq as ge,bb as fe,D as _,bj as be,bQ as q,L as T,F as E,as as G,br as Ne,Z as De,c8 as we}from"./ui-vendor-Nh77zFHh.js";import{C as k,d as P}from"./card-IGpSy_k-.js";import{aX as ye,a as Ce,y as ve,d as Ae,v as g,B as d,I as Fe,f as w,g as R,e as J,t as Me,G as Se,H as Ie,J as Te,K as L,a2 as Ee,bJ as ke,M as Pe,a1 as Re,O as Le,P as He,Q as Oe,R as Ve}from"./index-BCakBLyb.js";import{T as ze,a as Be,b as K,c as f,d as Qe,e as b}from"./table-Bqba16zq.js";import{A as Ue,a as $e,b as _e,c as qe,d as Ge,e as Je,f as Ke,g as Xe}from"./alert-dialog-Bfzz01i_.js";import{b as Ye,a as Ze,i as We}from"./digitalFormService-D5IdDs0J.js";import{L as es}from"./LoadingSpinner-CbDDqUpX.js";import{F as H}from"./FieldValueDisplay-CMYhn-9c.js";import{e as ss}from"./pdfExportService-N-abeEao.js";import{a as as,S as X,u as rs}from"./useRealtimeQuery-C5TKHl3O.js";import{M as ts,a as is,b as ls,c as os,d as O,e as ns}from"./mobile-data-list-BeXO9sTp.js";import{T as cs}from"./TourButton-DHeq7_zB.js";import{u as ds}from"./useTableFilterPersistence-ChrkWk-T.js";import{u as ms}from"./useCrudPermissions-CaB0VAlZ.js";import{a as us,d as hs}from"./react-vendor-B-TOzi2X.js";import"./radix-vendor-8V-X-v15.js";import"./chart-vendor-BHC9f-XT.js";import"./table-vendor-CmSNR_WU.js";import"./map-RqA-2ZWO.js";import"./jspdf.es.min-DCzA9hEo.js";import"./jspdf.plugin.autotable-CyVc7Jkq.js";import"./swipeable-card-ogpDVAcd.js";import"./popover-DJHTinoQ.js";const xs=[{element:'[data-tour="digital-form-entries-header"]',popover:{title:"📥 Respuestas del Formulario",description:"Consulta las respuestas registradas para este formulario.",side:"bottom",align:"start"}},{element:'[data-tour="digital-form-entries-actions"]',popover:{title:"⚙️ Acciones Rápidas",description:"Actualiza, exporta o crea una nueva respuesta.",side:"left",align:"start"}},{element:'[data-tour="digital-form-entries-table"]',popover:{title:"🗂️ Tabla de Respuestas",description:"Explora, filtra y revisa el detalle de cada respuesta.",side:"top",align:"center"}}],Os=()=>{var Q;const{canDelete:N}=ms("api::form-entry.form-entry"),x=us(),{documentId:Y}=hs(),l=ye(Y),{getBranding:Z,getContact:W,getColors:ee}=Ce(),se=ve(),[ae,re]=h.useState(!0),[p,V]=h.useState(null),{filters:te,setFilters:ie}=ds(`digital-form-entries:${l||"unknown"}`,{searchQuery:""}),j=te.searchQuery,le=s=>ie(a=>({...a,searchQuery:s})),[t,y]=h.useState(null),[D,C]=h.useState({open:!1,entry:null}),{startTour:oe,hasSeenTour:ne}=Ae("list-digital-form-entries-tour",xs),ce=h.useCallback(async()=>{if(!l)return{data:[]};const s=await Ye(l);return{data:Array.isArray(s)?s:s.data||[]}},[l]),{data:A,isLoading:v,refetch:de}=as(["digital-form",l],()=>l?Ze(l):Promise.resolve({success:!1,data:null}),X.DIGITAL_FORM,l||""),{data:F,isLoading:z,refetch:B,optimisticDelete:me}=rs(["form-entries",l],ce,X.FORM_ENTRY,{idField:"id"}),o=(A==null?void 0:A.data)||null,u=(F==null?void 0:F.data)||[];h.useEffect(()=>{re(v||z)},[v,z]),h.useEffect(()=>{!v&&l&&!o&&(g.error("Error al cargar el formulario"),x("/digitalform"))},[v,o,x,l]);const ue=async()=>{if(!(!N||!D.entry))try{me(D.entry.documentId),await We(D.entry.documentId),g.success("Respuesta eliminada correctamente")}catch{g.error("Error al eliminar la respuesta"),await B()}finally{C({open:!1,entry:null})}},n=h.useMemo(()=>o!=null&&o.structure?o.structure.filter(s=>!["heading","paragraph","divider"].includes(s.type)):[],[o]),he=(s,a)=>{if(a==null||a==="")return"-";if(s.type==="checkbox"&&Array.isArray(a))return a.length===0?"-":a.map(r=>{var i,c;return((c=(i=s.options)==null?void 0:i.find(m=>m.value===r))==null?void 0:c.label)||r}).join(", ");if((s.type==="select"||s.type==="radio")&&s.options){const r=s.options.find(i=>i.value===a);return(r==null?void 0:r.label)||a}return s.type==="switch"?a?"Sí":"No":s.type==="color"?a:typeof a=="object"?JSON.stringify(a):String(a)},M=h.useMemo(()=>{if(!j)return u;const s=j.toLowerCase();return u.filter(a=>{const r=a.data||{};return Object.values(r).some(i=>String(i).toLowerCase().includes(s))})},[u,j]),xe=()=>{if(!o||u.length===0)return;const s=["ID","Usuario","Fecha",...n.map(m=>m.label)],a=u.map(m=>{var U;const I=m.data||{};return[m.documentId,((U=m.user)==null?void 0:U.username)||"Anónimo",m.createdAt?w(new Date(m.createdAt),"dd/MM/yyyy HH:mm"):"-",...n.map($=>{const pe=I[$.name];return he($,pe)})]}),r=[s,...a].map(m=>m.map(I=>`"${String(I).replace(/"/g,'""')}"`).join(",")).join(`
2`),i=new Blob([r],{type:"text/csv;charset=utf-8;"}),c=document.createElement("a");c.href=URL.createObjectURL(i),c.download=`${o.title||"formulario"}_respuestas_${w(new Date,"yyyyMMdd")}.csv`,c.click(),g.success("Archivo CSV descargado")},S=async s=>{V(s.documentId);try{const a=Z(),r=W(),i=ee();await ss(s,o.title||"Formulario",n,{siteName:a.siteName||"CRM",tagline:a.tagline,logo:a.logo,address:r.address,email:r.email,phone:r.phone,primaryColor:i.primary}
2),g.success("PDF exportado correctamente")}catch(a){console.error("Error exporting PDF:",a),g.error("Error al exportar PDF")}finally{V(null)}};return ae?e.jsx(es,{}):o?e.jsxs("div",{className:"p-4 md:p-6 space-y-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4","data-tour":"digital-form-entries-header",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(d,{variant:"ghost",size:"icon",onClick:()=>x("/digitalform"),children:e.jsx(je,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl md:text-3xl font-bold text-foreground",children:o.title}),e.jsxs("p",{className:"text-muted-foreground mt-1",children:[u.length," respuesta",u.length!==1?"s":""," registrada",u.length!==1?"s":""]})]})]}),e.jsxs("div",{className:"flex gap-2","data-tour":"digital-form-entries-actions",children:[e.jsxs(d,{variant:"outline",onClick:()=>Promise.all([de(),B()]),children:[e.jsx(ge,{className:"h-4 w-4 mr-2"}),"Actualizar"]}),e.jsxs(d,{variant:"outline",onClick:xe,disabled:u.length===0,children:[e.jsx(fe,{className:"h-4 w-4 mr-2"}),"Exportar CSV"]}),e.jsxs(d,{onClick:()=>x(`/ins-digitalform/${l}`),children:[e.jsx(_,{className:"h-4 w-4 mr-2"}),"Nueva Respuesta"]})]})]}),e.jsx(k,{"data-tour":"digital-form-entries-search",children:e.jsx(P,{className:"p-4",children:e.jsxs("div",{className:"relative w-full sm:w-80",children:[e.jsx(be,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(Fe,{placeholder:"Buscar en respuestas...",value:j,onChange:s=>le(s.target.value),className:"pl-10"})]})})}),M.length===0?e.jsx(k,{"data-tour":"digital-form-entries-empty",children:e.jsxs(P,{className:"flex flex-col items-center justify-center py-12",children:[e.jsx(_,{className:"h-16 w-16 text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-semibold",children:"No hay respuestas"}),e.jsx("p",{className:"text-muted-foreground text-center max-w-md mt-2",children:j?"No se encontraron respuestas con esos criterios de búsqueda":"Aún no se han registrado respuestas para este formulario"}),!j&&e.jsx(d,{onClick:()=>x(`/ins-digitalform/${l}`),className:"mt-4",children:"Llenar Formulario"})]})}):e.jsx(k,{"data-tour":"digital-form-entries-table",children:e.jsx(P,{className:"p-0",children:se?e.jsx(ts,{children:M.map((s,a)=>{var r;return e.jsxs(is,{children:[e.jsx(ls,{children:e.jsxs("span",{className:"font-medium",children:["#",a+1," · ",((r=s.user)==null?void 0:r.username)||"Anónimo"]})}),e.jsxs(os,{columns:1,children:[e.jsx(O,{label:"Fecha",children:s.createdAt?w(new Date(s.createdAt),"dd MMM yyyy HH:mm",{locale:R}):"-"}),n.slice(0,4).map(i=>{var c;return e.jsx(O,{label:i.label,children:e.jsx(H,{type:i.type,value:(c=s.data)==null?void 0:c[i.name],compact:!0})},i.id)}),n.length>4&&e.jsx(O,{label:"Más campos",children:e.jsxs(J,{variant:"secondary",children:["+ ",n.length-4]})})]}),e.jsxs(ns,{children:[e.jsxs(d,{size:"sm",variant:"outline",onClick:()=>y(s),children:[e.jsx(q,{className:"h-4 w-4 mr-1"}),"Ver"]}),e.jsxs(d,{size:"sm",variant:"outline",onClick:()=>S(s),disabled:p===s.documentId,children:[p===s.documentId?e.jsx(T,{className:"h-4 w-4 mr-1 animate-spin"}):e.jsx(E,{className:"h-4 w-4 mr-1"}),"PDF"]}),N&&e.jsx(d,{size:"sm",variant:"destructive",onClick:()=>C({open:!0,entry:s}),children:e.jsx(G,{className:"h-4 w-4"})})]})]},s.documentId)})}):e.jsxs(Me,{className:"w-full",children:[e.jsxs(ze,{children:[e.jsx(Be,{children:e.jsxs(K,{children:[e.jsx(f,{className:"w-[50px]",children:"#"}),e.jsx(f,{children:"Usuario"}),e.jsx(f,{children:"Fecha"}),n.slice(0,4).map(s=>e.jsx(f,{children:s.label},s.id)),n.length>4&&e.jsxs(f,{children:["+ ",n.length-4," más"]}),e.jsx(f,{className:"text-right",children:"Acciones"})]})}),e.jsx(Qe,{children:M.map((s,a)=>{var r;return e.jsxs(K,{children:[e.jsx(b,{className:"font-medium",children:a+1}),e.jsx(b,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ne,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{children:((r=s.user)==null?void 0:r.username)||"Anónimo"})]})}),e.jsx(b,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(De,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{children:s.createdAt?w(new Date(s.createdAt),"dd MMM yyyy HH:mm",{locale:R}):"-"})]})}),n.slice(0,4).map(i=>{var c;return e.jsx(b,{className:"max-w-[200px]",children:e.jsx(H,{type:i.type,value:(c=s.data)==null?void 0:c[i.name],compact:!0})},i.id)}),n.length>4&&e.jsx(b,{children:e.jsx(J,{variant:"secondary",children:"Ver todo"})}),e.jsx(b,{className:"text-right",children:e.jsxs(Se,{children:[e.jsx(Ie,{asChild:!0,children:e.jsx(d,{variant:"ghost",size:"icon",children:e.jsx(we,{className:"h-4 w-4"})})}),e.jsxs(Te,{align:"end",children:[e.jsxs(L,{onClick:()=>y(s),children:[e.jsx(q,{className:"h-4 w-4 mr-2"}),"Ver Detalles"]}),e.jsxs(L,{onClick:()=>S(s),disabled:p===s.documentId,children:[p===s.documentId?e.jsx(T,{className:"h-4 w-4 mr-2 animate-spin"}):e.jsx(E,{className:"h-4 w-4 mr-2"}),"Exportar PDF"]}),N&&e.jsx(Ee,{}),N&&e.jsxs(L,{className:"text-destructive",onClick:()=>C({open:!0,entry:s}),children:[e.jsx(G,{className:"h-4 w-4 mr-2"}),"Eliminar"]})]})]})})]},s.documentId)})})]}),e.jsx(ke,{orientation:"horizontal"})]})})}),e.jsx(Pe,{open:!!t,onOpenChange:()=>y(null),children:e.jsxs(Re,{size:"lg",className:"max-h-[80vh] overflow-y-auto",children:[e.jsxs(Le,{children:[e.jsx(He,{children:"Detalle de Respuesta"}),e.jsxs(Oe,{children:[((Q=t==null?void 0:t.user)==null?void 0:Q.username)||"Anónimo"," -"," ",t!=null&&t.createdAt?w(new Date(t.createdAt),"dd 'de' MMMM yyyy 'a las' HH:mm",{locale:R}):"-"]})]}),e.jsx("div",{className:"space-y-5 mt-4",children:n.map(s=>{var r;const a=(r=t==null?void 0:t.data)==null?void 0:r[s.name];return e.jsxs("div",{className:"border-b pb-4 last:border-0",children:[e.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:s.label}),e.jsx("div",{className:"mt-1",children:e.jsx(H,{type:s.type,value:a,label:s.label,compact:!1})})]},s.id)})}),e.jsxs(Ve,{className:"mt-6 pt-4 border-t",children:[e.jsx(d,{variant:"outline",onClick:()=>y(null),children:"Cerrar"}),e.jsxs(d,{onClick:()=>t&&S(t),disabled:p===(t==null?void 0:t.documentId),children:[p===(t==null?void 0:t.documentId)?e.jsx(T,{className:"h-4 w-4 mr-2 animate-spin"}):e.jsx(E,{className:"h-4 w-4 mr-2"}),"Exportar PDF"]})]})]})}),e.jsx(Ue,{open:D.open,onOpenChange:s=>C({...D,open:s}),children:e.jsxs($e,{children:[e.jsxs(_e,{children:[e.jsx(qe,{children:"¿Eliminar respuesta?"}),e.jsx(Ge,{children:"Esta acción no se puede deshacer. Se eliminará permanentemente esta respuesta del formulario."})]}),e.jsxs(Je,{children:[e.jsx(Ke,{children:"Cancelar"}),N&&e.jsx(Xe,{onClick:ue,className:"bg-destructive text-destructive-foreground",children:"Eliminar"})]})]})}),e.jsx(cs,{onClick:oe,hasSeenTour:ne})]}):e.jsxs("div",{className:"p-6 text-center",children:[e.jsx("p",{className:"text-muted-foreground",children:"Formulario no encontrado"}),e.jsx(d,{onClick:()=>x("/digitalform"),className:"mt-4",children:"Volver"})]})};export{Os 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.