@imj_media/tareas 1.5.21 → 1.5.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/tareas.cjs CHANGED
@@ -1,12 +1,12 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("@imj_media/imj-ui/styles.css");require("@imj_media/ui/index.css");const de=require("@tanstack/react-query"),ee=require("@imj_media/tasks-modules"),Ua=require("primereact/paginator"),p=require("react"),wt=require("axios"),Pe=require("qs"),Ue=require("react-dom"),et=require("date-fns"),pt=require("date-fns/locale"),me=require("@imj_media/imj-ui"),je=require("react-hook-form"),re=require("@xyflow/react"),Wa=require("react-pick-color");require("@xyflow/react/dist/style.css");const M=require("@imj_media/ui"),qe=require("zustand"),it=require("moment"),Q={bg:{content:"#FAFAFA"},texts:{DEFAULT:"#252525",subtext:"#4f4f4f",placeholder:"#929292"},primary:{regular:"#425CAC"},success:{dark:"#368156",regular:"#43B071"},danger:{dark:"#8C352C",regular:"#C34335"},warning:{dark:"#B4782F",regular:"#D38A31"},silver:{silver_light:" #F5F5F5",silver_dark:" #E9E9E9"},progressbar:{orange_regular:"#DC8921",blue_regular:"#3658C1",green_regular:"#039B59"},gray:{gray_regular:"#D1D1D1",gray_dark:"#C4C4C4"},black:{black_light:"#929292",black_medium:"#4F4F4F",black_dark:"#131313"},blue:{blue_dark:"#28408F"}},Ct=t=>{let a={};return Object.entries(t).forEach(([s,n])=>{if(s.includes(".")){let[r,i]=s.split(".");a[r]=a[r]||{},a[r][i]=n}else a[s]=n}),a},Ga=({search:t,filters:a})=>{const s=Object.keys(a).reduce((n,r)=>(a[r]&&(n[r]={$containsi:a[r]}),n),{});return{...t?{nombre:{$containsi:t}}:{},...s}},Ut=p.createContext({}),Ka=({children:t})=>{const[a,s]=p.useState({}),[n,r]=p.useState({}),[i,o]=p.useState([]),[d,l]=p.useState(""),c=({name:w,value:m})=>{function g(b){return!isNaN(b)&&b!==null&&b!==""?parseFloat(b):null}let x=g(m);r(b=>{let j={...b},v=i==null?void 0:i.find(L=>L.label.toLowerCase().replace(/ /g,"_")===w);return v?j[v.id]=x??m:j[w]=x??m,j})};p.useEffect(()=>{let w=i.map(m=>m.id==="owner.config"?[m.id,"yo_y_mis_equipos"]:m.id==="dependency"?[m.id,"ambas"]:[m.id,null]);r(m=>{let g={search:m==null?void 0:m.search,taskName:m==null?void 0:m.taskName};return g={...g,...Object.fromEntries(w)},g})},[i]);const u=()=>{let w=i.map(m=>m.id==="owner.config"?[m.id,"yo_y_mis_equipos"]:m.id==="dependency"?[m.id,"ambas"]:[m.id,null]);r(Object.fromEntries(w)),s(Ct(Object.fromEntries(w)))},f=w=>({1:"Muy facil",2:"Facil",3:"Media",4:"Dificil",5:"Muy dificil"})[w],h=()=>{let w=Ct(n);w.difficulty&&(w.difficulty=f(w.difficulty)),s(w)};return e.jsx(Ut.Provider,{value:{fields:i,filters:a,path:d,defineFields:o,updateFilters:c,cleanFilters:u,applyFilters:h,initialFilters:n,selectPath:l},children:t})},ke=()=>p.useContext(Ut),Wt=p.createContext({}),Qa=({children:t,user:a,url:s,mode:n})=>{const r=n==="prod"?"https://services.imjmedia.com.mx":"https://devobp.imjmedia.com.mx",i=wt.create({baseURL:s,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:l=>Pe.stringify(l,{encodeValuesOnly:!0})}),o=()=>r,d=l=>l==="undefined"||l===void 0?"":`${r}${l}`;return e.jsx(Wt.Provider,{value:{tasks_api:i,getOBPUrlApi:o,getImageOBP:d},children:t})},we=()=>p.useContext(Wt),Gt=p.createContext({}),Va=({children:t,user:a,url:s})=>{const n=wt.create({baseURL:s,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:r=>Pe.stringify(r,{encodeValuesOnly:!0})});return e.jsx(Gt.Provider,{value:{user:a,tasks_api:n},children:t})},_e=()=>p.useContext(Gt),ge=t=>{const a=n=>Object.prototype.toString.call(n)==="[object Object]",s=n=>n.attributes?{id:n.id,...n.attributes}:n;if(Array.isArray(t))return t.map(n=>ge(n));if(a(t)){Array.isArray(t.data)?t=[...t.data]:a(t.data)?t=s({...t.data}):t.data===null?t=null:t=s(t);for(const n in t)t[n]=ge(t[n]);return t}return t},Te=({imageUrl:t="https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png",alt:a="avatar",size:s="s"})=>{const n={xs:"tw-w-[24px] tw-h-[24px] tw-min-w-[24px] tw-min-h-[24px]",s:"tw-w-[28px] tw-h-[28px] tw-min-w-[28px] tw-min-h-[28px]",m:"tw-w-[32px] tw-h-[32px] tw-min-w-[32px] tw-min-h-[32px]",l:"tw-w-[36px] tw-h-[36px] tw-min-w-[36px] tw-min-h-[36px]",xl:"tw-w-[40px] tw-h-[40px] tw-min-w-[40px] tw-min-h-[40px]",xxl:"tw-w-[44px] tw-h-[44px] tw-min-w-[44px] tw-min-h-[44px]"}[s];return e.jsx("img",{src:t===""?"https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png":t,alt:a??"avatar",className:`${n} tw-bg-containers tw-rounded-full tw-border-2 tw-border-white`})};class Xa{static toCampaignTasks(a){var n,r,i,o,d,l,c,u,f,h,w,m,g;let s=[];return a!=null&&a.responsable&&s.push({id:a.responsable.id,name:a.responsable.nombre,image:(d=(o=(i=(r=(n=a.responsable)==null?void 0:n.userOBP)==null?void 0:r.imagen)==null?void 0:i.formats)==null?void 0:o.thumbnail)==null?void 0:d.url,role:((l=a.responsable.userOBP)==null?void 0:l.role)||{id:0,name:""}}),(c=a==null?void 0:a.equipo)!=null&&c.miembros&&a.equipo.miembros.forEach(x=>{var b,j,v,L,S;s!=null&&s.find(k=>k.id===x.idUser.id)||x.idUser&&s.push({id:x.idUser.id,name:x.idUser.nombre,image:(L=(v=(j=(b=x==null?void 0:x.userOBP)==null?void 0:b.imagen)==null?void 0:j.formats)==null?void 0:v.thumbnail)==null?void 0:L.url,role:((S=x.userOBP)==null?void 0:S.role)||{id:0,name:""}})}),{paused:a==null?void 0:a.pausada,isPrincipalTask:(a==null?void 0:a.tarea_principal)??!1,projectName:((u=a==null?void 0:a.proyecto)==null?void 0:u.nombre)??null,orden:(a==null?void 0:a.orden)??null,id:(a==null?void 0:a.id)??null,task:(a==null?void 0:a.texto_corto)??null,status:(a==null?void 0:a.estatus)??null,difficulty:(a==null?void 0:a.nivel_dificultad)??null,priority:(a==null?void 0:a.prioridad)??0,endDate:new Date((a==null?void 0:a.ffin)??null),startDate:new Date((a==null?void 0:a.finicio)??null),mediumName:(a==null?void 0:a.nombre_medio)??null,users:s,repeatsToDo:(a==null?void 0:a.repeticiones)??null,repeats:(a==null?void 0:a.repeticiones_realizadas)??null,comments:((f=a==null?void 0:a.comentarios)==null?void 0:f.length)??null,willBePaused:a==null?void 0:a.es_pausable,statusRequiredTask:((h=a==null?void 0:a.id_t_requerida)==null?void 0:h.estatus)??null,nameRequiredTask:((w=a==null?void 0:a.id_t_requerida)==null?void 0:w.texto_corto)??null,responsible:((m=a==null?void 0:a.responsable)==null?void 0:m.id)??null,tasks:((g=a==null?void 0:a.tareas)==null?void 0:g.map(x=>({id:x.id,name:x.texto_corto,status:x.estatus})))??null,atraso:(a==null?void 0:a.atraso)??null,categoria:(a==null?void 0:a.categoria)??null}}}const Ya=async({filters:t,tasks_api:a,project:s})=>{try{const n=await a.get("/api/listado_tareas_flujo",{params:{...t,project:{id:s},includeAllTasks:!0}});return ge(n.data.tareas).map(Xa.toCampaignTasks)}catch(n){console.log(n)}},Kt=p.createContext({}),Ja=({children:t,project:a})=>{var b;const[s,n]=p.useState([]),[r,i]=p.useState(!1),[o,d]=p.useState([]),{tasks_api:l}=we(),{filters:c}=ke(),{user:u}=_e(),[f,h]=p.useState({owner:{user:u.id,config:((b=c==null?void 0:c.owner)==null?void 0:b.config)??"yo_y_mis_equipos"},project:{id:a}});p.useEffect(()=>{var j;if(Object.keys(c).length>0){const v={...c,owner:{user:u.id,config:((j=c==null?void 0:c.owner)==null?void 0:j.config)??"yo_y_mis_equipos"},project:{id:a}};h(v)}},[c,u.id,a]);const w=de.useQuery({queryKey:["tasksProject",f,a],queryFn:()=>{const j={...f,taskName:c==null?void 0:c.taskName,owner:{...f.owner,config:f.owner.config||"yo_y_mis_equipos"}};return Ya({filters:j,project:a,tasks_api:l})}}),m=j=>{n(v=>[...v,j])},g=j=>{d(v=>v.includes(j)?v.filter(L=>L!==j):[...v,j])},x=a??null;return e.jsx(Kt.Provider,{value:{tasksProject:w,selectedTasks:s,projectID:x,openTasks:o,selectTask:m,filtersToSend:f,openTask:g,isRefetching:r,project:a,filters:c,setIsRefetching:i},children:t})},We=()=>p.useContext(Kt),Qt=p.createContext(null),Za=({children:t})=>{const[a,s]=p.useState({message:"",type:"success"}),n=(r,i)=>{s({message:r,type:i}),setTimeout(()=>s({message:"",type:"success"}),3e3)};return e.jsx(Qt.Provider,{value:{toast:a,showSuccess:r=>n(r,"success"),showError:r=>n(r,"error")},children:t})},Ge=()=>p.useContext(Qt);class Vt{static toAtrasoReasons(a){return{id:a.id,motivo_imj:a.motivo_imj,categoria:a.categoria??null}}}const es=async({tasks_api:t})=>{try{const a=await t.get("/api/motivos",{params:{populate:{categoria:{fields:["id","nombre","tipo"]}},filters:{tipo:{$eq:"atraso"}}}});return ge(a.data).map(Vt.toAtrasoReasons)}catch(a){throw console.log("Error al obtener los motivos de atraso",a),`Error al obtener los motivos de atraso: ${a}`}},Xt=({enabled:t=!1}={})=>{const{tasks_api:a}=we(),{user:s}=_e(),n=de.useQueryClient(),{showSuccess:r,showError:i}=Ge(),{filters:o,path:d}=ke(),{data:l,isLoading:c}=de.useQuery({queryKey:["atraso_reasons"],queryFn:()=>es({tasks_api:a}),staleTime:1e3*60*60*24,enabled:t}),u=async()=>{const L=await a.get("/api/motivos",{params:{filters:{tipo:{$eq:"atraso"}}}});return ge(L.data).map(Vt.toAtrasoReasons)},f=async({taskId:L,motivoId:S,projectID:k})=>{try{return(await a.post("/api/atrasos",{data:{inicio:new Date,fin:null,motivo:S,proyecto:k,tarea:L,creada_por:s==null?void 0:s.id}})).data}catch(N){console.log("error",N)}},h=async L=>{try{return(await a.delete(`/api/atrasos/${L}`)).data}catch(S){console.log("error",S)}},w=async L=>{try{return(await a.put(`/api/atrasos/${L}`,{data:{fin:new Date}})).data}catch(S){console.log("error",S)}},m=async({taskId:L,projectID:S,motivo:k})=>{await b({taskId:L,motivoId:k,projectID:S})},g=async L=>{await j(L)},x=async L=>{await v(L)},{mutateAsync:b}=de.useMutation({mutationFn:f,onSuccess:()=>{r("Atraso registrado correctamente"),d==="kanban-general"&&(n.invalidateQueries({queryKey:["to_do_tasks",o]}),n.invalidateQueries({queryKey:["working_tasks",o]})),d==="kanban-campania"&&n.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{i("Error al registrar el atraso")}}),{mutateAsync:j}=de.useMutation({mutationFn:h,onSuccess:()=>{r("Atraso eliminado correctamente"),d==="kanban-general"&&(n.invalidateQueries({queryKey:["to_do_tasks"]}),n.invalidateQueries({queryKey:["working_tasks"]}),n.invalidateQueries({queryKey:["done_tasks"]})),d==="kanban-campania"&&n.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{i("Error al eliminar el atraso")}}),{mutateAsync:v}=de.useMutation({mutationFn:w,onSuccess:()=>{r("Atraso finalizado correctamente")},onError:()=>{i("Error al finalizar el atraso")}});return{atrasoReasons:l,isLoading:c,createAtraso:m,getAtrasoReasons:u,deleteAtraso:g,finalizarAtraso:x}},Le=()=>{const{tasks_api:t}=we(),{user:a}=_e(),{filters:s,path:n}=ke(),r=de.useQueryClient(),{projectID:i}=We(),{showSuccess:o,showError:d}=Ge(),{finalizarAtraso:l}=Xt({enabled:!1}),c=async({id:I})=>(await t.put(`/api/tareas/${I}`,{data:{estatus:1,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,u=async({id:I})=>(await t.put(`/api/tareas/${I}`,{data:{estatus:0,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,f=async({id:I,idAtraso:O})=>{const H=await t.post("/api/terminarTarea",{id_task:I,ended_at:new Date().toISOString(),id_user:a==null?void 0:a.id});return await l(O),H.data},h=async({id:I,repeats:O})=>(await t.put(`/api/tareas/${I}`,{data:{repeticiones_realizadas:O,updated_by:a==null?void 0:a.id}})).data,w=async({id:I,motiveId:O})=>{try{const H=await t.post("/api/pausarTarea",{taskId:I,userId:a==null?void 0:a.id,motivoId:O});return o("Tarea pausada correctamente"),H.data}catch(H){d("Error al pausar la tarea: "+H)}},m=async({id:I})=>{try{const O=await t.post("/api/reanudarTarea",{taskId:I});return o("Tarea reanudada correctamente"),O.data}catch(O){d("Error al reanudar la tarea: "+O)}},g=async({id:I,idNewResponsible:O,typeOfSelect:H})=>{let U={updated_by:a==null?void 0:a.id};return H==="responsible"&&(U={...U,responsable:O}),H==="team"&&(U={...U,responsable:null,equipo:O}),(await t.put(`/api/tareas/${I}`,{data:U})).data},x=async({id:I,data:O,user:H})=>{try{return(await t.put(`/api/tareas/${I}`,{data:{...O,updated_by:H==null?void 0:H.id}})).data}catch(U){console.error("Error updating the element:",U)}},b=async({id:I})=>{await L({id:I})},j=async({id:I,data:O,user:H})=>{await v({id:I,data:O,user:H})},{mutateAsync:v}=de.useMutation({mutationFn:x,onSuccess:()=>{o("Tarea actualizada correctamente");const I={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(r.invalidateQueries({queryKey:[I[n],s]}),r.invalidateQueries({queryKey:["done_tasks",s]}),r.invalidateQueries({queryKey:["working_tasks",s]})),n==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(O){console.error("Error invalidating queries:",O)}},onError:I=>{console.error("Failed to update the task.",I)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]})}}),{mutateAsync:L}=de.useMutation({mutationFn:c,onSuccess:()=>{const I={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(r.invalidateQueries({queryKey:[I[n],s]}),r.invalidateQueries({queryKey:["working_tasks",s]})),n==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(O){console.error("Error updating the element:",O)}},onError:I=>{console.error("Failed to update the task.",I)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:S}=de.useMutation({mutationFn:f,onSuccess:()=>{const I={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{r.setQueryData([I[n],s],O=>{console.log({oldData:O})}),n==="kanban-general"&&(r.invalidateQueries({queryKey:[I[n],s]}),r.invalidateQueries({queryKey:["done_tasks",s]}),r.invalidateQueries({queryKey:["working_tasks",s]})),n==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(O){console.error("Error invalidating queries:",O)}},onError:I=>{console.error("Failed to update the task.",I)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["done_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:k}=de.useMutation({mutationFn:h,onSuccess:()=>{const I={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(r.invalidateQueries({queryKey:[I[n],s]}),r.invalidateQueries({queryKey:["done_tasks",s]}),r.invalidateQueries({queryKey:["working_tasks",s]})),n==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(O){console.error("Error invalidating queries:",O)}},onError:I=>{console.error("Failed to update the task.",I)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["done_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:N}=de.useMutation({mutationFn:g,onSuccess:()=>{const I={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(r.invalidateQueries({queryKey:[I[n],s]}),r.invalidateQueries({queryKey:["done_tasks",s]}),r.invalidateQueries({queryKey:["working_tasks",s]})),n==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(O){console.error("Error invalidating queries:",O)}},onError:I=>{console.error("Failed to reassign the task.",I)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["done_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:_}=de.useMutation({mutationFn:u,onSuccess:()=>{const I={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(r.invalidateQueries({queryKey:[I[n],s]}),r.invalidateQueries({queryKey:["working_tasks",s]})),n==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(O){console.error("Error updating the element:",O)}},onError:I=>{console.error("Failed to update the task.",I)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}});return{updatingTask:j,updateTask:x,startTask:async({id:I})=>{await _({id:I})},startWorking:b,completeTask:async({id:I,idAtraso:O})=>{await S({id:I,idAtraso:O})},reasignResponsible:async({id:I,idNewResponsible:O,typeOfSelect:H})=>{await N({id:I,idNewResponsible:O,typeOfSelect:H})},updateUnitys:async({repeats:I,id:O})=>{await k({repeats:I,id:O})},pauseTask:async({id:I,motiveId:O})=>{console.log({taksId:I,motivoId:O,user:a==null?void 0:a.id})},postPauseTask:w,postReanudeTask:m}},ts=({id:t,idAtraso:a})=>{const[s,n]=p.useState(!1),{completeTask:r}=Le();return{checked:s,checkTask:()=>{n(!s),r({id:t,idAtraso:a})}}},Yt=({id:t,nameRequiredTask:a,statusRequiredTask:s,status:n,idAtraso:r})=>{const{checked:i,checkTask:o}=ts({id:t,idAtraso:r});let d=Math.random().toString();const l=a!==""&&s===2;return e.jsxs(e.Fragment,{children:[n===2&&e.jsx("div",{className:"tw-mx-[2px] tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-success-regular tw-transition-all",children:e.jsx(ee.Icons,{icon:"circle_checked",color:"white",strokeWidth:4,size:"xs"})}),l||!a?n===1?e.jsx("label",{htmlFor:d,className:i?"tw-mx-[2px] tw-flex tw-h-[20px] tw-w-[20px] tw-items-center tw-justify-center tw-rounded-full tw-bg-success-regular tw-transition-all":"tw-transition-colors",children:e.jsx(ee.Icons,{icon:i?"check_outline":"circle_checked",color:i?"white":Q.texts.placeholder,strokeWidth:4,size:i?"xs":"s"})}):e.jsx(e.Fragment,{children:" "}):e.jsx(ee.Tooltip,{dispatch:e.jsx("label",{className:"tw-cursor-help",children:e.jsx(ee.Icons,{icon:"info_circle",color:Q.warning.regular,strokeWidth:4})}),children:e.jsxs("div",{className:"tw-shadow-black-300 tw-text-s tw-absolute tw-left-0 tw-top-full tw-z-10 tw-ml-[-2rem] tw-mt-2 tw-flex tw-w-fit tw-max-w-[400px] tw-flex-col tw-gap-m tw-rounded-lg tw-border-l-[5px] tw-border-warning-regular tw-bg-warning-light tw-p-l tw-text-warning-dark tw-shadow-xl",children:[e.jsx("p",{className:"tw-w-[210px] tw-font-bold",children:" Requiere completar su tarea requerida: "}),e.jsxs("p",{children:[" ",a," "]})]})}),e.jsx("input",{id:d,checked:i,onChange:o,type:"checkbox",className:"tw-hidden"})]})},Jt=()=>{const t=()=>e.jsxs("div",{className:"tw-flex tw-w-full tw-gap-m",children:[e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-full tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-w-[30%] tw-animate-pulse tw-rounded-md tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-lg tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-lg tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-lg tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-w-[10%] tw-animate-pulse tw-rounded-md tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-lg tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-w-[10%] tw-animate-pulse tw-rounded-md tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-lg tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-lg tw-bg-gray-200"})]});return e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-m",children:[e.jsx(t,{}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-m tw-pl-5",children:[e.jsx(t,{}),e.jsx("div",{className:"tw-pl-5",children:e.jsx(t,{})})]}),e.jsx(t,{}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-m tw-pl-5",children:[e.jsx(t,{}),e.jsx("div",{className:"tw-pl-5",children:e.jsx(t,{})})]})]})},Et=[{label:"Tipo de dependencia",type:"select",id:"dependency",options:[{id:"con",name:"Con dependencia"},{id:"sin",name:"Sin dependencia"},{id:"ambas",name:"Ambas"}]},{label:"Por campaña",type:"select",id:"project.id",options:[]},{label:"Por responsable",type:"select",id:"owner.config",options:[{id:"yo",name:"Mis tareas"},{id:"yo_y_mis_equipos",name:"Tareas mías y de mis equipos"},{id:"mis_equipos",name:"Tareas de mis equipos"}]},{label:"Por ejecutivo comercial",type:"select",id:"salesman.id",options:[]},{label:"Por dificultad",type:"select",id:"difficulty",options:[{id:1,name:"Muy facil"},{id:2,name:"Facil"},{id:3,name:"Media"},{id:4,name:"Dificil"},{id:5,name:"Muy dificil"}]}],St=[{label:"Responsable",type:"select",id:"responsable.responsableType",options:[{id:"yo_y_mis_equipos",name:"Yo y mis equipos"},{id:"mis_equipos",name:"Mis equipos"},{id:"yo",name:"Yo"}]},{label:"Por Ejecutivo",type:"select",id:"ejecutivo",options:[]}],as=({setPath:t,setProject:a})=>{const[s,n]=p.useState([]),[r,i]=p.useState(!0),[o,d]=p.useState(0),[l,c]=p.useState(10),[u,f]=p.useState(0),[h,w]=p.useState("nombre"),{filters:m,defineFields:g}=ke(),{tasks_api:x,getImageOBP:b}=we(),{user:j}=_e(),v=async(y,X)=>{var B,I,O;try{i(!0);const H={filters:{search:(m==null?void 0:m.search)??"",responsable:{idUser:j.id,responsableType:(B=m==null?void 0:m.responsable)==null?void 0:B.responsableType},ejecutivo:(m==null?void 0:m.ejecutivo)??""}},U=await x.get("/api/listado_campanias",{params:{pagination:{page:y,pageSize:X},orderBy:h,...H}}),K=ge(U==null?void 0:U.data);n(K),f((O=(I=U==null?void 0:U.data)==null?void 0:I.meta)==null?void 0:O.total)}catch(H){console.error("Error fetching data en Lista Campaña:",H)}finally{i(!1)}},L=async()=>{try{const y=await x.get("/api/obtener-comerciales");return[...St].map(B=>(B.id==="ejecutivo"&&(B.options=y.data.map(I=>({id:I.nombre,name:I.nombre}))),B))}catch(y){return console.error("Error fetching salesman data:",y),[...St]}};p.useEffect(()=>{(async()=>{const X=await L();g(X)})()},[]),p.useEffect(()=>{const y=Math.floor(o/l)+1;v(y,l)},[o,l,h,m]);const S=y=>{d(y.first),c(y.rows)},k=[{label:"5 filas",value:5},{label:"10 filas",value:10},{label:"15 filas",value:15},{label:"20 filas",value:20},{label:"25 filas",value:25},{label:"50 filas",value:50}],N=y=>{const X=parseInt(y.target.value,10);c(X),S({first:0,rows:X})},_=y=>{w(X=>X===y?`${y}:desc`:y)},P=y=>h===y?"↑↓":h===`${y}:desc`?"↓↑":"↑↓",F=y=>({padding:"auto",backgroundColor:Q.silver.silver_light,borderRadius:"50%",cursor:y?"not-allowed":"pointer",transition:"all 0.2s ease",marginRight:"4px",border:`1px solid ${y?Q.gray.gray_regular:Q.gray.gray_dark}`,color:y?Q.gray.gray_regular:Q.black.black_dark,width:"32px",height:"32px",display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center"});return e.jsx("div",{className:"tw-w-full tw-rounded-lg tw-p-4 tw-shadow-md",style:{background:Q.bg.content,display:"flex",flexDirection:"column",height:"100%"},children:r?e.jsx("div",{className:"tw-w-full",children:e.jsx(Jt,{})}):e.jsx(e.Fragment,{children:e.jsxs("div",{className:"tw-flex tw-h-full tw-flex-col",children:[e.jsx("div",{className:"tw-flex-1 tw-overflow-auto",children:e.jsxs("table",{className:"tw-w-full tw-table-auto tw-border-collapse",style:{borderCollapse:"collapse",width:"100%",borderSpacing:"0"},children:[e.jsx("thead",{children:e.jsxs("tr",{style:{color:Q.gray.gray_regular},children:[e.jsx("th",{onClick:()=>_("nombre"),style:{color:Q.gray.gray_dark,textAlign:"left"},children:e.jsxs("div",{className:"tw-flex tw-w-fit tw-items-center tw-space-x-1",style:{display:"flex",alignItems:"center"},children:[e.jsx("label",{className:"tw-text-s",style:{color:Q.gray.gray_dark},children:P("nombre")}),e.jsx("span",{className:"tw-align-middle tw-font-sans tw-text-[1.4rem] tw-font-normal tw-leading-[100%] tw-tracking-normal",children:"Campaña"})]})}),e.jsx("th",{onClick:()=>_("inicia"),className:"tw-whitespace-nowrap",style:{color:Q.gray.gray_dark,textAlign:"left"},children:e.jsxs("div",{className:"tw-flex tw-w-fit tw-items-center tw-space-x-1",children:[e.jsx("label",{style:{color:Q.gray.gray_dark},children:P("inicia")}),e.jsx(ee.Icons,{icon:"calendar",size:"xs",strokeWidth:5,color:Q.gray.gray_dark,className:"tw-mt-1 tw-h-[15px] tw-w-[15px]"}),e.jsx("span",{style:{color:Q.gray.gray_dark},className:"tw-align-middle tw-font-sans tw-text-[1.4rem] tw-font-normal tw-leading-[100%] tw-tracking-normal",children:"Fecha Inicio"})]})}),e.jsx("th",{onClick:()=>_("termina"),className:"tw-whitespace-nowrap",style:{color:Q.gray.gray_dark,textAlign:"left"},children:e.jsxs("div",{className:"tw-flex tw-w-fit tw-items-center",children:[e.jsx("label",{style:{color:"#C4C4C4"},children:P("termina")}),e.jsx(ee.Icons,{icon:"calendar",size:"xs",strokeWidth:5,color:Q.gray.gray_dark,className:"tw-mt-1 tw-h-[15px] tw-w-[15px]"}),e.jsx("span",{className:"tw-align-middle tw-font-sans tw-text-[1.4rem] tw-font-normal tw-leading-[100%] tw-tracking-normal",children:"Fecha Fin"})]})}),e.jsx("th",{className:"align-middle tw-whitespace-nowrap tw-text-center",style:{color:Q.gray.gray_dark},children:e.jsx("div",{className:"tw-inline-flex tw-w-full tw-items-center tw-justify-center",children:e.jsx("span",{className:"tw-font-sans tw-text-[1.4rem] tw-font-normal tw-leading-[100%] tw-tracking-normal",children:"Status de campaña"})})}),e.jsx("th",{className:"align-middle tw-whitespace-nowrap tw-text-center",style:{color:Q.gray.gray_dark},children:e.jsx("div",{className:"tw-inline-flex tw-w-full tw-items-center tw-justify-center",children:e.jsx("span",{className:"tw-font-sans tw-text-[1.4rem] tw-font-normal tw-leading-[100%] tw-tracking-normal",children:"Progreso de Ejecución"})})}),e.jsx("th",{className:"align-middle tw-whitespace-nowrap tw-text-center",style:{color:Q.gray.gray_dark},children:e.jsx("div",{className:"tw-inline-flex tw-w-full tw-items-center tw-justify-center",children:e.jsx("span",{className:"tw-font-sans tw-text-[1.4rem] tw-font-normal tw-leading-[100%] tw-tracking-normal",children:"Responsable"})})})]})}),e.jsx("tbody",{children:s==null?void 0:s.map((y,X)=>{var B,I,O,H,U,K,te,ae,Z,se,T,R,Y,W,q,G,D,E;return e.jsxs("tr",{style:{background:X%2===0?"#F5F5F5":"#FAFAFA",transition:"background-color 0.2s ease"},className:"tw-cursor-pointer ",onClick:()=>{a({id:y==null?void 0:y.id,project:y==null?void 0:y.nombre}),t("kanban-campania")},onMouseEnter:z=>{z.currentTarget.style.backgroundColor="#E1EBF9"},onMouseLeave:z=>{z.currentTarget.style.backgroundColor=X%2===0?"#F5F5F5":"#FAFAFA"},children:[e.jsx("td",{className:"tw-text-s",children:(B=y==null?void 0:y.campania)==null?void 0:B.nombre}),e.jsx("td",{className:"tw-text-s",children:(I=y==null?void 0:y.campania)==null?void 0:I.inicia}),e.jsx("td",{className:"tw-text-s",children:(O=y==null?void 0:y.campania)==null?void 0:O.termina}),e.jsx("td",{className:"tw-text-s",children:e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"15px",padding:"none",width:"auto",minWidth:"100px"},children:[e.jsxs("label",{className:"tw-text-black tw-w-[50px] tw-min-w-[50px] tw-text-right",children:[y==null?void 0:y.progreso,"%"]}),e.jsx("div",{style:{position:"relative",height:"10px",flex:1,backgroundColor:Q.gray.gray_dark,borderRadius:"10px",overflow:"hidden",maxWidth:"140px"},children:e.jsx("div",{style:{position:"absolute",top:0,left:0,height:"100%",width:`${y.progreso}%`,backgroundColor:y.progreso===100?Q.progressbar.green_regular:y.progreso>50?Q.progressbar.blue_regular:y.progreso>0?Q.progressbar.orange_regular:Q.gray.gray_dark,borderRadius:"10px",transition:"width 0.3s ease-in-out"}})})]})}),e.jsx("td",{className:"tw-text-s",children:e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"15px",padding:"none",width:"auto",minWidth:"100px"},children:[e.jsxs("label",{className:"tw-text-black tw-w-[50px] tw-min-w-[50px] tw-text-right",children:[(y==null?void 0:y.progresoVenta)??0,"%"]}),e.jsx("div",{className:"tw-inline-flex tw-w-full tw-items-center tw-justify-center",style:{position:"relative",height:"10px",flex:1,backgroundColor:Q.gray.gray_dark,borderRadius:"10px",overflow:"hidden",maxWidth:"180px"},children:e.jsx("div",{style:{position:"absolute",top:0,left:0,height:"100%",width:`${(y==null?void 0:y.progresoVenta)??0}%`,backgroundColor:(y==null?void 0:y.progresoVenta)===100?Q.progressbar.green_regular:(y==null?void 0:y.progresoVenta)>50?Q.progressbar.blue_regular:(y==null?void 0:y.progresoVenta)>0?Q.progressbar.orange_regular:Q.gray.gray_dark,borderRadius:"10px",transition:"width 0.3s ease-in-out"}})})]})}),e.jsx("td",{className:"tw-text-s tw-pb-[1.2rem] tw-pt-[1.2rem]",children:e.jsxs("div",{className:"tw-text-s tw-flex tw-items-center tw-justify-center",children:[e.jsx(Te,{imageUrl:(ae=(te=(K=(U=(H=y==null?void 0:y.campania)==null?void 0:H.responsable)==null?void 0:U.imagen)==null?void 0:K.formats)==null?void 0:te.thumbnail)!=null&&ae.url?b((Y=(R=(T=(se=(Z=y==null?void 0:y.campania)==null?void 0:Z.responsable)==null?void 0:se.imagen)==null?void 0:T.formats)==null?void 0:R.thumbnail)==null?void 0:Y.url):"",alt:(G=(q=(W=y==null?void 0:y.campania)==null?void 0:W.responsable)==null?void 0:q.nombre)==null?void 0:G.charAt(0)}),e.jsx("span",{className:"tw-text-s tw-ml-4",children:(E=(D=y==null?void 0:y.campania)==null?void 0:D.responsable)==null?void 0:E.nombre})]})})]},X)})})]})}),e.jsxs("div",{className:"tw-mt-4 tw-flex tw-items-center tw-justify-between tw-p-2",children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-start",color:Q.black.black_dark},className:"tw-whitespace-nowrap tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-none tw-tracking-normal tw-text-[#696E79]",children:[s.length," elementos de ",u]}),e.jsx(Ua.Paginator,{first:o,rows:l,totalRecords:u,rowsPerPageOptions:[5,10,20,50],onPageChange:S,className:"tw-flex tw-w-full tw-items-center tw-justify-center tw-gap-1 tw-rounded-lg tw-p-2",style:{display:"flex",justifyContent:"center",alignItems:"center",gap:"4px",width:"auto",minWidth:"fit-content"},template:{layout:"FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink",FirstPageLink:y=>e.jsx("button",{onClick:y.onClick,disabled:y.disabled,style:F(y.disabled),className:"tw-text-s tw-flex tw-items-center tw-justify-center",children:"<<"}),PrevPageLink:y=>e.jsx("button",{onClick:y.onClick,disabled:y.disabled,style:F(y.disabled),className:"tw-text-s",children:"<"}),NextPageLink:y=>e.jsx("button",{onClick:y.onClick,disabled:y.disabled,style:F(y.disabled),className:"tw-text-s",children:">"}),LastPageLink:y=>e.jsx("button",{onClick:y.onClick,disabled:y.disabled,style:F(y.disabled),className:"tw-text-s",children:">>"}),PageLinks:y=>e.jsx("span",{style:{display:"inline-flex",gap:"1px"},children:e.jsx("button",{onClick:X=>y.onClick(X),className:`tw-text-s tw-flex tw-items-center tw-justify-center ${y.className.includes("p-highlight")?"highlighted":""}`,style:{...F(!1),backgroundColor:y.className.includes("p-highlight")?"#E1EBF9":Q.silver.silver_light,color:Q.black.black_dark},children:y.page+1})})}}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx("span",{className:"tw-whitespace-nowrap tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-none tw-tracking-normal tw-text-[#696E79]",children:"Filas por página:"}),e.jsx("select",{style:{padding:"0.25rem",outline:"none",cursor:"pointer",border:`1px solid ${Q.gray.gray_dark}`,borderRadius:"4px"},className:"tw-whitespace-nowrap tw-font-sans tw-text-[1.4rem] tw-font-[400] tw-leading-none tw-tracking-normal tw-text-[#696E79]",value:l,onChange:y=>N(y),children:k.map(y=>e.jsx("option",{value:y.value,className:"tw-text-s",style:{color:Q.gray.gray_dark},children:y.label},y.value))})]})]})]})})})},mt=()=>{const[t,a]=p.useState(null);return{position:t,setElementPosition:i=>{var c;let o=(c=i.current)==null?void 0:c.getBoundingClientRect(),d=(o==null?void 0:o.x)+((o==null?void 0:o.width)??0),l=(o==null?void 0:o.y)+(o==null?void 0:o.height);a(t?null:{x:d??0,y:l??0})},getChildrenSize:i=>{var o;return(o=i.current)==null?void 0:o.getBoundingClientRect()},clearPosition:()=>{a(null)}}},ss=({children:t,filterChildren:a})=>{const{position:s,setElementPosition:n}=mt(),r=p.useRef(null),i=({children:o})=>{const[d,l]=p.useState();return p.useEffect(()=>{var c,u;a.current&&l(((s==null?void 0:s.x)??0)-(((u=(c=a.current)==null?void 0:c.getBoundingClientRect())==null?void 0:u.width)??0))},[a==null?void 0:a.current,s==null?void 0:s.x]),s&&Ue.createPortal(e.jsx("div",{className:`tw-absolute tw-h-fit tw-w-fit ${d?"tw-block":"tw-hidden"}`,style:{top:`${s==null?void 0:s.y}px`,left:`${d}px`,zIndex:1},"data-portal-host":!0,children:o}),document.body)};return e.jsxs(e.Fragment,{children:[e.jsxs("label",{ref:r,htmlFor:"filter-button",className:"tw-flex tw-h-[30px] tw-cursor-pointer tw-items-center tw-gap-m tw-rounded-lg tw-bg-bg tw-fill-texts-enfasis tw-p-s tw-px-l tw-text-xl tw-text-texts-enfasis tw-shadow-button-primary hover:tw-shadow-button-primary-hover",children:[e.jsx(ee.Icons,{icon:"filter",size:"xs",strokeWidth:5,color:Q.primary.regular}),"Filtrar"]}),e.jsx("button",{className:"tw-hidden",id:"filter-button",onClick:()=>{n(r)}}),e.jsx(i,{children:t})]})};function ns(t,a=300,s={leading:!1,trailing:!0}){let n,r=null;return function(...i){const o=Date.now(),d=s.leading&&!r;clearTimeout(n),d&&t(...i),r=o,n=setTimeout(()=>{s.trailing&&(!s.leading||o-r>=a)&&(t(...i),r=null)},a)}}const rs="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='uuid-870f9847-3249-4f3d-96c6-7627dd5f9e7b'%20data-name='Iconos'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3e%3cdefs%3e%3cstyle%3e%20.uuid-4d76d382-032b-400f-b22d-b6e7be4cfaae%20{%20fill:%20none;%20stroke:%20%23252525;%20stroke-linecap:%20round;%20stroke-linejoin:%20round;%20stroke-width:%204px;%20}%20%3c/style%3e%3c/defs%3e%3ccircle%20class='uuid-4d76d382-032b-400f-b22d-b6e7be4cfaae'%20cx='19.79'%20cy='19.79'%20r='13.54'/%3e%3cline%20class='uuid-4d76d382-032b-400f-b22d-b6e7be4cfaae'%20x1='41.67'%20y1='41.67'%20x2='29.17'%20y2='29.17'/%3e%3c/svg%3e",Zt=({options:t,onselect:a})=>{const[s,n]=p.useState(null),r=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),i=[...t].filter(o=>o.name.toLowerCase().includes((s==null?void 0:s.toLowerCase())??""));return e.jsxs("div",{className:"tw-h-fit tw-w-full tw-min-w-max",children:[e.jsxs("div",{className:"tw-relative tw-flex tw-items-center",children:[e.jsx("input",{id:r,value:s??"",onChange:o=>n(o.target.value),type:"text",className:"tw-border-cards tw-h-[32px] tw-w-full tw-rounded-lg tw-bg-bg-card tw-p-2",placeholder:"Buscar"}),e.jsx("div",{className:"tw-absolute tw-right-[8px]",children:e.jsx("img",{src:rs,alt:"Icono",className:"tw-h-[12px] tw-w-[12px]"})})]}),e.jsx("div",{className:"tw-border-cards tw-flex tw-max-h-[120px] tw-min-w-max tw-flex-col tw-gap-s tw-overflow-y-auto tw-rounded-lg tw-bg-bg-card tw-p-2",children:i.map(o=>e.jsxs("button",{onClick:()=>{a(o)},className:"tw-flex tw-min-w-full tw-max-w-[200px] tw-cursor-pointer tw-items-center tw-gap-s hover:tw-bg-primary-light",children:[o.image&&e.jsx(Te,{imageUrl:o.image,alt:o.name}),e.jsx("p",{className:"tw-text-s tw-content-text tw-truncate tw-py-m tw-font-normal tw-text-texts-subtext",children:o.name})]}))})]})},os=({error:t,options:a,onSelect:s,initialValue:n})=>{const[r,i]=p.useState(!1),[o,d]=p.useState((n==null?void 0:n.name)??null);return p.useEffect(()=>{n&&d(n)},[n]),e.jsxs("div",{className:"tw-relative",children:[e.jsxs("div",{onBlur:()=>i(!1),onClick:()=>i(!r),className:`tw-z-[1] tw-w-full tw-cursor-pointer tw-bg-bg-card ${t?"tw-border-2 tw-border-danger-regular tw-shadow-danger-regular":"tw-shadow-input"} tw-flex tw-h-[30px] tw-items-center tw-justify-between tw-rounded-md tw-pl-2 ${t?"tw-text-danger-regular":o?"tw-text-texts-subtext":"tw-text-texts-placeholder"}`,children:[e.jsx("p",{children:(o==null?void 0:o.name)??"Selecciona una opción"}),e.jsx(ee.Icons,{icon:"angle_down_outline",color:t?Q.danger.regular:Q.texts.placeholder})]}),r&&e.jsx("div",{className:"absolute tw-z-[10] tw-w-full tw-rounded-lg tw-shadow-md",children:e.jsx(Zt,{onselect:l=>{d(l),i(!1),s&&s(l)},options:a})})]})},is=()=>{const{fields:t,updateFilters:a,cleanFilters:s,applyFilters:n,initialFilters:r}=ke();return e.jsxs("div",{className:"tw-z-[100] tw-flex tw-min-w-[250px] tw-flex-col tw-gap-l",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between",children:[e.jsx("p",{className:"tw-text-2xl tw-text-texts",children:"Filtros"}),e.jsx("button",{className:"tw-flex tw-h-fit tw-cursor-pointer tw-items-center tw-gap-m tw-rounded-lg tw-bg-bg tw-fill-texts-enfasis tw-p-s tw-px-l tw-text-lg tw-font-semibold tw-text-texts-enfasis tw-shadow-button-primary hover:tw-shadow-button-primary-hover",onClick:s,children:"Limpiar"})]}),e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-m",children:t==null?void 0:t.map((i,o)=>{var d;return e.jsxs("div",{style:{zIndex:10-o},children:[e.jsx("p",{className:"z-[1] tw-text-xl",children:i.label}),(i==null?void 0:i.type)==="select"?e.jsx("div",{className:"tw-relative tw-z-[10]",children:e.jsx(os,{error:!1,options:i==null?void 0:i.options,onSelect:l=>{a({name:i==null?void 0:i.id,value:l==null?void 0:l.id})},initialValue:(d=i==null?void 0:i.options)==null?void 0:d.find(l=>l.id===(r==null?void 0:r[i==null?void 0:i.id]))})}):e.jsx("input",{className:"tw-h-[30px] tw-w-full tw-rounded-lg tw-p-s tw-shadow-input",type:i.type,value:r==null?void 0:r[i==null?void 0:i.id],name:i.label.toLowerCase().replace(/ /g,"_"),onChange:ns(l=>{var c,u;return a({name:(c=l==null?void 0:l.target)==null?void 0:c.name,value:(u=l==null?void 0:l.target)==null?void 0:u.value})},1e3)})]},o)})}),e.jsx("button",{className:"tw-rounded-md tw-bg-primary-regular tw-py-s tw-text-xl tw-text-white hover:tw-bg-primary-dark",onClick:n,children:"Filtrar"})]})},ls=()=>e.jsxs("div",{className:"tw-flex tw-h-[150px] tw-w-full tw-animate-pulse tw-flex-col tw-gap-[50px] tw-rounded-md tw-bg-gray-200 tw-p-4",children:[e.jsxs("div",{className:"tw-flex tw-h-[30px] tw-gap-3",children:[e.jsx("div",{className:"tw-h-full tw-w-[30px] tw-min-w-[30px] tw-rounded-full tw-bg-gray-300"}),e.jsx("div",{className:"tw-h-full tw-w-full tw-bg-gray-300"}),e.jsx("div",{className:"tw-h-full tw-w-[30px] tw-min-w-[30px] tw-rounded-full tw-bg-gray-300"})]}),e.jsxs("div",{className:"tw-flex tw-h-[30px] tw-w-full tw-justify-between tw-gap-[50px]",children:[e.jsx("div",{className:"tw-h-[30px] tw-w-full tw-bg-gray-300"}),e.jsx("div",{className:"tw-h-[30px] tw-w-full tw-bg-gray-300"})]})]}),kt=({trigger:t,user:a,showUser:s=!0})=>e.jsx(ee.Tooltip,{dispatch:t,children:s&&e.jsxs("div",{className:"tw-border-containers tw-flex tw-h-fit tw-w-fit tw-items-center tw-gap-2 tw-rounded-lg tw-bg-bg-card tw-p-2",children:[e.jsx(Te,{imageUrl:a.image??"",alt:a.name}),e.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:a.name})]})});class cs{static toDomain(a){return{id:a.id,name:a.nombre,color:a.color}}}const ds=()=>{const{tasks_api:t}=we();return{teams:de.useQuery({queryKey:["teams","all"],queryFn:async()=>{const s=await t.get("/api/equipos");return ge(s.data).map(cs.toDomain)}})}};class ea{static toUsers(a){var s,n,r;return{id:a.id,name:a.nombre,image:(r=(n=(s=a.imagen)==null?void 0:s.formats)==null?void 0:n.thumbnail)==null?void 0:r.url,tasksUser:{email:a.tasksUser.email,id:a.tasksUser.id,nombre:a.tasksUser.nombre},role:a.role}}static toUsersWithIndex(a){var n,r,i;const s={};for(const o of a)s[o.email]={...o,image:(i=(r=(n=o.imagen)==null?void 0:n.formats)==null?void 0:r.thumbnail)==null?void 0:i.url};return s}}const us=async({tasks_api:t})=>{try{const a=await t.get("/api/getAllOBPusersMembers");return ge(a.data).map(ea.toUsers)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},ws=async({users:t})=>{try{const a=ge(t);return ea.toUsersWithIndex(a)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},ta=()=>{const{tasks_api:t}=we();return{users:de.useQuery({queryKey:["users"],queryFn:()=>us({tasks_api:t}),staleTime:1e3*60*60*24})}},ft=t=>new Intl.DateTimeFormat("es-MX",{month:"long"}).format(t);function ps(t){const a=["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],s=new Date(t).getDay();return a[s]}const It=t=>{let a=t||new Date,s=a.getDate(),n=ft(a.getMonth()).slice(0,3),r=a.getFullYear().toString().slice(-2),i=ps(a).slice(0,3);return`${i.charAt(0).toUpperCase()+i.slice(1)} ${s} ${n.charAt(0).toUpperCase()+n.slice(1)} ${r}`},xt=(t,a)=>({...t,image:t.image?`${a}${t.image}`:""}),aa=({users:t,onClick:a,responsible:s,role:n,status:r})=>{const{getOBPUrlApi:i}=we(),o=`button-assign-users-${Math.random().toString(36).substring(2,15)}`,{setElementPosition:d,position:l,clearPosition:c}=mt(),u=p.useRef(null),f="Project Manager",h=()=>s?null:t.length>3&&e.jsx(ee.Tooltip,{dispatch:e.jsx("div",{className:"tw-ml-[-8px] tw-flex tw-h-[28px] tw-w-[28px] tw-items-center tw-justify-center tw-rounded-full tw-border-2 tw-border-white tw-bg-primary-regular",children:e.jsx("p",{className:"tw-text-s tw-font-bold tw-text-white ",children:`+${t.length-3}`})}),children:e.jsx("div",{className:"tw-border-containers tw-h-fit tw-w-fit tw-rounded-lg tw-bg-bg-card tw-p-2",children:t==null?void 0:t.slice(3).map((x,b)=>e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2 ",children:[e.jsx(Te,{imageUrl:x.image??"",alt:x.name},b),e.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:x.name})]},b))})}),w=()=>{if(s){let x=t.find(b=>b.id===s);return e.jsx("div",{children:e.jsx(kt,{trigger:e.jsx(Te,{imageUrl:x==null?void 0:x.image,alt:x==null?void 0:x.name},s),user:x,showUser:!(l!=null&&l.x)})})}return(t==null?void 0:t.length)>0&&t.slice(0,3).map((x,b)=>e.jsx("div",{className:`${b===0?"":"tw-ml-[-8px]"}`,children:e.jsx(kt,{trigger:e.jsx(Te,{imageUrl:x.image,alt:x.name}),user:x,showUser:!(l!=null&&l.x)})},x.id||b))},m=({children:x})=>e.jsx("label",{ref:u,htmlFor:o,className:"tw-flex tw-cursor-pointer tw-items-center",children:x});if(t.length===0)return e.jsx(m,{children:e.jsx(ee.Icons,{icon:"user",size:"xs",strokeWidth:3})});const g=()=>{var N;const[x,b]=p.useState(),[j,v]=p.useState("team"),{teams:L}=ds(),{users:S}=ta();p.useEffect(()=>{var _,P;u.current&&b(((l==null?void 0:l.x)??0)-(((P=(_=u.current)==null?void 0:_.getBoundingClientRect())==null?void 0:P.width)??0))},[u==null?void 0:u.current,l==null?void 0:l.x]);const k=()=>{const _=[{id:"team",label:"Equipo"},{id:"responsible",label:"Responsable"}];return e.jsx("div",{className:"tw-flex tw-w-full tw-justify-center tw-gap-l tw-font-bold tw-text-texts-placeholder",children:_.map((P,F)=>e.jsx("button",{className:`tw-w-full tw-border-texts-placeholder tw-text-center tw-text-sm ${j===P.id?"tw-text-primary-pastel":""} ${F===_.length-1?"tw-border-r-0":" tw-border-r-2"}`,onClick:()=>v(P.id),children:P.label},P.id))})};return n===f||r===0&&n!==f?(l==null?void 0:l.x)&&Ue.createPortal(e.jsx("div",{"data-portal-host":!0,className:`absolute tw-h-fit tw-w-[300px] tw-p-[1rem] ${x?"tw-block":"tw-hidden"}`,style:{top:`${l==null?void 0:l.y}px`,left:`${x}px`,zIndex:1},children:e.jsxs("div",{className:"tw-border-cards tw-flex tw-max-h-[200px] tw-flex-col tw-gap-m tw-overflow-y-hidden tw-rounded-lg tw-bg-bg-card tw-p-2",style:{boxShadow:"0px 2px 16px 0px rgba(0, 0, 0, 0.25)"},children:[e.jsx(k,{}),e.jsx(Zt,{options:j==="team"?L.data.map(_=>({id:_.id,name:_.name,image:""})):((N=S.data)==null?void 0:N.map(_=>xt(_,i())))||[],onselect:_=>{var P;c(),a&&a((P=_.tasksUser)==null?void 0:P.id,j)}})]})}),document.body):null};return e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:[w(),h()]}),e.jsx("button",{className:"tw-hidden",id:o,onClick:()=>d(u)}),e.jsx(g,{})]})},sa=({priority:t,id:a,withLabel:s=!1})=>{var h,w,m,g,x;const{updatingTask:n}=Le(),r=Math.random().toString(36),[i,o]=p.useState(null),{user:d}=_e(),[l,c]=p.useState(t);p.useEffect(()=>{c(t)},[t]);const u={0:{title:"Normal",color:Q.primary.regular},1:{title:"Baja",color:Q.success.regular},2:{title:"Media",color:Q.warning.regular},3:{title:"Alta",color:Q.danger.regular}},f=()=>{if(!i)return null;const b=({priorityTask:j,text:v})=>{var L,S;return e.jsxs("button",{onClick:async()=>{o(null),await n({id:a,data:{prioridad:j},user:d==null?void 0:d.id}),c(j)},className:"tw-flex tw-items-center tw-gap-m tw-px-l tw-py-s hover:tw-bg-primary-light",children:[e.jsx(ee.Icons,{icon:"flag",size:"xs",strokeWidth:4,color:(L=u[j??0])==null?void 0:L.color}),e.jsx("p",{className:"tw-text-sm",style:{color:(S=u[j??0])==null?void 0:S.color},children:v})]})};return Ue.createPortal(e.jsx("div",{onBlur:()=>{o(null)},id:`${r}-options`,style:{top:`${i.y+5}px`,left:`${i.x+5}px`,zIndex:50},className:`tw-absolute tw-flex tw-h-fit tw-w-max tw-flex-col tw-gap-2 tw-rounded-xl tw-bg-bg-card tw-p-m
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("@imj_media/imj-ui/styles.css");require("@imj_media/ui/index.css");const de=require("@tanstack/react-query"),ee=require("@imj_media/tasks-modules"),Ua=require("primereact/paginator"),p=require("react"),wt=require("axios"),Pe=require("qs"),Ue=require("react-dom"),et=require("date-fns"),pt=require("date-fns/locale"),me=require("@imj_media/imj-ui"),je=require("react-hook-form"),re=require("@xyflow/react"),Wa=require("react-pick-color");require("@xyflow/react/dist/style.css");const M=require("@imj_media/ui"),qe=require("zustand"),it=require("moment"),Q={bg:{content:"#FAFAFA"},texts:{DEFAULT:"#252525",subtext:"#4f4f4f",placeholder:"#929292"},primary:{regular:"#425CAC"},success:{dark:"#368156",regular:"#43B071"},danger:{dark:"#8C352C",regular:"#C34335"},warning:{dark:"#B4782F",regular:"#D38A31"},silver:{silver_light:" #F5F5F5",silver_dark:" #E9E9E9"},progressbar:{orange_regular:"#DC8921",blue_regular:"#3658C1",green_regular:"#039B59"},gray:{gray_regular:"#D1D1D1",gray_dark:"#C4C4C4"},black:{black_light:"#929292",black_medium:"#4F4F4F",black_dark:"#131313"},blue:{blue_dark:"#28408F"}},Ct=t=>{let a={};return Object.entries(t).forEach(([s,n])=>{if(s.includes(".")){let[r,i]=s.split(".");a[r]=a[r]||{},a[r][i]=n}else a[s]=n}),a},Ga=({search:t,filters:a})=>{const s=Object.keys(a).reduce((n,r)=>(a[r]&&(n[r]={$containsi:a[r]}),n),{});return{...t?{nombre:{$containsi:t}}:{},...s}},Ut=p.createContext({}),Ka=({children:t})=>{const[a,s]=p.useState({}),[n,r]=p.useState({}),[i,o]=p.useState([]),[d,l]=p.useState(""),c=({name:w,value:m})=>{function g(b){return!isNaN(b)&&b!==null&&b!==""?parseFloat(b):null}let x=g(m);r(b=>{let j={...b},v=i==null?void 0:i.find(L=>L.label.toLowerCase().replace(/ /g,"_")===w);return v?j[v.id]=x??m:j[w]=x??m,j})};p.useEffect(()=>{let w=i.map(m=>m.id==="owner.config"?[m.id,"yo_y_mis_equipos"]:m.id==="dependency"?[m.id,"ambas"]:[m.id,null]);r(m=>{let g={search:m==null?void 0:m.search,taskName:m==null?void 0:m.taskName};return g={...g,...Object.fromEntries(w)},g})},[i]);const u=()=>{let w=i.map(m=>m.id==="owner.config"?[m.id,"yo_y_mis_equipos"]:m.id==="dependency"?[m.id,"ambas"]:[m.id,null]);r(Object.fromEntries(w)),s(Ct(Object.fromEntries(w)))},f=w=>({1:"Muy facil",2:"Facil",3:"Media",4:"Dificil",5:"Muy dificil"})[w],h=()=>{let w=Ct(n);w.difficulty&&(w.difficulty=f(w.difficulty)),s(w)};return e.jsx(Ut.Provider,{value:{fields:i,filters:a,path:d,defineFields:o,updateFilters:c,cleanFilters:u,applyFilters:h,initialFilters:n,selectPath:l},children:t})},ke=()=>p.useContext(Ut),Wt=p.createContext({}),Qa=({children:t,user:a,url:s,mode:n})=>{const r=n==="prod"?"https://services.imjmedia.com.mx":"https://devobp.imjmedia.com.mx",i=wt.create({baseURL:s,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:l=>Pe.stringify(l,{encodeValuesOnly:!0})}),o=()=>r,d=l=>l==="undefined"||l===void 0?"":`${r}${l}`;return e.jsx(Wt.Provider,{value:{tasks_api:i,getOBPUrlApi:o,getImageOBP:d},children:t})},we=()=>p.useContext(Wt),Gt=p.createContext({}),Va=({children:t,user:a,url:s})=>{const n=wt.create({baseURL:s,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:r=>Pe.stringify(r,{encodeValuesOnly:!0})});return e.jsx(Gt.Provider,{value:{user:a,tasks_api:n},children:t})},_e=()=>p.useContext(Gt),ge=t=>{const a=n=>Object.prototype.toString.call(n)==="[object Object]",s=n=>n.attributes?{id:n.id,...n.attributes}:n;if(Array.isArray(t))return t.map(n=>ge(n));if(a(t)){Array.isArray(t.data)?t=[...t.data]:a(t.data)?t=s({...t.data}):t.data===null?t=null:t=s(t);for(const n in t)t[n]=ge(t[n]);return t}return t},Te=({imageUrl:t="https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png",alt:a="avatar",size:s="s"})=>{const n={xs:"tw-w-[24px] tw-h-[24px] tw-min-w-[24px] tw-min-h-[24px]",s:"tw-w-[28px] tw-h-[28px] tw-min-w-[28px] tw-min-h-[28px]",m:"tw-w-[32px] tw-h-[32px] tw-min-w-[32px] tw-min-h-[32px]",l:"tw-w-[36px] tw-h-[36px] tw-min-w-[36px] tw-min-h-[36px]",xl:"tw-w-[40px] tw-h-[40px] tw-min-w-[40px] tw-min-h-[40px]",xxl:"tw-w-[44px] tw-h-[44px] tw-min-w-[44px] tw-min-h-[44px]"}[s];return e.jsx("img",{src:t===""?"https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png":t,alt:a??"avatar",className:`${n} tw-bg-containers tw-rounded-full tw-border-2 tw-border-white`})};class Xa{static toCampaignTasks(a){var n,r,i,o,d,l,c,u,f,h,w,m,g;let s=[];return a!=null&&a.responsable&&s.push({id:a.responsable.id,name:a.responsable.nombre,image:(d=(o=(i=(r=(n=a.responsable)==null?void 0:n.userOBP)==null?void 0:r.imagen)==null?void 0:i.formats)==null?void 0:o.thumbnail)==null?void 0:d.url,role:((l=a.responsable.userOBP)==null?void 0:l.role)||{id:0,name:""}}),(c=a==null?void 0:a.equipo)!=null&&c.miembros&&a.equipo.miembros.forEach(x=>{var b,j,v,L,S;s!=null&&s.find(k=>k.id===x.idUser.id)||x.idUser&&s.push({id:x.idUser.id,name:x.idUser.nombre,image:(L=(v=(j=(b=x==null?void 0:x.userOBP)==null?void 0:b.imagen)==null?void 0:j.formats)==null?void 0:v.thumbnail)==null?void 0:L.url,role:((S=x.userOBP)==null?void 0:S.role)||{id:0,name:""}})}),{paused:a==null?void 0:a.pausada,isPrincipalTask:(a==null?void 0:a.tarea_principal)??!1,projectName:((u=a==null?void 0:a.proyecto)==null?void 0:u.nombre)??null,orden:(a==null?void 0:a.orden)??null,id:(a==null?void 0:a.id)??null,task:(a==null?void 0:a.texto_corto)??null,status:(a==null?void 0:a.estatus)??null,difficulty:(a==null?void 0:a.nivel_dificultad)??null,priority:(a==null?void 0:a.prioridad)??0,endDate:new Date((a==null?void 0:a.ffin)??null),startDate:new Date((a==null?void 0:a.finicio)??null),mediumName:(a==null?void 0:a.nombre_medio)??null,users:s,repeatsToDo:(a==null?void 0:a.repeticiones)??null,repeats:(a==null?void 0:a.repeticiones_realizadas)??null,comments:((f=a==null?void 0:a.comentarios)==null?void 0:f.length)??null,willBePaused:a==null?void 0:a.es_pausable,statusRequiredTask:((h=a==null?void 0:a.id_t_requerida)==null?void 0:h.estatus)??null,nameRequiredTask:((w=a==null?void 0:a.id_t_requerida)==null?void 0:w.texto_corto)??null,responsible:((m=a==null?void 0:a.responsable)==null?void 0:m.id)??null,tasks:((g=a==null?void 0:a.tareas)==null?void 0:g.map(x=>({id:x.id,name:x.texto_corto,status:x.estatus})))??null,atraso:(a==null?void 0:a.atraso)??null,categoria:(a==null?void 0:a.categoria)??null}}}const Ya=async({filters:t,tasks_api:a,project:s})=>{try{const n=await a.get("/api/listado_tareas_flujo",{params:{...t,project:{id:s},includeAllTasks:!0}});return ge(n.data.tareas).map(Xa.toCampaignTasks)}catch(n){console.log(n)}},Kt=p.createContext({}),Ja=({children:t,project:a})=>{var b;const[s,n]=p.useState([]),[r,i]=p.useState(!1),[o,d]=p.useState([]),{tasks_api:l}=we(),{filters:c}=ke(),{user:u}=_e(),[f,h]=p.useState({owner:{user:u.id,config:((b=c==null?void 0:c.owner)==null?void 0:b.config)??"yo_y_mis_equipos"},project:{id:a}});p.useEffect(()=>{var j;if(Object.keys(c).length>0){const v={...c,owner:{user:u.id,config:((j=c==null?void 0:c.owner)==null?void 0:j.config)??"yo_y_mis_equipos"},project:{id:a}};h(v)}},[c,u.id,a]);const w=de.useQuery({queryKey:["tasksProject",f,a],queryFn:()=>{const j={...f,taskName:c==null?void 0:c.taskName,owner:{...f.owner,config:f.owner.config||"yo_y_mis_equipos"}};return Ya({filters:j,project:a,tasks_api:l})}}),m=j=>{n(v=>[...v,j])},g=j=>{d(v=>v.includes(j)?v.filter(L=>L!==j):[...v,j])},x=a??null;return e.jsx(Kt.Provider,{value:{tasksProject:w,selectedTasks:s,projectID:x,openTasks:o,selectTask:m,filtersToSend:f,openTask:g,isRefetching:r,project:a,filters:c,setIsRefetching:i},children:t})},We=()=>p.useContext(Kt),Qt=p.createContext(null),Za=({children:t})=>{const[a,s]=p.useState({message:"",type:"success"}),n=(r,i)=>{s({message:r,type:i}),setTimeout(()=>s({message:"",type:"success"}),3e3)};return e.jsx(Qt.Provider,{value:{toast:a,showSuccess:r=>n(r,"success"),showError:r=>n(r,"error")},children:t})},Ge=()=>p.useContext(Qt);class Vt{static toAtrasoReasons(a){return{id:a.id,motivo_imj:a.motivo_imj,categoria:a.categoria??null}}}const es=async({tasks_api:t})=>{try{const a=await t.get("/api/motivos",{params:{populate:{categoria:{fields:["id","nombre","tipo"]}},filters:{tipo:{$eq:"atraso"}}}});return ge(a.data).map(Vt.toAtrasoReasons)}catch(a){throw console.log("Error al obtener los motivos de atraso",a),`Error al obtener los motivos de atraso: ${a}`}},Xt=({enabled:t=!1}={})=>{const{tasks_api:a}=we(),{user:s}=_e(),n=de.useQueryClient(),{showSuccess:r,showError:i}=Ge(),{filters:o,path:d}=ke(),{data:l,isLoading:c}=de.useQuery({queryKey:["atraso_reasons"],queryFn:()=>es({tasks_api:a}),staleTime:1e3*60*60*24,enabled:t}),u=async()=>{const L=await a.get("/api/motivos",{params:{filters:{tipo:{$eq:"atraso"}}}});return ge(L.data).map(Vt.toAtrasoReasons)},f=async({taskId:L,motivoId:S,projectID:k})=>{try{return(await a.post("/api/atrasos",{data:{inicio:new Date,fin:null,motivo:S,proyecto:k,tarea:L,creada_por:s==null?void 0:s.id}})).data}catch(N){console.log("error",N)}},h=async L=>{try{return(await a.delete(`/api/atrasos/${L}`)).data}catch(S){console.log("error",S)}},w=async L=>{try{return(await a.put(`/api/atrasos/${L}`,{data:{fin:new Date}})).data}catch(S){console.log("error",S)}},m=async({taskId:L,projectID:S,motivo:k})=>{await b({taskId:L,motivoId:k,projectID:S})},g=async L=>{await j(L)},x=async L=>{await v(L)},{mutateAsync:b}=de.useMutation({mutationFn:f,onSuccess:()=>{r("Atraso registrado correctamente"),d==="kanban-general"&&(n.invalidateQueries({queryKey:["to_do_tasks",o]}),n.invalidateQueries({queryKey:["working_tasks",o]})),d==="kanban-campania"&&n.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{i("Error al registrar el atraso")}}),{mutateAsync:j}=de.useMutation({mutationFn:h,onSuccess:()=>{r("Atraso eliminado correctamente"),d==="kanban-general"&&(n.invalidateQueries({queryKey:["to_do_tasks"]}),n.invalidateQueries({queryKey:["working_tasks"]}),n.invalidateQueries({queryKey:["done_tasks"]})),d==="kanban-campania"&&n.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{i("Error al eliminar el atraso")}}),{mutateAsync:v}=de.useMutation({mutationFn:w,onSuccess:()=>{r("Atraso finalizado correctamente")},onError:()=>{i("Error al finalizar el atraso")}});return{atrasoReasons:l,isLoading:c,createAtraso:m,getAtrasoReasons:u,deleteAtraso:g,finalizarAtraso:x}},Le=()=>{const{tasks_api:t}=we(),{user:a}=_e(),{filters:s,path:n}=ke(),r=de.useQueryClient(),{projectID:i}=We(),{showSuccess:o,showError:d}=Ge(),{finalizarAtraso:l}=Xt({enabled:!1}),c=async({id:I})=>(await t.put(`/api/tareas/${I}`,{data:{estatus:1,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,u=async({id:I})=>(await t.put(`/api/tareas/${I}`,{data:{estatus:0,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,f=async({id:I,idAtraso:O})=>{const H=await t.post("/api/terminarTarea",{id_task:I,ended_at:new Date().toISOString(),id_user:a==null?void 0:a.id});return await l(O),H.data},h=async({id:I,repeats:O})=>(await t.put(`/api/tareas/${I}`,{data:{repeticiones_realizadas:O,updated_by:a==null?void 0:a.id}})).data,w=async({id:I,motiveId:O})=>{try{const H=await t.post("/api/pausarTarea",{taskId:I,userId:a==null?void 0:a.id,motivoId:O});return o("Tarea pausada correctamente"),H.data}catch(H){d("Error al pausar la tarea: "+H)}},m=async({id:I})=>{try{const O=await t.post("/api/reanudarTarea",{taskId:I});return o("Tarea reanudada correctamente"),O.data}catch(O){d("Error al reanudar la tarea: "+O)}},g=async({id:I,idNewResponsible:O,typeOfSelect:H})=>{let W={updated_by:a==null?void 0:a.id};return H==="responsible"&&(W={...W,responsable:O}),H==="team"&&(W={...W,responsable:null,equipo:O}),(await t.put(`/api/tareas/${I}`,{data:W})).data},x=async({id:I,data:O,user:H})=>{try{return(await t.put(`/api/tareas/${I}`,{data:{...O,updated_by:H==null?void 0:H.id}})).data}catch(W){console.error("Error updating the element:",W)}},b=async({id:I})=>{await L({id:I})},j=async({id:I,data:O,user:H})=>{await v({id:I,data:O,user:H})},{mutateAsync:v}=de.useMutation({mutationFn:x,onSuccess:()=>{o("Tarea actualizada correctamente");const I={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(r.invalidateQueries({queryKey:[I[n],s]}),r.invalidateQueries({queryKey:["done_tasks",s]}),r.invalidateQueries({queryKey:["working_tasks",s]})),n==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(O){console.error("Error invalidating queries:",O)}},onError:I=>{console.error("Failed to update the task.",I)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]})}}),{mutateAsync:L}=de.useMutation({mutationFn:c,onSuccess:()=>{const I={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(r.invalidateQueries({queryKey:[I[n],s]}),r.invalidateQueries({queryKey:["working_tasks",s]})),n==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(O){console.error("Error updating the element:",O)}},onError:I=>{console.error("Failed to update the task.",I)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:S}=de.useMutation({mutationFn:f,onSuccess:()=>{const I={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{r.setQueryData([I[n],s],O=>{console.log({oldData:O})}),n==="kanban-general"&&(r.invalidateQueries({queryKey:[I[n],s]}),r.invalidateQueries({queryKey:["done_tasks",s]}),r.invalidateQueries({queryKey:["working_tasks",s]})),n==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(O){console.error("Error invalidating queries:",O)}},onError:I=>{console.error("Failed to update the task.",I)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["done_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:k}=de.useMutation({mutationFn:h,onSuccess:()=>{const I={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(r.invalidateQueries({queryKey:[I[n],s]}),r.invalidateQueries({queryKey:["done_tasks",s]}),r.invalidateQueries({queryKey:["working_tasks",s]})),n==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(O){console.error("Error invalidating queries:",O)}},onError:I=>{console.error("Failed to update the task.",I)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["done_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:N}=de.useMutation({mutationFn:g,onSuccess:()=>{const I={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(r.invalidateQueries({queryKey:[I[n],s]}),r.invalidateQueries({queryKey:["done_tasks",s]}),r.invalidateQueries({queryKey:["working_tasks",s]})),n==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(O){console.error("Error invalidating queries:",O)}},onError:I=>{console.error("Failed to reassign the task.",I)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["done_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:_}=de.useMutation({mutationFn:u,onSuccess:()=>{const I={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(r.invalidateQueries({queryKey:[I[n],s]}),r.invalidateQueries({queryKey:["working_tasks",s]})),n==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(O){console.error("Error updating the element:",O)}},onError:I=>{console.error("Failed to update the task.",I)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}});return{updatingTask:j,updateTask:x,startTask:async({id:I})=>{await _({id:I})},startWorking:b,completeTask:async({id:I,idAtraso:O})=>{await S({id:I,idAtraso:O})},reasignResponsible:async({id:I,idNewResponsible:O,typeOfSelect:H})=>{await N({id:I,idNewResponsible:O,typeOfSelect:H})},updateUnitys:async({repeats:I,id:O})=>{await k({repeats:I,id:O})},pauseTask:async({id:I,motiveId:O})=>{console.log({taksId:I,motivoId:O,user:a==null?void 0:a.id})},postPauseTask:w,postReanudeTask:m}},ts=({id:t,idAtraso:a})=>{const[s,n]=p.useState(!1),{completeTask:r}=Le();return{checked:s,checkTask:()=>{n(!s),r({id:t,idAtraso:a})}}},Yt=({id:t,nameRequiredTask:a,statusRequiredTask:s,status:n,idAtraso:r})=>{const{checked:i,checkTask:o}=ts({id:t,idAtraso:r});let d=Math.random().toString();const l=a!==""&&s===2;return e.jsxs(e.Fragment,{children:[n===2&&e.jsx("div",{className:"tw-mx-[2px] tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-success-regular tw-transition-all",children:e.jsx(ee.Icons,{icon:"circle_checked",color:"white",strokeWidth:4,size:"xs"})}),l||!a?n===1?e.jsx("label",{htmlFor:d,className:i?"tw-mx-[2px] tw-flex tw-h-[20px] tw-w-[20px] tw-items-center tw-justify-center tw-rounded-full tw-bg-success-regular tw-transition-all":"tw-transition-colors",children:e.jsx(ee.Icons,{icon:i?"check_outline":"circle_checked",color:i?"white":Q.texts.placeholder,strokeWidth:4,size:i?"xs":"s"})}):e.jsx(e.Fragment,{children:" "}):e.jsx(ee.Tooltip,{dispatch:e.jsx("label",{className:"tw-cursor-help",children:e.jsx(ee.Icons,{icon:"info_circle",color:Q.warning.regular,strokeWidth:4})}),children:e.jsxs("div",{className:"tw-shadow-black-300 tw-text-s tw-absolute tw-left-0 tw-top-full tw-z-10 tw-ml-[-2rem] tw-mt-2 tw-flex tw-w-fit tw-max-w-[400px] tw-flex-col tw-gap-m tw-rounded-lg tw-border-l-[5px] tw-border-warning-regular tw-bg-warning-light tw-p-l tw-text-warning-dark tw-shadow-xl",children:[e.jsx("p",{className:"tw-w-[210px] tw-font-bold",children:" Requiere completar su tarea requerida: "}),e.jsxs("p",{children:[" ",a," "]})]})}),e.jsx("input",{id:d,checked:i,onChange:o,type:"checkbox",className:"tw-hidden"})]})},Jt=()=>{const t=()=>e.jsxs("div",{className:"tw-flex tw-w-full tw-gap-m",children:[e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-full tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-w-[30%] tw-animate-pulse tw-rounded-md tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-lg tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-lg tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-lg tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-w-[10%] tw-animate-pulse tw-rounded-md tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-lg tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-w-[10%] tw-animate-pulse tw-rounded-md tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-lg tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-[30px] tw-min-h-[30px] tw-w-[30px] tw-min-w-[30px] tw-animate-pulse tw-rounded-lg tw-bg-gray-200"})]});return e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-m",children:[e.jsx(t,{}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-m tw-pl-5",children:[e.jsx(t,{}),e.jsx("div",{className:"tw-pl-5",children:e.jsx(t,{})})]}),e.jsx(t,{}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-m tw-pl-5",children:[e.jsx(t,{}),e.jsx("div",{className:"tw-pl-5",children:e.jsx(t,{})})]})]})},Et=[{label:"Tipo de dependencia",type:"select",id:"dependency",options:[{id:"con",name:"Con dependencia"},{id:"sin",name:"Sin dependencia"},{id:"ambas",name:"Ambas"}]},{label:"Por campaña",type:"select",id:"project.id",options:[]},{label:"Por responsable",type:"select",id:"owner.config",options:[{id:"yo",name:"Mis tareas"},{id:"yo_y_mis_equipos",name:"Tareas mías y de mis equipos"},{id:"mis_equipos",name:"Tareas de mis equipos"}]},{label:"Por ejecutivo comercial",type:"select",id:"salesman.id",options:[]},{label:"Por dificultad",type:"select",id:"difficulty",options:[{id:1,name:"Muy facil"},{id:2,name:"Facil"},{id:3,name:"Media"},{id:4,name:"Dificil"},{id:5,name:"Muy dificil"}]}],St=[{label:"Responsable",type:"select",id:"responsable.responsableType",options:[{id:"yo_y_mis_equipos",name:"Yo y mis equipos"},{id:"mis_equipos",name:"Mis equipos"},{id:"yo",name:"Yo"}]},{label:"Por Ejecutivo",type:"select",id:"ejecutivo",options:[]}],as=({setPath:t,setProject:a})=>{const[s,n]=p.useState([]),[r,i]=p.useState(!0),[o,d]=p.useState(0),[l,c]=p.useState(10),[u,f]=p.useState(0),[h,w]=p.useState("nombre"),{filters:m,defineFields:g}=ke(),{tasks_api:x,getImageOBP:b}=we(),{user:j}=_e(),v=async(y,X)=>{var B,I,O;try{i(!0);const H={filters:{search:(m==null?void 0:m.search)??"",responsable:{idUser:j.id,responsableType:(B=m==null?void 0:m.responsable)==null?void 0:B.responsableType},ejecutivo:(m==null?void 0:m.ejecutivo)??""}},W=await x.get("/api/listado_campanias",{params:{pagination:{page:y,pageSize:X},orderBy:h,...H}}),K=ge(W==null?void 0:W.data);n(K),f((O=(I=W==null?void 0:W.data)==null?void 0:I.meta)==null?void 0:O.total)}catch(H){console.error("Error fetching data en Lista Campaña:",H)}finally{i(!1)}},L=async()=>{try{const y=await x.get("/api/obtener-comerciales");return[...St].map(B=>(B.id==="ejecutivo"&&(B.options=y.data.map(I=>({id:I.nombre,name:I.nombre}))),B))}catch(y){return console.error("Error fetching salesman data:",y),[...St]}};p.useEffect(()=>{(async()=>{const X=await L();g(X)})()},[]),p.useEffect(()=>{const y=Math.floor(o/l)+1;v(y,l)},[o,l,h,m]);const S=y=>{d(y.first),c(y.rows)},k=[{label:"5 filas",value:5},{label:"10 filas",value:10},{label:"15 filas",value:15},{label:"20 filas",value:20},{label:"25 filas",value:25},{label:"50 filas",value:50}],N=y=>{const X=parseInt(y.target.value,10);c(X),S({first:0,rows:X})},_=y=>{w(X=>X===y?`${y}:desc`:y)},P=y=>h===y?"↑↓":h===`${y}:desc`?"↓↑":"↑↓",F=y=>({padding:"auto",backgroundColor:Q.silver.silver_light,borderRadius:"50%",cursor:y?"not-allowed":"pointer",transition:"all 0.2s ease",marginRight:"4px",border:`1px solid ${y?Q.gray.gray_regular:Q.gray.gray_dark}`,color:y?Q.gray.gray_regular:Q.black.black_dark,width:"32px",height:"32px",display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center"});return e.jsx("div",{className:"tw-w-full tw-rounded-lg tw-p-4 tw-shadow-md",style:{background:Q.bg.content,display:"flex",flexDirection:"column",height:"100%"},children:r?e.jsx("div",{className:"tw-w-full",children:e.jsx(Jt,{})}):e.jsx(e.Fragment,{children:e.jsxs("div",{className:"tw-flex tw-h-full tw-flex-col",children:[e.jsx("div",{className:"tw-flex-1 tw-overflow-auto",children:e.jsxs("table",{className:"tw-w-full tw-table-auto tw-border-collapse",style:{borderCollapse:"collapse",width:"100%",borderSpacing:"0"},children:[e.jsx("thead",{children:e.jsxs("tr",{style:{color:Q.gray.gray_regular},children:[e.jsx("th",{onClick:()=>_("nombre"),style:{color:Q.gray.gray_dark,textAlign:"left"},children:e.jsxs("div",{className:"tw-flex tw-w-fit tw-items-center tw-space-x-1",style:{display:"flex",alignItems:"center"},children:[e.jsx("label",{className:"tw-text-s",style:{color:Q.gray.gray_dark},children:P("nombre")}),e.jsx("span",{className:"tw-align-middle tw-font-sans tw-text-[1.4rem] tw-font-normal tw-leading-[100%] tw-tracking-normal",children:"Campaña"})]})}),e.jsx("th",{onClick:()=>_("inicia"),className:"tw-whitespace-nowrap",style:{color:Q.gray.gray_dark,textAlign:"left"},children:e.jsxs("div",{className:"tw-flex tw-w-fit tw-items-center tw-space-x-1",children:[e.jsx("label",{style:{color:Q.gray.gray_dark},children:P("inicia")}),e.jsx(ee.Icons,{icon:"calendar",size:"xs",strokeWidth:5,color:Q.gray.gray_dark,className:"tw-mt-1 tw-h-[15px] tw-w-[15px]"}),e.jsx("span",{style:{color:Q.gray.gray_dark},className:"tw-align-middle tw-font-sans tw-text-[1.4rem] tw-font-normal tw-leading-[100%] tw-tracking-normal",children:"Fecha Inicio"})]})}),e.jsx("th",{onClick:()=>_("termina"),className:"tw-whitespace-nowrap",style:{color:Q.gray.gray_dark,textAlign:"left"},children:e.jsxs("div",{className:"tw-flex tw-w-fit tw-items-center",children:[e.jsx("label",{style:{color:"#C4C4C4"},children:P("termina")}),e.jsx(ee.Icons,{icon:"calendar",size:"xs",strokeWidth:5,color:Q.gray.gray_dark,className:"tw-mt-1 tw-h-[15px] tw-w-[15px]"}),e.jsx("span",{className:"tw-align-middle tw-font-sans tw-text-[1.4rem] tw-font-normal tw-leading-[100%] tw-tracking-normal",children:"Fecha Fin"})]})}),e.jsx("th",{className:"align-middle tw-whitespace-nowrap tw-text-center",style:{color:Q.gray.gray_dark},children:e.jsx("div",{className:"tw-inline-flex tw-w-full tw-items-center tw-justify-center",children:e.jsx("span",{className:"tw-font-sans tw-text-[1.4rem] tw-font-normal tw-leading-[100%] tw-tracking-normal",children:"Status de campaña"})})}),e.jsx("th",{className:"align-middle tw-whitespace-nowrap tw-text-center",style:{color:Q.gray.gray_dark},children:e.jsx("div",{className:"tw-inline-flex tw-w-full tw-items-center tw-justify-center",children:e.jsx("span",{className:"tw-font-sans tw-text-[1.4rem] tw-font-normal tw-leading-[100%] tw-tracking-normal",children:"Progreso de Ejecución"})})}),e.jsx("th",{className:"align-middle tw-whitespace-nowrap tw-text-center",style:{color:Q.gray.gray_dark},children:e.jsx("div",{className:"tw-inline-flex tw-w-full tw-items-center tw-justify-center",children:e.jsx("span",{className:"tw-font-sans tw-text-[1.4rem] tw-font-normal tw-leading-[100%] tw-tracking-normal",children:"Responsable"})})})]})}),e.jsx("tbody",{children:s==null?void 0:s.map((y,X)=>{var B,I,O,H,W,K,te,ae,Z,se,T,R,Y,U,q,G,D,E;return e.jsxs("tr",{style:{background:X%2===0?"#F5F5F5":"#FAFAFA",transition:"background-color 0.2s ease"},className:"tw-cursor-pointer ",onClick:()=>{a({id:y==null?void 0:y.id,project:y==null?void 0:y.nombre}),t("kanban-campania")},onMouseEnter:z=>{z.currentTarget.style.backgroundColor="#E1EBF9"},onMouseLeave:z=>{z.currentTarget.style.backgroundColor=X%2===0?"#F5F5F5":"#FAFAFA"},children:[e.jsx("td",{className:"tw-text-s",children:(B=y==null?void 0:y.campania)==null?void 0:B.nombre}),e.jsx("td",{className:"tw-text-s",children:(I=y==null?void 0:y.campania)==null?void 0:I.inicia}),e.jsx("td",{className:"tw-text-s",children:(O=y==null?void 0:y.campania)==null?void 0:O.termina}),e.jsx("td",{className:"tw-text-s",children:e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"15px",padding:"none",width:"auto",minWidth:"100px"},children:[e.jsxs("label",{className:"tw-text-black tw-w-[50px] tw-min-w-[50px] tw-text-right",children:[y==null?void 0:y.progreso,"%"]}),e.jsx("div",{style:{position:"relative",height:"10px",flex:1,backgroundColor:Q.gray.gray_dark,borderRadius:"10px",overflow:"hidden",maxWidth:"140px"},children:e.jsx("div",{style:{position:"absolute",top:0,left:0,height:"100%",width:`${y.progreso}%`,backgroundColor:y.progreso===100?Q.progressbar.green_regular:y.progreso>50?Q.progressbar.blue_regular:y.progreso>0?Q.progressbar.orange_regular:Q.gray.gray_dark,borderRadius:"10px",transition:"width 0.3s ease-in-out"}})})]})}),e.jsx("td",{className:"tw-text-s",children:e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"15px",padding:"none",width:"auto",minWidth:"100px"},children:[e.jsxs("label",{className:"tw-text-black tw-w-[50px] tw-min-w-[50px] tw-text-right",children:[(y==null?void 0:y.progresoVenta)??0,"%"]}),e.jsx("div",{className:"tw-inline-flex tw-w-full tw-items-center tw-justify-center",style:{position:"relative",height:"10px",flex:1,backgroundColor:Q.gray.gray_dark,borderRadius:"10px",overflow:"hidden",maxWidth:"180px"},children:e.jsx("div",{style:{position:"absolute",top:0,left:0,height:"100%",width:`${(y==null?void 0:y.progresoVenta)??0}%`,backgroundColor:(y==null?void 0:y.progresoVenta)===100?Q.progressbar.green_regular:(y==null?void 0:y.progresoVenta)>50?Q.progressbar.blue_regular:(y==null?void 0:y.progresoVenta)>0?Q.progressbar.orange_regular:Q.gray.gray_dark,borderRadius:"10px",transition:"width 0.3s ease-in-out"}})})]})}),e.jsx("td",{className:"tw-text-s tw-pb-[1.2rem] tw-pt-[1.2rem]",children:e.jsxs("div",{className:"tw-text-s tw-flex tw-items-center tw-justify-center",children:[e.jsx(Te,{imageUrl:(ae=(te=(K=(W=(H=y==null?void 0:y.campania)==null?void 0:H.responsable)==null?void 0:W.imagen)==null?void 0:K.formats)==null?void 0:te.thumbnail)!=null&&ae.url?b((Y=(R=(T=(se=(Z=y==null?void 0:y.campania)==null?void 0:Z.responsable)==null?void 0:se.imagen)==null?void 0:T.formats)==null?void 0:R.thumbnail)==null?void 0:Y.url):"",alt:(G=(q=(U=y==null?void 0:y.campania)==null?void 0:U.responsable)==null?void 0:q.nombre)==null?void 0:G.charAt(0)}),e.jsx("span",{className:"tw-text-s tw-ml-4",children:(E=(D=y==null?void 0:y.campania)==null?void 0:D.responsable)==null?void 0:E.nombre})]})})]},X)})})]})}),e.jsxs("div",{className:"tw-mt-4 tw-flex tw-items-center tw-justify-between tw-p-2",children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-start",color:Q.black.black_dark},className:"tw-whitespace-nowrap tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-none tw-tracking-normal tw-text-[#696E79]",children:[s.length," elementos de ",u]}),e.jsx(Ua.Paginator,{first:o,rows:l,totalRecords:u,rowsPerPageOptions:[5,10,20,50],onPageChange:S,className:"tw-flex tw-w-full tw-items-center tw-justify-center tw-gap-1 tw-rounded-lg tw-p-2",style:{display:"flex",justifyContent:"center",alignItems:"center",gap:"4px",width:"auto",minWidth:"fit-content"},template:{layout:"FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink",FirstPageLink:y=>e.jsx("button",{onClick:y.onClick,disabled:y.disabled,style:F(y.disabled),className:"tw-text-s tw-flex tw-items-center tw-justify-center",children:"<<"}),PrevPageLink:y=>e.jsx("button",{onClick:y.onClick,disabled:y.disabled,style:F(y.disabled),className:"tw-text-s",children:"<"}),NextPageLink:y=>e.jsx("button",{onClick:y.onClick,disabled:y.disabled,style:F(y.disabled),className:"tw-text-s",children:">"}),LastPageLink:y=>e.jsx("button",{onClick:y.onClick,disabled:y.disabled,style:F(y.disabled),className:"tw-text-s",children:">>"}),PageLinks:y=>e.jsx("span",{style:{display:"inline-flex",gap:"1px"},children:e.jsx("button",{onClick:X=>y.onClick(X),className:`tw-text-s tw-flex tw-items-center tw-justify-center ${y.className.includes("p-highlight")?"highlighted":""}`,style:{...F(!1),backgroundColor:y.className.includes("p-highlight")?"#E1EBF9":Q.silver.silver_light,color:Q.black.black_dark},children:y.page+1})})}}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx("span",{className:"tw-whitespace-nowrap tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-none tw-tracking-normal tw-text-[#696E79]",children:"Filas por página:"}),e.jsx("select",{style:{padding:"0.25rem",outline:"none",cursor:"pointer",border:`1px solid ${Q.gray.gray_dark}`,borderRadius:"4px"},className:"tw-whitespace-nowrap tw-font-sans tw-text-[1.4rem] tw-font-[400] tw-leading-none tw-tracking-normal tw-text-[#696E79]",value:l,onChange:y=>N(y),children:k.map(y=>e.jsx("option",{value:y.value,className:"tw-text-s",style:{color:Q.gray.gray_dark},children:y.label},y.value))})]})]})]})})})},mt=()=>{const[t,a]=p.useState(null);return{position:t,setElementPosition:i=>{var c;let o=(c=i.current)==null?void 0:c.getBoundingClientRect(),d=(o==null?void 0:o.x)+((o==null?void 0:o.width)??0),l=(o==null?void 0:o.y)+(o==null?void 0:o.height);a(t?null:{x:d??0,y:l??0})},getChildrenSize:i=>{var o;return(o=i.current)==null?void 0:o.getBoundingClientRect()},clearPosition:()=>{a(null)}}},ss=({children:t,filterChildren:a})=>{const{position:s,setElementPosition:n}=mt(),r=p.useRef(null),i=({children:o})=>{const[d,l]=p.useState();return p.useEffect(()=>{var c,u;a.current&&l(((s==null?void 0:s.x)??0)-(((u=(c=a.current)==null?void 0:c.getBoundingClientRect())==null?void 0:u.width)??0))},[a==null?void 0:a.current,s==null?void 0:s.x]),s&&Ue.createPortal(e.jsx("div",{className:`tw-absolute tw-h-fit tw-w-fit ${d?"tw-block":"tw-hidden"}`,style:{top:`${s==null?void 0:s.y}px`,left:`${d}px`,zIndex:1},"data-portal-host":!0,children:o}),document.body)};return e.jsxs(e.Fragment,{children:[e.jsxs("label",{ref:r,htmlFor:"filter-button",className:"tw-flex tw-h-[30px] tw-cursor-pointer tw-items-center tw-gap-m tw-rounded-lg tw-bg-bg tw-fill-texts-enfasis tw-p-s tw-px-l tw-text-xl tw-text-texts-enfasis tw-shadow-button-primary hover:tw-shadow-button-primary-hover",children:[e.jsx(ee.Icons,{icon:"filter",size:"xs",strokeWidth:5,color:Q.primary.regular}),"Filtrar"]}),e.jsx("button",{className:"tw-hidden",id:"filter-button",onClick:()=>{n(r)}}),e.jsx(i,{children:t})]})};function ns(t,a=300,s={leading:!1,trailing:!0}){let n,r=null;return function(...i){const o=Date.now(),d=s.leading&&!r;clearTimeout(n),d&&t(...i),r=o,n=setTimeout(()=>{s.trailing&&(!s.leading||o-r>=a)&&(t(...i),r=null)},a)}}const rs="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='uuid-870f9847-3249-4f3d-96c6-7627dd5f9e7b'%20data-name='Iconos'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3e%3cdefs%3e%3cstyle%3e%20.uuid-4d76d382-032b-400f-b22d-b6e7be4cfaae%20{%20fill:%20none;%20stroke:%20%23252525;%20stroke-linecap:%20round;%20stroke-linejoin:%20round;%20stroke-width:%204px;%20}%20%3c/style%3e%3c/defs%3e%3ccircle%20class='uuid-4d76d382-032b-400f-b22d-b6e7be4cfaae'%20cx='19.79'%20cy='19.79'%20r='13.54'/%3e%3cline%20class='uuid-4d76d382-032b-400f-b22d-b6e7be4cfaae'%20x1='41.67'%20y1='41.67'%20x2='29.17'%20y2='29.17'/%3e%3c/svg%3e",Zt=({options:t,onselect:a})=>{const[s,n]=p.useState(null),r=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),i=[...t].filter(o=>o.name.toLowerCase().includes((s==null?void 0:s.toLowerCase())??""));return e.jsxs("div",{className:"tw-h-fit tw-w-full tw-min-w-max",children:[e.jsxs("div",{className:"tw-relative tw-flex tw-items-center",children:[e.jsx("input",{id:r,value:s??"",onChange:o=>n(o.target.value),type:"text",className:"tw-border-cards tw-h-[32px] tw-w-full tw-rounded-lg tw-bg-bg-card tw-p-2",placeholder:"Buscar"}),e.jsx("div",{className:"tw-absolute tw-right-[8px]",children:e.jsx("img",{src:rs,alt:"Icono",className:"tw-h-[12px] tw-w-[12px]"})})]}),e.jsx("div",{className:"tw-border-cards tw-flex tw-max-h-[120px] tw-min-w-max tw-flex-col tw-gap-s tw-overflow-y-auto tw-rounded-lg tw-bg-bg-card tw-p-2",children:i.map(o=>e.jsxs("button",{onClick:()=>{a(o)},className:"tw-flex tw-min-w-full tw-max-w-[200px] tw-cursor-pointer tw-items-center tw-gap-s hover:tw-bg-primary-light",children:[o.image&&e.jsx(Te,{imageUrl:o.image,alt:o.name}),e.jsx("p",{className:"tw-text-s tw-content-text tw-truncate tw-py-m tw-font-normal tw-text-texts-subtext",children:o.name})]}))})]})},os=({error:t,options:a,onSelect:s,initialValue:n})=>{const[r,i]=p.useState(!1),[o,d]=p.useState((n==null?void 0:n.name)??null);return p.useEffect(()=>{n&&d(n)},[n]),e.jsxs("div",{className:"tw-relative",children:[e.jsxs("div",{onBlur:()=>i(!1),onClick:()=>i(!r),className:`tw-z-[1] tw-w-full tw-cursor-pointer tw-bg-bg-card ${t?"tw-border-2 tw-border-danger-regular tw-shadow-danger-regular":"tw-shadow-input"} tw-flex tw-h-[30px] tw-items-center tw-justify-between tw-rounded-md tw-pl-2 ${t?"tw-text-danger-regular":o?"tw-text-texts-subtext":"tw-text-texts-placeholder"}`,children:[e.jsx("p",{children:(o==null?void 0:o.name)??"Selecciona una opción"}),e.jsx(ee.Icons,{icon:"angle_down_outline",color:t?Q.danger.regular:Q.texts.placeholder})]}),r&&e.jsx("div",{className:"absolute tw-z-[10] tw-w-full tw-rounded-lg tw-shadow-md",children:e.jsx(Zt,{onselect:l=>{d(l),i(!1),s&&s(l)},options:a})})]})},is=()=>{const{fields:t,updateFilters:a,cleanFilters:s,applyFilters:n,initialFilters:r}=ke();return e.jsxs("div",{className:"tw-z-[100] tw-flex tw-min-w-[250px] tw-flex-col tw-gap-l",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between",children:[e.jsx("p",{className:"tw-text-2xl tw-text-texts",children:"Filtros"}),e.jsx("button",{className:"tw-flex tw-h-fit tw-cursor-pointer tw-items-center tw-gap-m tw-rounded-lg tw-bg-bg tw-fill-texts-enfasis tw-p-s tw-px-l tw-text-lg tw-font-semibold tw-text-texts-enfasis tw-shadow-button-primary hover:tw-shadow-button-primary-hover",onClick:s,children:"Limpiar"})]}),e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-m",children:t==null?void 0:t.map((i,o)=>{var d;return e.jsxs("div",{style:{zIndex:10-o},children:[e.jsx("p",{className:"z-[1] tw-text-xl",children:i.label}),(i==null?void 0:i.type)==="select"?e.jsx("div",{className:"tw-relative tw-z-[10]",children:e.jsx(os,{error:!1,options:i==null?void 0:i.options,onSelect:l=>{a({name:i==null?void 0:i.id,value:l==null?void 0:l.id})},initialValue:(d=i==null?void 0:i.options)==null?void 0:d.find(l=>l.id===(r==null?void 0:r[i==null?void 0:i.id]))})}):e.jsx("input",{className:"tw-h-[30px] tw-w-full tw-rounded-lg tw-p-s tw-shadow-input",type:i.type,value:r==null?void 0:r[i==null?void 0:i.id],name:i.label.toLowerCase().replace(/ /g,"_"),onChange:ns(l=>{var c,u;return a({name:(c=l==null?void 0:l.target)==null?void 0:c.name,value:(u=l==null?void 0:l.target)==null?void 0:u.value})},1e3)})]},o)})}),e.jsx("button",{className:"tw-rounded-md tw-bg-primary-regular tw-py-s tw-text-xl tw-text-white hover:tw-bg-primary-dark",onClick:n,children:"Filtrar"})]})},ls=()=>e.jsxs("div",{className:"tw-flex tw-h-[150px] tw-w-full tw-animate-pulse tw-flex-col tw-gap-[50px] tw-rounded-md tw-bg-gray-200 tw-p-4",children:[e.jsxs("div",{className:"tw-flex tw-h-[30px] tw-gap-3",children:[e.jsx("div",{className:"tw-h-full tw-w-[30px] tw-min-w-[30px] tw-rounded-full tw-bg-gray-300"}),e.jsx("div",{className:"tw-h-full tw-w-full tw-bg-gray-300"}),e.jsx("div",{className:"tw-h-full tw-w-[30px] tw-min-w-[30px] tw-rounded-full tw-bg-gray-300"})]}),e.jsxs("div",{className:"tw-flex tw-h-[30px] tw-w-full tw-justify-between tw-gap-[50px]",children:[e.jsx("div",{className:"tw-h-[30px] tw-w-full tw-bg-gray-300"}),e.jsx("div",{className:"tw-h-[30px] tw-w-full tw-bg-gray-300"})]})]}),kt=({trigger:t,user:a,showUser:s=!0})=>e.jsx(ee.Tooltip,{dispatch:t,children:s&&e.jsxs("div",{className:"tw-border-containers tw-flex tw-h-fit tw-w-fit tw-items-center tw-gap-2 tw-rounded-lg tw-bg-bg-card tw-p-2",children:[e.jsx(Te,{imageUrl:a.image??"",alt:a.name}),e.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:a.name})]})});class cs{static toDomain(a){return{id:a.id,name:a.nombre,color:a.color}}}const ds=()=>{const{tasks_api:t}=we();return{teams:de.useQuery({queryKey:["teams","all"],queryFn:async()=>{const s=await t.get("/api/equipos");return ge(s.data).map(cs.toDomain)}})}};class ea{static toUsers(a){var s,n,r;return{id:a.id,name:a.nombre,image:(r=(n=(s=a.imagen)==null?void 0:s.formats)==null?void 0:n.thumbnail)==null?void 0:r.url,tasksUser:{email:a.tasksUser.email,id:a.tasksUser.id,nombre:a.tasksUser.nombre},role:a.role}}static toUsersWithIndex(a){var n,r,i;const s={};for(const o of a)s[o.email]={...o,image:(i=(r=(n=o.imagen)==null?void 0:n.formats)==null?void 0:r.thumbnail)==null?void 0:i.url};return s}}const us=async({tasks_api:t})=>{try{const a=await t.get("/api/getAllOBPusersMembers");return ge(a.data).map(ea.toUsers)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},ws=async({users:t})=>{try{const a=ge(t);return ea.toUsersWithIndex(a)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},ta=()=>{const{tasks_api:t}=we();return{users:de.useQuery({queryKey:["users"],queryFn:()=>us({tasks_api:t}),staleTime:1e3*60*60*24})}},ft=t=>new Intl.DateTimeFormat("es-MX",{month:"long"}).format(t);function ps(t){const a=["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],s=new Date(t).getDay();return a[s]}const It=t=>{let a=t||new Date,s=a.getDate(),n=ft(a.getMonth()).slice(0,3),r=a.getFullYear().toString().slice(-2),i=ps(a).slice(0,3);return`${i.charAt(0).toUpperCase()+i.slice(1)} ${s} ${n.charAt(0).toUpperCase()+n.slice(1)} ${r}`},xt=(t,a)=>({...t,image:t.image?`${a}${t.image}`:""}),aa=({users:t,onClick:a,responsible:s,role:n,status:r})=>{const{getOBPUrlApi:i}=we(),o=`button-assign-users-${Math.random().toString(36).substring(2,15)}`,{setElementPosition:d,position:l,clearPosition:c}=mt(),u=p.useRef(null),f="Project Manager",h=()=>s?null:t.length>3&&e.jsx(ee.Tooltip,{dispatch:e.jsx("div",{className:"tw-ml-[-8px] tw-flex tw-h-[28px] tw-w-[28px] tw-items-center tw-justify-center tw-rounded-full tw-border-2 tw-border-white tw-bg-primary-regular",children:e.jsx("p",{className:"tw-text-s tw-font-bold tw-text-white ",children:`+${t.length-3}`})}),children:e.jsx("div",{className:"tw-border-containers tw-h-fit tw-w-fit tw-rounded-lg tw-bg-bg-card tw-p-2",children:t==null?void 0:t.slice(3).map((x,b)=>e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2 ",children:[e.jsx(Te,{imageUrl:x.image??"",alt:x.name},b),e.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:x.name})]},b))})}),w=()=>{if(s){let x=t.find(b=>b.id===s);return e.jsx("div",{children:e.jsx(kt,{trigger:e.jsx(Te,{imageUrl:x==null?void 0:x.image,alt:x==null?void 0:x.name},s),user:x,showUser:!(l!=null&&l.x)})})}return(t==null?void 0:t.length)>0&&t.slice(0,3).map((x,b)=>e.jsx("div",{className:`${b===0?"":"tw-ml-[-8px]"}`,children:e.jsx(kt,{trigger:e.jsx(Te,{imageUrl:x.image,alt:x.name}),user:x,showUser:!(l!=null&&l.x)})},x.id||b))},m=({children:x})=>e.jsx("label",{ref:u,htmlFor:o,className:"tw-flex tw-cursor-pointer tw-items-center",children:x});if(t.length===0)return e.jsx(m,{children:e.jsx(ee.Icons,{icon:"user",size:"xs",strokeWidth:3})});const g=()=>{var N;const[x,b]=p.useState(),[j,v]=p.useState("team"),{teams:L}=ds(),{users:S}=ta();p.useEffect(()=>{var _,P;u.current&&b(((l==null?void 0:l.x)??0)-(((P=(_=u.current)==null?void 0:_.getBoundingClientRect())==null?void 0:P.width)??0))},[u==null?void 0:u.current,l==null?void 0:l.x]);const k=()=>{const _=[{id:"team",label:"Equipo"},{id:"responsible",label:"Responsable"}];return e.jsx("div",{className:"tw-flex tw-w-full tw-justify-center tw-gap-l tw-font-bold tw-text-texts-placeholder",children:_.map((P,F)=>e.jsx("button",{className:`tw-w-full tw-border-texts-placeholder tw-text-center tw-text-sm ${j===P.id?"tw-text-primary-pastel":""} ${F===_.length-1?"tw-border-r-0":" tw-border-r-2"}`,onClick:()=>v(P.id),children:P.label},P.id))})};return n===f||r===0&&n!==f?(l==null?void 0:l.x)&&Ue.createPortal(e.jsx("div",{"data-portal-host":!0,className:`absolute tw-h-fit tw-w-[300px] tw-p-[1rem] ${x?"tw-block":"tw-hidden"}`,style:{top:`${l==null?void 0:l.y}px`,left:`${x}px`,zIndex:1},children:e.jsxs("div",{className:"tw-border-cards tw-flex tw-max-h-[200px] tw-flex-col tw-gap-m tw-overflow-y-hidden tw-rounded-lg tw-bg-bg-card tw-p-2",style:{boxShadow:"0px 2px 16px 0px rgba(0, 0, 0, 0.25)"},children:[e.jsx(k,{}),e.jsx(Zt,{options:j==="team"?L.data.map(_=>({id:_.id,name:_.name,image:""})):((N=S.data)==null?void 0:N.map(_=>xt(_,i())))||[],onselect:_=>{var P;c(),a&&a((P=_.tasksUser)==null?void 0:P.id,j)}})]})}),document.body):null};return e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:[w(),h()]}),e.jsx("button",{className:"tw-hidden",id:o,onClick:()=>d(u)}),e.jsx(g,{})]})},sa=({priority:t,id:a,withLabel:s=!1})=>{var h,w,m,g,x;const{updatingTask:n}=Le(),r=Math.random().toString(36),[i,o]=p.useState(null),{user:d}=_e(),[l,c]=p.useState(t);p.useEffect(()=>{c(t)},[t]);const u={0:{title:"Normal",color:Q.primary.regular},1:{title:"Baja",color:Q.success.regular},2:{title:"Media",color:Q.warning.regular},3:{title:"Alta",color:Q.danger.regular}},f=()=>{if(!i)return null;const b=({priorityTask:j,text:v})=>{var L,S;return e.jsxs("button",{onClick:async()=>{o(null),await n({id:a,data:{prioridad:j},user:d==null?void 0:d.id}),c(j)},className:"tw-flex tw-items-center tw-gap-m tw-px-l tw-py-s hover:tw-bg-primary-light",children:[e.jsx(ee.Icons,{icon:"flag",size:"xs",strokeWidth:4,color:(L=u[j??0])==null?void 0:L.color}),e.jsx("p",{className:"tw-text-sm",style:{color:(S=u[j??0])==null?void 0:S.color},children:v})]})};return Ue.createPortal(e.jsx("div",{onBlur:()=>{o(null)},id:`${r}-options`,style:{top:`${i.y+5}px`,left:`${i.x+5}px`,zIndex:50},className:`tw-absolute tw-flex tw-h-fit tw-w-max tw-flex-col tw-gap-2 tw-rounded-xl tw-bg-bg-card tw-p-m
2
2
  tw-shadow-lg`,"data-portal-host":!0,children:Object.values(u).map((j,v)=>e.jsx(b,{priorityTask:v,text:j.title},v))}),document.body)};return e.jsxs("div",{className:"tw-relative tw-h-[22px]",children:[e.jsxs("label",{onBlur:()=>{o(null)},htmlFor:r,className:"tw-flex tw-cursor-pointer tw-items-center tw-gap-2 active:tw-opacity-50",children:[e.jsx(ee.Tooltip,{dispatch:e.jsx(ee.Icons,{icon:"flag",size:"xs",strokeWidth:4,color:(h=u[l??0])==null?void 0:h.color}),children:e.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-p-5 tw-text-sm",style:{color:(w=u[l??0])==null?void 0:w.color},children:`Prioridad: ${(m=u[l??0])==null?void 0:m.title}`})}),s&&e.jsx("span",{style:{color:(g=u[l??0])==null?void 0:g.color},className:"tw-text-lg tw-font-normal",children:((x=u[l??0])==null?void 0:x.title)??"Sin prioridad"})]}),e.jsx("button",{id:r,onClick:b=>{o(i?null:{x:b.clientX,y:b.clientY})},className:"tw-hidden"}),e.jsx(f,{})]})};function ms({items:t}){var n;const[a,s]=p.useState(1);return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"tw-mb-2 tw-mt-4 tw-flex tw-flex-row tw-border-b tw-border-neutral-100 tw-bg-white",children:t.map((r,i)=>e.jsx("div",{className:`tw-border-r tw-border-neutral-100 tw-pr-3 ${i!==0?"tw-px-3":""}`,children:e.jsx(me.Button,{variant:"ghost",onClick:()=>s(r.id),className:`rounded-none tw-h-12 tw-py-1 tw-text-xl tw-font-semibold ${a===r.id?"tw-border-primary tw-border-b-2 tw-text-primary-regular":"tw-border-b-0 tw-text-neutral-400"}`,children:r.label},r.id)},r.id))}),e.jsx("div",{className:"tw-flex-1 tw-overflow-y-auto tw-bg-white tw-pt-4",children:(n=t.find(r=>r.id===a))==null?void 0:n.component})]})}function fs({comment:t}){var r,i,o,d,l;const{getImageOBP:a}=we(),s=(d=(o=(i=(r=t==null?void 0:t.autor)==null?void 0:r.imagen)==null?void 0:i.formats)==null?void 0:o.thumbnail)==null?void 0:d.url;function n(c){const u=et.parseISO(c);return et.formatDistanceToNow(u,{locale:pt.es,addSuffix:!0})}return e.jsx("div",{children:e.jsxs("div",{className:"tw-flex tw-flex-row tw-items-start tw-gap-3",children:[e.jsx(Te,{size:"xxl",imageUrl:s?a(s):"",alt:"@shadcn"}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-1",children:[e.jsxs("div",{className:"tw-flex tw-flex-row tw-gap-2",children:[e.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-900",children:(l=t==null?void 0:t.autor)==null?void 0:l.nombre}),e.jsx("span",{className:"tw-mt-[2px] tw-text-base tw-font-normal tw-text-neutral-600",children:n(t==null?void 0:t.createdAt)})]}),e.jsx("p",{className:"tw-text-xl tw-font-normal tw-text-neutral-600",children:t==null?void 0:t.comentario})]})]})})}function xs({currentUser:t,data:a,taskId:s,onNewComment:n}){var w,m,g;const{tasks_api:r,getImageOBP:i}=we(),{register:o,handleSubmit:d,reset:l}=je.useForm(),[c,u]=p.useState([]),f=(g=(m=(w=t==null?void 0:t.imagen)==null?void 0:w.formats)==null?void 0:m.thumbnail)==null?void 0:g.url;p.useEffect(()=>{if(a!=null&&a.comentarios){const x=[...a.comentarios].sort((b,j)=>new Date(j.createdAt).getTime()-new Date(b.createdAt).getTime());u(x)}},[a]);const h=async x=>{try{const b={autor:{id:t==null?void 0:t.id,email:t==null?void 0:t.email,nombre:t==null?void 0:t.nombre,imagen:t==null?void 0:t.imagen},comentario:x==null?void 0:x.comment,createdAt:new Date().toISOString()};await r.post("/api/comentarios",{data:{autor:t==null?void 0:t.id,comentario:x.comment,tarea:s}}),n(!0),u(j=>[b,...j]),l()}catch(b){console.error("Error al agregar comentario:",b)}};return e.jsxs("div",{className:"tw-flex tw-h-full tw-flex-col tw-gap-4",children:[e.jsxs("form",{onSubmit:d(h),className:"tw-flex tw-flex-row tw-items-center tw-gap-3",children:[e.jsx(Te,{size:"xxl",imageUrl:f?i(f):"",alt:"@shadcn"}),e.jsx(me.Input,{...o("comment",{required:!0}),autoComplete:"off",placeholder:"Escribe un comentario",className:"tw-h-[3.5rem] tw-w-full tw-border tw-border-neutral-200 tw-bg-white tw-text-xl"})]}),c&&c.map((x,b)=>e.jsx(fs,{comment:x},b))]})}function gs({data:t}){const a={0:{color:"tw-bg-gray-400",label:"Sin estado"},1:{color:"tw-bg-primary-regular",label:"En curso"},2:{color:"tw-bg-success-regular",label:"Finalizada"},3:{color:"tw-bg-success-regular",label:"Finalizada"}},s=n=>n?et.format(new Date(n),"d MMM",{locale:pt.es}):"";return e.jsxs("div",{children:[e.jsxs("div",{className:"tw-flex tw-flex-row tw-items-center tw-gap-4",children:[e.jsx(me.Label,{className:"tw-text-2xl tw-font-medium tw-text-neutral-900",children:"Tareas dependientes"}),e.jsx("span",{className:"tw-text-primary tw-flex tw-h-10 tw-w-10 tw-items-center tw-justify-center tw-rounded-full tw-bg-[#E1EBF9] tw-text-lg tw-font-normal tw-text-neutral-600",children:t==null?void 0:t.length})]}),e.jsx("div",{className:"tw-mt-3 tw-flex tw-flex-col tw-gap-2 tw-rounded-lg tw-border tw-border-neutral-200",children:t==null?void 0:t.map(n=>{var r,i,o,d,l;return e.jsxs("div",{className:"tw-flex tw-w-full tw-flex-row tw-items-center tw-justify-between tw-gap-s tw-border-b tw-border-neutral-200 tw-px-2 tw-py-1",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx(Te,{imageUrl:(d=(o=(i=(r=n.responsable)==null?void 0:r.image)==null?void 0:i.formats)==null?void 0:o.thumbnail)==null?void 0:d.url}),e.jsx("p",{className:"tw-w-[400px] tw-overflow-hidden tw-text-ellipsis tw-text-nowrap tw-text-sm tw-font-normal",children:n==null?void 0:n.texto_corto})]}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-1",children:[e.jsx("p",{className:"tw-text-sm tw-font-normal",children:s(n==null?void 0:n.createdAt)}),e.jsx("div",{className:`tw-block tw-h-4 tw-w-4 tw-rounded-full tw-bg-gray-400 ${((l=a[n==null?void 0:n.estatus])==null?void 0:l.color)??"tw-bg-gray-400"}`})]})]},n.id)})})]})}function hs({id:t,texto_largo:a,user_id:s}){const[n,r]=p.useState(a),{updatingTask:i}=Le(),o=async()=>{await i({id:t,data:{texto_largo:n},user:s})};return p.useEffect(()=>{r(a)},[a]),e.jsxs("div",{className:"tw-mt-8 tw-flex tw-w-full tw-flex-col tw-gap-3",children:[e.jsx("h6",{className:"tw-text-2xl tw-font-semibold tw-text-neutral-900",children:"Descripción"}),e.jsx(me.Input,{value:n,onChange:d=>r(d.target.value),onBlur:o,autoComplete:"off",placeholder:"Agregar descripción",className:"tw-h-[3.5rem] tw-w-full tw-border tw-border-neutral-200 tw-bg-white tw-text-xl"})]})}function na({isOpen:t,setIsOpen:a,taskId:s}){var b,j,v,L,S,k,N,_,P,F;const[n,r]=p.useState(null),[i,o]=p.useState(!1),[d,l]=p.useState(!1),[c,u]=p.useState(null),f=(L=(v=(j=(b=n==null?void 0:n.responsable)==null?void 0:b.imagen)==null?void 0:j.formats)==null?void 0:v.thumbnail)==null?void 0:L.url,{tasks_api:h,getImageOBP:w}=we(),{user:m}=_e();p.useEffect(()=>{if(t&&s||i){const y=async()=>{const B=await h.get(`/api/detalleTarea/${s}`);r(B==null?void 0:B.data)},X=async()=>{const B=await h.get(`/api/users/${m.id}`);u(B==null?void 0:B.data)};y(),X()}},[t,s,i,m.id,h]);const g=y=>y?et.format(y,"d MMM yyyy, h:mmaaa",{locale:pt.es}):"Fecha no disponible",x=[{id:1,label:"Todo",component:e.jsx(xs,{taskId:s,currentUser:c,data:n,onNewComment:o})},{id:2,label:"Dependencias",component:e.jsx(gs,{data:n==null?void 0:n.ids_t_dependientes})}];return t&&Ue.createPortal(e.jsxs(e.Fragment,{children:[e.jsx("div",{className:`tw-fixed tw-inset-0 tw-z-20 tw-flex tw-items-center tw-justify-center tw-bg-transparent tw-bg-opacity-50 ${t?"tw-pointer-events-auto tw-block":"tw-pointer-events-none tw-hidden"}`,onClick:()=>a(!1)}),e.jsx("section",{className:`tw-fixed tw-bottom-0 tw-top-0 tw-z-50 tw-flex tw-h-screen tw-w-[55rem] tw-items-center tw-justify-center tw-overflow-hidden tw-bg-white tw-bg-opacity-50 tw-shadow-2xl tw-transition-all tw-duration-500 tw-ease-in-out ${t?"tw-pointer-events-auto tw-right-0 tw-block":"tw-pointer-events-none tw-right-[-100%] tw-hidden"}`,children:e.jsxs("div",{className:"tw-flex tw-h-full tw-w-full tw-flex-col tw-overflow-y-scroll tw-border-none tw-bg-white tw-px-6 tw-py-10 tw-shadow-xl",children:[e.jsxs("div",{className:"tw-flex tw-w-full tw-flex-row tw-items-center tw-justify-between tw-gap-10 tw-border-none tw-pb-4",children:[e.jsxs("div",{className:"tw-relative tw-flex tw-flex-row tw-items-start tw-gap-2",children:[((S=n==null?void 0:n.id_t_requerida)==null?void 0:S.id)&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"tw-cursor-help",onMouseOver:()=>l(!0),onMouseLeave:()=>l(!1),children:e.jsx(ee.Icons,{icon:"info_circle",color:Q.warning.regular,strokeWidth:4})}),d&&e.jsxs("div",{style:{top:"25px"},className:"tw-absolute tw-flex tw-w-fit tw-max-w-[400px] tw-flex-col tw-gap-m tw-rounded-lg tw-border-l-[5px] tw-border-warning-regular tw-bg-warning-light tw-p-l tw-text-xs tw-text-warning-dark",children:[e.jsx("p",{className:"tw-font-bold",children:"Requiere completar su tarea requerida:"}),e.jsx("p",{className:"tw-text-2xl tw-font-normal tw-text-neutral-600",children:(k=n==null?void 0:n.id_t_requerida)==null?void 0:k.texto_corto})]})]}),e.jsx("div",{className:"tw-flex tw-flex-row tw-items-center tw-gap-2",children:e.jsxs("h3",{className:"tw-text-3xl tw-font-semibold tw-text-neutral-900",children:[n==null?void 0:n.texto_corto,(n==null?void 0:n.atraso)&&e.jsx(ee.TooltipV2,{content:(N=n==null?void 0:n.atraso)==null?void 0:N.motivo,position:"bottom",children:e.jsx("button",{className:"tw-ml-2 tw-inline-block tw-h-fit tw-align-middle",children:e.jsx(ee.Icons,{icon:"exclamation_triangle",color:Q.warning.dark,style:{width:"20px",height:"20px"}})})})]})})]}),e.jsx(me.Button,{variant:"shadow",size:"sm",onClick:()=>a(!1),className:"tw-h-12 tw-w-12 tw-bg-neutral-100",children:e.jsx(ee.Icons,{icon:"x_outline",size:"xs",strokeWidth:4,color:"#000"})})]}),e.jsx("div",{className:"tw-mt-6 tw-flex tw-w-full tw-flex-row tw-justify-between",children:e.jsxs("span",{className:"tw-text-xl tw-font-medium tw-text-black-black_light",children:[n==null?void 0:n.campania," / ",n==null?void 0:n.nombre_medio]})}),e.jsx(hs,{id:s,texto_largo:n==null?void 0:n.texto_largo,user_id:m.id}),e.jsx(me.Accordion,{type:"single",collapsible:!0,defaultValue:"item-1",className:"tw-mt-6 tw-flex tw-w-full tw-flex-col tw-rounded-xl tw-border tw-border-neutral-200",children:e.jsxs(me.AccordionItem,{value:"item-1",className:"tw-border-none",children:[e.jsx(me.AccordionTrigger,{className:"tw-flex tw-w-full tw-flex-row tw-border-b tw-border-neutral-200 tw-p-4 tw-text-2xl tw-font-medium tw-text-neutral-900",children:"Detalles"}),e.jsx(me.AccordionContent,{className:"tw-border-none",children:e.jsxs("div",{className:"tw-gap-xy-details tw-grid tw-w-full tw-grid-cols-3 tw-p-4",children:[e.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[e.jsx("span",{className:"tw-bg-black tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-[100%] tw-tracking-normal",children:"Responsable"}),(_=n==null?void 0:n.responsable)!=null&&_.nombre?e.jsxs("div",{className:"tw-flex tw-flex-row tw-items-center tw-gap-2",children:[e.jsx(Te,{size:"xxl",imageUrl:f?w(f):"",alt:"@shadcn"}),e.jsx("span",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:(P=n==null?void 0:n.responsable)==null?void 0:P.nombre})]}):e.jsx("span",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:"Sin responsable"})]}),e.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[e.jsx("span",{className:"tw-bg-black tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-[100%] tw-tracking-normal",children:"Equipo asignado"}),e.jsx("div",{className:"tw-flex tw-flex-row tw-gap-2",children:e.jsx("span",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:((F=n==null?void 0:n.equipo)==null?void 0:F.nombre)??"Sin equipo"})})]}),e.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[e.jsx("span",{className:"tw-text-xl tw-font-medium tw-text-neutral-900",children:"Prioridad"}),e.jsx(sa,{priority:parseInt(n==null?void 0:n.prioridad)||0,id:s,withLabel:!0})]}),e.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[e.jsx("span",{className:"tw-bg-black tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-[100%] tw-tracking-normal",children:"Lista"}),e.jsx("div",{className:"tw-flex tw-flex-row tw-gap-2",children:e.jsx("span",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:(n==null?void 0:n.lista)??"Sin lista"})})]}),e.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[e.jsx("span",{className:"tw-bg-black tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-[100%] tw-tracking-normal",children:"Fecha estimada de inicio"}),e.jsx("p",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:g(n==null?void 0:n.f_inicio_estimada)})]}),e.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[e.jsx("span",{className:"tw-bg-black tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-[100%] tw-tracking-normal",children:"Fecha estimada de fin"}),e.jsx("p",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:g(n==null?void 0:n.f_fin_estimada)})]}),e.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[e.jsx("span",{className:"tw-bg-black tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-[100%] tw-tracking-normal",children:"Fecha de fin"}),e.jsx("p",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:g(n==null?void 0:n.ffin)})]}),e.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[e.jsx("span",{className:"tw-bg-black tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-[100%] tw-tracking-normal",children:"Creado"}),e.jsx("p",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:g(n==null?void 0:n.createdAt)})]}),e.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[e.jsx("span",{className:"tw-bg-black tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-[100%] tw-tracking-normal",children:"Última modificación"}),e.jsx("p",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:g(n==null?void 0:n.updatedAt)})]})]})})]})}),e.jsx(ms,{items:x})]})})]}),document.body)}const bs=({children:t,actionsRef:a,newPosition:s,className:n})=>{const[r,i]=p.useState(),[o,d]=p.useState(!1);return p.useEffect(()=>{var l,c;if(a.current&&s){const u=((s==null?void 0:s.x)??0)-(((c=(l=a.current)==null?void 0:l.getBoundingClientRect())==null?void 0:c.width)??0);i(u),requestAnimationFrame(()=>{d(!0)})}return()=>{d(!1),i(void 0)}},[a==null?void 0:a.current,s==null?void 0:s.x]),!s||r===void 0?null:Ue.createPortal(e.jsx("div",{"data-portal-host":!0,className:`
3
3
  tw-pointer-events-auto tw-absolute tw-h-fit
4
4
  tw-w-fit tw-transition-all tw-duration-200
5
5
  tw-ease-in-out
6
6
  ${o?"tw-opacity-100":"tw-invisible tw-opacity-0"}
7
7
  ${n}
8
- `,style:{top:`${s==null?void 0:s.y}px`,left:`${r}px`,zIndex:1,transform:o?"translateY(0)":"translateY(8px)"},children:t}),document.body)},ra=({status:t,nameRequiredTask:a,statusRequiredTask:s,id:n,statusLateTask:r=null,projectID:i,atrasoId:o,categoria:d})=>{const{setElementPosition:l,position:c}=mt(),u=p.useRef(null),{startWorking:f,completeTask:h,startTask:w}=Le(),m=p.useRef(!1),[g,x]=p.useState(!1),[b,j]=p.useState(null),[v,L]=p.useState("first"),S=a!==""&&s===2,[k,N]=p.useState(null),{atrasoReasons:_,isLoading:P,createAtraso:F,deleteAtraso:y}=Xt({enabled:!0}),[X,B]=p.useState(null);p.useEffect(()=>{r&&L("third")},[]);const I=Z=>{L(Z),Z==="second"&&t===0&&j("Trabajando")},O=()=>{const Z=[];return t===0&&Z.push({name:"Mover a trabajando",icon:"arrow_right",iconReverse:!1,onClick:()=>{I("second")},disabled:!1}),t===1&&Z.push({name:"Mover a completada",icon:"arrow_right",iconReverse:!1,onClick:()=>I("second"),disabled:!1},{name:"Mover por hacer",icon:"arrow_left",iconReverse:!0,onClick:()=>I("fourth"),disabled:!1}),o?Z.push({name:"Eliminar atraso",icon:null,iconReverse:!1,onClick:()=>I("third"),disabled:!1}):Z.push({name:"Agregar atraso",icon:null,iconReverse:!1,onClick:()=>I("third"),disabled:!1}),m!=null&&m.current?e.jsx("div",{className:"tw-hover:bg-primary-light tw-flex tw-h-fit tw-w-max tw-translate-x-0 tw-items-center tw-gap-2 tw-rounded-lg tw-bg-bg-card tw-p-l tw-shadow-lg tw-transition-all tw-duration-200 tw-ease-in-out",children:e.jsx("p",{className:"tw-font-regular tw-text-sm tw-font-normal tw-text-primary-pastel",children:"Moviendo..."})}):e.jsx("div",{className:"tw-flex tw-h-fit tw-w-max tw-translate-x-0 tw-flex-col tw-gap-3 tw-rounded-lg tw-bg-bg-card tw-p-l tw-shadow-lg tw-transition-all tw-duration-200 tw-ease-in-out",children:Z.map(({name:se,icon:T,onClick:R,disabled:Y,iconReverse:W},q)=>e.jsxs("button",{onClick:R,className:`
9
- ${T&&W?"tw-flex-row-reverse":""}
8
+ `,style:{top:`${s==null?void 0:s.y}px`,left:`${r}px`,zIndex:1,transform:o?"translateY(0)":"translateY(8px)"},children:t}),document.body)},ra=({status:t,nameRequiredTask:a,statusRequiredTask:s,id:n,statusLateTask:r=null,projectID:i,atrasoId:o,categoria:d})=>{const{setElementPosition:l,position:c}=mt(),u=p.useRef(null),{startWorking:f,completeTask:h,startTask:w}=Le(),m=p.useRef(!1),[g,x]=p.useState(!1),[b,j]=p.useState(null),[v,L]=p.useState("first"),S=a!==""&&s===2,[k,N]=p.useState(null),{atrasoReasons:_,isLoading:P,createAtraso:F,deleteAtraso:y}=Xt({enabled:!0}),[X,B]=p.useState(null);p.useEffect(()=>{r&&L("third")},[]);const I=Z=>{L(Z),Z==="second"&&t===0&&j("Trabajando")},O=()=>{const Z=[];return t===0&&Z.push({name:"Mover a trabajando",icon:"arrow_right",iconReverse:!1,onClick:()=>{I("second")},disabled:!1}),t===1&&Z.push({name:"Mover a completada",icon:"arrow_right",iconReverse:!1,onClick:()=>I("second"),disabled:!1},{name:"Mover por hacer",icon:"arrow_left",iconReverse:!0,onClick:()=>I("fourth"),disabled:!1}),o?Z.push({name:"Eliminar atraso",icon:null,iconReverse:!1,onClick:()=>I("third"),disabled:!1}):Z.push({name:"Agregar atraso",icon:null,iconReverse:!1,onClick:()=>I("third"),disabled:!1}),m!=null&&m.current?e.jsx("div",{className:"tw-hover:bg-primary-light tw-flex tw-h-fit tw-w-max tw-translate-x-0 tw-items-center tw-gap-2 tw-rounded-lg tw-bg-bg-card tw-p-l tw-shadow-lg tw-transition-all tw-duration-200 tw-ease-in-out",children:e.jsx("p",{className:"tw-font-regular tw-text-sm tw-font-normal tw-text-primary-pastel",children:"Moviendo..."})}):e.jsx("div",{className:"tw-flex tw-h-fit tw-w-max tw-translate-x-0 tw-flex-col tw-gap-3 tw-rounded-lg tw-bg-bg-card tw-p-l tw-shadow-lg tw-transition-all tw-duration-200 tw-ease-in-out",children:Z.map(({name:se,icon:T,onClick:R,disabled:Y,iconReverse:U},q)=>e.jsxs("button",{onClick:R,className:`
9
+ ${T&&U?"tw-flex-row-reverse":""}
10
10
  tw-font-regular tw-flex tw-items-center tw-justify-between tw-gap-2 tw-rounded-md tw-border tw-pl-3
11
11
  tw-pr-10 tw-text-left tw-font-sans tw-text-[14px] tw-font-normal tw-text-texts-placeholder
12
12
  tw-transition-colors tw-duration-200 hover:tw-bg-[#e1ebf9] hover:tw-text-primary-dark
@@ -24,7 +24,7 @@
24
24
  hover:tw-bg-[#e1ebf9]
25
25
  hover:tw-text-primary-dark
26
26
  ${b===se?"tw-bg-content tw-border tw-border-primary-regular tw-text-primary-dark":"tw-border-bg-card"}
27
- `,children:se},T)),e.jsx("button",{className:"tw-h-fit tw-w-full tw-rounded-lg tw-bg-texts-enfasis tw-p-1",onClick:()=>{m.current=!0,b==="Trabajando"?f({id:n}):b==="Por hacer"?w({id:n}):h({id:n,idAtraso:o})},children:e.jsx("p",{className:"tw-text-[12px] tw-font-normal tw-text-white",children:"Mover"})})]})},U=()=>{var se;if(P)return e.jsx("div",{children:"Cargando motivos..."});const Z=(_==null?void 0:_.map(T=>{var R;return{id:T==null?void 0:T.id,nombre:T==null?void 0:T.motivo_imj,categoria:(R=T==null?void 0:T.categoria)==null?void 0:R.nombre}}).filter(T=>T.categoria===(d==null?void 0:d.nombre)))||[];return Z.length>0?e.jsxs("div",{className:"tw-flex tw-h-fit tw-w-[288px] tw-translate-x-0 tw-flex-col tw-gap-3 tw-rounded-lg tw-bg-bg-card tw-p-l tw-shadow-lg tw-transition-all tw-duration-200 tw-ease-in-out",children:[!k&&!o?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"tw-mb-[11px] tw-text-left tw-text-[14px] tw-font-semibold tw-text-black-black_regular",children:"Atraso de tarea"}),e.jsx(ys,{isOpen:!0,options:Z,onSelect:(T,R)=>B({id:R,nombre:T})})]}):e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"tw-text-left tw-text-[14px] tw-font-semibold tw-text-black-black_medium",children:"¿Estas seguro?"}),e.jsx("p",{className:"tw-text-left tw-text-[14px] tw-font-semibold tw-text-black-black_medium",children:o?"Estás eliminando el atraso de la tarea seleccionada":`Esta tarea está atrasada debido a ${(se=k==null?void 0:k.nombre)==null?void 0:se.nombre}`})]}),e.jsxs("div",{className:"tw-my-[11px] tw-flex tw-justify-end tw-gap-3",children:[e.jsx("button",{className:`tw-h-fit tw-w-fit tw-rounded-lg tw-border tw-border-blue-blue_medium tw-bg-silver-silver_light tw-px-[13px]
27
+ `,children:se},T)),e.jsx("button",{className:"tw-h-fit tw-w-full tw-rounded-lg tw-bg-texts-enfasis tw-p-1",onClick:()=>{m.current=!0,b==="Trabajando"?f({id:n}):b==="Por hacer"?w({id:n}):h({id:n,idAtraso:o})},children:e.jsx("p",{className:"tw-text-[12px] tw-font-normal tw-text-white",children:"Mover"})})]})},W=()=>{var se;if(P)return e.jsx("div",{children:"Cargando motivos..."});const Z=(_==null?void 0:_.map(T=>{var R;return{id:T==null?void 0:T.id,nombre:T==null?void 0:T.motivo_imj,categoria:(R=T==null?void 0:T.categoria)==null?void 0:R.nombre}}).filter(T=>T.categoria===(d==null?void 0:d.nombre)))||[];return Z.length>0?e.jsxs("div",{className:"tw-flex tw-h-fit tw-w-[288px] tw-translate-x-0 tw-flex-col tw-gap-3 tw-rounded-lg tw-bg-bg-card tw-p-l tw-shadow-lg tw-transition-all tw-duration-200 tw-ease-in-out",children:[!k&&!o?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"tw-mb-[11px] tw-text-left tw-text-[14px] tw-font-semibold tw-text-black-black_regular",children:"Atraso de tarea"}),e.jsx(ys,{isOpen:!0,options:Z,onSelect:(T,R)=>B({id:R,nombre:T})})]}):e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"tw-text-left tw-text-[14px] tw-font-semibold tw-text-black-black_medium",children:"¿Estas seguro?"}),e.jsx("p",{className:"tw-text-left tw-text-[14px] tw-font-semibold tw-text-black-black_medium",children:o?"Estás eliminando el atraso de la tarea seleccionada":`Esta tarea está atrasada debido a ${(se=k==null?void 0:k.nombre)==null?void 0:se.nombre}`})]}),e.jsxs("div",{className:"tw-my-[11px] tw-flex tw-justify-end tw-gap-3",children:[e.jsx("button",{className:`tw-h-fit tw-w-fit tw-rounded-lg tw-border tw-border-blue-blue_medium tw-bg-silver-silver_light tw-px-[13px]
28
28
  tw-py-[8px] tw-text-[14px] tw-font-semibold tw-text-blue-blue_dark tw-shadow-[0px_1px_4px_0px_rgba(37,37,37,0.20)] tw-transition-all tw-duration-200 tw-ease-in-out hover:tw-border-texts-enfasis`,onClick:()=>{k?N(null):x(!1)},children:k?"Regresar":"Cancelar"}),e.jsx("button",{className:`tw-h-fit tw-w-fit tw-rounded-lg tw-border tw-border-texts-enfasis tw-bg-texts-enfasis tw-px-[13px]
29
29
  tw-py-[8px] tw-text-[14px] tw-font-semibold tw-text-blue-blue_light tw-shadow-[0px_1px_4px_0px_rgba(37,37,37,0.20)]`,onClick:()=>{N(X),o&&!k?y(o):k&&ae()},children:"Aceptar"})]})]}):e.jsx("div",{className:"tw-flex tw-h-fit tw-w-[288px] tw-translate-x-0 tw-flex-col tw-gap-3 tw-rounded-lg tw-bg-bg-card tw-p-l tw-shadow-lg tw-transition-all tw-duration-200 tw-ease-in-out",children:"No hay motivos de atraso para ésta tarea"})},K=()=>{const Z=["Por hacer"];return e.jsxs("div",{className:"tw-flex tw-h-fit tw-w-max tw-translate-x-0 tw-flex-col tw-gap-3 tw-rounded-lg tw-bg-bg-card tw-p-l tw-shadow-lg tw-transition-all tw-duration-200 tw-ease-in-out",children:[Z.map((se,T)=>e.jsx("button",{onClick:()=>{j(se)},className:`
30
30
  tw-font-regular tw-rounded-md
@@ -38,7 +38,7 @@
38
38
  hover:tw-bg-[#e1ebf9]
39
39
  hover:tw-text-primary-dark
40
40
  ${b===se?"tw-bg-content tw-border tw-border-primary-regular tw-text-primary-dark":"tw-border-bg-card"}
41
- `,children:se},T)),e.jsx("button",{className:"tw-h-fit tw-w-full tw-rounded-lg tw-bg-texts-enfasis tw-p-1",onClick:()=>{m.current=!0,w({id:n})},children:e.jsx("p",{className:"tw-text-[12px] tw-font-normal tw-text-white",children:"Mover"})})]})},te=()=>{if(v==="first")return O();if(v==="second")return H();if(v==="third")return U();if(v==="fourth")return K()},ae=async()=>{if(X)try{await F({taskId:n,projectID:i,motivo:(X==null?void 0:X.id)??null}),x(!1)}catch(Z){console.error("Error al crear atraso:",Z)}};return e.jsxs(e.Fragment,{children:[(S&&s===2||!a)&&e.jsx("button",{ref:u,onClick:()=>{l(u),x(!0),L("first")},className:"tw-hover:filter-[drop-shadow(0_0_10px_#000000)] tw-m-block tw-flex tw-h-[24px] tw-w-[24px] tw-items-center tw-justify-center tw-rounded-full tw-bg-bg tw-text-sm tw-font-extrabold",children:e.jsx("span",{className:"tw-rotate-90",children:e.jsx(ee.Icons,{icon:"elipsis",size:"xs"})})}),g&&e.jsx(bs,{actionsRef:u,newPosition:c,children:e.jsx("div",{className:`
41
+ `,children:se},T)),e.jsx("button",{className:"tw-h-fit tw-w-full tw-rounded-lg tw-bg-texts-enfasis tw-p-1",onClick:()=>{m.current=!0,w({id:n})},children:e.jsx("p",{className:"tw-text-[12px] tw-font-normal tw-text-white",children:"Mover"})})]})},te=()=>{if(v==="first")return O();if(v==="second")return H();if(v==="third")return W();if(v==="fourth")return K()},ae=async()=>{if(X)try{await F({taskId:n,projectID:i,motivo:(X==null?void 0:X.id)??null}),x(!1)}catch(Z){console.error("Error al crear atraso:",Z)}};return e.jsxs(e.Fragment,{children:[(S&&s===2||!a)&&e.jsx("button",{ref:u,onClick:()=>{l(u),x(!0),L("first")},className:"tw-hover:filter-[drop-shadow(0_0_10px_#000000)] tw-m-block tw-flex tw-h-[24px] tw-w-[24px] tw-items-center tw-justify-center tw-rounded-full tw-bg-bg tw-text-sm tw-font-extrabold",children:e.jsx("span",{className:"tw-rotate-90",children:e.jsx(ee.Icons,{icon:"elipsis",size:"xs"})})}),g&&e.jsx(bs,{actionsRef:u,newPosition:c,children:e.jsx("div",{className:`
42
42
  tw-ease tw-transition-all tw-duration-300
43
43
  ${v==="second"?"tw-translate-x-[-8px]":"tw-translate-x-0"}
44
44
  `,children:te()})})]})},ys=({isOpen:t,onClose:a,options:s,onSelect:n,placeholderDropdown:r="Seleccione una opción",placeholderInput:i="Buscar"})=>{const[o,d]=p.useState(!1),[l,c]=p.useState(""),[u,f]=p.useState(null);if(!t)return null;const h=s.filter(w=>typeof w=="string"?w.toLowerCase().includes(l.toLowerCase()):w.nombre.toLowerCase().includes(l.toLowerCase()));return e.jsxs("div",{className:"tw-group tw-relative tw-w-full tw-min-w-[150px]",children:[e.jsxs("button",{id:"dropdown-button",className:`tw-focus:outline-none tw-focus:ring-2 tw-focus:ring-offset-2 tw-focus:ring-offset-gray-100 tw-focus:ring-blue-500 tw-inline-flex tw-w-full tw-items-center tw-justify-center tw-justify-between
@@ -48,7 +48,7 @@
48
48
  tw-rounded-md tw-border tw-border-silver-silver_dark tw-bg-silver-silver_light tw-p-[8px] tw-shadow-[0px_1px_4px_0px_rgba(37,37,37,0.20)] tw-shadow-lg`,children:[e.jsxs("div",{className:"tw-mb-[18px] tw-flex tw-items-center tw-gap-2",children:[e.jsxs("div",{className:"tw-relative tw-w-full",children:[e.jsx("input",{className:`tw-focus:outline-none tw-block tw-w-full tw-rounded-[4px] tw-border tw-border-silver-silver_dark tw-py-2
49
49
  tw-pl-12 tw-pr-4 tw-text-[10px] tw-font-normal tw-text-black-black_regular placeholder:tw-text-black-black_light `,type:"text",placeholder:i,value:l,onChange:w=>c(w.target.value),autoComplete:"off"}),e.jsx("div",{className:"tw-absolute tw-left-[10px] tw-top-[6px] ",children:e.jsx(ee.Icons,{icon:"search",size:"xs",color:Q.black.black_light,style:{width:"16px",height:"16px"}})})]}),e.jsx(ee.Icons,{icon:"x_outline",size:"xs",strokeWidth:6,color:Q.black.black_medium,style:{width:"16px",height:"16px",cursor:"pointer"},onClick:()=>{d(!1),c(""),a&&o&&a()},className:"tw-mt-[2px]"})]}),h.map((w,m)=>e.jsxs("div",{children:[e.jsx("a",{href:"#",className:`tw-block tw-cursor-pointer tw-rounded-md tw-px-[18px] tw-py-[8px]
50
50
  tw-text-[14px] tw-font-normal tw-transition-all tw-duration-200 tw-ease-in-out
51
- hover:tw-bg-blue-blue_medium hover:tw-text-primary-dark ${w.nombre===u?"tw-bg-blue-blue_medium tw-text-primary-dark":"tw-text-gray-gray_medium"}`,onClick:g=>{g.preventDefault(),n(w,typeof w=="string"?null:w.id,m),f(typeof w=="string"?w:w.nombre),d(!1)},children:typeof w=="string"?w:w.nombre}),e.jsx("div",{style:{width:"100%",height:"1px",backgroundColor:Q.silver.silver_dark}})]},m))]})]})};class js{static toPauseReasons(a){return{id:a.id,motivo_imj:a.motivo_imj}}}const vs=async({tasks_api:t})=>{try{const a=await t.get("/api/motivos");return ge(a.data).map(js.toPauseReasons)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},_s=()=>{const{tasks_api:t}=we();return{pauseReasons:de.useQuery({queryKey:["pause_task_reasons"],queryFn:()=>vs({tasks_api:t}),staleTime:1e3*60*60*24})}};class Ns{static toKanbanTasks(a){var n,r,i,o,d,l,c,u,f,h,w,m;let s=[];return a!=null&&a.responsable&&s.push({id:a.responsable.id,name:a.responsable.nombre,image:(d=(o=(i=(r=(n=a.responsable)==null?void 0:n.userOBP)==null?void 0:r.imagen)==null?void 0:i.formats)==null?void 0:o.thumbnail)==null?void 0:d.url,role:((l=a.responsable.userOBP)==null?void 0:l.role)||{id:0,name:""}}),(c=a==null?void 0:a.equipo)!=null&&c.miembros&&a.equipo.miembros.forEach(g=>{var x,b,j,v,L;s!=null&&s.find(S=>S.id===g.idUser.id)||g.idUser&&s.push({id:g.idUser.id,name:g.idUser.nombre,image:(v=(j=(b=(x=g==null?void 0:g.userOBP)==null?void 0:x.imagen)==null?void 0:b.formats)==null?void 0:j.thumbnail)==null?void 0:v.url,role:((L=g.userOBP)==null?void 0:L.role)||{id:0,name:""}})}),{paused:a==null?void 0:a.pausada,repeats:a==null?void 0:a.repeticiones_realizadas,repeatsToDo:a==null?void 0:a.repeticiones,comments:0,nameProject:(u=a==null?void 0:a.proyecto)==null?void 0:u.nombre,idProject:(f=a==null?void 0:a.proyecto)==null?void 0:f.id,willBePaused:a.es_pausable,difficulty:a.nivel_dificultad,endDate:new Date(a.ffin),id:a.id,priority:a.prioridad??0,status:a.estatus,task:a.texto_corto,users:s,responsible:((h=a==null?void 0:a.responsable)==null?void 0:h.id)??null,statusRequiredTask:((w=a.id_t_requerida)==null?void 0:w.estatus)??null,nameRequiredTask:((m=a.id_t_requerida)==null?void 0:m.texto_corto)??null,medioName:(a==null?void 0:a.nombre_medio)??null,atraso:(a==null?void 0:a.atraso)??null,categoria:(a==null?void 0:a.categoria)??null}}}const gt=async({filters:t,tasks_api:a})=>{try{return(await a.get("/api/listado_tareas?populate=*",{params:t})).data.tareas.map(ge).map(Ns.toKanbanTasks)}catch(s){throw console.log({error:s}),`Error al obtener las tareas: ${s}`}},ht=t=>{var a;if(t!=null&&t.hasNextPage){const s=(a=t==null?void 0:t.data)==null?void 0:a.pages[t.data.pages.length-1];(s==null?void 0:s.length)===30&&(t==null||t.fetchNextPage())}},He=t=>({pagination:{page:t,pageSize:30,withCount:!0}}),oa=()=>{var c;const t=de.useQueryClient(),{tasks_api:a}=we(),{user:s}=_e(),{filters:n}=ke(),[r,i]=p.useState(0),[o,d]=p.useState({owner:{user:s.id,config:((c=n==null?void 0:n.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:s.role},status:"por_hacer"}),l=de.useInfiniteQuery({initialPageParam:1,queryKey:["to_do_tasks",o],queryFn:({pageParam:u})=>gt({filters:{...o,status:"por_hacer",...He(u)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(u,f)=>f.length+1});return p.useEffect(()=>{var u;Object.keys(n).length>0&&d({...n,owner:{user:s.id,config:((u=n==null?void 0:n.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:s.role},status:"por_hacer"})},[n]),p.useEffect(()=>{t.invalidateQueries({queryKey:["to_do_tasks",o]})},[o]),p.useEffect(()=>{(async()=>{const f=await a.get("/api/listado_tareas",{params:{...o,status:"por_hacer",...He(1),tasks_api:a,justCount:!0}});i(f.data.total)})()},[o,l==null?void 0:l.data]),{toDoTasks:l,total:r,filtersToSend:o}},ia=({idTask:t,setOpen:a,paused:s})=>{const n=de.useQueryClient(),{toDoTasks:r,filtersToSend:i}=oa(),[o,d]=p.useState(!1),{control:l,watch:c}=je.useForm(),{tasksProject:u}=We(),{postPauseTask:f,postReanudeTask:h}=Le(),{pauseReasons:w}=_s(),m=async()=>{try{if(a(!1),await f({id:t,motiveId:c("pauseReason")}),await n.invalidateQueries({queryKey:["to_do_tasks",i]}),await n.invalidateQueries({queryKey:["tasksProject"]}),r&&typeof r.refetch=="function"||u&&typeof u.refetch=="function"){const x=await r.refetch(),b=await u.refetch();return[x,b]}}catch(x){console.error("Error al pausar la tarea:",x)}},g=async()=>{try{if(a(!1),await h({id:t}),await n.invalidateQueries({queryKey:["to_do_tasks",i]}),await n.invalidateQueries({queryKey:["tasksProject"]}),r&&typeof r.refetch=="function"||u&&typeof u.refetch=="function"){const x=await r.refetch(),b=await u.refetch();return[x,b]}}catch(x){console.error("Error al reanudar la tarea:",x)}};return e.jsx("div",{className:"tw-flex tw-w-[300px] tw-max-w-[300px] tw-items-center !tw-p-4",children:e.jsxs("div",{className:"tw-flex tw-w-full tw-flex-col tw-gap-s",children:[e.jsx("h6",{className:"tw-font-regular tw-text-texts-subtexttw-truncate tw-text-xl",children:"Pausar tarea:"}),o?e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-s",children:[e.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-600",children:"Esta acción detendrá la campaña en curso."}),e.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):s?e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-s",children:[e.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-600",children:"Esta acción reanudará la campaña en curso."}),e.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):e.jsx(je.Controller,{name:"pauseReason",control:l,rules:{required:!0},render:({field:x})=>{var b;return e.jsxs(me.Select,{value:x.value,onValueChange:j=>x.onChange(j),children:[e.jsx(me.SelectTrigger,{className:"tw-h-[26px] !tw-w-[290px] tw-border-none tw-text-lg tw-shadow-input",children:e.jsx(me.SelectValue,{placeholder:"Selecciona una razón"})}),e.jsx(me.SelectContent,{className:"tw-border-none tw-bg-white tw-shadow-input",children:e.jsx(me.SelectGroup,{children:(b=w==null?void 0:w.data)==null?void 0:b.map(j=>e.jsx(me.SelectItem,{value:j.id,className:"tw-border-none tw-bg-white tw-text-lg",children:j.motivo_imj},j.id))})})]})}}),e.jsxs("div",{className:"tw-mt-5 tw-flex tw-w-full tw-justify-end tw-gap-m",children:[e.jsx("button",{type:"button",onClick:()=>a(!1),className:"tw-font-regular tw-h-[26px] tw-w-[78px] tw-rounded-lg tw-bg-bg-card tw-px-m tw-py-s tw-text-center tw-text-xl tw-text-primary-regular tw-shadow",children:"Cancelar"}),s?e.jsx("button",{type:"button",onClick:()=>g(),className:"tw-font-regular tw-flex tw-h-[26px] tw-w-[80px] tw-items-center tw-justify-center tw-rounded-lg tw-border-2 tw-border-primary-regular tw-bg-primary-regular tw-py-s tw-text-center tw-text-xl tw-text-primary-light",children:"Si, reanudar"}):e.jsx("button",{type:"button",disabled:!c("pauseReason"),onClick:()=>o?m():d(!0),className:"tw-font-regular tw-flex tw-h-[26px] tw-w-[80px] tw-items-center tw-justify-center tw-rounded-lg tw-border-2 tw-border-primary-regular tw-bg-primary-regular tw-py-s tw-text-center tw-text-xl tw-text-primary-light",children:"Aceptar"})]})]})})};function la({trigger:t,children:a,open:s,setOpen:n}){return e.jsxs(me.DropdownMenu,{open:s,onOpenChange:n,children:[e.jsx(me.DropdownMenuTrigger,{children:t}),e.jsx(me.DropdownMenuContent,{align:"start",className:"tw-rounded-lg tw-border-none tw-bg-white tw-p-4",children:a})]})}const Ts=({id:t,task:a,endDate:s,users:n,willBePaused:r,nameProject:i,comments:o,priority:d,difficulty:l,responsible:c,nameRequiredTask:u,statusRequiredTask:f,status:h,repeatsToDo:w,repeats:m,medioName:g,paused:x,idProject:b,atraso:j,categoria:v})=>{var ae,Z,se;const[L,S]=p.useState(!1),[k,N]=p.useState(!1),{reasignResponsible:_,updateUnitys:P}=Le(),{getOBPUrlApi:F}=we(),[y,X]=p.useState(m??0),B=!!(w&&m===w),I=!w||w===1,O=h===0,{user:H}=_e(),U=()=>e.jsxs("div",{className:"tw-relative tw-flex tw-h-fit tw-w-full tw-items-center tw-justify-between",children:[e.jsxs("div",{className:"tw-flex tw-w-[calc(100%-32px)] tw-flex-row tw-items-start tw-gap-[8px]",children:[h<2&&(B||I||O)&&e.jsx(Yt,{id:t,nameRequiredTask:u??"",statusRequiredTask:f??0,status:h,idAtraso:j==null?void 0:j.atrasoId}),e.jsx("p",{className:"tw-w-full tw-overflow-hidden tw-text-ellipsis tw-text-nowrap tw-text-[1.6rem] tw-font-medium tw-text-neutral-900",onClick:()=>S(!0),children:a})]}),(B||I||O)&&h!==2&&e.jsx(ra,{id:t,nameRequiredTask:u,status:h,statusRequiredTask:f,projectID:b,atrasoId:j==null?void 0:j.atrasoId,categoria:v})]}),K={0:{title:"Muy fácil",color:Q.primary.regular},1:{title:"Fácil",color:Q.success.regular},2:{title:"Media",color:Q.warning.regular},3:{title:"Difícil",color:Q.danger.regular},4:{title:"Muy difícil",color:Q.danger.dark}},te=T=>{X(R=>T==="minus"?Math.max(0,R-1):Math.min(w,R+1))};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"tw-border-cards hover:tw-border-active tw-relative tw-h-fit tw-max-w-[350px] tw-cursor-pointer tw-rounded-lg tw-border tw-border-transparent tw-bg-white tw-p-[12px_12px] tw-transition-all tw-duration-300 hover:tw-border-blue-500 hover:tw-bg-primary-light",children:[e.jsx(U,{}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-[4px] tw-py-2",children:[e.jsx("p",{className:"tw-font-regular tw-max-w-[250px] tw-truncate tw-text-xl tw-text-texts-subtext",children:i}),g&&e.jsx("p",{className:"tw-text-xl",children:g})]}),e.jsxs("div",{className:"tw-relative tw-flex tw-h-fit tw-w-full tw-items-center tw-justify-between tw-pb-1 tw-pt-5",children:[e.jsxs("div",{className:"tw-relative tw-flex tw-items-center",children:[e.jsx(aa,{responsible:c,role:H==null?void 0:H.role,status:h,users:n.filter(T=>c?T.id===c:!0).map(T=>xt(T,F())),onClick:async(T,R)=>{await _({idNewResponsible:T,id:t,typeOfSelect:R})}}),r&&e.jsx(la,{open:k,setOpen:N,trigger:e.jsx("button",{type:"button",onClick:()=>N(!0),className:"tw-font-regular tw-flex !tw-h-[32px] !tw-w-[32px] tw-items-center tw-justify-center tw-gap-2 tw-text-sm tw-text-gray-400",children:e.jsx(ee.Icons,{icon:x?"play":"pause",size:"xs",strokeWidth:2})}),children:e.jsx(ia,{idTask:t,setOpen:N,paused:x})})]}),e.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-m",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[j&&e.jsx(ee.TooltipV2,{content:`Tarea atrasada debido a: ${j==null?void 0:j.motivo}`,children:e.jsx(ee.Icons,{icon:"exclamation_triangle",size:"xs",color:"#C62E1F",strokeWidth:4})}),e.jsx(ee.Tooltip,{dispatch:e.jsx(ee.Icons,{icon:"difficulty",size:"xs",color:(ae=K[l??0])==null?void 0:ae.color,strokeWidth:4,style:{border:"1.5px"}}),children:e.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-p-5 tw-text-sm",style:{color:(Z=K[l??0])==null?void 0:Z.color},children:`Dificultad ${(se=K[l??0])==null?void 0:se.title}`})}),e.jsx(sa,{priority:d,id:t}),!w||w&&h===0&&e.jsxs(e.Fragment,{children:[e.jsx(ee.Icons,{icon:"calendar",size:"xs",strokeWidth:3,color:Q.texts.subtext}),e.jsx("p",{className:"tw-font-regular tw-text-sm tw-text-texts-subtext",children:`${s.getDate()} ${ft(s.getMonth()).slice(0,3)}`})]})]}),h===1&&w&&w>0&&e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-m",children:[e.jsx("p",{className:"tw-pr-[5px] tw-text-[10px] tw-text-texts-placeholder",children:"unidades"}),e.jsx("button",{onClick:()=>te("minus"),className:"tw-mr-[4px] tw-flex tw-w-[0] tw-items-center tw-justify-center tw-rounded-full tw-bg-gray-200 hover:tw-bg-gray-400",children:e.jsx(ee.Icons,{icon:"circle_minus",size:"xs",strokeWidth:3,color:Q.texts.placeholder})}),e.jsx("p",{className:"tw-text-[10px] tw-text-texts-placeholder",children:`${y??0} / ${w??0}`}),e.jsx("button",{onClick:()=>te("plus"),className:"tw-ml-[4px] tw-flex tw-w-[0] tw-items-center tw-justify-center tw-rounded-full tw-bg-gray-200 hover:tw-bg-gray-400",children:e.jsx(ee.Icons,{icon:"circle_plus",size:"xs",strokeWidth:3,color:Q.texts.placeholder})}),e.jsx("button",{className:"tw-ml-[4px] tw-rounded-md tw-bg-primary-medium tw-px-m tw-py-s tw-text-xs tw-text-primary-regular",onClick:()=>{P({repeats:y,id:t})},children:"Agregar"})]})]})]}),o>0&&e.jsx("div",{className:"tw-mt-4 tw-border-t tw-border-gray-200 tw-pt-2",children:e.jsxs("button",{onClick:()=>S(!0),className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx(ee.Icons,{icon:"comment",size:"xs",strokeWidth:4}),e.jsx("span",{className:"tw-font-regular tw-text-xl tw-text-gray-400",children:o})]})})]}),e.jsx(na,{taskId:t,isOpen:L,setIsOpen:S})]})},tt=({title:t,tasks:a,loadNextPage:s,isFetching:n,total:r})=>{const i=p.useRef(null),o=p.useRef(null),d=p.useRef(!1);p.useEffect(()=>{var u;i!=null&&i.current&&(o!=null&&o.current)&&(o.current.style.minHeight=`${((u=i==null?void 0:i.current)==null?void 0:u.clientHeight)-300}px`)},[i==null?void 0:i.current]);const l=u=>{if(d.current)return;const{scrollTop:f,clientHeight:h,scrollHeight:w}=u==null?void 0:u.target,m=f/(w-h)*100;m<=95||m>=95&&(d.current=!0,s&&s(),setTimeout(()=>{d.current=!1},200))},c={"Por hacer":"tw-border-texts-placeholder",Trabajando:"tw-border-primary-regular",Completadas:"tw-border-success-regular"};return e.jsxs("div",{ref:i,className:`tw-relative tw-flex tw-h-full tw-min-h-[100%] tw-w-fit tw-min-w-[400px] tw-max-w-[400px] tw-flex-col tw-overflow-hidden tw-rounded-lg tw-border-t-4 tw-bg-gray-100 tw-p-[16px] ${c[t]}`,children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between",children:[e.jsx("div",{className:"tw-flex tw-items-center tw-gap-[8px]",children:e.jsx("p",{className:"tw-text-2xl",children:t})}),e.jsx("div",{className:"tw-flex tw-items-center tw-gap-[8px]",children:e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-[4px]",children:[e.jsx(ee.Icons,{icon:"group_files",size:"xs",strokeWidth:5,color:Q.texts.placeholder}),e.jsx("p",{className:"tw-text-2xl tw-text-texts-placeholder",children:r??0})]})})]}),e.jsxs("div",{ref:o,className:"tw-flex tw-h-full tw-max-w-[350px] tw-flex-col tw-gap-[12px] tw-overflow-y-auto tw-pb-[200px] tw-pt-4 tw-scrollbar-none hover:tw-border-gray-300 hover:tw-bg-gray-100 focus:tw-border-gray-400 focus:tw-bg-gray-200 focus:tw-outline-none",onScroll:l,children:[a==null?void 0:a.map(u=>e.jsx(Ts,{...u},u.id)),n?e.jsx(ls,{}):e.jsx("p",{className:"tw-text-center tw-text-2xl tw-text-gray-500",children:"No hay más tareas por mostrar..."})]})]})},Dt=[{label:"Tipo de dependencia",type:"select",id:"dependency",options:[{id:"con",name:"Con dependencia"},{id:"sin",name:"Sin dependencia"},{id:"ambas",name:"Ambas"}]},{label:"Por responsable",type:"select",id:"owner.config",options:[{id:"yo",name:"Mis tareas"},{id:"yo_y_mis_equipos",name:"Tareas mías y de mis equipos"},{id:"mis_equipos",name:"Tareas de mis equipos"}]},{label:"Por dificultad",type:"select",id:"difficulty",options:[{id:1,name:"Muy facil"},{id:2,name:"Facil"},{id:3,name:"Media"},{id:4,name:"Dificil"},{id:5,name:"Muy dificil"}]}],Cs=()=>{const{user:t}=_e(),[a,s]=p.useState([...Dt]),n=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return p.useEffect(()=>{const r=[...Dt];n.forEach(d=>{if(d.roles.includes(t.role)){const l=r.find(c=>c.id===d.id);l&&(l.options.some(u=>u.id==="todas")||(l.options=[{id:"todas",name:"Todas las tareas"},...l.options]))}});const i=JSON.stringify(a),o=JSON.stringify(r);i!==o&&s(r)},[t.role]),{filters:a}},Es=()=>{var i;const{defineFields:t}=ke(),{tasksProject:a}=We(),{filters:s}=Cs();p.useEffect(()=>{(async()=>{let d=[...s];t(d)})()},[]);let n=(i=a==null?void 0:a.data)==null?void 0:i.filter(o=>{var d;return((d=o==null?void 0:o.tasks)==null?void 0:d.length)===0}).reduce((o,d)=>(o[d.status]=o[d.status]||[],o[d.status].push(d),o),{});const r=["Por hacer","Trabajando","Completadas"];return e.jsx("div",{className:"tw-relative tw-flex tw-h-full tw-min-h-[100%] tw-w-full tw-gap-4",children:r.map((o,d)=>{var l;return e.jsx(tt,{total:((l=n==null?void 0:n[d])==null?void 0:l.length)??0,title:o,tasks:(n==null?void 0:n[d])??[],isFetching:a==null?void 0:a.isFetching,isLoadingData:a==null?void 0:a.isLoading})})})},Ss=()=>{var n,r;const{toDoTasks:t,total:a}=oa(),s=[...((r=(n=t==null?void 0:t.data)==null?void 0:n.pages)==null?void 0:r.flat())??[]];return e.jsx(tt,{total:a,title:"Por hacer",tasks:s,loadNextPage:()=>ht(t),isFetching:t==null?void 0:t.isFetching,isLoadingData:t==null?void 0:t.isLoading})},ks=()=>{var c;const t=de.useQueryClient(),{tasks_api:a}=we(),{user:s}=_e(),{filters:n}=ke(),[r,i]=p.useState(0),[o,d]=p.useState({owner:{user:s.id,config:((c=n==null?void 0:n.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:s.role},status:"trabajando"}),l=de.useInfiniteQuery({initialPageParam:1,queryKey:["working_tasks",o],queryFn:({pageParam:u})=>gt({filters:{...o,status:"trabajando",...He(u)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(u,f)=>f.length+1});return p.useEffect(()=>{var u;Object.keys(n).length>0&&d({...n,owner:{user:s.id,config:((u=n==null?void 0:n.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:s.role},status:"trabajando"})},[n]),p.useEffect(()=>{t.invalidateQueries({queryKey:["working_tasks",o]})},[o]),p.useEffect(()=>{(async()=>{const f=await a.get("/api/listado_tareas",{params:{...o,status:"trabajando",...He(1),tasks_api:a,justCount:!0}});i(f.data.total)})()},[o,l==null?void 0:l.data]),{workingTasks:l,total:r}},Is=()=>{var n,r;const{workingTasks:t,total:a}=ks(),s=[...((r=(n=t==null?void 0:t.data)==null?void 0:n.pages)==null?void 0:r.flat())??[]];return e.jsx(tt,{total:a,title:"Trabajando",tasks:s,loadNextPage:()=>ht(t),isFetching:t==null?void 0:t.isFetching})},Ds=()=>{var c;const t=de.useQueryClient(),{user:a}=_e(),{tasks_api:s}=we(),{filters:n}=ke(),[r,i]=p.useState(0),[o,d]=p.useState({owner:{user:a.id,config:((c=n==null?void 0:n.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:a.role},status:"completadas"}),l=de.useInfiniteQuery({initialPageParam:1,queryKey:["done_tasks",o],queryFn:({pageParam:u})=>gt({filters:{...o,status:"completadas",...He(u)},tasks_api:s}),staleTime:1e3*60*60*24,getNextPageParam:(u,f)=>f.length+1});return p.useEffect(()=>{var u;Object.keys(n).length>0&&d({...n,owner:{user:a.id,config:((u=n==null?void 0:n.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:a.role},status:"completadas"})},[n]),p.useEffect(()=>{t.invalidateQueries({queryKey:["done_tasks",o]})},[o]),p.useEffect(()=>{(async()=>{const f=await s.get("/api/listado_tareas",{params:{...o,status:"completadas",...He(1),justCount:!0,tasks_api:s}});i(f.data.total)})()},[l==null?void 0:l.data,o]),{doneTasks:l,total:r}},Fs=()=>{var n,r;const{doneTasks:t,total:a}=Ds(),s=[...((r=(n=t==null?void 0:t.data)==null?void 0:n.pages)==null?void 0:r.flat())??[]];return e.jsx(tt,{title:"Completadas",tasks:s,loadNextPage:()=>ht(t),isFetching:t==null?void 0:t.isFetching,total:a})};class Je{static toSalesmanUsers(a){return{id:a.id,name:a.nombre}}}const Ps=()=>{const{tasks_api:t}=we(),{filters:a}=ke(),{user:s}=_e();return{getSalesmanAndProjects:async()=>{var l;const[o,d]=await Promise.all([t.get("/api/obtener-comerciales"),t.get("/api/listado_tareas",{params:{...a,owner:{user:s==null?void 0:s.id,config:((l=a==null?void 0:a.owner)==null?void 0:l.config)??"yo_y_mis_equipos",role:s.role},justProjects:!0}})]);return{salesmanUsers:o.data.map(Je.toSalesmanUsers),projects:d.data.map(Je.toSalesmanUsers)}},getProjects:async()=>{var d;return(await t.get("/api/listado_tareas",{params:{...a,owner:{user:s.id,config:((d=a==null?void 0:a.owner)==null?void 0:d.config)??"yo_y_mis_equipos",role:s.role},justProjects:!0}})).data.map(Je.toSalesmanUsers)},getSalesmans:async()=>(await t.get("/api/obtener-comerciales")).data.map(Je.toSalesmanUsers)}},Ms=()=>{const{user:t}=_e(),[a,s]=p.useState([...Et]),n=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return p.useEffect(()=>{const r=[...Et];n.forEach(d=>{if(d.roles.includes(t.role)){const l=r.find(c=>c.id===d.id);l&&(l.options.some(u=>u.id==="todas")||(l.options=[{id:"todas",name:"Todas las tareas"},...l.options]))}});const i=JSON.stringify(a),o=JSON.stringify(r);i!==o&&s(r)},[t.role]),{filters:a}},As=()=>{const{defineFields:t}=ke(),{getSalesmanAndProjects:a}=Ps(),{filters:s}=Ms();return p.useEffect(()=>{(async()=>{let r=[...s],{salesmanUsers:i,projects:o}=await a();t(r.map(d=>(d.id==="project.id"&&(d.options=o),d.id==="salesman.id"&&(d.options=i),d)))})()},[]),e.jsxs("div",{className:"tw-relative tw-flex tw-h-full tw-min-h-[100%] tw-w-full tw-gap-4",children:[e.jsx(Ss,{}),e.jsx(Is,{}),e.jsx(Fs,{})]})},ca=p.createContext({}),Os=({children:t})=>{const[a,s]=p.useState([]),n=r=>{s(i=>i.includes(r)?i.filter(o=>o!==r):[...i,r])};return e.jsx(ca.Provider,{value:{selectedTasks:a,selectTask:n},children:t})},qs=()=>p.useContext(ca),da=({startDate:t,endDate:a})=>e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"tw-flex tw-h-[30px] tw-w-fit tw-items-center tw-justify-center tw-gap-s tw-rounded-md tw-bg-gray-100 tw-px-xxxl",children:[e.jsx(ee.Icons,{icon:"calendar",size:"xs",strokeWidth:4,color:Q.texts.subtext}),e.jsxs("p",{className:"tw-text-lg",children:[" ",It(t)]})]}),e.jsx(ee.Icons,{icon:"arrow_right",size:"xs",strokeWidth:4,color:Q.texts.DEFAULT}),e.jsxs("div",{className:"tw-flex tw-h-[30px] tw-w-fit tw-items-center tw-justify-center tw-gap-s tw-rounded-md tw-bg-gray-100 tw-px-xxxl",children:[e.jsx(ee.Icons,{icon:"calendar",size:"xs",strokeWidth:4,color:Q.texts.subtext}),e.jsxs("p",{className:"tw-text-lg",children:[" ",It(a)]})]})]}),ua=({id:t,priority:a,difficulty:s,endDate:n,atraso:r})=>{var c,u,f;const[i,o]=p.useState({priority:!1,difficulty:!1,atraso:!1}),d={0:{title:"N/A",color:Q.success.regular,bg:"tw-bg-texts-placeholder tw-border-texts-placeholder",border:"tw-border-success-medium",borderHover:"hover:tw-border-success-dark"},1:{title:"Baja",color:Q.success.regular,bg:"tw-bg-success-medium tw-border-success-pastel",border:"tw-border-success-pastel",borderHover:"hover:tw-border-success-dark"},2:{title:"Media",color:Q.warning.regular,bg:"tw-bg-warning-light tw-border-warning-regular",border:"tw-border-warning-regular",borderHover:"hover:tw-border-warning-dark"},3:{title:"Alta",color:Q.danger.regular,bg:"tw-bg-danger-light tw-border-danger-regular",border:"tw-border-danger-regular",borderHover:"hover:tw-border-danger-dark"}},l={1:{title:"Muy fácil",color:Q.success.dark,bg:"tw-bg-success-medium tw-border-success-regular",border:"tw-border-success-medium",borderHover:"hover:tw-border-success-dark"},2:{title:"Fácil",color:Q.success.regular,bg:"tw-bg-success-medium tw-border-success-pastel",border:"tw-border-success-medium",borderHover:"hover:tw-border-success-dark"},3:{title:"Media",color:Q.warning.regular,bg:"tw-bg-warning-light tw-border-warning-regular",border:"tw-border-warning-medium",borderHover:"hover:tw-border-warning-dark"},4:{title:"Difícil",color:Q.danger.regular,bg:"tw-bg-danger-light tw-border-danger-regular",border:"tw-border-danger-medium",borderHover:"hover:tw-border-danger-dark"},5:{title:"Muy difícil",color:Q.danger.dark,bg:"tw-bg-danger-light tw-border-danger-regular",border:"tw-border-danger-medium",borderHover:"hover:tw-border-danger-dark"}};return e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"tw-flex tw-h-[30px] tw-w-[30px] tw-items-center tw-justify-center tw-gap-s tw-rounded-[8px] tw-bg-gray-100 hover:tw-bg-gray-200",children:e.jsx(ee.Tooltip,{dispatch:e.jsx(ee.Icons,{icon:"align_center",size:"xs",strokeWidth:4,color:Q.texts.subtext}),children:e.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-px-4 tw-py-2 tw-text-2xl",style:{color:"gray"},children:"Espéralo muy pronto..."})})}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx("div",{onMouseEnter:()=>o({...i,difficulty:!0}),onMouseLeave:()=>o({...i,difficulty:!1}),className:`tw-gap-s ${(c=l[s===0?1:s])==null?void 0:c.border}
51
+ hover:tw-bg-blue-blue_medium hover:tw-text-primary-dark ${w.nombre===u?"tw-bg-blue-blue_medium tw-text-primary-dark":"tw-text-gray-gray_medium"}`,onClick:g=>{g.preventDefault(),n(w,typeof w=="string"?null:w.id,m),f(typeof w=="string"?w:w.nombre),d(!1)},children:typeof w=="string"?w:w.nombre}),e.jsx("div",{style:{width:"100%",height:"1px",backgroundColor:Q.silver.silver_dark}})]},m))]})]})};class js{static toPauseReasons(a){return{id:a.id,motivo_imj:a.motivo_imj}}}const vs=async({tasks_api:t})=>{try{const a=await t.get("/api/motivos");return ge(a.data).map(js.toPauseReasons)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},_s=()=>{const{tasks_api:t}=we();return{pauseReasons:de.useQuery({queryKey:["pause_task_reasons"],queryFn:()=>vs({tasks_api:t}),staleTime:1e3*60*60*24})}};class Ns{static toKanbanTasks(a){var n,r,i,o,d,l,c,u,f,h,w,m;let s=[];return a!=null&&a.responsable&&s.push({id:a.responsable.id,name:a.responsable.nombre,image:(d=(o=(i=(r=(n=a.responsable)==null?void 0:n.userOBP)==null?void 0:r.imagen)==null?void 0:i.formats)==null?void 0:o.thumbnail)==null?void 0:d.url,role:((l=a.responsable.userOBP)==null?void 0:l.role)||{id:0,name:""}}),(c=a==null?void 0:a.equipo)!=null&&c.miembros&&a.equipo.miembros.forEach(g=>{var x,b,j,v,L;s!=null&&s.find(S=>S.id===g.idUser.id)||g.idUser&&s.push({id:g.idUser.id,name:g.idUser.nombre,image:(v=(j=(b=(x=g==null?void 0:g.userOBP)==null?void 0:x.imagen)==null?void 0:b.formats)==null?void 0:j.thumbnail)==null?void 0:v.url,role:((L=g.userOBP)==null?void 0:L.role)||{id:0,name:""}})}),{paused:a==null?void 0:a.pausada,repeats:a==null?void 0:a.repeticiones_realizadas,repeatsToDo:a==null?void 0:a.repeticiones,comments:0,nameProject:(u=a==null?void 0:a.proyecto)==null?void 0:u.nombre,idProject:(f=a==null?void 0:a.proyecto)==null?void 0:f.id,willBePaused:a.es_pausable,difficulty:a.nivel_dificultad,endDate:new Date(a.ffin),id:a.id,priority:a.prioridad??0,status:a.estatus,task:a.texto_corto,users:s,responsible:((h=a==null?void 0:a.responsable)==null?void 0:h.id)??null,statusRequiredTask:((w=a.id_t_requerida)==null?void 0:w.estatus)??null,nameRequiredTask:((m=a.id_t_requerida)==null?void 0:m.texto_corto)??null,medioName:(a==null?void 0:a.nombre_medio)??null,atraso:(a==null?void 0:a.atraso)??null,categoria:(a==null?void 0:a.categoria)??null}}}const gt=async({filters:t,tasks_api:a})=>{try{return(await a.get("/api/listado_tareas?populate=*",{params:t})).data.tareas.map(ge).map(Ns.toKanbanTasks)}catch(s){throw console.log({error:s}),`Error al obtener las tareas: ${s}`}},ht=t=>{var a;if(t!=null&&t.hasNextPage){const s=(a=t==null?void 0:t.data)==null?void 0:a.pages[t.data.pages.length-1];(s==null?void 0:s.length)===30&&(t==null||t.fetchNextPage())}},He=t=>({pagination:{page:t,pageSize:30,withCount:!0}}),oa=()=>{var c;const t=de.useQueryClient(),{tasks_api:a}=we(),{user:s}=_e(),{filters:n}=ke(),[r,i]=p.useState(0),[o,d]=p.useState({owner:{user:s.id,config:((c=n==null?void 0:n.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:s.role},status:"por_hacer"}),l=de.useInfiniteQuery({initialPageParam:1,queryKey:["to_do_tasks",o],queryFn:({pageParam:u})=>gt({filters:{...o,status:"por_hacer",...He(u)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(u,f)=>f.length+1});return p.useEffect(()=>{var u;Object.keys(n).length>0&&d({...n,owner:{user:s.id,config:((u=n==null?void 0:n.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:s.role},status:"por_hacer"})},[n]),p.useEffect(()=>{t.invalidateQueries({queryKey:["to_do_tasks",o]})},[o]),p.useEffect(()=>{(async()=>{const f=await a.get("/api/listado_tareas",{params:{...o,status:"por_hacer",...He(1),tasks_api:a,justCount:!0}});i(f.data.total)})()},[o,l==null?void 0:l.data]),{toDoTasks:l,total:r,filtersToSend:o}},ia=({idTask:t,setOpen:a,paused:s})=>{const n=de.useQueryClient(),{toDoTasks:r,filtersToSend:i}=oa(),[o,d]=p.useState(!1),{control:l,watch:c}=je.useForm(),{tasksProject:u}=We(),{postPauseTask:f,postReanudeTask:h}=Le(),{pauseReasons:w}=_s(),m=async()=>{try{if(a(!1),await f({id:t,motiveId:c("pauseReason")}),await n.invalidateQueries({queryKey:["to_do_tasks",i]}),await n.invalidateQueries({queryKey:["tasksProject"]}),r&&typeof r.refetch=="function"||u&&typeof u.refetch=="function"){const x=await r.refetch(),b=await u.refetch();return[x,b]}}catch(x){console.error("Error al pausar la tarea:",x)}},g=async()=>{try{if(a(!1),await h({id:t}),await n.invalidateQueries({queryKey:["to_do_tasks",i]}),await n.invalidateQueries({queryKey:["tasksProject"]}),r&&typeof r.refetch=="function"||u&&typeof u.refetch=="function"){const x=await r.refetch(),b=await u.refetch();return[x,b]}}catch(x){console.error("Error al reanudar la tarea:",x)}};return e.jsx("div",{className:"tw-flex tw-w-[300px] tw-max-w-[300px] tw-items-center !tw-p-4",children:e.jsxs("div",{className:"tw-flex tw-w-full tw-flex-col tw-gap-s",children:[e.jsx("h6",{className:"tw-font-regular tw-text-texts-subtexttw-truncate tw-text-xl",children:"Pausar tarea:"}),o?e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-s",children:[e.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-600",children:"Esta acción detendrá la campaña en curso."}),e.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):s?e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-s",children:[e.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-600",children:"Esta acción reanudará la campaña en curso."}),e.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):e.jsx(je.Controller,{name:"pauseReason",control:l,rules:{required:!0},render:({field:x})=>{var b;return e.jsxs(me.Select,{value:x.value,onValueChange:j=>x.onChange(j),children:[e.jsx(me.SelectTrigger,{className:"tw-h-[26px] !tw-w-[290px] tw-border-none tw-text-lg tw-shadow-input",children:e.jsx(me.SelectValue,{placeholder:"Selecciona una razón"})}),e.jsx(me.SelectContent,{className:"tw-border-none tw-bg-white tw-shadow-input",children:e.jsx(me.SelectGroup,{children:(b=w==null?void 0:w.data)==null?void 0:b.map(j=>e.jsx(me.SelectItem,{value:j.id,className:"tw-border-none tw-bg-white tw-text-lg",children:j.motivo_imj},j.id))})})]})}}),e.jsxs("div",{className:"tw-mt-5 tw-flex tw-w-full tw-justify-end tw-gap-m",children:[e.jsx("button",{type:"button",onClick:()=>a(!1),className:"tw-font-regular tw-h-[26px] tw-w-[78px] tw-rounded-lg tw-bg-bg-card tw-px-m tw-py-s tw-text-center tw-text-xl tw-text-primary-regular tw-shadow",children:"Cancelar"}),s?e.jsx("button",{type:"button",onClick:()=>g(),className:"tw-font-regular tw-flex tw-h-[26px] tw-w-[80px] tw-items-center tw-justify-center tw-rounded-lg tw-border-2 tw-border-primary-regular tw-bg-primary-regular tw-py-s tw-text-center tw-text-xl tw-text-primary-light",children:"Si, reanudar"}):e.jsx("button",{type:"button",disabled:!c("pauseReason"),onClick:()=>o?m():d(!0),className:"tw-font-regular tw-flex tw-h-[26px] tw-w-[80px] tw-items-center tw-justify-center tw-rounded-lg tw-border-2 tw-border-primary-regular tw-bg-primary-regular tw-py-s tw-text-center tw-text-xl tw-text-primary-light",children:"Aceptar"})]})]})})};function la({trigger:t,children:a,open:s,setOpen:n}){return e.jsxs(me.DropdownMenu,{open:s,onOpenChange:n,children:[e.jsx(me.DropdownMenuTrigger,{children:t}),e.jsx(me.DropdownMenuContent,{align:"start",className:"tw-rounded-lg tw-border-none tw-bg-white tw-p-4",children:a})]})}const Ts=({id:t,task:a,endDate:s,users:n,willBePaused:r,nameProject:i,comments:o,priority:d,difficulty:l,responsible:c,nameRequiredTask:u,statusRequiredTask:f,status:h,repeatsToDo:w,repeats:m,medioName:g,paused:x,idProject:b,atraso:j,categoria:v})=>{var ae,Z,se;const[L,S]=p.useState(!1),[k,N]=p.useState(!1),{reasignResponsible:_,updateUnitys:P}=Le(),{getOBPUrlApi:F}=we(),[y,X]=p.useState(m??0),B=!!(w&&m===w),I=!w||w===1,O=h===0,{user:H}=_e(),W=()=>e.jsxs("div",{className:"tw-relative tw-flex tw-h-fit tw-w-full tw-items-center tw-justify-between",children:[e.jsxs("div",{className:"tw-flex tw-w-[calc(100%-32px)] tw-flex-row tw-items-start tw-gap-[8px]",children:[h<2&&(B||I||O)&&e.jsx(Yt,{id:t,nameRequiredTask:u??"",statusRequiredTask:f??0,status:h,idAtraso:j==null?void 0:j.atrasoId}),e.jsx("p",{className:"tw-w-full tw-overflow-hidden tw-text-ellipsis tw-text-nowrap tw-text-[1.6rem] tw-font-medium tw-text-neutral-900",onClick:()=>S(!0),children:a})]}),(B||I||O)&&h!==2&&e.jsx(ra,{id:t,nameRequiredTask:u,status:h,statusRequiredTask:f,projectID:b,atrasoId:j==null?void 0:j.atrasoId,categoria:v})]}),K={0:{title:"Muy fácil",color:Q.primary.regular},1:{title:"Fácil",color:Q.success.regular},2:{title:"Media",color:Q.warning.regular},3:{title:"Difícil",color:Q.danger.regular},4:{title:"Muy difícil",color:Q.danger.dark}},te=T=>{X(R=>T==="minus"?Math.max(0,R-1):Math.min(w,R+1))};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"tw-border-cards hover:tw-border-active tw-relative tw-h-fit tw-max-w-[350px] tw-cursor-pointer tw-rounded-lg tw-border tw-border-transparent tw-bg-white tw-p-[12px_12px] tw-transition-all tw-duration-300 hover:tw-border-blue-500 hover:tw-bg-primary-light",children:[e.jsx(W,{}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-[4px] tw-py-2",children:[e.jsx("p",{className:"tw-font-regular tw-max-w-[250px] tw-truncate tw-text-xl tw-text-texts-subtext",children:i}),g&&e.jsx("p",{className:"tw-text-xl",children:g})]}),e.jsxs("div",{className:"tw-relative tw-flex tw-h-fit tw-w-full tw-items-center tw-justify-between tw-pb-1 tw-pt-5",children:[e.jsxs("div",{className:"tw-relative tw-flex tw-items-center",children:[e.jsx(aa,{responsible:c,role:H==null?void 0:H.role,status:h,users:n.filter(T=>c?T.id===c:!0).map(T=>xt(T,F())),onClick:async(T,R)=>{await _({idNewResponsible:T,id:t,typeOfSelect:R})}}),r&&e.jsx(la,{open:k,setOpen:N,trigger:e.jsx("button",{type:"button",onClick:()=>N(!0),className:"tw-font-regular tw-flex !tw-h-[32px] !tw-w-[32px] tw-items-center tw-justify-center tw-gap-2 tw-text-sm tw-text-gray-400",children:e.jsx(ee.Icons,{icon:x?"play":"pause",size:"xs",strokeWidth:2})}),children:e.jsx(ia,{idTask:t,setOpen:N,paused:x})})]}),e.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-m",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[j&&e.jsx(ee.TooltipV2,{content:`Tarea atrasada debido a: ${j==null?void 0:j.motivo}`,children:e.jsx(ee.Icons,{icon:"exclamation_triangle",size:"xs",color:"#C62E1F",strokeWidth:4})}),e.jsx(ee.Tooltip,{dispatch:e.jsx(ee.Icons,{icon:"difficulty",size:"xs",color:(ae=K[l??0])==null?void 0:ae.color,strokeWidth:4,style:{border:"1.5px"}}),children:e.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-p-5 tw-text-sm",style:{color:(Z=K[l??0])==null?void 0:Z.color},children:`Dificultad ${(se=K[l??0])==null?void 0:se.title}`})}),e.jsx(sa,{priority:d,id:t}),!w||w&&h===0&&e.jsxs(e.Fragment,{children:[e.jsx(ee.Icons,{icon:"calendar",size:"xs",strokeWidth:3,color:Q.texts.subtext}),e.jsx("p",{className:"tw-font-regular tw-text-sm tw-text-texts-subtext",children:`${s.getDate()} ${ft(s.getMonth()).slice(0,3)}`})]})]}),h===1&&w&&w>0&&e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-m",children:[e.jsx("p",{className:"tw-pr-[5px] tw-text-[10px] tw-text-texts-placeholder",children:"unidades"}),e.jsx("button",{onClick:()=>te("minus"),className:"tw-mr-[4px] tw-flex tw-w-[0] tw-items-center tw-justify-center tw-rounded-full tw-bg-gray-200 hover:tw-bg-gray-400",children:e.jsx(ee.Icons,{icon:"circle_minus",size:"xs",strokeWidth:3,color:Q.texts.placeholder})}),e.jsx("p",{className:"tw-text-[10px] tw-text-texts-placeholder",children:`${y??0} / ${w??0}`}),e.jsx("button",{onClick:()=>te("plus"),className:"tw-ml-[4px] tw-flex tw-w-[0] tw-items-center tw-justify-center tw-rounded-full tw-bg-gray-200 hover:tw-bg-gray-400",children:e.jsx(ee.Icons,{icon:"circle_plus",size:"xs",strokeWidth:3,color:Q.texts.placeholder})}),e.jsx("button",{className:"tw-ml-[4px] tw-rounded-md tw-bg-primary-medium tw-px-m tw-py-s tw-text-xs tw-text-primary-regular",onClick:()=>{P({repeats:y,id:t})},children:"Agregar"})]})]})]}),o>0&&e.jsx("div",{className:"tw-mt-4 tw-border-t tw-border-gray-200 tw-pt-2",children:e.jsxs("button",{onClick:()=>S(!0),className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx(ee.Icons,{icon:"comment",size:"xs",strokeWidth:4}),e.jsx("span",{className:"tw-font-regular tw-text-xl tw-text-gray-400",children:o})]})})]}),e.jsx(na,{taskId:t,isOpen:L,setIsOpen:S})]})},tt=({title:t,tasks:a,loadNextPage:s,isFetching:n,total:r})=>{const i=p.useRef(null),o=p.useRef(null),d=p.useRef(!1);p.useEffect(()=>{var u;i!=null&&i.current&&(o!=null&&o.current)&&(o.current.style.minHeight=`${((u=i==null?void 0:i.current)==null?void 0:u.clientHeight)-300}px`)},[i==null?void 0:i.current]);const l=u=>{if(d.current)return;const{scrollTop:f,clientHeight:h,scrollHeight:w}=u==null?void 0:u.target,m=f/(w-h)*100;m<=95||m>=95&&(d.current=!0,s&&s(),setTimeout(()=>{d.current=!1},200))},c={"Por hacer":"tw-border-texts-placeholder",Trabajando:"tw-border-primary-regular",Completadas:"tw-border-success-regular"};return e.jsxs("div",{ref:i,className:`tw-relative tw-flex tw-h-full tw-min-h-[100%] tw-w-fit tw-min-w-[400px] tw-max-w-[400px] tw-flex-col tw-overflow-hidden tw-rounded-lg tw-border-t-4 tw-bg-gray-100 tw-p-[16px] ${c[t]}`,children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between",children:[e.jsx("div",{className:"tw-flex tw-items-center tw-gap-[8px]",children:e.jsx("p",{className:"tw-text-2xl",children:t})}),e.jsx("div",{className:"tw-flex tw-items-center tw-gap-[8px]",children:e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-[4px]",children:[e.jsx(ee.Icons,{icon:"group_files",size:"xs",strokeWidth:5,color:Q.texts.placeholder}),e.jsx("p",{className:"tw-text-2xl tw-text-texts-placeholder",children:r??0})]})})]}),e.jsxs("div",{ref:o,className:"tw-flex tw-h-full tw-max-w-[350px] tw-flex-col tw-gap-[12px] tw-overflow-y-auto tw-pb-[200px] tw-pt-4 tw-scrollbar-none hover:tw-border-gray-300 hover:tw-bg-gray-100 focus:tw-border-gray-400 focus:tw-bg-gray-200 focus:tw-outline-none",onScroll:l,children:[a==null?void 0:a.map(u=>e.jsx(Ts,{...u},u.id)),n?e.jsx(ls,{}):e.jsx("p",{className:"tw-text-center tw-text-2xl tw-text-gray-500",children:"No hay más tareas por mostrar..."})]})]})},Dt=[{label:"Tipo de dependencia",type:"select",id:"dependency",options:[{id:"con",name:"Con dependencia"},{id:"sin",name:"Sin dependencia"},{id:"ambas",name:"Ambas"}]},{label:"Por responsable",type:"select",id:"owner.config",options:[{id:"yo",name:"Mis tareas"},{id:"yo_y_mis_equipos",name:"Tareas mías y de mis equipos"},{id:"mis_equipos",name:"Tareas de mis equipos"}]},{label:"Por dificultad",type:"select",id:"difficulty",options:[{id:1,name:"Muy facil"},{id:2,name:"Facil"},{id:3,name:"Media"},{id:4,name:"Dificil"},{id:5,name:"Muy dificil"}]}],Cs=()=>{const{user:t}=_e(),[a,s]=p.useState([...Dt]),n=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return p.useEffect(()=>{const r=[...Dt];n.forEach(d=>{if(d.roles.includes(t.role)){const l=r.find(c=>c.id===d.id);l&&(l.options.some(u=>u.id==="todas")||(l.options=[{id:"todas",name:"Todas las tareas"},...l.options]))}});const i=JSON.stringify(a),o=JSON.stringify(r);i!==o&&s(r)},[t.role]),{filters:a}},Es=()=>{var i;const{defineFields:t}=ke(),{tasksProject:a}=We(),{filters:s}=Cs();p.useEffect(()=>{(async()=>{let d=[...s];t(d)})()},[]);let n=(i=a==null?void 0:a.data)==null?void 0:i.filter(o=>{var d;return((d=o==null?void 0:o.tasks)==null?void 0:d.length)===0}).reduce((o,d)=>(o[d.status]=o[d.status]||[],o[d.status].push(d),o),{});const r=["Por hacer","Trabajando","Completadas"];return e.jsx("div",{className:"tw-relative tw-flex tw-h-full tw-min-h-[100%] tw-w-full tw-gap-4",children:r.map((o,d)=>{var l;return e.jsx(tt,{total:((l=n==null?void 0:n[d])==null?void 0:l.length)??0,title:o,tasks:(n==null?void 0:n[d])??[],isFetching:a==null?void 0:a.isFetching,isLoadingData:a==null?void 0:a.isLoading})})})},Ss=()=>{var n,r;const{toDoTasks:t,total:a}=oa(),s=[...((r=(n=t==null?void 0:t.data)==null?void 0:n.pages)==null?void 0:r.flat())??[]];return e.jsx(tt,{total:a,title:"Por hacer",tasks:s,loadNextPage:()=>ht(t),isFetching:t==null?void 0:t.isFetching,isLoadingData:t==null?void 0:t.isLoading})},ks=()=>{var c;const t=de.useQueryClient(),{tasks_api:a}=we(),{user:s}=_e(),{filters:n}=ke(),[r,i]=p.useState(0),[o,d]=p.useState({owner:{user:s.id,config:((c=n==null?void 0:n.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:s.role},status:"trabajando"}),l=de.useInfiniteQuery({initialPageParam:1,queryKey:["working_tasks",o],queryFn:({pageParam:u})=>gt({filters:{...o,status:"trabajando",...He(u)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(u,f)=>f.length+1});return p.useEffect(()=>{var u;Object.keys(n).length>0&&d({...n,owner:{user:s.id,config:((u=n==null?void 0:n.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:s.role},status:"trabajando"})},[n]),p.useEffect(()=>{t.invalidateQueries({queryKey:["working_tasks",o]})},[o]),p.useEffect(()=>{(async()=>{const f=await a.get("/api/listado_tareas",{params:{...o,status:"trabajando",...He(1),tasks_api:a,justCount:!0}});i(f.data.total)})()},[o,l==null?void 0:l.data]),{workingTasks:l,total:r}},Is=()=>{var n,r;const{workingTasks:t,total:a}=ks(),s=[...((r=(n=t==null?void 0:t.data)==null?void 0:n.pages)==null?void 0:r.flat())??[]];return e.jsx(tt,{total:a,title:"Trabajando",tasks:s,loadNextPage:()=>ht(t),isFetching:t==null?void 0:t.isFetching})},Ds=()=>{var c;const t=de.useQueryClient(),{user:a}=_e(),{tasks_api:s}=we(),{filters:n}=ke(),[r,i]=p.useState(0),[o,d]=p.useState({owner:{user:a.id,config:((c=n==null?void 0:n.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:a.role},status:"completadas"}),l=de.useInfiniteQuery({initialPageParam:1,queryKey:["done_tasks",o],queryFn:({pageParam:u})=>gt({filters:{...o,status:"completadas",...He(u)},tasks_api:s}),staleTime:1e3*60*60*24,getNextPageParam:(u,f)=>f.length+1});return p.useEffect(()=>{var u;Object.keys(n).length>0&&d({...n,owner:{user:a.id,config:((u=n==null?void 0:n.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:a.role},status:"completadas"})},[n]),p.useEffect(()=>{t.invalidateQueries({queryKey:["done_tasks",o]})},[o]),p.useEffect(()=>{(async()=>{const f=await s.get("/api/listado_tareas",{params:{...o,status:"completadas",...He(1),justCount:!0,tasks_api:s}});i(f.data.total)})()},[l==null?void 0:l.data,o]),{doneTasks:l,total:r}},Fs=()=>{var n,r;const{doneTasks:t,total:a}=Ds(),s=[...((r=(n=t==null?void 0:t.data)==null?void 0:n.pages)==null?void 0:r.flat())??[]];return e.jsx(tt,{title:"Completadas",tasks:s,loadNextPage:()=>ht(t),isFetching:t==null?void 0:t.isFetching,total:a})};class Je{static toSalesmanUsers(a){return{id:a.id,name:a.nombre}}}const Ps=()=>{const{tasks_api:t}=we(),{filters:a}=ke(),{user:s}=_e();return{getSalesmanAndProjects:async()=>{var l;const[o,d]=await Promise.all([t.get("/api/obtener-comerciales"),t.get("/api/listado_tareas",{params:{...a,owner:{user:s==null?void 0:s.id,config:((l=a==null?void 0:a.owner)==null?void 0:l.config)??"yo_y_mis_equipos",role:s.role},justProjects:!0}})]);return{salesmanUsers:o.data.map(Je.toSalesmanUsers),projects:d.data.map(Je.toSalesmanUsers)}},getProjects:async()=>{var d;return(await t.get("/api/listado_tareas",{params:{...a,owner:{user:s.id,config:((d=a==null?void 0:a.owner)==null?void 0:d.config)??"yo_y_mis_equipos",role:s.role},justProjects:!0}})).data.map(Je.toSalesmanUsers)},getSalesmans:async()=>(await t.get("/api/obtener-comerciales")).data.map(Je.toSalesmanUsers)}},Ms=()=>{const{user:t}=_e(),[a,s]=p.useState([...Et]),n=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return p.useEffect(()=>{const r=[...Et];n.forEach(d=>{if(d.roles.includes(t.role)){const l=r.find(c=>c.id===d.id);l&&(l.options.some(u=>u.id==="todas")||(l.options=[{id:"todas",name:"Todas las tareas"},...l.options]))}});const i=JSON.stringify(a),o=JSON.stringify(r);i!==o&&s(r)},[t.role]),{filters:a}},As=()=>{const{defineFields:t}=ke(),{getSalesmanAndProjects:a}=Ps(),{filters:s}=Ms();return p.useEffect(()=>{(async()=>{let r=[...s],{salesmanUsers:i,projects:o}=await a();t(r.map(d=>(d.id==="project.id"&&(d.options=o),d.id==="salesman.id"&&(d.options=i),d)))})()},[]),e.jsxs("div",{className:"tw-relative tw-flex tw-h-full tw-min-h-[100%] tw-w-full tw-gap-4",children:[e.jsx(Ss,{}),e.jsx(Is,{}),e.jsx(Fs,{})]})},ca=p.createContext({}),Os=({children:t})=>{const[a,s]=p.useState([]),n=r=>{s(i=>i.includes(r)?i.filter(o=>o!==r):[...i,r])};return e.jsx(ca.Provider,{value:{selectedTasks:a,selectTask:n},children:t})},qs=()=>p.useContext(ca),da=({startDate:t,endDate:a})=>e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"tw-flex tw-h-[30px] tw-w-fit tw-items-center tw-justify-center tw-gap-s tw-rounded-md tw-bg-gray-100 tw-px-xxxl",children:[e.jsx(ee.Icons,{icon:"calendar",size:"xs",strokeWidth:4,color:Q.texts.subtext}),e.jsxs("p",{className:"tw-text-lg",children:[" ",It(t)]})]}),e.jsx(ee.Icons,{icon:"arrow_right",size:"xs",strokeWidth:4,color:Q.texts.DEFAULT}),e.jsxs("div",{className:"tw-flex tw-h-[30px] tw-w-fit tw-items-center tw-justify-center tw-gap-s tw-rounded-md tw-bg-gray-100 tw-px-xxxl",children:[e.jsx(ee.Icons,{icon:"calendar",size:"xs",strokeWidth:4,color:Q.texts.subtext}),e.jsxs("p",{className:"tw-text-lg",children:[" ",It(a)]})]})]}),ua=({id:t,priority:a,difficulty:s,endDate:n,atraso:r})=>{var c,u,f;const[i,o]=p.useState({priority:!1,difficulty:!1,atraso:!1}),d={0:{title:"N/A",color:Q.success.regular,bg:"tw-bg-texts-placeholder tw-border-texts-placeholder",border:"tw-border-success-medium",borderHover:"hover:tw-border-success-dark"},1:{title:"Baja",color:Q.success.regular,bg:"tw-bg-success-medium tw-border-success-pastel",border:"tw-border-success-pastel",borderHover:"hover:tw-border-success-dark"},2:{title:"Media",color:Q.warning.regular,bg:"tw-bg-warning-light tw-border-warning-regular",border:"tw-border-warning-regular",borderHover:"hover:tw-border-warning-dark"},3:{title:"Alta",color:Q.danger.regular,bg:"tw-bg-danger-light tw-border-danger-regular",border:"tw-border-danger-regular",borderHover:"hover:tw-border-danger-dark"}},l={1:{title:"Muy fácil",color:Q.success.dark,bg:"tw-bg-success-medium tw-border-success-regular",border:"tw-border-success-medium",borderHover:"hover:tw-border-success-dark"},2:{title:"Fácil",color:Q.success.regular,bg:"tw-bg-success-medium tw-border-success-pastel",border:"tw-border-success-medium",borderHover:"hover:tw-border-success-dark"},3:{title:"Media",color:Q.warning.regular,bg:"tw-bg-warning-light tw-border-warning-regular",border:"tw-border-warning-medium",borderHover:"hover:tw-border-warning-dark"},4:{title:"Difícil",color:Q.danger.regular,bg:"tw-bg-danger-light tw-border-danger-regular",border:"tw-border-danger-medium",borderHover:"hover:tw-border-danger-dark"},5:{title:"Muy difícil",color:Q.danger.dark,bg:"tw-bg-danger-light tw-border-danger-regular",border:"tw-border-danger-medium",borderHover:"hover:tw-border-danger-dark"}};return e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"tw-flex tw-h-[30px] tw-w-[30px] tw-items-center tw-justify-center tw-gap-s tw-rounded-[8px] tw-bg-gray-100 hover:tw-bg-gray-200",children:e.jsx(ee.Tooltip,{dispatch:e.jsx(ee.Icons,{icon:"align_center",size:"xs",strokeWidth:4,color:Q.texts.subtext}),children:e.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-px-4 tw-py-2 tw-text-2xl",style:{color:"gray"},children:"Espéralo muy pronto..."})})}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx("div",{onMouseEnter:()=>o({...i,difficulty:!0}),onMouseLeave:()=>o({...i,difficulty:!1}),className:`tw-gap-s ${(c=l[s===0?1:s])==null?void 0:c.border}
52
52
  ${(u=l[s===0?1:s])==null?void 0:u.borderHover}
53
53
  transition-all duration-300 tw-flex tw-h-[30px] tw-w-[30px] tw-items-center tw-justify-center
54
54
  tw-rounded-[8px] tw-border tw-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)]`,children:e.jsx(ee.Tooltip,{dispatch:e.jsx(ee.Icons,{icon:"difficulty",size:"xs",color:i.difficulty?l[s===0?1:s].color:null,strokeWidth:4}),children:e.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-p-5 tw-text-sm",style:{color:l[s===0?1:s].color},children:l[s===0?1:s].title})})}),e.jsx("div",{onMouseEnter:()=>o({...i,priority:!0}),onMouseLeave:()=>o({...i,priority:!1}),className:`tw-gap-s ${((f=d[a??0])==null?void 0:f.bg.replace(/\bbg-|border-/g,"tw-$&"))??"tw-bg-gray-100"} transition-all duration-300 tw-flex tw-h-[30px] tw-w-[30px] tw-items-center tw-justify-center tw-rounded-[8px]
@@ -81,7 +81,7 @@
81
81
  transform: scale(1) translateY(0);
82
82
  }
83
83
  }
84
- `;if(typeof document<"u"){const t=document.createElement("style");t.textContent=an,document.head.appendChild(t)}const xa=({open:t,handleChange:a,children:s,title:n="¿Estás seguro?",onConfirm:r,contentLabel:i="",confirmLabel:o="Aceptar",cancelLabel:d="Regresar",isLoading:l=!1})=>e.jsx(bt,{open:t,titleClassName:"tw-text-black-black_medium tw-text-lg tw-font-semibold",handleChange:a,size:"sm",isButtonClose:!1,title:n,noMinHeight:!0,children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-y-4 tw-px-4 tw-pb-4",children:[e.jsx("h1",{className:"tw-text-lg tw-font-semibold tw-text-black-black_medium",children:i}),s&&s,e.jsxs("div",{className:"tw-flex tw-flex-row tw-justify-end tw-gap-x-4 ",children:[e.jsx("button",{disabled:l,className:"tw-rounded-xl tw-border tw-border-blue-blue_medium tw-bg-white tw-px-4 tw-py-2 tw-font-semibold tw-text-blue-blue_dark tw-shadow-md disabled:tw-cursor-not-allowed disabled:tw-opacity-80",onClick:()=>a(!1),children:d}),e.jsxs("button",{disabled:l,className:"tw-flex tw-items-center tw-gap-x-2 tw-rounded-xl tw-bg-texts-enfasis tw-px-4 tw-py-2 tw-text-white tw-transition-all tw-duration-300 disabled:tw-cursor-not-allowed disabled:tw-opacity-80",onClick:r,children:[e.jsx("span",{className:`tw-transition-opacity tw-duration-300 ${l?"tw-opacity-100":"tw-opacity-0"}`,children:l&&e.jsx(ma,{style:{color:"white",size:"xs"}})}),e.jsx("span",{className:`tw-transition-all tw-duration-300 ${l?"tw-ml-2":""}`,children:o})]})]})]})}),sn=({member:t,level:a,isUpdate:s=!1,addHandler:n,updateHandler:r,removeHandler:i,updateMemberHandler:o})=>{var H,U;const{users:d,isLoading:l}=yt(),{users:c,isLoading:u}=Ke(),{getImageOBP:f}=we(),{showError:h}=Ge(),[w,m]=p.useState(!1),[g,x]=p.useState(s?t:{...lt,miembro_padre:a>1?t:null}),[b,j]=p.useState(null),[v,L]=p.useState(""),[S,k]=p.useState(!1),[N,_]=p.useState({id:0,nombre:"",email:""}),[P,F]=p.useState(!1);p.useEffect(()=>{var K;j(c==null?void 0:c[(K=g==null?void 0:g.idUser)==null?void 0:K.email])},[g,c]),p.useEffect(()=>{t&&x({...t,miembro_padre:a>1?t.miembro_padre:null})},[t,a]);const y=()=>{m(!1),L(""),_({id:0,nombre:"",email:""}),k(!1)},X=({id:K,name:te,email:ae})=>{const Z={...g,idUser:{...g.idUser,id:K,nombre:te,email:ae}};x(Z),r(Z),_({id:K,nombre:te,email:ae})},B=async()=>{if(k(!0),!N.nombre&&!N.email){y();return}try{g.id&&o({user_id:N.id,miembro_id:t.id});const K={...g,idUser:{...g.idUser,id:N.id,nombre:N.nombre,email:N.email}};x(K),r(K),j(c==null?void 0:c[N.email]),y()}catch(K){h(K instanceof Error?K.message:"Error al actualizar el colaborador"),k(!1)}},I=()=>{L("");const K={...lt,uid:new Date().getTime()+Math.floor(Math.random()*1e3),miembro_padre:t,miembros:[]};n(K)},O=()=>{i(t),F(!1)};return u||l?null:e.jsxs("div",{className:"tw-flex tw-items-baseline tw-justify-between",children:[P&&e.jsx(xa,{open:P,handleChange:F,onConfirm:O,contentLabel:"Estás eliminando el colaborador seleccionado"}),e.jsxs("div",{className:"tw-flex tw-flex-1 tw-justify-between tw-gap-y-2",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-6",children:[e.jsx(Te,{size:"m",alt:"@shadcn",imageUrl:b!=null&&b.image?f(b==null?void 0:b.image):void 0}),(H=g==null?void 0:g.idUser)!=null&&H.email&&!w?e.jsx("p",{className:"tw-text-base",children:(U=g==null?void 0:g.idUser)==null?void 0:U.nombre}):e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-y-1",children:[e.jsx(tn,{fields:{id:"id",nombre:"name"},containerOptionsClassName:"tw-max-h-[20rem]",options:d,isOpen:!0,onSelect:X,onClose:()=>{}}),v&&e.jsx("p",{className:"tw-text-red-500",children:v})]})]}),e.jsxs("button",{className:"tw-ml-14 tw-flex tw-items-center tw-gap-x-2 tw-px-5 tw-pb-5 tw-pt-3 tw-text-sm tw-text-black-black_light",onClick:I,children:[e.jsx(ee.Icons,{classNameDiv:"custom-icon-xs",icon:"plus_outline",size:"xs",strokeWidth:4,color:Q.black.black_light}),"Añadir colaborador"]})]}),e.jsxs("div",{className:"tw-mt-5 tw-flex tw-h-full",children:[w?e.jsxs(e.Fragment,{children:[e.jsx(Ze,{icon:"x_outline",label:"Cancelar",disabled:S,onClick:y,variant:"danger"}),e.jsx(Ze,{icon:"check_outline",label:"Guardar",disabled:S,onClick:B,variant:"success"})]}):e.jsx(Ze,{icon:"pencil",label:"Editar",onClick:()=>m(!0),variant:"primary"}),e.jsx(Ze,{icon:"trash",label:"Eliminar",onClick:()=>F(!0),variant:"danger"})]})]})]})},ga=({members:t,level:a=1,isUpdate:s=!1,setData:n})=>{const r=()=>{n(i=>({...i,miembros:[...i.miembros,{...lt,uid:new Date().getTime()+Math.floor(Math.random()*1e3)}]}))};return e.jsxs("div",{children:[(t==null?void 0:t.length)===0&&a===1&&e.jsx("div",{className:"tw-flex tw-justify-end",children:e.jsxs("button",{className:"tw-flex tw-items-center tw-gap-x-3 tw-rounded-md tw-bg-primary-regular tw-p-2 tw-text-xl tw-text-white",onClick:r,children:[e.jsx(ee.Icons,{icon:"plus_outline",classNameDiv:"custom-icon-sm",color:"white",size:"xs",strokeWidth:4.5})," ","Agregar miembro del equipo"]})}),(t==null?void 0:t.length)>0&&(t==null?void 0:t.map(i=>e.jsx(nn,{isUpdate:s,member:i,level:a,setData:n},i.uid)))]})},nn=({member:t,level:a,isUpdate:s=!1,setData:n})=>{const r=c=>{n(u=>{if(!c.miembro_padre)return{...u,miembros:[...u.miembros,c]};const f=h=>h==null?void 0:h.map(w=>w.uid===c.miembro_padre.uid?{...w,miembros:[...w.miembros||[],c]}:w.miembros&&w.miembros.length>0?{...w,miembros:f(w.miembros)}:w);return{...u,miembros:f(u.miembros)}})},i=c=>{n(u=>{const f=h=>h.map(w=>w.uid===c.uid?(w.miembros&&w.miembros.length>0&&w.miembros.forEach(m=>{m.miembro_padre=c}),{...c,miembros:w.miembros||[]}):w.miembros&&w.miembros.length>0?{...w,miembros:f(w.miembros)}:w);return{...u,miembros:f(u.miembros)}})},o=c=>{var f;const u=[];return c.id&&u.push(c.id),(f=c.miembros)!=null&&f.length&&c.miembros.forEach(h=>{u.push(...o(h))}),u},d=c=>{n(u=>{const f=o(c),h=m=>m.filter(g=>g.uid!==c.uid).map(g=>({...g,miembros:g.miembros?h(g.miembros):[]})),w=u.miembros_actualizar.filter(m=>!f.includes(m.miembro_id));return{...u,miembros:h(u.miembros),miembros_eliminar:[...u.miembros_eliminar,...f],miembros_actualizar:w}})},l=c=>{n(u=>u.miembros_actualizar.some(h=>h.miembro_id===c.miembro_id)?u:{...u,miembros_actualizar:[...u.miembros_actualizar,c]})};return e.jsxs("div",{"data-id":t.uid,style:{paddingLeft:a===1?0:"30px",marginTop:a===1?"15px":"0px",paddingBottom:"5px"},children:[e.jsx(sn,{isUpdate:s,level:a,member:t,addHandler:r,updateHandler:i,removeHandler:d,updateMemberHandler:l}),Array.isArray(t.miembros)&&t.miembros.length>0&&e.jsx(ga,{isUpdate:s,members:t.miembros,level:a+1,setData:n})]},t.uid)},rn=(t=7)=>{const a=(n,r)=>n>=r?{populate:"*"}:{miembro_padre:{fields:["id"]},idUser:{populate:"*"},miembros:{populate:a(n+1,r),filters:{idUser:{blocked:!1}}}};return{miembros:{populate:a(0,t),filters:{idUser:{blocked:!1}}}}},on=({items:t})=>{if(!t)return{members:[],allMembers:[]};const a={};for(const o of t)a[o.uid]=o;const s=[],n=new Set,r=o=>{const d={...o};if(d.id&&(d.uid=d.id),d.uid&&!n.has(d.uid)&&(s.push(d),n.add(d.uid)),!d.miembros)return d;const l=d.miembros.map(c=>{const u={...c};u.id&&(u.uid=u.id);const f=a[u.uid];return r(f||u)}).filter(Boolean);return{...d,miembros:l}};return{members:t.filter(o=>o.miembro_padre===null).map(r),allMembers:s}},ln=({items:t})=>t?t.map(a=>{const s=on({items:a.miembros});return{...a,integrantes:s.allMembers.length,miembros:s.members,miembros_planos:s.allMembers,miembros_eliminar:[],miembros_actualizar:[]}}):[],cn=async({tasks_api:t,page:a=1,pageSize:s=10,search:n="",filters:r={}})=>{const i=Pe.stringify({filters:Ga({search:n,filters:r}),populate:rn(),sort:["createdAt:asc"],pagination:{page:a,pageSize:s}},{encodeValuesOnly:!0}),o=await t.get(`/api/equipos?${i}`);return o.data?{data:ge(o.data.data),meta:o.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:s,pageCount:0,total:0}}}},dn=({page:t=1,pageSize:a=10,search:s="",filters:n={}})=>{const{tasks_api:r}=we();return de.useQuery({queryKey:["teams",t,a,s,n],queryFn:()=>cn({tasks_api:r,page:t,pageSize:a,search:s,filters:n}),staleTime:1e3*60*60*24,placeholderData:de.keepPreviousData,select:i=>({data:ln({items:(i==null?void 0:i.data)||[]}),meta:i==null?void 0:i.meta})})},ct=t=>({...t,miembro_padre:t.miembro_padre?{id:t.miembro_padre.id,uid:t.miembro_padre.uid}:null,idUser:t.idUser?{id:t.idUser.id,nombre:t.idUser.nombre,email:t.idUser.email,image:t.idUser.image}:null,miembros:t.miembros?t.miembros.map(ct):[]}),ha=()=>{const{tasks_api:t}=we(),a=de.useQueryClient(),s=async h=>{const w={...h,id:void 0,miembros:h.miembros.map(ct)};return(await t.post("/api/registrar-equipo-miembros",{data:w})).data},n=async h=>(await t.delete(`/api/equipos/${h}`)).data,r=async(h,w)=>{const m={...w,id:void 0,miembros:w.miembros.map(ct)};return(await t.patch(`/api/actualizar-equipo-miembros/${h}`,{data:m})).data},i=async(h,w,m)=>{const g=await t.put(`/api/miembros/${h}`,{data:{[w]:m}});if(!g.data)throw new Error("Error al actualizar el miembro");return g.data},{mutateAsync:o,isPending:d}=de.useMutation({mutationFn:n,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:h=>{throw console.error("Failed to delete the team.",h),h}}),{mutateAsync:l}=de.useMutation({mutationFn:s,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:h=>{throw console.error("Failed to update the team.",h),h},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:c}=de.useMutation({mutationFn:h=>r(h.teamId,h.data),onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:h=>{throw console.error("Failed to update the team.",h),h},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:u}=de.useMutation({mutationFn:h=>i(h.memberId,h.field,h.value),onError:h=>{throw console.error("Failed to update the member.",h),new Error("Error al actualizar el miembro")}});return{addTeamHandler:l,deleteTeamHandler:o,updateTeamHandler:c,updateMemberHandler:u,invalidateTeams:()=>{a.invalidateQueries({queryKey:["teams"]})},isLoadingDeleteTeam:d}},un=(t,a,s)=>{const n=p.useCallback(r=>{t.current&&!t.current.contains(r.target)&&a(!1)},[t,a]);p.useEffect(()=>(s&&document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}),[n,s])},wn=({color:t,onChange:a})=>e.jsxs(e.Fragment,{children:[e.jsx("style",{children:`
84
+ `;if(typeof document<"u"){const t=document.createElement("style");t.textContent=an,document.head.appendChild(t)}const xa=({open:t,handleChange:a,children:s,title:n="¿Estás seguro?",onConfirm:r,contentLabel:i="",confirmLabel:o="Aceptar",cancelLabel:d="Regresar",isLoading:l=!1})=>e.jsx(bt,{open:t,titleClassName:"tw-text-black-black_medium tw-text-lg tw-font-semibold",handleChange:a,size:"sm",isButtonClose:!1,title:n,noMinHeight:!0,children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-y-4 tw-px-4 tw-pb-4",children:[e.jsx("h1",{className:"tw-text-lg tw-font-semibold tw-text-black-black_medium",children:i}),s&&s,e.jsxs("div",{className:"tw-flex tw-flex-row tw-justify-end tw-gap-x-4 ",children:[e.jsx("button",{disabled:l,className:"tw-rounded-xl tw-border tw-border-blue-blue_medium tw-bg-white tw-px-4 tw-py-2 tw-font-semibold tw-text-blue-blue_dark tw-shadow-md disabled:tw-cursor-not-allowed disabled:tw-opacity-80",onClick:()=>a(!1),children:d}),e.jsxs("button",{disabled:l,className:"tw-flex tw-items-center tw-gap-x-2 tw-rounded-xl tw-bg-texts-enfasis tw-px-4 tw-py-2 tw-text-white tw-transition-all tw-duration-300 disabled:tw-cursor-not-allowed disabled:tw-opacity-80",onClick:r,children:[e.jsx("span",{className:`tw-transition-opacity tw-duration-300 ${l?"tw-opacity-100":"tw-opacity-0"}`,children:l&&e.jsx(ma,{style:{color:"white",size:"xs"}})}),e.jsx("span",{className:`tw-transition-all tw-duration-300 ${l?"tw-ml-2":""}`,children:o})]})]})]})}),sn=({member:t,level:a,isUpdate:s=!1,addHandler:n,updateHandler:r,removeHandler:i,updateMemberHandler:o})=>{var H,W;const{users:d,isLoading:l}=yt(),{users:c,isLoading:u}=Ke(),{getImageOBP:f}=we(),{showError:h}=Ge(),[w,m]=p.useState(!1),[g,x]=p.useState(s?t:{...lt,miembro_padre:a>1?t:null}),[b,j]=p.useState(null),[v,L]=p.useState(""),[S,k]=p.useState(!1),[N,_]=p.useState({id:0,nombre:"",email:""}),[P,F]=p.useState(!1);p.useEffect(()=>{var K;j(c==null?void 0:c[(K=g==null?void 0:g.idUser)==null?void 0:K.email])},[g,c]),p.useEffect(()=>{t&&x({...t,miembro_padre:a>1?t.miembro_padre:null})},[t,a]);const y=()=>{m(!1),L(""),_({id:0,nombre:"",email:""}),k(!1)},X=({id:K,name:te,email:ae})=>{const Z={...g,idUser:{...g.idUser,id:K,nombre:te,email:ae}};x(Z),r(Z),_({id:K,nombre:te,email:ae})},B=async()=>{if(k(!0),!N.nombre&&!N.email){y();return}try{g.id&&o({user_id:N.id,miembro_id:t.id});const K={...g,idUser:{...g.idUser,id:N.id,nombre:N.nombre,email:N.email}};x(K),r(K),j(c==null?void 0:c[N.email]),y()}catch(K){h(K instanceof Error?K.message:"Error al actualizar el colaborador"),k(!1)}},I=()=>{L("");const K={...lt,uid:new Date().getTime()+Math.floor(Math.random()*1e3),miembro_padre:t,miembros:[]};n(K)},O=()=>{i(t),F(!1)};return u||l?null:e.jsxs("div",{className:"tw-flex tw-items-baseline tw-justify-between",children:[P&&e.jsx(xa,{open:P,handleChange:F,onConfirm:O,contentLabel:"Estás eliminando el colaborador seleccionado"}),e.jsxs("div",{className:"tw-flex tw-flex-1 tw-justify-between tw-gap-y-2",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-6",children:[e.jsx(Te,{size:"m",alt:"@shadcn",imageUrl:b!=null&&b.image?f(b==null?void 0:b.image):void 0}),(H=g==null?void 0:g.idUser)!=null&&H.email&&!w?e.jsx("p",{className:"tw-text-base",children:(W=g==null?void 0:g.idUser)==null?void 0:W.nombre}):e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-y-1",children:[e.jsx(tn,{fields:{id:"id",nombre:"name"},containerOptionsClassName:"tw-max-h-[20rem]",options:d,isOpen:!0,onSelect:X,onClose:()=>{}}),v&&e.jsx("p",{className:"tw-text-red-500",children:v})]})]}),e.jsxs("button",{className:"tw-ml-14 tw-flex tw-items-center tw-gap-x-2 tw-px-5 tw-pb-5 tw-pt-3 tw-text-sm tw-text-black-black_light",onClick:I,children:[e.jsx(ee.Icons,{classNameDiv:"custom-icon-xs",icon:"plus_outline",size:"xs",strokeWidth:4,color:Q.black.black_light}),"Añadir colaborador"]})]}),e.jsxs("div",{className:"tw-mt-5 tw-flex tw-h-full",children:[w?e.jsxs(e.Fragment,{children:[e.jsx(Ze,{icon:"x_outline",label:"Cancelar",disabled:S,onClick:y,variant:"danger"}),e.jsx(Ze,{icon:"check_outline",label:"Guardar",disabled:S,onClick:B,variant:"success"})]}):e.jsx(Ze,{icon:"pencil",label:"Editar",onClick:()=>m(!0),variant:"primary"}),e.jsx(Ze,{icon:"trash",label:"Eliminar",onClick:()=>F(!0),variant:"danger"})]})]})]})},ga=({members:t,level:a=1,isUpdate:s=!1,setData:n})=>{const r=()=>{n(i=>({...i,miembros:[...i.miembros,{...lt,uid:new Date().getTime()+Math.floor(Math.random()*1e3)}]}))};return e.jsxs("div",{children:[(t==null?void 0:t.length)===0&&a===1&&e.jsx("div",{className:"tw-flex tw-justify-end",children:e.jsxs("button",{className:"tw-flex tw-items-center tw-gap-x-3 tw-rounded-md tw-bg-primary-regular tw-p-2 tw-text-xl tw-text-white",onClick:r,children:[e.jsx(ee.Icons,{icon:"plus_outline",classNameDiv:"custom-icon-sm",color:"white",size:"xs",strokeWidth:4.5})," ","Agregar miembro del equipo"]})}),(t==null?void 0:t.length)>0&&(t==null?void 0:t.map(i=>e.jsx(nn,{isUpdate:s,member:i,level:a,setData:n},i.uid)))]})},nn=({member:t,level:a,isUpdate:s=!1,setData:n})=>{const r=c=>{n(u=>{if(!c.miembro_padre)return{...u,miembros:[...u.miembros,c]};const f=h=>h==null?void 0:h.map(w=>w.uid===c.miembro_padre.uid?{...w,miembros:[...w.miembros||[],c]}:w.miembros&&w.miembros.length>0?{...w,miembros:f(w.miembros)}:w);return{...u,miembros:f(u.miembros)}})},i=c=>{n(u=>{const f=h=>h.map(w=>w.uid===c.uid?(w.miembros&&w.miembros.length>0&&w.miembros.forEach(m=>{m.miembro_padre=c}),{...c,miembros:w.miembros||[]}):w.miembros&&w.miembros.length>0?{...w,miembros:f(w.miembros)}:w);return{...u,miembros:f(u.miembros)}})},o=c=>{var f;const u=[];return c.id&&u.push(c.id),(f=c.miembros)!=null&&f.length&&c.miembros.forEach(h=>{u.push(...o(h))}),u},d=c=>{n(u=>{const f=o(c),h=m=>m.filter(g=>g.uid!==c.uid).map(g=>({...g,miembros:g.miembros?h(g.miembros):[]})),w=u.miembros_actualizar.filter(m=>!f.includes(m.miembro_id));return{...u,miembros:h(u.miembros),miembros_eliminar:[...u.miembros_eliminar,...f],miembros_actualizar:w}})},l=c=>{n(u=>u.miembros_actualizar.some(h=>h.miembro_id===c.miembro_id)?u:{...u,miembros_actualizar:[...u.miembros_actualizar,c]})};return e.jsxs("div",{"data-id":t.uid,style:{paddingLeft:a===1?0:"30px",marginTop:a===1?"15px":"0px",paddingBottom:"5px"},children:[e.jsx(sn,{isUpdate:s,level:a,member:t,addHandler:r,updateHandler:i,removeHandler:d,updateMemberHandler:l}),Array.isArray(t.miembros)&&t.miembros.length>0&&e.jsx(ga,{isUpdate:s,members:t.miembros,level:a+1,setData:n})]},t.uid)},rn=(t=7)=>{const a=(n,r)=>n>=r?{populate:"*"}:{miembro_padre:{fields:["id"]},idUser:{populate:"*"},miembros:{populate:a(n+1,r),filters:{idUser:{blocked:!1}}}};return{miembros:{populate:a(0,t),filters:{idUser:{blocked:!1}}}}},on=({items:t})=>{if(!t)return{members:[],allMembers:[]};const a={};for(const o of t)a[o.uid]=o;const s=[],n=new Set,r=o=>{const d={...o};if(d.id&&(d.uid=d.id),d.uid&&!n.has(d.uid)&&(s.push(d),n.add(d.uid)),!d.miembros)return d;const l=d.miembros.map(c=>{const u={...c};u.id&&(u.uid=u.id);const f=a[u.uid];return r(f||u)}).filter(Boolean);return{...d,miembros:l}};return{members:t.filter(o=>o.miembro_padre===null).map(r),allMembers:s}},ln=({items:t})=>t?t.map(a=>{const s=on({items:a.miembros});return{...a,integrantes:s.allMembers.length,miembros:s.members,miembros_planos:s.allMembers,miembros_eliminar:[],miembros_actualizar:[]}}):[],cn=async({tasks_api:t,page:a=1,pageSize:s=10,search:n="",filters:r={}})=>{const i=Pe.stringify({filters:Ga({search:n,filters:r}),populate:rn(),sort:["createdAt:asc"],pagination:{page:a,pageSize:s}},{encodeValuesOnly:!0}),o=await t.get(`/api/equipos?${i}`);return o.data?{data:ge(o.data.data),meta:o.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:s,pageCount:0,total:0}}}},dn=({page:t=1,pageSize:a=10,search:s="",filters:n={}})=>{const{tasks_api:r}=we();return de.useQuery({queryKey:["teams",t,a,s,n],queryFn:()=>cn({tasks_api:r,page:t,pageSize:a,search:s,filters:n}),staleTime:1e3*60*60*24,placeholderData:de.keepPreviousData,select:i=>({data:ln({items:(i==null?void 0:i.data)||[]}),meta:i==null?void 0:i.meta})})},ct=t=>({...t,miembro_padre:t.miembro_padre?{id:t.miembro_padre.id,uid:t.miembro_padre.uid}:null,idUser:t.idUser?{id:t.idUser.id,nombre:t.idUser.nombre,email:t.idUser.email,image:t.idUser.image}:null,miembros:t.miembros?t.miembros.map(ct):[]}),ha=()=>{const{tasks_api:t}=we(),a=de.useQueryClient(),s=async h=>{const w={...h,id:void 0,miembros:h.miembros.map(ct)};return(await t.post("/api/registrar-equipo-miembros",{data:w})).data},n=async h=>(await t.delete(`/api/equipos/${h}`)).data,r=async(h,w)=>{const m={...w,id:void 0,miembros:w.miembros.map(ct)};return(await t.patch(`/api/actualizar-equipo-miembros/${h}`,{data:m})).data},i=async(h,w,m)=>{const g=await t.put(`/api/miembros/${h}`,{data:{[w]:m}});if(!g.data)throw new Error("Error al actualizar el miembro");return g.data},{mutateAsync:o,isPending:d}=de.useMutation({mutationFn:n,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:h=>{throw console.error("Failed to delete the team.",h),h}}),{mutateAsync:l}=de.useMutation({mutationFn:s,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:h=>{throw console.error("Failed to update the team.",h),h},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:c}=de.useMutation({mutationFn:h=>r(h.teamId,h.data),onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:h=>{throw console.error("Failed to update the team.",h),h},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:u}=de.useMutation({mutationFn:h=>i(h.memberId,h.field,h.value),onError:h=>{throw console.error("Failed to update the member.",h),new Error("Error al actualizar el miembro")}});return{addTeamHandler:l,deleteTeamHandler:o,updateTeamHandler:c,updateMemberHandler:u,invalidateTeams:()=>{a.invalidateQueries({queryKey:["teams"]})},isLoadingDeleteTeam:d}},un=(t,a,s)=>{const n=p.useCallback(r=>{t.current&&!t.current.contains(r.target)&&a(!1)},[t,a]);p.useEffect(()=>(s&&document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}),[n,s])},wn=({color:t,onChange:a})=>e.jsxs(e.Fragment,{children:[e.jsx("style",{children:`
85
85
  .react-pick-color div button {
86
86
  border-radius: 50% !important;
87
87
  width: 20px;
@@ -98,6 +98,6 @@
98
98
  .react-pick-color div label > span {
99
99
  display: none !important;
100
100
  }
101
- `}),e.jsx("div",{className:"react-pick-color tw-overflow-hidden tw-rounded-lg tw-shadow-lg",children:e.jsx(Wa.ColorPicker,{color:t,theme:{inputBackground:"#FFF"},combinations:["monochromatic"],onChange:s=>a(s)})})]});function pn({color:t,setColor:a,label:s="Elige el color",className:n=""}){const[r,i]=p.useState(!1),o=p.useRef(null);return un(o,i,r),e.jsxs("div",{className:"tw-relative tw-w-full",children:[e.jsx("button",{onClick:d=>{d.stopPropagation(),i(!r)},style:{backgroundColor:t},className:`tw-h-10 tw-w-full tw-rounded-md tw-border-2 tw-border-blue-blue_medium tw-px-4 tw-text-left tw-text-white ${n}`,children:s}),r&&e.jsx("div",{ref:o,className:"tw-absolute tw-z-50 tw-mt-2",children:e.jsx(wn,{color:t,onChange:d=>a(d.hex)})})]})}const mn=()=>"#"+Math.floor(Math.random()*16777215).toString(16),st="Ha ocurrido un error inesperado. Por favor, intente nuevamente.",fn={"This field is required":"El campo {field} es requerido","must be defined":"El campo {field} es requerido","This attribute must be unique":"El campo {field} debe ser único","must be a string":"El campo {field} debe ser texto","must be a number":"El campo {field} debe ser un número","must be a boolean":"El campo {field} debe ser verdadero o falso","must be an array":"El campo {field} debe ser una lista","must be a valid email":"El campo {field} debe ser un correo electrónico válido","must be a valid date":"El campo {field} debe ser una fecha válida","must be a valid URL":"El campo {field} debe ser una URL válida","must be at least X characters long":"El campo {field} debe tener al menos {min} caracteres","must be less than or equal to X characters long":"El campo {field} debe tener máximo {max} caracteres","This value is too long":"El campo {field} excede el máximo de caracteres","This value is too short":"El campo {field} no cumple con el mínimo de caracteres","must be greater than or equal to X":"El campo {field} debe ser mayor o igual a {min}","must be less than or equal to X":"El campo {field} debe ser menor o igual a {max}","must be greater than X":"El campo {field} debe ser mayor a {min}","must be less than X":"El campo {field} debe ser menor a {max}","must be between X and Y":"El campo {field} debe estar entre {min} y {max}","must be an existing record":"El registro relacionado en {field} no existe","User not found":"El usuario no fue encontrado","Member not found":"El miembro no fue encontrado"},ba=()=>({handleApiError:a=>{var s,n,r,i,o;if(a instanceof wt.AxiosError&&((s=a.response)==null?void 0:s.status)===400){const d=a.response.data;if(((r=(n=d.details)==null?void 0:n.errors)==null?void 0:r.length)>0){const l=d.details.errors[0];let c=fn[l.message]||st;return c=c.replace("{field}",l.path.join(".")),((i=l.params)==null?void 0:i.min)!==void 0&&(c=c.replace("{min}",l.params.min.toString())),((o=l.params)==null?void 0:o.max)!==void 0&&(c=c.replace("{max}",l.params.max.toString())),c}return d.message||st}return st}});function ya({open:t,handleChange:a,team:s}){const{addTeamHandler:n,updateTeamHandler:r}=ha(),{showSuccess:i}=Ge(),{handleApiError:o}=ba(),[d,l]=p.useState(!1),[c,u]=p.useState(""),[f,h]=p.useState(s||{id:0,nombre:"",color:mn(),miembros:[],miembros_planos:[],integrantes:0,miembros_eliminar:[],miembros_actualizar:[]}),w=f.id>0,m=async()=>{if(f.nombre.length===0){u("El nombre del equipo es requerido");return}if(f.miembros.length===0){u("El equipo debe tener al menos un miembro");return}l(!0);const g=async()=>w?await r({data:f,teamId:f.id}):await n(f);try{await g(),u(""),a(!1),i(w?"Equipo actualizado correctamente":"Equipo creado correctamente")}catch(x){u(o(x))}finally{l(!1)}};return e.jsx(bt,{open:t,handleChange:a,closeIcon:"circle",size:"lg",children:e.jsxs("section",{className:"tw-relative tw-flex tw-h-full tw-flex-1 tw-flex-col tw-gap-y-6 tw-px-5 tw-pb-16",children:[e.jsxs("div",{children:[e.jsx(Ft,{title:"Información del equipo",icon:"user"}),e.jsxs("div",{className:"tw-mt-6 tw-flex tw-w-full tw-items-center tw-gap-4",children:[e.jsx(Qs,{value:f.nombre,onChange:g=>h({...f,nombre:g})}),e.jsxs("div",{className:"flex tw-flex-1 tw-items-center tw-gap-x-2",children:[e.jsx("label",{className:"tw-w-44 tw-text-base tw-text-black-black_regular",children:"Color del equipo"}),e.jsx(pn,{className:"tw-w-64",color:f.color,setColor:g=>h({...f,color:g})})]})]}),c&&e.jsx("p",{className:"tw-mt-4 tw-text-sm tw-text-danger-pastel",children:c})]}),e.jsxs("div",{children:[e.jsx(Ft,{title:"Miembros del equipo",icon:"users"}),e.jsx(ga,{members:f.miembros,setData:h,isUpdate:w})]}),e.jsx(Ks,{onCancel:()=>a(!1),onSave:m,isLoading:d})]})})}const De=384,xn=80,gn=180,dt=20,hn=2,ja=4,ut=.8;function bn({data:t}){const{getImageOBP:a}=we();return e.jsxs("div",{className:"tw-w-96 tw-rounded-md tw-border-[0.5px] tw-border-silver-silver_regular tw-bg-white tw-px-4 tw-py-2 tw-shadow-xl",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-4",children:[e.jsx("div",{className:"tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-gray-100",children:e.jsx(Te,{size:"xxl",alt:"@shadcn",imageUrl:t!=null&&t.image?a(t==null?void 0:t.image):void 0})}),e.jsxs("div",{className:"tw-text-black-black_dark",children:[e.jsx("div",{className:"tw-text-lg tw-font-bold",children:t.name}),e.jsx("div",{className:"",children:t.job||"Puesto no asignado"})]})]}),e.jsx(re.Handle,{type:"target",position:re.Position.Top,className:"tw-bg-transparent",isConnectable:!1}),e.jsx(re.Handle,{type:"source",position:re.Position.Bottom,className:"tw-w-16 tw-border-none tw-bg-transparent",isConnectable:!1})]})}const yn={custom:bn},jn={style:{stroke:"#6366f1",strokeWidth:2}},va=(t,a=0)=>t?t.map(s=>{const n=s.miembros?va(s.miembros,a+1):[];return{width:De,height:xn,children:n,x:0,y:a*gn,totalWidth:0,depth:a}}):[],_a=t=>{if(t.children.length===0)return t.totalWidth=De,De;const a=t.children.reduce((r,i)=>r+_a(i),0),s=t.children.length>ja?ut:1,n=(t.children.length-1)*dt*s;return t.totalWidth=Math.max(De,a+n),t.totalWidth},Na=(t,a=0)=>{let s=a;return t.forEach(n=>{n.totalWidth===0&&_a(n);const r=n.children.length>hn,i=n.children.length>ja;if(n.children.length>0){if(Na(n.children,s),i){const f=(n.totalWidth-De)/(n.children.length-1)*ut;n.children.forEach((h,w)=>{h.x=s+w*f})}else if(r){const f=(n.totalWidth-De)/(n.children.length-1);n.children.forEach((h,w)=>{h.x=s+w*f})}const d=n.children[0].x,l=n.children[n.children.length-1].x+De,c=i?De*.1:0;n.x=(d+l-De)/2+c}else n.x=s;const o=i?ut:1;s=Math.max(s+De+dt*o,n.x+De+dt*o)}),s},Ta=(t,a,s,n)=>{const r=[],i=[];return t.forEach((o,d)=>{var u,f,h,w,m,g;const l=a[d],c=l.id.toString();if(r.push({id:c,type:"custom",data:{name:(u=l.idUser)==null?void 0:u.nombre,image:(h=s==null?void 0:s[(f=l.idUser)==null?void 0:f.email])==null?void 0:h.image,job:((g=(m=s==null?void 0:s[(w=l.idUser)==null?void 0:w.email])==null?void 0:m.role)==null?void 0:g.name)||""},position:{x:o.x,y:o.y}}),n&&i.push({id:`e-${n}-${c}`,source:n,target:c,style:{stroke:"#6366f1",strokeWidth:2}}),l.miembros&&l.miembros.length>0){const x=Ta(o.children,l.miembros,s,c);r.push(...x.nodes),i.push(...x.edges)}}),{nodes:r,edges:i}};function vn({members:t}){const[a,s]=p.useState([]),[n,r]=p.useState([]),{users:i,isLoading:o}=Ke();return p.useEffect(()=>{if(t&&!o){const d=va(t);Na(d);const{nodes:l,edges:c}=Ta(d,t,i);s(l),r(c)}},[t,i,o]),o?null:e.jsx(re.ReactFlow,{nodeTypes:yn,nodes:a,edges:n,draggable:!1,fitView:!0,defaultViewport:{x:0,y:0,zoom:1},minZoom:.5,maxZoom:2,defaultEdgeOptions:jn})}function _n({open:t,handleChange:a,members:s}){return e.jsx(bt,{open:t,handleChange:a,size:"xl",children:e.jsx("div",{className:"tw-mx-auto tw-bg-white",style:{width:"100%",height:"600px"},children:e.jsx(re.ReactFlowProvider,{children:e.jsx(vn,{members:s})})})})}const Nn=[5,10,25,50,100],Tn=({currentPage:t,pageCount:a,pageSize:s,total:n,pageSizeText:r="Filas por página:",elementsOfText:i="elementos de",optionsSize:o=Nn,onPageChange:d,handlePageSize:l=()=>{},className:c="",maxVisiblePages:u=5})=>{p.useEffect(()=>{t>a&&a>0&&d(a)},[t,a,d]);const f=x=>{x>=1&&x<=a&&d(x)},h=Math.min(t*s,n)||0,m=(()=>{const x=Math.min(Math.max(t,1),Math.max(a-u+1,1)),b=Math.min(x+u-1,a);return Array.from({length:b-x+1},(j,v)=>x+v)})(),g=x=>{l(x),f(1)};return e.jsx("div",{className:`mt-8 tw-absolute tw-bottom-0 tw-left-0 tw-right-0 tw-bg-silver-silver_white tw-px-8 tw-py-4 ${c}`,children:e.jsxs("div",{className:"tw-grid tw-w-full tw-grid-cols-[1fr] tw-grid-rows-3 tw-items-center tw-justify-center tw-gap-x-2 tw-gap-y-2 md:tw-grid-cols-[1fr,auto,1fr] md:tw-grid-rows-1 md:tw-justify-between",children:[a>1?e.jsxs("p",{className:"tw-text-center tw-text-xl tw-tracking-wider tw-text-black-black_light md:tw-text-left",children:[h," ",i," ",n]}):e.jsx("div",{}),a>1?e.jsxs("div",{className:"tw-flex tw-justify-center md:tw-justify-start",children:[e.jsx("button",{onClick:()=>f(1),className:"tw-relative tw-flex tw-items-center disabled:tw-opacity-40",disabled:t===1,children:e.jsx(ee.Icons,{icon:"double_angle",size:"xs",strokeWidth:4,classNameDiv:"tw-rotate-180"})}),e.jsx("button",{className:"tw-rounded tw-px-3 tw-py-1 disabled:tw-opacity-40",onClick:()=>f(t-1),disabled:t===1,children:e.jsx(ee.Icons,{icon:"angle_left_outline",size:"xs",strokeWidth:4})}),m.map(x=>e.jsx("button",{className:`tw-min-w-14 tw-px-3 tw-py-1 tw-text-xl tw-font-light ${t===x?"tw-text-blue-blue_dark":"tw-text-gray-gray_dark"}`,onClick:()=>f(x),children:x},x)),e.jsx("button",{className:"tw-rounded tw-px-3 tw-py-1 disabled:tw-opacity-40",onClick:()=>f(t+1),disabled:t===a,children:e.jsx(ee.Icons,{icon:"angle_right_outline",size:"xs",strokeWidth:4})}),e.jsx("button",{className:" tw-flex tw-items-center disabled:tw-opacity-40",onClick:()=>f(a),disabled:t===a,children:e.jsx(ee.Icons,{icon:"double_angle",size:"xs",strokeWidth:4})})]}):e.jsx("div",{}),e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-center tw-gap-x-4 md:tw-justify-end",children:[e.jsx("p",{className:"tw-text-xl tw-tracking-wider tw-text-[#696E79]",children:r}),e.jsx("select",{id:"page-size",value:s,onChange:x=>g(Number(x.target.value)),className:"tw-rounded tw-border tw-border-gray-gray_regular tw-px-4 tw-py-2 tw-text-xl tw-text-[#696E79]",children:o.map(x=>e.jsx("option",{value:x,children:x},x))})]})]})})};function Cn({children:t,queryHook:a,pageSize:s=5,Loading:n=null,loadingText:r="Cargando...",searchTerm:i="",filters:o={}}){const[d,l]=p.useState(1),[c,u]=p.useState(s),f=p.useCallback(x=>{l(x)},[]),h=p.useCallback(x=>{u(x)},[]),{status:w,data:m,isFetching:g}=a({page:d,pageSize:c,search:i,filters:o});return e.jsxs("div",{className:"tw-grid tw-h-full tw-grid-rows-[1fr,auto] tw-gap-y-8",children:[w==="pending"?n||e.jsx("div",{className:"tw-flex tw-items-center tw-justify-center",children:r}):e.jsx("div",{children:t((m==null?void 0:m.data)||[],g)}),e.jsx("div",{className:"tw-flex tw-justify-between",children:e.jsx(Tn,{currentPage:d,onPageChange:f,pageCount:m==null?void 0:m.meta.pagination.pageCount,pageSize:m==null?void 0:m.meta.pagination.pageSize,total:m==null?void 0:m.meta.pagination.total,handlePageSize:h})})]})}const En=p.memo(Cn);function Sn(){const[t,a]=p.useState(!1),{filters:s,defineFields:n}=ke(),[r,i]=p.useState(""),{user:o}=_e();return p.useEffect(()=>{i((s==null?void 0:s.search)||"")},[s]),p.useEffect(()=>{n([])},[n]),e.jsxs("div",{className:"tw-grid tw-h-full tw-grid-rows-[auto,1fr] tw-gap-y-8",children:[t&&e.jsx(ya,{handleChange:a,open:t}),(o==null?void 0:o.role)===fa&&e.jsx("div",{className:"tw-flex tw-items-center tw-justify-end",children:e.jsxs("button",{onClick:()=>a(!0),className:"tw-flex tw-items-center tw-gap-x-4 tw-text-xl tw-text-primary-regular",children:[e.jsx(ee.Icons,{icon:"plus_outline",size:"xs",strokeWidth:4}),"Nuevo equipo"]})}),e.jsx(En,{queryHook:dn,Loading:e.jsx(Pt,{}),searchTerm:r,filters:{nombre:""},children:(d,l)=>e.jsx(e.Fragment,{children:d.length===0&&!l?e.jsx("div",{className:"flex tw-h-full tw-items-center tw-justify-center",children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-center tw-gap-y-6",children:[e.jsx("p",{className:"tw-text-3xl tw-font-bold",children:r?"No se encontraron equipos con ese nombre":"¡Parece que aún no has creado un equipo!"}),!r&&e.jsx("button",{className:"tw-rounded-md tw-bg-primary-regular tw-px-16 tw-py-4 tw-text-white",onClick:()=>a(!0),children:"¡Empieza ahora!"})]})}):l?e.jsx(Pt,{}):e.jsx("div",{className:`tw-pb-16 ${l?"tw-opacity-0 tw-transition tw-duration-300":"tw-opacity-100 tw-transition tw-duration-300"}`,children:e.jsx(Fn,{teams:d})})})})]})}function Ca(){return e.jsx("div",{className:"tw-flex tw-animate-pulse tw-items-center tw-gap-x-2",children:Array.from({length:3},(t,a)=>e.jsx("div",{className:"tw-h-8 tw-w-8 tw-rounded-full tw-bg-gray-200"},a))})}function kn(){return e.jsx("div",{className:"tw-h-52 tw-w-full tw-animate-pulse tw-place-self-center tw-rounded-md tw-border tw-border-gray-100 tw-shadow-lg",children:e.jsxs("div",{className:"flex tw-h-full tw-w-full",children:[e.jsx("div",{className:"tw-h-full tw-rounded-bl-xl tw-rounded-tl-xl tw-border-l-[.6rem] tw-bg-gray-200"}),e.jsxs("div",{className:"flex flex-1 tw-p-6",children:[e.jsxs("div",{className:"flex-1 flex flex-col tw-h-full tw-justify-between",children:[e.jsx("div",{className:"tw-h-6 tw-w-32 tw-rounded tw-bg-gray-200"}),e.jsxs("div",{className:"flex tw-items-center tw-gap-x-6",children:[e.jsx("div",{className:"tw-h-5 tw-w-24 tw-rounded tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-5 tw-w-8 tw-rounded tw-bg-gray-200"})]}),e.jsx(Ca,{})]}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-justify-between",children:[e.jsx("div",{className:"tw-h-6 tw-w-6 tw-rounded tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-6 tw-w-6 tw-rounded tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-6 tw-w-6 tw-rounded tw-bg-gray-200"})]})]})]})})}function Pt({length:t}){const s=t?t>12?12:t:12;return e.jsx("div",{className:"tw-grid tw-h-full tw-w-full tw-grid-cols-1 tw-grid-rows-4 tw-items-baseline tw-gap-x-8 tw-gap-y-8 tw-overflow-y-auto md:tw-grid-cols-2 lg:tw-grid-cols-3 lg:tw-gap-x-32 xl:tw-grid-cols-4",children:Array.from({length:s},(n,r)=>e.jsx(kn,{},r))})}function In({members:t}){const{getImageOBP:a}=we(),{users:s,isLoading:n}=Ke();if(n)return e.jsx(Ca,{});const r=t.filter(o=>{var d,l;return(l=s[(d=o.idUser)==null?void 0:d.email])==null?void 0:l.image}).slice(0,3),i=t.length-r.length;if(r.length===0&&t.length>0){const o=Math.min(t.length,3),d=t.length-o;return e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[Array.from({length:o},(l,c)=>e.jsx("div",{className:`${c>0?"tw-ml-[-10px]":""}`,children:e.jsx(Te,{size:"m"})},c)),d>0&&e.jsx("div",{className:"tw-ml-[-10px] tw-flex tw-h-[32px] tw-w-[32px] tw-items-center tw-justify-center tw-rounded-full tw-border-2 tw-border-white tw-bg-primary-dark",children:e.jsxs("p",{className:"tw-text-sm tw-font-semibold tw-text-white",children:["+",d]})})]})}return e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[r.map((o,d)=>{var c;const l=s[(c=o.idUser)==null?void 0:c.email];return e.jsx("div",{className:`${d>0?"tw-ml-[-10px]":""}`,children:e.jsx(Te,{size:"m",imageUrl:a(l.image),alt:l==null?void 0:l.name})},o.id)}),i>0&&e.jsx("div",{className:"tw-ml-[-10px] tw-flex tw-h-[32px] tw-w-[32px] tw-items-center tw-justify-center tw-rounded-full tw-border-2 tw-border-white tw-bg-primary-dark",children:e.jsxs("p",{className:"tw-text-sm tw-font-semibold tw-text-white",children:["+",i]})})]})}function Dn({team:t}){const[a,s]=p.useState(!1),[n,r]=p.useState(!1),{user:i}=_e(),[o,d]=p.useState(!1),{handleApiError:l}=ba(),{showSuccess:c,showError:u}=Ge(),{deleteTeamHandler:f,isLoadingDeleteTeam:h}=ha(),w=async()=>{try{await f(t.id),c("Equipo eliminado correctamente")}catch(m){u(l(m))}};return e.jsxs("div",{className:"tw-h-52 tw-w-full tw-place-self-center tw-rounded-md tw-border tw-border-gray-100 tw-shadow-lg",children:[a&&e.jsx(ya,{handleChange:s,open:a,team:t}),o&&e.jsx(xa,{isLoading:h,open:o,handleChange:d,onConfirm:w,contentLabel:"Estás eliminando el equipo seleccionado"}),n&&e.jsx(_n,{handleChange:r,open:n,members:t.miembros}),e.jsxs("div",{className:"flex tw-h-full tw-w-full",children:[e.jsx("div",{className:"tw-h-full tw-rounded-bl-xl tw-rounded-tl-xl tw-border-l-[.6rem]",style:{borderColor:t.color}}),e.jsxs("div",{className:"flex flex-1 tw-p-6",children:[e.jsxs("div",{className:"flex-1 flex flex-col tw-h-full tw-justify-between",children:[e.jsx("p",{className:"tw-text-xl tw-font-semibold",children:t.nombre}),e.jsxs("div",{className:"flex tw-items-center tw-gap-x-6",children:[e.jsx("p",{className:"tw-text-lg tw-text-black-black_medium",children:"Integrantes:"})," ",e.jsx("p",{children:t.integrantes||0}),e.jsx(ee.Icons,{icon:"user",size:"xs",strokeWidth:4})]}),e.jsx("div",{children:e.jsx(In,{members:t.miembros_planos})})]}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-justify-between",children:[e.jsx("button",{onClick:()=>r(!0),children:e.jsx(ee.Icons,{icon:"eye",size:"xs",strokeWidth:4})}),(i==null?void 0:i.role)===fa&&e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:()=>s(!0),children:e.jsx(ee.Icons,{icon:"pencil",size:"xs",strokeWidth:4})}),e.jsx("button",{onClick:()=>d(!0),children:e.jsx(ee.Icons,{icon:"trash",size:"xs",strokeWidth:4})})]})]})]})]})]})}function Fn({teams:t}){return e.jsx("div",{className:"tw-grid tw-h-full tw-w-full tw-grid-cols-1 tw-grid-rows-4 tw-items-baseline tw-gap-x-8 tw-gap-y-8 tw-overflow-y-auto md:tw-grid-cols-2 lg:tw-grid-cols-3 lg:tw-gap-x-32 xl:tw-grid-cols-4",children:t==null?void 0:t.map(a=>e.jsx(Dn,{team:a},a.id))})}const Pn=({title:t})=>e.jsxs("div",{className:"flex-1 tw-flex tw-items-center tw-gap-x-4",children:[e.jsx(M.Icon,{background:!0,name:"PlantillaOutlined",color:"blue",size:"lg"}),e.jsx("h1",{className:"tw-text-[24px] tw-font-bold tw-leading-none",children:t})]}),Mt={fase_plantilla:"",tipo_plantilla:"",modo_configuracion:"",categoria:"",formato_salida:"",tipo_medio:"",medio_especifico:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},Mn={fase_plantilla:null,tipo_plantilla:null,modo_configuracion:null,categoria:null,formato_salida:null,tipo_medio:null,medio_especifico:null,responsable_impresion:null,pertenencia_medio:null,ubicacion_medio:null},An={fase_plantilla:"",tipo_plantilla:"",categoria:"",tipo_medio:"",medio_especifico:"",modo_configuracion:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},At={tipo_plantilla:!0,modo_configuracion:!0,categoria:!0,formato_salida:!0,tipo_medio:!0,medio_especifico:!0,responsable_impresion:!0,pertenencia_medio:!0,ubicacion_medio:!0},Se=qe.create(t=>({path:"",viewMode:"grid",isOpenModalLimit:!1,template:null,clave:"XX-XXX-XX-XXX-XX-X-X",templateFormData:Mt,disabledFields:At,claveParams:An,paramsTipo:Mn,isEditTemplate:!1,openModalCreateTemplate:!1,currentTemplateForEdit:null,refetch:null,openModalUnsavedChanges:!1,isDuplicateTemplate:!1,hasFormChanges:!1,openModalPublishTemplate:!1,currentTemplateId:null,openModalDeleteTemplate:!1,setPath:a=>t({path:a}),setViewMode:a=>t({viewMode:a}),setIsOpenModalLimit:a=>t({isOpenModalLimit:a}),setTemplate:a=>t({template:a}),setClave:a=>t({clave:a}),setTemplateFormData:a=>{t(s=>({templateFormData:{...s.templateFormData,...a}}))},resetTemplateFormData:()=>t({templateFormData:Mt}),setDisableField:({fields:a,value:s})=>{for(const n of a)t(r=>({disabledFields:{...r.disabledFields,[n]:s}}))},resetDisabledFields:()=>t({disabledFields:At}),setClaveParams:({field:a,value:s})=>{t(n=>({claveParams:{...n.claveParams,[a]:s}}))},resetClave:()=>t(a=>({clave:"XX-XXX-XX-XXX-XX-X-X"})),setParamTipo:a=>t(s=>({paramsTipo:{...s.paramsTipo,...a}})),setIsEditTemplate:a=>t({isEditTemplate:a}),setOpenModalCreateTemplate:a=>t({openModalCreateTemplate:a}),setCurrentTemplateForEdit:a=>t({currentTemplateForEdit:a}),setRefetch:a=>t({refetch:a}),setOpenModalUnsavedChanges:a=>t({openModalUnsavedChanges:a}),setIsDuplicateTemplate:a=>t({isDuplicateTemplate:a}),setHasFormChanges:a=>t({hasFormChanges:a}),setOpenModalPublishTemplate:a=>t({openModalPublishTemplate:a}),setCurrentTemplateId:a=>t({currentTemplateId:a}),setOpenModalDeleteTemplate:a=>t({openModalDeleteTemplate:a})})),Re={search:"",debouncedSearch:"",filters:[]},On={"kanban-general":{...Re},"lista-campanias":{...Re},"kanban-campania":{...Re},"teams-container":{...Re},"templates-container":{...Re}},jt=qe.create((t,a)=>({viewFilters:On,currentPath:null,debounceTimeouts:{},setCurrentPath:s=>{const n=a().currentPath;t({currentPath:s}),n&&n!==s&&a().resetPathData(n)},setSearch:(s,n)=>{const r=n||a().currentPath;if(!r)return;const i=`search_${r}`,o=a().debounceTimeouts[i];o&&clearTimeout(o),t(l=>({viewFilters:{...l.viewFilters,[r]:{...l.viewFilters[r],search:s}}}));const d=setTimeout(()=>{t(l=>({viewFilters:{...l.viewFilters,[r]:{...l.viewFilters[r],debouncedSearch:s}},debounceTimeouts:{...l.debounceTimeouts,[i]:void 0}}))},500);t(l=>({debounceTimeouts:{...l.debounceTimeouts,[i]:d}}))},setFilters:(s,n)=>{const r=n||a().currentPath;r&&t(i=>({viewFilters:{...i.viewFilters,[r]:{...i.viewFilters[r],filters:s}}}))},getSearch:s=>{var r;const n=s||a().currentPath;return n&&((r=a().viewFilters[n])==null?void 0:r.search)||""},getDebouncedSearch:s=>{var r;const n=s||a().currentPath;return n&&((r=a().viewFilters[n])==null?void 0:r.debouncedSearch)||""},getFilters:s=>{var r;const n=s||a().currentPath;return n?((r=a().viewFilters[n])==null?void 0:r.filters)||[]:[]},resetPathData:s=>{const n=`search_${s}`,r=a().debounceTimeouts[n];r&&clearTimeout(r),t(i=>({viewFilters:{...i.viewFilters,[s]:{...Re}},debounceTimeouts:{...i.debounceTimeouts,[n]:void 0}}))}})),qn=t=>{const{getSearch:a,getDebouncedSearch:s,setSearch:n,getFilters:r,setFilters:i,resetPathData:o}=jt();return{search:a(t),debouncedSearch:s(t),filters:r(t),setSearch:d=>n(d,t),setFilters:d=>i(d,t),resetData:()=>o(t)}};function Ln(t){const{users:a}=ta(),{tasks_api:s,getImageOBP:n}=we(),r=p.useMemo(()=>a.data?a.data.map(d=>{const{tasksUser:l,image:c}=d,u=n(c);return{value:l.id,label:l.nombre,icon:u}}):[],[a.data]),i=async d=>{const l=Pe.stringify({populate:{params_plantillas:{fields:["id","abbreviation","name","active","tipomedio_nombre","reference_id"]}},sort:["order:asc"],fields:["id","step","key","label","order"]},{encodeValuesOnly:!0}),{data:c}=await d.get(`/api/params-tipos?${l}`);return ge(c.data).flatMap((f,h)=>{const w={id:`group-${h+1}`,label:f.label,value:`group-${h+1}`,isGroupTitle:!0},m=f.params_plantillas.map(g=>({id:g.id,label:g.name,value:g.id,checked:!1,icon:"CheckCircleOutlined",iconColor:"blue"}));return[w,...m]})},o=de.useQuery({queryKey:["paramsPlantilla"],queryFn:()=>i(s),enabled:t==="templates-container",staleTime:1e3*60*30});return{userOptions:r,paramsPlantillasOptions:o.data||[]}}const Rn={estatus:{label:"Estatus de plantilla",type:"dropdown",placeholder:"Selecciona uno...",options:[{value:"draft",label:"Borrador"},{value:"published",label:"Publicada"}],keyName:"estatus"},publication_date:{label:"Fecha de publicación",placeholder:"Ingresa una fecha...",type:"date",keyName:"publication_date"},propietario:{label:"Encargado de plantilla",type:"dropdown",placeholder:"Selecciona uno...",options:[],keyName:"propietario"},created_by:{label:"Creador de plantilla",type:"dropdown",placeholder:"Selecciona uno...",options:[],keyName:"created_by"},updated_by:{label:"Editor de plantilla",type:"dropdown",placeholder:"Selecciona uno...",options:[],keyName:"updated_by"},params_plantillas:{label:"Parámetro de plantilla",type:"group",placeholder:"Selecciona uno o varios...",options:[],keyName:"params_plantillas"}},zn={"templates-container":Rn,"kanban-general":null,"lista-campanias":null,"kanban-campania":null},$n=t=>({inputFilters:zn[t]||null}),Bn=t=>{const{inputFilters:a}=$n(t),{userOptions:s,paramsPlantillasOptions:n}=Ln(t);return{inputFilters:p.useMemo(()=>s.length>0&&n.length>0?[{...a.estatus},{...a.publication_date},{...a.propietario,options:s},{...a.created_by,options:s},{...a.updated_by,options:s},{...a.params_plantillas,options:n}]:null,[s,n])}};function Hn(){const{setFilters:t}=jt(),{refetch:a}=Se();return{handleApplyFilters:n=>{let r={...n};r=Object.fromEntries(Object.entries(r).filter(([i,o])=>!(o===""||o===null||Array.isArray(o)&&o.length===0))),"publication_date"in r&&r.publication_date!==""&&(r={...r,publication_date:it(r.publication_date).format("YYYY-MM-DD")}),t(r,"templates-container"),a&&a()}}}const be=qe.create((t,a)=>({mode:"grid",id:null,setMode:(s,n)=>{const r=a();if(s==="grid"||r.id!==null&&r.id!==n){const{clearAllGroupData:o}=a();o()}t({mode:s,id:n??null})},setId:s=>t({id:s}),reset:()=>{const{clearAllGroupData:s}=a();s(),t({mode:"grid",id:null})},addNode:null,addBranch:null,addNodeFromHandle:null,addNodeWithType:null,savePositions:null,loadPositions:null,clearPositions:null,activePlusNode:null,templateViewModes:{},setViewMode:(s,n)=>{const{templateViewModes:r}=a();t({templateViewModes:{...r,[s]:n}})},getViewMode:s=>{const{templateViewModes:n}=a();return n[s]??"readonly"},clearViewMode:s=>{const{templateViewModes:n}=a(),r={...n};delete r[s],t({templateViewModes:r})},expandedGroups:new Set,groupTemplateData:{},toggleGroupExpansion:s=>{const{expandedGroups:n}=a(),r=new Set(n);r.has(s)?r.delete(s):r.add(s),t({expandedGroups:r})},setGroupTemplateData:(s,n)=>{const{groupTemplateData:r}=a();t({groupTemplateData:{...r,[s]:n}})},clearGroupTemplateData:s=>{const{groupTemplateData:n}=a(),r={...n};delete r[s],t({groupTemplateData:r})},clearAllGroupData:()=>{t({expandedGroups:new Set,groupTemplateData:{}})},copiedNodes:[],setCopiedNodes:s=>t({copiedNodes:s}),clearCopiedNodes:()=>t({copiedNodes:[]}),expandGroup:null,collapseGroup:null})),Un=({path:t})=>t==="templates-container"?Kr():{header:null,body:null},Wn=({startPath:t,children:a})=>{const{path:s,setPath:n}=Se(),{setCurrentPath:r,getSearch:i,setSearch:o}=jt(),{inputFilters:d}=Bn(t),{handleApplyFilters:l}=Hn();p.useEffect(()=>{n(t),r(t)},[t]);const{header:c,body:u}=Un({path:s}),{viewMode:f,setViewMode:h}=Se(),{mode:w}=be(),m=i();return e.jsxs(M.Card,{fullWidth:!0,className:"tw-h-full",children:[e.jsxs(M.Card.Header,{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-4",children:[c,w==="grid"&&e.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-justify-between tw-gap-2.5 md:tw-flex-nowrap",children:[e.jsx(M.Input,{leftSlot:"SearchOutlined",placeholder:"Buscar...",size:"sm",value:m,onChange:g=>o(g.target.value)}),e.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-x-2.5 md:tw-flex-nowrap",children:[d&&e.jsx(M.Filters,{filters:d,onApply:l}),e.jsx(M.Button,{variant:"outlined",color:"white",colorIcon:"neutral",icon:f==="list"?"GridOutlined":"ListOutlined",className:"tw-min-w-fit ",onClick:()=>h(f==="list"?"grid":"list")})]})]})]}),e.jsx(M.Card.Separator,{}),e.jsx(M.Card.Body,{fullHeight:!0,className:"tw-flex tw-flex-1 tw-flex-col tw-gap-y-4",children:u})]})},Gn=()=>e.jsx(Pn,{title:"Plantillas"}),Fe=qe.create(t=>({activeTemplate:null,setActiveTemplate:a=>t({activeTemplate:a}),clearActiveTemplate:()=>t({activeTemplate:null})})),Ea=()=>{const{tasks_api:t}=we();return{getTemplateWithTasks:async s=>{var n;try{const r=Pe.stringify({filters:{plantilla:{id:s}}},{encodeValuesOnly:!0}),i=await t.get(`/api/plantillas/plantilla-tareas-grafico?${r}`);if(i.data&&i.data.data)return i.data.data;throw new Error(`No se encontraron datos para la plantilla con ID ${s}`)}catch(r){throw console.error("Error en getTemplateWithTasks:",{error:r.message,status:(n=r.response)==null?void 0:n.status}),r}}}},ve={DIRTY:"dirty",IDLE:"idle",NEW:"new"},Ee={DRAFT:"draft",PUBLISHED:"published",DELETED:"deleted"},ze="templates",$e="templates_states";function Kn(t,a){return qe.create((s,n)=>{let r=null;const i=f=>s({isLoading:f}),o=f=>s({error:f}),d=f=>s({data:f}),l=()=>new Promise((f,h)=>{const w=indexedDB.open(t.name,t.version);w.onerror=()=>{o("Error al abrir la base de datos"),h(new Error("Error al abrir la base de datos"))},w.onsuccess=()=>{r=w.result,s({isConnected:!0,error:null}),f(r)},w.onupgradeneeded=m=>{const g=m.target.result;t.stores.forEach(x=>{var b;if(!g.objectStoreNames.contains(x.name)){const j=g.createObjectStore(x.name,{keyPath:x.keyPath,autoIncrement:x.autoIncrement??!1});(b=x.indexes)==null||b.forEach(v=>{j.createIndex(v.name,v.keyPath,v.options)})}})}}),c=(f="readonly")=>{if(!r)throw new Error("Base de datos no conectada");return r.transaction(a,f)},u=(f="readonly")=>c(f).objectStore(a);return{data:[],isLoading:!1,error:null,isConnected:!1,connect:async()=>{try{i(!0),o(null),await l(),await n().getAll()}catch(f){o(f instanceof Error?f.message:"Error desconocido")}finally{i(!1)}},disconnect:()=>{r&&(r.close(),r=null,s({isConnected:!1,data:[]}))},add:async f=>{try{i(!0),o(null);const h=u("readwrite");return new Promise((w,m)=>{const g=h.add(f);g.onsuccess=async()=>{await n().getAll(),w()},g.onerror=()=>{o("Error al agregar elemento"),m(new Error("Error al agregar elemento"))}})}finally{i(!1)}},addMany:async f=>{try{i(!0),o(null);const h=u("readwrite");return new Promise((w,m)=>{let g=0,x=!1;f.forEach(b=>{const j=h.add(b);j.onsuccess=()=>{g++,g===f.length&&!x&&n().getAll().then(()=>w())},j.onerror=()=>{x||(x=!0,o("Error al agregar elementos"),m(new Error("Error al agregar elementos")))}})})}finally{i(!1)}},get:async f=>{try{o(null);const h=u();return new Promise((w,m)=>{const g=h.get(f);g.onsuccess=()=>{w(g.result)},g.onerror=()=>{o("Error al obtener elemento"),m(new Error("Error al obtener elemento"))}})}catch(h){o(h instanceof Error?h.message:"Error desconocido");return}},getAll:async()=>{try{o(null);const f=u();return new Promise((h,w)=>{const m=f.getAll();m.onsuccess=()=>{const g=m.result;d(g),h(g)},m.onerror=()=>{o("Error al obtener elementos"),w(new Error("Error al obtener elementos"))}})}catch(f){return o(f instanceof Error?f.message:"Error desconocido"),[]}},update:async(f,h)=>{try{i(!0),o(null);const w=u("readwrite");return new Promise((m,g)=>{const x=w.get(f);x.onsuccess=()=>{const b=x.result;if(!b){o("Elemento no encontrado"),g(new Error("Elemento no encontrado"));return}const j={...b,...h},v=w.put(j);v.onsuccess=async()=>{await n().getAll(),m()},v.onerror=()=>{o("Error al actualizar elemento"),g(new Error("Error al actualizar elemento"))}},x.onerror=()=>{o("Error al obtener elemento para actualizar"),g(new Error("Error al obtener elemento para actualizar"))}})}finally{i(!1)}},delete:async f=>{try{i(!0),o(null);const h=u("readwrite");return new Promise((w,m)=>{const g=h.delete(f);g.onsuccess=async()=>{await n().getAll(),w()},g.onerror=()=>{o("Error al eliminar elemento"),m(new Error("Error al eliminar elemento"))}})}finally{i(!1)}},clear:async()=>{try{i(!0),o(null);const f=u("readwrite");return new Promise((h,w)=>{const m=f.clear();m.onsuccess=()=>{d([]),h()},m.onerror=()=>{o("Error al limpiar store"),w(new Error("Error al limpiar store"))}})}finally{i(!1)}},query:async(f,h)=>{try{o(null);const m=u().index(f);return new Promise((g,x)=>{const b=m.getAll(h);b.onsuccess=()=>{g(b.result)},b.onerror=()=>{o("Error en consulta"),x(new Error("Error en consulta"))}})}catch(w){return o(w instanceof Error?w.message:"Error desconocido"),[]}},queryRange:async(f,h,w)=>{try{o(null);const g=u().index(f);return new Promise((x,b)=>{const j=IDBKeyRange.bound(h,w),v=g.getAll(j);v.onsuccess=()=>{x(v.result)},v.onerror=()=>{o("Error en consulta por rango"),b(new Error("Error en consulta por rango"))}})}catch(m){return o(m instanceof Error?m.message:"Error desconocido"),[]}}}})}const nt=new Map;function Ot(t,a,s=!0){const n=p.useMemo(()=>{const v=`${t.name}-${a}`;if(!nt.has(v)){const L=Kn(t,a);nt.set(v,L)}return nt.get(v)},[t.name,a]);p.useEffect(()=>{s&&!n.getState().isConnected&&n.getState().connect()},[s,n]);const r=n(v=>v.data),i=n(v=>v.isLoading),o=n(v=>v.error),d=n(v=>v.isConnected),l=p.useCallback(()=>n.getState().connect(),[n]),c=p.useCallback(()=>n.getState().disconnect(),[n]),u=p.useCallback(v=>n.getState().add(v),[n]),f=p.useCallback(v=>n.getState().addMany(v),[n]),h=p.useCallback(v=>n.getState().get(v),[n]),w=p.useCallback(()=>n.getState().getAll(),[n]),m=p.useCallback((v,L)=>n.getState().update(v,L),[n]),g=p.useCallback(v=>n.getState().delete(v),[n]),x=p.useCallback(()=>n.getState().clear(),[n]),b=p.useCallback((v,L)=>n.getState().query(v,L),[n]),j=p.useCallback((v,L,S)=>n.getState().queryRange(v,L,S),[n]);return{data:r,isLoading:i,error:o,isConnected:d,connect:l,disconnect:c,add:u,addMany:f,get:h,getAll:w,update:m,delete:g,clear:x,query:b,queryRange:j}}const Sa=p.createContext(void 0);function Qn({children:t}){const[a,s]=p.useState(!1),[n,r]=p.useState(!0),[i,o]=p.useState(null),d={name:"template_tabs_v1",version:2,stores:[{name:ze,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]},{name:$e,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]}]},l=Ot(d,ze,!0),c=Ot(d,$e,!0),u=p.useRef(new Map);u.current.has(ze)||u.current.set(ze,l),u.current.has($e)||u.current.set($e,c);const f=l.isConnected,h=l.error;p.useEffect(()=>{u.current.set(ze,l),u.current.set($e,c)},[l,c]);const w=p.useCallback(g=>{const x=u.current.get(g);if(!x)throw new Error(`Store ${g} no encontrado. Asegúrate de que esté configurada en indexedDBConfig.`);return{data:x.data,isLoading:x.isLoading,add:x.add,addMany:x.addMany,get:x.get,getAll:x.getAll,update:x.update,delete:x.delete,clear:x.clear,query:x.query,queryRange:x.queryRange,error:x.error}},[]);p.useEffect(()=>{(async()=>{try{if(r(!0),o(null),await l.connect(),f)s(!0);else throw new Error("No se pudo establecer la conexión con IndexedDB")}catch(x){o(x instanceof Error?x.message:"Error desconocido")}finally{r(!1)}})()},[l.connect,f]),p.useEffect(()=>{h&&o(h)},[h]);const m={isInitialized:a,isInitializing:n,error:i,isConnected:f,getStore:w};return e.jsx(Sa.Provider,{value:m,children:t})}function ka(){const t=p.useContext(Sa);if(t===void 0)throw new Error("useIndexedDBContext debe usarse dentro de IndexedDBProvider");return t}function vt(){const{getStore:t}=ka();return t(ze)}function Ia(){const{add:t}=vt(),a=async o=>{try{await t(o)}catch(d){console.error("Error al guardar plantilla a indexDB:",d)}},s=async o=>{const d={},l=c=>{c.id&&(d[c.id]=c),c.tareas&&Array.isArray(c.tareas)&&c.tareas.forEach(u=>{l(u)}),c.ids_t_dependientes&&Array.isArray(c.ids_t_dependientes)&&c.ids_t_dependientes.forEach(u=>{typeof u=="object"&&u.id&&l(u)}),c.plantilla_dependents&&Array.isArray(c.plantilla_dependents)&&c.plantilla_dependents.forEach(u=>{u.tarea_plantillas&&Array.isArray(u.tarea_plantillas)&&u.tarea_plantillas.forEach(f=>{l(f)})})};return o.tarea_plantillas.forEach(c=>{l(c)}),d},n=(o,d)=>{const l=d[o];if(!l)return[];const c=[l];return l.tareas&&Array.isArray(l.tareas)&&l.tareas.forEach(u=>{u.id&&c.push(...n(u.id,d))}),l.ids_t_dependientes&&Array.isArray(l.ids_t_dependientes)&&l.ids_t_dependientes.forEach(u=>{typeof u=="object"&&u.id?c.push(...n(u.id,d)):typeof u=="number"&&d[u]&&c.push(...n(u,d))}),c},r=(o,d)=>{const l=d[o];if(!l)return[];const c=[l];return l.tarea_padre&&d[l.tarea_padre]&&c.unshift(...r(l.tarea_padre,d)),c};return{hydrateTasks:async o=>{var c,u;const d=await s(o);return(u=(c=o==null?void 0:o.graph_layout)==null?void 0:c.snapshot)==null?void 0:u.nodes.map(f=>{if(f.type==="group")return{...f,data:{...f.data,type:"template"},type:"group",selected:!1};const h=f.data.tareaId?d[f.data.tareaId]:o;return h!=null&&h.start?{...f,data:{...h.plantilla,id:h.id},selected:!1}:{...f,data:{...h,type:"task"},selected:!1}})},initializeTemplateStore:a,indexedTasks:s,getTaskHierarchy:n,getTaskPath:r}}function Da(){const{getStore:t}=ka();return t($e)}const Xe=()=>{const{add:t,get:a,delete:s,update:n}=Da(),{get:r}=vt(),i={created:[],updated:[],deleted:[]},o=async({templateId:w})=>{const m=await a(w);return m||null};return{addTaskToState:async({task:w})=>{const m=await o({templateId:w.plantilla.id}),g=await r(w.plantilla.id);if(console.log("🔄 template:",g),!m)t({...i,id:w.plantilla.id,created:[...i.created,w]});else{const x=m.created.findIndex(b=>b.id===w.id);if(x!==-1){const b=m.created[x];m.created[x]={...b,...w},await n(w.plantilla.id,m)}else m.created.push(w),await n(w.plantilla.id,m)}},getTaskFromState:o,removeTemplateStates:async w=>{await s(w)},updateTaskInState:async({task:w})=>{const m=await o({templateId:w.plantilla.id}),x=(await r(w.plantilla.id)).graph_layout.snapshot.nodes;if(console.log("🔄 nodes:",x),m){const b=m.updated.findIndex(j=>j.id===w.id);if(b!==-1){const j=m.updated[b];console.log("🔄 currentTask:",j),m.updated[b]={...j,...w}}else m.updated.push(w);await n(w.plantilla.id,m)}else t({...i,id:w.plantilla.id,updated:[...i.updated,w]})},removeTaskFromState:async({templateId:w,id:m})=>{const g=await o({templateId:w});if(g){if(m>0){const b=g.deleted.findIndex(j=>j===m);if(b!==-1){g.deleted.splice(b,1),await n(w,g);return}}const x=g.created.findIndex(b=>b.id===m);if(x!==-1){g.created.splice(x,1),await n(w,g);return}}else if(m>0){t({...i,id:w,deleted:[...i.deleted,m]});return}},removeParentIdFromNodes:async({templateId:w,id:m})=>{const g=await o({templateId:w});if(g){const x=g.created.findIndex(j=>j.id===m);if(x!==-1){g.created[x].tarea_padre=null,g.created[x].id_t_requerida=null,await n(w,g);return}const b=g.updated.findIndex(j=>j.id===m);if(b!==-1){g.updated[b].tarea_padre=null,g.updated[b].id_t_requerida=null,await n(w,g);return}}},updateNodeWithNewEdge:async({templateId:w,edge:m,task:g})=>{console.log("🔵 updateNodeWithNewEdge - Inicio",{templateId:w,taskId:g.id,taskData:g});const x=await o({templateId:w});if(console.log("🔵 updateNodeWithNewEdge - Estado actual:",x),x){console.log("🔵 updateNodeWithNewEdge - Estado existe, buscando tarea...");const b=x.created.findIndex(v=>v.id===g.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en created:",b),b!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en created"),x.created[b]=g,await n(w,x),console.log("✅ updateNodeWithNewEdge - Actualizado en created");return}const j=x.updated.findIndex(v=>v.id===g.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en updated:",j),j!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en updated"),x.updated[j]=g,await n(w,x),console.log("✅ updateNodeWithNewEdge - Actualizado en updated");return}if(console.log("🔵 updateNodeWithNewEdge - Tarea no encontrada en arrays"),g.id&&g.id!==0){const v=g.id<0;v?(console.log("🔵 updateNodeWithNewEdge - Agregando a created (tarea nueva)"),x.created.push(g)):(console.log("🔵 updateNodeWithNewEdge - Agregando a updated (tarea existente)"),x.updated.push(g)),await n(w,x),console.log("✅ updateNodeWithNewEdge - Tarea agregada exitosamente a",v?"created":"updated")}else console.error("❌ updateNodeWithNewEdge - task.id no válido para agregar:",g.id)}else if(console.log("🔵 updateNodeWithNewEdge - Creando nuevo estado"),g.id&&g.id!==0){const b=g.id<0,j={...i,id:w,created:b?[g]:[],updated:b?[]:[g]};console.log("🔵 updateNodeWithNewEdge - Nuevo estado:",j,b?"(created)":"(updated)"),t(j),console.log("✅ updateNodeWithNewEdge - Estado creado exitosamente")}else console.error("❌ updateNodeWithNewEdge - task.id no válido:",g.id);console.log("🔵 updateNodeWithNewEdge - Fin")}}};function Ae(){const{activeTemplate:t,setActiveTemplate:a}=Fe(),{mode:s,setMode:n,setViewMode:r,clearViewMode:i}=be(),{template:o,setIsOpenModalLimit:d,setOpenModalUnsavedChanges:l,setOpenModalPublishTemplate:c,setOpenModalDeleteTemplate:u}=Se(),{hydrateTasks:f}=Ia(),{addTaskToState:h,removeTemplateStates:w}=Xe(),m=de.useQueryClient(),{data:g,add:x,update:b,get:j,getAll:v,delete:L,isLoading:S,error:k}=vt(),{get:N}=Da(),{getTemplateWithTasks:_}=Ea(),{tasks_api:P}=we(),[F,y]=p.useState(!1),[X,B]=p.useState(!1),[I,O]=p.useState(!1),H=p.useMemo(()=>g.sort((E,z)=>E.order-z.order),[g]);p.useEffect(()=>{H.length===0&&s!=="grid"&&n("grid")},[H,s,n]);const U=async(D,E=ve.IDLE)=>{var z;try{const A=await _(D.id),C=await f(A),V={id:crypto.randomUUID(),data:A,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},$=C||[V],J={...A,graph_layout:{...A==null?void 0:A.graph_layout,snapshot:{...(z=A==null?void 0:A.graph_layout)==null?void 0:z.snapshot,nodes:$}},estatus:E,estatusFromStrapi:A.estatus};await x(J)}catch(A){console.warn("No se pudieron obtener los datos completos de la plantilla, creando versión básica:",A);const C=D,V={id:crypto.randomUUID(),data:C,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},$={id:C.id,snapshot:{nodes:[V],edges:[],viewport:{x:0,y:0,zoom:1}},history:null,zoom:1,position:{x:0,y:0}},J={...C,graph_layout:C.graph_layout||$,estatus:E,tarea_plantillas:C.tarea_plantillas||[]};await x(J)}},K=async({template:D,checkTemplateInIndexedDB:E=!1,statusTemplate:z=ve.IDLE})=>{const A=H;if(!A.find(V=>V.id===D.id)){if(A.length===5){d(!0);return}if(E&&await j(D.id))return;await U({...D,order:A.length+1},z)}await ae(D.id),await te(D),n("create-edit",D==null?void 0:D.id)},te=async D=>{const E=await j(D.id);a(E)},ae=async D=>{try{let E=await v();E.sort((A,C)=>(A.order||0)-(C.order||0));const z=E.findIndex(A=>A.id===D);if(z!==-1){const[A]=E.splice(z,1);E.unshift(A),E.forEach((V,$)=>{V.order=$+1});const C=E.map(V=>b(V.id,V));await Promise.all(C)}else return}catch{}},Z=async D=>{try{await L(D),i(D);const E=await v();E.forEach((A,C)=>{A.order=C+1});const z=E.map(A=>b(A.id,A));await Promise.all(z)}catch{}};return{screens:H,isLoading:S,error:k,add:x,data:g,addScreen:U,openTemplate:K,update:b,delete:Z,get:j,activeTemplate:t,activateTemplate:te,reorderingTemplates:ae,replaceTemplate:async()=>{try{const D=[...H],E={...D[D.length-1]};await L(E.id);const z={...o,order:E.order};await U(z);const C=(await v()).sort(($,J)=>$.order-J.order);if(C.some(($,J)=>($.order||0)!==J+1)){const $=C.map((J,ne)=>({...J,order:ne+1}));for(const J of $)try{await b(J.id,J)}catch{}}}catch{}finally{d(!1)}},addTaskUpdatingTemplate:async(D,E,z="hija")=>{var $,J,ne,oe;const A=await j(E);if(!A)return null;const C={id:D.id,uuid:crypto.randomUUID(),reference_graph:D.reference_graph,texto_corto:D.title,texto_largo:D.description||"",prioridad:D.priority||null,nivel_dificultad:D.difficulty||1,duracion:D.duration||null,start:!1,type:"task",equipo:{id:Number(D.team)||null},responsable:{id:Number(D.responsible)||null},plantilla:{id:A.id,clave:A.clave,categoria:A.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:z==="dependiente"?(J=($=D.parent)==null?void 0:$.data)==null?void 0:J.id:null,ids_t_dependientes:[],tarea_padre:z==="hija"?(oe=(ne=D.parent)==null?void 0:ne.data)==null?void 0:oe.id:null,tareas:[]},V={...A,estatus:ve.DIRTY};return await b(E,V),t&&t.id===E&&a(V),await h({task:C}),C},addTemplateUpdatingTemplate:async(D,E,z,A="hija")=>{let C=null;if(t&&t.id===E?C=t:C=await j(E),!C)return null;const V=(J,ne,oe,ie)=>{for(let ce=0;ce<J.length;ce++){const ue=J[ce];if(ue.id===ne||ue.uuid===ne)return ie==="dependiente"?(ue.plantilla_dependents||(ue.plantilla_dependents=[]),ue.plantilla_dependents.push(oe)):ie==="hija"&&(ue.plantilla_dependents||(ue.plantilla_dependents=[]),ue.plantilla_dependents.push(oe)),!0;if(ue.tareas&&ue.tareas.length>0){const le=V(ue.tareas,ne,oe,ie);if(le)return le}}return!1};if(V(C.tarea_plantillas,z,D,A)){const J={...C,estatus:ve.DIRTY,updatedAt:new Date().toISOString()};return await b(E,J),t&&t.id===E&&a(J),!0}else return!1},updateGraphLayout:async(D,E)=>{var z;if(!D){console.warn("⚠️ updateGraphLayout - Template ID no válido");return}try{const A=await j(D);if(!A){console.warn("⚠️ updateGraphLayout - Template no encontrado");return}const C=(E.nodes||[]).filter(ie=>{var ce;return!((ce=ie.data)!=null&&ce.isInternal)&&!ie.parentId}).map(ie=>{const{style:ce,measured:ue,data:le,...pe}=ie,{expandedDimensions:xe,isExpanded:fe,needsReExpansion:Me,...he}=le||{},Oe=ce?{...ce,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...pe,style:Oe,data:he,position:ie.position}}),V=(E.edges||[]).filter(ie=>{var ce;return!((ce=ie.data)!=null&&ce.isInternal)}).map(ie=>{var ce;if((ce=ie.data)!=null&&ce.redirectedToInternal){const{redirectedToInternal:ue,originalTarget:le,...pe}=ie.data;return{...ie,target:le||ie.target,data:pe}}return ie}),$={...E,nodes:C,edges:V},J=(z=A.graph_layout)==null?void 0:z.snapshot;if(!(!J||JSON.stringify(J)!==JSON.stringify($)))return;const oe={...A,graph_layout:{...A.graph_layout,snapshot:$},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await b(D,oe),t&&t.id===D&&a(oe)}catch(A){console.error("❌ updateGraphLayout - Error:",A)}},saveTemplateChanges:async(D=!0)=>{try{if(t.estatus===ve.DIRTY){B(!0);const{id:E}=t,z=await j(E),A=await N(E),C=z.graph_layout.snapshot.nodes||[],V=C.filter(oe=>{var ie;return!((ie=oe.data)!=null&&ie.isInternal)&&!oe.parentId}),$=C.length-V.length;$>0&&console.warn(`💾 [saveTemplateChanges] Se filtraron ${$} nodos internos al guardar plantilla ${E}`);const J={graph_layout:{...z.graph_layout,snapshot:{...z.graph_layout.snapshot,nodes:V.map(oe=>{const{style:ie,measured:ce,selected:ue,...le}=oe,pe=ie?{...ie,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return oe.type==="group"?{...le,style:pe,data:{tareaId:oe.data.id&&oe.data.id>0?oe.data.id:null,clave:oe.data.clave,estatus:oe.data.estatus,updatedAt:oe.data.updatedAt,id:oe.data.id}}:{...le,style:pe,data:{tareaId:oe.data.id&&oe.data.id>0?oe.data.id:null}}}),edges:(z.graph_layout.snapshot.edges||[]).filter(oe=>{var ie;return!((ie=oe.data)!=null&&ie.isInternal)})}},tasks:{created:(A==null?void 0:A.created)||[],updated:(A==null?void 0:A.updated)||[],deleted:(A==null?void 0:A.deleted)||[]}},ne=await P.post("/api/tareas/save-tareas-grafico",{data:J});if(ne.data&&ne.status===200){if(console.log("🗑️ Invalidando caché de la plantilla:",E),await m.invalidateQueries({queryKey:["template",E]}),await m.invalidateQueries({queryKey:["template"]}),console.log("✅ Caché invalidado exitosamente"),w(E),D)Z(E),l(!1);else{const oe={...t,estatus:ve.IDLE};await b(E,oe),a(oe)}r(E,"readonly")}}}catch(E){console.log(E)}finally{B(!1)}},publishTemplate:async D=>{try{y(!0);const E={estatus:Ee.PUBLISHED,publication_date:new Date},z=await P.put(`/api/plantillas/plantilla-update-estatus/${D}`,{data:E});z.data&&z.status===200&&(a({...t,estatusFromStrapi:Ee.PUBLISHED}),c(!1),M.toast.info("Se publicó correctamente el proceso"))}catch(E){console.log(E),M.toast.error("Surgió un error al publicar el proceso")}finally{y(!1)}},deleteTemplate:async D=>{try{O(!0);const E={estatus:Ee.DELETED,sjdaksd:0},z=await P.put(`/api/plantillas/plantilla-update-estatus/${D}`,{data:E});z.data&&z.status===200&&(u(!1),M.toast.info("Se eliminó correctamente el proceso"))}catch(E){console.error(E),M.toast.error("Surgión un error al eliminar el proceso")}finally{O(!1)}},loadingPublishTemplate:F,loadingSaveChanges:X,loadingDeleteTemplate:I}}const Fa=()=>{const{users:t,isLoading:a}=Ke(),{getImageOBP:s}=we();return{getImageByEmail:i=>{const o=t==null?void 0:t[i];return s(o==null?void 0:o.image)},getNameByEmail:i=>{const o=t==null?void 0:t[i];return(o==null?void 0:o.nombre)||""},isLoading:a}},Ye=({isLoading:t})=>t?e.jsxs("div",{className:"fixed inset-0 flex items-center justify-center z-50",children:[e.jsx("div",{className:"absolute inset-0",style:{backgroundColor:"rgba(255, 255, 255, 0.5)"}}),e.jsx("div",{className:"relative flex flex-col items-center gap-4",children:e.jsx(M.Spinner,{})})]}):null,Pa=({fullWidth:t,mode:a="grid",onClick:s,active:n,template:r,withOptions:i=!0})=>{const{openTemplate:o}=Ae(),{getImageByEmail:d,getNameByEmail:l}=Fa(),{setIsEditTemplate:c,setOpenModalCreateTemplate:u,setCurrentTemplateForEdit:f,setIsDuplicateTemplate:h,setOpenModalPublishTemplate:w,setCurrentTemplateId:m,setOpenModalDeleteTemplate:g}=Se(),x=["blue","blue-dark","blue-light","orange","white","green","red"],[b,j]=p.useState(!1),v=async()=>{if(j(!0),a==="grid")try{j(!0),await o({template:r,checkTemplateInIndexedDB:!0})}catch(K){console.error(K)}finally{j(!1)}s==null||s(r==null?void 0:r.id)},L=K=>{c(!0),u(!0),f(K)},S=K=>{h(!0),u(!0),f(K)},k=()=>{m(r==null?void 0:r.id),w(!0)},N=()=>{m(r==null?void 0:r.id),g(!0)},_=(r==null?void 0:r.dias_duracion)===1?"Día":"Días",P=(r==null?void 0:r.counts_tasks)===1?"Tarea":"Tareas",F=(r==null?void 0:r.estatus)===Ee.PUBLISHED?it(r==null?void 0:r.publication_date).format("DD/MM/YYYY"):it(r==null?void 0:r.createdAt).format("DD/MM/YYYY"),y=(r==null?void 0:r.updated_by)||(r==null?void 0:r.created_by),X=d(y==null?void 0:y.email),B=l(y==null?void 0:y.email)||"",I=(B==null?void 0:B.charAt(0))||"",O=(r==null?void 0:r.estatus)===Ee.PUBLISHED?"Fecha de publicación":"Fecha de creación",H=(r==null?void 0:r.estatus)===Ee.DRAFT,U=K=>{const te=K.split("-");return e.jsx(e.Fragment,{children:te.map((ae,Z)=>e.jsxs("span",{children:[ae,Z<te.length-1&&e.jsx("span",{className:"tw-text-neutral-200",children:"-"})]},Z))})};return e.jsxs(M.Card,{active:n,fullWidth:t,onClick:v,className:`${t?"md:tw-flex-row":"tw-flex-col"}`,children:[e.jsx(Ye,{isLoading:b}),e.jsx(M.Card.Header,{children:e.jsx("div",{className:"ui-flex ui-justify-between ui-items-start ui-gap-x-2",children:e.jsxs("div",{className:"ui-flex ui-justify-between ui-items-start ui-gap-2 ui-flex-1",children:[e.jsxs("div",{className:"ui-flex ui-gap-y-0.5 ui-flex-col ui-place-items-start",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[e.jsx(M.Icon,{name:"TaskOutlined",color:"blue_soft",size:"3xl",className:"ui-p-0.5"}),e.jsx("h1",{className:"ui-text-base ui-py-0.5 ui-font-bold tw-leading-normal tw-text-neutral-900",children:U((r==null?void 0:r.clave)||(r==null?void 0:r.nombre_plantilla))})]}),e.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-1",children:[e.jsx(M.Tag,{color:(r==null?void 0:r.estatus)==="published"?"green":"neutral",size:"xs",label:(r==null?void 0:r.estatus)==="published"?"Publicado":"Borrador",variant:"outlined",rounded:!0,borderable:!1}),!(typeof F=="string"&&F==="Invalid date")&&e.jsx(M.Tooltip,{label:O,children:e.jsx("p",{className:"ui-text-xxs ui-text-neutral-500 ui-font-semibold",children:F})})]})]}),!t&&e.jsx(M.Popup,{color:"white",size:"md",rounded:!0,variant:"outlined",icon:"ElipsisOutlined",stopPropagationList:!0,children:e.jsxs(M.List,{children:[r.estatus!==Ee.PUBLISHED&&r.counts_tasks>2&&e.jsx(M.ListItem,{icon:"ArrowUpOutlined",onClick:k,children:"Publicar"}),e.jsx(M.ListItem,{icon:"EditOutlined",onClick:()=>{L(r)},children:"Editar parámetros"}),e.jsx(M.ListItem,{icon:"EditOutlined",children:"Editar tareas"}),H&&e.jsx(M.ListItem,{icon:"CloneOutlined",onClick:K=>{K.stopPropagation(),S(r)},children:"Duplicar"}),H&&e.jsx(M.ListItem,{color:"red",icon:"TrashOutlined",onClick:N,children:"Eliminar"})]})})]})})}),e.jsx(M.Card.Separator,{vertical:t}),e.jsx(M.Card.Body,{className:"ui-flex ui-flex-wrap ui-gap-x-2 ui-gap-y-1 tw-w-full md:tw-w-auto tw-flex-wrap tw-flex-1",children:r==null?void 0:r.params_plantillas.map((K,te)=>{const ae=x[te%x.length];return e.jsx(M.Tag,{color:ae,size:"xs",borderable:ae==="white",label:K.name},K.name)})}),!t&&e.jsx(M.Card.Separator,{vertical:t}),e.jsxs(M.Card.Footer,{className:"ui-flex ui-justify-between tw-w-full md:tw-w-auto tw-gap-x-4",children:[e.jsxs("div",{className:`tw-flex tw-flex-1 ${t?"tw-gap-x-2 md:tw-gap-20 lg:tw-gap-32 2xl:tw-gap-44":""}`,children:[e.jsx("div",{className:`ui-flex ui-gap-x-1 ui-justify-center tw-items-center ui-flex-1 ${t?"tw-flex-col":"tw-flex-row"}`,children:e.jsx(M.Tooltip,{label:"Tareas totales",children:e.jsxs("div",{className:`tw-flex tw-items-center tw-gap-2 ${t?"tw-flex-col":"tw-flex-row"}`,children:[e.jsx("p",{className:"ui-text-blue-500 ui-text-xs tw-text-center tw-leading-none tw-font-semibold",children:(r==null?void 0:r.counts_tasks)||0}),e.jsx("p",{className:"ui-text-neutral-500 ui-text-xxs tw-leading-none",children:P})]})})}),e.jsx("div",{className:`ui-flex ui-gap-x-1 ui-justify-center tw-items-center ui-flex-1 ${t?"tw-flex-col":"tw-flex-row"}`,children:e.jsx(M.Tooltip,{label:"Tareas totales",children:e.jsxs("div",{className:`tw-flex tw-items-center tw-gap-2 ${t?"tw-flex-col":"tw-flex-row"}`,children:[e.jsx("p",{className:"ui-text-blue-500 ui-text-xs tw-text-center tw-leading-none tw-font-semibold",children:(r==null?void 0:r.dias_duracion)||0}),e.jsx("p",{className:"ui-text-neutral-500 ui-text-xxs tw-leading-none",children:_})]})})}),e.jsxs("div",{className:`ui-flex ui-gap-x-1 ui-justify-center tw-items-center ui-flex-1 ${t?"tw-flex-col-reverse tw-gap-y-1":"tw-flex-row"}`,children:[e.jsx("p",{className:"ui-text-neutral-500 ui-text-xxs",children:"Editor"}),e.jsx(M.Tooltip,{label:B,children:e.jsx(M.Visual,{slot:X,size:"md",fallback:I})})]})]}),t&&i&&e.jsx(M.Card.Separator,{vertical:t}),i&&e.jsx("div",{className:`tw-w-auto ${t?"tw-flex tw-items-center":""}`,children:t&&e.jsx(M.Button,{color:"white",size:"sm",variant:"outlined",rounded:!0,tooltipPosition:"top",tooltip:(r==null?void 0:r.estatus)==="published"?"No se puede editar una plantilla publicada":"",disabled:(r==null?void 0:r.estatus)==="published",icon:"ElipsisOutlined",onClick:v})})]})]})},Vn={1:"blue",2:"green",3:"red",4:"yellow"},Xn=({difficulty:t})=>e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[e.jsx(M.Icon,{name:"HardOutlined",size:"lg",color:Vn[t]}),e.jsx("p",{className:"tw-text-[10px] tw-text-neutral-500",children:"Dificultad"})]}),Yn=({duration:t})=>e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[e.jsx("p",{className:"tw-text-lg ui-text-blue-500",children:t}),e.jsx("p",{className:"tw-text-[10px] tw-text-neutral-500",children:"Duración"})]}),Jn={1:"neutral",2:"blue",3:"yellow",4:"red"},Zn=({priority:t})=>e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[e.jsx(M.Icon,{name:"FlagOutlined",size:"lg",color:Jn[t]}),e.jsx("p",{className:"tw-text-[10px] tw-text-neutral-500",children:"Prioridad"})]}),er=({responsible:t})=>{const{users:a,isLoading:s}=yt(),{getImageByEmail:n,isLoading:r}=Fa();if(s||r)return null;const i=a==null?void 0:a.find(o=>o.id===parseInt(t==null?void 0:t.id));return e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[e.jsx(M.Visual,{size:"md",slot:n(t==null?void 0:t.email),fallback:(i==null?void 0:i.name.charAt(0))||"D"}),e.jsx("p",{className:"tw-text-[10px] tw-text-neutral-500",children:"Responsable"})]})},tr=async t=>{const a=Pe.stringify({fields:["id","nombre"],sort:["nombre:asc"]},{encodeValuesOnly:!0}),s=await t.get(`/api/equipos?${a}`);return s.data?{data:ge(s.data.data)}:{data:[]}},ar=()=>{const{tasks_api:t}=we();return de.useQuery({queryKey:["teams"],queryFn:()=>tr(t),staleTime:1e3*60*60*24,select:s=>s.data.map(r=>({label:r.nombre,value:r.id}))})},sr=[{label:"Muy alta",value:4,icon:"FlagOutlined",iconColor:"red"},{label:"Alta",value:3,icon:"FlagOutlined",iconColor:"yellow"},{label:"Media",value:2,icon:"FlagOutlined",iconColor:"blue"},{label:"Baja",value:1,icon:"FlagOutlined",iconColor:"neutral"}],nr=[{label:"Muy alta",value:4,icon:"HardOutlined",iconColor:"red"},{label:"Alta",value:3,icon:"HardOutlined",iconColor:"yellow"},{label:"Media",value:2,icon:"HardOutlined",iconColor:"blue"},{label:"Baja",value:1,icon:"HardOutlined",iconColor:"neutral"}],rr=[{label:"1 día",value:1},{label:"2 días",value:2},{label:"3 días",value:3},{label:"4 días",value:4},{label:"5 días",value:5}],Ma=({isOpen:t,onClose:a,onSuccess:s,nodeDataType:n,parentNodeInfo:r,editMode:i=!1,taskToEdit:o})=>{const{data:d}=ar(),{users:l}=yt(),{users:c}=Ke(),{getImageOBP:u}=we(),f=p.useMemo(()=>{try{return!l||!c?[]:l.map(N=>{const _=c[N.email],P=_!=null&&_.image?u(_.image):"";return{label:N.name,value:N.id.toString(),icon:P}})}catch(N){return console.error("Error mapeando usuarios:",N),[]}},[l,c]),h=()=>{if(i&&o){const N=y=>{if(y==null)return"";const X=Number(y);return isNaN(X)?"":X},_=y=>y?typeof y=="string"?Number(y)||"":y.id||"":"",P=y=>{var X;return y?typeof y=="string"?y:((X=y.id)==null?void 0:X.toString())||y.name||y.nombre||"":""};return{title:o.texto_corto||"",description:o.texto_largo||"",priority:N(o.prioridad),difficulty:N(o.nivel_dificultad),duration:N(o.duracion),team:_(o.equipo),responsible:P(o.responsable),type:"tarea"}}return{title:"",description:"",priority:"",difficulty:"",duration:"",team:"",responsible:"",type:"tarea"}},{control:w,handleSubmit:m,formState:{errors:g,isValid:x},reset:b,watch:j}=je.useForm({mode:"onChange",defaultValues:h()});p.useEffect(()=>{t&&b(h())},[t,i,o,b]);const v=j(),L=x&&v.title&&v.description&&v.priority&&v.difficulty&&v.duration&&v.team&&v.responsible&&Object.keys(g).length===0,S=async N=>{try{if(["title","description","priority","difficulty","duration","team","responsible"].filter(F=>!N[F]).length>0)return;s&&s({...N,parent:r}),b()}catch{}},k=()=>{b(),a()};return e.jsx(M.Drawer,{titleIcon:"TaskOutlined",isOpen:t,onClose:k,onSuccess:()=>{m(N=>{S(N)},N=>{const _=Object.entries(N).map(([P,F])=>`${P}: ${F.message}`).join(`
101
+ `}),e.jsx("div",{className:"react-pick-color tw-overflow-hidden tw-rounded-lg tw-shadow-lg",children:e.jsx(Wa.ColorPicker,{color:t,theme:{inputBackground:"#FFF"},combinations:["monochromatic"],onChange:s=>a(s)})})]});function pn({color:t,setColor:a,label:s="Elige el color",className:n=""}){const[r,i]=p.useState(!1),o=p.useRef(null);return un(o,i,r),e.jsxs("div",{className:"tw-relative tw-w-full",children:[e.jsx("button",{onClick:d=>{d.stopPropagation(),i(!r)},style:{backgroundColor:t},className:`tw-h-10 tw-w-full tw-rounded-md tw-border-2 tw-border-blue-blue_medium tw-px-4 tw-text-left tw-text-white ${n}`,children:s}),r&&e.jsx("div",{ref:o,className:"tw-absolute tw-z-50 tw-mt-2",children:e.jsx(wn,{color:t,onChange:d=>a(d.hex)})})]})}const mn=()=>"#"+Math.floor(Math.random()*16777215).toString(16),st="Ha ocurrido un error inesperado. Por favor, intente nuevamente.",fn={"This field is required":"El campo {field} es requerido","must be defined":"El campo {field} es requerido","This attribute must be unique":"El campo {field} debe ser único","must be a string":"El campo {field} debe ser texto","must be a number":"El campo {field} debe ser un número","must be a boolean":"El campo {field} debe ser verdadero o falso","must be an array":"El campo {field} debe ser una lista","must be a valid email":"El campo {field} debe ser un correo electrónico válido","must be a valid date":"El campo {field} debe ser una fecha válida","must be a valid URL":"El campo {field} debe ser una URL válida","must be at least X characters long":"El campo {field} debe tener al menos {min} caracteres","must be less than or equal to X characters long":"El campo {field} debe tener máximo {max} caracteres","This value is too long":"El campo {field} excede el máximo de caracteres","This value is too short":"El campo {field} no cumple con el mínimo de caracteres","must be greater than or equal to X":"El campo {field} debe ser mayor o igual a {min}","must be less than or equal to X":"El campo {field} debe ser menor o igual a {max}","must be greater than X":"El campo {field} debe ser mayor a {min}","must be less than X":"El campo {field} debe ser menor a {max}","must be between X and Y":"El campo {field} debe estar entre {min} y {max}","must be an existing record":"El registro relacionado en {field} no existe","User not found":"El usuario no fue encontrado","Member not found":"El miembro no fue encontrado"},ba=()=>({handleApiError:a=>{var s,n,r,i,o;if(a instanceof wt.AxiosError&&((s=a.response)==null?void 0:s.status)===400){const d=a.response.data;if(((r=(n=d.details)==null?void 0:n.errors)==null?void 0:r.length)>0){const l=d.details.errors[0];let c=fn[l.message]||st;return c=c.replace("{field}",l.path.join(".")),((i=l.params)==null?void 0:i.min)!==void 0&&(c=c.replace("{min}",l.params.min.toString())),((o=l.params)==null?void 0:o.max)!==void 0&&(c=c.replace("{max}",l.params.max.toString())),c}return d.message||st}return st}});function ya({open:t,handleChange:a,team:s}){const{addTeamHandler:n,updateTeamHandler:r}=ha(),{showSuccess:i}=Ge(),{handleApiError:o}=ba(),[d,l]=p.useState(!1),[c,u]=p.useState(""),[f,h]=p.useState(s||{id:0,nombre:"",color:mn(),miembros:[],miembros_planos:[],integrantes:0,miembros_eliminar:[],miembros_actualizar:[]}),w=f.id>0,m=async()=>{if(f.nombre.length===0){u("El nombre del equipo es requerido");return}if(f.miembros.length===0){u("El equipo debe tener al menos un miembro");return}l(!0);const g=async()=>w?await r({data:f,teamId:f.id}):await n(f);try{await g(),u(""),a(!1),i(w?"Equipo actualizado correctamente":"Equipo creado correctamente")}catch(x){u(o(x))}finally{l(!1)}};return e.jsx(bt,{open:t,handleChange:a,closeIcon:"circle",size:"lg",children:e.jsxs("section",{className:"tw-relative tw-flex tw-h-full tw-flex-1 tw-flex-col tw-gap-y-6 tw-px-5 tw-pb-16",children:[e.jsxs("div",{children:[e.jsx(Ft,{title:"Información del equipo",icon:"user"}),e.jsxs("div",{className:"tw-mt-6 tw-flex tw-w-full tw-items-center tw-gap-4",children:[e.jsx(Qs,{value:f.nombre,onChange:g=>h({...f,nombre:g})}),e.jsxs("div",{className:"flex tw-flex-1 tw-items-center tw-gap-x-2",children:[e.jsx("label",{className:"tw-w-44 tw-text-base tw-text-black-black_regular",children:"Color del equipo"}),e.jsx(pn,{className:"tw-w-64",color:f.color,setColor:g=>h({...f,color:g})})]})]}),c&&e.jsx("p",{className:"tw-mt-4 tw-text-sm tw-text-danger-pastel",children:c})]}),e.jsxs("div",{children:[e.jsx(Ft,{title:"Miembros del equipo",icon:"users"}),e.jsx(ga,{members:f.miembros,setData:h,isUpdate:w})]}),e.jsx(Ks,{onCancel:()=>a(!1),onSave:m,isLoading:d})]})})}const De=384,xn=80,gn=180,dt=20,hn=2,ja=4,ut=.8;function bn({data:t}){const{getImageOBP:a}=we();return e.jsxs("div",{className:"tw-w-96 tw-rounded-md tw-border-[0.5px] tw-border-silver-silver_regular tw-bg-white tw-px-4 tw-py-2 tw-shadow-xl",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-4",children:[e.jsx("div",{className:"tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-gray-100",children:e.jsx(Te,{size:"xxl",alt:"@shadcn",imageUrl:t!=null&&t.image?a(t==null?void 0:t.image):void 0})}),e.jsxs("div",{className:"tw-text-black-black_dark",children:[e.jsx("div",{className:"tw-text-lg tw-font-bold",children:t.name}),e.jsx("div",{className:"",children:t.job||"Puesto no asignado"})]})]}),e.jsx(re.Handle,{type:"target",position:re.Position.Top,className:"tw-bg-transparent",isConnectable:!1}),e.jsx(re.Handle,{type:"source",position:re.Position.Bottom,className:"tw-w-16 tw-border-none tw-bg-transparent",isConnectable:!1})]})}const yn={custom:bn},jn={style:{stroke:"#6366f1",strokeWidth:2}},va=(t,a=0)=>t?t.map(s=>{const n=s.miembros?va(s.miembros,a+1):[];return{width:De,height:xn,children:n,x:0,y:a*gn,totalWidth:0,depth:a}}):[],_a=t=>{if(t.children.length===0)return t.totalWidth=De,De;const a=t.children.reduce((r,i)=>r+_a(i),0),s=t.children.length>ja?ut:1,n=(t.children.length-1)*dt*s;return t.totalWidth=Math.max(De,a+n),t.totalWidth},Na=(t,a=0)=>{let s=a;return t.forEach(n=>{n.totalWidth===0&&_a(n);const r=n.children.length>hn,i=n.children.length>ja;if(n.children.length>0){if(Na(n.children,s),i){const f=(n.totalWidth-De)/(n.children.length-1)*ut;n.children.forEach((h,w)=>{h.x=s+w*f})}else if(r){const f=(n.totalWidth-De)/(n.children.length-1);n.children.forEach((h,w)=>{h.x=s+w*f})}const d=n.children[0].x,l=n.children[n.children.length-1].x+De,c=i?De*.1:0;n.x=(d+l-De)/2+c}else n.x=s;const o=i?ut:1;s=Math.max(s+De+dt*o,n.x+De+dt*o)}),s},Ta=(t,a,s,n)=>{const r=[],i=[];return t.forEach((o,d)=>{var u,f,h,w,m,g;const l=a[d],c=l.id.toString();if(r.push({id:c,type:"custom",data:{name:(u=l.idUser)==null?void 0:u.nombre,image:(h=s==null?void 0:s[(f=l.idUser)==null?void 0:f.email])==null?void 0:h.image,job:((g=(m=s==null?void 0:s[(w=l.idUser)==null?void 0:w.email])==null?void 0:m.role)==null?void 0:g.name)||""},position:{x:o.x,y:o.y}}),n&&i.push({id:`e-${n}-${c}`,source:n,target:c,style:{stroke:"#6366f1",strokeWidth:2}}),l.miembros&&l.miembros.length>0){const x=Ta(o.children,l.miembros,s,c);r.push(...x.nodes),i.push(...x.edges)}}),{nodes:r,edges:i}};function vn({members:t}){const[a,s]=p.useState([]),[n,r]=p.useState([]),{users:i,isLoading:o}=Ke();return p.useEffect(()=>{if(t&&!o){const d=va(t);Na(d);const{nodes:l,edges:c}=Ta(d,t,i);s(l),r(c)}},[t,i,o]),o?null:e.jsx(re.ReactFlow,{nodeTypes:yn,nodes:a,edges:n,draggable:!1,fitView:!0,defaultViewport:{x:0,y:0,zoom:1},minZoom:.5,maxZoom:2,defaultEdgeOptions:jn})}function _n({open:t,handleChange:a,members:s}){return e.jsx(bt,{open:t,handleChange:a,size:"xl",children:e.jsx("div",{className:"tw-mx-auto tw-bg-white",style:{width:"100%",height:"600px"},children:e.jsx(re.ReactFlowProvider,{children:e.jsx(vn,{members:s})})})})}const Nn=[5,10,25,50,100],Tn=({currentPage:t,pageCount:a,pageSize:s,total:n,pageSizeText:r="Filas por página:",elementsOfText:i="elementos de",optionsSize:o=Nn,onPageChange:d,handlePageSize:l=()=>{},className:c="",maxVisiblePages:u=5})=>{p.useEffect(()=>{t>a&&a>0&&d(a)},[t,a,d]);const f=x=>{x>=1&&x<=a&&d(x)},h=Math.min(t*s,n)||0,m=(()=>{const x=Math.min(Math.max(t,1),Math.max(a-u+1,1)),b=Math.min(x+u-1,a);return Array.from({length:b-x+1},(j,v)=>x+v)})(),g=x=>{l(x),f(1)};return e.jsx("div",{className:`mt-8 tw-absolute tw-bottom-0 tw-left-0 tw-right-0 tw-bg-silver-silver_white tw-px-8 tw-py-4 ${c}`,children:e.jsxs("div",{className:"tw-grid tw-w-full tw-grid-cols-[1fr] tw-grid-rows-3 tw-items-center tw-justify-center tw-gap-x-2 tw-gap-y-2 md:tw-grid-cols-[1fr,auto,1fr] md:tw-grid-rows-1 md:tw-justify-between",children:[a>1?e.jsxs("p",{className:"tw-text-center tw-text-xl tw-tracking-wider tw-text-black-black_light md:tw-text-left",children:[h," ",i," ",n]}):e.jsx("div",{}),a>1?e.jsxs("div",{className:"tw-flex tw-justify-center md:tw-justify-start",children:[e.jsx("button",{onClick:()=>f(1),className:"tw-relative tw-flex tw-items-center disabled:tw-opacity-40",disabled:t===1,children:e.jsx(ee.Icons,{icon:"double_angle",size:"xs",strokeWidth:4,classNameDiv:"tw-rotate-180"})}),e.jsx("button",{className:"tw-rounded tw-px-3 tw-py-1 disabled:tw-opacity-40",onClick:()=>f(t-1),disabled:t===1,children:e.jsx(ee.Icons,{icon:"angle_left_outline",size:"xs",strokeWidth:4})}),m.map(x=>e.jsx("button",{className:`tw-min-w-14 tw-px-3 tw-py-1 tw-text-xl tw-font-light ${t===x?"tw-text-blue-blue_dark":"tw-text-gray-gray_dark"}`,onClick:()=>f(x),children:x},x)),e.jsx("button",{className:"tw-rounded tw-px-3 tw-py-1 disabled:tw-opacity-40",onClick:()=>f(t+1),disabled:t===a,children:e.jsx(ee.Icons,{icon:"angle_right_outline",size:"xs",strokeWidth:4})}),e.jsx("button",{className:" tw-flex tw-items-center disabled:tw-opacity-40",onClick:()=>f(a),disabled:t===a,children:e.jsx(ee.Icons,{icon:"double_angle",size:"xs",strokeWidth:4})})]}):e.jsx("div",{}),e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-center tw-gap-x-4 md:tw-justify-end",children:[e.jsx("p",{className:"tw-text-xl tw-tracking-wider tw-text-[#696E79]",children:r}),e.jsx("select",{id:"page-size",value:s,onChange:x=>g(Number(x.target.value)),className:"tw-rounded tw-border tw-border-gray-gray_regular tw-px-4 tw-py-2 tw-text-xl tw-text-[#696E79]",children:o.map(x=>e.jsx("option",{value:x,children:x},x))})]})]})})};function Cn({children:t,queryHook:a,pageSize:s=5,Loading:n=null,loadingText:r="Cargando...",searchTerm:i="",filters:o={}}){const[d,l]=p.useState(1),[c,u]=p.useState(s),f=p.useCallback(x=>{l(x)},[]),h=p.useCallback(x=>{u(x)},[]),{status:w,data:m,isFetching:g}=a({page:d,pageSize:c,search:i,filters:o});return e.jsxs("div",{className:"tw-grid tw-h-full tw-grid-rows-[1fr,auto] tw-gap-y-8",children:[w==="pending"?n||e.jsx("div",{className:"tw-flex tw-items-center tw-justify-center",children:r}):e.jsx("div",{children:t((m==null?void 0:m.data)||[],g)}),e.jsx("div",{className:"tw-flex tw-justify-between",children:e.jsx(Tn,{currentPage:d,onPageChange:f,pageCount:m==null?void 0:m.meta.pagination.pageCount,pageSize:m==null?void 0:m.meta.pagination.pageSize,total:m==null?void 0:m.meta.pagination.total,handlePageSize:h})})]})}const En=p.memo(Cn);function Sn(){const[t,a]=p.useState(!1),{filters:s,defineFields:n}=ke(),[r,i]=p.useState(""),{user:o}=_e();return p.useEffect(()=>{i((s==null?void 0:s.search)||"")},[s]),p.useEffect(()=>{n([])},[n]),e.jsxs("div",{className:"tw-grid tw-h-full tw-grid-rows-[auto,1fr] tw-gap-y-8",children:[t&&e.jsx(ya,{handleChange:a,open:t}),(o==null?void 0:o.role)===fa&&e.jsx("div",{className:"tw-flex tw-items-center tw-justify-end",children:e.jsxs("button",{onClick:()=>a(!0),className:"tw-flex tw-items-center tw-gap-x-4 tw-text-xl tw-text-primary-regular",children:[e.jsx(ee.Icons,{icon:"plus_outline",size:"xs",strokeWidth:4}),"Nuevo equipo"]})}),e.jsx(En,{queryHook:dn,Loading:e.jsx(Pt,{}),searchTerm:r,filters:{nombre:""},children:(d,l)=>e.jsx(e.Fragment,{children:d.length===0&&!l?e.jsx("div",{className:"flex tw-h-full tw-items-center tw-justify-center",children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-center tw-gap-y-6",children:[e.jsx("p",{className:"tw-text-3xl tw-font-bold",children:r?"No se encontraron equipos con ese nombre":"¡Parece que aún no has creado un equipo!"}),!r&&e.jsx("button",{className:"tw-rounded-md tw-bg-primary-regular tw-px-16 tw-py-4 tw-text-white",onClick:()=>a(!0),children:"¡Empieza ahora!"})]})}):l?e.jsx(Pt,{}):e.jsx("div",{className:`tw-pb-16 ${l?"tw-opacity-0 tw-transition tw-duration-300":"tw-opacity-100 tw-transition tw-duration-300"}`,children:e.jsx(Fn,{teams:d})})})})]})}function Ca(){return e.jsx("div",{className:"tw-flex tw-animate-pulse tw-items-center tw-gap-x-2",children:Array.from({length:3},(t,a)=>e.jsx("div",{className:"tw-h-8 tw-w-8 tw-rounded-full tw-bg-gray-200"},a))})}function kn(){return e.jsx("div",{className:"tw-h-52 tw-w-full tw-animate-pulse tw-place-self-center tw-rounded-md tw-border tw-border-gray-100 tw-shadow-lg",children:e.jsxs("div",{className:"flex tw-h-full tw-w-full",children:[e.jsx("div",{className:"tw-h-full tw-rounded-bl-xl tw-rounded-tl-xl tw-border-l-[.6rem] tw-bg-gray-200"}),e.jsxs("div",{className:"flex flex-1 tw-p-6",children:[e.jsxs("div",{className:"flex-1 flex flex-col tw-h-full tw-justify-between",children:[e.jsx("div",{className:"tw-h-6 tw-w-32 tw-rounded tw-bg-gray-200"}),e.jsxs("div",{className:"flex tw-items-center tw-gap-x-6",children:[e.jsx("div",{className:"tw-h-5 tw-w-24 tw-rounded tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-5 tw-w-8 tw-rounded tw-bg-gray-200"})]}),e.jsx(Ca,{})]}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-justify-between",children:[e.jsx("div",{className:"tw-h-6 tw-w-6 tw-rounded tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-6 tw-w-6 tw-rounded tw-bg-gray-200"}),e.jsx("div",{className:"tw-h-6 tw-w-6 tw-rounded tw-bg-gray-200"})]})]})]})})}function Pt({length:t}){const s=t?t>12?12:t:12;return e.jsx("div",{className:"tw-grid tw-h-full tw-w-full tw-grid-cols-1 tw-grid-rows-4 tw-items-baseline tw-gap-x-8 tw-gap-y-8 tw-overflow-y-auto md:tw-grid-cols-2 lg:tw-grid-cols-3 lg:tw-gap-x-32 xl:tw-grid-cols-4",children:Array.from({length:s},(n,r)=>e.jsx(kn,{},r))})}function In({members:t}){const{getImageOBP:a}=we(),{users:s,isLoading:n}=Ke();if(n)return e.jsx(Ca,{});const r=t.filter(o=>{var d,l;return(l=s[(d=o.idUser)==null?void 0:d.email])==null?void 0:l.image}).slice(0,3),i=t.length-r.length;if(r.length===0&&t.length>0){const o=Math.min(t.length,3),d=t.length-o;return e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[Array.from({length:o},(l,c)=>e.jsx("div",{className:`${c>0?"tw-ml-[-10px]":""}`,children:e.jsx(Te,{size:"m"})},c)),d>0&&e.jsx("div",{className:"tw-ml-[-10px] tw-flex tw-h-[32px] tw-w-[32px] tw-items-center tw-justify-center tw-rounded-full tw-border-2 tw-border-white tw-bg-primary-dark",children:e.jsxs("p",{className:"tw-text-sm tw-font-semibold tw-text-white",children:["+",d]})})]})}return e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[r.map((o,d)=>{var c;const l=s[(c=o.idUser)==null?void 0:c.email];return e.jsx("div",{className:`${d>0?"tw-ml-[-10px]":""}`,children:e.jsx(Te,{size:"m",imageUrl:a(l.image),alt:l==null?void 0:l.name})},o.id)}),i>0&&e.jsx("div",{className:"tw-ml-[-10px] tw-flex tw-h-[32px] tw-w-[32px] tw-items-center tw-justify-center tw-rounded-full tw-border-2 tw-border-white tw-bg-primary-dark",children:e.jsxs("p",{className:"tw-text-sm tw-font-semibold tw-text-white",children:["+",i]})})]})}function Dn({team:t}){const[a,s]=p.useState(!1),[n,r]=p.useState(!1),{user:i}=_e(),[o,d]=p.useState(!1),{handleApiError:l}=ba(),{showSuccess:c,showError:u}=Ge(),{deleteTeamHandler:f,isLoadingDeleteTeam:h}=ha(),w=async()=>{try{await f(t.id),c("Equipo eliminado correctamente")}catch(m){u(l(m))}};return e.jsxs("div",{className:"tw-h-52 tw-w-full tw-place-self-center tw-rounded-md tw-border tw-border-gray-100 tw-shadow-lg",children:[a&&e.jsx(ya,{handleChange:s,open:a,team:t}),o&&e.jsx(xa,{isLoading:h,open:o,handleChange:d,onConfirm:w,contentLabel:"Estás eliminando el equipo seleccionado"}),n&&e.jsx(_n,{handleChange:r,open:n,members:t.miembros}),e.jsxs("div",{className:"flex tw-h-full tw-w-full",children:[e.jsx("div",{className:"tw-h-full tw-rounded-bl-xl tw-rounded-tl-xl tw-border-l-[.6rem]",style:{borderColor:t.color}}),e.jsxs("div",{className:"flex flex-1 tw-p-6",children:[e.jsxs("div",{className:"flex-1 flex flex-col tw-h-full tw-justify-between",children:[e.jsx("p",{className:"tw-text-xl tw-font-semibold",children:t.nombre}),e.jsxs("div",{className:"flex tw-items-center tw-gap-x-6",children:[e.jsx("p",{className:"tw-text-lg tw-text-black-black_medium",children:"Integrantes:"})," ",e.jsx("p",{children:t.integrantes||0}),e.jsx(ee.Icons,{icon:"user",size:"xs",strokeWidth:4})]}),e.jsx("div",{children:e.jsx(In,{members:t.miembros_planos})})]}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-justify-between",children:[e.jsx("button",{onClick:()=>r(!0),children:e.jsx(ee.Icons,{icon:"eye",size:"xs",strokeWidth:4})}),(i==null?void 0:i.role)===fa&&e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:()=>s(!0),children:e.jsx(ee.Icons,{icon:"pencil",size:"xs",strokeWidth:4})}),e.jsx("button",{onClick:()=>d(!0),children:e.jsx(ee.Icons,{icon:"trash",size:"xs",strokeWidth:4})})]})]})]})]})]})}function Fn({teams:t}){return e.jsx("div",{className:"tw-grid tw-h-full tw-w-full tw-grid-cols-1 tw-grid-rows-4 tw-items-baseline tw-gap-x-8 tw-gap-y-8 tw-overflow-y-auto md:tw-grid-cols-2 lg:tw-grid-cols-3 lg:tw-gap-x-32 xl:tw-grid-cols-4",children:t==null?void 0:t.map(a=>e.jsx(Dn,{team:a},a.id))})}const Pn=({title:t})=>e.jsxs("div",{className:"flex-1 tw-flex tw-items-center tw-gap-x-4",children:[e.jsx(M.Icon,{background:!0,name:"PlantillaOutlined",color:"blue",size:"lg"}),e.jsx("h1",{className:"tw-text-[24px] tw-font-bold tw-leading-none",children:t})]}),Mt={fase_plantilla:"",tipo_plantilla:"",modo_configuracion:"",categoria:"",formato_salida:"",tipo_medio:"",medio_especifico:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},Mn={fase_plantilla:null,tipo_plantilla:null,modo_configuracion:null,categoria:null,formato_salida:null,tipo_medio:null,medio_especifico:null,responsable_impresion:null,pertenencia_medio:null,ubicacion_medio:null},An={fase_plantilla:"",tipo_plantilla:"",categoria:"",tipo_medio:"",medio_especifico:"",modo_configuracion:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},At={tipo_plantilla:!0,modo_configuracion:!0,categoria:!0,formato_salida:!0,tipo_medio:!0,medio_especifico:!0,responsable_impresion:!0,pertenencia_medio:!0,ubicacion_medio:!0},Se=qe.create(t=>({path:"",viewMode:"grid",isOpenModalLimit:!1,template:null,clave:"XX-XXX-XX-XXX-XX-X-X",templateFormData:Mt,disabledFields:At,claveParams:An,paramsTipo:Mn,isEditTemplate:!1,openModalCreateTemplate:!1,currentTemplateForEdit:null,refetch:null,openModalUnsavedChanges:!1,isDuplicateTemplate:!1,hasFormChanges:!1,openModalPublishTemplate:!1,currentTemplateId:null,openModalDeleteTemplate:!1,setPath:a=>t({path:a}),setViewMode:a=>t({viewMode:a}),setIsOpenModalLimit:a=>t({isOpenModalLimit:a}),setTemplate:a=>t({template:a}),setClave:a=>t({clave:a}),setTemplateFormData:a=>{t(s=>({templateFormData:{...s.templateFormData,...a}}))},resetTemplateFormData:()=>t({templateFormData:Mt}),setDisableField:({fields:a,value:s})=>{for(const n of a)t(r=>({disabledFields:{...r.disabledFields,[n]:s}}))},resetDisabledFields:()=>t({disabledFields:At}),setClaveParams:({field:a,value:s})=>{t(n=>({claveParams:{...n.claveParams,[a]:s}}))},resetClave:()=>t(a=>({clave:"XX-XXX-XX-XXX-XX-X-X"})),setParamTipo:a=>t(s=>({paramsTipo:{...s.paramsTipo,...a}})),setIsEditTemplate:a=>t({isEditTemplate:a}),setOpenModalCreateTemplate:a=>t({openModalCreateTemplate:a}),setCurrentTemplateForEdit:a=>t({currentTemplateForEdit:a}),setRefetch:a=>t({refetch:a}),setOpenModalUnsavedChanges:a=>t({openModalUnsavedChanges:a}),setIsDuplicateTemplate:a=>t({isDuplicateTemplate:a}),setHasFormChanges:a=>t({hasFormChanges:a}),setOpenModalPublishTemplate:a=>t({openModalPublishTemplate:a}),setCurrentTemplateId:a=>t({currentTemplateId:a}),setOpenModalDeleteTemplate:a=>t({openModalDeleteTemplate:a})})),Re={search:"",debouncedSearch:"",filters:[]},On={"kanban-general":{...Re},"lista-campanias":{...Re},"kanban-campania":{...Re},"teams-container":{...Re},"templates-container":{...Re}},jt=qe.create((t,a)=>({viewFilters:On,currentPath:null,debounceTimeouts:{},setCurrentPath:s=>{const n=a().currentPath;t({currentPath:s}),n&&n!==s&&a().resetPathData(n)},setSearch:(s,n)=>{const r=n||a().currentPath;if(!r)return;const i=`search_${r}`,o=a().debounceTimeouts[i];o&&clearTimeout(o),t(l=>({viewFilters:{...l.viewFilters,[r]:{...l.viewFilters[r],search:s}}}));const d=setTimeout(()=>{t(l=>({viewFilters:{...l.viewFilters,[r]:{...l.viewFilters[r],debouncedSearch:s}},debounceTimeouts:{...l.debounceTimeouts,[i]:void 0}}))},500);t(l=>({debounceTimeouts:{...l.debounceTimeouts,[i]:d}}))},setFilters:(s,n)=>{const r=n||a().currentPath;r&&t(i=>({viewFilters:{...i.viewFilters,[r]:{...i.viewFilters[r],filters:s}}}))},getSearch:s=>{var r;const n=s||a().currentPath;return n&&((r=a().viewFilters[n])==null?void 0:r.search)||""},getDebouncedSearch:s=>{var r;const n=s||a().currentPath;return n&&((r=a().viewFilters[n])==null?void 0:r.debouncedSearch)||""},getFilters:s=>{var r;const n=s||a().currentPath;return n?((r=a().viewFilters[n])==null?void 0:r.filters)||[]:[]},resetPathData:s=>{const n=`search_${s}`,r=a().debounceTimeouts[n];r&&clearTimeout(r),t(i=>({viewFilters:{...i.viewFilters,[s]:{...Re}},debounceTimeouts:{...i.debounceTimeouts,[n]:void 0}}))}})),qn=t=>{const{getSearch:a,getDebouncedSearch:s,setSearch:n,getFilters:r,setFilters:i,resetPathData:o}=jt();return{search:a(t),debouncedSearch:s(t),filters:r(t),setSearch:d=>n(d,t),setFilters:d=>i(d,t),resetData:()=>o(t)}};function Ln(t){const{users:a}=ta(),{tasks_api:s,getImageOBP:n}=we(),r=p.useMemo(()=>a.data?a.data.map(d=>{const{tasksUser:l,image:c}=d,u=n(c);return{value:l.id,label:l.nombre,icon:u}}):[],[a.data]),i=async d=>{const l=Pe.stringify({populate:{params_plantillas:{fields:["id","abbreviation","name","active","tipomedio_nombre","reference_id"]}},sort:["order:asc"],fields:["id","step","key","label","order"]},{encodeValuesOnly:!0}),{data:c}=await d.get(`/api/params-tipos?${l}`);return ge(c.data).flatMap((f,h)=>{const w={id:`group-${h+1}`,label:f.label,value:`group-${h+1}`,isGroupTitle:!0},m=f.params_plantillas.map(g=>({id:g.id,label:g.name,value:g.id,checked:!1,icon:"CheckCircleOutlined",iconColor:"blue"}));return[w,...m]})},o=de.useQuery({queryKey:["paramsPlantilla"],queryFn:()=>i(s),enabled:t==="templates-container",staleTime:1e3*60*30});return{userOptions:r,paramsPlantillasOptions:o.data||[]}}const Rn={estatus:{label:"Estatus del flujo",type:"dropdown",placeholder:"Selecciona uno...",options:[{value:"draft",label:"Borrador"},{value:"published",label:"Publicada"}],keyName:"estatus"},publication_date:{label:"Fecha de publicación",placeholder:"Ingresa una fecha...",type:"date",keyName:"publication_date"},propietario:{label:"Encargado del flujo",type:"dropdown",placeholder:"Selecciona uno...",options:[],keyName:"propietario"},created_by:{label:"Creador del flujo",type:"dropdown",placeholder:"Selecciona uno...",options:[],keyName:"created_by"},updated_by:{label:"Editor del flujo",type:"dropdown",placeholder:"Selecciona uno...",options:[],keyName:"updated_by"},params_plantillas:{label:"Parámetro del flujo",type:"group",placeholder:"Selecciona uno o varios...",options:[],keyName:"params_plantillas"}},zn={"templates-container":Rn,"kanban-general":null,"lista-campanias":null,"kanban-campania":null},$n=t=>({inputFilters:zn[t]||null}),Bn=t=>{const{inputFilters:a}=$n(t),{userOptions:s,paramsPlantillasOptions:n}=Ln(t);return{inputFilters:p.useMemo(()=>s.length>0&&n.length>0?[{...a.estatus},{...a.publication_date},{...a.propietario,options:s},{...a.created_by,options:s},{...a.updated_by,options:s},{...a.params_plantillas,options:n}]:null,[s,n])}};function Hn(){const{setFilters:t}=jt(),{refetch:a}=Se();return{handleApplyFilters:n=>{let r={...n};r=Object.fromEntries(Object.entries(r).filter(([i,o])=>!(o===""||o===null||Array.isArray(o)&&o.length===0))),"publication_date"in r&&r.publication_date!==""&&(r={...r,publication_date:it(r.publication_date).format("YYYY-MM-DD")}),t(r,"templates-container"),a&&a()}}}const be=qe.create((t,a)=>({mode:"grid",id:null,setMode:(s,n)=>{const r=a();if(s==="grid"||r.id!==null&&r.id!==n){const{clearAllGroupData:o}=a();o()}t({mode:s,id:n??null})},setId:s=>t({id:s}),reset:()=>{const{clearAllGroupData:s}=a();s(),t({mode:"grid",id:null})},addNode:null,addBranch:null,addNodeFromHandle:null,addNodeWithType:null,savePositions:null,loadPositions:null,clearPositions:null,activePlusNode:null,templateViewModes:{},setViewMode:(s,n)=>{const{templateViewModes:r}=a();t({templateViewModes:{...r,[s]:n}})},getViewMode:s=>{const{templateViewModes:n}=a();return n[s]??"readonly"},clearViewMode:s=>{const{templateViewModes:n}=a(),r={...n};delete r[s],t({templateViewModes:r})},expandedGroups:new Set,groupTemplateData:{},toggleGroupExpansion:s=>{const{expandedGroups:n}=a(),r=new Set(n);r.has(s)?r.delete(s):r.add(s),t({expandedGroups:r})},setGroupTemplateData:(s,n)=>{const{groupTemplateData:r}=a();t({groupTemplateData:{...r,[s]:n}})},clearGroupTemplateData:s=>{const{groupTemplateData:n}=a(),r={...n};delete r[s],t({groupTemplateData:r})},clearAllGroupData:()=>{t({expandedGroups:new Set,groupTemplateData:{}})},copiedNodes:[],setCopiedNodes:s=>t({copiedNodes:s}),clearCopiedNodes:()=>t({copiedNodes:[]}),expandGroup:null,collapseGroup:null})),Un=({path:t})=>t==="templates-container"?Kr():{header:null,body:null},Wn=({startPath:t,children:a})=>{const{path:s,setPath:n}=Se(),{setCurrentPath:r,getSearch:i,setSearch:o}=jt(),{inputFilters:d}=Bn(t),{handleApplyFilters:l}=Hn();p.useEffect(()=>{n(t),r(t)},[t]);const{header:c,body:u}=Un({path:s}),{viewMode:f,setViewMode:h}=Se(),{mode:w}=be(),m=i();return e.jsxs(M.Card,{fullWidth:!0,className:"tw-h-full",children:[e.jsxs(M.Card.Header,{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-4",children:[c,w==="grid"&&e.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-justify-between tw-gap-2.5 md:tw-flex-nowrap",children:[e.jsx(M.Input,{leftSlot:"SearchOutlined",placeholder:"Buscar...",size:"sm",value:m,onChange:g=>o(g.target.value)}),e.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-x-2.5 md:tw-flex-nowrap",children:[d&&e.jsx(M.Filters,{filters:d,onApply:l}),e.jsx(M.Button,{variant:"outlined",color:"white",colorIcon:"neutral",icon:f==="list"?"GridOutlined":"ListOutlined",className:"tw-min-w-fit ",onClick:()=>h(f==="list"?"grid":"list")})]})]})]}),e.jsx(M.Card.Separator,{}),e.jsx(M.Card.Body,{fullHeight:!0,className:"tw-flex tw-flex-1 tw-flex-col tw-gap-y-4",children:u})]})},Gn=()=>e.jsx(Pn,{title:"Flujos de trabajo"}),Fe=qe.create(t=>({activeTemplate:null,setActiveTemplate:a=>t({activeTemplate:a}),clearActiveTemplate:()=>t({activeTemplate:null})})),Ea=()=>{const{tasks_api:t}=we();return{getTemplateWithTasks:async s=>{var n;try{const r=Pe.stringify({filters:{plantilla:{id:s}}},{encodeValuesOnly:!0}),i=await t.get(`/api/plantillas/plantilla-tareas-grafico?${r}`);if(i.data&&i.data.data)return i.data.data;throw new Error(`No se encontraron datos para la plantilla con ID ${s}`)}catch(r){throw console.error("Error en getTemplateWithTasks:",{error:r.message,status:(n=r.response)==null?void 0:n.status}),r}}}},ve={DIRTY:"dirty",IDLE:"idle",NEW:"new"},Ee={DRAFT:"draft",PUBLISHED:"published",DELETED:"deleted"},ze="templates",$e="templates_states";function Kn(t,a){return qe.create((s,n)=>{let r=null;const i=f=>s({isLoading:f}),o=f=>s({error:f}),d=f=>s({data:f}),l=()=>new Promise((f,h)=>{const w=indexedDB.open(t.name,t.version);w.onerror=()=>{o("Error al abrir la base de datos"),h(new Error("Error al abrir la base de datos"))},w.onsuccess=()=>{r=w.result,s({isConnected:!0,error:null}),f(r)},w.onupgradeneeded=m=>{const g=m.target.result;t.stores.forEach(x=>{var b;if(!g.objectStoreNames.contains(x.name)){const j=g.createObjectStore(x.name,{keyPath:x.keyPath,autoIncrement:x.autoIncrement??!1});(b=x.indexes)==null||b.forEach(v=>{j.createIndex(v.name,v.keyPath,v.options)})}})}}),c=(f="readonly")=>{if(!r)throw new Error("Base de datos no conectada");return r.transaction(a,f)},u=(f="readonly")=>c(f).objectStore(a);return{data:[],isLoading:!1,error:null,isConnected:!1,connect:async()=>{try{i(!0),o(null),await l(),await n().getAll()}catch(f){o(f instanceof Error?f.message:"Error desconocido")}finally{i(!1)}},disconnect:()=>{r&&(r.close(),r=null,s({isConnected:!1,data:[]}))},add:async f=>{try{i(!0),o(null);const h=u("readwrite");return new Promise((w,m)=>{const g=h.add(f);g.onsuccess=async()=>{await n().getAll(),w()},g.onerror=()=>{o("Error al agregar elemento"),m(new Error("Error al agregar elemento"))}})}finally{i(!1)}},addMany:async f=>{try{i(!0),o(null);const h=u("readwrite");return new Promise((w,m)=>{let g=0,x=!1;f.forEach(b=>{const j=h.add(b);j.onsuccess=()=>{g++,g===f.length&&!x&&n().getAll().then(()=>w())},j.onerror=()=>{x||(x=!0,o("Error al agregar elementos"),m(new Error("Error al agregar elementos")))}})})}finally{i(!1)}},get:async f=>{try{o(null);const h=u();return new Promise((w,m)=>{const g=h.get(f);g.onsuccess=()=>{w(g.result)},g.onerror=()=>{o("Error al obtener elemento"),m(new Error("Error al obtener elemento"))}})}catch(h){o(h instanceof Error?h.message:"Error desconocido");return}},getAll:async()=>{try{o(null);const f=u();return new Promise((h,w)=>{const m=f.getAll();m.onsuccess=()=>{const g=m.result;d(g),h(g)},m.onerror=()=>{o("Error al obtener elementos"),w(new Error("Error al obtener elementos"))}})}catch(f){return o(f instanceof Error?f.message:"Error desconocido"),[]}},update:async(f,h)=>{try{i(!0),o(null);const w=u("readwrite");return new Promise((m,g)=>{const x=w.get(f);x.onsuccess=()=>{const b=x.result;if(!b){o("Elemento no encontrado"),g(new Error("Elemento no encontrado"));return}const j={...b,...h},v=w.put(j);v.onsuccess=async()=>{await n().getAll(),m()},v.onerror=()=>{o("Error al actualizar elemento"),g(new Error("Error al actualizar elemento"))}},x.onerror=()=>{o("Error al obtener elemento para actualizar"),g(new Error("Error al obtener elemento para actualizar"))}})}finally{i(!1)}},delete:async f=>{try{i(!0),o(null);const h=u("readwrite");return new Promise((w,m)=>{const g=h.delete(f);g.onsuccess=async()=>{await n().getAll(),w()},g.onerror=()=>{o("Error al eliminar elemento"),m(new Error("Error al eliminar elemento"))}})}finally{i(!1)}},clear:async()=>{try{i(!0),o(null);const f=u("readwrite");return new Promise((h,w)=>{const m=f.clear();m.onsuccess=()=>{d([]),h()},m.onerror=()=>{o("Error al limpiar store"),w(new Error("Error al limpiar store"))}})}finally{i(!1)}},query:async(f,h)=>{try{o(null);const m=u().index(f);return new Promise((g,x)=>{const b=m.getAll(h);b.onsuccess=()=>{g(b.result)},b.onerror=()=>{o("Error en consulta"),x(new Error("Error en consulta"))}})}catch(w){return o(w instanceof Error?w.message:"Error desconocido"),[]}},queryRange:async(f,h,w)=>{try{o(null);const g=u().index(f);return new Promise((x,b)=>{const j=IDBKeyRange.bound(h,w),v=g.getAll(j);v.onsuccess=()=>{x(v.result)},v.onerror=()=>{o("Error en consulta por rango"),b(new Error("Error en consulta por rango"))}})}catch(m){return o(m instanceof Error?m.message:"Error desconocido"),[]}}}})}const nt=new Map;function Ot(t,a,s=!0){const n=p.useMemo(()=>{const v=`${t.name}-${a}`;if(!nt.has(v)){const L=Kn(t,a);nt.set(v,L)}return nt.get(v)},[t.name,a]);p.useEffect(()=>{s&&!n.getState().isConnected&&n.getState().connect()},[s,n]);const r=n(v=>v.data),i=n(v=>v.isLoading),o=n(v=>v.error),d=n(v=>v.isConnected),l=p.useCallback(()=>n.getState().connect(),[n]),c=p.useCallback(()=>n.getState().disconnect(),[n]),u=p.useCallback(v=>n.getState().add(v),[n]),f=p.useCallback(v=>n.getState().addMany(v),[n]),h=p.useCallback(v=>n.getState().get(v),[n]),w=p.useCallback(()=>n.getState().getAll(),[n]),m=p.useCallback((v,L)=>n.getState().update(v,L),[n]),g=p.useCallback(v=>n.getState().delete(v),[n]),x=p.useCallback(()=>n.getState().clear(),[n]),b=p.useCallback((v,L)=>n.getState().query(v,L),[n]),j=p.useCallback((v,L,S)=>n.getState().queryRange(v,L,S),[n]);return{data:r,isLoading:i,error:o,isConnected:d,connect:l,disconnect:c,add:u,addMany:f,get:h,getAll:w,update:m,delete:g,clear:x,query:b,queryRange:j}}const Sa=p.createContext(void 0);function Qn({children:t}){const[a,s]=p.useState(!1),[n,r]=p.useState(!0),[i,o]=p.useState(null),d={name:"template_tabs_v1",version:2,stores:[{name:ze,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]},{name:$e,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]}]},l=Ot(d,ze,!0),c=Ot(d,$e,!0),u=p.useRef(new Map);u.current.has(ze)||u.current.set(ze,l),u.current.has($e)||u.current.set($e,c);const f=l.isConnected,h=l.error;p.useEffect(()=>{u.current.set(ze,l),u.current.set($e,c)},[l,c]);const w=p.useCallback(g=>{const x=u.current.get(g);if(!x)throw new Error(`Store ${g} no encontrado. Asegúrate de que esté configurada en indexedDBConfig.`);return{data:x.data,isLoading:x.isLoading,add:x.add,addMany:x.addMany,get:x.get,getAll:x.getAll,update:x.update,delete:x.delete,clear:x.clear,query:x.query,queryRange:x.queryRange,error:x.error}},[]);p.useEffect(()=>{(async()=>{try{if(r(!0),o(null),await l.connect(),f)s(!0);else throw new Error("No se pudo establecer la conexión con IndexedDB")}catch(x){o(x instanceof Error?x.message:"Error desconocido")}finally{r(!1)}})()},[l.connect,f]),p.useEffect(()=>{h&&o(h)},[h]);const m={isInitialized:a,isInitializing:n,error:i,isConnected:f,getStore:w};return e.jsx(Sa.Provider,{value:m,children:t})}function ka(){const t=p.useContext(Sa);if(t===void 0)throw new Error("useIndexedDBContext debe usarse dentro de IndexedDBProvider");return t}function vt(){const{getStore:t}=ka();return t(ze)}function Ia(){const{add:t}=vt(),a=async o=>{try{await t(o)}catch(d){console.error("Error al guardar plantilla a indexDB:",d)}},s=async o=>{const d={},l=c=>{c.id&&(d[c.id]=c),c.tareas&&Array.isArray(c.tareas)&&c.tareas.forEach(u=>{l(u)}),c.ids_t_dependientes&&Array.isArray(c.ids_t_dependientes)&&c.ids_t_dependientes.forEach(u=>{typeof u=="object"&&u.id&&l(u)}),c.plantilla_dependents&&Array.isArray(c.plantilla_dependents)&&c.plantilla_dependents.forEach(u=>{u.tarea_plantillas&&Array.isArray(u.tarea_plantillas)&&u.tarea_plantillas.forEach(f=>{l(f)})})};return o.tarea_plantillas.forEach(c=>{l(c)}),d},n=(o,d)=>{const l=d[o];if(!l)return[];const c=[l];return l.tareas&&Array.isArray(l.tareas)&&l.tareas.forEach(u=>{u.id&&c.push(...n(u.id,d))}),l.ids_t_dependientes&&Array.isArray(l.ids_t_dependientes)&&l.ids_t_dependientes.forEach(u=>{typeof u=="object"&&u.id?c.push(...n(u.id,d)):typeof u=="number"&&d[u]&&c.push(...n(u,d))}),c},r=(o,d)=>{const l=d[o];if(!l)return[];const c=[l];return l.tarea_padre&&d[l.tarea_padre]&&c.unshift(...r(l.tarea_padre,d)),c};return{hydrateTasks:async o=>{var c,u;const d=await s(o);return(u=(c=o==null?void 0:o.graph_layout)==null?void 0:c.snapshot)==null?void 0:u.nodes.map(f=>{if(f.type==="group")return{...f,data:{...f.data,type:"template"},type:"group",selected:!1};const h=f.data.tareaId?d[f.data.tareaId]:o;return h!=null&&h.start?{...f,data:{...h.plantilla,id:h.id},selected:!1}:{...f,data:{...h,type:"task"},selected:!1}})},initializeTemplateStore:a,indexedTasks:s,getTaskHierarchy:n,getTaskPath:r}}function Da(){const{getStore:t}=ka();return t($e)}const Xe=()=>{const{add:t,get:a,delete:s,update:n}=Da(),{get:r}=vt(),i={created:[],updated:[],deleted:[]},o=async({templateId:w})=>{const m=await a(w);return m||null};return{addTaskToState:async({task:w})=>{const m=await o({templateId:w.plantilla.id}),g=await r(w.plantilla.id);if(console.log("🔄 template:",g),!m)t({...i,id:w.plantilla.id,created:[...i.created,w]});else{const x=m.created.findIndex(b=>b.id===w.id);if(x!==-1){const b=m.created[x];m.created[x]={...b,...w},await n(w.plantilla.id,m)}else m.created.push(w),await n(w.plantilla.id,m)}},getTaskFromState:o,removeTemplateStates:async w=>{await s(w)},updateTaskInState:async({task:w})=>{const m=await o({templateId:w.plantilla.id}),x=(await r(w.plantilla.id)).graph_layout.snapshot.nodes;if(console.log("🔄 nodes:",x),m){const b=m.updated.findIndex(j=>j.id===w.id);if(b!==-1){const j=m.updated[b];console.log("🔄 currentTask:",j),m.updated[b]={...j,...w}}else m.updated.push(w);await n(w.plantilla.id,m)}else t({...i,id:w.plantilla.id,updated:[...i.updated,w]})},removeTaskFromState:async({templateId:w,id:m})=>{const g=await o({templateId:w});if(g){if(m>0){const b=g.deleted.findIndex(j=>j===m);if(b!==-1){g.deleted.splice(b,1),await n(w,g);return}}const x=g.created.findIndex(b=>b.id===m);if(x!==-1){g.created.splice(x,1),await n(w,g);return}}else if(m>0){t({...i,id:w,deleted:[...i.deleted,m]});return}},removeParentIdFromNodes:async({templateId:w,id:m})=>{const g=await o({templateId:w});if(g){const x=g.created.findIndex(j=>j.id===m);if(x!==-1){g.created[x].tarea_padre=null,g.created[x].id_t_requerida=null,await n(w,g);return}const b=g.updated.findIndex(j=>j.id===m);if(b!==-1){g.updated[b].tarea_padre=null,g.updated[b].id_t_requerida=null,await n(w,g);return}}},updateNodeWithNewEdge:async({templateId:w,edge:m,task:g})=>{console.log("🔵 updateNodeWithNewEdge - Inicio",{templateId:w,taskId:g.id,taskData:g});const x=await o({templateId:w});if(console.log("🔵 updateNodeWithNewEdge - Estado actual:",x),x){console.log("🔵 updateNodeWithNewEdge - Estado existe, buscando tarea...");const b=x.created.findIndex(v=>v.id===g.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en created:",b),b!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en created"),x.created[b]=g,await n(w,x),console.log("✅ updateNodeWithNewEdge - Actualizado en created");return}const j=x.updated.findIndex(v=>v.id===g.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en updated:",j),j!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en updated"),x.updated[j]=g,await n(w,x),console.log("✅ updateNodeWithNewEdge - Actualizado en updated");return}if(console.log("🔵 updateNodeWithNewEdge - Tarea no encontrada en arrays"),g.id&&g.id!==0){const v=g.id<0;v?(console.log("🔵 updateNodeWithNewEdge - Agregando a created (tarea nueva)"),x.created.push(g)):(console.log("🔵 updateNodeWithNewEdge - Agregando a updated (tarea existente)"),x.updated.push(g)),await n(w,x),console.log("✅ updateNodeWithNewEdge - Tarea agregada exitosamente a",v?"created":"updated")}else console.error("❌ updateNodeWithNewEdge - task.id no válido para agregar:",g.id)}else if(console.log("🔵 updateNodeWithNewEdge - Creando nuevo estado"),g.id&&g.id!==0){const b=g.id<0,j={...i,id:w,created:b?[g]:[],updated:b?[]:[g]};console.log("🔵 updateNodeWithNewEdge - Nuevo estado:",j,b?"(created)":"(updated)"),t(j),console.log("✅ updateNodeWithNewEdge - Estado creado exitosamente")}else console.error("❌ updateNodeWithNewEdge - task.id no válido:",g.id);console.log("🔵 updateNodeWithNewEdge - Fin")}}};function Ae(){const{activeTemplate:t,setActiveTemplate:a}=Fe(),{mode:s,setMode:n,setViewMode:r,clearViewMode:i}=be(),{template:o,setIsOpenModalLimit:d,setOpenModalUnsavedChanges:l,setOpenModalPublishTemplate:c,setOpenModalDeleteTemplate:u}=Se(),{hydrateTasks:f}=Ia(),{addTaskToState:h,removeTemplateStates:w}=Xe(),m=de.useQueryClient(),{data:g,add:x,update:b,get:j,getAll:v,delete:L,isLoading:S,error:k}=vt(),{get:N}=Da(),{getTemplateWithTasks:_}=Ea(),{tasks_api:P}=we(),[F,y]=p.useState(!1),[X,B]=p.useState(!1),[I,O]=p.useState(!1),H=p.useMemo(()=>g.sort((E,z)=>E.order-z.order),[g]);p.useEffect(()=>{H.length===0&&s!=="grid"&&n("grid")},[H,s,n]);const W=async(D,E=ve.IDLE)=>{var z;try{const A=await _(D.id),C=await f(A),V={id:crypto.randomUUID(),data:A,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},$=C||[V],J={...A,graph_layout:{...A==null?void 0:A.graph_layout,snapshot:{...(z=A==null?void 0:A.graph_layout)==null?void 0:z.snapshot,nodes:$}},estatus:E,estatusFromStrapi:A.estatus};await x(J)}catch(A){console.warn("No se pudieron obtener los datos completos de la plantilla, creando versión básica:",A);const C=D,V={id:crypto.randomUUID(),data:C,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},$={id:C.id,snapshot:{nodes:[V],edges:[],viewport:{x:0,y:0,zoom:1}},history:null,zoom:1,position:{x:0,y:0}},J={...C,graph_layout:C.graph_layout||$,estatus:E,tarea_plantillas:C.tarea_plantillas||[]};await x(J)}},K=async({template:D,checkTemplateInIndexedDB:E=!1,statusTemplate:z=ve.IDLE})=>{const A=H;if(!A.find(V=>V.id===D.id)){if(A.length===5){d(!0);return}if(E&&await j(D.id))return;await W({...D,order:A.length+1},z)}await ae(D.id),await te(D),n("create-edit",D==null?void 0:D.id)},te=async D=>{const E=await j(D.id);a(E)},ae=async D=>{try{let E=await v();E.sort((A,C)=>(A.order||0)-(C.order||0));const z=E.findIndex(A=>A.id===D);if(z!==-1){const[A]=E.splice(z,1);E.unshift(A),E.forEach((V,$)=>{V.order=$+1});const C=E.map(V=>b(V.id,V));await Promise.all(C)}else return}catch{}},Z=async D=>{try{await L(D),i(D);const E=await v();E.forEach((A,C)=>{A.order=C+1});const z=E.map(A=>b(A.id,A));await Promise.all(z)}catch{}};return{screens:H,isLoading:S,error:k,add:x,data:g,addScreen:W,openTemplate:K,update:b,delete:Z,get:j,activeTemplate:t,activateTemplate:te,reorderingTemplates:ae,replaceTemplate:async()=>{try{const D=[...H],E={...D[D.length-1]};await L(E.id);const z={...o,order:E.order};await W(z);const C=(await v()).sort(($,J)=>$.order-J.order);if(C.some(($,J)=>($.order||0)!==J+1)){const $=C.map((J,ne)=>({...J,order:ne+1}));for(const J of $)try{await b(J.id,J)}catch{}}}catch{}finally{d(!1)}},addTaskUpdatingTemplate:async(D,E,z="hija")=>{var $,J,ne,oe;const A=await j(E);if(!A)return null;const C={id:D.id,uuid:crypto.randomUUID(),reference_graph:D.reference_graph,texto_corto:D.title,texto_largo:D.description||"",prioridad:D.priority||null,nivel_dificultad:D.difficulty||1,duracion:D.duration||null,start:!1,type:"task",equipo:{id:Number(D.team)||null},responsable:{id:Number(D.responsible)||null},plantilla:{id:A.id,clave:A.clave,categoria:A.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:z==="dependiente"?(J=($=D.parent)==null?void 0:$.data)==null?void 0:J.id:null,ids_t_dependientes:[],tarea_padre:z==="hija"?(oe=(ne=D.parent)==null?void 0:ne.data)==null?void 0:oe.id:null,tareas:[]},V={...A,estatus:ve.DIRTY};return await b(E,V),t&&t.id===E&&a(V),await h({task:C}),C},addTemplateUpdatingTemplate:async(D,E,z,A="hija")=>{let C=null;if(t&&t.id===E?C=t:C=await j(E),!C)return null;const V=(J,ne,oe,ie)=>{for(let ce=0;ce<J.length;ce++){const ue=J[ce];if(ue.id===ne||ue.uuid===ne)return ie==="dependiente"?(ue.plantilla_dependents||(ue.plantilla_dependents=[]),ue.plantilla_dependents.push(oe)):ie==="hija"&&(ue.plantilla_dependents||(ue.plantilla_dependents=[]),ue.plantilla_dependents.push(oe)),!0;if(ue.tareas&&ue.tareas.length>0){const le=V(ue.tareas,ne,oe,ie);if(le)return le}}return!1};if(V(C.tarea_plantillas,z,D,A)){const J={...C,estatus:ve.DIRTY,updatedAt:new Date().toISOString()};return await b(E,J),t&&t.id===E&&a(J),!0}else return!1},updateGraphLayout:async(D,E)=>{var z;if(!D){console.warn("⚠️ updateGraphLayout - Template ID no válido");return}try{const A=await j(D);if(!A){console.warn("⚠️ updateGraphLayout - Template no encontrado");return}const C=(E.nodes||[]).filter(ie=>{var ce;return!((ce=ie.data)!=null&&ce.isInternal)&&!ie.parentId}).map(ie=>{const{style:ce,measured:ue,data:le,...pe}=ie,{expandedDimensions:xe,isExpanded:fe,needsReExpansion:Me,...he}=le||{},Oe=ce?{...ce,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...pe,style:Oe,data:he,position:ie.position}}),V=(E.edges||[]).filter(ie=>{var ce;return!((ce=ie.data)!=null&&ce.isInternal)}).map(ie=>{var ce;if((ce=ie.data)!=null&&ce.redirectedToInternal){const{redirectedToInternal:ue,originalTarget:le,...pe}=ie.data;return{...ie,target:le||ie.target,data:pe}}return ie}),$={...E,nodes:C,edges:V},J=(z=A.graph_layout)==null?void 0:z.snapshot;if(!(!J||JSON.stringify(J)!==JSON.stringify($)))return;const oe={...A,graph_layout:{...A.graph_layout,snapshot:$},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await b(D,oe),t&&t.id===D&&a(oe)}catch(A){console.error("❌ updateGraphLayout - Error:",A)}},saveTemplateChanges:async(D=!0)=>{try{if(t.estatus===ve.DIRTY){B(!0);const{id:E}=t,z=await j(E),A=await N(E),C=z.graph_layout.snapshot.nodes||[],V=C.filter(oe=>{var ie;return!((ie=oe.data)!=null&&ie.isInternal)&&!oe.parentId}),$=C.length-V.length;$>0&&console.warn(`💾 [saveTemplateChanges] Se filtraron ${$} nodos internos al guardar plantilla ${E}`);const J={graph_layout:{...z.graph_layout,snapshot:{...z.graph_layout.snapshot,nodes:V.map(oe=>{const{style:ie,measured:ce,selected:ue,...le}=oe,pe=ie?{...ie,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return oe.type==="group"?{...le,style:pe,data:{tareaId:oe.data.id&&oe.data.id>0?oe.data.id:null,clave:oe.data.clave,estatus:oe.data.estatus,updatedAt:oe.data.updatedAt,id:oe.data.id}}:{...le,style:pe,data:{tareaId:oe.data.id&&oe.data.id>0?oe.data.id:null}}}),edges:(z.graph_layout.snapshot.edges||[]).filter(oe=>{var ie;return!((ie=oe.data)!=null&&ie.isInternal)})}},tasks:{created:(A==null?void 0:A.created)||[],updated:(A==null?void 0:A.updated)||[],deleted:(A==null?void 0:A.deleted)||[]}},ne=await P.post("/api/tareas/save-tareas-grafico",{data:J});if(ne.data&&ne.status===200){if(console.log("🗑️ Invalidando caché de la plantilla:",E),await m.invalidateQueries({queryKey:["template",E]}),await m.invalidateQueries({queryKey:["template"]}),console.log("✅ Caché invalidado exitosamente"),w(E),D)Z(E),l(!1);else{const oe={...t,estatus:ve.IDLE};await b(E,oe),a(oe)}r(E,"readonly")}}}catch(E){console.log(E)}finally{B(!1)}},publishTemplate:async D=>{try{y(!0);const E={estatus:Ee.PUBLISHED,publication_date:new Date},z=await P.put(`/api/plantillas/plantilla-update-estatus/${D}`,{data:E});z.data&&z.status===200&&(a({...t,estatusFromStrapi:Ee.PUBLISHED}),c(!1),M.toast.info("Se publicó correctamente el proceso"))}catch(E){console.log(E),M.toast.error("Surgió un error al publicar el proceso")}finally{y(!1)}},deleteTemplate:async D=>{try{O(!0);const E={estatus:Ee.DELETED,sjdaksd:0},z=await P.put(`/api/plantillas/plantilla-update-estatus/${D}`,{data:E});z.data&&z.status===200&&(u(!1),M.toast.info("Se eliminó correctamente el proceso"))}catch(E){console.error(E),M.toast.error("Surgión un error al eliminar el proceso")}finally{O(!1)}},loadingPublishTemplate:F,loadingSaveChanges:X,loadingDeleteTemplate:I}}const Fa=()=>{const{users:t,isLoading:a}=Ke(),{getImageOBP:s}=we();return{getImageByEmail:i=>{const o=t==null?void 0:t[i];return s(o==null?void 0:o.image)},getNameByEmail:i=>{const o=t==null?void 0:t[i];return(o==null?void 0:o.nombre)||""},isLoading:a}},Ye=({isLoading:t})=>t?e.jsxs("div",{className:"fixed inset-0 flex items-center justify-center z-50",children:[e.jsx("div",{className:"absolute inset-0",style:{backgroundColor:"rgba(255, 255, 255, 0.5)"}}),e.jsx("div",{className:"relative flex flex-col items-center gap-4",children:e.jsx(M.Spinner,{})})]}):null,Pa=({fullWidth:t,mode:a="grid",onClick:s,active:n,template:r,withOptions:i=!0})=>{const{openTemplate:o}=Ae(),{getImageByEmail:d,getNameByEmail:l}=Fa(),{setIsEditTemplate:c,setOpenModalCreateTemplate:u,setCurrentTemplateForEdit:f,setIsDuplicateTemplate:h,setOpenModalPublishTemplate:w,setCurrentTemplateId:m,setOpenModalDeleteTemplate:g}=Se(),x=["blue","blue-dark","blue-light","orange","white","green","red"],[b,j]=p.useState(!1),v=async()=>{if(j(!0),a==="grid")try{j(!0),await o({template:r,checkTemplateInIndexedDB:!0})}catch(K){console.error(K)}finally{j(!1)}s==null||s(r==null?void 0:r.id)},L=K=>{c(!0),u(!0),f(K)},S=K=>{h(!0),u(!0),f(K)},k=()=>{m(r==null?void 0:r.id),w(!0)},N=()=>{m(r==null?void 0:r.id),g(!0)},_=(r==null?void 0:r.dias_duracion)===1?"Día":"Días",P=(r==null?void 0:r.counts_tasks)===1?"Tarea":"Tareas",F=(r==null?void 0:r.estatus)===Ee.PUBLISHED?it(r==null?void 0:r.publication_date).format("DD/MM/YYYY"):it(r==null?void 0:r.createdAt).format("DD/MM/YYYY"),y=(r==null?void 0:r.updated_by)||(r==null?void 0:r.created_by),X=d(y==null?void 0:y.email),B=l(y==null?void 0:y.email)||"",I=(B==null?void 0:B.charAt(0))||"",O=(r==null?void 0:r.estatus)===Ee.PUBLISHED?"Fecha de publicación":"Fecha de creación",H=(r==null?void 0:r.estatus)===Ee.DRAFT,W=K=>{const te=K.split("-");return e.jsx(e.Fragment,{children:te.map((ae,Z)=>e.jsxs("span",{children:[ae,Z<te.length-1&&e.jsx("span",{className:"tw-text-neutral-200",children:"-"})]},Z))})};return e.jsxs(M.Card,{active:n,fullWidth:t,onClick:v,className:`${t?"md:tw-flex-row":"tw-flex-col"}`,children:[e.jsx(Ye,{isLoading:b}),e.jsx(M.Card.Header,{children:e.jsx("div",{className:"ui-flex ui-justify-between ui-items-start ui-gap-x-2",children:e.jsxs("div",{className:"ui-flex ui-justify-between ui-items-start ui-gap-2 ui-flex-1",children:[e.jsxs("div",{className:"ui-flex ui-gap-y-0.5 ui-flex-col ui-place-items-start",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[e.jsx(M.Icon,{name:"TaskOutlined",color:"blue_soft",size:"3xl",className:"ui-p-0.5"}),e.jsx("h1",{className:"ui-text-base ui-py-0.5 ui-font-bold tw-leading-normal tw-text-neutral-900",children:W((r==null?void 0:r.clave)||(r==null?void 0:r.nombre_plantilla))})]}),e.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-1",children:[e.jsx(M.Tag,{color:(r==null?void 0:r.estatus)==="published"?"green":"neutral",size:"xs",label:(r==null?void 0:r.estatus)==="published"?"Publicado":"Borrador",variant:"outlined",rounded:!0,borderable:!1}),!(typeof F=="string"&&F==="Invalid date")&&e.jsx(M.Tooltip,{label:O,children:e.jsx("p",{className:"ui-text-xxs ui-text-neutral-500 ui-font-semibold",children:F})})]})]}),!t&&e.jsx(M.Popup,{color:"white",size:"md",rounded:!0,variant:"outlined",icon:"ElipsisOutlined",stopPropagationList:!0,children:e.jsxs(M.List,{children:[r.estatus!==Ee.PUBLISHED&&r.counts_tasks>2&&e.jsx(M.ListItem,{icon:"ArrowUpOutlined",onClick:k,children:"Publicar"}),e.jsx(M.ListItem,{icon:"EditOutlined",onClick:()=>{L(r)},children:"Editar parámetros"}),e.jsx(M.ListItem,{icon:"EditOutlined",children:"Editar tareas"}),H&&e.jsx(M.ListItem,{icon:"CloneOutlined",onClick:K=>{K.stopPropagation(),S(r)},children:"Duplicar"}),H&&e.jsx(M.ListItem,{color:"red",icon:"TrashOutlined",onClick:N,children:"Eliminar"})]})})]})})}),e.jsx(M.Card.Separator,{vertical:t}),e.jsx(M.Card.Body,{className:"ui-flex ui-flex-wrap ui-gap-x-2 ui-gap-y-1 tw-w-full md:tw-w-auto tw-flex-wrap tw-flex-1",children:r==null?void 0:r.params_plantillas.map((K,te)=>{const ae=x[te%x.length];return e.jsx(M.Tag,{color:ae,size:"xs",borderable:ae==="white",label:K.name},K.name)})}),!t&&e.jsx(M.Card.Separator,{vertical:t}),e.jsxs(M.Card.Footer,{className:"ui-flex ui-justify-between tw-w-full md:tw-w-auto tw-gap-x-4",children:[e.jsxs("div",{className:`tw-flex tw-flex-1 ${t?"tw-gap-x-2 md:tw-gap-20 lg:tw-gap-32 2xl:tw-gap-44":""}`,children:[e.jsx("div",{className:`ui-flex ui-gap-x-1 ui-justify-center tw-items-center ui-flex-1 ${t?"tw-flex-col":"tw-flex-row"}`,children:e.jsx(M.Tooltip,{label:"Tareas totales",children:e.jsxs("div",{className:`tw-flex tw-items-center tw-gap-2 ${t?"tw-flex-col":"tw-flex-row"}`,children:[e.jsx("p",{className:"ui-text-blue-500 ui-text-xs tw-text-center tw-leading-none tw-font-semibold",children:(r==null?void 0:r.counts_tasks)||0}),e.jsx("p",{className:"ui-text-neutral-500 ui-text-xxs tw-leading-none",children:P})]})})}),e.jsx("div",{className:`ui-flex ui-gap-x-1 ui-justify-center tw-items-center ui-flex-1 ${t?"tw-flex-col":"tw-flex-row"}`,children:e.jsx(M.Tooltip,{label:"Tareas totales",children:e.jsxs("div",{className:`tw-flex tw-items-center tw-gap-2 ${t?"tw-flex-col":"tw-flex-row"}`,children:[e.jsx("p",{className:"ui-text-blue-500 ui-text-xs tw-text-center tw-leading-none tw-font-semibold",children:(r==null?void 0:r.dias_duracion)||0}),e.jsx("p",{className:"ui-text-neutral-500 ui-text-xxs tw-leading-none",children:_})]})})}),e.jsxs("div",{className:`ui-flex ui-gap-x-1 ui-justify-center tw-items-center ui-flex-1 ${t?"tw-flex-col-reverse tw-gap-y-1":"tw-flex-row"}`,children:[e.jsx("p",{className:"ui-text-neutral-500 ui-text-xxs",children:"Editor"}),e.jsx(M.Tooltip,{label:B,children:e.jsx(M.Visual,{slot:X,size:"md",fallback:I})})]})]}),t&&i&&e.jsx(M.Card.Separator,{vertical:t}),i&&e.jsx("div",{className:`tw-w-auto ${t?"tw-flex tw-items-center":""}`,children:t&&e.jsx(M.Button,{color:"white",size:"sm",variant:"outlined",rounded:!0,tooltipPosition:"top",tooltip:(r==null?void 0:r.estatus)==="published"?"No se puede editar un flujo de trabajo publicado":"",disabled:(r==null?void 0:r.estatus)==="published",icon:"ElipsisOutlined",onClick:v})})]})]})},Vn={1:"blue",2:"green",3:"red",4:"yellow"},Xn=({difficulty:t})=>e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[e.jsx(M.Icon,{name:"HardOutlined",size:"lg",color:Vn[t]}),e.jsx("p",{className:"tw-text-[10px] tw-text-neutral-500",children:"Dificultad"})]}),Yn=({duration:t})=>e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[e.jsx("p",{className:"tw-text-lg ui-text-blue-500",children:t}),e.jsx("p",{className:"tw-text-[10px] tw-text-neutral-500",children:"Duración"})]}),Jn={1:"neutral",2:"blue",3:"yellow",4:"red"},Zn=({priority:t})=>e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[e.jsx(M.Icon,{name:"FlagOutlined",size:"lg",color:Jn[t]}),e.jsx("p",{className:"tw-text-[10px] tw-text-neutral-500",children:"Prioridad"})]}),er=({responsible:t})=>{const{users:a,isLoading:s}=yt(),{getImageByEmail:n,isLoading:r}=Fa();if(s||r)return null;const i=a==null?void 0:a.find(o=>o.id===parseInt(t==null?void 0:t.id));return e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[e.jsx(M.Visual,{size:"md",slot:n(t==null?void 0:t.email),fallback:(i==null?void 0:i.name.charAt(0))||"D"}),e.jsx("p",{className:"tw-text-[10px] tw-text-neutral-500",children:"Responsable"})]})},tr=async t=>{const a=Pe.stringify({fields:["id","nombre"],sort:["nombre:asc"]},{encodeValuesOnly:!0}),s=await t.get(`/api/equipos?${a}`);return s.data?{data:ge(s.data.data)}:{data:[]}},ar=()=>{const{tasks_api:t}=we();return de.useQuery({queryKey:["teams"],queryFn:()=>tr(t),staleTime:1e3*60*60*24,select:s=>s.data.map(r=>({label:r.nombre,value:r.id}))})},sr=[{label:"Muy alta",value:4,icon:"FlagOutlined",iconColor:"red"},{label:"Alta",value:3,icon:"FlagOutlined",iconColor:"yellow"},{label:"Media",value:2,icon:"FlagOutlined",iconColor:"blue"},{label:"Baja",value:1,icon:"FlagOutlined",iconColor:"neutral"}],nr=[{label:"Muy alta",value:4,icon:"HardOutlined",iconColor:"red"},{label:"Alta",value:3,icon:"HardOutlined",iconColor:"yellow"},{label:"Media",value:2,icon:"HardOutlined",iconColor:"blue"},{label:"Baja",value:1,icon:"HardOutlined",iconColor:"neutral"}],rr=[{label:"1 día",value:1},{label:"2 días",value:2},{label:"3 días",value:3},{label:"4 días",value:4},{label:"5 días",value:5}],Ma=({isOpen:t,onClose:a,onSuccess:s,nodeDataType:n,parentNodeInfo:r,editMode:i=!1,taskToEdit:o})=>{const{data:d}=ar(),{users:l}=yt(),{users:c}=Ke(),{getImageOBP:u}=we(),f=p.useMemo(()=>{try{return!l||!c?[]:l.map(N=>{const _=c[N.email],P=_!=null&&_.image?u(_.image):"";return{label:N.name,value:N.id.toString(),icon:P}})}catch(N){return console.error("Error mapeando usuarios:",N),[]}},[l,c]),h=()=>{if(i&&o){const N=y=>{if(y==null)return"";const X=Number(y);return isNaN(X)?"":X},_=y=>y?typeof y=="string"?Number(y)||"":y.id||"":"",P=y=>{var X;return y?typeof y=="string"?y:((X=y.id)==null?void 0:X.toString())||y.name||y.nombre||"":""};return{title:o.texto_corto||"",description:o.texto_largo||"",priority:N(o.prioridad),difficulty:N(o.nivel_dificultad),duration:N(o.duracion),team:_(o.equipo),responsible:P(o.responsable),type:"tarea"}}return{title:"",description:"",priority:"",difficulty:"",duration:"",team:"",responsible:"",type:"tarea"}},{control:w,handleSubmit:m,formState:{errors:g,isValid:x},reset:b,watch:j}=je.useForm({mode:"onChange",defaultValues:h()});p.useEffect(()=>{t&&b(h())},[t,i,o,b]);const v=j(),L=x&&v.title&&v.description&&v.priority&&v.difficulty&&v.duration&&v.team&&v.responsible&&Object.keys(g).length===0,S=async N=>{try{if(["title","description","priority","difficulty","duration","team","responsible"].filter(F=>!N[F]).length>0)return;s&&s({...N,parent:r}),b()}catch{}},k=()=>{b(),a()};return e.jsx(M.Drawer,{titleIcon:"TaskOutlined",isOpen:t,onClose:k,onSuccess:()=>{m(N=>{S(N)},N=>{const _=Object.entries(N).map(([P,F])=>`${P}: ${F.message}`).join(`
102
102
  `);console.log(`📝 Por favor, completa los siguientes campos:
103
- `+_)})()},title:i?"Editar tarea":"Nueva tarea",successButtonText:i?"Actualizar":"Crear",disabledSuccessButton:!L,children:e.jsxs("form",{className:"tw-flex tw-flex-col tw-gap-4",children:[e.jsx(je.Controller,{control:w,name:"title",rules:{required:"El título es obligatorio",minLength:{value:3,message:"El título debe tener al menos 3 caracteres"}},render:({field:N})=>{var _;return e.jsx(M.Input,{fullWidth:!0,label:"Título",placeholder:"Ingresa el título de la tarea...",error:(_=g.title)==null?void 0:_.message,...N})}}),e.jsx(je.Controller,{control:w,name:"description",rules:{required:"La descripción es obligatoria",minLength:{value:10,message:"La descripción debe tener al menos 10 caracteres"}},render:({field:N})=>{var _;return e.jsx(M.Input,{fullWidth:!0,label:"Descripción",placeholder:"Describe la tarea a realizar...",error:(_=g.description)==null?void 0:_.message,...N})}}),e.jsx(M.Separator,{}),e.jsx(je.Controller,{control:w,name:"priority",rules:{required:"La prioridad es obligatoria"},render:({field:N,fieldState:{error:_}})=>e.jsx(M.Dropdown,{fullWidth:!0,label:"Prioridad",placeholder:"Selecciona la prioridad...",options:sr,error:_==null?void 0:_.message,value:N.value,onValueChange:P=>{N.onChange(P)}})}),e.jsx(je.Controller,{control:w,name:"difficulty",rules:{required:"La dificultad es obligatoria"},render:({field:N,fieldState:{error:_}})=>e.jsx(M.Dropdown,{fullWidth:!0,label:"Dificultad",placeholder:"Selecciona la dificultad...",options:nr,error:_==null?void 0:_.message,value:N.value,onValueChange:P=>{N.onChange(P)}})}),e.jsx(je.Controller,{control:w,name:"duration",rules:{required:"La duración es obligatoria"},render:({field:N,fieldState:{error:_}})=>e.jsx(M.Dropdown,{fullWidth:!0,label:"Duración",placeholder:"Selecciona la duración...",options:rr,error:_==null?void 0:_.message,value:N.value,onValueChange:P=>{N.onChange(P)}})}),e.jsx(M.Separator,{}),e.jsx(je.Controller,{control:w,name:"team",rules:{required:"El equipo es obligatorio"},render:({field:N,fieldState:{error:_}})=>e.jsx(M.Dropdown,{fullWidth:!0,label:"Equipo",placeholder:"Selecciona el equipo...",options:d,error:_==null?void 0:_.message,value:N.value,onValueChange:P=>{N.onChange(P)}})}),e.jsx(je.Controller,{control:w,name:"responsible",rules:{required:"El responsable es obligatorio"},render:({field:N,fieldState:{error:_}})=>e.jsx(M.Dropdown,{fullWidth:!0,absolute:!0,label:"Responsable",placeholder:"Selecciona el responsable...",options:f,error:_==null?void 0:_.message,value:N.value,onValueChange:P=>{N.onChange(P)}})})]})})},or=()=>{const{get:t}=Ae(),a=Fe(i=>i.activeTemplate),{updateTaskInState:s,addTaskToState:n}=Xe();return{updateTaskInTemplate:async(i,o)=>{if(!a)return console.error("No hay plantilla activa"),!1;try{const d=await t(a.id);if(!d)return console.error("Plantilla no encontrada"),!1;console.log("🔄 updatedTaskData:",o);const l={id:i,uuid:o.uuid||crypto.randomUUID(),reference_graph:o.reference_graph||null,texto_corto:o.texto_corto||"",texto_largo:o.texto_largo||"",prioridad:o.prioridad||null,nivel_dificultad:o.nivel_dificultad||1,duracion:o.duracion||null,start:o.start||!1,equipo:o.equipo||null,responsable:o.responsable||null,plantilla:{id:d.id,clave:d.clave,categoria:d.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:o.plantilla_dependents||[],id_t_requerida:o.id_t_requerida||null,ids_t_dependientes:o.ids_t_dependientes||[],tarea_padre:o.tarea_padre||null,tareas:o.tareas||[]};i>0?await s({task:l}):await n({task:l})}catch(d){return console.error("❌ Error al actualizar tarea en plantilla:",d),!1}}}},ye={DEFAULT_CHILD_WIDTH:260,DEFAULT_CHILD_HEIGHT:80,MAGNETIC_CONNECTION_DISTANCE:800,GRAPH_LAYOUT_UPDATE_DELAY:100,START_NODE_ID:"start",DEFAULT_SOURCE_HANDLE:"bottom-source",DEFAULT_TARGET_HANDLE:"top-target"},qt={dependiente:{stroke:"#3B82F6",strokeDasharray:"5,5",strokeWidth:2},normal:{stroke:"#6B7280",strokeWidth:2}},Lt=t=>{const a=t.map(s=>({...s}));return a.filter(s=>s.type==="group").forEach(s=>{const n=a.filter(u=>u.parentId===s.id);if(n.length===0)return;const r=Math.min(...n.map(u=>u.position.x)),o=Math.max(...n.map(u=>{var f;return u.position.x+(typeof((f=u.style)==null?void 0:f.width)=="number"?u.style.width:ye.DEFAULT_CHILD_WIDTH)}))-r,d=Math.min(...n.map(u=>u.position.y)),c=Math.max(...n.map(u=>{var f;return u.position.y+(typeof((f=u.style)==null?void 0:f.height)=="number"?u.style.height:ye.DEFAULT_CHILD_HEIGHT)}))-d;s.style={...s.style??{},width:o,height:c}}),a},rt=t=>t.source===ye.START_NODE_ID||t.target===ye.START_NODE_ID,Be=t=>t===ye.START_NODE_ID,ir=t=>t==="dependiente"?qt.dependiente:qt.normal,lr=(t,a,s)=>({id:t,type:"main",position:a,selected:!1,deletable:!0,data:s}),ot=(t,a,s,n,r,i=!1,o=null,d=null)=>{const l=ir(n),c=i?ye.DEFAULT_SOURCE_HANDLE:s;return{id:`edge-${t}-${a}`,source:t,sourceHandle:c,target:a,targetHandle:ye.DEFAULT_TARGET_HANDLE,type:"smoothstep",deletable:!0,style:l,markerEnd:{type:"arrowclosed",width:12,height:12,color:l.stroke,strokeWidth:1},data:{connectionType:n,nodeType:r,isFromStartNode:i,parentId:o,childId:d}}},cr=(t,a)=>!(!t||!a||t===a),dr=t=>{const{clientX:a,clientY:s}="changedTouches"in t?t.changedTouches[0]:t;return{x:a,y:s}},ur=t=>t.filter(a=>a.type==="position"&&a.dragging===!1),Aa=t=>t.map(a=>a.id),Oa=({nodes:t,edges:a,setNodes:s,setEdges:n,newNodePopup:r,connectionPopup:i,closeNewNodePopup:o,closeConnectionPopup:d,setIsConnectingExistingNodes:l})=>{const{screenToFlowPosition:c,getNode:u,setViewport:f,fitView:h}=re.useReactFlow(),{get:w,update:m,addTaskUpdatingTemplate:g,addTemplateUpdatingTemplate:x}=Ae(),b=Fe(B=>B.activeTemplate),j=de.useQueryClient(),v=Fe(B=>B.setActiveTemplate),{removeTaskFromState:L,updateNodeWithNewEdge:S,updateTaskInState:k}=Xe(),N=p.useCallback(async B=>{const I=t.find(H=>H.id===B);if(!(I!=null&&I.data))return null;if(I.id===ye.START_NODE_ID){if(!b)return null;try{const H=await w(b.id),U=H.tarea_plantillas.find(K=>K.start===!0);return U!=null&&U.id?U.id:H.tarea_plantillas.length>0?H.tarea_plantillas[0].id:null}catch{return null}}const O=I.data.id;if(!O&&O!==0)return null;if(typeof O=="string"){if(O.includes("-"))return O;{const H=parseInt(O,10);return isNaN(H)?null:H}}else if(typeof O=="number")return O;return null},[t,b,w]),_=p.useCallback(async(B=t,I=a)=>{var O,H,U,K,te,ae,Z;if(!b){M.toast.warning("No hay template activo para actualizar layout");return}try{const se=await w(b.id);if(!se){M.toast.warning("Template no encontrado en IndexedDB");return}const T=(O=se.graph_layout)==null?void 0:O.snapshot;if(!(!T||JSON.stringify(T.nodes)!==JSON.stringify(B)||JSON.stringify(T.edges)!==JSON.stringify(I))){console.log("🔄 No hay cambios en el layout, omitiendo actualización");return}const Y=B.filter(G=>{var D;return!((D=G.data)!=null&&D.isInternal)&&!G.parentId}).map(G=>{const{style:D,measured:E,data:z,selected:A,...C}=G,{expandedDimensions:V,isExpanded:$,needsReExpansion:J,...ne}=z||{},oe=D?{...D,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...C,style:oe,data:ne}}),W=I.filter(G=>{var D;return!((D=G.data)!=null&&D.isInternal)}),q={...se,graph_layout:{id:((H=se.graph_layout)==null?void 0:H.id)||0,snapshot:{nodes:Y,edges:W,viewport:((K=(U=se.graph_layout)==null?void 0:U.snapshot)==null?void 0:K.viewport)||{x:0,y:0,zoom:1}},history:((te=se.graph_layout)==null?void 0:te.history)||[],zoom:((ae=se.graph_layout)==null?void 0:ae.zoom)||1,position:((Z=se.graph_layout)==null?void 0:Z.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await m(b.id,q),console.log("🗑️ [useFlowActions] Invalidando caché de la plantilla:",b.id),await j.invalidateQueries({queryKey:["template",b.id]}),await j.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlowActions] Caché invalidado exitosamente"),v(q)}catch(se){console.error("❌ Error al actualizar template layout:",se)}},[b,w,m,t,a,v]),P=p.useCallback(async(B=[],I=[],O,H)=>{var K,te,ae,Z,se,T,R,Y,W,q,G,D;const U=O||(b==null?void 0:b.id);if(!U){M.toast.warning("No hay template ID disponible para actualizar");return}try{const E=await w(U);if(!E)return;const z=(ae=(te=(K=E.graph_layout)==null?void 0:K.snapshot)==null?void 0:te.nodes)==null?void 0:ae.filter(V=>{var $;return!B.includes(V.id)&&!(($=V.data)!=null&&$.isInternal)&&!V.parentId}).map(V=>{const{style:$,measured:J,data:ne,...oe}=V,{expandedDimensions:ie,...ce}=ne||{},ue=$?{...$,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...oe,style:ue,data:ce}}),A=((T=(se=(Z=E.graph_layout)==null?void 0:Z.snapshot)==null?void 0:se.edges)==null?void 0:T.filter(V=>{var $;return!B.includes(V.source)&&!B.includes(V.target)&&!(($=V.data)!=null&&$.isInternal)}))||[],C={...E,graph_layout:{id:((R=E.graph_layout)==null?void 0:R.id)||0,snapshot:{nodes:z,edges:A,viewport:((W=(Y=E.graph_layout)==null?void 0:Y.snapshot)==null?void 0:W.viewport)||{x:0,y:0,zoom:1}},history:((q=E.graph_layout)==null?void 0:q.history)||[],zoom:((G=E.graph_layout)==null?void 0:G.zoom)||1,position:((D=E.graph_layout)==null?void 0:D.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await L({templateId:U,id:H||0}),await m(U,C),console.log("🗑️ [useFlowActions:updateAfterDeleted] Invalidando caché de la plantilla:",U),await j.invalidateQueries({queryKey:["template",U]}),await j.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlowActions:updateAfterDeleted] Caché invalidado exitosamente"),U===(b==null?void 0:b.id)&&v(C)}catch(E){console.error("❌ updateAfterDeleted - Error al actualizar template layout:",E)}},[b,w,m,a,t,L,v]),F=p.useCallback(async(B,I,O)=>{if(!r||!b)return;const{nodeId:H,sourceNodeId:U,sourceHandleId:K}=r;if(U)try{const te=await N(U);if(!te)return;if(B==="plantilla"){const ae=O;if(!(ae!=null&&ae.templateId))return;if(!await x(ae.templateId,b.id,te,I)){M.toast.error("No se pudo agregar la plantilla. Intenta nuevamente."),o();return}try{const G=await w(b.id);if(G){const D=(z,A)=>{for(const C of z){if(C.id===A||C.uuid===A)return C;if(C.tareas&&C.tareas.length>0){const V=D(C.tareas,A);if(V)return V}}return null},E=D(G.tarea_plantillas,te);if(E&&E.id){const z=(E.plantilla_dependents||[]).map(C=>typeof C=="object"&&C.id?{id:C.id}:typeof C=="number"?{id:C}:C),A={...E,plantilla_dependents:z,plantilla:{id:b.id,clave:G.clave,categoria:G.categoria||{id:0,nombre:"Sin categoría"}}};await k({task:A}),console.log("✅ Tarea padre agregada a templates_states.updated con plantilla_dependents:",E.id,A.plantilla_dependents)}}}catch(G){console.error("❌ Error al actualizar tarea padre en templates_states:",G)}const se=c({x:r.position.x,y:r.position.y}),T=ae.templateData||{id:ae.templateId,nombre_plantilla:`Plantilla ${ae.templateId}`,clave:`TPL-${ae.templateId}`,estatus:"activo",categoria:null,counts_tasks:0,dias_duracion:0},R={id:H,type:"group",position:se,selected:!1,deletable:!0,data:{id:ae.templateId,templateId:ae.templateId,type:"template",nombre_plantilla:T.nombre_plantilla||`Plantilla ${ae.templateId}`,clave:T.clave||`TPL-${ae.templateId}`,estatus:T.estatus||"activo",categoria:T.categoria||null,counts_tasks:T.counts_tasks||0,dias_duracion:T.dias_duracion||0,tarea_plantillas:T.tarea_plantillas||[],params_plantillas:T.params_plantillas||[],createdAt:T.createdAt||new Date().toISOString(),updatedAt:T.updatedAt||new Date().toISOString(),created_by:T.created_by||null,updated_by:T.updated_by||null}};s(G=>[...G,R]);const Y=K||ye.DEFAULT_SOURCE_HANDLE,W=Be(U),q=ot(U,H,Y,I,"plantilla",W,te);n(G=>[...G,q]);try{const G=[...t,R],D=[...a,q];await _(G,D)}catch(G){console.error("❌ Error al actualizar layout después de agregar plantilla:",G)}}else if(B==="tarea"){const ae=O;if(!ae)return;const Z=c({x:r.position.x,y:r.position.y}),se=-new Date().getTime(),T={id:se,reference_graph:H,title:ae.title,description:ae.description,priority:ae.priority,difficulty:ae.difficulty,duration:ae.duration,team:ae.team,responsible:ae.responsible,parent:{data:{id:te}}},R=await g(T,b.id,I),Y=lr(H,Z,R);s(D=>[...D,Y]);const W=K||ye.DEFAULT_SOURCE_HANDLE,q=Be(U),G=ot(U,H,W,I,B,q,te,se);n(D=>[...D,G]);try{const D=[...t,Y],E=[...a,G];await _(D,E)}catch(D){console.error("❌ Error al actualizar layout después de agregar tarea:",D)}setTimeout(()=>{try{const D=u(H);if(D){const E=window.innerWidth,z=window.innerHeight,A=E/2,C=z/2;f({x:A-D.position.x-130,y:C-D.position.y-40,zoom:1},{duration:800})}else h({padding:.1,duration:800})}catch{try{h({padding:.1,duration:800})}catch{}}},200)}o()}catch(te){console.error("❌ Error en createNodeFromPopup:",te)}},[r,b,g,x,N,c,s,n,o,_,t,a]),y=p.useCallback(async(B,I)=>{var K,te;if(console.log("🟢 createConnectionFromPopup - INICIO",{nodeType:B,connectionType:I}),!i){console.warn("⚠️ createConnectionFromPopup - No hay connectionPopup");return}const{sourceNodeId:O,sourceHandleId:H,targetNodeId:U}=i;console.log("🟢 createConnectionFromPopup - Datos de conexión:",{sourceNodeId:O,targetNodeId:U,sourceHandleId:H});try{if(!(window.validConnectionTypes||{dependiente:!0,hija:!0})[I]){console.warn("⚠️ createConnectionFromPopup - Tipo de conexión no válido:",I),M.toast.warning("Tipo de conexión no válido"),l(!1),d();return}const Z=t.find(A=>A.id===O),se=t.find(A=>A.id===U);console.log("🟢 createConnectionFromPopup - Nodos encontrados:",{sourceNode:Z==null?void 0:Z.id,targetNode:se==null?void 0:se.id,sourceData:Z==null?void 0:Z.data,targetData:se==null?void 0:se.data});const T=se==null?void 0:se.data,R=((K=Z==null?void 0:Z.data)==null?void 0:K.id)||O,Y=((te=se==null?void 0:se.data)==null?void 0:te.id)||U;console.log("🟢 createConnectionFromPopup - IDs extraídos:",{parentId:R,childId:Y});const W=ot(O,U,H||ye.DEFAULT_SOURCE_HANDLE,I,B,Be(O),R,Y);console.log("🟢 createConnectionFromPopup - Nuevo edge creado:",W),n(A=>[...A,W]);const q=[...a,W],G=T.id||-Date.now(),D=T.reference_graph||U,E={id:G,uuid:T.uuid||crypto.randomUUID(),reference_graph:D,texto_corto:T.texto_corto||"",texto_largo:T.texto_largo||"",prioridad:T.prioridad||null,nivel_dificultad:T.nivel_dificultad||1,duracion:T.duracion||null,start:T.start||!1,equipo:T.equipo||null,responsable:T.responsable||null,plantilla:{id:T.plantilla.id,clave:T.plantilla.clave,categoria:T.plantilla.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:T.plantilla_dependents||[],ids_t_dependientes:T.ids_t_dependientes||[],tarea_padre:I==="hija"?{id:W.data.parentId}:null,id_t_requerida:I==="dependiente"?{id:W.data.parentId}:null,tareas:T.tareas||[],type:"task"};console.log("🟢 createConnectionFromPopup - taskForState creado:",E),console.log("🟢 createConnectionFromPopup - currentTemplate.id:",b.id);const z=t.map(A=>A.id===U?{...A,data:E}:A);console.log("🟢 createConnectionFromPopup - Actualizando nodos en React Flow..."),s(z),console.log("✅ createConnectionFromPopup - Nodos actualizados en React Flow"),console.log("🟢 createConnectionFromPopup - Actualizando template layout..."),await _(z,q),console.log("✅ createConnectionFromPopup - Template layout actualizado"),console.log("🟢 createConnectionFromPopup - Llamando a updateNodeWithNewEdge..."),await S({templateId:b.id,edge:W,task:E}),console.log("✅ createConnectionFromPopup - updateNodeWithNewEdge completado")}catch(ae){console.error("❌ createConnectionFromPopup - Error al crear conexión:",ae),console.error("❌ createConnectionFromPopup - Stack:",ae.stack)}finally{console.log("🟢 createConnectionFromPopup - Limpiando estado..."),l(!1),d(),console.log("🟢 createConnectionFromPopup - FIN")}},[i,n,l,d,a,t,_]),X=p.useCallback(async B=>{if(!r||!b){M.toast.warning("No hay newNodePopup o template activo para actualizar el nodo");return}const{nodeId:I}=r;if(!I){M.toast.warning("No se encontró nodeId en newNodePopup");return}try{const O=t.find(U=>U.id===I);if(!O){M.toast.warning(`No se encontró el nodo con ID: ${I}`);return}const H={...O,data:{...O.data,...B,id:O.data.id||O.id,type:O.data.type||O.data.type,updatedAt:new Date().toISOString()}};s(U=>U.map(K=>K.id===I?H:K));try{const U=t.map(K=>K.id===I?H:K);await _(U,a)}catch(U){M.toast.error("Error al actualizar layout después de actualizar nodo:",U)}o()}catch(O){M.toast.error("Error al actualizar el nodo:",O)}},[r,b,t,s,a,_,o]);return{createNodeFromPopup:F,createConnectionFromPopup:y,updateNodeFromPopup:X,updateAfterDeleted:P}},wr=({data:t,id:a,isConnectable:s,selected:n})=>{be(F=>F.addNodeFromHandle);const r=be(F=>F.getViewMode),[i,o]=p.useState(!1),[d,l]=p.useState(t),c=Fe(F=>F.activeTemplate),u=Fe(F=>F.setActiveTemplate),{get:f,update:h}=Ae(),w=c!=null&&c.id?r(c.id):"readonly",{updateTaskInTemplate:m}=or(),{setNodes:g,setEdges:x,getNodes:b,getEdges:j}=re.useReactFlow(),v=de.useQueryClient(),{updateAfterDeleted:L}=Oa({nodes:b(),edges:j(),setNodes:g,setEdges:x,newNodePopup:null,connectionPopup:null,closeNewNodePopup:()=>{},closeConnectionPopup:()=>{},setIsConnectingExistingNodes:()=>{}}),S=(F,y)=>{F.preventDefault(),F.stopPropagation()},k=()=>{o(!0)},N=p.useCallback(async()=>{var O,H,U;const F=b().find(K=>K.id===a);if(!F){console.warn("⚠️ Nodo no encontrado para eliminar");return}const y=[F],X=Aa(y),B=y.length>0?(H=(O=y[0])==null?void 0:O.data)==null?void 0:H.id:0;x(K=>K.filter(te=>!X.includes(te.source)&&!X.includes(te.target))),g(K=>K.filter(te=>te.id!==a));let I;for(const K of y)try{const te=K.data;if((U=te==null?void 0:te.plantilla)!=null&&U.id){I=te.plantilla.id;break}}catch{}try{x(K=>((async()=>{await L(X,K,I,B)})().catch(te=>{console.error("❌ Error en updateAfterDeleted:",te)}),K))}catch(K){console.error("❌ Error en handleDeleteNode:",K)}},[a,b,j,g,x,L]),_=p.useCallback(async F=>{var y,X,B,I,O,H,U,K,te,ae;if(!c){console.warn("⚠️ MainNode.updateTemplateLayout - No hay template activo");return}try{const Z=await f(c.id);if(!Z){console.warn("⚠️ MainNode.updateTemplateLayout - Template no encontrado en IndexedDB");return}const se=(y=Z.graph_layout)==null?void 0:y.snapshot;if(!(!se||JSON.stringify(se.nodes)!==JSON.stringify(F))){console.log("🔄 MainNode.updateTemplateLayout - No hay cambios en nodos, omitiendo actualización");return}const R=F.filter(q=>{var G;return!((G=q.data)!=null&&G.isInternal)&&!q.parentId}).map(q=>{const{style:G,measured:D,data:E,selected:z,...A}=q,{expandedDimensions:C,isExpanded:V,needsReExpansion:$,...J}=E||{},ne=G?{...G,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...A,style:ne,data:J}}),Y=(((B=(X=Z.graph_layout)==null?void 0:X.snapshot)==null?void 0:B.edges)||[]).filter(q=>{var G;return!((G=q.data)!=null&&G.isInternal)}),W={...Z,graph_layout:{id:((I=Z.graph_layout)==null?void 0:I.id)||0,snapshot:{...(O=Z.graph_layout)==null?void 0:O.snapshot,nodes:R,edges:Y,viewport:((U=(H=Z.graph_layout)==null?void 0:H.snapshot)==null?void 0:U.viewport)||{x:0,y:0,zoom:1}},history:((K=Z.graph_layout)==null?void 0:K.history)||[],zoom:((te=Z.graph_layout)==null?void 0:te.zoom)||1,position:((ae=Z.graph_layout)==null?void 0:ae.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await h(c.id,W),console.log("🗑️ [MainNode] Invalidando caché de la plantilla:",c.id),await v.invalidateQueries({queryKey:["template",c.id]}),await v.invalidateQueries({queryKey:["template"]}),console.log("✅ [MainNode] Caché invalidado exitosamente"),c&&c.id===W.id&&u(W)}catch(Z){console.error("❌ MainNode.updateTemplateLayout - Error al actualizar template layout:",Z)}},[c,f,h,u,v]),P=async F=>{if(o(!1),c){const y={...t,texto_corto:F.title,texto_largo:F.description,prioridad:F.priority?typeof F.priority=="number"?F.priority:parseInt(F.priority.toString()):null,nivel_dificultad:F.difficulty?typeof F.difficulty=="number"?F.difficulty:parseInt(F.difficulty.toString()):1,duracion:F.duration?typeof F.duration=="number"?F.duration:parseInt(F.duration.toString()):null,equipo:{id:Number(F.team)||null},responsable:{id:Number(F.responsible)||null}};await m(t.id,y),g(X=>{const B=X.map(I=>I.id===a?{...I,data:{...I.data,...y,tarea_padre:t.tarea_padre,id_t_requerida:t.id_t_requerida,updatedAt:new Date().toISOString()}}:I);return console.log("🔄 updatedNodes:",B),setTimeout(()=>_(B),0),B})}};return p.useEffect(()=>{l(t)},[t]),e.jsxs("div",{className:`tw-border-2 tw-bg-white tw-px-4 tw-py-2 tw-rounded-lg tw-transition-all tw-duration-200 ${n?"tw-border-blue-500 tw-shadow-lg tw-ring-2 tw-ring-blue-300 tw-ring-opacity-50":t.main?"ui-border-green-500 tw-shadow-sm":"ui-border-neutral-100 tw-shadow-sm"}`,children:[e.jsx(re.Handle,{isConnectable:s,id:"top-target",type:"target",position:re.Position.Top,className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",onClick:F=>S(F)}),e.jsx(re.Handle,{isConnectable:s,id:"right-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Right,onClick:F=>S(F)}),e.jsx(re.Handle,{isConnectable:s,id:"bottom-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Bottom,onClick:F=>S(F)}),e.jsx(re.Handle,{isConnectable:s,id:"left-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Left,onClick:F=>S(F)}),e.jsxs("div",{className:"tw-flex tw-h-full tw-flex-col tw-gap-y-2 tw-p-2 ",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between tw-gap-x-4 ",children:[e.jsx("p",{className:"tw-font-bold tw-leading-none tw-text-neutral-900",children:d.texto_corto}),!t.isInternal&&c.estatusFromStrapi!==Ee.PUBLISHED&&w!=="readonly"&&e.jsx("div",{children:t.type==="task"?e.jsx(M.Popup,{position:"right",absolute:!0,size:"md",rounded:!0,icon:"ElipsisOutlined",containerClassName:"nopan nodrag",buttonClassName:"nopan nodrag",children:e.jsxs(M.List,{children:[e.jsx(M.ListItem,{icon:"EditOutlined",onClick:k,children:"Editar"}),e.jsx(M.ListSeparator,{}),e.jsx(M.ListItem,{icon:"Plus1Outlined",color:"red",onClick:N,children:"Eliminar"})]})}):e.jsx(M.Button,{size:"md",variant:"outlined",color:"white",icon:"MaximizeOutlined",rounded:!0,className:"nopan"})})]}),e.jsx("p",{className:"ui-text-xs tw-text-neutral-900 ",children:d.texto_largo}),e.jsxs("div",{className:"tw-flex tw-gap-x-6 tw-justify-between",children:[e.jsx(Yn,{duration:d.duracion}),e.jsx(Xn,{difficulty:d.nivel_dificultad}),e.jsx(Zn,{priority:d.prioridad}),e.jsx(er,{responsible:d.responsable})]})]}),e.jsx(re.Handle,{isConnectable:s,id:"top-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Top,onClick:F=>S(F)}),e.jsx(re.Handle,{isConnectable:s,id:"right-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Right,onClick:F=>S(F)}),e.jsx(re.Handle,{isConnectable:s,id:"bottom-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Bottom,onClick:F=>S(F)}),e.jsx(re.Handle,{isConnectable:s,id:"left-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Left,onClick:F=>S(F)}),t.type==="task"&&i&&e.jsx(Ma,{isOpen:i,onClose:()=>o(!1),onSuccess:P,editMode:!0,taskToEdit:d})]})},pr=async({tasks_api:t,page:a=1,pageSize:s=10,search:n="",filters:r={}})=>{const i={clave:{$notNull:!0},estatus:{$ne:Ee.DELETED},...n?{$or:[{nombre_plantilla:{$containsi:n}},{clave:{$containsi:n}}]}:{},...Object.keys(r).reduce((l,c)=>(Array.isArray(r[c])?l[c]={id:{$in:r[c]}}:l[c]=r[c],l),{})},o=Pe.stringify({filters:i,fields:["id","clave","estatus","dias_duracion","createdAt","publication_date"],count_tasks:!0,tarea_plantillas:!1,populate:{updated_by:{fields:["id","nombre","username","email"]},created_by:{fields:["id","nombre","username","email"]},params_plantillas:{fields:["id","name"],populate:{params_tipo:{fields:["id","key","label"]}}},tarea_plantillas:{fields:["id"],filters:{start:!0},populate:{tareas:{fields:["id"]},ids_t_dependientes:{fields:["id"]}}}},sort:{createdAt:"asc"},pagination:{page:a,pageSize:s}},{encodeValuesOnly:!0}),d=await t.get(`/api/plantillas/all-plantillas?${o}`);return d.data?{data:ge(d.data.data),meta:d.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:s,pageCount:0,total:0}}}},qa=({page:t=1,pageSize:a=10,search:s="",filters:n={}})=>{const{tasks_api:r}=we();return de.useQuery({queryKey:["templates",t,a,s,n],queryFn:()=>pr({tasks_api:r,page:t,pageSize:a,search:s,filters:n}),staleTime:1e3*60*60*24,placeholderData:de.keepPreviousData,select:i=>({data:(i==null?void 0:i.data)||[],meta:i==null?void 0:i.meta})})},La=({isOpen:t,onClose:a,onSuccess:s,nodeDataType:n,parentNodeInfo:r})=>{var v,L,S,k;const i=be(N=>N.addNodeWithType),[o,d]=p.useState(0),l=5,[c,u]=p.useState(1),[f,h]=p.useState("");p.useEffect(()=>{t&&(u(1),h(""),d(0))},[t]),p.useEffect(()=>{u(1)},[f]);const{data:w,isLoading:m}=qa({page:c,pageSize:l,search:f}),g=N=>{h(N.target.value)},x=()=>{var _;if(o===0)return;const N=(_=w==null?void 0:w.data)==null?void 0:_.find(P=>P.id===o);if(!N){console.error("No se encontró la plantilla seleccionada en los datos");return}s?s({templateId:o,templateData:N}):i&&i(n.id,n.type,n.connectionType)};if(m)return e.jsx("div",{children:"Cargando..."});if(!(w!=null&&w.data))return e.jsx("div",{children:"No hay datos disponibles"});const b=((L=(v=w.meta)==null?void 0:v.pagination)==null?void 0:L.total)||0,j=b===1?"plantilla encontrada":"plantillas encontradas";return e.jsx(M.Modal,{icon:"TaskOutlined",isOpen:t,size:"lg",onSuccess:x,onClose:a,title:"Agregar plantilla",successButtonText:"Agregar",disableSuccessButton:o===0,closeAtSuccess:!0,children:e.jsxs(M.Modal.Body,{withPadding:!1,children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between tw-gap-6 tw-px-12 tw-py-3",children:[e.jsxs("p",{className:"tw-flex-1 tw-text-[14px] tw-text-neutral-500",children:[b," ",j]}),e.jsx(M.Input,{className:"tw-flex-1",leftSlot:"SearchOutlined",fullWidth:!0,placeholder:"Buscar por nombre, parámetros o estado...",value:f,onChange:g})]}),e.jsx(M.Separator,{}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-6 tw-p-12",children:[JSON.stringify(w.data),w.data.map(N=>e.jsx(Pa,{mode:"modal",template:N,active:o===N.id,fullWidth:!0,onClick:d,withOptions:!1},N.id)),w.data.length===0&&e.jsx("div",{className:"tw-flex tw-items-center tw-justify-center tw-h-full",children:e.jsx("p",{className:"tw-text-[14px] tw-text-neutral-500",children:"No se encontraron plantillas con ese criterio de búsqueda"})})]}),e.jsx(M.Separator,{}),e.jsx("div",{className:"tw-mt-6",children:e.jsx(M.Pagination,{className:"tw-pt-0",pageSize:l,pageCount:((k=(S=w==null?void 0:w.meta)==null?void 0:S.pagination)==null?void 0:k.pageCount)||1,currentPage:c,onPageChange:N=>u(N)})})]})})},mr=({data:t,id:a})=>{const s=be(u=>u.addNodeWithType),[n,r]=p.useState(!1),[i,o]=p.useState(!1),[d,l]=p.useState({id:a,type:"tarea",connectionType:"dependiente"}),c=({type:u,connectionType:f})=>{s&&(l({id:a,type:u,connectionType:f}),u==="tarea"?r(!0):u==="plantilla"&&o(!0))};return console.log({data:t,id:a}),e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-center",children:[d.type==="plantilla"&&e.jsx(La,{isOpen:i,onClose:()=>o(!1),nodeDataType:d}),e.jsx(re.Handle,{id:"top-target",type:"target",position:re.Position.Top}),e.jsx(re.Handle,{id:"right-target",type:"target",position:re.Position.Right}),e.jsx(re.Handle,{id:"bottom-target",type:"target",position:re.Position.Bottom}),e.jsx(re.Handle,{id:"left-target",type:"target",position:re.Position.Left}),e.jsx(re.Handle,{id:"top-source",type:"source",position:re.Position.Top}),e.jsx(re.Handle,{id:"right-source",type:"source",position:re.Position.Right}),e.jsx(re.Handle,{id:"bottom-source",type:"source",position:re.Position.Bottom}),e.jsx(re.Handle,{id:"left-source",type:"source",position:re.Position.Left}),e.jsx(M.Popup,{position:"right",absolute:!0,size:"md",rounded:!0,icon:"Plus1Outlined",containerClassName:"nopan",buttonClassName:"nopan",children:e.jsxs(M.List,{className:"nopan nodrag",children:[e.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Tarea"}),e.jsx(M.ListItem,{icon:"ElipsisOutlined",iconColor:"blue",onClick:()=>c({type:"tarea",connectionType:"dependiente"}),children:"Dependiente"}),e.jsx(M.ListItem,{icon:"Plus1Outlined",onClick:()=>c({type:"tarea",connectionType:"hija"}),children:"Hija"}),e.jsx(M.ListSeparator,{}),e.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Plantilla"}),e.jsx(M.ListItem,{icon:"Plus1Outlined",onClick:()=>c({type:"plantilla",connectionType:"dependiente"}),children:"Dependiente"}),e.jsx(M.ListItem,{icon:"Plus1Outlined",onClick:()=>c({type:"plantilla",connectionType:"hija"}),children:"Hija"})]})})]})},fr=({isOpen:t,position:a,onClose:s,createNodeFromPopup:n,parentNodeInfo:r})=>{const[i,o]=p.useState(!1),[d,l]=p.useState(!1),[c,u]=p.useState(null);if(!t)return null;const f=(x,b)=>{u({type:x,connectionType:b}),x==="tarea"?o(!0):x==="plantilla"&&l(!0)},h=()=>{o(!1),u(null),s()},w=()=>{l(!1),u(null),s()},m=x=>{c&&n(c.type,c.connectionType,x),h()},g=x=>{c&&x&&n(c.type,c.connectionType,x),w()};return e.jsxs(e.Fragment,{children:[!i&&!d&&e.jsx("div",{className:"tw-fixed tw-inset-0 tw-z-50",onClick:s}),!i&&!d&&e.jsx("div",{className:"tw-fixed tw-z-50 tw-bg-white tw-rounded-lg tw-shadow-lg tw-border tw-border-neutral-200 tw-min-w-[200px]",style:{left:a.x+50,top:a.y-100},children:e.jsx("div",{className:"tw-p-2",children:e.jsxs(M.List,{children:[e.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Tarea"}),e.jsx(M.ListItem,{icon:"ElipsisOutlined",iconColor:"blue",onClick:()=>f("tarea","dependiente"),children:"Dependiente"}),e.jsx(M.ListItem,{icon:"Plus1Outlined",onClick:()=>f("tarea","hija"),children:"Hija"}),e.jsx(M.ListSeparator,{}),e.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Plantilla"}),e.jsx(M.ListItem,{icon:"ElipsisOutlined",iconColor:"blue",onClick:()=>f("plantilla","dependiente"),children:"Dependiente"})]})})}),i&&c&&e.jsx(Ma,{isOpen:i,onClose:h,onSuccess:m,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:r}),d&&c&&e.jsx(La,{isOpen:d,onClose:w,onSuccess:g,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:r})]})};function xr({reactFlowWrapper:t,nodes:a}){const{setViewport:s,getViewport:n}=re.useReactFlow(),{zoom:r}=re.useViewport(),i=Math.round(r*100),[o,d]=p.useState([]),[l,c]=p.useState(-1),[u,f]=p.useState(!1),[h,w]=p.useState(0);p.useLayoutEffect(()=>{const S=t==null?void 0:t.current;if(S){const k=S.getBoundingClientRect();w(k.width)}},[t]);const m=p.useMemo(()=>{var _;if(!a||a.length===0)return{x:0,y:0,zoom:1};const S=a.find(P=>{var F;return(F=P==null?void 0:P.data)==null?void 0:F.main})??a[0];return{x:(h||(typeof window<"u"?window.innerWidth:0))/2-(((_=S==null?void 0:S.position)==null?void 0:_.x)??0),y:20,zoom:1}},[a,h]),g=p.useCallback(S=>{if(!u){const k=[...o.slice(0,l+1),S];d(k),c(k.length-1)}},[o,l,u]),x=p.useCallback(()=>{if(u)return;const S=n(),k=Math.min(S.zoom*1.2,2);g(S),f(!0),s({x:S.x,y:S.y,zoom:k}),setTimeout(()=>f(!1),100)},[n,s,g,u]),b=p.useCallback(()=>{if(u)return;const S=n(),k=Math.max(S.zoom/1.2,.5);g(S),f(!0),s({x:S.x,y:S.y,zoom:k}),setTimeout(()=>f(!1),100)},[n,s,g,u]),j=p.useCallback(()=>{if(u)return;const S=n();Math.abs(S.zoom-1)>.01&&g(S),f(!0),s({x:S.x,y:S.y,zoom:1}),setTimeout(()=>f(!1),100)},[n,s,g,u]),v=p.useCallback(()=>{if(u||l<=0)return;const S=o[l-1];f(!0),s(S),c(l-1),setTimeout(()=>f(!1),100)},[l,o,s,u]);return p.useEffect(()=>{o.length===0&&(d([{zoom:1,x:0,y:0}]),c(0))},[o.length]),{isReady:h!==0&&Array.isArray(a)&&a.length>0,defaultViewport:m,zoomPercentage:i,handleZoomIn:x,handleZoomOut:b,handleZoomTo100:j,handleDoubleClick:v}}const gr=t=>{var i,o;const a=((i=t.data)==null?void 0:i.isInternal)||!1,s=(o=t.data)==null?void 0:o.originalGroupId,n=t.selected||!1,r=d=>{if(d.preventDefault(),d.stopPropagation(),s){const c=be.getState().collapseGroup;c&&c(s)}};return e.jsxs("div",{className:`tw-flex tw-flex-col tw-border-[1px] tw-gap-y-2 tw-rounded-lg tw-bg-white tw-p-3 tw-transition-all tw-duration-200 ${n?"tw-border-blue-500 tw-shadow-lg tw-ring-2 tw-ring-blue-300 tw-ring-opacity-50":"tw-border-neutral-100 tw-shadow-sm"}`,children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[e.jsx(M.Icon,{name:"FlagOutlined",background:!0}),e.jsx("p",{className:"tw-leading-none tw-text-neutral-500 tw-font-bold",children:t.data.clave}),a&&e.jsx(M.Button,{size:"md",variant:"outlined",color:"white",onClick:r,className:"tw-p-2 nopan nodrag",icon:"MinimizeOutlined",rounded:!0})]}),a&&e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[e.jsx(M.Tag,{color:t.data.estatus==="published"?"green":"yellow",size:"xs",rounded:!0,label:t.data.estatus==="published"?"Publicado":"Borrador",variant:"outlined",borderable:!1}),(t.data.updatedAt||t.data.updated_at)&&e.jsx("p",{className:"tw-text-sm tw-text-neutral-500 tw-font-medium",children:new Date(t.data.updatedAt||t.data.updated_at).toLocaleDateString("es-ES")})]}),e.jsx(re.Handle,{id:"bottom-source",type:"source",position:re.Position.Bottom,className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white tw-cursor-crosshair"}),e.jsx(re.Handle,{id:"top-target",type:"target",position:re.Position.Top,className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white tw-cursor-crosshair"})]})},hr=()=>{const t=p.useCallback((r,i,o,d)=>{const l=(f,h)=>{const w=f.position.x,m=f.position.y,g=120,x=60,b=15;switch(h){case"top-source":case"top-target":return{x:w,y:m-x/2-b};case"bottom-source":case"bottom-target":return{x:w,y:m+x/2+b};case"left-source":case"left-target":return{x:w-g/2-b,y:m};case"right-source":case"right-target":return{x:w+g/2+b,y:m};default:return{x:w,y:m}}},c=l(r,o),u=l(i,d);return Math.sqrt(Math.pow(u.x-c.x,2)+Math.pow(u.y-c.y,2))},[]),a=p.useCallback((r,i)=>{if(r.includes("source")===i.includes("source"))return!1;const o=u=>u.includes("top")?"top":u.includes("bottom")?"bottom":u.includes("left")?"left":u.includes("right")?"right":null,d=o(r),l=o(i);return{top:"bottom",bottom:"top",left:"right",right:"left"}[d]===l},[]),s=p.useCallback((r,i)=>{const o=["top-source","bottom-source","left-source","right-source"],d=["top-target","bottom-target","left-target","right-target"];let l=1/0,c={handle1:o[0],handle2:d[0]};for(const u of o)for(const f of d){if(!a(u,f))continue;const h=t(r,i,u,f);h<l&&(l=h,c={handle1:u,handle2:f})}return c},[t,a]),n=p.useCallback((r,i,o=800)=>Math.sqrt(Math.pow(i.position.x-r.position.x,2)+Math.pow(i.position.y-r.position.y,2))<o,[]);return{findClosestHandles:s,calculateHandleDistance:t,areHandlesCompatible:a,shouldApplyMagneticConnection:n}},br=t=>{const[a,s]=p.useState(null),[n,r]=p.useState(null),[i,o]=p.useState(!1),d=p.useCallback((h,w,m,g)=>{s({isOpen:!0,nodeId:h,position:w,sourceNodeId:m,sourceHandleId:g})},[]),l=p.useCallback(()=>{s(null)},[]),c=p.useCallback((h,w,m,g,x)=>{o(!0),r({isOpen:!0,sourceNodeId:h,sourceHandleId:m,targetNodeId:w,targetHandleId:g,position:x})},[]),u=p.useCallback(()=>{o(!1),r(null)},[]),f=p.useCallback(()=>{var w,m,g;if(!(a!=null&&a.sourceNodeId))return null;const h=t.find(x=>x.id===a.sourceNodeId);return h?{id:h.id,label:(w=h.data)==null?void 0:w.label,nodeType:(m=h.data)==null?void 0:m.nodeType,connectionType:(g=h.data)==null?void 0:g.connectionType,data:h.data}:null},[a,t]);return{newNodePopup:a,connectionPopup:n,isConnectingExistingNodes:i,openNewNodePopup:d,closeNewNodePopup:l,openConnectionPopup:c,closeConnectionPopup:u,getParentNodeInfo:f,setIsConnectingExistingNodes:o}},yr=({initialNodes:t,initialEdges:a})=>{const[s,n,r]=re.useNodesState(Lt(t)),[i,o,d]=re.useEdgesState(a),[l,c]=p.useState(!1),u=p.useCallback(W=>{o(W)},[o]),{toObject:f}=re.useReactFlow(),{findClosestHandles:h,shouldApplyMagneticConnection:w}=hr(),{updateGraphLayout:m,get:g,update:x}=Ae(),b=Fe(W=>W.activeTemplate),j=Fe(W=>W.setActiveTemplate),v=de.useQueryClient(),{removeParentIdFromNodes:L}=Xe(),{newNodePopup:S,connectionPopup:k,isConnectingExistingNodes:N,openNewNodePopup:_,closeNewNodePopup:P,openConnectionPopup:F,closeConnectionPopup:y,getParentNodeInfo:X,setIsConnectingExistingNodes:B}=br(s),{createNodeFromPopup:I,createConnectionFromPopup:O,updateNodeFromPopup:H,updateAfterDeleted:U}=Oa({nodes:s,edges:i,setNodes:n,setEdges:u,newNodePopup:S,connectionPopup:k,closeNewNodePopup:P,closeConnectionPopup:y,setIsConnectingExistingNodes:B});p.useEffect(()=>{if(t&&t.length>0){if(!(t.some((z,A)=>{const C=s[A];return C?z.id!==C.id||JSON.stringify(z.position)!==JSON.stringify(C.position)||JSON.stringify(z.data)!==JSON.stringify(C.data):!0})||t.length!==s.filter(z=>{var A;return!((A=z.data)!=null&&A.isInternal)}).length)&&s.length>0)return;const{expandedGroups:q,groupTemplateData:G}=be.getState();let D=s.filter(z=>{var A,C;return((A=z.data)==null?void 0:A.isInternal)&&typeof((C=z.data)==null?void 0:C.originalGroupId)=="string"&&q.has(z.data.originalGroupId)});const E=Lt(t);if(D.length>0){const z=E.map(A=>{var C;if(q.has(A.id)){const V=s.find(J=>J.id===A.id),$=(C=V==null?void 0:V.data)==null?void 0:C.expandedDimensions;if($)return{...A,style:{...A.style,width:$.width,height:$.height},data:{...A.data,isExpanded:!0,expandedDimensions:$}}}return A});n([...z,...D])}else if(q.size>0){const z=E.map(A=>q.has(A.id)&&G[A.id]?{...A,data:{...A.data,isExpanded:!0,needsReExpansion:!0}}:A);n(z)}else n(E)}else n([])},[t,n]),p.useEffect(()=>{if(!l&&a&&a.length>0){const{expandedGroups:W}=be.getState(),q=i.filter(D=>{var E,z;return((E=D.data)==null?void 0:E.isInternal)&&typeof((z=D.data)==null?void 0:z.originalGroupId)=="string"&&W.has(D.data.originalGroupId)}),G=i.filter(D=>{var E,z;return((E=D.data)==null?void 0:E.redirectedToInternal)&&typeof((z=D.data)==null?void 0:z.originalTarget)=="string"&&W.has(D.data.originalTarget)});if(q.length>0||G.length>0){const D=a.filter(E=>!G.some(z=>{var A;return((A=z.data)==null?void 0:A.originalTarget)===E.target}));u([...D,...q,...G])}else u(a)}},[a,u,l]);const K=p.useCallback((W,q,G=!1)=>{const E=i.filter(C=>C.target===q).length>0;if(i.some(C=>C.source===W&&C.target===q||C.source===q&&C.target===W)&&!G)return M.toast.warning("La tarea destino ya tiene una conexión"),!1;const A=!E;return typeof window<"u"&&(window.validConnectionTypes={dependiente:A,hija:A}),A?!0:(M.toast.warning("La tarea destino ya tiene una conexión de entrada"),!1)},[i]),te=p.useCallback(W=>{if(!cr(W.source,W.target))return;Be(W.source)&&!W.sourceHandle&&(W.sourceHandle=ye.DEFAULT_SOURCE_HANDLE);const q=s.find(D=>D.id===W.source),G=s.find(D=>D.id===W.target);if(q&&G){if(!K(W.source,W.target))return;F(W.source,W.target,W.sourceHandle,W.targetHandle);return}return u(D=>re.addEdge(W,D))},[s,F,u,K]),ae=p.useCallback((W,q)=>{var G;if(!N&&!q.isValid&&q.fromNode){const D=s.find(J=>J.id===q.fromNode.id);if((D==null?void 0:D.type)==="group"){M.toast.warning("En una plantilla, no se puede crear una conexión");return}const E=dr(W),z=document.elementFromPoint(E.x,E.y);if(z!=null&&z.closest(".react-flow__node"))return;const A=crypto.randomUUID(),C=((G=q.fromHandle)==null?void 0:G.id)||ye.DEFAULT_SOURCE_HANDLE,$=Be(q.fromNode.id)?ye.DEFAULT_SOURCE_HANDLE:C;_(A,E,q.fromNode.id,$)}},[N,_,s]),Z=p.useCallback(async W=>{var E,z,A;const q=Aa(W),G=W.length>0?(z=(E=W[0])==null?void 0:E.data)==null?void 0:z.id:0;u(C=>C.filter(V=>!q.includes(V.source)&&!q.includes(V.target)));let D;for(const C of W)try{const V=C.data;if((A=V==null?void 0:V.plantilla)!=null&&A.id){D=V.plantilla.id;break}}catch{}try{u(C=>((async()=>{await U(q,C,D,G)})().catch(V=>{console.error("❌ Error en updateAfterDeleted:",V)}),C))}catch(C){console.error("❌ Error en onDeleteNode:",C)}},[u,U]),se=p.useCallback(async W=>{var G,D,E,z,A,C,V,$,J,ne,oe,ie,ce,ue;if(!W||W.length===0)return;let q;if(b!=null&&b.id)q=b.id;else for(const le of W){const pe=s.find(fe=>fe.id===le.source),xe=s.find(fe=>fe.id===le.target);if(pe!=null&&pe.data&&typeof pe.data=="object"&&"plantilla"in pe.data){const fe=pe.data.plantilla;if(fe!=null&&fe.id){q=fe.id;break}}if(xe!=null&&xe.data&&typeof xe.data=="object"&&"plantilla"in xe.data){const fe=xe.data.plantilla;if(fe!=null&&fe.id){q=fe.id;break}}}if(!q){console.warn("⚠️ onEdgesDelete - No se pudo obtener templateId");return}try{const le=await g(q);if(!le){console.warn("⚠️ onEdgesDelete - Template no encontrado en IndexedDB");return}const pe=W.map(Ce=>Ce.id),xe=((E=(D=(G=le.graph_layout)==null?void 0:G.snapshot)==null?void 0:D.edges)==null?void 0:E.filter(Ce=>{var Ie;return!pe.includes(Ce.id)&&!((Ie=Ce.data)!=null&&Ie.isInternal)}))||[],Me=(((C=(A=(z=le.graph_layout)==null?void 0:z.snapshot)==null?void 0:A.nodes)==null?void 0:C.filter(Ce=>{var Ie;return!((Ie=Ce.data)!=null&&Ie.isInternal)&&!Ce.parentId}))||[]).map(Ce=>{const{style:Ie,measured:Qe,data:at,...$a}=Ce,{expandedDimensions:so,isExpanded:no,needsReExpansion:ro,...Tt}=at||{},Ba=Ie?{...Ie,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0,Ha=Ce.data.id===W[0].data.childId?{...Tt,tarea_padre:null,id_t_requerida:null}:Tt;return{...$a,style:Ba,data:Ha}}),he=(($=(V=le.graph_layout)==null?void 0:V.snapshot)==null?void 0:$.edges)||[];if(!(JSON.stringify(he)!==JSON.stringify(xe)))return;const Ne={...le,graph_layout:{id:((J=le.graph_layout)==null?void 0:J.id)||0,snapshot:{nodes:Me,edges:xe,viewport:((oe=(ne=le.graph_layout)==null?void 0:ne.snapshot)==null?void 0:oe.viewport)||{x:0,y:0,zoom:1}},history:((ie=le.graph_layout)==null?void 0:ie.history)||[],zoom:((ce=le.graph_layout)==null?void 0:ce.zoom)||1,position:((ue=le.graph_layout)==null?void 0:ue.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await L({templateId:q,id:W[0].data.childId}),await x(q,Ne),console.log("🗑️ [useFlow] Invalidando caché de la plantilla:",q),await v.invalidateQueries({queryKey:["template",q]}),await v.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlow] Caché invalidado exitosamente"),q===(b==null?void 0:b.id)&&j(Ne)}catch(le){console.error("❌ onEdgesDelete - Error al actualizar template layout:",le)}},[s,b,g,x,j,L]),T=p.useCallback(async W=>!W.nodes.some(G=>G.type==="start"||G.id===ye.START_NODE_ID),[]),R=p.useCallback((W,q,G)=>{var A,C,V;const D=s.find($=>$.id===q.id);if(!D)return;if(D.type==="group"&&((A=D.data)!=null&&A.isExpanded)){u($=>$.map(J=>{if(J.hidden&&J.target===q.id){const{hidden:ne,...oe}=J;return oe}return J}));return}let E;if(D.type==="group"?E=b==null?void 0:b.id:(V=(C=q==null?void 0:q.data)==null?void 0:C.plantilla)!=null&&V.id&&(E=q.data.plantilla.id),!E)return;const z=i.map($=>{var oe,ie,ce,ue,le;if(rt($))return $;const J=s.find(pe=>pe.id===$.source),ne=s.find(pe=>pe.id===$.target);if(J&&ne){const pe=J.type==="group"&&((oe=J.data)==null?void 0:oe.isExpanded),xe=ne.type==="group"&&((ie=ne.data)==null?void 0:ie.isExpanded),fe=(ce=J.data)==null?void 0:ce.isInternal,Me=(ue=ne.data)==null?void 0:ue.isInternal,he=(le=$.data)==null?void 0:le.redirectedToInternal;if(pe||xe||fe||Me||he)return $;if(J.id===q.id||ne.id===q.id||w(J,ne,ye.MAGNETIC_CONNECTION_DISTANCE)){const Ne=h(J,ne);if(Ne!=null&&Ne.handle1&&(Ne!=null&&Ne.handle2))return{...$,sourceHandle:Ne.handle1,targetHandle:Ne.handle2}}}return $});if(JSON.stringify(i)!==JSON.stringify(z))u(z),setTimeout(()=>{const $=f();m(E,$)},100);else{const $=f();m(E,$)}},[s,i,b,m,f,u,h,w]),Y=p.useCallback(W=>{r(W);const q=ur(W);if(q.length>0){const G=q.filter(D=>{var z;const E=s.find(A=>A.id===D);return(E==null?void 0:E.type)==="group"&&((z=E==null?void 0:E.data)==null?void 0:z.isExpanded)});if(G.length>0){u(D=>D.map(E=>{var C;const z=G.includes(E.target),A=!((C=E.data)!=null&&C.redirectedToInternal);return z&&A?{...E,hidden:!0}:E}));return}c(!0),setTimeout(()=>{const D=i.map(z=>{var V,$,J,ne;if(rt(z))return{...z};const A=s.find(oe=>oe.id===z.source),C=s.find(oe=>oe.id===z.target);if(A&&C){const oe=A.type==="group"&&((V=A.data)==null?void 0:V.isExpanded),ie=C.type==="group"&&(($=C.data)==null?void 0:$.isExpanded),ce=(J=A.data)==null?void 0:J.isInternal,ue=(ne=C.data)==null?void 0:ne.isInternal;if(oe||ie||ce||ue)return{...z};if(w(A,C,ye.MAGNETIC_CONNECTION_DISTANCE)){const le=h(A,C);if(le!=null&&le.handle1&&(le!=null&&le.handle2)&&(z.sourceHandle!==le.handle1||z.targetHandle!==le.handle2))return{...z,sourceHandle:le.handle1,targetHandle:le.handle2}}}return{...z}});if(i.some((z,A)=>{const C=D[A];return z.sourceHandle!==C.sourceHandle||z.targetHandle!==C.targetHandle})){const z=D.map(A=>({...A,id:A.id}));u(z)}setTimeout(()=>{c(!1)},200)},0)}},[r,i,s,u,h,w,c]);return{nodes:s,edges:i,newNodePopup:S,connectionPopup:k,setNodes:n,setEdges:u,onEdgesChange:d,onConnect:te,onConnectEnd:ae,onDeleteNode:Z,onEdgesDelete:se,onBeforeDelete:T,handleNodesChange:Y,onDragEnd:R,getParentNodeInfo:X,isProtectedConnection:rt,isStartNode:Be,createNodeFromPopup:I,updateNodeFromPopup:H,closeNewNodePopup:P,createConnectionFromPopup:O,closeConnectionPopup:y}},jr=({isOpen:t,onClose:a,createConnectionFromPopup:s,availableConnections:n})=>{if(!t)return null;const r=n||{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}},i=(o,d)=>{(o==="tarea"?r.tarea[d]:r.plantilla[d])&&s(o,d)};return e.jsx(e.Fragment,{children:e.jsxs("div",{className:"tw-fixed tw-inset-0 tw-z-50 tw-flex tw-items-center tw-justify-center",children:[e.jsx("div",{className:"tw-bg-black/20 tw-absolute tw-inset-0",onClick:a}),e.jsx("div",{className:"ui-shadow-lg ui-border-neutral-100 ui-border-1 tw-relative tw-rounded-lg tw-bg-white tw-p-4",children:e.jsx("div",{children:e.jsxs(M.List,{children:[e.jsx("p",{className:"ui-text-sm tw-px-4 tw-font-medium tw-text-neutral-300",children:"Tarea"}),e.jsxs(M.ListItem,{icon:"ElipsisOutlined",iconColor:r.tarea.dependiente?"blue":"neutral",onClick:()=>i("tarea","dependiente"),children:["Dependiente222 ",!r.tarea.dependiente&&"(No disponible)"]}),e.jsxs(M.ListItem,{icon:"Plus1Outlined",iconColor:r.tarea.hija?"blue":"neutral",onClick:()=>i("tarea","hija"),children:["Hija ",!r.tarea.hija&&"(No disponible)"]}),e.jsx(M.ListSeparator,{}),e.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Plantilla"}),e.jsxs(M.ListItem,{icon:"ElipsisOutlined",iconColor:r.plantilla.dependiente?"blue":"neutral",onClick:()=>i("plantilla","dependiente"),children:["Dependiente ",!r.plantilla.dependiente&&"(No disponible)"]})]})})})]})})},vr=({data:t,id:a,selected:s})=>{const{expandedGroups:n}=be(),[r,i]=p.useState(!1),o=p.useRef(!1);p.useEffect(()=>{const f=(t==null?void 0:t.needsReExpansion)&&n.has(a),h=(t==null?void 0:t.templateId)||(t==null?void 0:t.id);if(f&&h&&!o.current){o.current=!0;const m=be.getState().expandGroup;m&&m(a,h).catch(g=>{console.error("Error al re-expandir grupo:",g),o.current=!1})}n.has(a)||(o.current=!1)},[t,a,n]);const d=async f=>{f.preventDefault(),f.stopPropagation();const h=(t==null?void 0:t.templateId)||(t==null?void 0:t.id);if(h){i(!0);try{const w=be.getState(),m=w.expandGroup,g=w.collapseGroup,x=n.has(a);x&&g?g(a):!x&&m&&await m(a,h)}catch{}finally{i(!1)}}},l=n.has(a),c=t==null?void 0:t.expandedDimensions,u=l&&c?{width:c.width,height:c.height,minWidth:c.width,minHeight:c.height}:{minWidth:268,minHeight:80};return e.jsxs("div",{className:`tw-rounded-lg tw-relative tw-transition-all tw-duration-200 ${s?"tw-bg-white tw-border-2 tw-border-blue-500 tw-shadow-lg tw-ring-2 tw-ring-blue-300 tw-ring-opacity-50":l?"tw-bg-neutral-50 tw-border-2 tw-border-blue-300 tw-shadow-lg":"tw-bg-white tw-border-2 tw-border-neutral-100"}`,style:u,children:[e.jsx(Ye,{isLoading:r}),e.jsx(re.Handle,{id:"top-target",type:"target",position:re.Position.Top,className:`tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white ${l?"tw-opacity-0 tw-pointer-events-none":""}`,isConnectable:!l}),e.jsx(re.Handle,{id:"right-target",type:"target",className:`tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white ${l?"tw-opacity-0 tw-pointer-events-none":""}`,position:re.Position.Right,isConnectable:!l}),e.jsx(re.Handle,{id:"bottom-target",type:"target",className:`tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white ${l?"tw-opacity-0 tw-pointer-events-none":""}`,position:re.Position.Bottom,isConnectable:!l}),e.jsx(re.Handle,{id:"left-target",type:"target",className:`tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white ${l?"tw-opacity-0 tw-pointer-events-none":""}`,position:re.Position.Left,isConnectable:!l}),!l&&e.jsxs("div",{className:"tw-flex tw-flex-col",children:[e.jsxs("div",{className:`tw-flex tw-justify-between tw-items-center tw-gap-x-4 ${l?"tw-px-6 tw-pt-6":"tw-p-6 tw-pb-0"}`,children:[e.jsxs("div",{className:"tw-flex tw-flex-col",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[e.jsx(M.Icon,{name:"TaskOutlined",color:"blue",size:"lg"}),e.jsx("p",{className:"tw-font-bold tw-leading-none tw-text-neutral-900",children:t.clave||t.nombre_plantilla||"N/A"})]}),t.nombre_plantilla&&t.clave&&e.jsx("p",{className:"tw-text-sm tw-text-neutral-600 tw-mt-1",children:t.nombre_plantilla})]}),e.jsx(M.Button,{size:"md",variant:"outlined",color:"white",onClick:d,disabled:r,rounded:!0,className:`tw-p-2 ${r?"tw-opacity-50":""} nopan nodrag`,icon:l?"MinimizeOutlined":"MaximizeOutlined"})]}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2 tw-px-6",children:[e.jsx(M.Tag,{color:t.estatus==="published"?"green":"yellow",size:"xs",rounded:!0,label:t.estatus==="published"?"Publicado":"Borrador",variant:"outlined",borderable:!1}),t.updatedAt&&e.jsx("p",{className:"tw-text-sm tw-text-neutral-500 tw-font-medium",children:new Date(t.updatedAt).toLocaleDateString("es-ES")})]})]})]})},_r=(t,a,s,n)=>{const r=p.useRef(t),i=p.useRef(a);p.useEffect(()=>{r.current=t},[t]),p.useEffect(()=>{i.current=a},[a]);const{expandedGroups:o,groupTemplateData:d,toggleGroupExpansion:l,setGroupTemplateData:c,clearGroupTemplateData:u}=be(),f=de.useQueryClient(),{getTemplateWithTasks:h}=Ea(),{hydrateTasks:w}=Ia(),m=p.useCallback(async(j,v)=>{var L,S,k,N;try{await f.invalidateQueries({queryKey:["template",v]});const _=await h(v),P=(k=(S=(L=_==null?void 0:_.graph_layout)==null?void 0:L.snapshot)==null?void 0:S.nodes)==null?void 0:k.filter(C=>{var V,$;return((V=C.data)==null?void 0:V.isInternal)||C.parentId||(($=C.id)==null?void 0:$.includes("-internal-"))});if(P&&P.length>0&&console.warn("⚠️ [expandGroup] Nodos sospechosos en API para plantilla",v,":",P),!((N=_==null?void 0:_.graph_layout)!=null&&N.snapshot))throw new Error(`No se encontraron datos de graph_layout en la plantilla: ${v}`);const F=_.graph_layout.snapshot.nodes||[],y=F.filter(C=>{var oe,ie;const V=(oe=C.data)==null?void 0:oe.isInternal,$=!!C.parentId,J=(ie=C.id)==null?void 0:ie.includes("-internal-"),ne=V||$||J;return ne&&console.warn("🗑️ [expandGroup] Filtrando nodo corrupto:",{id:C.id,type:C.type,esInterno:V,tieneParentId:$,tieneInternalEnId:J}),!ne}),X={..._,graph_layout:{..._.graph_layout,snapshot:{..._.graph_layout.snapshot,nodes:y,edges:(_.graph_layout.snapshot.edges||[]).filter(C=>{var V,$;return!((V=C.data)!=null&&V.isInternal)&&!(($=C.id)!=null&&$.includes("-internal-"))})}}},B=F.length-y.length;B>0?console.warn(`⚠️ [expandGroup] Se filtraron ${B} nodos internos corruptos de la BD para plantilla ${v}`):console.log(`✅ [expandGroup] No se encontraron nodos corruptos en plantilla ${v}`);const I=await w(X),O={...X,hydratedNodes:I,nodes:I||X.graph_layout.snapshot.nodes||[],edges:X.graph_layout.snapshot.edges||[]},H=O.nodes,U=O.edges;if(!H||!U){console.error("❌ No se encontraron nodos o edges en la plantilla:",v);return}c(j,{nodes:H,edges:U,viewport:O.graph_layout.snapshot.viewport||{x:0,y:0,zoom:1}});const K=r.current.find(C=>C.id===j);if(!K){console.error("❌ No se encontró el nodo grupo:",j);return}const te=H.filter(C=>C.id!==j);let ae=1/0,Z=1/0,se=-1/0,T=-1/0;te.forEach(C=>{var le,pe,xe,fe,Me,he;const V=((le=C.position)==null?void 0:le.x)||0,$=((pe=C.position)==null?void 0:pe.y)||0,J=typeof((xe=C.style)==null?void 0:xe.width)=="number"?C.style.width:((fe=C.measured)==null?void 0:fe.width)||268,ne=typeof((Me=C.style)==null?void 0:Me.height)=="number"?C.style.height:((he=C.measured)==null?void 0:he.height)||111,oe=V-J/2,ie=V+J/2,ce=$,ue=$+ne;ae=Math.min(ae,oe),Z=Math.min(Z,ce),se=Math.max(se,ie),T=Math.max(T,ue)});const R=80,Y=60,W=se-ae,q=T-Z,G=W+R*2,D=q+R*2+Y,E=H.map((C,V)=>{var le,pe;if(C.id===j)return null;const $=((le=C.position)==null?void 0:le.x)||0,J=((pe=C.position)==null?void 0:pe.y)||0,ne=$-ae+R,oe=J-Z+R+Y,ie=C.type==="start"||C.id==="start",ce=ie?{...C.data,estatus:K.data.estatus,updatedAt:K.data.updatedAt,createdAt:K.data.createdAt,isInternal:!0,originalGroupId:j,originalNodeId:C.id}:{...C.data,isInternal:!0,originalGroupId:j,originalNodeId:C.id};return{...C,id:`${j}-internal-${C.id}`,parentId:j,extent:"parent",type:C.type==="group"?"main":C.type,position:{x:ne,y:oe},style:{...C.style},data:ce,draggable:!1,selectable:ie,selected:!1,deletable:!1,connectable:!1,focusable:ie,zIndex:999}}).filter(Boolean),z=U.map(C=>{const V=E.some(ne=>ne&&ne.id===`${j}-internal-${C.source}`),$=E.some(ne=>ne&&ne.id===`${j}-internal-${C.target}`);return!V||!$?null:{...C,id:`${j}-internal-${C.id}`,source:`${j}-internal-${C.source}`,target:`${j}-internal-${C.target}`,style:{...C.style},data:{...C.data,isInternal:!0,originalGroupId:j}}}).filter(Boolean),A=E.find(C=>{var V;return C&&((V=C.data)==null?void 0:V.originalNodeId)==="start"});A&&n(C=>C.map(V=>V.target===j?{...V,target:A.id,targetHandle:"top-target",data:{...V.data,redirectedToInternal:!0,originalTarget:j,originalTargetHandle:V.targetHandle}}:V)),l(j),s(C=>[...C.map($=>{if($.id===j){const{needsReExpansion:J,...ne}=$.data||{};return{...$,style:{...$.style,width:G,height:D},data:{...ne,isExpanded:!0,expandedDimensions:{width:G,height:D}},zIndex:1e3}}return $}),...E]),n(C=>[...C,...z])}catch(_){console.error("❌ Error al expandir el grupo:",_)}},[f,h,w,c,l,s,n]),g=p.useCallback(j=>{var P,F;const v=r.current,L=i.current,S=v.find(y=>y.id===j),k=((P=S==null?void 0:S.data)==null?void 0:P.templateId)||((F=S==null?void 0:S.data)==null?void 0:F.id),N=v.filter(y=>!y.id.startsWith(`${j}-internal-`)&&y.parentId!==j).map(y=>y.id===j?{...y,style:{...y.style,width:void 0,height:void 0},data:{...y.data,isExpanded:!1,expandedDimensions:void 0},zIndex:void 0}:y),_=L.filter(y=>!y.id.startsWith(`${j}-internal-`)).map(y=>{var X,B;if((X=y.data)!=null&&X.redirectedToInternal&&((B=y.data)==null?void 0:B.originalTarget)===j){const{redirectedToInternal:I,originalTarget:O,originalTargetHandle:H,...U}=y.data;return{...y,target:j,targetHandle:H||y.targetHandle,data:U}}return y});s(N),n(_),l(j),u(j),k&&f.invalidateQueries({queryKey:["template",k]})},[s,n,l,u,f]),x=p.useCallback(async(j,v)=>{o.has(j)?g(j):await m(j,v)},[o,m,g]),b=p.useCallback(j=>o.has(j),[o]);return{expandGroup:m,collapseGroup:g,toggleGroup:x,isGroupExpanded:b,groupTemplateData:d}},Nr=()=>{const{getNodes:t,setNodes:a,screenToFlowPosition:s,setCenter:n}=re.useReactFlow(),{copiedNodes:r,setCopiedNodes:i,getViewMode:o}=be(),{activeTemplate:d,setActiveTemplate:l}=Fe(),{updateGraphLayout:c,get:u,update:f}=Ae(),h=d!=null&&d.id?o(d.id):"readonly",w=p.useCallback(()=>`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,[]),m=p.useCallback(()=>t().filter(N=>N.selected).filter(N=>!(N.type==="start"||N.id==="start"||N.type==="group")),[t]),g=p.useCallback(()=>{if(h==="readonly"){M.toast.error("No puedes copiar tareas en modo solo lectura");return}if(!d){M.toast.error("No hay una plantilla activa");return}const L=m();if(L.length===0){const k=t().filter(N=>N.selected);if(k.length>0){const N=k.some(P=>P.type==="group"),_=k.some(P=>P.type==="start"||P.id==="start");N?M.toast.error("Las plantillas conectadas no pueden ser copiadas"):_&&M.toast.error("El nodo de inicio no puede ser copiado")}else M.toast.error("No hay tareas seleccionadas para copiar");return}const S=L.map(k=>{const{selected:N,..._}=k;return{..._,data:{..._.data,_originalTemplateId:d.id}}});i(S),M.toast.success(`${L.length} ${L.length===1?"tarea copiada":"tareas copiadas"} con éxito`)},[h,d,m,t,i]),x=p.useCallback(async L=>{if(h==="readonly"){M.toast.error("No puedes pegar tareas en modo solo lectura");return}if(!d){M.toast.error("No hay una plantilla activa");return}if(r.length===0){M.toast.error("No hay tareas copiadas para pegar");return}const S=t();let k={x:0,y:0};if(L)k=s({x:L.x,y:L.y});else if(S.length>0){const B=S.reduce((O,H)=>O+H.position.x,0)/S.length,I=S.reduce((O,H)=>O+H.position.y,0)/S.length;k={x:B+50,y:I+100}}const N=r[0],_=k.x-N.position.x,P=k.y-N.position.y,F=r.map((B,I)=>{const O=w(),H=-(Date.now()+I),U=B.data.plantilla&&typeof B.data.plantilla=="object"?{...B.data.plantilla,id:d.id}:{id:d.id},{id:K,...te}=B.data,ae={...te,id:H,reference_graph:O,plantilla:U,parent:{data:{id:null}},_originalTemplateId:void 0};return{...B,id:O,position:{x:B.position.x+_,y:B.position.y+P},data:ae,selected:!0}}),X=[...S.map(B=>({...B,selected:!1})),...F];if(a(X),d.id)try{const B=await u(d.id);if(!B)return;const I=F.filter(H=>H.type!=="start"&&H.type!=="group").map(H=>{const U=H.data;return{id:U.id,reference_graph:H.id,nombre:U.nombre||U.texto_corto||"Tarea sin nombre",texto_corto:U.texto_corto||"",texto_largo:U.texto_largo||"",prioridad:U.prioridad??0,nivel_dificultad:U.nivel_dificultad??0,dias_duracion:U.dias_duracion??0,plantilla:{id:d.id},parent:{data:{id:null}},tareas:[],plantilla_dependents:U.plantilla_dependents||[],start:U.start||!1,es_grupo:U.es_grupo||!1,optional:U.optional||!1,subtask_completadas:U.subtask_completadas||0,subtask_totales:U.subtask_totales||0}}),O={...B,tarea_plantillas:[...B.tarea_plantillas,...I],estatus:"dirty",updatedAt:new Date().toISOString()};await f(d.id,O),l(O),setTimeout(async()=>{await c(d.id,{nodes:X,edges:[]})},50)}catch(B){console.error("Error al actualizar template en IndexedDB:",B)}if(F.length>0){const B=F.reduce((O,H)=>O+H.position.x,0)/F.length,I=F.reduce((O,H)=>O+H.position.y,0)/F.length;n(B,I,{zoom:1,duration:800})}M.toast.success(`${F.length} ${F.length===1?"tarea pegada":"tareas pegadas"} con éxito`)},[h,d,r,t,a,s,n,w,c,u,f,l]),b=p.useCallback(()=>r.length>0,[r]),v=m().length>0;return{handleCopy:g,handlePaste:x,hasCopiedNodes:b,hasSelectableNodes:v,copiedNodesCount:r.length}},Tr={main:wr,plus:mr,start:gr,group:vr},Cr=[.5,0],Er=({initialNodes:t,initialEdges:a})=>{const s=p.useRef(null),{nodes:n,edges:r,onEdgesChange:i,onConnect:o,onConnectEnd:d,onBeforeDelete:l,onDeleteNode:c,onEdgesDelete:u,handleNodesChange:f,newNodePopup:h,getParentNodeInfo:w,createNodeFromPopup:m,closeNewNodePopup:g,connectionPopup:x,createConnectionFromPopup:b,closeConnectionPopup:j,onDragEnd:v,setNodes:L,setEdges:S}=yr({initialNodes:t,initialEdges:a}),{expandGroup:k,collapseGroup:N}=_r(n,r,L,S),{handleCopy:_,handlePaste:P,hasCopiedNodes:F,copiedNodesCount:y}=Nr(),B=n.filter(ie=>!(!ie.selected||ie.type==="start"||ie.id==="start"||ie.type==="group")).length,I=B>0;p.useEffect(()=>{const ie=ce=>{const ue=ce.target;ue.tagName==="INPUT"||ue.tagName==="TEXTAREA"||ue.isContentEditable||((ce.ctrlKey||ce.metaKey)&&ce.key==="c"&&(ce.preventDefault(),_()),(ce.ctrlKey||ce.metaKey)&&ce.key==="v"&&(ce.preventDefault(),P()))};return document.addEventListener("keydown",ie),()=>{document.removeEventListener("keydown",ie)}},[_,P]);const O=p.useRef(k),H=p.useRef(N);p.useEffect(()=>{O.current=k,H.current=N},[k,N]),p.useEffect(()=>{const ie=async(ue,le)=>{O.current&&await O.current(ue,le)},ce=ue=>{H.current&&H.current(ue)};be.setState({expandGroup:ie,collapseGroup:ce})},[]);const{zoomPercentage:U,handleZoomIn:K,handleZoomOut:te,handleZoomTo100:ae,handleDoubleClick:Z}=xr({reactFlowWrapper:s,nodes:n}),{getViewMode:se}=be(),{activeTemplate:T}=Fe(),Y=(T!=null&&T.id?se(T.id):"readonly")==="readonly",W=Y?void 0:i,q=Y?void 0:f,G=Y?void 0:o,D=Y?void 0:d,E=Y?void 0:l,z=Y?void 0:v,A=Y?void 0:c,C=Y?void 0:u,V=Y?null:["Backspace","Delete"],ne=Y?{nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!0,edgesFocusable:!1,nodesFocusable:!1,draggable:!1,selectionOnDrag:!1,connectOnClick:!1}:{nodesDraggable:!0,nodesConnectable:!0,elementsSelectable:!0,edgesFocusable:!0,nodesFocusable:!0,draggable:!1,selectionOnDrag:!1,connectOnClick:!0},oe=()=>{if(x)return{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}}};return e.jsxs("div",{className:"wrapper",ref:s,style:{width:"100%",height:"100vh"},children:[e.jsxs(re.ReactFlow,{nodes:n,edges:r,nodeTypes:Tr,onEdgesChange:W,onNodesChange:q,onConnect:G,onConnectEnd:D,onBeforeDelete:E,onNodeDragStop:z,onNodesDelete:A,onEdgesDelete:C,...ne,fitView:!0,fitViewOptions:{padding:2},nodeOrigin:Cr,defaultEdgeOptions:{type:"smoothstep"},connectionLineType:re.ConnectionLineType.SmoothStep,deleteKeyCode:V,multiSelectionKeyCode:Y?null:"Shift",children:[e.jsx(re.Background,{}),!Y&&e.jsx(re.Panel,{position:"bottom-left",className:"tw-m-0",children:e.jsxs("div",{className:"tw-bg-white tw-border tw-border-neutral-100 tw-rounded-lg tw-p-3 tw-shadow-sm tw-text-sm tw-text-neutral-500",children:[e.jsx("div",{className:"tw-font-semibold tw-text-neutral-900 tw-mb-2",children:"Atajos de teclado"}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-1",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"Shift"}),e.jsx("span",{children:"+ clic para seleccionar múltiples tareas"})]}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"Ctrl"}),e.jsx("span",{children:"+"}),e.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"C"}),e.jsx("span",{children:"Copiar"})]}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"Ctrl"}),e.jsx("span",{children:"+"}),e.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"V"}),e.jsx("span",{children:"Ppegar"})]})]})]})}),e.jsx(re.Panel,{position:"top-left",className:"tw-m-0",children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-2",children:[e.jsxs("div",{children:[T.estatusFromStrapi===Ee.PUBLISHED&&e.jsx(M.Tag,{color:"green",variant:"outlined",borderable:!1,label:"Publicado",size:"lg",rounded:!0,badgeColor:"green"}),T.estatusFromStrapi===Ee.DRAFT&&e.jsx(M.Tag,{color:"neutral",variant:"outlined",borderable:!1,label:"Borrador",size:"lg",rounded:!0})]}),!Y&&B>0&&e.jsxs("p",{className:"tw-text-blue-dark-500 ui-text-xs tw-font-medium",children:[B," ",B===1?"tarea seleccionada":"tareas seleccionadas"]})]})}),e.jsx(re.Panel,{position:"top-right",className:"tw-m-0",children:e.jsxs("div",{className:"tw-flex tw-gap-2",children:[!Y&&e.jsxs(M.ButtonGroup,{children:[e.jsxs(M.Button,{icon:"CopyOutlined",onClick:_,disabled:!I,variant:I?"button":"outlined",color:I?"blue-dark":"neutral",title:I?`Copiar ${B} ${B===1?"tarea":"tareas"} (Ctrl+C)`:"Selecciona tareas para copiar (mantén Shift y haz clic)",children:["Copiar ",B>0&&`(${B})`]}),e.jsxs(M.Button,{icon:"DocumentOutlined",onClick:()=>P(),disabled:!F(),variant:"outlined",color:"neutral",title:F()?`Pegar ${y} ${y===1?"tarea":"tareas"} (Ctrl+V)`:"No hay tareas copiadas",children:["Pegar ",y>0&&`(${y})`]})]}),e.jsxs(M.ButtonGroup,{color:"white",variant:"outlined",children:[e.jsx(M.Button,{icon:"Minus2Outlined",onClick:te}),e.jsxs(M.Button,{onClick:ae,onDoubleClick:Z,children:[U,"%"]}),e.jsx(M.Button,{icon:"Plus1Outlined",onClick:K})]})]})})]}),h&&e.jsx(fr,{isOpen:h.isOpen,position:h.position,onClose:g,createNodeFromPopup:m,parentNodeInfo:w()}),x&&e.jsx(jr,{isOpen:x.isOpen,onClose:j,createConnectionFromPopup:b,availableConnections:oe()})]})},Sr=({initialNodes:t,initialEdges:a})=>e.jsx(re.ReactFlowProvider,{children:e.jsx(Er,{initialNodes:t,initialEdges:a})}),Ve=qe.create(t=>({step:1,setStep:a=>t({step:a}),reset:()=>t({step:1})})),kr=({limit:t})=>{const a=Ve(o=>o.step),s=Ve(o=>o.setStep),n=p.useCallback(()=>{a<t&&s(a+1)},[a,s,t]),r=p.useCallback(()=>{a>1&&a<=t&&s(a-1)},[a,s,t]),i=p.useCallback(o=>{o>0&&o<=t&&s(o)},[s,t]);return p.useMemo(()=>({step:a,nextStep:n,prevStep:r,onStepChange:i}),[a,n,r,i])},Rt=["fase_plantilla","tipo_plantilla","categoria","tipo_medio","medio_especifico","pertenencia_medio","ubicacion_medio","responsable_impresion"],zt=["fase_plantilla","modo_configuracion","tipo_medio","formato_salida"],$t=["tipo_medio","formato_salida","medio_especifico"],Bt={fase_plantilla:{Preventa:{fieldsToClear:["modo_configuracion","formato_salida","medio_especifico","tipo_plantilla","categoria"]},Venta:{fieldsToClear:["tipo_medio","medio_especifico","modo_configuracion"]}},modo_configuracion:{Default:{fieldsToClear:["formato_salida","medio_especifico","tipo_medio"]},Especifico:{fieldsToClear:["formato_salida","medio_especifico","tipo_medio"]}},tipo_medio:{"Sitios Fijos":{fieldsToClear:["medio_especifico","responsable_impresion","pertenencia_medio","ubicacion_medio"]},Indoors:{fieldsToClear:["medio_especifico","responsable_impresion","pertenencia_medio","ubicacion_medio"]},"Vallas Móviles":{fieldsToClear:["responsable_impresion","pertenencia_medio","ubicacion_medio"]},Camiones:{fieldsToClear:["responsable_impresion","pertenencia_medio","ubicacion_medio"]},"Brand Riders":{fieldsToClear:["responsable_impresion","pertenencia_medio","ubicacion_medio"]}},formato_salida:{Digital:{fieldsToClear:["pertenencia_medio","ubicacion_medio"]},Impreso:{fieldsToClear:["pertenencia_medio","ubicacion_medio"]}}},Ht={fase_plantilla:{Venta:{fieldsToEnableDisable:["tipo_plantilla","modo_configuracion","categoria","pertenencia_medio","ubicacion_medio"]},Preventa:{fieldsToEnableDisable:["modo_configuracion"]}},modo_configuracion:{Preventa:{Default:{fieldsToEnableDisable:["tipo_medio"]},Especifico:{fieldsToEnableDisable:["tipo_medio"]}},Venta:{Default:{fieldsToEnableDisable:["tipo_medio","formato_salida"]},Especifico:{fieldsToEnableDisable:["tipo_medio"]}}},tipo_plantilla:{General:{fieldsToEnableDisable:["medio_especifico"]},Individual:{fieldsToEnableDisable:[]}},formato_salida:{Digital:{fieldsToEnableDisable:["responsable_impresion"]},Impreso:{fieldsToEnableDisable:["responsable_impresion"]}}};function _t(t){const[a,s]=p.useState([]),[n,r]=p.useState({}),{setClaveParams:i,templateFormData:o,setTemplateFormData:d,resetTemplateFormData:l,setDisableField:c,setClave:u,claveParams:f,setParamTipo:h}=Se(),{tasks_api:w}=we(),m=Ve(T=>T.step),{data:g,error:x,isSuccess:b,isError:j}=de.useQuery({queryKey:["paramsTipoPlantilla"],queryFn:async()=>{const T=Pe.stringify({populate:{params_plantillas:{fields:["id","abbreviation","name","active","tipomedio_nombre","reference_id"]}},sort:["order:asc"],fields:["id","step","key","label","order"]},{encodeValuesOnly:!0}),R=await w.get(`/api/params-tipos?${T}`);return R.data?{paramsTiposPlantilla:ge(R.data.data)}:{paramsTiposPlantilla:[]}}});p.useEffect(()=>{x&&j&&console.log(x)},[x,j]),p.useEffect(()=>{if(g&&b){const T=g.paramsTiposPlantilla;s(T)}},[g,b]);const v={fase_plantilla:(T,R)=>{d({fase_plantilla:T}),h({fase_plantilla:R})},tipo_plantilla:(T,R)=>{d({tipo_plantilla:T}),h({tipo_plantilla:R})},modo_configuracion:(T,R)=>{d({modo_configuracion:T}),h({modo_configuracion:R})},categoria:(T,R)=>{d({categoria:T}),h({categoria:R})},formato_salida:(T,R)=>{d({formato_salida:T}),h({formato_salida:R})},tipo_medio:(T,R)=>{d({tipo_medio:T}),h({tipo_medio:R})},medio_especifico:(T,R)=>{d({medio_especifico:T}),h({medio_especifico:R})},responsable_impresion:(T,R)=>{d({responsable_impresion:T}),h({responsable_impresion:R})},pertenencia_medio:(T,R)=>{d({pertenencia_medio:T}),h({pertenencia_medio:R})},ubicacion_medio:(T,R)=>{d({ubicacion_medio:T}),h({ubicacion_medio:R})}},L={fase_plantilla:(T,R)=>i({field:T,value:R}),tipo_plantilla:(T,R)=>i({field:T,value:R}),categoria:(T,R)=>i({field:T,value:R}),tipo_medio:(T,R)=>i({field:T,value:R}),medio_especifico:(T,R)=>i({field:T,value:R}),responsable_impresion:(T,R)=>i({field:T,value:R}),pertenencia_medio:(T,R)=>i({field:T,value:R}),ubicacion_medio:(T,R)=>i({field:T,value:R})},S={Digital:{execute:()=>{const T=a.filter(W=>W.step===3).find(W=>W.key==="responsable_impresion").params_plantillas.find(W=>W.name==="N/A").id,R="step3.responsable_impresion",Y=["responsable_impresion"];d({responsable_impresion:"N/A"}),t(R,T),c({fields:Y,value:!0}),i({field:"responsable_impresion",value:"NA"})}},Impreso:{execute:()=>{const T="step3.responsable_impresion",R=["responsable_impresion"];d({responsable_impresion:""}),t(T,""),c({fields:R,value:!1}),i({field:"responsable_impresion",value:""})}}},k={"Sitios Fijos":{execute:()=>X()},"Vallas Móviles":{execute:()=>B()},Indoors:{execute:()=>X()},Camiones:{execute:()=>I()},"Brand Riders":{execute:()=>I()}},N={"Sitios Fijos":{execute:()=>y()},"Vallas Móviles":{execute:()=>y()},Indoors:{execute:()=>y()},Camiones:{execute:()=>{F(),S.Impreso.execute()}},"Brand Riders":{execute:()=>{F(),S.Impreso.execute()}}},_={"Sitios Fijos":{execute:()=>P()},"Vallas Móviles":{execute:()=>F()},Indoors:{execute:()=>P()},Camiones:{execute:()=>F()},"Brand Riders":{execute:()=>F()}},P=()=>{const T=["medio_especifico"],R=o.modo_configuracion,Y=`step${m}.medio_especifico`,W=`step${m}.formato_salida`;c(R==="Default"?{fields:T,value:!0}:{fields:T,value:!1}),d({medio_especifico:""}),d({formato_salida:""}),t(Y,""),t(W,""),i({field:"medio_especifico",value:""}),i({field:"formato_salida",value:""})},F=()=>{const T=a.filter(q=>q.step===m).find(q=>q.key==="formato_salida").params_plantillas.find(q=>q.name==="Impreso").id,R=`step${m}.formato_salida`,Y=["formato_salida","medio_especifico"],W=`step${m}.medio_especifico`;d({medio_especifico:""}),d({formato_salida:"Impreso"}),t(R,T),t(W,""),i({field:"medio_especifico",value:""}),i({field:"tipo_medio",value:o.tipo_medio}),c({fields:Y,value:!0})},y=()=>{const T=["formato_salida"],R=`step${m}.formato_salida`,Y={};Y.formato_salida="",d(Y),t(R,""),c({fields:T,value:!1})},X=()=>{const T=["formato_salida","medio_especifico"],R=`step${m}.formato_salida`,Y={};Y.formato_salida="",d(Y),t(R,""),c({fields:T,value:!1})},B=()=>{const T=["formato_salida"],R=["medio_especifico"],Y=`step${m}.formato_salida`,W=`step${m}.medio_especifico`,q={};q.formato_salida="",q.medio_especifico="",d(q),t(Y,""),t(W,""),c({fields:T,value:!1}),c({fields:R,value:!0})},I=()=>{const T=a.filter(q=>q.step===m).find(q=>q.key==="formato_salida").params_plantillas.find(q=>q.name==="Impreso").id,R=`step${m}.formato_salida`,Y=`step${m}.medio_especifico`,W=["formato_salida","medio_especifico"];d({formato_salida:"Impreso"}),t(R,T),t(Y,""),c({fields:W,value:!0}),S.Impreso.execute()},O=(T,R)=>{Object.keys(Bt).includes(T)&&Bt[T][R].fieldsToClear.forEach(q=>{const G={};G[q]="",d(G),i({field:q,value:""}),t&&[...new Set(a.map(E=>E.step))].forEach(E=>{const z=`step${E}.${q}`;t(z,"")})})},H=(T,R,Y)=>T==="modo_configuracion"&&Y?Ht[T][Y][R].fieldsToEnableDisable:Ht[T][R].fieldsToEnableDisable,U=T=>a.filter(R=>R.step===T),K=T=>{var R;return n[T]||((R=a.find(Y=>Y.key===T))==null?void 0:R.params_plantillas)},te=T=>{var Y,W,q;let R=[];T==="Sitios fijos"?R=(Y=a.find(G=>G.key==="medio_especifico"))==null?void 0:Y.params_plantillas.filter(G=>G.tipomedio_nombre==="OOH"):T==="Indoors"?R=(W=a.find(G=>G.key==="medio_especifico"))==null?void 0:W.params_plantillas.filter(G=>G.tipomedio_nombre==="InDoor"):R=(q=a.find(G=>G.key==="medio_especifico"))==null?void 0:q.params_plantillas,r(G=>({...G,medio_especifico:R}))},ae=(T,R)=>{const Y=T.key;if($t.includes(Y)&&Y==="tipo_medio"){const W=R.label,q=o.fase_plantilla,G=o.modo_configuracion;if(q==="Preventa"){te(W);return}else if(G==="Especifico"){te(W);return}}},Z=(T,R,Y)=>{const W=T.params_plantillas.find(q=>T.key==="categoria"?q.reference_id===R.value:q.id===R.value);if(W){const q=T.key,G=R.label;if(v[q](G,Y),zt.includes(q))if(O(q,G),q==="fase_plantilla"){const E=H(q,G);c({fields:["categoria","modo_configuracion","tipo_plantilla"],value:!0}),E.length>0&&c({fields:E,value:!1})}else if(q==="modo_configuracion"){const D=G,E=o.fase_plantilla,z=H(q,D,E);c({fields:["medio_especifico","formato_salida"],value:!0}),z.length>0&&c({fields:z,value:!1})}else if(q==="tipo_medio"){const D=G,E=o.modo_configuracion;o.fase_plantilla==="Venta"?E==="Especifico"?k[D].execute():N[D].execute():E==="Especifico"&&_[D].execute()}else if(q==="formato_salida")S[G].execute();else{const D=H(q,G);D.length>0&&c({fields:D,value:!1})}if(Rt.includes(q)){let D="",E="";if(q==="formato_salida"){const z=o.modo_configuracion,A=G;E="tipo_medio",D=z==="Default"&&A==="Digital"?D="DDG":D="DRP"}else E=q,D=W.abbreviation;L[E](E,D)}$t.includes(q)&&ae(T,R)}},se=()=>{if(o){const T=o.fase_plantilla;if(T==="Preventa"){const R=o.modo_configuracion,Y=f.fase_plantilla||"XX";let W=null;if(R==="Default")W=f.tipo_medio||"XXX";else{const G=o.tipo_medio;["Vallas Móviles","Camiones","Brand Riders"].includes(G)?W=f.tipo_medio||"XXX":W=f.medio_especifico||"XXX"}const q=`${Y}-${W}`;u(q)}if(T==="Venta"){const R=f.fase_plantilla||"XX",Y=f.tipo_plantilla||"XXX",W=f.categoria||"XX",q=f.medio_especifico||f.tipo_medio||f.modo_configuracion||"XXX",G=f.responsable_impresion||"XX",D=f.pertenencia_medio||"X",E=f.ubicacion_medio||"X",z=`${R}-${Y}-${W}-${q}-${G}-${D}-${E}`;u(z)}}};return p.useEffect(()=>{se()},[f]),{templateFields:a,getFieldsByStep:U,dropdownFunctionsUpdateClave:L,fieldsForUpdateClave:Rt,resetTemplateFormData:l,fieldsWithDisableTrigger:zt,getFieldsToDisable:H,handleOptionSelected:Z,getFilteredOptions:K,dropdownFunctionsUpdateFormData:v}}const Nt=()=>{const{control:t,setValue:a}=je.useFormContext(),s=Ve(c=>c.step),{getFieldsByStep:n,handleOptionSelected:r,getFilteredOptions:i}=_t(a),{disabledFields:o}=Se(),d=p.useMemo(()=>n(s),[s,n]),l=c=>`El campo ${c.charAt(0).toLocaleLowerCase()+c.slice(1)} es requerido`;return d.map(c=>{const u=`step${c.step}.${c.key}`,f=c.label,w=i(c.key).map(m=>({label:m.name,value:c.key==="categoria"?m.reference_id:m.id}));return e.jsx(je.Controller,{name:u,control:t,rules:{required:{value:!o[c.key],message:l(f)},validate:m=>o[c.key]||m?!0:l(f)},render:({field:m,fieldState:{error:g}})=>e.jsx("div",{children:e.jsx(M.Dropdown,{label:f,value:m.value,onValueChange:x=>{m.onChange(x)},error:g==null?void 0:g.message,options:w,onOptionSelect:x=>{r(c,x,c.id)},disabled:o[c.key]||!1})})},c.id)})},Ir=()=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:e.jsx(Nt,{})}),Dr=()=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:e.jsx(Nt,{})}),Fr=()=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:e.jsx(Nt,{})}),Pr=({step:t})=>e.jsxs("div",{className:"tw-flex tw-min-h-[27rem] tw-flex-col tw-gap-y-4",children:[t===1&&e.jsx(Ir,{}),t===2&&e.jsx(Dr,{}),t===3&&e.jsx(Fr,{})]}),Mr=t=>{const a={step1:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria"],step2:["tipo_medio","formato_salida","medio_especifico"],step3:["responsable_impresion","pertenencia_medio","ubicacion_medio"]};return t.reduce((s,n)=>{const r=`step${n.step}`,i=a[r];return i&&i.includes(n.key)&&(s[r]||(s[r]={}),s[r][n.key]=""),s},{})},Ar=t=>{const a={step1:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria"],step2:["tipo_medio","formato_salida","medio_especifico"],step3:["responsable_impresion","pertenencia_medio","ubicacion_medio"]},s={};return Object.keys(a).forEach(n=>{s[n]={},a[n].forEach(r=>{var o;const i=(o=t[n])==null?void 0:o[r];s[n][r]=i!==void 0?i:""})}),s},Or=t=>t&&t.status===400?{failureLevel:"strapi",errorMessage:"Error al procesar la solicitud",technicalDetails:t.message}:t&&t.status===401?{failureLevel:"authentication",errorMessage:"Error de autenticación",technicalDetails:`Token expirado o inválido: ${t.message}`}:t&&t.status===500?{failureLevel:"strapi",errorMessage:"Error de servidor",technicalDetails:`Error en el servidor de Strapi: ${t.message}`}:{failureLevel:"unknown",errorMessage:"Error inesperado al crear la plantilla",technicalDetails:`Error desconocido: ${t.message}`};function qr(t,a){const{clave:s,paramsTipo:n,currentTemplateForEdit:r,isEditTemplate:i,setDisableField:o,setClaveParams:d,isDuplicateTemplate:l,templateFormData:c}=Se(),{tasks_api:u}=we(),{getFieldsByStep:f,dropdownFunctionsUpdateFormData:h,templateFields:w}=_t(),m=()=>{var S;try{const k={},N=t(),_=Ar(N),{step1:P}=_,F=[];k.clave=s,P.categoria!=""&&(k.categoria=P.categoria);for(const[y,X]of Object.entries(_))for(const[B,I]of Object.entries(X)){const O={id:null,params_tipo:{id:null}};if(I!=""){const H=n[B];if(B==="categoria"){const U=w.find(te=>te.key==="categoria"),K=(S=U==null?void 0:U.params_plantillas)==null?void 0:S.find(te=>te.reference_id===I);O.id=K==null?void 0:K.id}else O.id=I;O.params_tipo.id=H,F.push(O)}}return Object.keys(F).length>0&&(k.params_plantillas=F),k}catch(k){console.log(k)}},g=async S=>{var k;try{let N=null;return i?N=await u.put(`/api/plantillas/${r.id}`,{data:S}):N=await u.post("/api/plantillas",{data:S}),N.data?ge(N.data):null}catch(N){throw console.error("Error en saveTemplateToStrapi:",{error:N.message,status:(k=N.response)==null?void 0:k.status}),N}},x=async S=>{var k;try{const N=Pe.stringify({filters:{plantilla:{id:S}}},{encodeValuesOnly:!0}),_=await u.get(`/api/plantillas/plantilla-tareas-grafico?${N}`);return _.data?ge(_.data.data):null}catch(N){throw console.error("Error en getTemplateWithTasks:",{error:N.message,status:(k=N.response)==null?void 0:k.status}),N}},b=async()=>{try{let S=m();const k=await g(S);if(!k)return{success:!1,message:"No se pudo guardar la plantilla en Strapi",error:"templateData es null"};const N=await x(k.id);return N?{success:!0,message:"Plantilla creada y sincronizada completamente",data:N}:{success:!1,message:"No se pudieron obtener los datos completos de la plantilla",error:"completeData es null"}}catch(S){const{response:{data:k}}=S,N=Or(k.error);return console.error("Error al guardar la plantilla: ",{level:N.failureLevel,message:N.errorMessage,technicalDetails:N.technicalDetails}),{success:!1,message:N.errorMessage,error:N.technicalDetails}}},j=()=>{const{params_plantillas:S}=r;let k={};[1,2,3].forEach(_=>{const P=`step${_}`;k[P]={},f(_).forEach(y=>{var B;const X=S.find(I=>I.params_tipo.key===y.key);if(X){let I=null;if(y.key==="categoria"){const O=(B=y.params_plantillas)==null?void 0:B.find(H=>H.id===X.id);I=(O==null?void 0:O.reference_id)||X.id}else I=X.id;k[P][y.key]=I}})}),a(k)},v=()=>{const{params_plantillas:S}=r;for(const k of S){const{params_tipo:{id:N,key:_},name:P,id:F}=k,y=w.find(X=>X.key===_).params_plantillas.find(X=>X.id===F);h[_](P,N),y&&d({field:_,value:y.abbreviation})}},L=()=>{try{const{fase_plantilla:S,modo_configuracion:k,formato_salida:N,tipo_medio:_}=c;if(S==="Venta")o({fields:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria","tipo_medio"],value:!1}),k==="Default"?(o({fields:["tipo_medio","formato_salida"],value:!1}),o({fields:["medio_especifico"],value:!0}),["Sitios Fijos","Vallas Móviles","Indoors"].includes(_)||o({fields:["formato_salida","medio_especifico"],value:!0}),N==="Digital"?(o({fields:["responsable_impresion"],value:!0}),o({fields:["pertenencia_medio","ubicacion_medio"],value:!1})):o({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!1})):(["Sitios Fijos","Indoors"].includes(_)&&o({fields:["formato_salida","medio_especifico"],value:!1}),["Vallas Móviles"].includes(_)&&(o({fields:["formato_salida"],value:!1}),o({fields:["medio_especifico"],value:!0})),["Camiones","Brand Riders"].includes(_)&&o({fields:["formato_salida","medio_especifico"],value:!0}),N==="Digital"?(o({fields:["responsable_impresion"],value:!0}),o({fields:["pertenencia_medio","ubicacion_medio"],value:!1})):o({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!1}));else if(o({fields:["modo_configuracion"],value:!1}),o({fields:["tipo_plantilla","categoria"],value:!0}),k=="Default"){const P=["formato_salida","medio_especifico","responsable_impresion","pertenencia_medio","ubicacion_medio"];o({fields:["tipo_medio"],value:!1}),o({fields:P,value:!0})}else["Sitios Fijos","Indoors"].includes(_)?(o({fields:["formato_salida"],value:!0}),o({fields:["medio_especifico"],value:!1})):o({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!0})}catch(S){console.error("Error al aplicar reglas de habilitar y deshabilitar campos",S)}};return p.useEffect(()=>{(i||l)&&r&&(j(),v())},[i,l]),p.useEffect(()=>{(i||l)&&c&&L()},[i,c,l]),{savePlantilla:b,getTemplateWithTasks:x}}const Lr=()=>{const{watch:t,getValues:a}=je.useFormContext(),{templateFormData:s,isDuplicateTemplate:n,currentTemplateForEdit:r}=Se(),[i,o]=p.useState(!1),d=p.useRef(null),l=p.useRef(null),c=p.useRef(!1),u=t();return p.useEffect(()=>{if(!c.current&&n&&r){const h=setTimeout(()=>{d.current=a(),l.current={...s},c.current=!0,o(!1)},500);return()=>clearTimeout(h)}},[n,r,a,s]),p.useEffect(()=>{if(d.current&&l.current&&c.current){const h=a(),w=s,m=JSON.stringify(h)!==JSON.stringify(d.current),g=JSON.stringify(w)!==JSON.stringify(l.current);o(m||g)}},[u,s,a]),{hasChanges:i,resetChanges:()=>{d.current=null,l.current=null,c.current=!1,o(!1)}}},Rr=({onReset:t})=>{const{hasChanges:a,resetChanges:s}=Lr(),{setHasFormChanges:n}=Se();return p.useEffect(()=>{n(a)},[a,n]),p.useEffect(()=>{t(s)},[t,s]),null},zr=({isOpen:t,onClose:a})=>{const{step:s,nextStep:n,prevStep:r,onStepChange:i}=kr({limit:3}),o=Ve(Y=>Y.reset),{templateFields:d,resetTemplateFormData:l}=_t(),{clave:c,resetClave:u,resetDisabledFields:f,isEditTemplate:h,setIsEditTemplate:w,refetch:m,isDuplicateTemplate:g,hasFormChanges:x,setIsDuplicateTemplate:b}=Se(),{openTemplate:j}=Ae(),[v,L]=p.useState(!1),[S,k]=p.useState(""),[N,_]=p.useState(!1),P=p.useRef(null),F=Y=>{P.current=Y},y=Mr(d),X=s===1,B=s===3,I=X?"Cancelar":"Atrás";p.useEffect(()=>{t&&o()},[t,o]);const O=je.useForm({mode:"onChange",defaultValues:y}),{trigger:H,reset:U,clearErrors:K,getValues:te}=O,{savePlantilla:ae}=qr(te,U),Z=async()=>{if(await H()){if(s===3){if(!x&&g){k("Ya existe un proceso con éstos parámetros. Modifica al menos uno para poder duplicarlo."),_(!0);return}try{L(!0);const W=await ae();if(W.success){const q=W.data;if(R(),T(),_(!1),!h)try{await j({template:q,statusTemplate:ve.NEW})}catch(G){console.warn("La plantilla se creó exitosamente pero hubo un problema al abrirla:",G)}m()}else{const{error:q}=W;k(q),_(!0)}}catch(W){console.error("Error inesperado al guardar la plantilla:",W);return}finally{L(!1)}}n()}},se=()=>{k(""),_(!1)},T=()=>{K(),U(),l(),f(),u(),se(),h&&w(!1),g&&b(!1),P.current&&P.current()},R=()=>{T(),a()};return v?e.jsx(Ye,{isLoading:v}):e.jsxs(je.FormProvider,{...O,children:[e.jsx(Rr,{onReset:F}),e.jsx(M.Modal,{isOpen:t,closeAtCancel:!1,onSuccess:Z,cancelButtonText:I,successButtonText:B?h?"Guardar":"Crear":"Continuar",onCancel:X?R:r,onClose:R,size:"sm",icon:"PlantillaOutlined",title:h?"Editar plantilla":"Nueva plantilla",children:e.jsxs(M.Modal.Body,{children:[e.jsx("div",{className:"tw-flex tw-w-full tw-overflow-x-auto tw-pb-16 tw-pt-12",children:e.jsx("div",{className:"tw-flex tw-w-full",style:{justifyContent:"center",minWidth:"fit-content"},children:e.jsx(M.Stepper,{currentStep:s-1,onStepChange:Y=>i(Y+1),steps:[{title:"Paso 1",description:"INFORMACIÓN"},{title:"Paso 2",description:"DETALLES"},{title:"Paso 3",description:"PRODUCCIÓN"}]})})}),e.jsx("div",{className:"tw-flex tw-w-full tw-justify-center",children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-gap-0",children:[e.jsx("div",{className:"tw-bg-[#F0F0F0] tw-rounded-[100px] tw-p-2",style:{width:"fit-content",minWidth:"fit-content"},children:e.jsx("div",{className:"tw-font-sans tw-font-bold tw-py-1 tw-p-[90px]",children:c})}),e.jsx("div",{className:"ui-bg-blue-500 tw-text-white tw-px-3 tw-py-1.5 tw-font-medium tw--mt-4",style:{borderRadius:"100px",fontSize:"10px"},children:"CLAVE"})]})}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-y-4 tw-p-16",children:[N&&e.jsx(M.Alert,{open:!0,variant:"outlined",color:"red",message:S,className:"tw-mb-6",onClose:se}),e.jsx(Pr,{step:s})]})]})})]})},$r=({isOpen:t,onClose:a,replaceTemplate:s})=>e.jsx(e.Fragment,{children:e.jsx(M.Modal,{isOpen:t,closeAtCancel:!1,cancelButtonText:"Cancelar",successButtonText:"Abrir",onCancel:a,onClose:a,onSuccess:s,size:"sm",icon:"ExclamationTriangleOutlined",title:"Límite de plantillas",children:e.jsx(M.Modal.Body,{children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full ui-p-4",children:[e.jsx("div",{className:"tw-flex tw-justify-center tw-w-full",style:{minWidth:"fit-content"},children:e.jsx("div",{className:"tw-flex tw-justify-center tw-items-center tw-gap-[10px] tw-rounded-full tw-p-[35px]",style:{backgroundColor:"#EBEEF9"},children:e.jsx(M.Icon,{name:"ExclamationTriangleOutlined",size:"6xl",color:"blue"})})}),e.jsx("div",{className:"tw-text-center tw-mt-6",children:e.jsx("h2",{className:"tw-text-[24px] tw-font-bold tw-font-['Open_Sans'] tw-text-[#3658C1] tw-leading-tight",children:"¿Quieres continuar?"})}),e.jsx("div",{className:"tw-text-center tw-mt-2",children:e.jsx("div",{className:"tw-text-[12px] tw-font-normal tw-font-['Open_Sans'] tw-text-[#6B6B6B]",children:"Ya tienes 5 flujos de trabajo abiertos, si abres uno nuevo, se cerrará automáticamente el que lleva más tiempo sin usarse."})})]})})})}),Br=qe.create(t=>({cachedTemplate:null,canCreateTemplate:!1,setCachedTemplate:a=>t({cachedTemplate:a}),clearCachedTemplate:()=>t({cachedTemplate:null}),setCanCreateTemplate:a=>{const s=!(a<5);t({canCreateTemplate:s})}})),Hr=({isOpen:t,onClose:a,discardChanges:s,saveAndExit:n})=>e.jsx("div",{children:e.jsx(M.Modal,{isOpen:t,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Guardar y salir",onCancel:a,onClose:a,onSuccess:n,size:"sm",icon:"ExclamationTriangleOutlined",title:"Cambios sin guardar",children:e.jsx(M.Modal.Body,{children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full ui-p-4",children:[e.jsx("div",{className:"tw-flex tw-justify-center tw-w-full",style:{minWidth:"fit-content"},children:e.jsx("div",{className:"tw-flex tw-justify-center tw-items-center tw-gap-[10px] tw-rounded-full tw-p-[35px]",style:{backgroundColor:"#EBEEF9"},children:e.jsx(M.Icon,{name:"SaveOutlined",size:"6xl",color:"blue"})})}),e.jsx("div",{className:"tw-flex tw-flex-col tw-mx-6",children:e.jsx(M.Alert,{open:!0,variant:"outlined",color:"red",showCloseButton:!1,message:"Tienes cambios sin guardar en ésta plantilla",title:"No has guardado",className:"tw-mt-8"})}),e.jsx("div",{className:"tw-text-center tw-mt-5",children:e.jsx("h2",{className:"tw-text-[24px] tw-font-bold tw-font-['Open_Sans'] tw-text-[#3658C1]",children:"¿Qué deseas hacer antes de salir?"})}),e.jsx("div",{className:"tw-text-center tw-mt-1",children:e.jsx("div",{className:"tw-text-[12px] tw-font-normal tw-font-['Open_Sans'] tw-text-[#6B6B6B]",children:"Si sales ahora sin guardar se perderán los cambios actuales."})}),e.jsx("div",{className:"tw-flex tw-justify-center tw-mt-4",children:e.jsx(M.Button,{variant:"outlined",color:"white",onClick:()=>{s(),a()},children:"Descartar cambios"})})]})})})}),Ra=({isOpen:t,onClose:a,publishTemplate:s})=>e.jsx(M.Modal,{isOpen:t,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Confirmar",onCancel:a,onClose:a,onSuccess:s,size:"sm",icon:"ArrowUpOutlined",title:"Publicar",children:e.jsx(M.Modal.Body,{children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full tw-p-8",children:[e.jsx("div",{className:"tw-flex tw-justify-center tw-w-full",style:{minWidth:"fit-content"},children:e.jsx("div",{className:"tw-flex tw-justify-center tw-items-center tw-gap-[10px] tw-rounded-full tw-p-[35px]",style:{backgroundColor:"#EBEEF9"},children:e.jsx(M.Icon,{name:"ArrowUpOutlined",size:"6xl",color:"blue"})})}),e.jsx("div",{className:"tw-text-center",children:e.jsx("h2",{className:"tw-text-[24px] tw-font-bold tw-font-['Open_Sans'] tw-text-[#3658C1] tw-leading-tight",children:"¿Estás seguro de que deseas publicar este proceso?"})}),e.jsx("div",{className:"tw-text-center",children:e.jsx("div",{className:"tw-text-[12px] tw-font-normal tw-font-['Open_Sans'] tw-text-[#6B6B6B]",children:"Al publicar este proceso, estará disponible para su uso en los flujos correspondientes. Asegúrate de que toda la información sea correcta antes de continuar."})})]})})}),Ur=()=>{const t="grid",a="create-edit",s=p.useRef(null),{isOpenModalLimit:n,setIsOpenModalLimit:r,setOpenModalCreateTemplate:i,openModalCreateTemplate:o,setOpenModalUnsavedChanges:d,openModalUnsavedChanges:l,openModalPublishTemplate:c,setOpenModalPublishTemplate:u}=Se(),{removeTemplateStates:f}=Xe(),{mode:h,setMode:w,setViewMode:m,getViewMode:g}=be(),{setCanCreateTemplate:x,canCreateTemplate:b}=Br(),j=h===t,{screens:v,get:L,delete:S,activeTemplate:k,activateTemplate:N,reorderingTemplates:_,replaceTemplate:P,saveTemplateChanges:F,publishTemplate:y,loadingPublishTemplate:X,loadingSaveChanges:B}=Ae(),I=178,[O,H]=p.useState([]),[U,K]=p.useState([]),[te,ae]=p.useState(null),[Z,se]=p.useState(!1),T=k!=null&&k.id?g(k.id):"readonly";p.useEffect(()=>{const $=()=>{if(!s.current)return;const ne=s.current.offsetWidth;let oe=0;const ie=[],ce=[],ue=10,le=s.current.querySelector("button:not([data-screen])"),pe=s.current.querySelector(".tw-mx-1");let xe=0;le&&(xe+=le.getBoundingClientRect().width),pe&&v.length>0&&(xe+=pe.getBoundingClientRect().width,xe+=ue);const fe=(he,Oe)=>{const Qe=Oe?54:0,at=(he==null?void 0:he.length)*8;return Math.max(80,at+40+Qe)},Me=ne-I-xe;v.forEach((he,Oe)=>{const Ne=!!(he.isNew||he.badgeLabel),Ce=fe(he.clave,Ne),Ie=Oe>0?ue:0,Qe=Ce+Ie;oe+Qe<=Me?(ie.push(he),oe+=Qe):ce.push(he)}),H(ie),K(ce)},J=()=>{const ne=v.length;x(ne)};return v.length>0&&($(),J(),window.addEventListener("resize",$)),()=>{window.removeEventListener("resize",$)}},[v,h]);const R=$=>$.estatus===ve.DIRTY||$.estatus===ve.NEW,Y=async $=>{R($)?(ae($.id),d(!0)):await S($.id)},W=()=>u(!0),q=async()=>{await S(te),await f(te)},G=async()=>{await F(!1)},D=async()=>{await F()},E=()=>{var J,ne;const $=(ne=(J=k==null?void 0:k.graph_layout)==null?void 0:J.snapshot)==null?void 0:ne.nodes.length;se(()=>$-1>=1)};p.useEffect(()=>{E()},[k,T]);const z=()=>!((k==null?void 0:k.estatus)==ve.IDLE&&Z&&k.estatusFromStrapi!==Ee.PUBLISHED),A=()=>{var J;const{nodes:$}=(J=k==null?void 0:k.graph_layout)==null?void 0:J.snapshot;return $==null?void 0:$.some(ne=>ne.type!=="start"&&(ne==null?void 0:ne.data.tarea_padre)===null&&(ne==null?void 0:ne.data.id_t_requerida)===null)},C=()=>(k==null?void 0:k.estatus)===ve.IDLE||A()?!0:!Z,V=async()=>{await y(k.id)};return B||X?e.jsx(Ye,{isLoading:B||X}):e.jsxs("div",{className:"tw-flex tw-gap-2.5 tw-justify-between tw-items-center tw-flex-wrap",children:[e.jsx(zr,{isOpen:o,onClose:()=>i(!1)}),e.jsx($r,{isOpen:n,onClose:()=>r(!1),replaceTemplate:P}),e.jsx(Hr,{isOpen:l,onClose:()=>d(!1),discardChanges:q,saveAndExit:D}),e.jsx(Ra,{isOpen:c,onClose:()=>u(!1),publishTemplate:V}),e.jsxs("div",{className:"tw-flex tw-gap-2.5 tw-items-center tw-justify-between tw-flex-1 tw-flex-wrap tw-py-4",ref:s,children:[e.jsxs("div",{className:"tw-flex tw-gap-2.5 tw-items-center tw-justify-start tw-flex-1 tw-flex-wrap",children:[e.jsx(M.Button,{variant:j?"button":"outlined",color:j?"blue":"white",onClick:()=>w(t),children:"Listado de Plantillas"}),v.length>0&&e.jsx(M.Separator,{vertical:!0,className:"tw-mx-1"}),v.filter($=>O.some(J=>J.clave===$.clave)).map($=>{const J=(k==null?void 0:k.clave)===$.clave&&h===a;return e.jsxs(M.Button,{"data-screen":$.clave,variant:J?"button":"outlined",onClick:async()=>{await N($),w(a,$.id)},color:J?"blue":"white",slotLeft:"TaskOutlined",badgeColor:R($)?"orange":void 0,onClickRightSlot:()=>Y($),slotRight:"X2Outlined",children:[$.clave," ",$.status]},$.id)})]}),U.length>0&&e.jsx(M.Popup,{absolute:!0,slotRight:"AngleDownOutlined",label:`${U.length}+`,size:"lg",textColor:"blue",children:e.jsx("div",{className:"ui-py-2 ui-min-w-[250px]",children:e.jsx(M.List,{icon:"TaskOutlined",items:U.map($=>({id:$.id,label:$.clave})),onClick:async $=>{const J=await L($.id);await _(J.id),await N(J),w("create-edit",J.id)}})})})]}),h===a?e.jsx("div",{className:"tw-flex tw-gap-4 tw-items-center tw-justify-end tw-flex-wrap tw-py-4",children:k.estatusFromStrapi!==Ee.PUBLISHED&&e.jsxs(e.Fragment,{children:[e.jsx(M.Button,{color:"green",variant:"outlined",slotLeft:"ArrowUpOutlined",disabled:z(),onClick:W,children:"Publicar"}),T=="readonly"&&e.jsx(M.Button,{slotLeft:"EditOutlined",onClick:()=>(k==null?void 0:k.id)&&m(k.id,"edit"),children:"Editar"}),T==="edit"&&e.jsx(M.Button,{slotLeft:"SaveOutlined",onClick:G,disabled:C(),children:"Guardar"})]})}):e.jsx(M.Button,{disabled:b,tooltip:b?"Límite de 5 plantillas con cambios sin guardar. Guarda y cierra alguna para crear una nueva.":"",slotLeft:"Plus1Outlined",onClick:()=>{i(!0)},children:"Nueva plantilla"})]})},Wr=({isOpen:t,onClose:a,deleteTemplate:s})=>e.jsx(M.AlertDialog,{title:"Eliminar Borrador",iconContent:"BanOutlined",heading:"¿Estás seguro?",subheading:"Si eliminas este borrador, también se borrarán todas sus tareas y conexiones con otros borradores.",icon:"TrashOutlined",label:"Escribe 'Eliminar' para continuar",confirmationText:"Eliminar",isOpen:t,onClose:a,onConfirm:s,placeholder:""}),Gr=()=>{const{viewMode:t,setRefetch:a,openModalPublishTemplate:s,setOpenModalPublishTemplate:n,currentTemplateId:r,setOpenModalDeleteTemplate:i,openModalDeleteTemplate:o}=Se(),{publishTemplate:d,deleteTemplate:l}=Ae(),{debouncedSearch:c,filters:u}=qn("templates-container"),f=t==="list",[h,w]=p.useState(1),m=5,{data:g,isLoading:x,isFetching:b,refetch:j}=qa({page:h,pageSize:m,search:c,filters:u});p.useEffect(()=>{a(j)},[]),p.useEffect(()=>{w(1)},[u,c]);const{users:v}=Ke(),{getImageOBP:L}=we(),S=P=>{if(!(P!=null&&P.email))return"";const F=v==null?void 0:v[P==null?void 0:P.email];return F!=null&&F.image?L(F==null?void 0:F.image):""},k=p.useMemo(()=>{try{return!g||!v?[]:g.data.map(P=>{const F=S((P==null?void 0:P.updated_by)||(P==null?void 0:P.created_by));return{...P,updated_by:{...P.updated_by,image:F}}})}catch(P){return console.error("Error al mapear las plantillas:",P),[]}},[g,v]),N=async()=>{await d(r),await j()},_=async()=>{await l(r),await j()};return x||b?e.jsx(Ye,{isLoading:x||b}):e.jsxs("div",{className:"tw-flex tw-flex-col tw-justify-between tw-gap-y-4 tw-h-full",children:[e.jsx(Ra,{isOpen:s,onClose:()=>n(!1),publishTemplate:N}),e.jsx(Wr,{isOpen:o,onClose:()=>i(!1),deleteTemplate:_}),e.jsx("div",{className:`tw-grid tw-gap-4 ${f?"tw-grid-cols-1":"tw-grid-cols-1 md:tw-grid-cols-2 lg:tw-grid-cols-3"}`,children:k.map(P=>e.jsx(Pa,{fullWidth:f,template:P},P.id))}),e.jsx("div",{children:e.jsx(M.Pagination,{pageSize:m,pageCount:g==null?void 0:g.meta.pagination.pageCount,currentPage:h,onPageChange:P=>w(P)})})]})},za=()=>{var o,d,l,c;const t="grid",a="create-edit",{mode:s}=be(),n=s===t,r=s===a,i=Fe(u=>u.activeTemplate);return e.jsxs("div",{className:"tw-h-full tw-flex tw-flex-col tw-gap-y-6",children:[e.jsx(Ur,{}),n&&e.jsx(Gr,{}),r&&e.jsx(Sr,{initialNodes:((d=(o=i==null?void 0:i.graph_layout)==null?void 0:o.snapshot)==null?void 0:d.nodes)||[],initialEdges:((c=(l=i==null?void 0:i.graph_layout)==null?void 0:l.snapshot)==null?void 0:c.edges)||[]})]})},Kr=()=>({header:e.jsx(Gn,{}),body:e.jsx(za,{})}),Qr=({path:t,tab:a,setPath:s,project:n,setProject:r})=>{const i={"kanban-general":{kanban:e.jsx(As,{})},"teams-container":{teams:e.jsx(Sn,{})},"lista-campanias":{lista:e.jsx(as,{setPath:s,setProject:r}),gantt:e.jsx("div",{children:"gantt-campanias"})},"kanban-campania":{kanban:e.jsx(Es,{}),lista:e.jsx(zs,{}),gantt:e.jsx("div",{children:"kanban-campania-gantt"})},"templates-container":{templates:e.jsx(za,{})}};return t==="kanban-campania"?e.jsx(Ja,{project:n==null?void 0:n.id,children:i[t][a]}):i[t][a]},Vr=({label:t,active:a,onClick:s,disabled:n})=>n?e.jsx(ee.Tooltip,{dispatch:e.jsx("button",{className:"tw-cursor-help tw-text-xl tw-font-semibold tw-text-texts-placeholder",children:t}),children:e.jsx("div",{className:"tw-border-border-card tw-flex tw-items-center tw-justify-center tw-rounded-lg tw-border tw-bg-bg-card tw-px-3 tw-py-2",children:e.jsx("p",{className:"tw-text-lg tw-font-semibold tw-text-texts-placeholder",children:"Espéralo muy pronto..."})})}):e.jsx("button",{disabled:n,onClick:s,className:`${a?"tw-border-b-2 tw-border-texts-enfasis tw-text-blue-600 tw-text-texts-enfasis":""} tw-text-xl tw-font-semibold ${n?"tw-cursor-not-allowed tw-text-lg tw-text-texts-placeholder":"tw-text-texts-subtext"}`,children:t}),Xr=({tabs:t,renderItem:a,initialTab:s})=>{const[n,r]=p.useState(s??t[0].toLowerCase());p.useEffect(()=>{s&&r(s)},[s]);const i=o=>{r(o),a(o)};return e.jsx("div",{className:"tw-flex",children:t.map((o,d)=>e.jsx("div",{className:`${d===0?"tw-border-l-2":""} tw-border-r-2 tw-border-gray-200 tw-px-m`,children:e.jsx(Vr,{onClick:()=>i(o.toLowerCase()),label:o,active:o.toLowerCase()===n,disabled:["gantt"].includes(o.toLowerCase())},d)}))})};function Yr(){const{toast:t}=Ge();return t.message?e.jsx("div",{className:`tw-bg-black tw-fixed tw-right-10 tw-top-[10%] tw-z-[200] tw-h-[30px] tw-w-[300px] tw-rounded-md tw-text-lg tw-shadow-md ${t.type==="success"?"tw-bg-success-medium":"tw-bg-danger-medium"} tw-flex tw-items-center`,children:e.jsxs("div",{className:"relative tw-flex tw-h-full tw-w-full tw-items-center",children:[e.jsx("div",{className:`tw-h-full tw-w-[5px] ${t.type==="success"?"tw-bg-success-dark":"tw-bg-danger-regular"} tw-absolute tw-left-0 tw-rounded-full`}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2 tw-pl-4",children:[e.jsx(ee.Icons,{icon:t.type==="success"?"circle_checked":"circle_x",className:`tw-text-${t.type==="success"?"success-dark":"danger-dark"}`,color:t.type==="success"?"#368156":"#DC2626"}),e.jsx("p",{className:`${t.type==="success"?"tw-text-success-dark":"tw-text-danger-dark"} tw-text-xl tw-font-semibold`,children:t.message})]})]})}):null}const Jr=({path:t})=>{const a=()=>{const{selectPath:s,updateFilters:n,applyFilters:r,filters:i,fields:o}=ke(),[d,l]=p.useState("kanban"),[c,u]=p.useState(t),[f,h]=p.useState({id:1704,project:"Kanban de Campania"}),[w,m]=p.useState([{path:"lista-campanias",search:(i==null?void 0:i.search)??""},{path:"kanban-campania",search:(i==null?void 0:i.taskName)??""},{path:"kanban-general",search:(i==null?void 0:i.taskName)??""},{path:"teams-container",search:(i==null?void 0:i.taskName)??""},{path:"templates-container",search:(i==null?void 0:i.taskName)??""}]),[g,x]=p.useState(),b=p.useRef(null);p.useEffect(()=>{var _;l(c==="lista-campanias"?"lista":c==="kanban-campania"?"kanban":c==="teams-container"?"teams":c==="templates-container"?"templates":"kanban"),s(c),x(((_=w.find(P=>P.path===c))==null?void 0:_.search)??"")},[t,c]),p.useEffect(()=>{var _;((_=k())==null?void 0:_.trim())===""&&n({name:c==="lista-campanias"||c==="teams-container"||c==="templates-container"?"search":"taskName",value:null}),r()},[w]);const j=_=>({"kanban-general":"Kanban General","lista-campanias":"Campanias","teams-container":"Equipos","kanban-campania":`Kanban de ${f.project}`,"templates-container":"Plantillas"})[_],v=_=>{u(_)},L=["lista-campanias","kanban-campania"],S={"lista-campanias":["lista","gantt"],"kanban-campania":["kanban","lista","gantt"],"teams-container":["teams"],"templates-container":["templates"]},k=()=>{var _;return((_=w.find(P=>P.path===c))==null?void 0:_.search)??""},N=_=>{m(P=>P.map(F=>F.path===c?{...F,search:_}:F))};return p.useEffect(()=>{const _=setTimeout(()=>{n({name:c==="lista-campanias"||c==="teams-container"||c==="templates-container"?"search":"taskName",value:g==null?void 0:g.trim()}),N(g)},500);return()=>{clearTimeout(_)}},[g]),e.jsxs("div",{className:"tw-relative tw-flex tw-h-full tw-min-h-[100%] tw-w-full tw-flex-col tw-gap-m tw-overflow-hidden tw-rounded-lg tw-border tw-border-gray-200 tw-bg-bg-card tw-p-m",children:[e.jsxs("div",{className:"tw-flex tw-w-full tw-flex-wrap tw-items-end tw-justify-between tw-gap-l tw-border-b tw-border-gray-200 tw-px-l tw-pb-m",children:[e.jsxs("div",{className:"tw-flex tw-gap-xl",children:[c==="kanban-campania"&&e.jsx("button",{onClick:()=>v("lista-campanias"),className:"tw-text-primary hover:tw-text-primary/80 tw-flex tw-items-center tw-transition-colors",children:e.jsx(ee.Icons,{icon:"arrow_left",size:"xs",strokeWidth:5,color:"#4464C3",title:"Atrás"})}),e.jsx("h2",{className:"tw-font-sans tw-text-[1.6rem] tw-font-semibold tw-text-texts ",children:j(c)}),L.includes(c)&&e.jsx(Xr,{tabs:S[c],renderItem:_=>{l(_)},initialTab:d})]}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-s !tw-text-[16px]",children:[e.jsx(M.Input,{leftSlot:"SearchOutlined",onChange:_=>{x(_.target.value)},placeholder:"Buscar por tarea",value:g}),o.length>0&&e.jsx(ss,{filterChildren:b,children:e.jsx("div",{ref:b,className:"tw-h-fit tw-w-max tw-max-w-[400px] tw-rounded-lg tw-bg-bg-card tw-p-l tw-shadow-lg",children:e.jsx(is,{})})})]})]}),e.jsx("div",{className:"tw-h-full tw-max-h-[100%] tw-overflow-y-auto tw-scrollbar-none",children:e.jsx(Qr,{path:c,tab:d,setPath:v,project:f,setProject:h})})]})};return e.jsx(Ka,{children:e.jsxs(Za,{children:[e.jsx(a,{}),e.jsx(Yr,{})]})})},Zr=({path:t})=>["templates-container"].includes(t)?e.jsx(Wn,{startPath:t}):e.jsx(Jr,{path:t}),eo=()=>e.jsx("div",{className:"tw-relative tw-h-full tw-min-h-[100%] tw-w-full",children:e.jsx("div",{className:"tw-flex tw-h-full tw-items-center tw-justify-center",children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-text-2xl tw-font-bold",children:[e.jsx("div",{className:"tw-h-10 tw-w-10 tw-animate-pulse tw-rounded-full tw-bg-primary-regular"}),e.jsx("p",{className:"tw-text-l tw-text-texts-enfasis",children:"un momento..."}),e.jsx("p",{className:"tw-text-sm tw-text-texts-placeholder",children:"estamos buscando tu usuario"})]})})}),to=()=>e.jsx("div",{className:"tw-relative tw-h-full tw-min-h-[100%] tw-w-full",children:e.jsx("div",{className:"tw-flex tw-h-full tw-items-center tw-justify-center",children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-text-2xl tw-font-bold",children:[e.jsx("div",{className:"tw-h-10 tw-w-10 tw-animate-pulse tw-rounded-full tw-bg-primary-regular"}),e.jsx("p",{className:"tw-text-l tw-text-texts-enfasis",children:"No encontramos tu acceso"}),e.jsx("p",{className:"tw-text-sm tw-text-texts-placeholder",children:"por favor, contacta al administrador"})]})})}),ao=({path:t,user:a,url:s,mode:n})=>{const r=new de.QueryClient;if(!a)return e.jsx(eo,{});if(!a.accessToken)return e.jsx(to,{});let i={user:a,url:s,mode:n};return e.jsxs(Qn,{children:[e.jsx(M.Toaster,{}),e.jsx(Va,{...i,children:e.jsx(Qa,{...i,children:e.jsx("div",{className:"tw-relative tw-h-full tw-min-h-[100%] tw-w-full",children:e.jsxs(de.QueryClientProvider,{client:r,children:[e.jsx(Zr,{path:t})," "]})})})})]})};exports.AppTasks=ao;
103
+ `+_)})()},title:i?"Editar tarea":"Nueva tarea",successButtonText:i?"Actualizar":"Crear",disabledSuccessButton:!L,children:e.jsxs("form",{className:"tw-flex tw-flex-col tw-gap-4",children:[e.jsx(je.Controller,{control:w,name:"title",rules:{required:"El título es obligatorio",minLength:{value:3,message:"El título debe tener al menos 3 caracteres"}},render:({field:N})=>{var _;return e.jsx(M.Input,{fullWidth:!0,label:"Título",placeholder:"Ingresa el título de la tarea...",error:(_=g.title)==null?void 0:_.message,...N})}}),e.jsx(je.Controller,{control:w,name:"description",rules:{required:"La descripción es obligatoria",minLength:{value:10,message:"La descripción debe tener al menos 10 caracteres"}},render:({field:N})=>{var _;return e.jsx(M.Input,{fullWidth:!0,label:"Descripción",placeholder:"Describe la tarea a realizar...",error:(_=g.description)==null?void 0:_.message,...N})}}),e.jsx(M.Separator,{}),e.jsx(je.Controller,{control:w,name:"priority",rules:{required:"La prioridad es obligatoria"},render:({field:N,fieldState:{error:_}})=>e.jsx(M.Dropdown,{fullWidth:!0,label:"Prioridad",placeholder:"Selecciona la prioridad...",options:sr,error:_==null?void 0:_.message,value:N.value,onValueChange:P=>{N.onChange(P)}})}),e.jsx(je.Controller,{control:w,name:"difficulty",rules:{required:"La dificultad es obligatoria"},render:({field:N,fieldState:{error:_}})=>e.jsx(M.Dropdown,{fullWidth:!0,label:"Dificultad",placeholder:"Selecciona la dificultad...",options:nr,error:_==null?void 0:_.message,value:N.value,onValueChange:P=>{N.onChange(P)}})}),e.jsx(je.Controller,{control:w,name:"duration",rules:{required:"La duración es obligatoria"},render:({field:N,fieldState:{error:_}})=>e.jsx(M.Dropdown,{fullWidth:!0,label:"Duración",placeholder:"Selecciona la duración...",options:rr,error:_==null?void 0:_.message,value:N.value,onValueChange:P=>{N.onChange(P)}})}),e.jsx(M.Separator,{}),e.jsx(je.Controller,{control:w,name:"team",rules:{required:"El equipo es obligatorio"},render:({field:N,fieldState:{error:_}})=>e.jsx(M.Dropdown,{fullWidth:!0,label:"Equipo",placeholder:"Selecciona el equipo...",options:d,error:_==null?void 0:_.message,value:N.value,onValueChange:P=>{N.onChange(P)}})}),e.jsx(je.Controller,{control:w,name:"responsible",rules:{required:"El responsable es obligatorio"},render:({field:N,fieldState:{error:_}})=>e.jsx(M.Dropdown,{fullWidth:!0,absolute:!0,label:"Responsable",placeholder:"Selecciona el responsable...",options:f,error:_==null?void 0:_.message,value:N.value,onValueChange:P=>{N.onChange(P)}})})]})})},or=()=>{const{get:t}=Ae(),a=Fe(i=>i.activeTemplate),{updateTaskInState:s,addTaskToState:n}=Xe();return{updateTaskInTemplate:async(i,o)=>{if(!a)return console.error("No hay plantilla activa"),!1;try{const d=await t(a.id);if(!d)return console.error("Flujo de trabajo no encontrado"),!1;const l={id:i,uuid:o.uuid||crypto.randomUUID(),reference_graph:o.reference_graph||null,texto_corto:o.texto_corto||"",texto_largo:o.texto_largo||"",prioridad:o.prioridad||null,nivel_dificultad:o.nivel_dificultad||1,duracion:o.duracion||null,start:o.start||!1,equipo:o.equipo||null,responsable:o.responsable||null,plantilla:{id:d.id,clave:d.clave,categoria:d.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:o.plantilla_dependents||[],id_t_requerida:o.id_t_requerida||null,ids_t_dependientes:o.ids_t_dependientes||[],tarea_padre:o.tarea_padre||null,tareas:o.tareas||[]};i>0?await s({task:l}):await n({task:l})}catch(d){return console.error("❌ Error al actualizar tarea en plantilla:",d),!1}}}},ye={DEFAULT_CHILD_WIDTH:260,DEFAULT_CHILD_HEIGHT:80,MAGNETIC_CONNECTION_DISTANCE:800,GRAPH_LAYOUT_UPDATE_DELAY:100,START_NODE_ID:"start",DEFAULT_SOURCE_HANDLE:"bottom-source",DEFAULT_TARGET_HANDLE:"top-target"},qt={dependiente:{stroke:"#3B82F6",strokeDasharray:"5,5",strokeWidth:2},normal:{stroke:"#6B7280",strokeWidth:2}},Lt=t=>{const a=t.map(s=>({...s}));return a.filter(s=>s.type==="group").forEach(s=>{const n=a.filter(u=>u.parentId===s.id);if(n.length===0)return;const r=Math.min(...n.map(u=>u.position.x)),o=Math.max(...n.map(u=>{var f;return u.position.x+(typeof((f=u.style)==null?void 0:f.width)=="number"?u.style.width:ye.DEFAULT_CHILD_WIDTH)}))-r,d=Math.min(...n.map(u=>u.position.y)),c=Math.max(...n.map(u=>{var f;return u.position.y+(typeof((f=u.style)==null?void 0:f.height)=="number"?u.style.height:ye.DEFAULT_CHILD_HEIGHT)}))-d;s.style={...s.style??{},width:o,height:c}}),a},rt=t=>t.source===ye.START_NODE_ID||t.target===ye.START_NODE_ID,Be=t=>t===ye.START_NODE_ID,ir=t=>t==="dependiente"?qt.dependiente:qt.normal,lr=(t,a,s)=>({id:t,type:"main",position:a,selected:!1,deletable:!0,data:s}),ot=(t,a,s,n,r,i=!1,o=null,d=null)=>{const l=ir(n),c=i?ye.DEFAULT_SOURCE_HANDLE:s;return{id:`edge-${t}-${a}`,source:t,sourceHandle:c,target:a,targetHandle:ye.DEFAULT_TARGET_HANDLE,type:"smoothstep",deletable:!0,style:l,markerEnd:{type:"arrowclosed",width:12,height:12,color:l.stroke,strokeWidth:1},data:{connectionType:n,nodeType:r,isFromStartNode:i,parentId:o,childId:d}}},cr=(t,a)=>!(!t||!a||t===a),dr=t=>{const{clientX:a,clientY:s}="changedTouches"in t?t.changedTouches[0]:t;return{x:a,y:s}},ur=t=>t.filter(a=>a.type==="position"&&a.dragging===!1),Aa=t=>t.map(a=>a.id),Oa=({nodes:t,edges:a,setNodes:s,setEdges:n,newNodePopup:r,connectionPopup:i,closeNewNodePopup:o,closeConnectionPopup:d,setIsConnectingExistingNodes:l})=>{const{screenToFlowPosition:c,getNode:u,setViewport:f,fitView:h}=re.useReactFlow(),{get:w,update:m,addTaskUpdatingTemplate:g,addTemplateUpdatingTemplate:x}=Ae(),b=Fe(B=>B.activeTemplate),j=de.useQueryClient(),v=Fe(B=>B.setActiveTemplate),{removeTaskFromState:L,updateNodeWithNewEdge:S,updateTaskInState:k}=Xe(),N=p.useCallback(async B=>{const I=t.find(H=>H.id===B);if(!(I!=null&&I.data))return null;if(I.id===ye.START_NODE_ID){if(!b)return null;try{const H=await w(b.id),W=H.tarea_plantillas.find(K=>K.start===!0);return W!=null&&W.id?W.id:H.tarea_plantillas.length>0?H.tarea_plantillas[0].id:null}catch{return null}}const O=I.data.id;if(!O&&O!==0)return null;if(typeof O=="string"){if(O.includes("-"))return O;{const H=parseInt(O,10);return isNaN(H)?null:H}}else if(typeof O=="number")return O;return null},[t,b,w]),_=p.useCallback(async(B=t,I=a)=>{var O,H,W,K,te,ae,Z;if(!b){M.toast.warning("No hay template activo para actualizar layout");return}try{const se=await w(b.id);if(!se){M.toast.warning("Template no encontrado en IndexedDB");return}const T=(O=se.graph_layout)==null?void 0:O.snapshot;if(!(!T||JSON.stringify(T.nodes)!==JSON.stringify(B)||JSON.stringify(T.edges)!==JSON.stringify(I))){console.log("🔄 No hay cambios en el layout, omitiendo actualización");return}const Y=B.filter(G=>{var D;return!((D=G.data)!=null&&D.isInternal)&&!G.parentId}).map(G=>{const{style:D,measured:E,data:z,selected:A,...C}=G,{expandedDimensions:V,isExpanded:$,needsReExpansion:J,...ne}=z||{},oe=D?{...D,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...C,style:oe,data:ne}}),U=I.filter(G=>{var D;return!((D=G.data)!=null&&D.isInternal)}),q={...se,graph_layout:{id:((H=se.graph_layout)==null?void 0:H.id)||0,snapshot:{nodes:Y,edges:U,viewport:((K=(W=se.graph_layout)==null?void 0:W.snapshot)==null?void 0:K.viewport)||{x:0,y:0,zoom:1}},history:((te=se.graph_layout)==null?void 0:te.history)||[],zoom:((ae=se.graph_layout)==null?void 0:ae.zoom)||1,position:((Z=se.graph_layout)==null?void 0:Z.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await m(b.id,q),console.log("🗑️ [useFlowActions] Invalidando caché de la plantilla:",b.id),await j.invalidateQueries({queryKey:["template",b.id]}),await j.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlowActions] Caché invalidado exitosamente"),v(q)}catch(se){console.error("❌ Error al actualizar template layout:",se)}},[b,w,m,t,a,v]),P=p.useCallback(async(B=[],I=[],O,H)=>{var K,te,ae,Z,se,T,R,Y,U,q,G,D;const W=O||(b==null?void 0:b.id);if(!W){M.toast.warning("No hay template ID disponible para actualizar");return}try{const E=await w(W);if(!E)return;const z=(ae=(te=(K=E.graph_layout)==null?void 0:K.snapshot)==null?void 0:te.nodes)==null?void 0:ae.filter(V=>{var $;return!B.includes(V.id)&&!(($=V.data)!=null&&$.isInternal)&&!V.parentId}).map(V=>{const{style:$,measured:J,data:ne,...oe}=V,{expandedDimensions:ie,...ce}=ne||{},ue=$?{...$,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...oe,style:ue,data:ce}}),A=((T=(se=(Z=E.graph_layout)==null?void 0:Z.snapshot)==null?void 0:se.edges)==null?void 0:T.filter(V=>{var $;return!B.includes(V.source)&&!B.includes(V.target)&&!(($=V.data)!=null&&$.isInternal)}))||[],C={...E,graph_layout:{id:((R=E.graph_layout)==null?void 0:R.id)||0,snapshot:{nodes:z,edges:A,viewport:((U=(Y=E.graph_layout)==null?void 0:Y.snapshot)==null?void 0:U.viewport)||{x:0,y:0,zoom:1}},history:((q=E.graph_layout)==null?void 0:q.history)||[],zoom:((G=E.graph_layout)==null?void 0:G.zoom)||1,position:((D=E.graph_layout)==null?void 0:D.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await L({templateId:W,id:H||0}),await m(W,C),await j.invalidateQueries({queryKey:["template",W]}),await j.invalidateQueries({queryKey:["template"]}),W===(b==null?void 0:b.id)&&v(C)}catch(E){console.error("❌ updateAfterDeleted - Error al actualizar template layout:",E)}},[b,w,m,a,t,L,v]),F=p.useCallback(async(B,I,O)=>{if(!r||!b)return;const{nodeId:H,sourceNodeId:W,sourceHandleId:K}=r;if(W)try{const te=await N(W);if(!te)return;if(B==="plantilla"){const ae=O;if(!(ae!=null&&ae.templateId))return;if(!await x(ae.templateId,b.id,te,I)){M.toast.error("No se pudo agregar la plantilla. Intenta nuevamente."),o();return}try{const G=await w(b.id);if(G){const D=(z,A)=>{for(const C of z){if(C.id===A||C.uuid===A)return C;if(C.tareas&&C.tareas.length>0){const V=D(C.tareas,A);if(V)return V}}return null},E=D(G.tarea_plantillas,te);if(E&&E.id){const z=(E.plantilla_dependents||[]).map(C=>typeof C=="object"&&C.id?{id:C.id}:typeof C=="number"?{id:C}:C),A={...E,plantilla_dependents:z,plantilla:{id:b.id,clave:G.clave,categoria:G.categoria||{id:0,nombre:"Sin categoría"}}};await k({task:A}),console.log("✅ Tarea padre agregada a templates_states.updated con plantilla_dependents:",E.id,A.plantilla_dependents)}}}catch(G){console.error("❌ Error al actualizar tarea padre en templates_states:",G)}const se=c({x:r.position.x,y:r.position.y}),T=ae.templateData||{id:ae.templateId,nombre_plantilla:`Flujo de trabajo ${ae.templateId}`,clave:`TPL-${ae.templateId}`,estatus:"activo",categoria:null,counts_tasks:0,dias_duracion:0},R={id:H,type:"group",position:se,selected:!1,deletable:!0,data:{id:ae.templateId,templateId:ae.templateId,type:"template",nombre_plantilla:T.nombre_plantilla||`Flujo de trabajo ${ae.templateId}`,clave:T.clave||`TPL-${ae.templateId}`,estatus:T.estatus||"activo",categoria:T.categoria||null,counts_tasks:T.counts_tasks||0,dias_duracion:T.dias_duracion||0,tarea_plantillas:T.tarea_plantillas||[],params_plantillas:T.params_plantillas||[],createdAt:T.createdAt||new Date().toISOString(),updatedAt:T.updatedAt||new Date().toISOString(),created_by:T.created_by||null,updated_by:T.updated_by||null}};s(G=>[...G,R]);const Y=K||ye.DEFAULT_SOURCE_HANDLE,U=Be(W),q=ot(W,H,Y,I,"plantilla",U,te);n(G=>[...G,q]);try{const G=[...t,R],D=[...a,q];await _(G,D)}catch(G){console.error("❌ Error al actualizar layout después de agregar plantilla:",G)}}else if(B==="tarea"){const ae=O;if(!ae)return;const Z=c({x:r.position.x,y:r.position.y}),se=-new Date().getTime(),T={id:se,reference_graph:H,title:ae.title,description:ae.description,priority:ae.priority,difficulty:ae.difficulty,duration:ae.duration,team:ae.team,responsible:ae.responsible,parent:{data:{id:te}}},R=await g(T,b.id,I),Y=lr(H,Z,R);s(D=>[...D,Y]);const U=K||ye.DEFAULT_SOURCE_HANDLE,q=Be(W),G=ot(W,H,U,I,B,q,te,se);n(D=>[...D,G]);try{const D=[...t,Y],E=[...a,G];await _(D,E)}catch(D){console.error("❌ Error al actualizar layout después de agregar tarea:",D)}setTimeout(()=>{try{const D=u(H);if(D){const E=window.innerWidth,z=window.innerHeight,A=E/2,C=z/2;f({x:A-D.position.x-130,y:C-D.position.y-40,zoom:1},{duration:800})}else h({padding:.1,duration:800})}catch{try{h({padding:.1,duration:800})}catch{}}},200)}o()}catch(te){console.error("❌ Error en createNodeFromPopup:",te)}},[r,b,g,x,N,c,s,n,o,_,t,a]),y=p.useCallback(async(B,I)=>{var K,te;if(console.log("🟢 createConnectionFromPopup - INICIO",{nodeType:B,connectionType:I}),!i){console.warn("⚠️ createConnectionFromPopup - No hay connectionPopup");return}const{sourceNodeId:O,sourceHandleId:H,targetNodeId:W}=i;console.log("🟢 createConnectionFromPopup - Datos de conexión:",{sourceNodeId:O,targetNodeId:W,sourceHandleId:H});try{if(!(window.validConnectionTypes||{dependiente:!0,hija:!0})[I]){console.warn("⚠️ createConnectionFromPopup - Tipo de conexión no válido:",I),M.toast.warning("Tipo de conexión no válido"),l(!1),d();return}const Z=t.find(A=>A.id===O),se=t.find(A=>A.id===W);console.log("🟢 createConnectionFromPopup - Nodos encontrados:",{sourceNode:Z==null?void 0:Z.id,targetNode:se==null?void 0:se.id,sourceData:Z==null?void 0:Z.data,targetData:se==null?void 0:se.data});const T=se==null?void 0:se.data,R=((K=Z==null?void 0:Z.data)==null?void 0:K.id)||O,Y=((te=se==null?void 0:se.data)==null?void 0:te.id)||W;console.log("🟢 createConnectionFromPopup - IDs extraídos:",{parentId:R,childId:Y});const U=ot(O,W,H||ye.DEFAULT_SOURCE_HANDLE,I,B,Be(O),R,Y);console.log("🟢 createConnectionFromPopup - Nuevo edge creado:",U),n(A=>[...A,U]);const q=[...a,U],G=T.id||-Date.now(),D=T.reference_graph||W,E={id:G,uuid:T.uuid||crypto.randomUUID(),reference_graph:D,texto_corto:T.texto_corto||"",texto_largo:T.texto_largo||"",prioridad:T.prioridad||null,nivel_dificultad:T.nivel_dificultad||1,duracion:T.duracion||null,start:T.start||!1,equipo:T.equipo||null,responsable:T.responsable||null,plantilla:{id:T.plantilla.id,clave:T.plantilla.clave,categoria:T.plantilla.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:T.plantilla_dependents||[],ids_t_dependientes:T.ids_t_dependientes||[],tarea_padre:I==="hija"?{id:U.data.parentId}:null,id_t_requerida:I==="dependiente"?{id:U.data.parentId}:null,tareas:T.tareas||[],type:"task"};console.log("🟢 createConnectionFromPopup - taskForState creado:",E),console.log("🟢 createConnectionFromPopup - currentTemplate.id:",b.id);const z=t.map(A=>A.id===W?{...A,data:E}:A);console.log("🟢 createConnectionFromPopup - Actualizando nodos en React Flow..."),s(z),console.log("✅ createConnectionFromPopup - Nodos actualizados en React Flow"),console.log("🟢 createConnectionFromPopup - Actualizando template layout..."),await _(z,q),console.log("✅ createConnectionFromPopup - Template layout actualizado"),console.log("🟢 createConnectionFromPopup - Llamando a updateNodeWithNewEdge..."),await S({templateId:b.id,edge:U,task:E}),console.log("✅ createConnectionFromPopup - updateNodeWithNewEdge completado")}catch(ae){console.error("❌ createConnectionFromPopup - Error al crear conexión:",ae),console.error("❌ createConnectionFromPopup - Stack:",ae.stack)}finally{console.log("🟢 createConnectionFromPopup - Limpiando estado..."),l(!1),d(),console.log("🟢 createConnectionFromPopup - FIN")}},[i,n,l,d,a,t,_]),X=p.useCallback(async B=>{if(!r||!b){M.toast.warning("No hay newNodePopup o template activo para actualizar el nodo");return}const{nodeId:I}=r;if(!I){M.toast.warning("No se encontró nodeId en newNodePopup");return}try{const O=t.find(W=>W.id===I);if(!O){M.toast.warning(`No se encontró el nodo con ID: ${I}`);return}const H={...O,data:{...O.data,...B,id:O.data.id||O.id,type:O.data.type||O.data.type,updatedAt:new Date().toISOString()}};s(W=>W.map(K=>K.id===I?H:K));try{const W=t.map(K=>K.id===I?H:K);await _(W,a)}catch(W){M.toast.error("Error al actualizar layout después de actualizar nodo:",W)}o()}catch(O){M.toast.error("Error al actualizar el nodo:",O)}},[r,b,t,s,a,_,o]);return{createNodeFromPopup:F,createConnectionFromPopup:y,updateNodeFromPopup:X,updateAfterDeleted:P}},wr=({data:t,id:a,isConnectable:s,selected:n})=>{be(F=>F.addNodeFromHandle);const r=be(F=>F.getViewMode),[i,o]=p.useState(!1),[d,l]=p.useState(t),c=Fe(F=>F.activeTemplate),u=Fe(F=>F.setActiveTemplate),{get:f,update:h}=Ae(),w=c!=null&&c.id?r(c.id):"readonly",{updateTaskInTemplate:m}=or(),{setNodes:g,setEdges:x,getNodes:b,getEdges:j}=re.useReactFlow(),v=de.useQueryClient(),{updateAfterDeleted:L}=Oa({nodes:b(),edges:j(),setNodes:g,setEdges:x,newNodePopup:null,connectionPopup:null,closeNewNodePopup:()=>{},closeConnectionPopup:()=>{},setIsConnectingExistingNodes:()=>{}}),S=(F,y)=>{F.preventDefault(),F.stopPropagation()},k=()=>{o(!0)},N=p.useCallback(async()=>{var O,H,W;const F=b().find(K=>K.id===a);if(!F){console.warn("⚠️ Nodo no encontrado para eliminar");return}const y=[F],X=Aa(y),B=y.length>0?(H=(O=y[0])==null?void 0:O.data)==null?void 0:H.id:0;x(K=>K.filter(te=>!X.includes(te.source)&&!X.includes(te.target))),g(K=>K.filter(te=>te.id!==a));let I;for(const K of y)try{const te=K.data;if((W=te==null?void 0:te.plantilla)!=null&&W.id){I=te.plantilla.id;break}}catch{}try{x(K=>((async()=>{await L(X,K,I,B)})().catch(te=>{console.error("❌ Error en updateAfterDeleted:",te)}),K))}catch(K){console.error("❌ Error en handleDeleteNode:",K)}},[a,b,j,g,x,L]),_=p.useCallback(async F=>{var y,X,B,I,O,H,W,K,te,ae;if(!c){console.warn("⚠️ MainNode.updateTemplateLayout - No hay template activo");return}try{const Z=await f(c.id);if(!Z){console.warn("⚠️ MainNode.updateTemplateLayout - Template no encontrado en IndexedDB");return}const se=(y=Z.graph_layout)==null?void 0:y.snapshot;if(!(!se||JSON.stringify(se.nodes)!==JSON.stringify(F))){console.log("🔄 MainNode.updateTemplateLayout - No hay cambios en nodos, omitiendo actualización");return}const R=F.filter(q=>{var G;return!((G=q.data)!=null&&G.isInternal)&&!q.parentId}).map(q=>{const{style:G,measured:D,data:E,selected:z,...A}=q,{expandedDimensions:C,isExpanded:V,needsReExpansion:$,...J}=E||{},ne=G?{...G,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...A,style:ne,data:J}}),Y=(((B=(X=Z.graph_layout)==null?void 0:X.snapshot)==null?void 0:B.edges)||[]).filter(q=>{var G;return!((G=q.data)!=null&&G.isInternal)}),U={...Z,graph_layout:{id:((I=Z.graph_layout)==null?void 0:I.id)||0,snapshot:{...(O=Z.graph_layout)==null?void 0:O.snapshot,nodes:R,edges:Y,viewport:((W=(H=Z.graph_layout)==null?void 0:H.snapshot)==null?void 0:W.viewport)||{x:0,y:0,zoom:1}},history:((K=Z.graph_layout)==null?void 0:K.history)||[],zoom:((te=Z.graph_layout)==null?void 0:te.zoom)||1,position:((ae=Z.graph_layout)==null?void 0:ae.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await h(c.id,U),await v.invalidateQueries({queryKey:["template",c.id]}),await v.invalidateQueries({queryKey:["template"]}),c&&c.id===U.id&&u(U)}catch(Z){console.error("❌ MainNode.updateTemplateLayout - Error al actualizar template layout:",Z)}},[c,f,h,u,v]),P=async F=>{if(o(!1),c){const y={...t,texto_corto:F.title,texto_largo:F.description,prioridad:F.priority?typeof F.priority=="number"?F.priority:parseInt(F.priority.toString()):null,nivel_dificultad:F.difficulty?typeof F.difficulty=="number"?F.difficulty:parseInt(F.difficulty.toString()):1,duracion:F.duration?typeof F.duration=="number"?F.duration:parseInt(F.duration.toString()):null,equipo:{id:Number(F.team)||null},responsable:{id:Number(F.responsible)||null}};await m(t.id,y),g(X=>{const B=X.map(I=>I.id===a?{...I,data:{...I.data,...y,tarea_padre:t.tarea_padre,id_t_requerida:t.id_t_requerida,updatedAt:new Date().toISOString()}}:I);return console.log("🔄 updatedNodes:",B),setTimeout(()=>_(B),0),B})}};return p.useEffect(()=>{l(t)},[t]),e.jsxs("div",{className:`tw-border-2 tw-bg-white tw-px-4 tw-py-2 tw-rounded-lg tw-transition-all tw-duration-200 ${n?"tw-border-blue-500 tw-shadow-lg tw-ring-2 tw-ring-blue-300 tw-ring-opacity-50":t.main?"ui-border-green-500 tw-shadow-sm":"ui-border-neutral-100 tw-shadow-sm"}`,children:[e.jsx(re.Handle,{isConnectable:s,id:"top-target",type:"target",position:re.Position.Top,className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",onClick:F=>S(F)}),e.jsx(re.Handle,{isConnectable:s,id:"right-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Right,onClick:F=>S(F)}),e.jsx(re.Handle,{isConnectable:s,id:"bottom-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Bottom,onClick:F=>S(F)}),e.jsx(re.Handle,{isConnectable:s,id:"left-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Left,onClick:F=>S(F)}),e.jsxs("div",{className:"tw-flex tw-h-full tw-flex-col tw-gap-y-2 tw-p-2 ",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between tw-gap-x-4 ",children:[e.jsx("p",{className:"tw-font-bold tw-leading-none tw-text-neutral-900",children:d.texto_corto}),!t.isInternal&&c.estatusFromStrapi!==Ee.PUBLISHED&&w!=="readonly"&&e.jsx("div",{children:t.type==="task"?e.jsx(M.Popup,{position:"right",absolute:!0,size:"md",rounded:!0,icon:"ElipsisOutlined",containerClassName:"nopan nodrag",buttonClassName:"nopan nodrag",children:e.jsxs(M.List,{children:[e.jsx(M.ListItem,{icon:"EditOutlined",onClick:k,children:"Editar"}),e.jsx(M.ListSeparator,{}),e.jsx(M.ListItem,{icon:"Plus1Outlined",color:"red",onClick:N,children:"Eliminar"})]})}):e.jsx(M.Button,{size:"md",variant:"outlined",color:"white",icon:"MaximizeOutlined",rounded:!0,className:"nopan"})})]}),e.jsx("p",{className:"ui-text-xs tw-text-neutral-900 ",children:d.texto_largo}),e.jsxs("div",{className:"tw-flex tw-gap-x-6 tw-justify-between",children:[e.jsx(Yn,{duration:d.duracion}),e.jsx(Xn,{difficulty:d.nivel_dificultad}),e.jsx(Zn,{priority:d.prioridad}),e.jsx(er,{responsible:d.responsable})]})]}),e.jsx(re.Handle,{isConnectable:s,id:"top-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Top,onClick:F=>S(F)}),e.jsx(re.Handle,{isConnectable:s,id:"right-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Right,onClick:F=>S(F)}),e.jsx(re.Handle,{isConnectable:s,id:"bottom-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Bottom,onClick:F=>S(F)}),e.jsx(re.Handle,{isConnectable:s,id:"left-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Left,onClick:F=>S(F)}),t.type==="task"&&i&&e.jsx(Ma,{isOpen:i,onClose:()=>o(!1),onSuccess:P,editMode:!0,taskToEdit:d})]})},pr=async({tasks_api:t,page:a=1,pageSize:s=10,search:n="",filters:r={}})=>{const i={clave:{$notNull:!0},estatus:{$ne:Ee.DELETED},...n?{$or:[{nombre_plantilla:{$containsi:n}},{clave:{$containsi:n}}]}:{},...Object.keys(r).reduce((l,c)=>(Array.isArray(r[c])?l[c]={id:{$in:r[c]}}:l[c]=r[c],l),{})},o=Pe.stringify({filters:i,fields:["id","clave","estatus","dias_duracion","createdAt","publication_date"],count_tasks:!0,tarea_plantillas:!1,populate:{updated_by:{fields:["id","nombre","username","email"]},created_by:{fields:["id","nombre","username","email"]},params_plantillas:{fields:["id","name"],populate:{params_tipo:{fields:["id","key","label"]}}},tarea_plantillas:{fields:["id"],filters:{start:!0},populate:{tareas:{fields:["id"]},ids_t_dependientes:{fields:["id"]}}}},sort:{createdAt:"asc"},pagination:{page:a,pageSize:s}},{encodeValuesOnly:!0}),d=await t.get(`/api/plantillas/all-plantillas?${o}`);return d.data?{data:ge(d.data.data),meta:d.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:s,pageCount:0,total:0}}}},qa=({page:t=1,pageSize:a=10,search:s="",filters:n={}})=>{const{tasks_api:r}=we();return de.useQuery({queryKey:["templates",t,a,s,n],queryFn:()=>pr({tasks_api:r,page:t,pageSize:a,search:s,filters:n}),staleTime:1e3*60*60*24,placeholderData:de.keepPreviousData,select:i=>({data:(i==null?void 0:i.data)||[],meta:i==null?void 0:i.meta})})},La=({isOpen:t,onClose:a,onSuccess:s,nodeDataType:n,parentNodeInfo:r})=>{var v,L,S,k;const i=be(N=>N.addNodeWithType),[o,d]=p.useState(0),l=5,[c,u]=p.useState(1),[f,h]=p.useState("");p.useEffect(()=>{t&&(u(1),h(""),d(0))},[t]),p.useEffect(()=>{u(1)},[f]);const{data:w,isLoading:m}=qa({page:c,pageSize:l,search:f}),g=N=>{h(N.target.value)},x=()=>{var _;if(o===0)return;const N=(_=w==null?void 0:w.data)==null?void 0:_.find(P=>P.id===o);if(!N){console.error("No se encontró el flujo de trabajo seleccionado en los datos");return}s?s({templateId:o,templateData:N}):i&&i(n.id,n.type,n.connectionType)};if(m)return e.jsx("div",{children:"Cargando..."});if(!(w!=null&&w.data))return e.jsx("div",{children:"No hay datos disponibles"});const b=((L=(v=w.meta)==null?void 0:v.pagination)==null?void 0:L.total)||0,j=b===1?"flujo encontrado":"flujos encontrados";return e.jsx(M.Modal,{icon:"TaskOutlined",isOpen:t,size:"lg",onSuccess:x,onClose:a,title:"Agregar flujo de trabajo",successButtonText:"Agregar",disableSuccessButton:o===0,closeAtSuccess:!0,children:e.jsxs(M.Modal.Body,{withPadding:!1,children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between tw-gap-6 tw-px-12 tw-py-3",children:[e.jsxs("p",{className:"tw-flex-1 tw-text-[14px] tw-text-neutral-500",children:[b," ",j]}),e.jsx(M.Input,{className:"tw-flex-1",leftSlot:"SearchOutlined",fullWidth:!0,placeholder:"Buscar por nombre, parámetros o estado...",value:f,onChange:g})]}),e.jsx(M.Separator,{}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-6 tw-p-12",children:[w.data.map(N=>e.jsx(Pa,{mode:"modal",template:N,active:o===N.id,fullWidth:!0,onClick:d,withOptions:!1},N.id)),w.data.length===0&&e.jsx("div",{className:"tw-flex tw-items-center tw-justify-center tw-h-full",children:e.jsx("p",{className:"tw-text-[14px] tw-text-neutral-500",children:"No se encontraron flujos de trabajo con ese criterio de búsqueda"})})]}),e.jsx(M.Separator,{}),e.jsx("div",{className:"tw-mt-6",children:e.jsx(M.Pagination,{className:"tw-pt-0",pageSize:l,pageCount:((k=(S=w==null?void 0:w.meta)==null?void 0:S.pagination)==null?void 0:k.pageCount)||1,currentPage:c,onPageChange:N=>u(N)})})]})})},mr=({data:t,id:a})=>{const s=be(u=>u.addNodeWithType),[n,r]=p.useState(!1),[i,o]=p.useState(!1),[d,l]=p.useState({id:a,type:"tarea",connectionType:"dependiente"}),c=({type:u,connectionType:f})=>{s&&(l({id:a,type:u,connectionType:f}),u==="tarea"?r(!0):u==="plantilla"&&o(!0))};return console.log({data:t,id:a}),e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-center",children:[d.type==="plantilla"&&e.jsx(La,{isOpen:i,onClose:()=>o(!1),nodeDataType:d}),e.jsx(re.Handle,{id:"top-target",type:"target",position:re.Position.Top}),e.jsx(re.Handle,{id:"right-target",type:"target",position:re.Position.Right}),e.jsx(re.Handle,{id:"bottom-target",type:"target",position:re.Position.Bottom}),e.jsx(re.Handle,{id:"left-target",type:"target",position:re.Position.Left}),e.jsx(re.Handle,{id:"top-source",type:"source",position:re.Position.Top}),e.jsx(re.Handle,{id:"right-source",type:"source",position:re.Position.Right}),e.jsx(re.Handle,{id:"bottom-source",type:"source",position:re.Position.Bottom}),e.jsx(re.Handle,{id:"left-source",type:"source",position:re.Position.Left}),e.jsx(M.Popup,{position:"right",absolute:!0,size:"md",rounded:!0,icon:"Plus1Outlined",containerClassName:"nopan",buttonClassName:"nopan",children:e.jsxs(M.List,{className:"nopan nodrag",children:[e.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Tarea"}),e.jsx(M.ListItem,{icon:"ElipsisOutlined",iconColor:"blue",onClick:()=>c({type:"tarea",connectionType:"dependiente"}),children:"Dependiente"}),e.jsx(M.ListItem,{icon:"Plus1Outlined",onClick:()=>c({type:"tarea",connectionType:"hija"}),children:"Hija"}),e.jsx(M.ListSeparator,{}),e.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Flujo de trabajo"}),e.jsx(M.ListItem,{icon:"Plus1Outlined",onClick:()=>c({type:"plantilla",connectionType:"dependiente"}),children:"Dependiente"}),e.jsx(M.ListItem,{icon:"Plus1Outlined",onClick:()=>c({type:"plantilla",connectionType:"hija"}),children:"Hija"})]})})]})},fr=({isOpen:t,position:a,onClose:s,createNodeFromPopup:n,parentNodeInfo:r})=>{const[i,o]=p.useState(!1),[d,l]=p.useState(!1),[c,u]=p.useState(null);if(!t)return null;const f=(x,b)=>{u({type:x,connectionType:b}),x==="tarea"?o(!0):x==="plantilla"&&l(!0)},h=()=>{o(!1),u(null),s()},w=()=>{l(!1),u(null),s()},m=x=>{c&&n(c.type,c.connectionType,x),h()},g=x=>{c&&x&&n(c.type,c.connectionType,x),w()};return e.jsxs(e.Fragment,{children:[!i&&!d&&e.jsx("div",{className:"tw-fixed tw-inset-0 tw-z-50",onClick:s}),!i&&!d&&e.jsx("div",{className:"tw-fixed tw-z-50 tw-bg-white tw-rounded-lg tw-shadow-lg tw-border tw-border-neutral-200 tw-min-w-[200px]",style:{left:a.x+50,top:a.y-100},children:e.jsx("div",{className:"tw-p-2",children:e.jsxs(M.List,{children:[e.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Tarea"}),e.jsx(M.ListItem,{icon:"ElipsisOutlined",iconColor:"blue",onClick:()=>f("tarea","dependiente"),children:"Dependiente"}),e.jsx(M.ListItem,{icon:"Plus1Outlined",onClick:()=>f("tarea","hija"),children:"Hija"}),e.jsx(M.ListSeparator,{}),e.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Flujo de trabajo"}),e.jsx(M.ListItem,{icon:"ElipsisOutlined",iconColor:"blue",onClick:()=>f("plantilla","dependiente"),children:"Dependiente"})]})})}),i&&c&&e.jsx(Ma,{isOpen:i,onClose:h,onSuccess:m,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:r}),d&&c&&e.jsx(La,{isOpen:d,onClose:w,onSuccess:g,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:r})]})};function xr({reactFlowWrapper:t,nodes:a}){const{setViewport:s,getViewport:n}=re.useReactFlow(),{zoom:r}=re.useViewport(),i=Math.round(r*100),[o,d]=p.useState([]),[l,c]=p.useState(-1),[u,f]=p.useState(!1),[h,w]=p.useState(0);p.useLayoutEffect(()=>{const S=t==null?void 0:t.current;if(S){const k=S.getBoundingClientRect();w(k.width)}},[t]);const m=p.useMemo(()=>{var _;if(!a||a.length===0)return{x:0,y:0,zoom:1};const S=a.find(P=>{var F;return(F=P==null?void 0:P.data)==null?void 0:F.main})??a[0];return{x:(h||(typeof window<"u"?window.innerWidth:0))/2-(((_=S==null?void 0:S.position)==null?void 0:_.x)??0),y:20,zoom:1}},[a,h]),g=p.useCallback(S=>{if(!u){const k=[...o.slice(0,l+1),S];d(k),c(k.length-1)}},[o,l,u]),x=p.useCallback(()=>{if(u)return;const S=n(),k=Math.min(S.zoom*1.2,2);g(S),f(!0),s({x:S.x,y:S.y,zoom:k}),setTimeout(()=>f(!1),100)},[n,s,g,u]),b=p.useCallback(()=>{if(u)return;const S=n(),k=Math.max(S.zoom/1.2,.5);g(S),f(!0),s({x:S.x,y:S.y,zoom:k}),setTimeout(()=>f(!1),100)},[n,s,g,u]),j=p.useCallback(()=>{if(u)return;const S=n();Math.abs(S.zoom-1)>.01&&g(S),f(!0),s({x:S.x,y:S.y,zoom:1}),setTimeout(()=>f(!1),100)},[n,s,g,u]),v=p.useCallback(()=>{if(u||l<=0)return;const S=o[l-1];f(!0),s(S),c(l-1),setTimeout(()=>f(!1),100)},[l,o,s,u]);return p.useEffect(()=>{o.length===0&&(d([{zoom:1,x:0,y:0}]),c(0))},[o.length]),{isReady:h!==0&&Array.isArray(a)&&a.length>0,defaultViewport:m,zoomPercentage:i,handleZoomIn:x,handleZoomOut:b,handleZoomTo100:j,handleDoubleClick:v}}const gr=t=>{var i,o;const a=((i=t.data)==null?void 0:i.isInternal)||!1,s=(o=t.data)==null?void 0:o.originalGroupId,n=t.selected||!1,r=d=>{if(d.preventDefault(),d.stopPropagation(),s){const c=be.getState().collapseGroup;c&&c(s)}};return e.jsxs("div",{className:`tw-flex tw-flex-col tw-border-[1px] tw-gap-y-2 tw-rounded-lg tw-bg-white tw-p-3 tw-transition-all tw-duration-200 ${n?"tw-border-blue-500 tw-shadow-lg tw-ring-2 tw-ring-blue-300 tw-ring-opacity-50":"tw-border-neutral-100 tw-shadow-sm"}`,children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[e.jsx(M.Icon,{name:"FlagOutlined",background:!0}),e.jsx("p",{className:"tw-leading-none tw-text-neutral-500 tw-font-bold",children:t.data.clave}),a&&e.jsx(M.Button,{size:"md",variant:"outlined",color:"white",onClick:r,className:"tw-p-2 nopan nodrag",icon:"MinimizeOutlined",rounded:!0})]}),a&&e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[e.jsx(M.Tag,{color:t.data.estatus==="published"?"green":"yellow",size:"xs",rounded:!0,label:t.data.estatus==="published"?"Publicado":"Borrador",variant:"outlined",borderable:!1}),(t.data.updatedAt||t.data.updated_at)&&e.jsx("p",{className:"tw-text-sm tw-text-neutral-500 tw-font-medium",children:new Date(t.data.updatedAt||t.data.updated_at).toLocaleDateString("es-ES")})]}),e.jsx(re.Handle,{id:"bottom-source",type:"source",position:re.Position.Bottom,className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white tw-cursor-crosshair"}),e.jsx(re.Handle,{id:"top-target",type:"target",position:re.Position.Top,className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white tw-cursor-crosshair"})]})},hr=()=>{const t=p.useCallback((r,i,o,d)=>{const l=(f,h)=>{const w=f.position.x,m=f.position.y,g=120,x=60,b=15;switch(h){case"top-source":case"top-target":return{x:w,y:m-x/2-b};case"bottom-source":case"bottom-target":return{x:w,y:m+x/2+b};case"left-source":case"left-target":return{x:w-g/2-b,y:m};case"right-source":case"right-target":return{x:w+g/2+b,y:m};default:return{x:w,y:m}}},c=l(r,o),u=l(i,d);return Math.sqrt(Math.pow(u.x-c.x,2)+Math.pow(u.y-c.y,2))},[]),a=p.useCallback((r,i)=>{if(r.includes("source")===i.includes("source"))return!1;const o=u=>u.includes("top")?"top":u.includes("bottom")?"bottom":u.includes("left")?"left":u.includes("right")?"right":null,d=o(r),l=o(i);return{top:"bottom",bottom:"top",left:"right",right:"left"}[d]===l},[]),s=p.useCallback((r,i)=>{const o=["top-source","bottom-source","left-source","right-source"],d=["top-target","bottom-target","left-target","right-target"];let l=1/0,c={handle1:o[0],handle2:d[0]};for(const u of o)for(const f of d){if(!a(u,f))continue;const h=t(r,i,u,f);h<l&&(l=h,c={handle1:u,handle2:f})}return c},[t,a]),n=p.useCallback((r,i,o=800)=>Math.sqrt(Math.pow(i.position.x-r.position.x,2)+Math.pow(i.position.y-r.position.y,2))<o,[]);return{findClosestHandles:s,calculateHandleDistance:t,areHandlesCompatible:a,shouldApplyMagneticConnection:n}},br=t=>{const[a,s]=p.useState(null),[n,r]=p.useState(null),[i,o]=p.useState(!1),d=p.useCallback((h,w,m,g)=>{s({isOpen:!0,nodeId:h,position:w,sourceNodeId:m,sourceHandleId:g})},[]),l=p.useCallback(()=>{s(null)},[]),c=p.useCallback((h,w,m,g,x)=>{o(!0),r({isOpen:!0,sourceNodeId:h,sourceHandleId:m,targetNodeId:w,targetHandleId:g,position:x})},[]),u=p.useCallback(()=>{o(!1),r(null)},[]),f=p.useCallback(()=>{var w,m,g;if(!(a!=null&&a.sourceNodeId))return null;const h=t.find(x=>x.id===a.sourceNodeId);return h?{id:h.id,label:(w=h.data)==null?void 0:w.label,nodeType:(m=h.data)==null?void 0:m.nodeType,connectionType:(g=h.data)==null?void 0:g.connectionType,data:h.data}:null},[a,t]);return{newNodePopup:a,connectionPopup:n,isConnectingExistingNodes:i,openNewNodePopup:d,closeNewNodePopup:l,openConnectionPopup:c,closeConnectionPopup:u,getParentNodeInfo:f,setIsConnectingExistingNodes:o}},yr=({initialNodes:t,initialEdges:a})=>{const[s,n,r]=re.useNodesState(Lt(t)),[i,o,d]=re.useEdgesState(a),[l,c]=p.useState(!1),u=p.useCallback(U=>{o(U)},[o]),{toObject:f}=re.useReactFlow(),{findClosestHandles:h,shouldApplyMagneticConnection:w}=hr(),{updateGraphLayout:m,get:g,update:x}=Ae(),b=Fe(U=>U.activeTemplate),j=Fe(U=>U.setActiveTemplate),v=de.useQueryClient(),{removeParentIdFromNodes:L}=Xe(),{newNodePopup:S,connectionPopup:k,isConnectingExistingNodes:N,openNewNodePopup:_,closeNewNodePopup:P,openConnectionPopup:F,closeConnectionPopup:y,getParentNodeInfo:X,setIsConnectingExistingNodes:B}=br(s),{createNodeFromPopup:I,createConnectionFromPopup:O,updateNodeFromPopup:H,updateAfterDeleted:W}=Oa({nodes:s,edges:i,setNodes:n,setEdges:u,newNodePopup:S,connectionPopup:k,closeNewNodePopup:P,closeConnectionPopup:y,setIsConnectingExistingNodes:B});p.useEffect(()=>{if(t&&t.length>0){if(!(t.some((z,A)=>{const C=s[A];return C?z.id!==C.id||JSON.stringify(z.position)!==JSON.stringify(C.position)||JSON.stringify(z.data)!==JSON.stringify(C.data):!0})||t.length!==s.filter(z=>{var A;return!((A=z.data)!=null&&A.isInternal)}).length)&&s.length>0)return;const{expandedGroups:q,groupTemplateData:G}=be.getState();let D=s.filter(z=>{var A,C;return((A=z.data)==null?void 0:A.isInternal)&&typeof((C=z.data)==null?void 0:C.originalGroupId)=="string"&&q.has(z.data.originalGroupId)});const E=Lt(t);if(D.length>0){const z=E.map(A=>{var C;if(q.has(A.id)){const V=s.find(J=>J.id===A.id),$=(C=V==null?void 0:V.data)==null?void 0:C.expandedDimensions;if($)return{...A,style:{...A.style,width:$.width,height:$.height},data:{...A.data,isExpanded:!0,expandedDimensions:$}}}return A});n([...z,...D])}else if(q.size>0){const z=E.map(A=>q.has(A.id)&&G[A.id]?{...A,data:{...A.data,isExpanded:!0,needsReExpansion:!0}}:A);n(z)}else n(E)}else n([])},[t,n]),p.useEffect(()=>{if(!l&&a&&a.length>0){const{expandedGroups:U}=be.getState(),q=i.filter(D=>{var E,z;return((E=D.data)==null?void 0:E.isInternal)&&typeof((z=D.data)==null?void 0:z.originalGroupId)=="string"&&U.has(D.data.originalGroupId)}),G=i.filter(D=>{var E,z;return((E=D.data)==null?void 0:E.redirectedToInternal)&&typeof((z=D.data)==null?void 0:z.originalTarget)=="string"&&U.has(D.data.originalTarget)});if(q.length>0||G.length>0){const D=a.filter(E=>!G.some(z=>{var A;return((A=z.data)==null?void 0:A.originalTarget)===E.target}));u([...D,...q,...G])}else u(a)}},[a,u,l]);const K=p.useCallback((U,q,G=!1)=>{const E=i.filter(C=>C.target===q).length>0;if(i.some(C=>C.source===U&&C.target===q||C.source===q&&C.target===U)&&!G)return M.toast.warning("La tarea destino ya tiene una conexión"),!1;const A=!E;return typeof window<"u"&&(window.validConnectionTypes={dependiente:A,hija:A}),A?!0:(M.toast.warning("La tarea destino ya tiene una conexión de entrada"),!1)},[i]),te=p.useCallback(U=>{if(!cr(U.source,U.target))return;Be(U.source)&&!U.sourceHandle&&(U.sourceHandle=ye.DEFAULT_SOURCE_HANDLE);const q=s.find(D=>D.id===U.source),G=s.find(D=>D.id===U.target);if(q&&G){if(!K(U.source,U.target))return;F(U.source,U.target,U.sourceHandle,U.targetHandle);return}return u(D=>re.addEdge(U,D))},[s,F,u,K]),ae=p.useCallback((U,q)=>{var G;if(!N&&!q.isValid&&q.fromNode){const D=s.find(J=>J.id===q.fromNode.id);if((D==null?void 0:D.type)==="group"){M.toast.warning("En una plantilla, no se puede crear una conexión");return}const E=dr(U),z=document.elementFromPoint(E.x,E.y);if(z!=null&&z.closest(".react-flow__node"))return;const A=crypto.randomUUID(),C=((G=q.fromHandle)==null?void 0:G.id)||ye.DEFAULT_SOURCE_HANDLE,$=Be(q.fromNode.id)?ye.DEFAULT_SOURCE_HANDLE:C;_(A,E,q.fromNode.id,$)}},[N,_,s]),Z=p.useCallback(async U=>{var E,z,A;const q=Aa(U),G=U.length>0?(z=(E=U[0])==null?void 0:E.data)==null?void 0:z.id:0;u(C=>C.filter(V=>!q.includes(V.source)&&!q.includes(V.target)));let D;for(const C of U)try{const V=C.data;if((A=V==null?void 0:V.plantilla)!=null&&A.id){D=V.plantilla.id;break}}catch{}try{u(C=>((async()=>{await W(q,C,D,G)})().catch(V=>{console.error("❌ Error en updateAfterDeleted:",V)}),C))}catch(C){console.error("❌ Error en onDeleteNode:",C)}},[u,W]),se=p.useCallback(async U=>{var G,D,E,z,A,C,V,$,J,ne,oe,ie,ce,ue;if(!U||U.length===0)return;let q;if(b!=null&&b.id)q=b.id;else for(const le of U){const pe=s.find(fe=>fe.id===le.source),xe=s.find(fe=>fe.id===le.target);if(pe!=null&&pe.data&&typeof pe.data=="object"&&"plantilla"in pe.data){const fe=pe.data.plantilla;if(fe!=null&&fe.id){q=fe.id;break}}if(xe!=null&&xe.data&&typeof xe.data=="object"&&"plantilla"in xe.data){const fe=xe.data.plantilla;if(fe!=null&&fe.id){q=fe.id;break}}}if(!q){console.warn("⚠️ onEdgesDelete - No se pudo obtener templateId");return}try{const le=await g(q);if(!le){console.warn("⚠️ onEdgesDelete - Template no encontrado en IndexedDB");return}const pe=U.map(Ce=>Ce.id),xe=((E=(D=(G=le.graph_layout)==null?void 0:G.snapshot)==null?void 0:D.edges)==null?void 0:E.filter(Ce=>{var Ie;return!pe.includes(Ce.id)&&!((Ie=Ce.data)!=null&&Ie.isInternal)}))||[],Me=(((C=(A=(z=le.graph_layout)==null?void 0:z.snapshot)==null?void 0:A.nodes)==null?void 0:C.filter(Ce=>{var Ie;return!((Ie=Ce.data)!=null&&Ie.isInternal)&&!Ce.parentId}))||[]).map(Ce=>{const{style:Ie,measured:Qe,data:at,...$a}=Ce,{expandedDimensions:so,isExpanded:no,needsReExpansion:ro,...Tt}=at||{},Ba=Ie?{...Ie,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0,Ha=Ce.data.id===U[0].data.childId?{...Tt,tarea_padre:null,id_t_requerida:null}:Tt;return{...$a,style:Ba,data:Ha}}),he=(($=(V=le.graph_layout)==null?void 0:V.snapshot)==null?void 0:$.edges)||[];if(!(JSON.stringify(he)!==JSON.stringify(xe)))return;const Ne={...le,graph_layout:{id:((J=le.graph_layout)==null?void 0:J.id)||0,snapshot:{nodes:Me,edges:xe,viewport:((oe=(ne=le.graph_layout)==null?void 0:ne.snapshot)==null?void 0:oe.viewport)||{x:0,y:0,zoom:1}},history:((ie=le.graph_layout)==null?void 0:ie.history)||[],zoom:((ce=le.graph_layout)==null?void 0:ce.zoom)||1,position:((ue=le.graph_layout)==null?void 0:ue.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await L({templateId:q,id:U[0].data.childId}),await x(q,Ne),console.log("🗑️ [useFlow] Invalidando caché de la plantilla:",q),await v.invalidateQueries({queryKey:["template",q]}),await v.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlow] Caché invalidado exitosamente"),q===(b==null?void 0:b.id)&&j(Ne)}catch(le){console.error("❌ onEdgesDelete - Error al actualizar template layout:",le)}},[s,b,g,x,j,L]),T=p.useCallback(async U=>!U.nodes.some(G=>G.type==="start"||G.id===ye.START_NODE_ID),[]),R=p.useCallback((U,q,G)=>{var A,C,V;const D=s.find($=>$.id===q.id);if(!D)return;if(D.type==="group"&&((A=D.data)!=null&&A.isExpanded)){u($=>$.map(J=>{if(J.hidden&&J.target===q.id){const{hidden:ne,...oe}=J;return oe}return J}));return}let E;if(D.type==="group"?E=b==null?void 0:b.id:(V=(C=q==null?void 0:q.data)==null?void 0:C.plantilla)!=null&&V.id&&(E=q.data.plantilla.id),!E)return;const z=i.map($=>{var oe,ie,ce,ue,le;if(rt($))return $;const J=s.find(pe=>pe.id===$.source),ne=s.find(pe=>pe.id===$.target);if(J&&ne){const pe=J.type==="group"&&((oe=J.data)==null?void 0:oe.isExpanded),xe=ne.type==="group"&&((ie=ne.data)==null?void 0:ie.isExpanded),fe=(ce=J.data)==null?void 0:ce.isInternal,Me=(ue=ne.data)==null?void 0:ue.isInternal,he=(le=$.data)==null?void 0:le.redirectedToInternal;if(pe||xe||fe||Me||he)return $;if(J.id===q.id||ne.id===q.id||w(J,ne,ye.MAGNETIC_CONNECTION_DISTANCE)){const Ne=h(J,ne);if(Ne!=null&&Ne.handle1&&(Ne!=null&&Ne.handle2))return{...$,sourceHandle:Ne.handle1,targetHandle:Ne.handle2}}}return $});if(JSON.stringify(i)!==JSON.stringify(z))u(z),setTimeout(()=>{const $=f();m(E,$)},100);else{const $=f();m(E,$)}},[s,i,b,m,f,u,h,w]),Y=p.useCallback(U=>{r(U);const q=ur(U);if(q.length>0){const G=q.filter(D=>{var z;const E=s.find(A=>A.id===D);return(E==null?void 0:E.type)==="group"&&((z=E==null?void 0:E.data)==null?void 0:z.isExpanded)});if(G.length>0){u(D=>D.map(E=>{var C;const z=G.includes(E.target),A=!((C=E.data)!=null&&C.redirectedToInternal);return z&&A?{...E,hidden:!0}:E}));return}c(!0),setTimeout(()=>{const D=i.map(z=>{var V,$,J,ne;if(rt(z))return{...z};const A=s.find(oe=>oe.id===z.source),C=s.find(oe=>oe.id===z.target);if(A&&C){const oe=A.type==="group"&&((V=A.data)==null?void 0:V.isExpanded),ie=C.type==="group"&&(($=C.data)==null?void 0:$.isExpanded),ce=(J=A.data)==null?void 0:J.isInternal,ue=(ne=C.data)==null?void 0:ne.isInternal;if(oe||ie||ce||ue)return{...z};if(w(A,C,ye.MAGNETIC_CONNECTION_DISTANCE)){const le=h(A,C);if(le!=null&&le.handle1&&(le!=null&&le.handle2)&&(z.sourceHandle!==le.handle1||z.targetHandle!==le.handle2))return{...z,sourceHandle:le.handle1,targetHandle:le.handle2}}}return{...z}});if(i.some((z,A)=>{const C=D[A];return z.sourceHandle!==C.sourceHandle||z.targetHandle!==C.targetHandle})){const z=D.map(A=>({...A,id:A.id}));u(z)}setTimeout(()=>{c(!1)},200)},0)}},[r,i,s,u,h,w,c]);return{nodes:s,edges:i,newNodePopup:S,connectionPopup:k,setNodes:n,setEdges:u,onEdgesChange:d,onConnect:te,onConnectEnd:ae,onDeleteNode:Z,onEdgesDelete:se,onBeforeDelete:T,handleNodesChange:Y,onDragEnd:R,getParentNodeInfo:X,isProtectedConnection:rt,isStartNode:Be,createNodeFromPopup:I,updateNodeFromPopup:H,closeNewNodePopup:P,createConnectionFromPopup:O,closeConnectionPopup:y}},jr=({isOpen:t,onClose:a,createConnectionFromPopup:s,availableConnections:n})=>{if(!t)return null;const r=n||{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}},i=(o,d)=>{(o==="tarea"?r.tarea[d]:r.plantilla[d])&&s(o,d)};return e.jsx(e.Fragment,{children:e.jsxs("div",{className:"tw-fixed tw-inset-0 tw-z-50 tw-flex tw-items-center tw-justify-center",children:[e.jsx("div",{className:"tw-bg-black/20 tw-absolute tw-inset-0",onClick:a}),e.jsx("div",{className:"ui-shadow-lg ui-border-neutral-100 ui-border-1 tw-relative tw-rounded-lg tw-bg-white tw-p-4",children:e.jsx("div",{children:e.jsxs(M.List,{children:[e.jsx("p",{className:"ui-text-sm tw-px-4 tw-font-medium tw-text-neutral-300",children:"Tarea"}),e.jsxs(M.ListItem,{icon:"ElipsisOutlined",iconColor:r.tarea.dependiente?"blue":"neutral",onClick:()=>i("tarea","dependiente"),children:["Dependiente222 ",!r.tarea.dependiente&&"(No disponible)"]}),e.jsxs(M.ListItem,{icon:"Plus1Outlined",iconColor:r.tarea.hija?"blue":"neutral",onClick:()=>i("tarea","hija"),children:["Hija ",!r.tarea.hija&&"(No disponible)"]}),e.jsx(M.ListSeparator,{}),e.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Flujo de trabajo"}),e.jsxs(M.ListItem,{icon:"ElipsisOutlined",iconColor:r.plantilla.dependiente?"blue":"neutral",onClick:()=>i("plantilla","dependiente"),children:["Dependiente ",!r.plantilla.dependiente&&"(No disponible)"]})]})})})]})})},vr=({data:t,id:a,selected:s})=>{const{expandedGroups:n}=be(),[r,i]=p.useState(!1),o=p.useRef(!1);p.useEffect(()=>{const f=(t==null?void 0:t.needsReExpansion)&&n.has(a),h=(t==null?void 0:t.templateId)||(t==null?void 0:t.id);if(f&&h&&!o.current){o.current=!0;const m=be.getState().expandGroup;m&&m(a,h).catch(g=>{console.error("Error al re-expandir grupo:",g),o.current=!1})}n.has(a)||(o.current=!1)},[t,a,n]);const d=async f=>{f.preventDefault(),f.stopPropagation();const h=(t==null?void 0:t.templateId)||(t==null?void 0:t.id);if(h){i(!0);try{const w=be.getState(),m=w.expandGroup,g=w.collapseGroup,x=n.has(a);x&&g?g(a):!x&&m&&await m(a,h)}catch{}finally{i(!1)}}},l=n.has(a),c=t==null?void 0:t.expandedDimensions,u=l&&c?{width:c.width,height:c.height,minWidth:c.width,minHeight:c.height}:{minWidth:268,minHeight:80};return e.jsxs("div",{className:`tw-rounded-lg tw-relative tw-transition-all tw-duration-200 ${s?"tw-bg-white tw-border-2 tw-border-blue-500 tw-shadow-lg tw-ring-2 tw-ring-blue-300 tw-ring-opacity-50":l?"tw-bg-neutral-50 tw-border-2 tw-border-blue-300 tw-shadow-lg":"tw-bg-white tw-border-2 tw-border-neutral-100"}`,style:u,children:[e.jsx(Ye,{isLoading:r}),e.jsx(re.Handle,{id:"top-target",type:"target",position:re.Position.Top,className:`tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white ${l?"tw-opacity-0 tw-pointer-events-none":""}`,isConnectable:!l}),e.jsx(re.Handle,{id:"right-target",type:"target",className:`tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white ${l?"tw-opacity-0 tw-pointer-events-none":""}`,position:re.Position.Right,isConnectable:!l}),e.jsx(re.Handle,{id:"bottom-target",type:"target",className:`tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white ${l?"tw-opacity-0 tw-pointer-events-none":""}`,position:re.Position.Bottom,isConnectable:!l}),e.jsx(re.Handle,{id:"left-target",type:"target",className:`tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white ${l?"tw-opacity-0 tw-pointer-events-none":""}`,position:re.Position.Left,isConnectable:!l}),!l&&e.jsxs("div",{className:"tw-flex tw-flex-col",children:[e.jsxs("div",{className:`tw-flex tw-justify-between tw-items-center tw-gap-x-4 ${l?"tw-px-6 tw-pt-6":"tw-p-6 tw-pb-0"}`,children:[e.jsxs("div",{className:"tw-flex tw-flex-col",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[e.jsx(M.Icon,{name:"TaskOutlined",color:"blue",size:"lg"}),e.jsx("p",{className:"tw-font-bold tw-leading-none tw-text-neutral-900",children:t.clave||t.nombre_plantilla||"N/A"})]}),t.nombre_plantilla&&t.clave&&e.jsx("p",{className:"tw-text-sm tw-text-neutral-600 tw-mt-1",children:t.nombre_plantilla})]}),e.jsx(M.Button,{size:"md",variant:"outlined",color:"white",onClick:d,disabled:r,rounded:!0,className:`tw-p-2 ${r?"tw-opacity-50":""} nopan nodrag`,icon:l?"MinimizeOutlined":"MaximizeOutlined"})]}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2 tw-px-6",children:[e.jsx(M.Tag,{color:t.estatus==="published"?"green":"yellow",size:"xs",rounded:!0,label:t.estatus==="published"?"Publicado":"Borrador",variant:"outlined",borderable:!1}),t.updatedAt&&e.jsx("p",{className:"tw-text-sm tw-text-neutral-500 tw-font-medium",children:new Date(t.updatedAt).toLocaleDateString("es-ES")})]})]})]})},_r=(t,a,s,n)=>{const r=p.useRef(t),i=p.useRef(a);p.useEffect(()=>{r.current=t},[t]),p.useEffect(()=>{i.current=a},[a]);const{expandedGroups:o,groupTemplateData:d,toggleGroupExpansion:l,setGroupTemplateData:c,clearGroupTemplateData:u}=be(),f=de.useQueryClient(),{getTemplateWithTasks:h}=Ea(),{hydrateTasks:w}=Ia(),m=p.useCallback(async(j,v)=>{var L,S,k,N;try{await f.invalidateQueries({queryKey:["template",v]});const _=await h(v),P=(k=(S=(L=_==null?void 0:_.graph_layout)==null?void 0:L.snapshot)==null?void 0:S.nodes)==null?void 0:k.filter(C=>{var V,$;return((V=C.data)==null?void 0:V.isInternal)||C.parentId||(($=C.id)==null?void 0:$.includes("-internal-"))});if(P&&P.length>0&&console.warn("⚠️ [expandGroup] Nodos sospechosos en API para plantilla",v,":",P),!((N=_==null?void 0:_.graph_layout)!=null&&N.snapshot))throw new Error(`No se encontraron datos de graph_layout en la plantilla: ${v}`);const F=_.graph_layout.snapshot.nodes||[],y=F.filter(C=>{var oe,ie;const V=(oe=C.data)==null?void 0:oe.isInternal,$=!!C.parentId,J=(ie=C.id)==null?void 0:ie.includes("-internal-"),ne=V||$||J;return ne&&console.warn("🗑️ [expandGroup] Filtrando nodo corrupto:",{id:C.id,type:C.type,esInterno:V,tieneParentId:$,tieneInternalEnId:J}),!ne}),X={..._,graph_layout:{..._.graph_layout,snapshot:{..._.graph_layout.snapshot,nodes:y,edges:(_.graph_layout.snapshot.edges||[]).filter(C=>{var V,$;return!((V=C.data)!=null&&V.isInternal)&&!(($=C.id)!=null&&$.includes("-internal-"))})}}},B=F.length-y.length;B>0?console.warn(`⚠️ [expandGroup] Se filtraron ${B} nodos internos corruptos de la BD para plantilla ${v}`):console.log(`✅ [expandGroup] No se encontraron nodos corruptos en plantilla ${v}`);const I=await w(X),O={...X,hydratedNodes:I,nodes:I||X.graph_layout.snapshot.nodes||[],edges:X.graph_layout.snapshot.edges||[]},H=O.nodes,W=O.edges;if(!H||!W){console.error("❌ No se encontraron nodos o edges en la plantilla:",v);return}c(j,{nodes:H,edges:W,viewport:O.graph_layout.snapshot.viewport||{x:0,y:0,zoom:1}});const K=r.current.find(C=>C.id===j);if(!K){console.error("❌ No se encontró el nodo grupo:",j);return}const te=H.filter(C=>C.id!==j);let ae=1/0,Z=1/0,se=-1/0,T=-1/0;te.forEach(C=>{var le,pe,xe,fe,Me,he;const V=((le=C.position)==null?void 0:le.x)||0,$=((pe=C.position)==null?void 0:pe.y)||0,J=typeof((xe=C.style)==null?void 0:xe.width)=="number"?C.style.width:((fe=C.measured)==null?void 0:fe.width)||268,ne=typeof((Me=C.style)==null?void 0:Me.height)=="number"?C.style.height:((he=C.measured)==null?void 0:he.height)||111,oe=V-J/2,ie=V+J/2,ce=$,ue=$+ne;ae=Math.min(ae,oe),Z=Math.min(Z,ce),se=Math.max(se,ie),T=Math.max(T,ue)});const R=80,Y=60,U=se-ae,q=T-Z,G=U+R*2,D=q+R*2+Y,E=H.map((C,V)=>{var le,pe;if(C.id===j)return null;const $=((le=C.position)==null?void 0:le.x)||0,J=((pe=C.position)==null?void 0:pe.y)||0,ne=$-ae+R,oe=J-Z+R+Y,ie=C.type==="start"||C.id==="start",ce=ie?{...C.data,estatus:K.data.estatus,updatedAt:K.data.updatedAt,createdAt:K.data.createdAt,isInternal:!0,originalGroupId:j,originalNodeId:C.id}:{...C.data,isInternal:!0,originalGroupId:j,originalNodeId:C.id};return{...C,id:`${j}-internal-${C.id}`,parentId:j,extent:"parent",type:C.type==="group"?"main":C.type,position:{x:ne,y:oe},style:{...C.style},data:ce,draggable:!1,selectable:ie,selected:!1,deletable:!1,connectable:!1,focusable:ie,zIndex:999}}).filter(Boolean),z=W.map(C=>{const V=E.some(ne=>ne&&ne.id===`${j}-internal-${C.source}`),$=E.some(ne=>ne&&ne.id===`${j}-internal-${C.target}`);return!V||!$?null:{...C,id:`${j}-internal-${C.id}`,source:`${j}-internal-${C.source}`,target:`${j}-internal-${C.target}`,style:{...C.style},data:{...C.data,isInternal:!0,originalGroupId:j}}}).filter(Boolean),A=E.find(C=>{var V;return C&&((V=C.data)==null?void 0:V.originalNodeId)==="start"});A&&n(C=>C.map(V=>V.target===j?{...V,target:A.id,targetHandle:"top-target",data:{...V.data,redirectedToInternal:!0,originalTarget:j,originalTargetHandle:V.targetHandle}}:V)),l(j),s(C=>[...C.map($=>{if($.id===j){const{needsReExpansion:J,...ne}=$.data||{};return{...$,style:{...$.style,width:G,height:D},data:{...ne,isExpanded:!0,expandedDimensions:{width:G,height:D}},zIndex:1e3}}return $}),...E]),n(C=>[...C,...z])}catch(_){console.error("❌ Error al expandir el grupo:",_)}},[f,h,w,c,l,s,n]),g=p.useCallback(j=>{var P,F;const v=r.current,L=i.current,S=v.find(y=>y.id===j),k=((P=S==null?void 0:S.data)==null?void 0:P.templateId)||((F=S==null?void 0:S.data)==null?void 0:F.id),N=v.filter(y=>!y.id.startsWith(`${j}-internal-`)&&y.parentId!==j).map(y=>y.id===j?{...y,style:{...y.style,width:void 0,height:void 0},data:{...y.data,isExpanded:!1,expandedDimensions:void 0},zIndex:void 0}:y),_=L.filter(y=>!y.id.startsWith(`${j}-internal-`)).map(y=>{var X,B;if((X=y.data)!=null&&X.redirectedToInternal&&((B=y.data)==null?void 0:B.originalTarget)===j){const{redirectedToInternal:I,originalTarget:O,originalTargetHandle:H,...W}=y.data;return{...y,target:j,targetHandle:H||y.targetHandle,data:W}}return y});s(N),n(_),l(j),u(j),k&&f.invalidateQueries({queryKey:["template",k]})},[s,n,l,u,f]),x=p.useCallback(async(j,v)=>{o.has(j)?g(j):await m(j,v)},[o,m,g]),b=p.useCallback(j=>o.has(j),[o]);return{expandGroup:m,collapseGroup:g,toggleGroup:x,isGroupExpanded:b,groupTemplateData:d}},Nr=()=>{const{getNodes:t,setNodes:a,screenToFlowPosition:s,setCenter:n}=re.useReactFlow(),{copiedNodes:r,setCopiedNodes:i,getViewMode:o}=be(),{activeTemplate:d,setActiveTemplate:l}=Fe(),{updateGraphLayout:c,get:u,update:f}=Ae(),h=d!=null&&d.id?o(d.id):"readonly",w=p.useCallback(()=>`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,[]),m=p.useCallback(()=>t().filter(N=>N.selected).filter(N=>!(N.type==="start"||N.id==="start"||N.type==="group")),[t]),g=p.useCallback(()=>{if(h==="readonly"){M.toast.error("No puedes copiar tareas en modo solo lectura");return}if(!d){M.toast.error("No hay una plantilla activa");return}const L=m();if(L.length===0){const k=t().filter(N=>N.selected);if(k.length>0){const N=k.some(P=>P.type==="group"),_=k.some(P=>P.type==="start"||P.id==="start");N?M.toast.error("Las plantillas conectadas no pueden ser copiadas"):_&&M.toast.error("El nodo de inicio no puede ser copiado")}else M.toast.error("No hay tareas seleccionadas para copiar");return}const S=L.map(k=>{const{selected:N,..._}=k;return{..._,data:{..._.data,_originalTemplateId:d.id}}});i(S),M.toast.success(`${L.length} ${L.length===1?"tarea copiada":"tareas copiadas"} con éxito`)},[h,d,m,t,i]),x=p.useCallback(async L=>{if(h==="readonly"){M.toast.error("No puedes pegar tareas en modo solo lectura");return}if(!d){M.toast.error("No hay una plantilla activa");return}if(r.length===0){M.toast.error("No hay tareas copiadas para pegar");return}const S=t();let k={x:0,y:0};if(L)k=s({x:L.x,y:L.y});else if(S.length>0){const B=S.reduce((O,H)=>O+H.position.x,0)/S.length,I=S.reduce((O,H)=>O+H.position.y,0)/S.length;k={x:B+50,y:I+100}}const N=r[0],_=k.x-N.position.x,P=k.y-N.position.y,F=r.map((B,I)=>{const O=w(),H=-(Date.now()+I),W=B.data.plantilla&&typeof B.data.plantilla=="object"?{...B.data.plantilla,id:d.id}:{id:d.id},{id:K,...te}=B.data,ae={...te,id:H,reference_graph:O,plantilla:W,parent:{data:{id:null}},_originalTemplateId:void 0};return{...B,id:O,position:{x:B.position.x+_,y:B.position.y+P},data:ae,selected:!0}}),X=[...S.map(B=>({...B,selected:!1})),...F];if(a(X),d.id)try{const B=await u(d.id);if(!B)return;const I=F.filter(H=>H.type!=="start"&&H.type!=="group").map(H=>{const W=H.data;return{id:W.id,reference_graph:H.id,nombre:W.nombre||W.texto_corto||"Tarea sin nombre",texto_corto:W.texto_corto||"",texto_largo:W.texto_largo||"",prioridad:W.prioridad??0,nivel_dificultad:W.nivel_dificultad??0,dias_duracion:W.dias_duracion??0,plantilla:{id:d.id},parent:{data:{id:null}},tareas:[],plantilla_dependents:W.plantilla_dependents||[],start:W.start||!1,es_grupo:W.es_grupo||!1,optional:W.optional||!1,subtask_completadas:W.subtask_completadas||0,subtask_totales:W.subtask_totales||0}}),O={...B,tarea_plantillas:[...B.tarea_plantillas,...I],estatus:"dirty",updatedAt:new Date().toISOString()};await f(d.id,O),l(O),setTimeout(async()=>{await c(d.id,{nodes:X,edges:[]})},50)}catch(B){console.error("Error al actualizar template en IndexedDB:",B)}if(F.length>0){const B=F.reduce((O,H)=>O+H.position.x,0)/F.length,I=F.reduce((O,H)=>O+H.position.y,0)/F.length;n(B,I,{zoom:1,duration:800})}M.toast.success(`${F.length} ${F.length===1?"tarea pegada":"tareas pegadas"} con éxito`)},[h,d,r,t,a,s,n,w,c,u,f,l]),b=p.useCallback(()=>r.length>0,[r]),v=m().length>0;return{handleCopy:g,handlePaste:x,hasCopiedNodes:b,hasSelectableNodes:v,copiedNodesCount:r.length}},Tr={main:wr,plus:mr,start:gr,group:vr},Cr=[.5,0],Er=({initialNodes:t,initialEdges:a})=>{const s=p.useRef(null),{nodes:n,edges:r,onEdgesChange:i,onConnect:o,onConnectEnd:d,onBeforeDelete:l,onDeleteNode:c,onEdgesDelete:u,handleNodesChange:f,newNodePopup:h,getParentNodeInfo:w,createNodeFromPopup:m,closeNewNodePopup:g,connectionPopup:x,createConnectionFromPopup:b,closeConnectionPopup:j,onDragEnd:v,setNodes:L,setEdges:S}=yr({initialNodes:t,initialEdges:a}),{expandGroup:k,collapseGroup:N}=_r(n,r,L,S),{handleCopy:_,handlePaste:P,hasCopiedNodes:F,copiedNodesCount:y}=Nr(),B=n.filter(ie=>!(!ie.selected||ie.type==="start"||ie.id==="start"||ie.type==="group")).length,I=B>0;p.useEffect(()=>{const ie=ce=>{const ue=ce.target;ue.tagName==="INPUT"||ue.tagName==="TEXTAREA"||ue.isContentEditable||((ce.ctrlKey||ce.metaKey)&&ce.key==="c"&&(ce.preventDefault(),_()),(ce.ctrlKey||ce.metaKey)&&ce.key==="v"&&(ce.preventDefault(),P()))};return document.addEventListener("keydown",ie),()=>{document.removeEventListener("keydown",ie)}},[_,P]);const O=p.useRef(k),H=p.useRef(N);p.useEffect(()=>{O.current=k,H.current=N},[k,N]),p.useEffect(()=>{const ie=async(ue,le)=>{O.current&&await O.current(ue,le)},ce=ue=>{H.current&&H.current(ue)};be.setState({expandGroup:ie,collapseGroup:ce})},[]);const{zoomPercentage:W,handleZoomIn:K,handleZoomOut:te,handleZoomTo100:ae,handleDoubleClick:Z}=xr({reactFlowWrapper:s,nodes:n}),{getViewMode:se}=be(),{activeTemplate:T}=Fe(),Y=(T!=null&&T.id?se(T.id):"readonly")==="readonly",U=Y?void 0:i,q=Y?void 0:f,G=Y?void 0:o,D=Y?void 0:d,E=Y?void 0:l,z=Y?void 0:v,A=Y?void 0:c,C=Y?void 0:u,V=Y?null:["Backspace","Delete"],ne=Y?{nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!0,edgesFocusable:!1,nodesFocusable:!1,draggable:!1,selectionOnDrag:!1,connectOnClick:!1}:{nodesDraggable:!0,nodesConnectable:!0,elementsSelectable:!0,edgesFocusable:!0,nodesFocusable:!0,draggable:!1,selectionOnDrag:!1,connectOnClick:!0},oe=()=>{if(x)return{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}}};return e.jsxs("div",{className:"wrapper",ref:s,style:{width:"100%",height:"100vh"},children:[e.jsxs(re.ReactFlow,{nodes:n,edges:r,nodeTypes:Tr,onEdgesChange:U,onNodesChange:q,onConnect:G,onConnectEnd:D,onBeforeDelete:E,onNodeDragStop:z,onNodesDelete:A,onEdgesDelete:C,...ne,fitView:!0,fitViewOptions:{padding:2},nodeOrigin:Cr,defaultEdgeOptions:{type:"smoothstep"},connectionLineType:re.ConnectionLineType.SmoothStep,deleteKeyCode:V,multiSelectionKeyCode:Y?null:"Shift",children:[e.jsx(re.Background,{}),!Y&&e.jsx(re.Panel,{position:"bottom-left",className:"tw-m-0",children:e.jsxs("div",{className:"tw-bg-white tw-border tw-border-neutral-100 tw-rounded-lg tw-p-3 tw-shadow-sm tw-text-sm tw-text-neutral-500",children:[e.jsx("div",{className:"tw-font-semibold tw-text-neutral-900 tw-mb-2",children:"Atajos de teclado"}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-1",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"Shift"}),e.jsx("span",{children:"+ clic para seleccionar múltiples tareas"})]}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"Ctrl"}),e.jsx("span",{children:"+"}),e.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"C"}),e.jsx("span",{children:"Copiar"})]}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"Ctrl"}),e.jsx("span",{children:"+"}),e.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"V"}),e.jsx("span",{children:"Ppegar"})]})]})]})}),e.jsx(re.Panel,{position:"top-left",className:"tw-m-0",children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-2",children:[e.jsxs("div",{children:[T.estatusFromStrapi===Ee.PUBLISHED&&e.jsx(M.Tag,{color:"green",variant:"outlined",borderable:!1,label:"Publicado",size:"lg",rounded:!0,badgeColor:"green"}),T.estatusFromStrapi===Ee.DRAFT&&e.jsx(M.Tag,{color:"neutral",variant:"outlined",borderable:!1,label:"Borrador",size:"lg",rounded:!0})]}),!Y&&B>0&&e.jsxs("p",{className:"tw-text-blue-dark-500 ui-text-xs tw-font-medium",children:[B," ",B===1?"tarea seleccionada":"tareas seleccionadas"]})]})}),e.jsx(re.Panel,{position:"top-right",className:"tw-m-0",children:e.jsxs("div",{className:"tw-flex tw-gap-2",children:[!Y&&e.jsxs(M.ButtonGroup,{children:[e.jsxs(M.Button,{icon:"CopyOutlined",onClick:_,disabled:!I,variant:I?"button":"outlined",color:I?"blue-dark":"neutral",title:I?`Copiar ${B} ${B===1?"tarea":"tareas"} (Ctrl+C)`:"Selecciona tareas para copiar (mantén Shift y haz clic)",children:["Copiar ",B>0&&`(${B})`]}),e.jsxs(M.Button,{icon:"DocumentOutlined",onClick:()=>P(),disabled:!F(),variant:"outlined",color:"neutral",title:F()?`Pegar ${y} ${y===1?"tarea":"tareas"} (Ctrl+V)`:"No hay tareas copiadas",children:["Pegar ",y>0&&`(${y})`]})]}),e.jsxs(M.ButtonGroup,{color:"white",variant:"outlined",children:[e.jsx(M.Button,{icon:"Minus2Outlined",onClick:te}),e.jsxs(M.Button,{onClick:ae,onDoubleClick:Z,children:[W,"%"]}),e.jsx(M.Button,{icon:"Plus1Outlined",onClick:K})]})]})})]}),h&&e.jsx(fr,{isOpen:h.isOpen,position:h.position,onClose:g,createNodeFromPopup:m,parentNodeInfo:w()}),x&&e.jsx(jr,{isOpen:x.isOpen,onClose:j,createConnectionFromPopup:b,availableConnections:oe()})]})},Sr=({initialNodes:t,initialEdges:a})=>e.jsx(re.ReactFlowProvider,{children:e.jsx(Er,{initialNodes:t,initialEdges:a})}),Ve=qe.create(t=>({step:1,setStep:a=>t({step:a}),reset:()=>t({step:1})})),kr=({limit:t})=>{const a=Ve(o=>o.step),s=Ve(o=>o.setStep),n=p.useCallback(()=>{a<t&&s(a+1)},[a,s,t]),r=p.useCallback(()=>{a>1&&a<=t&&s(a-1)},[a,s,t]),i=p.useCallback(o=>{o>0&&o<=t&&s(o)},[s,t]);return p.useMemo(()=>({step:a,nextStep:n,prevStep:r,onStepChange:i}),[a,n,r,i])},Rt=["fase_plantilla","tipo_plantilla","categoria","tipo_medio","medio_especifico","pertenencia_medio","ubicacion_medio","responsable_impresion"],zt=["fase_plantilla","modo_configuracion","tipo_medio","formato_salida"],$t=["tipo_medio","formato_salida","medio_especifico"],Bt={fase_plantilla:{Preventa:{fieldsToClear:["modo_configuracion","formato_salida","medio_especifico","tipo_plantilla","categoria"]},Venta:{fieldsToClear:["tipo_medio","medio_especifico","modo_configuracion"]}},modo_configuracion:{Default:{fieldsToClear:["formato_salida","medio_especifico","tipo_medio"]},Especifico:{fieldsToClear:["formato_salida","medio_especifico","tipo_medio"]}},tipo_medio:{"Sitios Fijos":{fieldsToClear:["medio_especifico","responsable_impresion","pertenencia_medio","ubicacion_medio"]},Indoors:{fieldsToClear:["medio_especifico","responsable_impresion","pertenencia_medio","ubicacion_medio"]},"Vallas Móviles":{fieldsToClear:["responsable_impresion","pertenencia_medio","ubicacion_medio"]},Camiones:{fieldsToClear:["responsable_impresion","pertenencia_medio","ubicacion_medio"]},"Brand Riders":{fieldsToClear:["responsable_impresion","pertenencia_medio","ubicacion_medio"]}},formato_salida:{Digital:{fieldsToClear:["pertenencia_medio","ubicacion_medio"]},Impreso:{fieldsToClear:["pertenencia_medio","ubicacion_medio"]}}},Ht={fase_plantilla:{Venta:{fieldsToEnableDisable:["tipo_plantilla","modo_configuracion","categoria","pertenencia_medio","ubicacion_medio"]},Preventa:{fieldsToEnableDisable:["modo_configuracion"]}},modo_configuracion:{Preventa:{Default:{fieldsToEnableDisable:["tipo_medio"]},Especifico:{fieldsToEnableDisable:["tipo_medio"]}},Venta:{Default:{fieldsToEnableDisable:["tipo_medio","formato_salida"]},Especifico:{fieldsToEnableDisable:["tipo_medio"]}}},tipo_plantilla:{General:{fieldsToEnableDisable:["medio_especifico"]},Individual:{fieldsToEnableDisable:[]}},formato_salida:{Digital:{fieldsToEnableDisable:["responsable_impresion"]},Impreso:{fieldsToEnableDisable:["responsable_impresion"]}}};function _t(t){const[a,s]=p.useState([]),[n,r]=p.useState({}),{setClaveParams:i,templateFormData:o,setTemplateFormData:d,resetTemplateFormData:l,setDisableField:c,setClave:u,claveParams:f,setParamTipo:h}=Se(),{tasks_api:w}=we(),m=Ve(T=>T.step),{data:g,error:x,isSuccess:b,isError:j}=de.useQuery({queryKey:["paramsTipoPlantilla"],queryFn:async()=>{const T=Pe.stringify({populate:{params_plantillas:{fields:["id","abbreviation","name","active","tipomedio_nombre","reference_id"]}},sort:["order:asc"],fields:["id","step","key","label","order"]},{encodeValuesOnly:!0}),R=await w.get(`/api/params-tipos?${T}`);return R.data?{paramsTiposPlantilla:ge(R.data.data)}:{paramsTiposPlantilla:[]}}});p.useEffect(()=>{x&&j&&console.log(x)},[x,j]),p.useEffect(()=>{if(g&&b){const T=g.paramsTiposPlantilla;s(T)}},[g,b]);const v={fase_plantilla:(T,R)=>{d({fase_plantilla:T}),h({fase_plantilla:R})},tipo_plantilla:(T,R)=>{d({tipo_plantilla:T}),h({tipo_plantilla:R})},modo_configuracion:(T,R)=>{d({modo_configuracion:T}),h({modo_configuracion:R})},categoria:(T,R)=>{d({categoria:T}),h({categoria:R})},formato_salida:(T,R)=>{d({formato_salida:T}),h({formato_salida:R})},tipo_medio:(T,R)=>{d({tipo_medio:T}),h({tipo_medio:R})},medio_especifico:(T,R)=>{d({medio_especifico:T}),h({medio_especifico:R})},responsable_impresion:(T,R)=>{d({responsable_impresion:T}),h({responsable_impresion:R})},pertenencia_medio:(T,R)=>{d({pertenencia_medio:T}),h({pertenencia_medio:R})},ubicacion_medio:(T,R)=>{d({ubicacion_medio:T}),h({ubicacion_medio:R})}},L={fase_plantilla:(T,R)=>i({field:T,value:R}),tipo_plantilla:(T,R)=>i({field:T,value:R}),categoria:(T,R)=>i({field:T,value:R}),tipo_medio:(T,R)=>i({field:T,value:R}),medio_especifico:(T,R)=>i({field:T,value:R}),responsable_impresion:(T,R)=>i({field:T,value:R}),pertenencia_medio:(T,R)=>i({field:T,value:R}),ubicacion_medio:(T,R)=>i({field:T,value:R})},S={Digital:{execute:()=>{const T=a.filter(U=>U.step===3).find(U=>U.key==="responsable_impresion").params_plantillas.find(U=>U.name==="N/A").id,R="step3.responsable_impresion",Y=["responsable_impresion"];d({responsable_impresion:"N/A"}),t(R,T),c({fields:Y,value:!0}),i({field:"responsable_impresion",value:"NA"})}},Impreso:{execute:()=>{const T="step3.responsable_impresion",R=["responsable_impresion"];d({responsable_impresion:""}),t(T,""),c({fields:R,value:!1}),i({field:"responsable_impresion",value:""})}}},k={"Sitios Fijos":{execute:()=>X()},"Vallas Móviles":{execute:()=>B()},Indoors:{execute:()=>X()},Camiones:{execute:()=>I()},"Brand Riders":{execute:()=>I()}},N={"Sitios Fijos":{execute:()=>y()},"Vallas Móviles":{execute:()=>y()},Indoors:{execute:()=>y()},Camiones:{execute:()=>{F(),S.Impreso.execute()}},"Brand Riders":{execute:()=>{F(),S.Impreso.execute()}}},_={"Sitios Fijos":{execute:()=>P()},"Vallas Móviles":{execute:()=>F()},Indoors:{execute:()=>P()},Camiones:{execute:()=>F()},"Brand Riders":{execute:()=>F()}},P=()=>{const T=["medio_especifico"],R=o.modo_configuracion,Y=`step${m}.medio_especifico`,U=`step${m}.formato_salida`;c(R==="Default"?{fields:T,value:!0}:{fields:T,value:!1}),d({medio_especifico:""}),d({formato_salida:""}),t(Y,""),t(U,""),i({field:"medio_especifico",value:""}),i({field:"formato_salida",value:""})},F=()=>{const T=a.filter(q=>q.step===m).find(q=>q.key==="formato_salida").params_plantillas.find(q=>q.name==="Impreso").id,R=`step${m}.formato_salida`,Y=["formato_salida","medio_especifico"],U=`step${m}.medio_especifico`;d({medio_especifico:""}),d({formato_salida:"Impreso"}),t(R,T),t(U,""),i({field:"medio_especifico",value:""}),i({field:"tipo_medio",value:o.tipo_medio}),c({fields:Y,value:!0})},y=()=>{const T=["formato_salida"],R=`step${m}.formato_salida`,Y={};Y.formato_salida="",d(Y),t(R,""),c({fields:T,value:!1})},X=()=>{const T=["formato_salida","medio_especifico"],R=`step${m}.formato_salida`,Y={};Y.formato_salida="",d(Y),t(R,""),c({fields:T,value:!1})},B=()=>{const T=["formato_salida"],R=["medio_especifico"],Y=`step${m}.formato_salida`,U=`step${m}.medio_especifico`,q={};q.formato_salida="",q.medio_especifico="",d(q),t(Y,""),t(U,""),c({fields:T,value:!1}),c({fields:R,value:!0})},I=()=>{const T=a.filter(q=>q.step===m).find(q=>q.key==="formato_salida").params_plantillas.find(q=>q.name==="Impreso").id,R=`step${m}.formato_salida`,Y=`step${m}.medio_especifico`,U=["formato_salida","medio_especifico"];d({formato_salida:"Impreso"}),t(R,T),t(Y,""),c({fields:U,value:!0}),S.Impreso.execute()},O=(T,R)=>{Object.keys(Bt).includes(T)&&Bt[T][R].fieldsToClear.forEach(q=>{const G={};G[q]="",d(G),i({field:q,value:""}),t&&[...new Set(a.map(E=>E.step))].forEach(E=>{const z=`step${E}.${q}`;t(z,"")})})},H=(T,R,Y)=>T==="modo_configuracion"&&Y?Ht[T][Y][R].fieldsToEnableDisable:Ht[T][R].fieldsToEnableDisable,W=T=>a.filter(R=>R.step===T),K=T=>{var R;return n[T]||((R=a.find(Y=>Y.key===T))==null?void 0:R.params_plantillas)},te=T=>{var Y,U,q;let R=[];T==="Sitios fijos"?R=(Y=a.find(G=>G.key==="medio_especifico"))==null?void 0:Y.params_plantillas.filter(G=>G.tipomedio_nombre==="OOH"):T==="Indoors"?R=(U=a.find(G=>G.key==="medio_especifico"))==null?void 0:U.params_plantillas.filter(G=>G.tipomedio_nombre==="InDoor"):R=(q=a.find(G=>G.key==="medio_especifico"))==null?void 0:q.params_plantillas,r(G=>({...G,medio_especifico:R}))},ae=(T,R)=>{const Y=T.key;if($t.includes(Y)&&Y==="tipo_medio"){const U=R.label,q=o.fase_plantilla,G=o.modo_configuracion;if(q==="Preventa"){te(U);return}else if(G==="Especifico"){te(U);return}}},Z=(T,R,Y)=>{const U=T.params_plantillas.find(q=>T.key==="categoria"?q.reference_id===R.value:q.id===R.value);if(U){const q=T.key,G=R.label;if(v[q](G,Y),zt.includes(q))if(O(q,G),q==="fase_plantilla"){const E=H(q,G);c({fields:["categoria","modo_configuracion","tipo_plantilla"],value:!0}),E.length>0&&c({fields:E,value:!1})}else if(q==="modo_configuracion"){const D=G,E=o.fase_plantilla,z=H(q,D,E);c({fields:["medio_especifico","formato_salida"],value:!0}),z.length>0&&c({fields:z,value:!1})}else if(q==="tipo_medio"){const D=G,E=o.modo_configuracion;o.fase_plantilla==="Venta"?E==="Especifico"?k[D].execute():N[D].execute():E==="Especifico"&&_[D].execute()}else if(q==="formato_salida")S[G].execute();else{const D=H(q,G);D.length>0&&c({fields:D,value:!1})}if(Rt.includes(q)){let D="",E="";if(q==="formato_salida"){const z=o.modo_configuracion,A=G;E="tipo_medio",D=z==="Default"&&A==="Digital"?D="DDG":D="DRP"}else E=q,D=U.abbreviation;L[E](E,D)}$t.includes(q)&&ae(T,R)}},se=()=>{if(o){const T=o.fase_plantilla;if(T==="Preventa"){const R=o.modo_configuracion,Y=f.fase_plantilla||"XX";let U=null;if(R==="Default")U=f.tipo_medio||"XXX";else{const G=o.tipo_medio;["Vallas Móviles","Camiones","Brand Riders"].includes(G)?U=f.tipo_medio||"XXX":U=f.medio_especifico||"XXX"}const q=`${Y}-${U}`;u(q)}if(T==="Venta"){const R=f.fase_plantilla||"XX",Y=f.tipo_plantilla||"XXX",U=f.categoria||"XX",q=f.medio_especifico||f.tipo_medio||f.modo_configuracion||"XXX",G=f.responsable_impresion||"XX",D=f.pertenencia_medio||"X",E=f.ubicacion_medio||"X",z=`${R}-${Y}-${U}-${q}-${G}-${D}-${E}`;u(z)}}};return p.useEffect(()=>{se()},[f]),{templateFields:a,getFieldsByStep:W,dropdownFunctionsUpdateClave:L,fieldsForUpdateClave:Rt,resetTemplateFormData:l,fieldsWithDisableTrigger:zt,getFieldsToDisable:H,handleOptionSelected:Z,getFilteredOptions:K,dropdownFunctionsUpdateFormData:v}}const Nt=()=>{const{control:t,setValue:a}=je.useFormContext(),s=Ve(c=>c.step),{getFieldsByStep:n,handleOptionSelected:r,getFilteredOptions:i}=_t(a),{disabledFields:o}=Se(),d=p.useMemo(()=>n(s),[s,n]),l=c=>`El campo ${c.charAt(0).toLocaleLowerCase()+c.slice(1)} es requerido`;return d.map(c=>{const u=`step${c.step}.${c.key}`,f=c.label,w=i(c.key).map(m=>({label:m.name,value:c.key==="categoria"?m.reference_id:m.id}));return e.jsx(je.Controller,{name:u,control:t,rules:{required:{value:!o[c.key],message:l(f)},validate:m=>o[c.key]||m?!0:l(f)},render:({field:m,fieldState:{error:g}})=>e.jsx("div",{children:e.jsx(M.Dropdown,{label:f,value:m.value,onValueChange:x=>{m.onChange(x)},error:g==null?void 0:g.message,options:w,onOptionSelect:x=>{r(c,x,c.id)},disabled:o[c.key]||!1})})},c.id)})},Ir=()=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:e.jsx(Nt,{})}),Dr=()=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:e.jsx(Nt,{})}),Fr=()=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:e.jsx(Nt,{})}),Pr=({step:t})=>e.jsxs("div",{className:"tw-flex tw-min-h-[27rem] tw-flex-col tw-gap-y-4",children:[t===1&&e.jsx(Ir,{}),t===2&&e.jsx(Dr,{}),t===3&&e.jsx(Fr,{})]}),Mr=t=>{const a={step1:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria"],step2:["tipo_medio","formato_salida","medio_especifico"],step3:["responsable_impresion","pertenencia_medio","ubicacion_medio"]};return t.reduce((s,n)=>{const r=`step${n.step}`,i=a[r];return i&&i.includes(n.key)&&(s[r]||(s[r]={}),s[r][n.key]=""),s},{})},Ar=t=>{const a={step1:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria"],step2:["tipo_medio","formato_salida","medio_especifico"],step3:["responsable_impresion","pertenencia_medio","ubicacion_medio"]},s={};return Object.keys(a).forEach(n=>{s[n]={},a[n].forEach(r=>{var o;const i=(o=t[n])==null?void 0:o[r];s[n][r]=i!==void 0?i:""})}),s},Or=t=>t&&t.status===400?{failureLevel:"strapi",errorMessage:"Error al procesar la solicitud",technicalDetails:t.message}:t&&t.status===401?{failureLevel:"authentication",errorMessage:"Error de autenticación",technicalDetails:`Token expirado o inválido: ${t.message}`}:t&&t.status===500?{failureLevel:"strapi",errorMessage:"Error de servidor",technicalDetails:`Error en el servidor de Strapi: ${t.message}`}:{failureLevel:"unknown",errorMessage:"Error inesperado al crear la plantilla",technicalDetails:`Error desconocido: ${t.message}`};function qr(t,a){const{clave:s,paramsTipo:n,currentTemplateForEdit:r,isEditTemplate:i,setDisableField:o,setClaveParams:d,isDuplicateTemplate:l,templateFormData:c}=Se(),{tasks_api:u}=we(),{getFieldsByStep:f,dropdownFunctionsUpdateFormData:h,templateFields:w}=_t(),m=()=>{var S;try{const k={},N=t(),_=Ar(N),{step1:P}=_,F=[];k.clave=s,P.categoria!=""&&(k.categoria=P.categoria);for(const[y,X]of Object.entries(_))for(const[B,I]of Object.entries(X)){const O={id:null,params_tipo:{id:null}};if(I!=""){const H=n[B];if(B==="categoria"){const W=w.find(te=>te.key==="categoria"),K=(S=W==null?void 0:W.params_plantillas)==null?void 0:S.find(te=>te.reference_id===I);O.id=K==null?void 0:K.id}else O.id=I;O.params_tipo.id=H,F.push(O)}}return Object.keys(F).length>0&&(k.params_plantillas=F),k}catch(k){console.log(k)}},g=async S=>{var k;try{let N=null;return i?N=await u.put(`/api/plantillas/${r.id}`,{data:S}):N=await u.post("/api/plantillas",{data:S}),N.data?ge(N.data):null}catch(N){throw console.error("Error en saveTemplateToStrapi:",{error:N.message,status:(k=N.response)==null?void 0:k.status}),N}},x=async S=>{var k;try{const N=Pe.stringify({filters:{plantilla:{id:S}}},{encodeValuesOnly:!0}),_=await u.get(`/api/plantillas/plantilla-tareas-grafico?${N}`);return _.data?ge(_.data.data):null}catch(N){throw console.error("Error en getTemplateWithTasks:",{error:N.message,status:(k=N.response)==null?void 0:k.status}),N}},b=async()=>{try{let S=m();const k=await g(S);if(!k)return{success:!1,message:"No se pudo guardar el flujo de trabajo en Strapi",error:"templateData es null"};const N=await x(k.id);return N?{success:!0,message:"Flujo de trabajo creado y sincronizado completamente",data:N}:{success:!1,message:"No se pudieron obtener los datos completos del flujo de trabajo",error:"completeData es null"}}catch(S){const{response:{data:k}}=S,N=Or(k.error);return console.error("Error al guardar el flujo de trabajo: ",{level:N.failureLevel,message:N.errorMessage,technicalDetails:N.technicalDetails}),{success:!1,message:N.errorMessage,error:N.technicalDetails}}},j=()=>{const{params_plantillas:S}=r;let k={};[1,2,3].forEach(_=>{const P=`step${_}`;k[P]={},f(_).forEach(y=>{var B;const X=S.find(I=>I.params_tipo.key===y.key);if(X){let I=null;if(y.key==="categoria"){const O=(B=y.params_plantillas)==null?void 0:B.find(H=>H.id===X.id);I=(O==null?void 0:O.reference_id)||X.id}else I=X.id;k[P][y.key]=I}})}),a(k)},v=()=>{const{params_plantillas:S}=r;for(const k of S){const{params_tipo:{id:N,key:_},name:P,id:F}=k,y=w.find(X=>X.key===_).params_plantillas.find(X=>X.id===F);h[_](P,N),y&&d({field:_,value:y.abbreviation})}},L=()=>{try{const{fase_plantilla:S,modo_configuracion:k,formato_salida:N,tipo_medio:_}=c;if(S==="Venta")o({fields:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria","tipo_medio"],value:!1}),k==="Default"?(o({fields:["tipo_medio","formato_salida"],value:!1}),o({fields:["medio_especifico"],value:!0}),["Sitios Fijos","Vallas Móviles","Indoors"].includes(_)||o({fields:["formato_salida","medio_especifico"],value:!0}),N==="Digital"?(o({fields:["responsable_impresion"],value:!0}),o({fields:["pertenencia_medio","ubicacion_medio"],value:!1})):o({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!1})):(["Sitios Fijos","Indoors"].includes(_)&&o({fields:["formato_salida","medio_especifico"],value:!1}),["Vallas Móviles"].includes(_)&&(o({fields:["formato_salida"],value:!1}),o({fields:["medio_especifico"],value:!0})),["Camiones","Brand Riders"].includes(_)&&o({fields:["formato_salida","medio_especifico"],value:!0}),N==="Digital"?(o({fields:["responsable_impresion"],value:!0}),o({fields:["pertenencia_medio","ubicacion_medio"],value:!1})):o({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!1}));else if(o({fields:["modo_configuracion"],value:!1}),o({fields:["tipo_plantilla","categoria"],value:!0}),k=="Default"){const P=["formato_salida","medio_especifico","responsable_impresion","pertenencia_medio","ubicacion_medio"];o({fields:["tipo_medio"],value:!1}),o({fields:P,value:!0})}else["Sitios Fijos","Indoors"].includes(_)?(o({fields:["formato_salida"],value:!0}),o({fields:["medio_especifico"],value:!1})):o({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!0})}catch(S){console.error("Error al aplicar reglas de habilitar y deshabilitar campos",S)}};return p.useEffect(()=>{(i||l)&&r&&(j(),v())},[i,l]),p.useEffect(()=>{(i||l)&&c&&L()},[i,c,l]),{savePlantilla:b,getTemplateWithTasks:x}}const Lr=()=>{const{watch:t,getValues:a}=je.useFormContext(),{templateFormData:s,isDuplicateTemplate:n,currentTemplateForEdit:r}=Se(),[i,o]=p.useState(!1),d=p.useRef(null),l=p.useRef(null),c=p.useRef(!1),u=t();return p.useEffect(()=>{if(!c.current&&n&&r){const h=setTimeout(()=>{d.current=a(),l.current={...s},c.current=!0,o(!1)},500);return()=>clearTimeout(h)}},[n,r,a,s]),p.useEffect(()=>{if(d.current&&l.current&&c.current){const h=a(),w=s,m=JSON.stringify(h)!==JSON.stringify(d.current),g=JSON.stringify(w)!==JSON.stringify(l.current);o(m||g)}},[u,s,a]),{hasChanges:i,resetChanges:()=>{d.current=null,l.current=null,c.current=!1,o(!1)}}},Rr=({onReset:t})=>{const{hasChanges:a,resetChanges:s}=Lr(),{setHasFormChanges:n}=Se();return p.useEffect(()=>{n(a)},[a,n]),p.useEffect(()=>{t(s)},[t,s]),null},zr=({isOpen:t,onClose:a})=>{const{step:s,nextStep:n,prevStep:r,onStepChange:i}=kr({limit:3}),o=Ve(Y=>Y.reset),{templateFields:d,resetTemplateFormData:l}=_t(),{clave:c,resetClave:u,resetDisabledFields:f,isEditTemplate:h,setIsEditTemplate:w,refetch:m,isDuplicateTemplate:g,hasFormChanges:x,setIsDuplicateTemplate:b}=Se(),{openTemplate:j}=Ae(),[v,L]=p.useState(!1),[S,k]=p.useState(""),[N,_]=p.useState(!1),P=p.useRef(null),F=Y=>{P.current=Y},y=Mr(d),X=s===1,B=s===3,I=X?"Cancelar":"Atrás";p.useEffect(()=>{t&&o()},[t,o]);const O=je.useForm({mode:"onChange",defaultValues:y}),{trigger:H,reset:W,clearErrors:K,getValues:te}=O,{savePlantilla:ae}=qr(te,W),Z=async()=>{if(await H()){if(s===3){if(!x&&g){k("Ya existe un proceso con éstos parámetros. Modifica al menos uno para poder duplicarlo."),_(!0);return}try{L(!0);const U=await ae();if(U.success){const q=U.data;if(R(),T(),_(!1),!h)try{await j({template:q,statusTemplate:ve.NEW})}catch(G){console.warn("La plantilla se creó exitosamente pero hubo un problema al abrirla:",G)}m()}else{const{error:q}=U;k(q),_(!0)}}catch(U){console.error("Error inesperado al guardar la plantilla:",U);return}finally{L(!1)}}n()}},se=()=>{k(""),_(!1)},T=()=>{K(),W(),l(),f(),u(),se(),h&&w(!1),g&&b(!1),P.current&&P.current()},R=()=>{T(),a()};return v?e.jsx(Ye,{isLoading:v}):e.jsxs(je.FormProvider,{...O,children:[e.jsx(Rr,{onReset:F}),e.jsx(M.Modal,{isOpen:t,closeAtCancel:!1,onSuccess:Z,cancelButtonText:I,successButtonText:B?h?"Guardar":"Crear":"Continuar",onCancel:X?R:r,onClose:R,size:"sm",icon:"PlantillaOutlined",title:h?"Editar flujo de trabajo":"Nuevo flujo de trabajo",children:e.jsxs(M.Modal.Body,{children:[e.jsx("div",{className:"tw-flex tw-w-full tw-overflow-x-auto tw-pb-16 tw-pt-12",children:e.jsx("div",{className:"tw-flex tw-w-full",style:{justifyContent:"center",minWidth:"fit-content"},children:e.jsx(M.Stepper,{currentStep:s-1,onStepChange:Y=>i(Y+1),steps:[{title:"Paso 1",description:"INFORMACIÓN"},{title:"Paso 2",description:"DETALLES"},{title:"Paso 3",description:"PRODUCCIÓN"}]})})}),e.jsx("div",{className:"tw-flex tw-w-full tw-justify-center",children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-gap-0",children:[e.jsx("div",{className:"tw-bg-[#F0F0F0] tw-rounded-[100px] tw-p-2",style:{width:"fit-content",minWidth:"fit-content"},children:e.jsx("div",{className:"tw-font-sans tw-font-bold tw-py-1 tw-p-[90px]",children:c})}),e.jsx("div",{className:"ui-bg-blue-500 tw-text-white tw-px-3 tw-py-1.5 tw-font-medium tw--mt-4",style:{borderRadius:"100px",fontSize:"10px"},children:"CLAVE"})]})}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-y-4 tw-p-16",children:[N&&e.jsx(M.Alert,{open:!0,variant:"outlined",color:"red",message:S,className:"tw-mb-6",onClose:se}),e.jsx(Pr,{step:s})]})]})})]})},$r=({isOpen:t,onClose:a,replaceTemplate:s})=>e.jsx(e.Fragment,{children:e.jsx(M.Modal,{isOpen:t,closeAtCancel:!1,cancelButtonText:"Cancelar",successButtonText:"Abrir",onCancel:a,onClose:a,onSuccess:s,size:"sm",icon:"ExclamationTriangleOutlined",title:"Límite de flujos de trabajo",children:e.jsx(M.Modal.Body,{children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full ui-p-4",children:[e.jsx("div",{className:"tw-flex tw-justify-center tw-w-full",style:{minWidth:"fit-content"},children:e.jsx("div",{className:"tw-flex tw-justify-center tw-items-center tw-gap-[10px] tw-rounded-full tw-p-[35px]",style:{backgroundColor:"#EBEEF9"},children:e.jsx(M.Icon,{name:"ExclamationTriangleOutlined",size:"6xl",color:"blue"})})}),e.jsx("div",{className:"tw-text-center tw-mt-6",children:e.jsx("h2",{className:"tw-text-[24px] tw-font-bold tw-font-['Open_Sans'] tw-text-[#3658C1] tw-leading-tight",children:"¿Quieres continuar?"})}),e.jsx("div",{className:"tw-text-center tw-mt-2",children:e.jsx("div",{className:"tw-text-[12px] tw-font-normal tw-font-['Open_Sans'] tw-text-[#6B6B6B]",children:"Ya tienes 5 flujos de trabajo abiertos, si abres uno nuevo, se cerrará automáticamente el que lleva más tiempo sin usarse."})})]})})})}),Br=qe.create(t=>({cachedTemplate:null,canCreateTemplate:!1,setCachedTemplate:a=>t({cachedTemplate:a}),clearCachedTemplate:()=>t({cachedTemplate:null}),setCanCreateTemplate:a=>{const s=!(a<5);t({canCreateTemplate:s})}})),Hr=({isOpen:t,onClose:a,discardChanges:s,saveAndExit:n})=>e.jsx("div",{children:e.jsx(M.Modal,{isOpen:t,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Guardar y salir",onCancel:a,onClose:a,onSuccess:n,size:"sm",icon:"ExclamationTriangleOutlined",title:"Cambios sin guardar",children:e.jsx(M.Modal.Body,{children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full ui-p-4",children:[e.jsx("div",{className:"tw-flex tw-justify-center tw-w-full",style:{minWidth:"fit-content"},children:e.jsx("div",{className:"tw-flex tw-justify-center tw-items-center tw-gap-[10px] tw-rounded-full tw-p-[35px]",style:{backgroundColor:"#EBEEF9"},children:e.jsx(M.Icon,{name:"SaveOutlined",size:"6xl",color:"blue"})})}),e.jsx("div",{className:"tw-flex tw-flex-col tw-mx-6",children:e.jsx(M.Alert,{open:!0,variant:"outlined",color:"red",showCloseButton:!1,message:"Tienes cambios sin guardar en este flujo de trabajo",title:"No has guardado",className:"tw-mt-8"})}),e.jsx("div",{className:"tw-text-center tw-mt-5",children:e.jsx("h2",{className:"tw-text-[24px] tw-font-bold tw-font-['Open_Sans'] tw-text-[#3658C1]",children:"¿Qué deseas hacer antes de salir?"})}),e.jsx("div",{className:"tw-text-center tw-mt-1",children:e.jsx("div",{className:"tw-text-[12px] tw-font-normal tw-font-['Open_Sans'] tw-text-[#6B6B6B]",children:"Si sales ahora sin guardar se perderán los cambios actuales."})}),e.jsx("div",{className:"tw-flex tw-justify-center tw-mt-4",children:e.jsx(M.Button,{variant:"outlined",color:"white",onClick:()=>{s(),a()},children:"Descartar cambios"})})]})})})}),Ra=({isOpen:t,onClose:a,publishTemplate:s})=>e.jsx(M.Modal,{isOpen:t,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Confirmar",onCancel:a,onClose:a,onSuccess:s,size:"sm",icon:"ArrowUpOutlined",title:"Publicar",children:e.jsx(M.Modal.Body,{children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full tw-p-8",children:[e.jsx("div",{className:"tw-flex tw-justify-center tw-w-full",style:{minWidth:"fit-content"},children:e.jsx("div",{className:"tw-flex tw-justify-center tw-items-center tw-gap-[10px] tw-rounded-full tw-p-[35px]",style:{backgroundColor:"#EBEEF9"},children:e.jsx(M.Icon,{name:"ArrowUpOutlined",size:"6xl",color:"blue"})})}),e.jsx("div",{className:"tw-text-center",children:e.jsx("h2",{className:"tw-text-[24px] tw-font-bold tw-font-['Open_Sans'] tw-text-[#3658C1] tw-leading-tight",children:"¿Estás seguro de que deseas publicar este proceso?"})}),e.jsx("div",{className:"tw-text-center",children:e.jsx("div",{className:"tw-text-[12px] tw-font-normal tw-font-['Open_Sans'] tw-text-[#6B6B6B]",children:"Al publicar este proceso, estará disponible para su uso en los flujos correspondientes. Asegúrate de que toda la información sea correcta antes de continuar."})})]})})}),Ur=()=>{const t="grid",a="create-edit",s=p.useRef(null),{isOpenModalLimit:n,setIsOpenModalLimit:r,setOpenModalCreateTemplate:i,openModalCreateTemplate:o,setOpenModalUnsavedChanges:d,openModalUnsavedChanges:l,openModalPublishTemplate:c,setOpenModalPublishTemplate:u}=Se(),{removeTemplateStates:f}=Xe(),{mode:h,setMode:w,setViewMode:m,getViewMode:g}=be(),{setCanCreateTemplate:x,canCreateTemplate:b}=Br(),j=h===t,{screens:v,get:L,delete:S,activeTemplate:k,activateTemplate:N,reorderingTemplates:_,replaceTemplate:P,saveTemplateChanges:F,publishTemplate:y,loadingPublishTemplate:X,loadingSaveChanges:B}=Ae(),I=178,[O,H]=p.useState([]),[W,K]=p.useState([]),[te,ae]=p.useState(null),[Z,se]=p.useState(!1),T=k!=null&&k.id?g(k.id):"readonly";p.useEffect(()=>{const $=()=>{if(!s.current)return;const ne=s.current.offsetWidth;let oe=0;const ie=[],ce=[],ue=10,le=s.current.querySelector("button:not([data-screen])"),pe=s.current.querySelector(".tw-mx-1");let xe=0;le&&(xe+=le.getBoundingClientRect().width),pe&&v.length>0&&(xe+=pe.getBoundingClientRect().width,xe+=ue);const fe=(he,Oe)=>{const Qe=Oe?54:0,at=(he==null?void 0:he.length)*8;return Math.max(80,at+40+Qe)},Me=ne-I-xe;v.forEach((he,Oe)=>{const Ne=!!(he.isNew||he.badgeLabel),Ce=fe(he.clave,Ne),Ie=Oe>0?ue:0,Qe=Ce+Ie;oe+Qe<=Me?(ie.push(he),oe+=Qe):ce.push(he)}),H(ie),K(ce)},J=()=>{const ne=v.length;x(ne)};return v.length>0&&($(),J(),window.addEventListener("resize",$)),()=>{window.removeEventListener("resize",$)}},[v,h]);const R=$=>$.estatus===ve.DIRTY||$.estatus===ve.NEW,Y=async $=>{R($)?(ae($.id),d(!0)):await S($.id)},U=()=>u(!0),q=async()=>{await S(te),await f(te)},G=async()=>{await F(!1)},D=async()=>{await F()},E=()=>{var J,ne;const $=(ne=(J=k==null?void 0:k.graph_layout)==null?void 0:J.snapshot)==null?void 0:ne.nodes.length;se(()=>$-1>=1)};p.useEffect(()=>{E()},[k,T]);const z=()=>!((k==null?void 0:k.estatus)==ve.IDLE&&Z&&k.estatusFromStrapi!==Ee.PUBLISHED),A=()=>{var J;const{nodes:$}=(J=k==null?void 0:k.graph_layout)==null?void 0:J.snapshot;return $==null?void 0:$.some(ne=>ne.type!=="start"&&(ne==null?void 0:ne.data.tarea_padre)===null&&(ne==null?void 0:ne.data.id_t_requerida)===null)},C=()=>(k==null?void 0:k.estatus)===ve.IDLE||A()?!0:!Z,V=async()=>{await y(k.id)};return B||X?e.jsx(Ye,{isLoading:B||X}):e.jsxs("div",{className:"tw-flex tw-gap-2.5 tw-justify-between tw-items-center tw-flex-wrap",children:[e.jsx(zr,{isOpen:o,onClose:()=>i(!1)}),e.jsx($r,{isOpen:n,onClose:()=>r(!1),replaceTemplate:P}),e.jsx(Hr,{isOpen:l,onClose:()=>d(!1),discardChanges:q,saveAndExit:D}),e.jsx(Ra,{isOpen:c,onClose:()=>u(!1),publishTemplate:V}),e.jsxs("div",{className:"tw-flex tw-gap-2.5 tw-items-center tw-justify-between tw-flex-1 tw-flex-wrap tw-py-4",ref:s,children:[e.jsxs("div",{className:"tw-flex tw-gap-2.5 tw-items-center tw-justify-start tw-flex-1 tw-flex-wrap",children:[e.jsx(M.Button,{variant:j?"button":"outlined",color:j?"blue":"white",onClick:()=>w(t),children:"Listado de flujos"}),v.length>0&&e.jsx(M.Separator,{vertical:!0,className:"tw-mx-1"}),v.filter($=>O.some(J=>J.clave===$.clave)).map($=>{const J=(k==null?void 0:k.clave)===$.clave&&h===a;return e.jsxs(M.Button,{"data-screen":$.clave,variant:J?"button":"outlined",onClick:async()=>{await N($),w(a,$.id)},color:J?"blue":"white",slotLeft:"TaskOutlined",badgeColor:R($)?"orange":void 0,onClickRightSlot:()=>Y($),slotRight:"X2Outlined",children:[$.clave," ",$.status]},$.id)})]}),W.length>0&&e.jsx(M.Popup,{absolute:!0,slotRight:"AngleDownOutlined",label:`${W.length}+`,size:"lg",textColor:"blue",children:e.jsx("div",{className:"ui-py-2 ui-min-w-[250px]",children:e.jsx(M.List,{icon:"TaskOutlined",items:W.map($=>({id:$.id,label:$.clave})),onClick:async $=>{const J=await L($.id);await _(J.id),await N(J),w("create-edit",J.id)}})})})]}),h===a?e.jsx("div",{className:"tw-flex tw-gap-4 tw-items-center tw-justify-end tw-flex-wrap tw-py-4",children:k.estatusFromStrapi!==Ee.PUBLISHED&&e.jsxs(e.Fragment,{children:[e.jsx(M.Button,{color:"green",variant:"outlined",slotLeft:"ArrowUpOutlined",disabled:z(),onClick:U,children:"Publicar"}),T=="readonly"&&e.jsx(M.Button,{slotLeft:"EditOutlined",onClick:()=>(k==null?void 0:k.id)&&m(k.id,"edit"),children:"Editar"}),T==="edit"&&e.jsx(M.Button,{slotLeft:"SaveOutlined",onClick:G,disabled:C(),children:"Guardar"})]})}):e.jsx(M.Button,{disabled:b,tooltip:b?"Límite de 5 plantillas con cambios sin guardar. Guarda y cierra alguna para crear una nueva.":"",slotLeft:"Plus1Outlined",onClick:()=>{i(!0)},children:"Nuevo flujo"})]})},Wr=({isOpen:t,onClose:a,deleteTemplate:s})=>e.jsx(M.AlertDialog,{title:"Eliminar Borrador",iconContent:"BanOutlined",heading:"¿Estás seguro?",subheading:"Si eliminas este borrador, también se borrarán todas sus tareas y conexiones con otros borradores.",icon:"TrashOutlined",label:"Escribe 'Eliminar' para continuar",confirmationText:"Eliminar",isOpen:t,onClose:a,onConfirm:s,placeholder:""}),Gr=()=>{const{viewMode:t,setRefetch:a,openModalPublishTemplate:s,setOpenModalPublishTemplate:n,currentTemplateId:r,setOpenModalDeleteTemplate:i,openModalDeleteTemplate:o}=Se(),{publishTemplate:d,deleteTemplate:l}=Ae(),{debouncedSearch:c,filters:u}=qn("templates-container"),f=t==="list",[h,w]=p.useState(1),m=5,{data:g,isLoading:x,isFetching:b,refetch:j}=qa({page:h,pageSize:m,search:c,filters:u});p.useEffect(()=>{a(j)},[]),p.useEffect(()=>{w(1)},[u,c]);const{users:v}=Ke(),{getImageOBP:L}=we(),S=P=>{if(!(P!=null&&P.email))return"";const F=v==null?void 0:v[P==null?void 0:P.email];return F!=null&&F.image?L(F==null?void 0:F.image):""},k=p.useMemo(()=>{try{return!g||!v?[]:g.data.map(P=>{const F=S((P==null?void 0:P.updated_by)||(P==null?void 0:P.created_by));return{...P,updated_by:{...P.updated_by,image:F}}})}catch(P){return console.error("Error al mapear las plantillas:",P),[]}},[g,v]),N=async()=>{await d(r),await j()},_=async()=>{await l(r),await j()};return x||b?e.jsx(Ye,{isLoading:x||b}):e.jsxs("div",{className:"tw-flex tw-flex-col tw-justify-between tw-gap-y-4 tw-h-full",children:[e.jsx(Ra,{isOpen:s,onClose:()=>n(!1),publishTemplate:N}),e.jsx(Wr,{isOpen:o,onClose:()=>i(!1),deleteTemplate:_}),e.jsx("div",{className:`tw-grid tw-gap-4 ${f?"tw-grid-cols-1":"tw-grid-cols-1 md:tw-grid-cols-2 lg:tw-grid-cols-3"}`,children:k.map(P=>e.jsx(Pa,{fullWidth:f,template:P},P.id))}),e.jsx("div",{children:e.jsx(M.Pagination,{pageSize:m,pageCount:g==null?void 0:g.meta.pagination.pageCount,currentPage:h,onPageChange:P=>w(P)})})]})},za=()=>{var o,d,l,c;const t="grid",a="create-edit",{mode:s}=be(),n=s===t,r=s===a,i=Fe(u=>u.activeTemplate);return e.jsxs("div",{className:"tw-h-full tw-flex tw-flex-col tw-gap-y-6",children:[e.jsx(Ur,{}),n&&e.jsx(Gr,{}),r&&e.jsx(Sr,{initialNodes:((d=(o=i==null?void 0:i.graph_layout)==null?void 0:o.snapshot)==null?void 0:d.nodes)||[],initialEdges:((c=(l=i==null?void 0:i.graph_layout)==null?void 0:l.snapshot)==null?void 0:c.edges)||[]})]})},Kr=()=>({header:e.jsx(Gn,{}),body:e.jsx(za,{})}),Qr=({path:t,tab:a,setPath:s,project:n,setProject:r})=>{const i={"kanban-general":{kanban:e.jsx(As,{})},"teams-container":{teams:e.jsx(Sn,{})},"lista-campanias":{lista:e.jsx(as,{setPath:s,setProject:r}),gantt:e.jsx("div",{children:"gantt-campanias"})},"kanban-campania":{kanban:e.jsx(Es,{}),lista:e.jsx(zs,{}),gantt:e.jsx("div",{children:"kanban-campania-gantt"})},"templates-container":{templates:e.jsx(za,{})}};return t==="kanban-campania"?e.jsx(Ja,{project:n==null?void 0:n.id,children:i[t][a]}):i[t][a]},Vr=({label:t,active:a,onClick:s,disabled:n})=>n?e.jsx(ee.Tooltip,{dispatch:e.jsx("button",{className:"tw-cursor-help tw-text-xl tw-font-semibold tw-text-texts-placeholder",children:t}),children:e.jsx("div",{className:"tw-border-border-card tw-flex tw-items-center tw-justify-center tw-rounded-lg tw-border tw-bg-bg-card tw-px-3 tw-py-2",children:e.jsx("p",{className:"tw-text-lg tw-font-semibold tw-text-texts-placeholder",children:"Espéralo muy pronto..."})})}):e.jsx("button",{disabled:n,onClick:s,className:`${a?"tw-border-b-2 tw-border-texts-enfasis tw-text-blue-600 tw-text-texts-enfasis":""} tw-text-xl tw-font-semibold ${n?"tw-cursor-not-allowed tw-text-lg tw-text-texts-placeholder":"tw-text-texts-subtext"}`,children:t}),Xr=({tabs:t,renderItem:a,initialTab:s})=>{const[n,r]=p.useState(s??t[0].toLowerCase());p.useEffect(()=>{s&&r(s)},[s]);const i=o=>{r(o),a(o)};return e.jsx("div",{className:"tw-flex",children:t.map((o,d)=>e.jsx("div",{className:`${d===0?"tw-border-l-2":""} tw-border-r-2 tw-border-gray-200 tw-px-m`,children:e.jsx(Vr,{onClick:()=>i(o.toLowerCase()),label:o,active:o.toLowerCase()===n,disabled:["gantt"].includes(o.toLowerCase())},d)}))})};function Yr(){const{toast:t}=Ge();return t.message?e.jsx("div",{className:`tw-bg-black tw-fixed tw-right-10 tw-top-[10%] tw-z-[200] tw-h-[30px] tw-w-[300px] tw-rounded-md tw-text-lg tw-shadow-md ${t.type==="success"?"tw-bg-success-medium":"tw-bg-danger-medium"} tw-flex tw-items-center`,children:e.jsxs("div",{className:"relative tw-flex tw-h-full tw-w-full tw-items-center",children:[e.jsx("div",{className:`tw-h-full tw-w-[5px] ${t.type==="success"?"tw-bg-success-dark":"tw-bg-danger-regular"} tw-absolute tw-left-0 tw-rounded-full`}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2 tw-pl-4",children:[e.jsx(ee.Icons,{icon:t.type==="success"?"circle_checked":"circle_x",className:`tw-text-${t.type==="success"?"success-dark":"danger-dark"}`,color:t.type==="success"?"#368156":"#DC2626"}),e.jsx("p",{className:`${t.type==="success"?"tw-text-success-dark":"tw-text-danger-dark"} tw-text-xl tw-font-semibold`,children:t.message})]})]})}):null}const Jr=({path:t})=>{const a=()=>{const{selectPath:s,updateFilters:n,applyFilters:r,filters:i,fields:o}=ke(),[d,l]=p.useState("kanban"),[c,u]=p.useState(t),[f,h]=p.useState({id:1704,project:"Kanban de Campania"}),[w,m]=p.useState([{path:"lista-campanias",search:(i==null?void 0:i.search)??""},{path:"kanban-campania",search:(i==null?void 0:i.taskName)??""},{path:"kanban-general",search:(i==null?void 0:i.taskName)??""},{path:"teams-container",search:(i==null?void 0:i.taskName)??""},{path:"templates-container",search:(i==null?void 0:i.taskName)??""}]),[g,x]=p.useState(),b=p.useRef(null);p.useEffect(()=>{var _;l(c==="lista-campanias"?"lista":c==="kanban-campania"?"kanban":c==="teams-container"?"teams":c==="templates-container"?"templates":"kanban"),s(c),x(((_=w.find(P=>P.path===c))==null?void 0:_.search)??"")},[t,c]),p.useEffect(()=>{var _;((_=k())==null?void 0:_.trim())===""&&n({name:c==="lista-campanias"||c==="teams-container"||c==="templates-container"?"search":"taskName",value:null}),r()},[w]);const j=_=>({"kanban-general":"Kanban General","lista-campanias":"Campanias","teams-container":"Equipos","kanban-campania":`Kanban de ${f.project}`,"templates-container":"Flujos de trabajo"})[_],v=_=>{u(_)},L=["lista-campanias","kanban-campania"],S={"lista-campanias":["lista","gantt"],"kanban-campania":["kanban","lista","gantt"],"teams-container":["teams"],"templates-container":["templates"]},k=()=>{var _;return((_=w.find(P=>P.path===c))==null?void 0:_.search)??""},N=_=>{m(P=>P.map(F=>F.path===c?{...F,search:_}:F))};return p.useEffect(()=>{const _=setTimeout(()=>{n({name:c==="lista-campanias"||c==="teams-container"||c==="templates-container"?"search":"taskName",value:g==null?void 0:g.trim()}),N(g)},500);return()=>{clearTimeout(_)}},[g]),e.jsxs("div",{className:"tw-relative tw-flex tw-h-full tw-min-h-[100%] tw-w-full tw-flex-col tw-gap-m tw-overflow-hidden tw-rounded-lg tw-border tw-border-gray-200 tw-bg-bg-card tw-p-m",children:[e.jsxs("div",{className:"tw-flex tw-w-full tw-flex-wrap tw-items-end tw-justify-between tw-gap-l tw-border-b tw-border-gray-200 tw-px-l tw-pb-m",children:[e.jsxs("div",{className:"tw-flex tw-gap-xl",children:[c==="kanban-campania"&&e.jsx("button",{onClick:()=>v("lista-campanias"),className:"tw-text-primary hover:tw-text-primary/80 tw-flex tw-items-center tw-transition-colors",children:e.jsx(ee.Icons,{icon:"arrow_left",size:"xs",strokeWidth:5,color:"#4464C3",title:"Atrás"})}),e.jsx("h2",{className:"tw-font-sans tw-text-[1.6rem] tw-font-semibold tw-text-texts ",children:j(c)}),L.includes(c)&&e.jsx(Xr,{tabs:S[c],renderItem:_=>{l(_)},initialTab:d})]}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-s !tw-text-[16px]",children:[e.jsx(M.Input,{leftSlot:"SearchOutlined",onChange:_=>{x(_.target.value)},placeholder:"Buscar por tarea",value:g}),o.length>0&&e.jsx(ss,{filterChildren:b,children:e.jsx("div",{ref:b,className:"tw-h-fit tw-w-max tw-max-w-[400px] tw-rounded-lg tw-bg-bg-card tw-p-l tw-shadow-lg",children:e.jsx(is,{})})})]})]}),e.jsx("div",{className:"tw-h-full tw-max-h-[100%] tw-overflow-y-auto tw-scrollbar-none",children:e.jsx(Qr,{path:c,tab:d,setPath:v,project:f,setProject:h})})]})};return e.jsx(Ka,{children:e.jsxs(Za,{children:[e.jsx(a,{}),e.jsx(Yr,{})]})})},Zr=({path:t})=>["templates-container"].includes(t)?e.jsx(Wn,{startPath:t}):e.jsx(Jr,{path:t}),eo=()=>e.jsx("div",{className:"tw-relative tw-h-full tw-min-h-[100%] tw-w-full",children:e.jsx("div",{className:"tw-flex tw-h-full tw-items-center tw-justify-center",children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-text-2xl tw-font-bold",children:[e.jsx("div",{className:"tw-h-10 tw-w-10 tw-animate-pulse tw-rounded-full tw-bg-primary-regular"}),e.jsx("p",{className:"tw-text-l tw-text-texts-enfasis",children:"un momento..."}),e.jsx("p",{className:"tw-text-sm tw-text-texts-placeholder",children:"estamos buscando tu usuario"})]})})}),to=()=>e.jsx("div",{className:"tw-relative tw-h-full tw-min-h-[100%] tw-w-full",children:e.jsx("div",{className:"tw-flex tw-h-full tw-items-center tw-justify-center",children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-text-2xl tw-font-bold",children:[e.jsx("div",{className:"tw-h-10 tw-w-10 tw-animate-pulse tw-rounded-full tw-bg-primary-regular"}),e.jsx("p",{className:"tw-text-l tw-text-texts-enfasis",children:"No encontramos tu acceso"}),e.jsx("p",{className:"tw-text-sm tw-text-texts-placeholder",children:"por favor, contacta al administrador"})]})})}),ao=({path:t,user:a,url:s,mode:n})=>{const r=new de.QueryClient;if(!a)return e.jsx(eo,{});if(!a.accessToken)return e.jsx(to,{});let i={user:a,url:s,mode:n};return e.jsxs(Qn,{children:[e.jsx(M.Toaster,{}),e.jsx(Va,{...i,children:e.jsx(Qa,{...i,children:e.jsx("div",{className:"tw-relative tw-h-full tw-min-h-[100%] tw-w-full",children:e.jsxs(de.QueryClientProvider,{client:r,children:[e.jsx(Zr,{path:t})," "]})})})})]})};exports.AppTasks=ao;