@imj_media/tareas 1.5.46 → 1.5.48

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,18 +1,18 @@
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 pe=require("@tanstack/react-query");require("ui-ds/index.css");const ie=require("@imj_media/tasks-modules"),as=require("primereact/paginator"),w=require("react"),jt=require("axios"),Pe=require("qs"),tt=require("react-dom"),Ie=require("@fortawesome/pro-regular-svg-icons"),ve=require("@imj_media/ui"),je=require("@imj_media/imj-ui"),it=require("date-fns"),_t=require("date-fns/locale"),Ce=require("react-hook-form"),A=require("ui-ds"),re=require("@xyflow/react"),ze=require("zustand"),xt=require("moment"),ue=require("@fortawesome/pro-solid-svg-icons"),$e=require("@fortawesome/pro-duotone-svg-icons"),Me=require("@fortawesome/free-solid-svg-icons");require("@xyflow/react/dist/style.css");const ss=require("react-pick-color"),Z={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"}},qt=t=>{let a={};return Object.entries(t).forEach(([n,r])=>{if(n.includes(".")){let[s,i]=n.split(".");a[s]=a[s]||{},a[s][i]=r}else a[n]=r}),a},aa=w.createContext({}),rs=({children:t})=>{const[a,n]=w.useState({}),[r,s]=w.useState({}),[i,o]=w.useState([]),[d,l]=w.useState(""),c=({name:p,value:f})=>{function g(b){return!isNaN(b)&&b!==null&&b!==""?parseFloat(b):null}let h=g(f);s(b=>{let v={...b},I=i==null?void 0:i.find($=>$.label.toLowerCase().replace(/ /g,"_")===p);return I?v[I.id]=h??f:v[p]=h??f,v})};w.useEffect(()=>{let p=i.map(f=>f.id==="owner.config"?[f.id,"yo_y_mis_equipos"]:f.id==="dependency"?[f.id,"ambas"]:[f.id,null]);s(f=>{let g={search:f==null?void 0:f.search,taskName:f==null?void 0:f.taskName};return g={...g,...Object.fromEntries(p)},g})},[i]);const u=()=>{let p=i.map(f=>f.id==="owner.config"?[f.id,"yo_y_mis_equipos"]:f.id==="dependency"?[f.id,"ambas"]:[f.id,null]);s(Object.fromEntries(p)),n(qt(Object.fromEntries(p)))},m=p=>({1:"Muy facil",2:"Facil",3:"Media",4:"Dificil",5:"Muy dificil"})[p],x=()=>{let p=qt(r);p.difficulty&&(p.difficulty=m(p.difficulty)),n(p)};return e.jsx(aa.Provider,{value:{fields:i,filters:a,path:d,defineFields:o,updateFilters:c,cleanFilters:u,applyFilters:x,initialFilters:r,selectPath:l},children:t})},Le=()=>w.useContext(aa),sa=w.createContext({}),ns=({children:t,user:a,url:n,mode:r})=>{const s=r==="prod"?"https://services.imjmedia.com.mx":"https://devobp.imjmedia.com.mx",i=jt.create({baseURL:n,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:l=>Pe.stringify(l,{encodeValuesOnly:!0})}),o=()=>s,d=l=>l==="undefined"||l===void 0?"":`${s}${l}`;return e.jsx(sa.Provider,{value:{tasks_api:i,getOBPUrlApi:o,getImageOBP:d},children:t})},fe=()=>w.useContext(sa),ra=w.createContext({}),os=({children:t,user:a,url:n})=>{const r=jt.create({baseURL:n,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:s=>Pe.stringify(s,{encodeValuesOnly:!0})});return e.jsx(ra.Provider,{value:{user:a,tasks_api:r},children:t})},Ee=()=>w.useContext(ra),he=t=>{const a=i=>Object.prototype.toString.call(i)==="[object Object]",n=i=>i&&typeof i=="object"&&("source"in i||"target"in i)&&!("attributes"in i),r=i=>i&&typeof i=="object"&&"position"in i&&typeof i.position=="object"&&("x"in i.position||"y"in i.position)&&!("attributes"in i),s=i=>i.attributes?{id:i.id,...i.attributes}:i;if(Array.isArray(t))return t.map(i=>he(i));if(a(t)){if(n(t)){const i={};for(const o in t)i[o]=he(t[o]);return i}if(r(t)){const i={};for(const o in t)i[o]=he(t[o]);return i}Array.isArray(t.data)?t=[...t.data]:a(t.data)?t=s({...t.data}):t.data===null?t=null:t=s(t);for(const i in t)t[i]=he(t[i]);return t}return t},qe=({imageUrl:t="https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png",alt:a="avatar",size:n="s"})=>{const r={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]"}[n];return e.jsx("img",{src:t===""?"https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png":t,alt:a??"avatar",className:`${r} tw-bg-containers tw-rounded-full tw-border-2 tw-border-white`})},vt=t=>new Intl.DateTimeFormat("es-MX",{month:"long"}).format(t);function is(t){const a=["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],n=new Date(t).getDay();return a[n]}const Lt=t=>{let a=t||new Date,n=a.getDate(),r=vt(a.getMonth()).slice(0,3),s=a.getFullYear().toString().slice(-2),i=is(a).slice(0,3);return`${i.charAt(0).toUpperCase()+i.slice(1)} ${n} ${r.charAt(0).toUpperCase()+r.slice(1)} ${s}`},Nt=(t,a)=>({...t,image:t.image?`${a}${t.image}`:""}),Ze=t=>{var a,n;return t?(a=t.responsable)!=null&&a.nombre?t.responsable.nombre:(n=t.equipo)!=null&&n.nombre?t.equipo.nombre:null:null};class ls{static toCampaignTasks(a){var i,o,d,l,c,u,m,x,p,f,g,h,b,v,I;const n=Ze(a==null?void 0:a.id_t_requerida),r=Ze(a==null?void 0:a.tarea_padre);let s=[];return a!=null&&a.responsable&&s.push({id:a.responsable.id,name:a.responsable.nombre,image:(c=(l=(d=(o=(i=a.responsable)==null?void 0:i.userOBP)==null?void 0:o.imagen)==null?void 0:d.formats)==null?void 0:l.thumbnail)==null?void 0:c.url,role:((u=a.responsable.userOBP)==null?void 0:u.role)||{id:0,name:""}}),(m=a==null?void 0:a.equipo)!=null&&m.miembros&&a.equipo.miembros.forEach($=>{var R,U,P,C,y;s!=null&&s.find(H=>H.id===$.idUser.id)||$.idUser&&s.push({id:$.idUser.id,name:$.idUser.nombre,image:(C=(P=(U=(R=$==null?void 0:$.userOBP)==null?void 0:R.imagen)==null?void 0:U.formats)==null?void 0:P.thumbnail)==null?void 0:C.url,role:((y=$.userOBP)==null?void 0:y.role)||{id:0,name:""}})}),{paused:a==null?void 0:a.pausada,isPrincipalTask:(a==null?void 0:a.tarea_principal)??!1,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),users:s,repeatsToDo:(a==null?void 0:a.repeticiones)??null,repeats:(a==null?void 0:a.repeticiones_realizadas)??null,comments:((x=a==null?void 0:a.comentarios)==null?void 0:x.length)??null,willBePaused:a==null?void 0:a.es_pausable,nameProject:((p=a==null?void 0:a.proyecto)==null?void 0:p.nombre)??null,idProject:((f=a==null?void 0:a.proyecto)==null?void 0:f.id)??null,medioName:(a==null?void 0:a.nombre_medio)??null,statusRequiredTask:((g=a==null?void 0:a.id_t_requerida)==null?void 0:g.estatus)??null,nameRequiredTask:((h=a==null?void 0:a.id_t_requerida)==null?void 0:h.texto_corto)??null,nameRequiredTaskResponsible:n,name_father_required_task:((b=a==null?void 0:a.tarea_padre)==null?void 0:b.texto_corto)??null,name_father_required_task_responsible:r,responsible:((v=a==null?void 0:a.responsable)==null?void 0:v.id)??null,tasks:((I=a==null?void 0:a.tareas)==null?void 0:I.map($=>({id:$.id,name:$.texto_corto,status:$.estatus})))??null,atraso:(a==null?void 0:a.atraso)??null,categoria:(a==null?void 0:a.categoria)??null,...(a==null?void 0:a.cambio_arte)&&{cambio_arte:a==null?void 0:a.cambio_arte}}}}const cs=async({filters:t,tasks_api:a,project:n})=>{try{const r=await a.get("/api/listado_tareas_flujo",{params:{...t,project:{id:n},includeAllTasks:!0,populate:"*"}}),s=he(r.data.tareas),i=Array.isArray(s)?s:[s],o=new Set;if(i.forEach(d=>{var l;(l=d==null?void 0:d.id_t_requerida)!=null&&l.id&&o.add(d.id_t_requerida.id)}),o.size>0){const d=Array.from(o),l=Pe.stringify({filters:{id:{$in:d}},populate:{responsable:{fields:["id","nombre"]},equipo:{fields:["id","nombre"]}}},{encodeValuesOnly:!0});try{const c=await a.get(`/api/tareas?${l}`),u=he(c.data.data||c.data),m=Array.isArray(u)?u:[u],x=new Map(m.map(p=>[p.id,p]));i.forEach(p=>{var f;if((f=p==null?void 0:p.id_t_requerida)!=null&&f.id){const g=x.get(p.id_t_requerida.id);g&&(p.id_t_requerida={...p.id_t_requerida,responsable:g.responsable||null,equipo:g.equipo||null})}})}catch{}}return i.map(ls.toCampaignTasks)}catch(r){console.log(r)}},na=w.createContext({}),ds=({children:t,project:a})=>{var b;const[n,r]=w.useState([]),[s,i]=w.useState(!1),[o,d]=w.useState([]),{tasks_api:l}=fe(),{filters:c}=Le(),{user:u}=Ee(),[m,x]=w.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}});w.useEffect(()=>{var v;if(Object.keys(c).length>0){const I={...c,owner:{user:u.id,config:((v=c==null?void 0:c.owner)==null?void 0:v.config)??"yo_y_mis_equipos"},project:{id:a}};x(I)}},[c,u.id,a]);const p=pe.useQuery({queryKey:["tasksProject",m,a],queryFn:()=>{const v={...m,taskName:c==null?void 0:c.taskName,owner:{...m.owner,config:m.owner.config||"yo_y_mis_equipos"}};return cs({filters:v,project:a,tasks_api:l})},refetchOnWindowFocus:!1}),f=v=>{r(I=>[...I,v])},g=v=>{d(I=>I.includes(v)?I.filter($=>$!==v):[...I,v])},h=a??null;return e.jsx(na.Provider,{value:{tasksProject:p,selectedTasks:n,projectID:h,openTasks:o,selectTask:f,filtersToSend:m,openTask:g,isRefetching:s,project:a,filters:c,setIsRefetching:i},children:t})},Qe=()=>w.useContext(na),oa=w.createContext(null),us=({children:t})=>{const[a,n]=w.useState({message:"",type:"success"}),r=(s,i)=>{n({message:s,type:i}),setTimeout(()=>n({message:"",type:"success"}),3e3)};return e.jsx(oa.Provider,{value:{toast:a,showSuccess:s=>r(s,"success"),showError:s=>r(s,"error")},children:t})},Tt=()=>w.useContext(oa);class ia{static toAtrasoReasons(a){return{id:a.id,motivo_imj:a.motivo_imj,categoria:a.categoria??null}}}const ps=async({tasks_api:t})=>{try{const a=await t.get("/api/motivos",{params:{populate:{categoria:{fields:["id","nombre","tipo"]}},filters:{tipo:{$eq:"atraso"}}}});return he(a.data).map(ia.toAtrasoReasons)}catch(a){throw console.log("Error al obtener los motivos de atraso",a),`Error al obtener los motivos de atraso: ${a}`}},la=({enabled:t=!1}={})=>{const{tasks_api:a}=fe(),{user:n}=Ee(),r=pe.useQueryClient(),{showSuccess:s,showError:i}=Tt(),{filters:o,path:d}=Le(),{data:l,isLoading:c}=pe.useQuery({queryKey:["atraso_reasons"],queryFn:()=>ps({tasks_api:a}),staleTime:1e3*60*60*24,enabled:t}),u=async()=>{const $=await a.get("/api/motivos",{params:{filters:{tipo:{$eq:"atraso"}}}});return he($.data).map(ia.toAtrasoReasons)},m=async({taskId:$,motivoId:R,projectID:U})=>{try{return(await a.post("/api/atrasos",{data:{inicio:new Date,fin:null,motivo:R,proyecto:U,tarea:$,creada_por:n==null?void 0:n.id}})).data}catch(P){console.log("error",P)}},x=async $=>{try{return(await a.delete(`/api/atrasos/${$}`)).data}catch(R){console.log("error",R)}},p=async $=>{try{return(await a.put(`/api/atrasos/${$}`,{data:{fin:new Date}})).data}catch(R){console.log("error",R)}},f=async({taskId:$,projectID:R,motivo:U})=>{await b({taskId:$,motivoId:U,projectID:R})},g=async $=>{await v($)},h=async $=>{await I($)},{mutateAsync:b}=pe.useMutation({mutationFn:m,onSuccess:()=>{s("Atraso registrado correctamente"),d==="kanban-general"&&(r.invalidateQueries({queryKey:["to_do_tasks",o]}),r.invalidateQueries({queryKey:["working_tasks",o]})),d==="kanban-campania"&&r.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{i("Error al registrar el atraso")}}),{mutateAsync:v}=pe.useMutation({mutationFn:x,onSuccess:()=>{s("Atraso eliminado correctamente"),d==="kanban-general"&&(r.invalidateQueries({queryKey:["to_do_tasks"]}),r.invalidateQueries({queryKey:["working_tasks"]}),r.invalidateQueries({queryKey:["done_tasks"]})),d==="kanban-campania"&&r.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{i("Error al eliminar el atraso")}}),{mutateAsync:I}=pe.useMutation({mutationFn:p,onSuccess:()=>{s("Atraso finalizado correctamente")},onError:()=>{i("Error al finalizar el atraso")}});return{atrasoReasons:l,isLoading:c,createAtraso:f,getAtrasoReasons:u,deleteAtraso:g,finalizarAtraso:h}},Ue=()=>{const{tasks_api:t}=fe(),{user:a}=Ee(),{filters:n,path:r}=Le(),s=pe.useQueryClient(),{projectID:i}=Qe(),{showSuccess:o,showError:d}=Tt(),{finalizarAtraso:l}=la({enabled:!1}),c=async({id:F})=>(await t.put(`/api/tareas/${F}`,{data:{estatus:1,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,u=async({id:F})=>(await t.put(`/api/tareas/${F}`,{data:{estatus:0,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,m=async({id:F,idAtraso:D})=>{const M=await t.post("/api/terminarTarea",{id_task:F,ended_at:new Date().toISOString(),id_user:a==null?void 0:a.id});return await l(D),M.data},x=async({id:F,repeats:D})=>(await t.put(`/api/tareas/${F}`,{data:{repeticiones_realizadas:D,updated_by:a==null?void 0:a.id}})).data,p=async({id:F,motiveId:D})=>{try{const M=await t.post("/api/pausarTarea",{taskId:F,userId:a==null?void 0:a.id,motivoId:D});return o("Tarea pausada correctamente"),M.data}catch(M){d("Error al pausar la tarea: "+M)}},f=async({id:F})=>{try{const D=await t.post("/api/reanudarTarea",{taskId:F});return o("Tarea reanudada correctamente"),D.data}catch(D){d("Error al reanudar la tarea: "+D)}},g=async({id:F,idNewResponsible:D,typeOfSelect:M})=>{let L={updated_by:a==null?void 0:a.id};return M==="responsible"&&(L={...L,responsable:D}),M==="team"&&(L={...L,responsable:null,equipo:D}),(await t.put(`/api/tareas/${F}`,{data:L})).data},h=async({id:F,data:D,user:M})=>{try{return(await t.put(`/api/tareas/${F}`,{data:{...D,updated_by:M==null?void 0:M.id}})).data}catch(L){console.error("Error updating the element:",L)}},b=async({id:F})=>{await $({id:F})},v=async({id:F,data:D,user:M})=>{await I({id:F,data:D,user:M})},{mutateAsync:I}=pe.useMutation({mutationFn:h,onSuccess:()=>{o("Tarea actualizada correctamente");const F={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{r==="kanban-general"&&(s.invalidateQueries({queryKey:[F[r],n]}),s.invalidateQueries({queryKey:["done_tasks",n]}),s.invalidateQueries({queryKey:["working_tasks",n]})),r==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(D){console.error("Error invalidating queries:",D)}},onError:F=>{console.error("Failed to update the task.",F)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]})}}),{mutateAsync:$}=pe.useMutation({mutationFn:c,onSuccess:()=>{const F={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{r==="kanban-general"&&(s.invalidateQueries({queryKey:[F[r],n]}),s.invalidateQueries({queryKey:["working_tasks",n]})),r==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(D){console.error("Error updating the element:",D)}},onError:F=>{console.error("Failed to update the task.",F)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:R}=pe.useMutation({mutationFn:m,onSuccess:()=>{const F={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s.setQueryData([F[r],n],D=>{console.log({oldData:D})}),r==="kanban-general"&&(s.invalidateQueries({queryKey:[F[r],n]}),s.invalidateQueries({queryKey:["done_tasks",n]}),s.invalidateQueries({queryKey:["working_tasks",n]})),r==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(D){console.error("Error invalidating queries:",D)}},onError:F=>{console.error("Failed to update the task.",F)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["done_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:U}=pe.useMutation({mutationFn:x,onSuccess:()=>{const F={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{r==="kanban-general"&&(s.invalidateQueries({queryKey:[F[r],n]}),s.invalidateQueries({queryKey:["done_tasks",n]}),s.invalidateQueries({queryKey:["working_tasks",n]})),r==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(D){console.error("Error invalidating queries:",D)}},onError:F=>{console.error("Failed to update the task.",F)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["done_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:P}=pe.useMutation({mutationFn:g,onSuccess:()=>{const F={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{r==="kanban-general"&&(s.invalidateQueries({queryKey:[F[r],n]}),s.invalidateQueries({queryKey:["done_tasks",n]}),s.invalidateQueries({queryKey:["working_tasks",n]})),r==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(D){console.error("Error invalidating queries:",D)}},onError:F=>{console.error("Failed to reassign the task.",F)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["done_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:C}=pe.useMutation({mutationFn:u,onSuccess:()=>{const F={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{r==="kanban-general"&&(s.invalidateQueries({queryKey:[F[r],n]}),s.invalidateQueries({queryKey:["working_tasks",n]})),r==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(D){console.error("Error updating the element:",D)}},onError:F=>{console.error("Failed to update the task.",F)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}});return{updatingTask:v,updateTask:h,startTask:async({id:F})=>{await C({id:F})},startWorking:b,completeTask:async({id:F,idAtraso:D})=>{await R({id:F,idAtraso:D})},reasignResponsible:async({id:F,idNewResponsible:D,typeOfSelect:M})=>{await P({id:F,idNewResponsible:D,typeOfSelect:M})},updateUnitys:async({repeats:F,id:D})=>{await U({repeats:F,id:D})},pauseTask:async({id:F,motiveId:D})=>{console.log({taksId:F,motivoId:D,user:a==null?void 0:a.id})},postPauseTask:p,postReanudeTask:f}},ws=({id:t,idAtraso:a})=>{const[n,r]=w.useState(!1),{completeTask:s}=Ue();return{checked:n,checkTask:()=>{r(!n),s({id:t,idAtraso:a})}}},Ot={checked:"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",unchecked:"tw-transition-colors"},ms="tw-mx-[2px] tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-success-regular tw-transition-all",Rt="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",ca=({id:t,nameRequiredTask:a,statusRequiredTask:n,status:r,idAtraso:s,nameRequiredTaskResponsible:i,name_father_required_task:o,name_father_required_task_responsible:d,repeatsAreCompleted:l=!1})=>{const c=w.useId(),u=`checkbox-${t}-${c}`,{checked:m,checkTask:x}=ws({id:t,idAtraso:s}),f=!!(a&&a!==""&&n===2)||!a,g=!!o,h=r===1&&l,b=()=>e.jsx("label",{htmlFor:u,className:m?Ot.checked:Ot.unchecked,children:e.jsx(ie.Icons,{icon:m?"check_outline":"circle_checked",color:m?"white":Z.texts.placeholder,strokeWidth:4,size:m?"xs":"s"})});return r===2?e.jsx("div",{className:ms,children:e.jsx(ie.Icons,{icon:"circle_checked",color:"white",strokeWidth:4,size:"xs"})}):g?e.jsxs(e.Fragment,{children:[e.jsx(ie.Tooltip,{dispatch:e.jsx("label",{className:"tw-cursor-help","aria-hidden":!0,children:e.jsx(ie.Icons,{icon:"info_circle",color:Z.warning.regular,strokeWidth:4})}),children:e.jsxs("div",{className:Rt,children:[e.jsx("p",{className:"tw-w-[210px] tw-font-bold",children:"Tarea padre:"}),e.jsx("p",{children:o}),d&&e.jsxs("p",{className:"tw-font-bold",children:["Responsable: ",e.jsx("span",{className:"tw-font-normal",children:d})]}),e.jsx("span",{className:"tw-font-normal tw-italic tw-text-[#919191]",children:"Esta tarea completa automáticamente la tarea padre."})]})}),h&&b(),e.jsx("input",{id:u,checked:m,onChange:x,type:"checkbox",className:"tw-hidden","aria-hidden":!0})]}):f?e.jsxs(e.Fragment,{children:[r===1&&b(),e.jsx("input",{id:u,checked:m,onChange:x,type:"checkbox",className:"tw-hidden","aria-hidden":!0})]}):e.jsxs(e.Fragment,{children:[e.jsx(ie.Tooltip,{dispatch:e.jsx("label",{className:"tw-cursor-help","aria-hidden":!0,children:e.jsx(ie.Icons,{icon:"info_circle",color:Z.warning.regular,strokeWidth:4})}),children:e.jsxs("div",{className:Rt,children:[e.jsx("p",{className:"tw-w-[210px] tw-font-bold",children:"Requiere completar su tarea:"}),e.jsx("p",{children:a}),i&&e.jsxs("p",{className:"tw-font-bold",children:["Responsable: ",e.jsx("span",{className:"tw-font-normal",children:i})]})]})}),e.jsx("input",{id:u,checked:m,onChange:x,type:"checkbox",className:"tw-hidden","aria-hidden":!0})]})},da=()=>{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,{})})]})]})},Bt=[{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"}]}],$t=[{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:[]}],fs=({setPath:t,setProject:a})=>{const[n,r]=w.useState([]),[s,i]=w.useState(!0),[o,d]=w.useState(0),[l,c]=w.useState(10),[u,m]=w.useState(0),[x,p]=w.useState(),[f,g]=w.useState(0),{filters:h,defineFields:b}=Le(),{tasks_api:v,getImageOBP:I}=fe(),{user:$}=Ee(),R=async(j,F)=>{var D,M,L,W,ae;try{i(!0);const X={filters:{search:(h==null?void 0:h.search)??"",responsable:{idUser:$.id,responsableType:(D=h==null?void 0:h.responsable)==null?void 0:D.responsableType},ejecutivo:(h==null?void 0:h.ejecutivo)??""}},oe=await v.get("/api/listado_campanias",{params:{pagination:{page:j,pageSize:F},orderBy:x,...X}}),te=he(oe==null?void 0:oe.data);r(te),m((L=(M=oe==null?void 0:oe.data)==null?void 0:M.meta)==null?void 0:L.total),g((ae=(W=oe==null?void 0:oe.data)==null?void 0:W.meta)==null?void 0:ae.pageCount)}catch(X){console.error("Error fetching data en Lista Campaña:",X)}finally{i(!1)}},U=async()=>{try{const j=await v.get("/api/obtener-comerciales");return[...$t].map(D=>(D.id==="ejecutivo"&&(D.options=j.data.map(M=>({id:M.nombre,name:M.nombre}))),D))}catch(j){return console.error("Error fetching salesman data:",j),[...$t]}};w.useEffect(()=>{(async()=>{const F=await U();b(F)})()},[]),w.useEffect(()=>{const j=Math.floor(o/l)+1;R(j,l)},[o,l,x,h]);const P=j=>{d(j.first),c(j.rows)},C=[{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}],y=j=>{const F=parseInt(j.target.value,10);c(F),P({first:0,rows:F})},H=j=>{p(F=>F===j?`${j}:desc`:j)},G=j=>x===j?"↑↓":x===`${j}:desc`?"↓↑":"↑↓",J=j=>({padding:"auto",backgroundColor:Z.silver.silver_light,borderRadius:"50%",cursor:j?"not-allowed":"pointer",transition:"all 0.2s ease",marginRight:"4px",border:`1px solid ${j?Z.gray.gray_regular:Z.gray.gray_dark}`,color:j?Z.gray.gray_regular:Z.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:Z.bg.content,display:"flex",flexDirection:"column",height:"100%"},children:s?e.jsx("div",{className:"tw-w-full",children:e.jsx(da,{})}):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:Z.gray.gray_regular},children:[e.jsx("th",{onClick:()=>H("nombre"),style:{color:Z.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:Z.gray.gray_dark},children:G("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:()=>H("inicia"),className:"tw-whitespace-nowrap",style:{color:Z.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:Z.gray.gray_dark},children:G("inicia")}),e.jsx(ie.Icons,{icon:"calendar",size:"xs",strokeWidth:5,color:Z.gray.gray_dark,className:"tw-mt-1 tw-h-[15px] tw-w-[15px]"}),e.jsx("span",{style:{color:Z.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:()=>H("termina"),className:"tw-whitespace-nowrap",style:{color:Z.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:G("termina")}),e.jsx(ie.Icons,{icon:"calendar",size:"xs",strokeWidth:5,color:Z.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:Z.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:Z.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:Z.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:n==null?void 0:n.map((j,F)=>{var D,M,L,W,ae,X,oe,te,q,z,V,E,S,O,N,_,B,k;return e.jsxs("tr",{style:{background:F%2===0?"#F5F5F5":"#FAFAFA",transition:"background-color 0.2s ease"},className:"tw-cursor-pointer ",onClick:()=>{a({id:j==null?void 0:j.id,project:j==null?void 0:j.nombre}),t("kanban-campania")},onMouseEnter:T=>{T.currentTarget.style.backgroundColor="#E1EBF9"},onMouseLeave:T=>{T.currentTarget.style.backgroundColor=F%2===0?"#F5F5F5":"#FAFAFA"},children:[e.jsx("td",{className:"tw-text-s",children:(D=j==null?void 0:j.campania)==null?void 0:D.nombre}),e.jsx("td",{className:"tw-text-s",children:(M=j==null?void 0:j.campania)==null?void 0:M.inicia}),e.jsx("td",{className:"tw-text-s",children:(L=j==null?void 0:j.campania)==null?void 0:L.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:[j==null?void 0:j.progreso,"%"]}),e.jsx("div",{style:{position:"relative",height:"10px",flex:1,backgroundColor:Z.gray.gray_dark,borderRadius:"10px",overflow:"hidden",maxWidth:"140px"},children:e.jsx("div",{style:{position:"absolute",top:0,left:0,height:"100%",width:`${j.progreso}%`,backgroundColor:j.progreso===100?Z.progressbar.green_regular:j.progreso>50?Z.progressbar.blue_regular:j.progreso>0?Z.progressbar.orange_regular:Z.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:[(j==null?void 0:j.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:Z.gray.gray_dark,borderRadius:"10px",overflow:"hidden",maxWidth:"180px"},children:e.jsx("div",{style:{position:"absolute",top:0,left:0,height:"100%",width:`${(j==null?void 0:j.progresoVenta)??0}%`,backgroundColor:(j==null?void 0:j.progresoVenta)===100?Z.progressbar.green_regular:(j==null?void 0:j.progresoVenta)>50?Z.progressbar.blue_regular:(j==null?void 0:j.progresoVenta)>0?Z.progressbar.orange_regular:Z.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(qe,{imageUrl:(te=(oe=(X=(ae=(W=j==null?void 0:j.campania)==null?void 0:W.responsable)==null?void 0:ae.imagen)==null?void 0:X.formats)==null?void 0:oe.thumbnail)!=null&&te.url?I((S=(E=(V=(z=(q=j==null?void 0:j.campania)==null?void 0:q.responsable)==null?void 0:z.imagen)==null?void 0:V.formats)==null?void 0:E.thumbnail)==null?void 0:S.url):"",alt:(_=(N=(O=j==null?void 0:j.campania)==null?void 0:O.responsable)==null?void 0:N.nombre)==null?void 0:_.charAt(0)}),e.jsx("span",{className:"tw-text-s tw-ml-4",children:(k=(B=j==null?void 0:j.campania)==null?void 0:B.responsable)==null?void 0:k.nombre})]})})]},F)})})]})}),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:Z.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:[f," elementos de ",u]}),e.jsx(as.Paginator,{first:o,rows:l,totalRecords:u,rowsPerPageOptions:[5,10,20,50],onPageChange:P,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:j=>e.jsx("button",{onClick:j.onClick,disabled:j.disabled,style:J(j.disabled),className:"tw-text-s tw-flex tw-items-center tw-justify-center",children:"<<"}),PrevPageLink:j=>e.jsx("button",{onClick:j.onClick,disabled:j.disabled,style:J(j.disabled),className:"tw-text-s",children:"<"}),NextPageLink:j=>e.jsx("button",{onClick:j.onClick,disabled:j.disabled,style:J(j.disabled),className:"tw-text-s",children:">"}),LastPageLink:j=>e.jsx("button",{onClick:j.onClick,disabled:j.disabled,style:J(j.disabled),className:"tw-text-s",children:">>"}),PageLinks:j=>e.jsx("span",{style:{display:"inline-flex",gap:"1px"},children:e.jsx("button",{onClick:F=>j.onClick(F),className:`tw-text-s tw-flex tw-items-center tw-justify-center ${j.className.includes("p-highlight")?"highlighted":""}`,style:{...J(!1),backgroundColor:j.className.includes("p-highlight")?"#E1EBF9":Z.silver.silver_light,color:Z.black.black_dark},children:j.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 ${Z.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:j=>y(j),children:C.map(j=>e.jsx("option",{value:j.value,className:"tw-text-s",style:{color:Z.gray.gray_dark},children:j.label},j.value))})]})]})]})})})},Ct=()=>{const[t,a]=w.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)}}},xs=({children:t,filterChildren:a})=>{const{position:n,setElementPosition:r}=Ct(),s=w.useRef(null),i=({children:o})=>{const[d,l]=w.useState();return w.useEffect(()=>{var c,u;a.current&&l(((n==null?void 0:n.x)??0)-(((u=(c=a.current)==null?void 0:c.getBoundingClientRect())==null?void 0:u.width)??0))},[a==null?void 0:a.current,n==null?void 0:n.x]),n&&tt.createPortal(e.jsx("div",{className:`tw-absolute tw-h-fit tw-w-fit ${d?"tw-block":"tw-hidden"}`,style:{top:`${n==null?void 0:n.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:s,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(ie.Icons,{icon:"filter",size:"xs",strokeWidth:5,color:Z.primary.regular}),"Filtrar"]}),e.jsx("button",{className:"tw-hidden",id:"filter-button",onClick:()=>{r(s)}}),e.jsx(i,{children:t})]})};function gs(t,a=300,n={leading:!1,trailing:!0}){let r,s=null;return function(...i){const o=Date.now(),d=n.leading&&!s;clearTimeout(r),d&&t(...i),s=o,r=setTimeout(()=>{n.trailing&&(!n.leading||o-s>=a)&&(t(...i),s=null)},a)}}const hs="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",ua=({options:t,onselect:a})=>{const[n,r]=w.useState(null),s=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),i=[...t].filter(o=>o.name.toLowerCase().includes((n==null?void 0:n.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:s,value:n??"",onChange:o=>r(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:hs,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(qe,{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})]}))})]})},bs=({error:t,options:a,onSelect:n,initialValue:r})=>{const[s,i]=w.useState(!1),[o,d]=w.useState((r==null?void 0:r.name)??null);return w.useEffect(()=>{r&&d(r)},[r]),e.jsxs("div",{className:"tw-relative",children:[e.jsxs("div",{onBlur:()=>i(!1),onClick:()=>i(!s),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(ie.Icons,{icon:"angle_down_outline",color:t?Z.danger.regular:Z.texts.placeholder})]}),s&&e.jsx("div",{className:"absolute tw-z-[10] tw-w-full tw-rounded-lg tw-shadow-md",children:e.jsx(ua,{onselect:l=>{d(l),i(!1),n&&n(l)},options:a})})]})},ys=()=>{const{fields:t,updateFilters:a,cleanFilters:n,applyFilters:r,initialFilters:s}=Le();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:n,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(bs,{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===(s==null?void 0:s[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:s==null?void 0:s[i==null?void 0:i.id],name:i.label.toLowerCase().replace(/ /g,"_"),onChange:gs(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:r,children:"Filtrar"})]})},js=()=>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"})]})]}),zt=({trigger:t,user:a,showUser:n=!0})=>e.jsx(ie.Tooltip,{dispatch:t,children:n&&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(qe,{imageUrl:a.image??"",alt:a.name}),e.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:a.name})]})});class _s{static toDomain(a){return{id:a.id,name:a.nombre,color:a.color}}}const vs=()=>{const{tasks_api:t}=fe();return{teams:pe.useQuery({queryKey:["teams","all"],queryFn:async()=>{const n=await t.get("/api/equipos");return he(n.data).map(_s.toDomain)},refetchOnWindowFocus:!1})}};class Et{static toUsers(a){var n,r,s;return{id:a.id,name:a.nombre,image:(s=(r=(n=a.imagen)==null?void 0:n.formats)==null?void 0:r.thumbnail)==null?void 0:s.url,tasksUser:{email:a.tasksUser.email,id:a.tasksUser.id,nombre:a.tasksUser.nombre},role:a.role}}static toUsersV2(a){var n,r,s;return{id:a.id,name:a.nombre,image:(s=(r=(n=a.imagen)==null?void 0:n.formats)==null?void 0:r.thumbnail)==null?void 0:s.url,role:a.role}}static toUsersWithIndex(a){var r,s,i;const n={};for(const o of a)n[o.email]={...o,image:(i=(s=(r=o.imagen)==null?void 0:r.formats)==null?void 0:s.thumbnail)==null?void 0:i.url};return n}}const Ns=async({tasks_api:t})=>{try{const a=await t.get("/api/getAllOBPusersMembers");return he(a.data).map(Et.toUsers)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Ts=async({tasks_api:t})=>{try{const a={filters:{$and:[{role:{name:{$in:["Project Manager","Operation Manager","Administrador"]}}},{blocked:{$eq:!1}}]}},n=Pe.stringify(a,{encodeValuesOnly:!0}),r=await t.get(`/api/users?${n}`),i=he(r.data).map(l=>l.email),o=await t.get(`/api/getAllOBPusers?filters[name][$in]=${i}`);return he(o.data).map(Et.toUsersV2)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Cs=async({users:t})=>{try{const a=he(t);return Et.toUsersWithIndex(a)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Es=()=>{const{tasks_api:t}=fe();return{users:pe.useQuery({queryKey:["users"],queryFn:()=>Ns({tasks_api:t}),staleTime:1e3*60*60*24})}},Ss=()=>{const{tasks_api:t}=fe();return{users:pe.useQuery({queryKey:["allUsers"],queryFn:()=>Ts({tasks_api:t}),staleTime:1e3*60*60*24})}},pa=({users:t,onClick:a,responsible:n,role:r,status:s})=>{const{getOBPUrlApi:i}=fe(),o=`button-assign-users-${Math.random().toString(36).substring(2,15)}`,{setElementPosition:d,position:l,clearPosition:c}=Ct(),u=w.useRef(null),m="Project Manager",x=()=>n?null:t.length>3&&e.jsx(ie.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((h,b)=>e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2 ",children:[e.jsx(qe,{imageUrl:h.image??"",alt:h.name},b),e.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:h.name})]},b))})}),p=()=>{if(n){let h=t.find(b=>b.id===n);return e.jsx("div",{children:e.jsx(zt,{trigger:e.jsx(qe,{imageUrl:h==null?void 0:h.image,alt:h==null?void 0:h.name},n),user:h,showUser:!(l!=null&&l.x)})})}return(t==null?void 0:t.length)>0&&t.slice(0,3).map((h,b)=>e.jsx("div",{className:`${b===0?"":"tw-ml-[-8px]"}`,children:e.jsx(zt,{trigger:e.jsx(qe,{imageUrl:h.image,alt:h.name}),user:h,showUser:!(l!=null&&l.x)})},h.id||b))},f=({children:h})=>e.jsx("label",{ref:u,htmlFor:o,className:"tw-flex tw-cursor-pointer tw-items-center",children:h});if(t.length===0)return e.jsx(f,{children:e.jsx(ie.Icons,{icon:"user",size:"xs",strokeWidth:3})});const g=()=>{var P;const[h,b]=w.useState(),[v,I]=w.useState("team"),{teams:$}=vs(),{users:R}=Es();w.useEffect(()=>{var C,y;u.current&&b(((l==null?void 0:l.x)??0)-(((y=(C=u.current)==null?void 0:C.getBoundingClientRect())==null?void 0:y.width)??0))},[u==null?void 0:u.current,l==null?void 0:l.x]);const U=()=>{const C=[{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:C.map((y,H)=>e.jsx("button",{className:`tw-w-full tw-border-texts-placeholder tw-text-center tw-text-sm ${v===y.id?"tw-text-primary-pastel":""} ${H===C.length-1?"tw-border-r-0":" tw-border-r-2"}`,onClick:()=>I(y.id),children:y.label},y.id))})};return r===m||s===0&&r!==m?(l==null?void 0:l.x)&&tt.createPortal(e.jsx("div",{"data-portal-host":!0,className:`absolute tw-h-fit tw-w-[300px] tw-p-[1rem] ${h?"tw-block":"tw-hidden"}`,style:{top:`${l==null?void 0:l.y}px`,left:`${h}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(U,{}),e.jsx(ua,{options:v==="team"?$.data.map(C=>({id:C.id,name:C.name,image:""})):((P=R.data)==null?void 0:P.map(C=>Nt(C,i())))||[],onselect:C=>{var y;c(),a&&a((y=C.tasksUser)==null?void 0:y.id,v)}})]})}),document.body):null};return e.jsxs(e.Fragment,{children:[e.jsxs(f,{children:[p(),x()]}),e.jsx("button",{className:"tw-hidden",id:o,onClick:()=>d(u)}),e.jsx(g,{})]})};function wa({trigger:t,children:a,open:n,setOpen:r}){return e.jsxs(je.DropdownMenu,{open:n,onOpenChange:r,children:[e.jsx(je.DropdownMenuTrigger,{children:t}),e.jsx(je.DropdownMenuContent,{align:"start",className:"tw-rounded-lg tw-border-none tw-bg-white tw-p-4",children:a})]})}const ma=({priority:t,id:a,withLabel:n=!1})=>{var x,p,f,g,h;const{updatingTask:r}=Ue(),s=Math.random().toString(36),[i,o]=w.useState(null),{user:d}=Ee(),[l,c]=w.useState(t);w.useEffect(()=>{c(t)},[t]);const u={0:{title:"Normal",color:Z.primary.regular},1:{title:"Baja",color:Z.success.regular},2:{title:"Media",color:Z.warning.regular},3:{title:"Alta",color:Z.danger.regular}},m=()=>{if(!i)return null;const b=({priorityTask:v,text:I})=>{var $,R;return e.jsxs("button",{onClick:async()=>{o(null),await r({id:a,data:{prioridad:v},user:d==null?void 0:d.id}),c(v)},className:"tw-flex tw-items-center tw-gap-m tw-px-l tw-py-s hover:tw-bg-primary-light",children:[e.jsx(ie.Icons,{icon:"flag",size:"xs",strokeWidth:4,color:($=u[v??0])==null?void 0:$.color}),e.jsx("p",{className:"tw-text-sm",style:{color:(R=u[v??0])==null?void 0:R.color},children:I})]})};return tt.createPortal(e.jsx("div",{onBlur:()=>{o(null)},id:`${s}-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
- tw-shadow-lg`,"data-portal-host":!0,children:Object.values(u).map((v,I)=>e.jsx(b,{priorityTask:I,text:v.title},I))}),document.body)};return e.jsxs("div",{className:"tw-relative tw-h-[22px]",children:[e.jsxs("label",{onBlur:()=>{o(null)},htmlFor:s,className:"tw-flex tw-cursor-pointer tw-items-center tw-gap-2 active:tw-opacity-50",children:[e.jsx(ie.Tooltip,{dispatch:e.jsx(ie.Icons,{icon:"flag",size:"xs",strokeWidth:4,color:(x=u[l??0])==null?void 0:x.color}),children:e.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-p-5 tw-text-sm",style:{color:(p=u[l??0])==null?void 0:p.color},children:`Prioridad: ${(f=u[l??0])==null?void 0:f.title}`})}),n&&e.jsx("span",{style:{color:(g=u[l??0])==null?void 0:g.color},className:"tw-text-lg tw-font-normal",children:((h=u[l??0])==null?void 0:h.title)??"Sin prioridad"})]}),e.jsx("button",{id:s,onClick:b=>{o(i?null:{x:b.clientX,y:b.clientY})},className:"tw-hidden"}),e.jsx(m,{})]})},Je=new Map,Ds=t=>{Je.forEach((a,n)=>{n!==t&&a()})},Is=({children:t,actionsRef:a,newPosition:n,className:r})=>{const[s,i]=w.useState(),[o,d]=w.useState(!1);return w.useEffect(()=>{var l,c;if(a.current&&n){const u=((n==null?void 0:n.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,n==null?void 0:n.x]),!n||s===void 0?null:tt.createPortal(e.jsx("div",{"data-portal-host":!0,className:`
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 ue=require("@tanstack/react-query");require("ui-ds/index.css");const ie=require("@imj_media/tasks-modules"),ss=require("primereact/paginator"),w=require("react"),jt=require("axios"),Pe=require("qs"),tt=require("react-dom"),Ee=require("@fortawesome/pro-regular-svg-icons"),ve=require("@imj_media/ui"),je=require("@imj_media/imj-ui"),it=require("date-fns"),_t=require("date-fns/locale"),Ce=require("react-hook-form"),A=require("ui-ds"),re=require("@xyflow/react"),ze=require("zustand"),xt=require("moment"),pe=require("@fortawesome/pro-solid-svg-icons"),$e=require("@fortawesome/pro-duotone-svg-icons"),Me=require("@fortawesome/free-solid-svg-icons");require("@xyflow/react/dist/style.css");const rs=require("react-pick-color"),Z={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"}},qt=t=>{let a={};return Object.entries(t).forEach(([r,n])=>{if(r.includes(".")){let[s,i]=r.split(".");a[s]=a[s]||{},a[s][i]=n}else a[r]=n}),a},sa=w.createContext({}),ns=({children:t})=>{const[a,r]=w.useState({}),[n,s]=w.useState({}),[i,o]=w.useState([]),[d,l]=w.useState(""),u=({name:p,value:f})=>{function h(b){return!isNaN(b)&&b!==null&&b!==""?parseFloat(b):null}let g=h(f);s(b=>{let v={...b},P=i==null?void 0:i.find($=>$.label.toLowerCase().replace(/ /g,"_")===p);return P?v[P.id]=g??f:v[p]=g??f,v})};w.useEffect(()=>{let p=i.map(f=>f.id==="owner.config"?[f.id,"yo_y_mis_equipos"]:f.id==="dependency"?[f.id,"ambas"]:[f.id,null]);s(f=>{let h={search:f==null?void 0:f.search,taskName:f==null?void 0:f.taskName};return h={...h,...Object.fromEntries(p)},h})},[i]);const c=()=>{let p=i.map(f=>f.id==="owner.config"?[f.id,"yo_y_mis_equipos"]:f.id==="dependency"?[f.id,"ambas"]:[f.id,null]);s(Object.fromEntries(p)),r(qt(Object.fromEntries(p)))},m=p=>({1:"Muy facil",2:"Facil",3:"Media",4:"Dificil",5:"Muy dificil"})[p],x=()=>{let p=qt(n);p.difficulty&&(p.difficulty=m(p.difficulty)),r(p)};return e.jsx(sa.Provider,{value:{fields:i,filters:a,path:d,defineFields:o,updateFilters:u,cleanFilters:c,applyFilters:x,initialFilters:n,selectPath:l},children:t})},Le=()=>w.useContext(sa),ra=w.createContext({}),os=({children:t,user:a,url:r,mode:n})=>{const s=n==="prod"?"https://services.imjmedia.com.mx":"https://devobp.imjmedia.com.mx",i=jt.create({baseURL:r,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:l=>Pe.stringify(l,{encodeValuesOnly:!0})}),o=()=>s,d=l=>l==="undefined"||l===void 0?"":`${s}${l}`;return e.jsx(ra.Provider,{value:{tasks_api:i,getOBPUrlApi:o,getImageOBP:d},children:t})},fe=()=>w.useContext(ra),na=w.createContext({}),is=({children:t,user:a,url:r})=>{const n=jt.create({baseURL:r,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:s=>Pe.stringify(s,{encodeValuesOnly:!0})});return e.jsx(na.Provider,{value:{user:a,tasks_api:n},children:t})},Se=()=>w.useContext(na),he=t=>{const a=i=>Object.prototype.toString.call(i)==="[object Object]",r=i=>i&&typeof i=="object"&&("source"in i||"target"in i)&&!("attributes"in i),n=i=>i&&typeof i=="object"&&"position"in i&&typeof i.position=="object"&&("x"in i.position||"y"in i.position)&&!("attributes"in i),s=i=>i.attributes?{id:i.id,...i.attributes}:i;if(Array.isArray(t))return t.map(i=>he(i));if(a(t)){if(r(t)){const i={};for(const o in t)i[o]=he(t[o]);return i}if(n(t)){const i={};for(const o in t)i[o]=he(t[o]);return i}Array.isArray(t.data)?t=[...t.data]:a(t.data)?t=s({...t.data}):t.data===null?t=null:t=s(t);for(const i in t)t[i]=he(t[i]);return t}return t},qe=({imageUrl:t="https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png",alt:a="avatar",size:r="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]"}[r];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`})},vt=t=>new Intl.DateTimeFormat("es-MX",{month:"long"}).format(t);function ls(t){const a=["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],r=new Date(t).getDay();return a[r]}const Lt=t=>{let a=t||new Date,r=a.getDate(),n=vt(a.getMonth()).slice(0,3),s=a.getFullYear().toString().slice(-2),i=ls(a).slice(0,3);return`${i.charAt(0).toUpperCase()+i.slice(1)} ${r} ${n.charAt(0).toUpperCase()+n.slice(1)} ${s}`},Nt=(t,a)=>({...t,image:t.image?`${a}${t.image}`:""}),Ze=t=>{var a,r;return t?(a=t.responsable)!=null&&a.nombre?t.responsable.nombre:(r=t.equipo)!=null&&r.nombre?t.equipo.nombre:null:null};class cs{static toCampaignTasks(a){var i,o,d,l,u,c,m,x,p,f,h,g,b,v,P;const r=Ze(a==null?void 0:a.id_t_requerida),n=Ze(a==null?void 0:a.tarea_padre);let s=[];return a!=null&&a.responsable&&s.push({id:a.responsable.id,name:a.responsable.nombre,image:(u=(l=(d=(o=(i=a.responsable)==null?void 0:i.userOBP)==null?void 0:o.imagen)==null?void 0:d.formats)==null?void 0:l.thumbnail)==null?void 0:u.url,role:((c=a.responsable.userOBP)==null?void 0:c.role)||{id:0,name:""}}),(m=a==null?void 0:a.equipo)!=null&&m.miembros&&a.equipo.miembros.forEach($=>{var B,H,I,D,y;s!=null&&s.find(L=>L.id===$.idUser.id)||$.idUser&&s.push({id:$.idUser.id,name:$.idUser.nombre,image:(D=(I=(H=(B=$==null?void 0:$.userOBP)==null?void 0:B.imagen)==null?void 0:H.formats)==null?void 0:I.thumbnail)==null?void 0:D.url,role:((y=$.userOBP)==null?void 0:y.role)||{id:0,name:""}})}),{paused:a==null?void 0:a.pausada,isPrincipalTask:(a==null?void 0:a.tarea_principal)??!1,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),users:s,repeatsToDo:(a==null?void 0:a.repeticiones)??null,repeats:(a==null?void 0:a.repeticiones_realizadas)??null,comments:((x=a==null?void 0:a.comentarios)==null?void 0:x.length)??null,willBePaused:a==null?void 0:a.es_pausable,nameProject:((p=a==null?void 0:a.proyecto)==null?void 0:p.nombre)??null,idProject:((f=a==null?void 0:a.proyecto)==null?void 0:f.id)??null,medioName:(a==null?void 0:a.nombre_medio)??null,statusRequiredTask:((h=a==null?void 0:a.id_t_requerida)==null?void 0:h.estatus)??null,nameRequiredTask:((g=a==null?void 0:a.id_t_requerida)==null?void 0:g.texto_corto)??null,nameRequiredTaskResponsible:r,name_father_required_task:((b=a==null?void 0:a.tarea_padre)==null?void 0:b.texto_corto)??null,name_father_required_task_responsible:n,responsible:((v=a==null?void 0:a.responsable)==null?void 0:v.id)??null,tasks:((P=a==null?void 0:a.tareas)==null?void 0:P.map($=>({id:$.id,name:$.texto_corto,status:$.estatus})))??null,atraso:(a==null?void 0:a.atraso)??null,categoria:(a==null?void 0:a.categoria)??null,...(a==null?void 0:a.cambio_arte)&&{cambio_arte:a==null?void 0:a.cambio_arte}}}}const ds=async({filters:t,tasks_api:a,project:r})=>{try{const n=await a.get("/api/listado_tareas_flujo",{params:{...t,project:{id:r},includeAllTasks:!0,populate:"*"}}),s=he(n.data.tareas),i=Array.isArray(s)?s:[s],o=new Set;if(i.forEach(d=>{var l;(l=d==null?void 0:d.id_t_requerida)!=null&&l.id&&o.add(d.id_t_requerida.id)}),o.size>0){const d=Array.from(o),l=Pe.stringify({filters:{id:{$in:d}},populate:{responsable:{fields:["id","nombre"]},equipo:{fields:["id","nombre"]}}},{encodeValuesOnly:!0});try{const u=await a.get(`/api/tareas?${l}`),c=he(u.data.data||u.data),m=Array.isArray(c)?c:[c],x=new Map(m.map(p=>[p.id,p]));i.forEach(p=>{var f;if((f=p==null?void 0:p.id_t_requerida)!=null&&f.id){const h=x.get(p.id_t_requerida.id);h&&(p.id_t_requerida={...p.id_t_requerida,responsable:h.responsable||null,equipo:h.equipo||null})}})}catch{}}return i.map(cs.toCampaignTasks)}catch(n){console.log(n)}},oa=w.createContext({}),us=({children:t,project:a})=>{var b;const[r,n]=w.useState([]),[s,i]=w.useState(!1),[o,d]=w.useState([]),{tasks_api:l}=fe(),{filters:u}=Le(),{user:c}=Se(),[m,x]=w.useState({owner:{user:c.id,config:((b=u==null?void 0:u.owner)==null?void 0:b.config)??"yo_y_mis_equipos"},project:{id:a}});w.useEffect(()=>{var v;if(Object.keys(u).length>0){const P={...u,owner:{user:c.id,config:((v=u==null?void 0:u.owner)==null?void 0:v.config)??"yo_y_mis_equipos"},project:{id:a}};x(P)}},[u,c.id,a]);const p=ue.useQuery({queryKey:["tasksProject",m,a],queryFn:()=>{const v={...m,taskName:u==null?void 0:u.taskName,owner:{...m.owner,config:m.owner.config||"yo_y_mis_equipos"}};return ds({filters:v,project:a,tasks_api:l})},refetchOnWindowFocus:!1}),f=v=>{n(P=>[...P,v])},h=v=>{d(P=>P.includes(v)?P.filter($=>$!==v):[...P,v])},g=a??null;return e.jsx(oa.Provider,{value:{tasksProject:p,selectedTasks:r,projectID:g,openTasks:o,selectTask:f,filtersToSend:m,openTask:h,isRefetching:s,project:a,filters:u,setIsRefetching:i},children:t})},Ve=()=>w.useContext(oa),ia=w.createContext(null),ps=({children:t})=>{const[a,r]=w.useState({message:"",type:"success"}),n=(s,i)=>{r({message:s,type:i}),setTimeout(()=>r({message:"",type:"success"}),3e3)};return e.jsx(ia.Provider,{value:{toast:a,showSuccess:s=>n(s,"success"),showError:s=>n(s,"error")},children:t})},Tt=()=>w.useContext(ia);class la{static toAtrasoReasons(a){return{id:a.id,motivo_imj:a.motivo_imj,categoria:a.categoria??null}}}const ws=async({tasks_api:t})=>{try{const a=await t.get("/api/motivos",{params:{populate:{categoria:{fields:["id","nombre","tipo"]}},filters:{tipo:{$eq:"atraso"}}}});return he(a.data).map(la.toAtrasoReasons)}catch(a){throw console.log("Error al obtener los motivos de atraso",a),`Error al obtener los motivos de atraso: ${a}`}},ca=({enabled:t=!1}={})=>{const{tasks_api:a}=fe(),{user:r}=Se(),n=ue.useQueryClient(),{showSuccess:s,showError:i}=Tt(),{filters:o,path:d}=Le(),{data:l,isLoading:u}=ue.useQuery({queryKey:["atraso_reasons"],queryFn:()=>ws({tasks_api:a}),staleTime:1e3*60*60*24,enabled:t}),c=async()=>{const $=await a.get("/api/motivos",{params:{filters:{tipo:{$eq:"atraso"}}}});return he($.data).map(la.toAtrasoReasons)},m=async({taskId:$,motivoId:B,projectID:H})=>{try{return(await a.post("/api/atrasos",{data:{inicio:new Date,fin:null,motivo:B,proyecto:H,tarea:$,creada_por:r==null?void 0:r.id}})).data}catch(I){console.log("error",I)}},x=async $=>{try{return(await a.delete(`/api/atrasos/${$}`)).data}catch(B){console.log("error",B)}},p=async $=>{try{return(await a.put(`/api/atrasos/${$}`,{data:{fin:new Date}})).data}catch(B){console.log("error",B)}},f=async({taskId:$,projectID:B,motivo:H})=>{await b({taskId:$,motivoId:H,projectID:B})},h=async $=>{await v($)},g=async $=>{await P($)},{mutateAsync:b}=ue.useMutation({mutationFn:m,onSuccess:()=>{s("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:v}=ue.useMutation({mutationFn:x,onSuccess:()=>{s("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:P}=ue.useMutation({mutationFn:p,onSuccess:()=>{s("Atraso finalizado correctamente")},onError:()=>{i("Error al finalizar el atraso")}});return{atrasoReasons:l,isLoading:u,createAtraso:f,getAtrasoReasons:c,deleteAtraso:h,finalizarAtraso:g}},Ue=()=>{const{tasks_api:t}=fe(),{user:a}=Se(),{filters:r,path:n}=Le(),s=ue.useQueryClient(),{projectID:i}=Ve(),{showSuccess:o,showError:d}=Tt(),{finalizarAtraso:l}=ca({enabled:!1}),u=async({id:F})=>(await t.put(`/api/tareas/${F}`,{data:{estatus:1,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,c=async({id:F})=>(await t.put(`/api/tareas/${F}`,{data:{estatus:0,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,m=async({id:F,idAtraso:S})=>{const M=await t.post("/api/terminarTarea",{id_task:F,ended_at:new Date().toISOString(),id_user:a==null?void 0:a.id});return await l(S),M.data},x=async({id:F,repeats:S})=>(await t.put(`/api/tareas/${F}`,{data:{repeticiones_realizadas:S,updated_by:a==null?void 0:a.id}})).data,p=async({id:F,motiveId:S})=>{try{const M=await t.post("/api/pausarTarea",{taskId:F,userId:a==null?void 0:a.id,motivoId:S});return o("Tarea pausada correctamente"),M.data}catch(M){d("Error al pausar la tarea: "+M)}},f=async({id:F})=>{try{const S=await t.post("/api/reanudarTarea",{taskId:F});return o("Tarea reanudada correctamente"),S.data}catch(S){d("Error al reanudar la tarea: "+S)}},h=async({id:F,idNewResponsible:S,typeOfSelect:M})=>{let O={updated_by:a==null?void 0:a.id};return M==="responsible"&&(O={...O,responsable:S}),M==="team"&&(O={...O,responsable:null,equipo:S}),(await t.put(`/api/tareas/${F}`,{data:O})).data},g=async({id:F,data:S,user:M})=>{try{return(await t.put(`/api/tareas/${F}`,{data:{...S,updated_by:M==null?void 0:M.id}})).data}catch(O){console.error("Error updating the element:",O)}},b=async({id:F})=>{await $({id:F})},v=async({id:F,data:S,user:M})=>{await P({id:F,data:S,user:M})},{mutateAsync:P}=ue.useMutation({mutationFn:g,onSuccess:()=>{o("Tarea actualizada correctamente");const F={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(s.invalidateQueries({queryKey:[F[n],r]}),s.invalidateQueries({queryKey:["done_tasks",r]}),s.invalidateQueries({queryKey:["working_tasks",r]})),n==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",r,i]}))}catch(S){console.error("Error invalidating queries:",S)}},onError:F=>{console.error("Failed to update the task.",F)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]})}}),{mutateAsync:$}=ue.useMutation({mutationFn:u,onSuccess:()=>{const F={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(s.invalidateQueries({queryKey:[F[n],r]}),s.invalidateQueries({queryKey:["working_tasks",r]})),n==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",r,i]}))}catch(S){console.error("Error updating the element:",S)}},onError:F=>{console.error("Failed to update the task.",F)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:B}=ue.useMutation({mutationFn:m,onSuccess:()=>{const F={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s.setQueryData([F[n],r],S=>{console.log({oldData:S})}),n==="kanban-general"&&(s.invalidateQueries({queryKey:[F[n],r]}),s.invalidateQueries({queryKey:["done_tasks",r]}),s.invalidateQueries({queryKey:["working_tasks",r]})),n==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",r,i]}))}catch(S){console.error("Error invalidating queries:",S)}},onError:F=>{console.error("Failed to update the task.",F)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["done_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:H}=ue.useMutation({mutationFn:x,onSuccess:()=>{const F={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(s.invalidateQueries({queryKey:[F[n],r]}),s.invalidateQueries({queryKey:["done_tasks",r]}),s.invalidateQueries({queryKey:["working_tasks",r]})),n==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",r,i]}))}catch(S){console.error("Error invalidating queries:",S)}},onError:F=>{console.error("Failed to update the task.",F)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["done_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:I}=ue.useMutation({mutationFn:h,onSuccess:()=>{const F={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(s.invalidateQueries({queryKey:[F[n],r]}),s.invalidateQueries({queryKey:["done_tasks",r]}),s.invalidateQueries({queryKey:["working_tasks",r]})),n==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",r,i]}))}catch(S){console.error("Error invalidating queries:",S)}},onError:F=>{console.error("Failed to reassign the task.",F)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["done_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:D}=ue.useMutation({mutationFn:c,onSuccess:()=>{const F={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n==="kanban-general"&&(s.invalidateQueries({queryKey:[F[n],r]}),s.invalidateQueries({queryKey:["working_tasks",r]})),n==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",r,i]}))}catch(S){console.error("Error updating the element:",S)}},onError:F=>{console.error("Failed to update the task.",F)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}});return{updatingTask:v,updateTask:g,startTask:async({id:F})=>{await D({id:F})},startWorking:b,completeTask:async({id:F,idAtraso:S})=>{await B({id:F,idAtraso:S})},reasignResponsible:async({id:F,idNewResponsible:S,typeOfSelect:M})=>{await I({id:F,idNewResponsible:S,typeOfSelect:M})},updateUnitys:async({repeats:F,id:S})=>{await H({repeats:F,id:S})},pauseTask:async({id:F,motiveId:S})=>{console.log({taksId:F,motivoId:S,user:a==null?void 0:a.id})},postPauseTask:p,postReanudeTask:f}},ms=({id:t,idAtraso:a})=>{const[r,n]=w.useState(!1),{completeTask:s}=Ue();return{checked:r,checkTask:()=>{n(!r),s({id:t,idAtraso:a})}}},Ot={checked:"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",unchecked:"tw-transition-colors"},fs="tw-mx-[2px] tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-success-regular tw-transition-all",Rt="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",da=({id:t,nameRequiredTask:a,statusRequiredTask:r,status:n,idAtraso:s,nameRequiredTaskResponsible:i,name_father_required_task:o,name_father_required_task_responsible:d,repeatsAreCompleted:l=!1})=>{const u=w.useId(),c=`checkbox-${t}-${u}`,{checked:m,checkTask:x}=ms({id:t,idAtraso:s}),f=!!(a&&a!==""&&r===2)||!a,h=!!o,g=n===1&&l,b=()=>e.jsx("label",{htmlFor:c,className:m?Ot.checked:Ot.unchecked,children:e.jsx(ie.Icons,{icon:m?"check_outline":"circle_checked",color:m?"white":Z.texts.placeholder,strokeWidth:4,size:m?"xs":"s"})});return n===2?e.jsx("div",{className:fs,children:e.jsx(ie.Icons,{icon:"circle_checked",color:"white",strokeWidth:4,size:"xs"})}):h?e.jsxs(e.Fragment,{children:[e.jsx(ie.Tooltip,{dispatch:e.jsx("label",{className:"tw-cursor-help","aria-hidden":!0,children:e.jsx(ie.Icons,{icon:"info_circle",color:Z.warning.regular,strokeWidth:4})}),children:e.jsxs("div",{className:Rt,children:[e.jsx("p",{className:"tw-w-[210px] tw-font-bold",children:"Tarea padre:"}),e.jsx("p",{children:o}),d&&e.jsxs("p",{className:"tw-font-bold",children:["Responsable: ",e.jsx("span",{className:"tw-font-normal",children:d})]}),e.jsx("span",{className:"tw-font-normal tw-italic tw-text-[#919191]",children:"Esta tarea completa automáticamente la tarea padre."})]})}),g&&b(),e.jsx("input",{id:c,checked:m,onChange:x,type:"checkbox",className:"tw-hidden","aria-hidden":!0})]}):f?e.jsxs(e.Fragment,{children:[n===1&&b(),e.jsx("input",{id:c,checked:m,onChange:x,type:"checkbox",className:"tw-hidden","aria-hidden":!0})]}):e.jsxs(e.Fragment,{children:[e.jsx(ie.Tooltip,{dispatch:e.jsx("label",{className:"tw-cursor-help","aria-hidden":!0,children:e.jsx(ie.Icons,{icon:"info_circle",color:Z.warning.regular,strokeWidth:4})}),children:e.jsxs("div",{className:Rt,children:[e.jsx("p",{className:"tw-w-[210px] tw-font-bold",children:"Requiere completar su tarea:"}),e.jsx("p",{children:a}),i&&e.jsxs("p",{className:"tw-font-bold",children:["Responsable: ",e.jsx("span",{className:"tw-font-normal",children:i})]})]})}),e.jsx("input",{id:c,checked:m,onChange:x,type:"checkbox",className:"tw-hidden","aria-hidden":!0})]})},ua=()=>{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,{})})]})]})},Bt=[{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"}]}],$t=[{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:[]}],xs=({setPath:t,setProject:a})=>{const[r,n]=w.useState([]),[s,i]=w.useState(!0),[o,d]=w.useState(0),[l,u]=w.useState(10),[c,m]=w.useState(0),[x,p]=w.useState(),[f,h]=w.useState(0),{filters:g,defineFields:b}=Le(),{tasks_api:v,getImageOBP:P}=fe(),{user:$}=Se(),B=async(j,F)=>{var S,M,O,W,ae;try{i(!0);const Y={filters:{search:(g==null?void 0:g.search)??"",responsable:{idUser:$.id,responsableType:(S=g==null?void 0:g.responsable)==null?void 0:S.responsableType},ejecutivo:(g==null?void 0:g.ejecutivo)??"",cancelada:{$eq:!1}}},oe=await v.get("/api/listado_campanias",{params:{pagination:{page:j,pageSize:F},orderBy:x,...Y}}),te=he(oe==null?void 0:oe.data);n(te),m((O=(M=oe==null?void 0:oe.data)==null?void 0:M.meta)==null?void 0:O.total),h((ae=(W=oe==null?void 0:oe.data)==null?void 0:W.meta)==null?void 0:ae.pageCount)}catch(Y){console.error("Error fetching data en Lista Campaña:",Y)}finally{i(!1)}},H=async()=>{try{const j=await v.get("/api/obtener-comerciales");return[...$t].map(S=>(S.id==="ejecutivo"&&(S.options=j.data.map(M=>({id:M.nombre,name:M.nombre}))),S))}catch(j){return console.error("Error fetching salesman data:",j),[...$t]}};w.useEffect(()=>{(async()=>{const F=await H();b(F)})()},[]),w.useEffect(()=>{const j=Math.floor(o/l)+1;B(j,l)},[o,l,x,g]);const I=j=>{d(j.first),u(j.rows)},D=[{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}],y=j=>{const F=parseInt(j.target.value,10);u(F),I({first:0,rows:F})},L=j=>{p(F=>F===j?`${j}:desc`:j)},K=j=>x===j?"↑↓":x===`${j}:desc`?"↓↑":"↑↓",X=j=>({padding:"auto",backgroundColor:Z.silver.silver_light,borderRadius:"50%",cursor:j?"not-allowed":"pointer",transition:"all 0.2s ease",marginRight:"4px",border:`1px solid ${j?Z.gray.gray_regular:Z.gray.gray_dark}`,color:j?Z.gray.gray_regular:Z.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:Z.bg.content,display:"flex",flexDirection:"column",height:"100%"},children:s?e.jsx("div",{className:"tw-w-full",children:e.jsx(ua,{})}):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:Z.gray.gray_regular},children:[e.jsx("th",{onClick:()=>L("nombre"),style:{color:Z.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:Z.gray.gray_dark},children:K("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:()=>L("inicia"),className:"tw-whitespace-nowrap",style:{color:Z.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:Z.gray.gray_dark},children:K("inicia")}),e.jsx(ie.Icons,{icon:"calendar",size:"xs",strokeWidth:5,color:Z.gray.gray_dark,className:"tw-mt-1 tw-h-[15px] tw-w-[15px]"}),e.jsx("span",{style:{color:Z.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:()=>L("termina"),className:"tw-whitespace-nowrap",style:{color:Z.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:K("termina")}),e.jsx(ie.Icons,{icon:"calendar",size:"xs",strokeWidth:5,color:Z.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:Z.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:Z.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:Z.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:r==null?void 0:r.map((j,F)=>{var S,M,O,W,ae,Y,oe,te,q,U,Q,C,E,R,N,_,z,k;return e.jsxs("tr",{style:{background:F%2===0?"#F5F5F5":"#FAFAFA",transition:"background-color 0.2s ease"},className:"tw-cursor-pointer ",onClick:()=>{a({id:j==null?void 0:j.id,project:j==null?void 0:j.nombre}),t("kanban-campania")},onMouseEnter:T=>{T.currentTarget.style.backgroundColor="#E1EBF9"},onMouseLeave:T=>{T.currentTarget.style.backgroundColor=F%2===0?"#F5F5F5":"#FAFAFA"},children:[e.jsx("td",{className:"tw-text-s",children:(S=j==null?void 0:j.campania)==null?void 0:S.nombre}),e.jsx("td",{className:"tw-text-s",children:(M=j==null?void 0:j.campania)==null?void 0:M.inicia}),e.jsx("td",{className:"tw-text-s",children:(O=j==null?void 0:j.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:[j==null?void 0:j.progreso,"%"]}),e.jsx("div",{style:{position:"relative",height:"10px",flex:1,backgroundColor:Z.gray.gray_dark,borderRadius:"10px",overflow:"hidden",maxWidth:"140px"},children:e.jsx("div",{style:{position:"absolute",top:0,left:0,height:"100%",width:`${j.progreso}%`,backgroundColor:j.progreso===100?Z.progressbar.green_regular:j.progreso>50?Z.progressbar.blue_regular:j.progreso>0?Z.progressbar.orange_regular:Z.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:[(j==null?void 0:j.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:Z.gray.gray_dark,borderRadius:"10px",overflow:"hidden",maxWidth:"180px"},children:e.jsx("div",{style:{position:"absolute",top:0,left:0,height:"100%",width:`${(j==null?void 0:j.progresoVenta)??0}%`,backgroundColor:(j==null?void 0:j.progresoVenta)===100?Z.progressbar.green_regular:(j==null?void 0:j.progresoVenta)>50?Z.progressbar.blue_regular:(j==null?void 0:j.progresoVenta)>0?Z.progressbar.orange_regular:Z.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(qe,{imageUrl:(te=(oe=(Y=(ae=(W=j==null?void 0:j.campania)==null?void 0:W.responsable)==null?void 0:ae.imagen)==null?void 0:Y.formats)==null?void 0:oe.thumbnail)!=null&&te.url?P((E=(C=(Q=(U=(q=j==null?void 0:j.campania)==null?void 0:q.responsable)==null?void 0:U.imagen)==null?void 0:Q.formats)==null?void 0:C.thumbnail)==null?void 0:E.url):"",alt:(_=(N=(R=j==null?void 0:j.campania)==null?void 0:R.responsable)==null?void 0:N.nombre)==null?void 0:_.charAt(0)}),e.jsx("span",{className:"tw-text-s tw-ml-4",children:(k=(z=j==null?void 0:j.campania)==null?void 0:z.responsable)==null?void 0:k.nombre})]})})]},F)})})]})}),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:Z.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:[f," elementos de ",c]}),e.jsx(ss.Paginator,{first:o,rows:l,totalRecords:c,rowsPerPageOptions:[5,10,20,50],onPageChange:I,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:j=>e.jsx("button",{onClick:j.onClick,disabled:j.disabled,style:X(j.disabled),className:"tw-text-s tw-flex tw-items-center tw-justify-center",children:"<<"}),PrevPageLink:j=>e.jsx("button",{onClick:j.onClick,disabled:j.disabled,style:X(j.disabled),className:"tw-text-s",children:"<"}),NextPageLink:j=>e.jsx("button",{onClick:j.onClick,disabled:j.disabled,style:X(j.disabled),className:"tw-text-s",children:">"}),LastPageLink:j=>e.jsx("button",{onClick:j.onClick,disabled:j.disabled,style:X(j.disabled),className:"tw-text-s",children:">>"}),PageLinks:j=>e.jsx("span",{style:{display:"inline-flex",gap:"1px"},children:e.jsx("button",{onClick:F=>j.onClick(F),className:`tw-text-s tw-flex tw-items-center tw-justify-center ${j.className.includes("p-highlight")?"highlighted":""}`,style:{...X(!1),backgroundColor:j.className.includes("p-highlight")?"#E1EBF9":Z.silver.silver_light,color:Z.black.black_dark},children:j.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 ${Z.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:j=>y(j),children:D.map(j=>e.jsx("option",{value:j.value,className:"tw-text-s",style:{color:Z.gray.gray_dark},children:j.label},j.value))})]})]})]})})})},Ct=()=>{const[t,a]=w.useState(null);return{position:t,setElementPosition:i=>{var u;let o=(u=i.current)==null?void 0:u.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)}}},gs=({children:t,filterChildren:a})=>{const{position:r,setElementPosition:n}=Ct(),s=w.useRef(null),i=({children:o})=>{const[d,l]=w.useState();return w.useEffect(()=>{var u,c;a.current&&l(((r==null?void 0:r.x)??0)-(((c=(u=a.current)==null?void 0:u.getBoundingClientRect())==null?void 0:c.width)??0))},[a==null?void 0:a.current,r==null?void 0:r.x]),r&&tt.createPortal(e.jsx("div",{className:`tw-absolute tw-h-fit tw-w-fit ${d?"tw-block":"tw-hidden"}`,style:{top:`${r==null?void 0:r.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:s,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(ie.Icons,{icon:"filter",size:"xs",strokeWidth:5,color:Z.primary.regular}),"Filtrar"]}),e.jsx("button",{className:"tw-hidden",id:"filter-button",onClick:()=>{n(s)}}),e.jsx(i,{children:t})]})};function hs(t,a=300,r={leading:!1,trailing:!0}){let n,s=null;return function(...i){const o=Date.now(),d=r.leading&&!s;clearTimeout(n),d&&t(...i),s=o,n=setTimeout(()=>{r.trailing&&(!r.leading||o-s>=a)&&(t(...i),s=null)},a)}}const bs="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",pa=({options:t,onselect:a})=>{const[r,n]=w.useState(null),s=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),i=[...t].filter(o=>o.name.toLowerCase().includes((r==null?void 0:r.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:s,value:r??"",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:bs,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(qe,{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})]}))})]})},ys=({error:t,options:a,onSelect:r,initialValue:n})=>{const[s,i]=w.useState(!1),[o,d]=w.useState((n==null?void 0:n.name)??null);return w.useEffect(()=>{n&&d(n)},[n]),e.jsxs("div",{className:"tw-relative",children:[e.jsxs("div",{onBlur:()=>i(!1),onClick:()=>i(!s),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(ie.Icons,{icon:"angle_down_outline",color:t?Z.danger.regular:Z.texts.placeholder})]}),s&&e.jsx("div",{className:"absolute tw-z-[10] tw-w-full tw-rounded-lg tw-shadow-md",children:e.jsx(pa,{onselect:l=>{d(l),i(!1),r&&r(l)},options:a})})]})},js=()=>{const{fields:t,updateFilters:a,cleanFilters:r,applyFilters:n,initialFilters:s}=Le();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:r,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(ys,{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===(s==null?void 0:s[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:s==null?void 0:s[i==null?void 0:i.id],name:i.label.toLowerCase().replace(/ /g,"_"),onChange:hs(l=>{var u,c;return a({name:(u=l==null?void 0:l.target)==null?void 0:u.name,value:(c=l==null?void 0:l.target)==null?void 0:c.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"})]})},_s=()=>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"})]})]}),zt=({trigger:t,user:a,showUser:r=!0})=>e.jsx(ie.Tooltip,{dispatch:t,children:r&&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(qe,{imageUrl:a.image??"",alt:a.name}),e.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:a.name})]})});class vs{static toDomain(a){return{id:a.id,name:a.nombre,color:a.color}}}const Ns=()=>{const{tasks_api:t}=fe();return{teams:ue.useQuery({queryKey:["teams","all"],queryFn:async()=>{const r=await t.get("/api/equipos");return he(r.data).map(vs.toDomain)},refetchOnWindowFocus:!1})}};class Et{static toUsers(a){var r,n,s;return{id:a.id,name:a.nombre,image:(s=(n=(r=a.imagen)==null?void 0:r.formats)==null?void 0:n.thumbnail)==null?void 0:s.url,tasksUser:{email:a.tasksUser.email,id:a.tasksUser.id,nombre:a.tasksUser.nombre},role:a.role}}static toUsersV2(a){var r,n,s;return{id:a.id,name:a.nombre,image:(s=(n=(r=a.imagen)==null?void 0:r.formats)==null?void 0:n.thumbnail)==null?void 0:s.url,role:a.role}}static toUsersWithIndex(a){var n,s,i;const r={};for(const o of a)r[o.email]={...o,image:(i=(s=(n=o.imagen)==null?void 0:n.formats)==null?void 0:s.thumbnail)==null?void 0:i.url};return r}}const Ts=async({tasks_api:t})=>{try{const a=await t.get("/api/getAllOBPusersMembers");return he(a.data).map(Et.toUsers)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Cs=async({tasks_api:t})=>{try{const a={filters:{$and:[{role:{name:{$in:["Project Manager","Operation Manager","Administrador"]}}},{blocked:{$eq:!1}}]}},r=Pe.stringify(a,{encodeValuesOnly:!0}),n=await t.get(`/api/users?${r}`),i=he(n.data).map(l=>l.email),o=await t.get(`/api/getAllOBPusers?filters[name][$in]=${i}`);return he(o.data).map(Et.toUsersV2)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Es=async({users:t})=>{try{const a=he(t);return Et.toUsersWithIndex(a)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Ss=()=>{const{tasks_api:t}=fe();return{users:ue.useQuery({queryKey:["users"],queryFn:()=>Ts({tasks_api:t}),staleTime:1e3*60*60*24})}},Ds=()=>{const{tasks_api:t}=fe();return{users:ue.useQuery({queryKey:["allUsers"],queryFn:()=>Cs({tasks_api:t}),staleTime:1e3*60*60*24})}},wa=({users:t,onClick:a,responsible:r,role:n,status:s})=>{const{getOBPUrlApi:i}=fe(),o=`button-assign-users-${Math.random().toString(36).substring(2,15)}`,{setElementPosition:d,position:l,clearPosition:u}=Ct(),c=w.useRef(null),m="Project Manager",x=()=>r?null:t.length>3&&e.jsx(ie.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((g,b)=>e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2 ",children:[e.jsx(qe,{imageUrl:g.image??"",alt:g.name},b),e.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:g.name})]},b))})}),p=()=>{if(r){let g=t.find(b=>b.id===r);return e.jsx("div",{children:e.jsx(zt,{trigger:e.jsx(qe,{imageUrl:g==null?void 0:g.image,alt:g==null?void 0:g.name},r),user:g,showUser:!(l!=null&&l.x)})})}return(t==null?void 0:t.length)>0&&t.slice(0,3).map((g,b)=>e.jsx("div",{className:`${b===0?"":"tw-ml-[-8px]"}`,children:e.jsx(zt,{trigger:e.jsx(qe,{imageUrl:g.image,alt:g.name}),user:g,showUser:!(l!=null&&l.x)})},g.id||b))},f=({children:g})=>e.jsx("label",{ref:c,htmlFor:o,className:"tw-flex tw-cursor-pointer tw-items-center",children:g});if(t.length===0)return e.jsx(f,{children:e.jsx(ie.Icons,{icon:"user",size:"xs",strokeWidth:3})});const h=()=>{var I;const[g,b]=w.useState(),[v,P]=w.useState("team"),{teams:$}=Ns(),{users:B}=Ss();w.useEffect(()=>{var D,y;c.current&&b(((l==null?void 0:l.x)??0)-(((y=(D=c.current)==null?void 0:D.getBoundingClientRect())==null?void 0:y.width)??0))},[c==null?void 0:c.current,l==null?void 0:l.x]);const H=()=>{const D=[{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:D.map((y,L)=>e.jsx("button",{className:`tw-w-full tw-border-texts-placeholder tw-text-center tw-text-sm ${v===y.id?"tw-text-primary-pastel":""} ${L===D.length-1?"tw-border-r-0":" tw-border-r-2"}`,onClick:()=>P(y.id),children:y.label},y.id))})};return n===m||s===0&&n!==m?(l==null?void 0:l.x)&&tt.createPortal(e.jsx("div",{"data-portal-host":!0,className:`absolute tw-h-fit tw-w-[300px] tw-p-[1rem] ${g?"tw-block":"tw-hidden"}`,style:{top:`${l==null?void 0:l.y}px`,left:`${g}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(H,{}),e.jsx(pa,{options:v==="team"?$.data.map(D=>({id:D.id,name:D.name,image:""})):((I=B.data)==null?void 0:I.map(D=>Nt(D,i())))||[],onselect:D=>{var y;u(),a&&a((y=D.tasksUser)==null?void 0:y.id,v)}})]})}),document.body):null};return e.jsxs(e.Fragment,{children:[e.jsxs(f,{children:[p(),x()]}),e.jsx("button",{className:"tw-hidden",id:o,onClick:()=>d(c)}),e.jsx(h,{})]})};function ma({trigger:t,children:a,open:r,setOpen:n}){return e.jsxs(je.DropdownMenu,{open:r,onOpenChange:n,children:[e.jsx(je.DropdownMenuTrigger,{children:t}),e.jsx(je.DropdownMenuContent,{align:"start",className:"tw-rounded-lg tw-border-none tw-bg-white tw-p-4",children:a})]})}const fa=({priority:t,id:a,withLabel:r=!1})=>{var x,p,f,h,g;const{updatingTask:n}=Ue(),s=Math.random().toString(36),[i,o]=w.useState(null),{user:d}=Se(),[l,u]=w.useState(t);w.useEffect(()=>{u(t)},[t]);const c={0:{title:"Normal",color:Z.primary.regular},1:{title:"Baja",color:Z.success.regular},2:{title:"Media",color:Z.warning.regular},3:{title:"Alta",color:Z.danger.regular}},m=()=>{if(!i)return null;const b=({priorityTask:v,text:P})=>{var $,B;return e.jsxs("button",{onClick:async()=>{o(null),await n({id:a,data:{prioridad:v},user:d==null?void 0:d.id}),u(v)},className:"tw-flex tw-items-center tw-gap-m tw-px-l tw-py-s hover:tw-bg-primary-light",children:[e.jsx(ie.Icons,{icon:"flag",size:"xs",strokeWidth:4,color:($=c[v??0])==null?void 0:$.color}),e.jsx("p",{className:"tw-text-sm",style:{color:(B=c[v??0])==null?void 0:B.color},children:P})]})};return tt.createPortal(e.jsx("div",{onBlur:()=>{o(null)},id:`${s}-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
+ tw-shadow-lg`,"data-portal-host":!0,children:Object.values(c).map((v,P)=>e.jsx(b,{priorityTask:P,text:v.title},P))}),document.body)};return e.jsxs("div",{className:"tw-relative tw-h-[22px]",children:[e.jsxs("label",{onBlur:()=>{o(null)},htmlFor:s,className:"tw-flex tw-cursor-pointer tw-items-center tw-gap-2 active:tw-opacity-50",children:[e.jsx(ie.Tooltip,{dispatch:e.jsx(ie.Icons,{icon:"flag",size:"xs",strokeWidth:4,color:(x=c[l??0])==null?void 0:x.color}),children:e.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-p-5 tw-text-sm",style:{color:(p=c[l??0])==null?void 0:p.color},children:`Prioridad: ${(f=c[l??0])==null?void 0:f.title}`})}),r&&e.jsx("span",{style:{color:(h=c[l??0])==null?void 0:h.color},className:"tw-text-lg tw-font-normal",children:((g=c[l??0])==null?void 0:g.title)??"Sin prioridad"})]}),e.jsx("button",{id:s,onClick:b=>{o(i?null:{x:b.clientX,y:b.clientY})},className:"tw-hidden"}),e.jsx(m,{})]})},Je=new Map,Is=t=>{Je.forEach((a,r)=>{r!==t&&a()})},Ps=({children:t,actionsRef:a,newPosition:r,className:n})=>{const[s,i]=w.useState(),[o,d]=w.useState(!1);return w.useEffect(()=>{var l,u;if(a.current&&r){const c=((r==null?void 0:r.x)??0)-(((u=(l=a.current)==null?void 0:l.getBoundingClientRect())==null?void 0:u.width)??0);i(c),requestAnimationFrame(()=>{d(!0)})}return()=>{d(!1),i(void 0)}},[a==null?void 0:a.current,r==null?void 0:r.x]),!r||s===void 0?null:tt.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
- ${r}
8
- `,style:{top:`${n==null?void 0:n.y}px`,left:`${s}px`,zIndex:1,transform:o?"translateY(0)":"translateY(8px)"},children:t}),document.body)},fa=({status:t,nameRequiredTask:a,statusRequiredTask:n,id:r,statusLateTask:s=null,projectID:i,atrasoId:o,categoria:d})=>{const{setElementPosition:l,position:c,clearPosition:u}=Ct(),m=w.useRef(null),x=w.useRef(null),{startWorking:p,completeTask:f,startTask:g}=Ue(),h=w.useRef(!1),[b,v]=w.useState(!1),[I,$]=w.useState(null),[R,U]=w.useState("first"),P=a!==""&&n===2,[C,y]=w.useState(null),{atrasoReasons:H,isLoading:G,createAtraso:J,deleteAtraso:j}=la({enabled:!0}),[F,D]=w.useState(null),L=w.useRef(`menu-${r}`).current,W=w.useCallback(()=>{v(!1),u(),Je.delete(L)},[L,u]);w.useEffect(()=>(b?Je.set(L,W):Je.delete(L),()=>{Je.delete(L)}),[b,L,W]),w.useEffect(()=>{s&&U("third")},[]),w.useEffect(()=>{if(!b)return;const E=()=>{W()};return window.addEventListener("scroll",E,!0),document.addEventListener("scroll",E,!0),()=>{window.removeEventListener("scroll",E,!0),document.removeEventListener("scroll",E,!0)}},[b,W]),w.useEffect(()=>{if(!b)return;const E=S=>{var B,k;const O=S.target,N=(B=x.current)==null?void 0:B.contains(O),_=(k=m.current)==null?void 0:k.contains(O);!N&&!_&&W()};return document.addEventListener("mousedown",E),()=>{document.removeEventListener("mousedown",E)}},[b,W]);const ae=E=>{U(E),E==="second"&&t===0&&$("Trabajando")},X=()=>{const E=[];return t===0&&E.push({name:"Mover a trabajando",icon:"arrow_right",iconReverse:!1,onClick:()=>{ae("second")},disabled:!1}),t===1&&E.push({name:"Mover a completada",icon:"arrow_right",iconReverse:!1,onClick:()=>ae("second"),disabled:!1},{name:"Mover por hacer",icon:"arrow_left",iconReverse:!0,onClick:()=>ae("fourth"),disabled:!1}),o?E.push({name:"Eliminar atraso",icon:null,iconReverse:!1,onClick:()=>ae("third"),disabled:!1}):E.push({name:"Agregar atraso",icon:null,iconReverse:!1,onClick:()=>ae("third"),disabled:!1}),h!=null&&h.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:E.map(({name:S,icon:O,onClick:N,disabled:_,iconReverse:B},k)=>e.jsxs("button",{onClick:N,className:`
9
- ${O&&B?"tw-flex-row-reverse":""}
7
+ ${n}
8
+ `,style:{top:`${r==null?void 0:r.y}px`,left:`${s}px`,zIndex:1,transform:o?"translateY(0)":"translateY(8px)"},children:t}),document.body)},xa=({status:t,nameRequiredTask:a,statusRequiredTask:r,id:n,statusLateTask:s=null,projectID:i,atrasoId:o,categoria:d})=>{const{setElementPosition:l,position:u,clearPosition:c}=Ct(),m=w.useRef(null),x=w.useRef(null),{startWorking:p,completeTask:f,startTask:h}=Ue(),g=w.useRef(!1),[b,v]=w.useState(!1),[P,$]=w.useState(null),[B,H]=w.useState("first"),I=a!==""&&r===2,[D,y]=w.useState(null),{atrasoReasons:L,isLoading:K,createAtraso:X,deleteAtraso:j}=ca({enabled:!0}),[F,S]=w.useState(null),O=w.useRef(`menu-${n}`).current,W=w.useCallback(()=>{v(!1),c(),Je.delete(O)},[O,c]);w.useEffect(()=>(b?Je.set(O,W):Je.delete(O),()=>{Je.delete(O)}),[b,O,W]),w.useEffect(()=>{s&&H("third")},[]),w.useEffect(()=>{if(!b)return;const C=()=>{W()};return window.addEventListener("scroll",C,!0),document.addEventListener("scroll",C,!0),()=>{window.removeEventListener("scroll",C,!0),document.removeEventListener("scroll",C,!0)}},[b,W]),w.useEffect(()=>{if(!b)return;const C=E=>{var z,k;const R=E.target,N=(z=x.current)==null?void 0:z.contains(R),_=(k=m.current)==null?void 0:k.contains(R);!N&&!_&&W()};return document.addEventListener("mousedown",C),()=>{document.removeEventListener("mousedown",C)}},[b,W]);const ae=C=>{H(C),C==="second"&&t===0&&$("Trabajando")},Y=()=>{const C=[];return t===0&&C.push({name:"Mover a trabajando",icon:"arrow_right",iconReverse:!1,onClick:()=>{ae("second")},disabled:!1}),t===1&&C.push({name:"Mover a completada",icon:"arrow_right",iconReverse:!1,onClick:()=>ae("second"),disabled:!1},{name:"Mover por hacer",icon:"arrow_left",iconReverse:!0,onClick:()=>ae("fourth"),disabled:!1}),o?C.push({name:"Eliminar atraso",icon:null,iconReverse:!1,onClick:()=>ae("third"),disabled:!1}):C.push({name:"Agregar atraso",icon:null,iconReverse:!1,onClick:()=>ae("third"),disabled:!1}),g!=null&&g.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:C.map(({name:E,icon:R,onClick:N,disabled:_,iconReverse:z},k)=>e.jsxs("button",{onClick:N,className:`
9
+ ${R&&z?"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
13
- ${I===S?"tw-bg-content tw-border tw-border-primary-regular tw-text-primary-dark":"tw-border-bg-card"}
13
+ ${P===E?"tw-bg-content tw-border tw-border-primary-regular tw-text-primary-dark":"tw-border-bg-card"}
14
14
  ${_?"tw-cursor-not-allowed tw-opacity-50":"tw-cursor-pointer"}
15
- `,children:[S,O&&e.jsx(ie.Icons,{icon:O,size:"xs",strokeWidth:4,color:Z.primary.regular,className:"tw-justify-end"})]},k))})},oe=()=>{const E=t===0?["Trabajando"]:["Completadas"];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:[E.map((S,O)=>e.jsx("button",{onClick:()=>{$(S)},className:`
15
+ `,children:[E,R&&e.jsx(ie.Icons,{icon:R,size:"xs",strokeWidth:4,color:Z.primary.regular,className:"tw-justify-end"})]},k))})},oe=()=>{const C=t===0?["Trabajando"]:["Completadas"];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:[C.map((E,R)=>e.jsx("button",{onClick:()=>{$(E)},className:`
16
16
  tw-font-regular tw-rounded-md
17
17
  tw-border
18
18
  tw-pl-3 tw-pr-10
@@ -23,10 +23,10 @@
23
23
  tw-duration-200
24
24
  hover:tw-bg-[#e1ebf9]
25
25
  hover:tw-text-primary-dark
26
- ${I===S?"tw-bg-content tw-border tw-border-primary-regular tw-text-primary-dark":"tw-border-bg-card"}
27
- `,children:S},O)),e.jsx("button",{className:"tw-h-fit tw-w-full tw-rounded-lg tw-bg-texts-enfasis tw-p-1",onClick:()=>{h.current=!0,I==="Trabajando"?p({id:r}):I==="Por hacer"?g({id:r}):f({id:r,idAtraso:o}),W()},children:e.jsx("p",{className:"tw-text-[12px] tw-font-normal tw-text-white",children:"Mover"})})]})},te=()=>{var S;if(G)return e.jsx("div",{children:"Cargando motivos..."});const E=(H==null?void 0:H.map(O=>{var N;return{id:O==null?void 0:O.id,nombre:O==null?void 0:O.motivo_imj,categoria:(N=O==null?void 0:O.categoria)==null?void 0:N.nombre}}).filter(O=>O.categoria===(d==null?void 0:d.nombre)))||[];return E.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:[!C&&!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(Ps,{isOpen:!0,options:E,onSelect:(O,N)=>D({id:N,nombre:O})})]}):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 ${(S=C==null?void 0:C.nombre)==null?void 0:S.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
- 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:()=>{C?y(null):W()},children:C?"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
- 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:()=>{y(F),o&&!C?j(o):C&&V()},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"})},q=()=>{const E=["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:[E.map((S,O)=>e.jsx("button",{onClick:()=>{$(S)},className:`
26
+ ${P===E?"tw-bg-content tw-border tw-border-primary-regular tw-text-primary-dark":"tw-border-bg-card"}
27
+ `,children:E},R)),e.jsx("button",{className:"tw-h-fit tw-w-full tw-rounded-lg tw-bg-texts-enfasis tw-p-1",onClick:()=>{g.current=!0,P==="Trabajando"?p({id:n}):P==="Por hacer"?h({id:n}):f({id:n,idAtraso:o}),W()},children:e.jsx("p",{className:"tw-text-[12px] tw-font-normal tw-text-white",children:"Mover"})})]})},te=()=>{var E;if(K)return e.jsx("div",{children:"Cargando motivos..."});const C=(L==null?void 0:L.map(R=>{var N;return{id:R==null?void 0:R.id,nombre:R==null?void 0:R.motivo_imj,categoria:(N=R==null?void 0:R.categoria)==null?void 0:N.nombre}}).filter(R=>R.categoria===(d==null?void 0:d.nombre)))||[];return C.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:[!D&&!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(Fs,{isOpen:!0,options:C,onSelect:(R,N)=>S({id:N,nombre:R})})]}):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 ${(E=D==null?void 0:D.nombre)==null?void 0:E.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
+ 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:()=>{D?y(null):W()},children:D?"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
+ 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:()=>{y(F),o&&!D?j(o):D&&Q()},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"})},q=()=>{const C=["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:[C.map((E,R)=>e.jsx("button",{onClick:()=>{$(E)},className:`
30
30
  tw-font-regular tw-rounded-md
31
31
  tw-border
32
32
  tw-pl-3 tw-pr-10
@@ -37,25 +37,25 @@
37
37
  tw-duration-200
38
38
  hover:tw-bg-[#e1ebf9]
39
39
  hover:tw-text-primary-dark
40
- ${I===S?"tw-bg-content tw-border tw-border-primary-regular tw-text-primary-dark":"tw-border-bg-card"}
41
- `,children:S},O)),e.jsx("button",{className:"tw-h-fit tw-w-full tw-rounded-lg tw-bg-texts-enfasis tw-p-1",onClick:()=>{h.current=!0,g({id:r}),W()},children:e.jsx("p",{className:"tw-text-[12px] tw-font-normal tw-text-white",children:"Mover"})})]})},z=()=>{if(R==="first")return X();if(R==="second")return oe();if(R==="third")return te();if(R==="fourth")return q()},V=async()=>{if(F)try{await J({taskId:r,projectID:i,motivo:(F==null?void 0:F.id)??null}),W()}catch(E){console.error("Error al crear atraso:",E)}};return e.jsxs(e.Fragment,{children:[(P&&n===2||!a)&&e.jsx("button",{ref:m,onClick:()=>{b?W():(Ds(L),l(m),v(!0),U("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(ie.Icons,{icon:"elipsis",size:"xs"})})}),b&&e.jsx(Is,{actionsRef:m,newPosition:c,children:e.jsx("div",{ref:x,className:`
40
+ ${P===E?"tw-bg-content tw-border tw-border-primary-regular tw-text-primary-dark":"tw-border-bg-card"}
41
+ `,children:E},R)),e.jsx("button",{className:"tw-h-fit tw-w-full tw-rounded-lg tw-bg-texts-enfasis tw-p-1",onClick:()=>{g.current=!0,h({id:n}),W()},children:e.jsx("p",{className:"tw-text-[12px] tw-font-normal tw-text-white",children:"Mover"})})]})},U=()=>{if(B==="first")return Y();if(B==="second")return oe();if(B==="third")return te();if(B==="fourth")return q()},Q=async()=>{if(F)try{await X({taskId:n,projectID:i,motivo:(F==null?void 0:F.id)??null}),W()}catch(C){console.error("Error al crear atraso:",C)}};return e.jsxs(e.Fragment,{children:[(I&&r===2||!a)&&e.jsx("button",{ref:m,onClick:()=>{b?W():(Is(O),l(m),v(!0),H("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(ie.Icons,{icon:"elipsis",size:"xs"})})}),b&&e.jsx(Ps,{actionsRef:m,newPosition:u,children:e.jsx("div",{ref:x,className:`
42
42
  tw-ease tw-transition-all tw-duration-300
43
- ${R==="second"?"tw-translate-x-[-8px]":"tw-translate-x-0"}
44
- `,children:z()})})]})},Ps=({isOpen:t,onClose:a,options:n,onSelect:r,placeholderDropdown:s="Seleccione una opción",placeholderInput:i="Buscar"})=>{const[o,d]=w.useState(!1),[l,c]=w.useState(""),[u,m]=w.useState(null);if(!t)return null;const x=n.filter(p=>typeof p=="string"?p.toLowerCase().includes(l.toLowerCase()):p.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
43
+ ${B==="second"?"tw-translate-x-[-8px]":"tw-translate-x-0"}
44
+ `,children:U()})})]})},Fs=({isOpen:t,onClose:a,options:r,onSelect:n,placeholderDropdown:s="Seleccione una opción",placeholderInput:i="Buscar"})=>{const[o,d]=w.useState(!1),[l,u]=w.useState(""),[c,m]=w.useState(null);if(!t)return null;const x=r.filter(p=>typeof p=="string"?p.toLowerCase().includes(l.toLowerCase()):p.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
45
45
  tw-rounded-md tw-border tw-border-gray-300 tw-bg-white tw-px-4 tw-py-2
46
46
  tw-text-sm tw-font-medium tw-text-gray-700 tw-shadow-sm tw-transition-all tw-duration-200 tw-ease-in-out
47
- ${o?"tw-border-texts-enfasis":"tw-shadow-[0px_1px_4px_0px_rgba(37,37,37,0.20)_inset] "}`,onClick:()=>{d(!o),c(""),a&&o&&a()},children:[e.jsx("span",{className:`tw-mr-2 tw-text-left tw-text-[14px] tw-font-normal ${o?"tw-text-black-black_regular":"tw-text-black-black_light"}`,children:(typeof u=="object"?u==null?void 0:u.nombre:u)??s}),e.jsx(ie.Icons,{icon:"angle_up_outline",size:"xs",color:o?Z.black.black_medium:Z.black.black_light,strokeWidth:5,className:`tw-transition-transform tw-duration-200 ${o?"tw-rotate-180":"tw-rotate-0"}`})]}),o&&e.jsxs("div",{className:`tw-absolute tw-right-0 tw-max-h-[500px] tw-w-full tw-space-y-1 tw-overflow-y-auto
47
+ ${o?"tw-border-texts-enfasis":"tw-shadow-[0px_1px_4px_0px_rgba(37,37,37,0.20)_inset] "}`,onClick:()=>{d(!o),u(""),a&&o&&a()},children:[e.jsx("span",{className:`tw-mr-2 tw-text-left tw-text-[14px] tw-font-normal ${o?"tw-text-black-black_regular":"tw-text-black-black_light"}`,children:(typeof c=="object"?c==null?void 0:c.nombre:c)??s}),e.jsx(ie.Icons,{icon:"angle_up_outline",size:"xs",color:o?Z.black.black_medium:Z.black.black_light,strokeWidth:5,className:`tw-transition-transform tw-duration-200 ${o?"tw-rotate-180":"tw-rotate-0"}`})]}),o&&e.jsxs("div",{className:`tw-absolute tw-right-0 tw-max-h-[500px] tw-w-full tw-space-y-1 tw-overflow-y-auto
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
- 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:p=>c(p.target.value),autoComplete:"off"}),e.jsx("div",{className:"tw-absolute tw-left-[10px] tw-top-[6px] ",children:e.jsx(ie.Icons,{icon:"search",size:"xs",color:Z.black.black_light,style:{width:"16px",height:"16px"}})})]}),e.jsx(ie.Icons,{icon:"x_outline",size:"xs",strokeWidth:6,color:Z.black.black_medium,style:{width:"16px",height:"16px",cursor:"pointer"},onClick:()=>{d(!1),c(""),a&&o&&a()},className:"tw-mt-[2px]"})]}),x.map((p,f)=>e.jsxs("div",{children:[e.jsx("a",{href:"#",className:`tw-block tw-cursor-pointer tw-rounded-md tw-px-[18px] tw-py-[8px]
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:p=>u(p.target.value),autoComplete:"off"}),e.jsx("div",{className:"tw-absolute tw-left-[10px] tw-top-[6px] ",children:e.jsx(ie.Icons,{icon:"search",size:"xs",color:Z.black.black_light,style:{width:"16px",height:"16px"}})})]}),e.jsx(ie.Icons,{icon:"x_outline",size:"xs",strokeWidth:6,color:Z.black.black_medium,style:{width:"16px",height:"16px",cursor:"pointer"},onClick:()=>{d(!1),u(""),a&&o&&a()},className:"tw-mt-[2px]"})]}),x.map((p,f)=>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 ${p.nombre===u?"tw-bg-blue-blue_medium tw-text-primary-dark":"tw-text-gray-gray_medium"}`,onClick:g=>{g.preventDefault(),r(p,typeof p=="string"?null:p.id,f),m(typeof p=="string"?p:p.nombre),d(!1)},children:typeof p=="string"?p:p.nombre}),e.jsx("div",{style:{width:"100%",height:"1px",backgroundColor:Z.silver.silver_dark}})]},f))]})]})};function Fs({items:t}){var r;const[a,n]=w.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((s,i)=>e.jsx("div",{className:`tw-border-r tw-border-neutral-100 tw-pr-3 ${i!==0?"tw-px-3":""}`,children:e.jsx(je.Button,{variant:"ghost",onClick:()=>n(s.id),className:`rounded-none tw-h-12 tw-py-1 tw-text-xl tw-font-semibold ${a===s.id?"tw-border-primary tw-border-b-2 tw-text-primary-regular":"tw-border-b-0 tw-text-neutral-400"}`,children:s.label},s.id)},s.id))}),e.jsx("div",{className:"tw-flex-1 tw-overflow-y-auto tw-bg-white tw-pt-4",children:(r=t.find(s=>s.id===a))==null?void 0:r.component})]})}function As({comment:t}){var s,i,o,d,l;const{getImageOBP:a}=fe(),n=(d=(o=(i=(s=t==null?void 0:t.autor)==null?void 0:s.imagen)==null?void 0:i.formats)==null?void 0:o.thumbnail)==null?void 0:d.url;function r(c){const u=it.parseISO(c);return it.formatDistanceToNow(u,{locale:_t.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(qe,{size:"xxl",imageUrl:n?a(n):"",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:r(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 ks({currentUser:t,data:a,taskId:n,onNewComment:r}){var p,f,g;const{tasks_api:s,getImageOBP:i}=fe(),{register:o,handleSubmit:d,reset:l}=Ce.useForm(),[c,u]=w.useState([]),m=(g=(f=(p=t==null?void 0:t.imagen)==null?void 0:p.formats)==null?void 0:f.thumbnail)==null?void 0:g.url;w.useEffect(()=>{if(a!=null&&a.comentarios){const h=[...a.comentarios].sort((b,v)=>new Date(v.createdAt).getTime()-new Date(b.createdAt).getTime());u(h)}},[a]);const x=async h=>{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:h==null?void 0:h.comment,createdAt:new Date().toISOString()};await s.post("/api/comentarios",{data:{autor:t==null?void 0:t.id,comentario:h.comment,tarea:n}}),r(!0),u(v=>[b,...v]),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(x),className:"tw-flex tw-flex-row tw-items-center tw-gap-3",children:[e.jsx(qe,{size:"xxl",imageUrl:m?i(m):"",alt:"@shadcn"}),e.jsx(je.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((h,b)=>e.jsx(As,{comment:h},b))]})}function Ms({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"}},n=r=>r?it.format(new Date(r),"d MMM",{locale:_t.es}):"";return e.jsxs("div",{children:[e.jsxs("div",{className:"tw-flex tw-flex-row tw-items-center tw-gap-4",children:[e.jsx(je.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(r=>{var s,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(qe,{imageUrl:(d=(o=(i=(s=r.responsable)==null?void 0:s.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:r==null?void 0:r.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:n(r==null?void 0:r.createdAt)}),e.jsx("div",{className:`tw-block tw-h-4 tw-w-4 tw-rounded-full tw-bg-gray-400 ${((l=a[r==null?void 0:r.estatus])==null?void 0:l.color)??"tw-bg-gray-400"}`})]})]},r.id)})})]})}function qs({id:t,texto_largo:a,user_id:n}){const[r,s]=w.useState(a),{updatingTask:i}=Ue(),o=async()=>{await i({id:t,data:{texto_largo:r},user:n})};return w.useEffect(()=>{s(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(je.Input,{value:r,onChange:d=>s(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 xa({isOpen:t,setIsOpen:a,taskId:n}){var b,v,I,$,R,U,P,C,y;const[r,s]=w.useState(null),[i,o]=w.useState(!1),[d,l]=w.useState(!1),[c,u]=w.useState(null),m=($=(I=(v=(b=r==null?void 0:r.responsable)==null?void 0:b.imagen)==null?void 0:v.formats)==null?void 0:I.thumbnail)==null?void 0:$.url,{tasks_api:x,getImageOBP:p}=fe(),{user:f}=Ee();w.useEffect(()=>{if(t&&n||i){const H=async()=>{const J=await x.get(`/api/detalleTarea/${n}`);s(J==null?void 0:J.data)},G=async()=>{const J=await x.get(`/api/users/${f.id}`);u(J==null?void 0:J.data)};H(),G()}},[t,n,i,f.id,x]);const g=H=>H?it.format(H,"d MMM yyyy, h:mmaaa",{locale:_t.es}):"Fecha no disponible",h=[{id:1,label:"Todo",component:e.jsx(ks,{taskId:n,currentUser:c,data:r,onNewComment:o})},{id:2,label:"Dependencias",component:e.jsx(Ms,{data:r==null?void 0:r.ids_t_dependientes})}];return t&&tt.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:[((R=r==null?void 0:r.id_t_requerida)==null?void 0:R.id)&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"tw-cursor-help",onMouseOver:()=>l(!0),onMouseLeave:()=>l(!1),children:e.jsx(ie.Icons,{icon:"info_circle",color:Z.warning.regular,strokeWidth:4})}),d&&(()=>{var G;const H=Ze(r==null?void 0:r.id_t_requerida);return 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:"}),e.jsx("p",{className:"tw-text-2xl tw-font-normal tw-text-neutral-600",children:(G=r==null?void 0:r.id_t_requerida)==null?void 0:G.texto_corto}),H&&e.jsxs("p",{className:"tw-font-bold",children:["Responsable: ",e.jsx("span",{className:"tw-font-normal",children:H})]})]})})()]}),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:[r==null?void 0:r.texto_corto,(r==null?void 0:r.atraso)&&e.jsx(ie.TooltipV2,{content:(U=r==null?void 0:r.atraso)==null?void 0:U.motivo,position:"bottom",children:e.jsx("button",{className:"tw-ml-2 tw-inline-block tw-h-fit tw-align-middle",children:e.jsx(ie.Icons,{icon:"exclamation_triangle",color:Z.warning.dark,style:{width:"20px",height:"20px"}})})})]})})]}),e.jsx(je.Button,{variant:"shadow",size:"sm",onClick:()=>a(!1),className:"tw-h-12 tw-w-12 tw-bg-neutral-100",children:e.jsx(ie.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:[r==null?void 0:r.campania," / ",r==null?void 0:r.nombre_medio]})}),e.jsx(qs,{id:n,texto_largo:r==null?void 0:r.texto_largo,user_id:f.id}),e.jsx(je.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(je.AccordionItem,{value:"item-1",className:"tw-border-none",children:[e.jsx(je.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(je.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"}),(P=r==null?void 0:r.responsable)!=null&&P.nombre?e.jsxs("div",{className:"tw-flex tw-flex-row tw-items-center tw-gap-2",children:[e.jsx(qe,{size:"xxl",imageUrl:m?p(m):"",alt:"@shadcn"}),e.jsx("span",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:(C=r==null?void 0:r.responsable)==null?void 0:C.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:((y=r==null?void 0:r.equipo)==null?void 0:y.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(ma,{priority:parseInt(r==null?void 0:r.prioridad)||0,id:n,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:(r==null?void 0:r.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(r==null?void 0:r.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(r==null?void 0:r.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(r==null?void 0:r.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(r==null?void 0:r.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(r==null?void 0:r.updatedAt)})]})]})})]})}),e.jsx(Fs,{items:h})]})})]}),document.body)}class Ls{static toPauseReasons(a){return{id:a.id,motivo_imj:a.motivo_imj}}}const Os=async({tasks_api:t})=>{try{const a=await t.get("/api/motivos");return he(a.data).map(Ls.toPauseReasons)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Rs=()=>{const{tasks_api:t}=fe();return{pauseReasons:pe.useQuery({queryKey:["pause_task_reasons"],queryFn:()=>Os({tasks_api:t}),staleTime:1e3*60*60*24})}};class Bs{static toKanbanTasks(a){var i,o,d,l,c,u,m,x,p,f,g,h,b;const n=Ze(a==null?void 0:a.id_t_requerida),r=Ze(a==null?void 0:a.tarea_padre);let s=[];return a!=null&&a.responsable&&s.push({id:a.responsable.id,name:a.responsable.nombre,image:(c=(l=(d=(o=(i=a.responsable)==null?void 0:i.userOBP)==null?void 0:o.imagen)==null?void 0:d.formats)==null?void 0:l.thumbnail)==null?void 0:c.url,role:((u=a.responsable.userOBP)==null?void 0:u.role)||{id:0,name:""}}),(m=a==null?void 0:a.equipo)!=null&&m.miembros&&a.equipo.miembros.forEach(v=>{var I,$,R,U,P;s!=null&&s.find(C=>C.id===v.idUser.id)||v.idUser&&s.push({id:v.idUser.id,name:v.idUser.nombre,image:(U=(R=($=(I=v==null?void 0:v.userOBP)==null?void 0:I.imagen)==null?void 0:$.formats)==null?void 0:R.thumbnail)==null?void 0:U.url,role:((P=v.userOBP)==null?void 0:P.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:(x=a==null?void 0:a.proyecto)==null?void 0:x.nombre,idProject:(p=a==null?void 0:a.proyecto)==null?void 0:p.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:((f=a==null?void 0:a.responsable)==null?void 0:f.id)??null,name_father_required_task:((g=a==null?void 0:a.tarea_padre)==null?void 0:g.texto_corto)??null,name_father_required_task_responsible:r,statusRequiredTask:((h=a.id_t_requerida)==null?void 0:h.estatus)??null,nameRequiredTask:((b=a.id_t_requerida)==null?void 0:b.texto_corto)??null,nameRequiredTaskResponsible:n,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,...(a==null?void 0:a.cambio_arte)&&{cambio_arte:a==null?void 0:a.cambio_arte}}}}const St=async({filters:t,tasks_api:a})=>{try{const r=(await a.get("/api/listado_tareas?populate=*",{params:t})).data.tareas.map(he),s=new Set;if(r.forEach(i=>{var o;(o=i==null?void 0:i.id_t_requerida)!=null&&o.id&&s.add(i.id_t_requerida.id)}),s.size>0){const i=Array.from(s),o=Pe.stringify({filters:{id:{$in:i}},populate:{responsable:{fields:["id","nombre"]},equipo:{fields:["id","nombre"]}}},{encodeValuesOnly:!0});try{const d=await a.get(`/api/tareas?${o}`),l=he(d.data.data||d.data),c=Array.isArray(l)?l:[l],u=new Map(c.map(m=>[m.id,m]));r.forEach(m=>{var x;if((x=m==null?void 0:m.id_t_requerida)!=null&&x.id){const p=u.get(m.id_t_requerida.id);p&&(m.id_t_requerida={...m.id_t_requerida,responsable:p.responsable||null,equipo:p.equipo||null})}})}catch{}}return r.map(Bs.toKanbanTasks)}catch(n){throw console.log({error:n}),`Error al obtener las tareas: ${n}`}},Dt=t=>{var a;if(t!=null&&t.hasNextPage){const n=(a=t==null?void 0:t.data)==null?void 0:a.pages[t.data.pages.length-1];(n==null?void 0:n.length)===30&&(t==null||t.fetchNextPage())}},Ve=t=>({pagination:{page:t,pageSize:30,withCount:!0}}),ga=()=>{var c;const t=pe.useQueryClient(),{tasks_api:a}=fe(),{user:n}=Ee(),{filters:r}=Le(),[s,i]=w.useState(0),[o,d]=w.useState({owner:{user:n.id,config:((c=r==null?void 0:r.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:n.role},status:"por_hacer"}),l=pe.useInfiniteQuery({initialPageParam:1,queryKey:["to_do_tasks",o],queryFn:({pageParam:u})=>St({filters:{...o,status:"por_hacer",...Ve(u)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(u,m)=>m.length+1});return w.useEffect(()=>{var u;Object.keys(r).length>0&&d({...r,owner:{user:n.id,config:((u=r==null?void 0:r.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:n.role},status:"por_hacer"})},[r]),w.useEffect(()=>{t.invalidateQueries({queryKey:["to_do_tasks",o]})},[o]),w.useEffect(()=>{(async()=>{const m=await a.get("/api/listado_tareas",{params:{...o,status:"por_hacer",...Ve(1),tasks_api:a,justCount:!0}});i(m.data.total)})()},[o,l==null?void 0:l.data]),{toDoTasks:l,total:s,filtersToSend:o}},ha=({idTask:t,setOpen:a,paused:n})=>{const r=pe.useQueryClient(),{toDoTasks:s,filtersToSend:i}=ga(),[o,d]=w.useState(!1),{control:l,watch:c}=Ce.useForm(),{tasksProject:u}=Qe(),{postPauseTask:m,postReanudeTask:x}=Ue(),{pauseReasons:p}=Rs(),f=async()=>{try{if(a(!1),await m({id:t,motiveId:c("pauseReason")}),await r.invalidateQueries({queryKey:["to_do_tasks",i]}),await r.invalidateQueries({queryKey:["tasksProject"]}),s&&typeof s.refetch=="function"||u&&typeof u.refetch=="function"){const h=await s.refetch(),b=await u.refetch();return[h,b]}}catch(h){console.error("Error al pausar la tarea:",h)}},g=async()=>{try{if(a(!1),await x({id:t}),await r.invalidateQueries({queryKey:["to_do_tasks",i]}),await r.invalidateQueries({queryKey:["tasksProject"]}),s&&typeof s.refetch=="function"||u&&typeof u.refetch=="function"){const h=await s.refetch(),b=await u.refetch();return[h,b]}}catch(h){console.error("Error al reanudar la tarea:",h)}};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?"})]}):n?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(Ce.Controller,{name:"pauseReason",control:l,rules:{required:!0},render:({field:h})=>{var b;return e.jsxs(je.Select,{value:h.value,onValueChange:v=>h.onChange(v),children:[e.jsx(je.SelectTrigger,{className:"tw-h-[26px] !tw-w-[290px] tw-border-none tw-text-lg tw-shadow-input",children:e.jsx(je.SelectValue,{placeholder:"Selecciona una razón"})}),e.jsx(je.SelectContent,{className:"tw-border-none tw-bg-white tw-shadow-input",children:e.jsx(je.SelectGroup,{children:(b=p==null?void 0:p.data)==null?void 0:b.map(v=>e.jsx(je.SelectItem,{value:v.id,className:"tw-border-none tw-bg-white tw-text-lg",children:v.motivo_imj},v.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"}),n?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?f():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"})]})]})})},$s=({id:t,task:a,endDate:n,users:r,willBePaused:s,nameProject:i,comments:o,priority:d,difficulty:l,responsible:c,nameRequiredTask:u,nameRequiredTaskResponsible:m,statusRequiredTask:x,status:p,repeatsToDo:f,repeats:g,medioName:h,paused:b,idProject:v,atraso:I,categoria:$,cambio_arte:R,name_father_required_task:U,name_father_required_task_responsible:P})=>{var E,S,O;const[C,y]=w.useState(!1),[H,G]=w.useState(!1),{reasignResponsible:J,updateUnitys:j}=Ue(),{getOBPUrlApi:F}=fe(),[D,M]=w.useState(g??0),L=!!(f&&g===f),W=!f||f===1,ae=p===0,{user:X}=Ee(),oe=()=>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:[p<2&&(U||L||W||ae)&&e.jsx(ca,{id:t,nameRequiredTask:u??"",statusRequiredTask:x??0,status:p,idAtraso:I==null?void 0:I.atrasoId,nameRequiredTaskResponsible:m,name_father_required_task:U,name_father_required_task_responsible:P,repeatsAreCompleted:L}),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:()=>y(!0),children:a})]}),(L||W||ae)&&p!==2&&e.jsx(fa,{id:t,nameRequiredTask:u,status:p,statusRequiredTask:x,projectID:v,atrasoId:I==null?void 0:I.atrasoId,categoria:$})]}),te={0:{title:"Muy fácil",color:Z.primary.regular},1:{title:"Fácil",color:Z.success.regular},2:{title:"Media",color:Z.warning.regular},3:{title:"Difícil",color:Z.danger.regular},4:{title:"Muy difícil",color:Z.danger.dark}},q=N=>{M(_=>N==="minus"?Math.max(0,_-1):Math.min(f,_+1))},z=N=>{var _;return((_=N==null?void 0:N.charAt(0))==null?void 0:_.toUpperCase())??""},V=N=>N==="Venta"?"accent":"danger";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(oe,{}),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}),h&&e.jsx("p",{className:"tw-text-xl",children:h})]}),R&&e.jsx(ve.Badge,{label:R.nombre,color:"gray",icon:Ie.faImage,size:"md",theme:"solid"}),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(pa,{responsible:c,role:X==null?void 0:X.role,status:p,users:r.filter(N=>c?N.id===c:!0).map(N=>Nt(N,F())),onClick:async(N,_)=>{await J({idNewResponsible:N,id:t,typeOfSelect:_})}}),s&&e.jsx(wa,{open:H,setOpen:G,trigger:e.jsx("button",{type:"button",onClick:()=>G(!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(ie.Icons,{icon:b?"play":"pause",size:"xs",strokeWidth:2})}),children:e.jsx(ha,{idTask:t,setOpen:G,paused:b})})]}),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:[e.jsx(ve.Badge,{label:z(($==null?void 0:$.tipo)??"P"),color:V(($==null?void 0:$.tipo)??"Preventa"),size:"sm",theme:"solid"}),I&&e.jsx(ie.Tooltip,{dispatch:e.jsx(ie.Icons,{icon:"exclamation_triangle",size:"xs",color:"#C62E1F",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:"#C62E1F"},children:`Tarea atrasada debido a: ${I==null?void 0:I.motivo}`})}),e.jsx(ie.Tooltip,{dispatch:e.jsx(ie.Icons,{icon:"difficulty",size:"xs",color:(E=te[l??0])==null?void 0:E.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:(S=te[l??0])==null?void 0:S.color},children:`Dificultad ${(O=te[l??0])==null?void 0:O.title}`})}),e.jsx(ma,{priority:d,id:t}),!f||f&&p===0&&e.jsxs(e.Fragment,{children:[e.jsx(ie.Icons,{icon:"calendar",size:"xs",strokeWidth:3,color:Z.texts.subtext}),e.jsx("p",{className:"tw-font-regular tw-text-sm tw-text-texts-subtext",children:`${n.getDate()} ${vt(n.getMonth()).slice(0,3)}`})]})]}),p===1&&f&&f>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:()=>q("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(ie.Icons,{icon:"circle_minus",size:"xs",strokeWidth:3,color:Z.texts.placeholder})}),e.jsx("p",{className:"tw-text-[10px] tw-text-texts-placeholder",children:`${D??0} / ${f??0}`}),e.jsx("button",{onClick:()=>q("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(ie.Icons,{icon:"circle_plus",size:"xs",strokeWidth:3,color:Z.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:()=>{j({repeats:D,id:t})},children:"Agregar Unidad"})]})]})]}),o>0&&e.jsx("div",{className:"tw-mt-4 tw-border-t tw-border-gray-200 tw-pt-2",children:e.jsxs("button",{onClick:()=>y(!0),className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx(ie.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(xa,{taskId:t,isOpen:C,setIsOpen:y})]})},lt=({title:t,tasks:a,loadNextPage:n,isFetching:r,total:s})=>{const i=w.useRef(null),o=w.useRef(null),d=w.useRef(!1);w.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:m,clientHeight:x,scrollHeight:p}=u==null?void 0:u.target,f=m/(p-x)*100;f<=95||f>=95&&(d.current=!0,n&&n(),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(ie.Icons,{icon:"group_files",size:"xs",strokeWidth:5,color:Z.texts.placeholder}),e.jsx("p",{className:"tw-text-2xl tw-text-texts-placeholder",children:s??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($s,{...u},u.id)),r?e.jsx(js,{}):e.jsx("p",{className:"tw-text-center tw-text-2xl tw-text-gray-500",children:"No hay más tareas por mostrar..."})]})]})},Ut=[{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"}]}],zs=()=>{const{user:t}=Ee(),[a,n]=w.useState([...Ut]),r=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return w.useEffect(()=>{const s=[...Ut];r.forEach(d=>{if(d.roles.includes(t.role)){const l=s.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(s);i!==o&&n(s)},[t.role]),{filters:a}},Us=()=>{var i;const{defineFields:t}=Le(),{tasksProject:a}=Qe(),{filters:n}=zs();w.useEffect(()=>{(async()=>{let d=[...n];t(d)})()},[]);let r=(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 s=["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:s.map((o,d)=>{var l;return e.jsx(lt,{total:((l=r==null?void 0:r[d])==null?void 0:l.length)??0,title:o,tasks:(r==null?void 0:r[d])??[],isFetching:a==null?void 0:a.isFetching,isLoadingData:a==null?void 0:a.isLoading})})})},Hs=()=>{var r,s;const{toDoTasks:t,total:a}=ga(),n=[...((s=(r=t==null?void 0:t.data)==null?void 0:r.pages)==null?void 0:s.flat())??[]];return e.jsx(lt,{total:a,title:"Por hacer",tasks:n,loadNextPage:()=>Dt(t),isFetching:t==null?void 0:t.isFetching,isLoadingData:t==null?void 0:t.isLoading})},Ws=()=>{var c;const t=pe.useQueryClient(),{tasks_api:a}=fe(),{user:n}=Ee(),{filters:r}=Le(),[s,i]=w.useState(0),[o,d]=w.useState({owner:{user:n.id,config:((c=r==null?void 0:r.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:n.role},status:"trabajando"}),l=pe.useInfiniteQuery({initialPageParam:1,queryKey:["working_tasks",o],queryFn:({pageParam:u})=>St({filters:{...o,status:"trabajando",...Ve(u)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(u,m)=>m.length+1});return w.useEffect(()=>{var u;Object.keys(r).length>0&&d({...r,owner:{user:n.id,config:((u=r==null?void 0:r.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:n.role},status:"trabajando"})},[r]),w.useEffect(()=>{t.invalidateQueries({queryKey:["working_tasks",o]})},[o]),w.useEffect(()=>{(async()=>{const m=await a.get("/api/listado_tareas",{params:{...o,status:"trabajando",...Ve(1),tasks_api:a,justCount:!0}});i(m.data.total)})()},[o,l==null?void 0:l.data]),{workingTasks:l,total:s}},Ks=()=>{var r,s;const{workingTasks:t,total:a}=Ws(),n=[...((s=(r=t==null?void 0:t.data)==null?void 0:r.pages)==null?void 0:s.flat())??[]];return e.jsx(lt,{total:a,title:"Trabajando",tasks:n,loadNextPage:()=>Dt(t),isFetching:t==null?void 0:t.isFetching})},Gs=()=>{var c;const t=pe.useQueryClient(),{user:a}=Ee(),{tasks_api:n}=fe(),{filters:r}=Le(),[s,i]=w.useState(0),[o,d]=w.useState({owner:{user:a.id,config:((c=r==null?void 0:r.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:a.role},status:"completadas"}),l=pe.useInfiniteQuery({initialPageParam:1,queryKey:["done_tasks",o],queryFn:({pageParam:u})=>St({filters:{...o,status:"completadas",...Ve(u)},tasks_api:n}),staleTime:1e3*60*60*24,getNextPageParam:(u,m)=>m.length+1});return w.useEffect(()=>{var u;Object.keys(r).length>0&&d({...r,owner:{user:a.id,config:((u=r==null?void 0:r.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:a.role},status:"completadas"})},[r]),w.useEffect(()=>{t.invalidateQueries({queryKey:["done_tasks",o]})},[o]),w.useEffect(()=>{(async()=>{const m=await n.get("/api/listado_tareas",{params:{...o,status:"completadas",...Ve(1),justCount:!0,tasks_api:n}});i(m.data.total)})()},[l==null?void 0:l.data,o]),{doneTasks:l,total:s}},Vs=()=>{var r,s;const{doneTasks:t,total:a}=Gs(),n=[...((s=(r=t==null?void 0:t.data)==null?void 0:r.pages)==null?void 0:s.flat())??[]];return e.jsx(lt,{title:"Completadas",tasks:n,loadNextPage:()=>Dt(t),isFetching:t==null?void 0:t.isFetching,total:a})};class ot{static toSalesmanUsers(a){return{id:a.id,name:a.nombre}}}const Qs=()=>{const{tasks_api:t}=fe(),{filters:a}=Le(),{user:n}=Ee();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:n==null?void 0:n.id,config:((l=a==null?void 0:a.owner)==null?void 0:l.config)??"yo_y_mis_equipos",role:n.role},justProjects:!0}})]);return{salesmanUsers:o.data.map(ot.toSalesmanUsers),projects:d.data.map(ot.toSalesmanUsers)}},getProjects:async()=>{var d;return(await t.get("/api/listado_tareas",{params:{...a,owner:{user:n.id,config:((d=a==null?void 0:a.owner)==null?void 0:d.config)??"yo_y_mis_equipos",role:n.role},justProjects:!0}})).data.map(ot.toSalesmanUsers)},getSalesmans:async()=>(await t.get("/api/obtener-comerciales")).data.map(ot.toSalesmanUsers)}},Xs=()=>{const{user:t}=Ee(),[a,n]=w.useState([...Bt]),r=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return w.useEffect(()=>{const s=[...Bt];r.forEach(d=>{if(d.roles.includes(t.role)){const l=s.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(s);i!==o&&n(s)},[t.role]),{filters:a}},Ys=()=>{const{defineFields:t}=Le(),{getSalesmanAndProjects:a}=Qs(),{filters:n}=Xs();return w.useEffect(()=>{(async()=>{let s=[...n],{salesmanUsers:i,projects:o}=await a();t(s.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(Hs,{}),e.jsx(Ks,{}),e.jsx(Vs,{})]})},ba=w.createContext({}),Js=({children:t})=>{const[a,n]=w.useState([]),r=s=>{n(i=>i.includes(s)?i.filter(o=>o!==s):[...i,s])};return e.jsx(ba.Provider,{value:{selectedTasks:a,selectTask:r},children:t})},Zs=()=>w.useContext(ba),ya=({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(ie.Icons,{icon:"calendar",size:"xs",strokeWidth:4,color:Z.texts.subtext}),e.jsxs("p",{className:"tw-text-lg",children:[" ",Lt(t)]})]}),e.jsx(ie.Icons,{icon:"arrow_right",size:"xs",strokeWidth:4,color:Z.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(ie.Icons,{icon:"calendar",size:"xs",strokeWidth:4,color:Z.texts.subtext}),e.jsxs("p",{className:"tw-text-lg",children:[" ",Lt(a)]})]})]}),ja=({id:t,priority:a,difficulty:n,endDate:r,atraso:s})=>{var c,u,m;const[i,o]=w.useState({priority:!1,difficulty:!1,atraso:!1}),d={0:{title:"N/A",color:Z.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:Z.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:Z.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:Z.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:Z.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:Z.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:Z.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:Z.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:Z.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(ie.Tooltip,{dispatch:e.jsx(ie.Icons,{icon:"align_center",size:"xs",strokeWidth:4,color:Z.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[n===0?1:n])==null?void 0:c.border}
52
- ${(u=l[n===0?1:n])==null?void 0:u.borderHover}
51
+ hover:tw-bg-blue-blue_medium hover:tw-text-primary-dark ${p.nombre===c?"tw-bg-blue-blue_medium tw-text-primary-dark":"tw-text-gray-gray_medium"}`,onClick:h=>{h.preventDefault(),n(p,typeof p=="string"?null:p.id,f),m(typeof p=="string"?p:p.nombre),d(!1)},children:typeof p=="string"?p:p.nombre}),e.jsx("div",{style:{width:"100%",height:"1px",backgroundColor:Z.silver.silver_dark}})]},f))]})]})};function As({items:t}){var n;const[a,r]=w.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((s,i)=>e.jsx("div",{className:`tw-border-r tw-border-neutral-100 tw-pr-3 ${i!==0?"tw-px-3":""}`,children:e.jsx(je.Button,{variant:"ghost",onClick:()=>r(s.id),className:`rounded-none tw-h-12 tw-py-1 tw-text-xl tw-font-semibold ${a===s.id?"tw-border-primary tw-border-b-2 tw-text-primary-regular":"tw-border-b-0 tw-text-neutral-400"}`,children:s.label},s.id)},s.id))}),e.jsx("div",{className:"tw-flex-1 tw-overflow-y-auto tw-bg-white tw-pt-4",children:(n=t.find(s=>s.id===a))==null?void 0:n.component})]})}function ks({comment:t}){var s,i,o,d,l;const{getImageOBP:a}=fe(),r=(d=(o=(i=(s=t==null?void 0:t.autor)==null?void 0:s.imagen)==null?void 0:i.formats)==null?void 0:o.thumbnail)==null?void 0:d.url;function n(u){const c=it.parseISO(u);return it.formatDistanceToNow(c,{locale:_t.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(qe,{size:"xxl",imageUrl:r?a(r):"",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 Ms({currentUser:t,data:a,taskId:r,onNewComment:n}){var p,f,h;const{tasks_api:s,getImageOBP:i}=fe(),{register:o,handleSubmit:d,reset:l}=Ce.useForm(),[u,c]=w.useState([]),m=(h=(f=(p=t==null?void 0:t.imagen)==null?void 0:p.formats)==null?void 0:f.thumbnail)==null?void 0:h.url;w.useEffect(()=>{if(a!=null&&a.comentarios){const g=[...a.comentarios].sort((b,v)=>new Date(v.createdAt).getTime()-new Date(b.createdAt).getTime());c(g)}},[a]);const x=async g=>{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:g==null?void 0:g.comment,createdAt:new Date().toISOString()};await s.post("/api/comentarios",{data:{autor:t==null?void 0:t.id,comentario:g.comment,tarea:r}}),n(!0),c(v=>[b,...v]),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(x),className:"tw-flex tw-flex-row tw-items-center tw-gap-3",children:[e.jsx(qe,{size:"xxl",imageUrl:m?i(m):"",alt:"@shadcn"}),e.jsx(je.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"})]}),u&&u.map((g,b)=>e.jsx(ks,{comment:g},b))]})}function qs({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"}},r=n=>n?it.format(new Date(n),"d MMM",{locale:_t.es}):"";return e.jsxs("div",{children:[e.jsxs("div",{className:"tw-flex tw-flex-row tw-items-center tw-gap-4",children:[e.jsx(je.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 s,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(qe,{imageUrl:(d=(o=(i=(s=n.responsable)==null?void 0:s.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:r(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 Ls({id:t,texto_largo:a,user_id:r}){const[n,s]=w.useState(a),{updatingTask:i}=Ue(),o=async()=>{await i({id:t,data:{texto_largo:n},user:r})};return w.useEffect(()=>{s(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(je.Input,{value:n,onChange:d=>s(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 ga({isOpen:t,setIsOpen:a,taskId:r}){var b,v,P,$,B,H,I,D,y;const[n,s]=w.useState(null),[i,o]=w.useState(!1),[d,l]=w.useState(!1),[u,c]=w.useState(null),m=($=(P=(v=(b=n==null?void 0:n.responsable)==null?void 0:b.imagen)==null?void 0:v.formats)==null?void 0:P.thumbnail)==null?void 0:$.url,{tasks_api:x,getImageOBP:p}=fe(),{user:f}=Se();w.useEffect(()=>{if(t&&r||i){const L=async()=>{const X=await x.get(`/api/detalleTarea/${r}`);s(X==null?void 0:X.data)},K=async()=>{const X=await x.get(`/api/users/${f.id}`);c(X==null?void 0:X.data)};L(),K()}},[t,r,i,f.id,x]);const h=L=>L?it.format(L,"d MMM yyyy, h:mmaaa",{locale:_t.es}):"Fecha no disponible",g=[{id:1,label:"Todo",component:e.jsx(Ms,{taskId:r,currentUser:u,data:n,onNewComment:o})},{id:2,label:"Dependencias",component:e.jsx(qs,{data:n==null?void 0:n.ids_t_dependientes})}];return t&&tt.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:[((B=n==null?void 0:n.id_t_requerida)==null?void 0:B.id)&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"tw-cursor-help",onMouseOver:()=>l(!0),onMouseLeave:()=>l(!1),children:e.jsx(ie.Icons,{icon:"info_circle",color:Z.warning.regular,strokeWidth:4})}),d&&(()=>{var K;const L=Ze(n==null?void 0:n.id_t_requerida);return 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:"}),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}),L&&e.jsxs("p",{className:"tw-font-bold",children:["Responsable: ",e.jsx("span",{className:"tw-font-normal",children:L})]})]})})()]}),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(ie.TooltipV2,{content:(H=n==null?void 0:n.atraso)==null?void 0:H.motivo,position:"bottom",children:e.jsx("button",{className:"tw-ml-2 tw-inline-block tw-h-fit tw-align-middle",children:e.jsx(ie.Icons,{icon:"exclamation_triangle",color:Z.warning.dark,style:{width:"20px",height:"20px"}})})})]})})]}),e.jsx(je.Button,{variant:"shadow",size:"sm",onClick:()=>a(!1),className:"tw-h-12 tw-w-12 tw-bg-neutral-100",children:e.jsx(ie.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(Ls,{id:r,texto_largo:n==null?void 0:n.texto_largo,user_id:f.id}),e.jsx(je.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(je.AccordionItem,{value:"item-1",className:"tw-border-none",children:[e.jsx(je.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(je.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"}),(I=n==null?void 0:n.responsable)!=null&&I.nombre?e.jsxs("div",{className:"tw-flex tw-flex-row tw-items-center tw-gap-2",children:[e.jsx(qe,{size:"xxl",imageUrl:m?p(m):"",alt:"@shadcn"}),e.jsx("span",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:(D=n==null?void 0:n.responsable)==null?void 0:D.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:((y=n==null?void 0:n.equipo)==null?void 0:y.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(fa,{priority:parseInt(n==null?void 0:n.prioridad)||0,id:r,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:h(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:h(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:h(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:h(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:h(n==null?void 0:n.updatedAt)})]})]})})]})}),e.jsx(As,{items:g})]})})]}),document.body)}class Os{static toPauseReasons(a){return{id:a.id,motivo_imj:a.motivo_imj}}}const Rs=async({tasks_api:t})=>{try{const a=await t.get("/api/motivos");return he(a.data).map(Os.toPauseReasons)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Bs=()=>{const{tasks_api:t}=fe();return{pauseReasons:ue.useQuery({queryKey:["pause_task_reasons"],queryFn:()=>Rs({tasks_api:t}),staleTime:1e3*60*60*24})}};class $s{static toKanbanTasks(a){var i,o,d,l,u,c,m,x,p,f,h,g,b;const r=Ze(a==null?void 0:a.id_t_requerida),n=Ze(a==null?void 0:a.tarea_padre);let s=[];return a!=null&&a.responsable&&s.push({id:a.responsable.id,name:a.responsable.nombre,image:(u=(l=(d=(o=(i=a.responsable)==null?void 0:i.userOBP)==null?void 0:o.imagen)==null?void 0:d.formats)==null?void 0:l.thumbnail)==null?void 0:u.url,role:((c=a.responsable.userOBP)==null?void 0:c.role)||{id:0,name:""}}),(m=a==null?void 0:a.equipo)!=null&&m.miembros&&a.equipo.miembros.forEach(v=>{var P,$,B,H,I;s!=null&&s.find(D=>D.id===v.idUser.id)||v.idUser&&s.push({id:v.idUser.id,name:v.idUser.nombre,image:(H=(B=($=(P=v==null?void 0:v.userOBP)==null?void 0:P.imagen)==null?void 0:$.formats)==null?void 0:B.thumbnail)==null?void 0:H.url,role:((I=v.userOBP)==null?void 0:I.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:(x=a==null?void 0:a.proyecto)==null?void 0:x.nombre,idProject:(p=a==null?void 0:a.proyecto)==null?void 0:p.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:((f=a==null?void 0:a.responsable)==null?void 0:f.id)??null,name_father_required_task:((h=a==null?void 0:a.tarea_padre)==null?void 0:h.texto_corto)??null,name_father_required_task_responsible:n,statusRequiredTask:((g=a.id_t_requerida)==null?void 0:g.estatus)??null,nameRequiredTask:((b=a.id_t_requerida)==null?void 0:b.texto_corto)??null,nameRequiredTaskResponsible:r,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,...(a==null?void 0:a.cambio_arte)&&{cambio_arte:a==null?void 0:a.cambio_arte}}}}const St=async({filters:t,tasks_api:a})=>{try{const n=(await a.get("/api/listado_tareas?populate=*",{params:t})).data.tareas.map(he),s=new Set;if(n.forEach(i=>{var o;(o=i==null?void 0:i.id_t_requerida)!=null&&o.id&&s.add(i.id_t_requerida.id)}),s.size>0){const i=Array.from(s),o=Pe.stringify({filters:{id:{$in:i}},populate:{responsable:{fields:["id","nombre"]},equipo:{fields:["id","nombre"]}}},{encodeValuesOnly:!0});try{const d=await a.get(`/api/tareas?${o}`),l=he(d.data.data||d.data),u=Array.isArray(l)?l:[l],c=new Map(u.map(m=>[m.id,m]));n.forEach(m=>{var x;if((x=m==null?void 0:m.id_t_requerida)!=null&&x.id){const p=c.get(m.id_t_requerida.id);p&&(m.id_t_requerida={...m.id_t_requerida,responsable:p.responsable||null,equipo:p.equipo||null})}})}catch{}}return n.map($s.toKanbanTasks)}catch(r){throw console.log({error:r}),`Error al obtener las tareas: ${r}`}},Dt=t=>{var a;if(t!=null&&t.hasNextPage){const r=(a=t==null?void 0:t.data)==null?void 0:a.pages[t.data.pages.length-1];(r==null?void 0:r.length)===30&&(t==null||t.fetchNextPage())}},Qe=t=>({pagination:{page:t,pageSize:30,withCount:!0}}),ha=()=>{var u;const t=ue.useQueryClient(),{tasks_api:a}=fe(),{user:r}=Se(),{filters:n}=Le(),[s,i]=w.useState(0),[o,d]=w.useState({owner:{user:r.id,config:((u=n==null?void 0:n.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:r.role},status:"por_hacer"}),l=ue.useInfiniteQuery({initialPageParam:1,queryKey:["to_do_tasks",o],queryFn:({pageParam:c})=>St({filters:{...o,status:"por_hacer",...Qe(c)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(c,m)=>m.length+1});return w.useEffect(()=>{var c;Object.keys(n).length>0&&d({...n,owner:{user:r.id,config:((c=n==null?void 0:n.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:r.role},status:"por_hacer"})},[n]),w.useEffect(()=>{t.invalidateQueries({queryKey:["to_do_tasks",o]})},[o]),w.useEffect(()=>{(async()=>{const m=await a.get("/api/listado_tareas",{params:{...o,status:"por_hacer",...Qe(1),tasks_api:a,justCount:!0}});i(m.data.total)})()},[o,l==null?void 0:l.data]),{toDoTasks:l,total:s,filtersToSend:o}},ba=({idTask:t,setOpen:a,paused:r})=>{const n=ue.useQueryClient(),{toDoTasks:s,filtersToSend:i}=ha(),[o,d]=w.useState(!1),{control:l,watch:u}=Ce.useForm(),{tasksProject:c}=Ve(),{postPauseTask:m,postReanudeTask:x}=Ue(),{pauseReasons:p}=Bs(),f=async()=>{try{if(a(!1),await m({id:t,motiveId:u("pauseReason")}),await n.invalidateQueries({queryKey:["to_do_tasks",i]}),await n.invalidateQueries({queryKey:["tasksProject"]}),s&&typeof s.refetch=="function"||c&&typeof c.refetch=="function"){const g=await s.refetch(),b=await c.refetch();return[g,b]}}catch(g){console.error("Error al pausar la tarea:",g)}},h=async()=>{try{if(a(!1),await x({id:t}),await n.invalidateQueries({queryKey:["to_do_tasks",i]}),await n.invalidateQueries({queryKey:["tasksProject"]}),s&&typeof s.refetch=="function"||c&&typeof c.refetch=="function"){const g=await s.refetch(),b=await c.refetch();return[g,b]}}catch(g){console.error("Error al reanudar la tarea:",g)}};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?"})]}):r?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(Ce.Controller,{name:"pauseReason",control:l,rules:{required:!0},render:({field:g})=>{var b;return e.jsxs(je.Select,{value:g.value,onValueChange:v=>g.onChange(v),children:[e.jsx(je.SelectTrigger,{className:"tw-h-[26px] !tw-w-[290px] tw-border-none tw-text-lg tw-shadow-input",children:e.jsx(je.SelectValue,{placeholder:"Selecciona una razón"})}),e.jsx(je.SelectContent,{className:"tw-border-none tw-bg-white tw-shadow-input",children:e.jsx(je.SelectGroup,{children:(b=p==null?void 0:p.data)==null?void 0:b.map(v=>e.jsx(je.SelectItem,{value:v.id,className:"tw-border-none tw-bg-white tw-text-lg",children:v.motivo_imj},v.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"}),r?e.jsx("button",{type:"button",onClick:()=>h(),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:!u("pauseReason"),onClick:()=>o?f():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"})]})]})})},zs=({id:t,task:a,endDate:r,users:n,willBePaused:s,nameProject:i,comments:o,priority:d,difficulty:l,responsible:u,nameRequiredTask:c,nameRequiredTaskResponsible:m,statusRequiredTask:x,status:p,repeatsToDo:f,repeats:h,medioName:g,paused:b,idProject:v,atraso:P,categoria:$,cambio_arte:B,name_father_required_task:H,name_father_required_task_responsible:I})=>{var C,E,R;const[D,y]=w.useState(!1),[L,K]=w.useState(!1),{reasignResponsible:X,updateUnitys:j}=Ue(),{getOBPUrlApi:F}=fe(),[S,M]=w.useState(h??0),O=!!(f&&h===f),W=!f||f===1,ae=p===0,{user:Y}=Se(),oe=()=>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:[p<2&&(H||O||W||ae)&&e.jsx(da,{id:t,nameRequiredTask:c??"",statusRequiredTask:x??0,status:p,idAtraso:P==null?void 0:P.atrasoId,nameRequiredTaskResponsible:m,name_father_required_task:H,name_father_required_task_responsible:I,repeatsAreCompleted:O}),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:()=>y(!0),children:a})]}),(O||W||ae)&&p!==2&&e.jsx(xa,{id:t,nameRequiredTask:c,status:p,statusRequiredTask:x,projectID:v,atrasoId:P==null?void 0:P.atrasoId,categoria:$})]}),te={0:{title:"Muy fácil",color:Z.primary.regular},1:{title:"Fácil",color:Z.success.regular},2:{title:"Media",color:Z.warning.regular},3:{title:"Difícil",color:Z.danger.regular},4:{title:"Muy difícil",color:Z.danger.dark}},q=N=>{M(_=>N==="minus"?Math.max(0,_-1):Math.min(f,_+1))},U=N=>{var _;return((_=N==null?void 0:N.charAt(0))==null?void 0:_.toUpperCase())??""},Q=N=>N==="Venta"?"accent":"danger";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(oe,{}),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})]}),B&&e.jsx(ve.Badge,{label:B.nombre,color:"gray",icon:Ee.faImage,size:"md",theme:"solid"}),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(wa,{responsible:u,role:Y==null?void 0:Y.role,status:p,users:n.filter(N=>u?N.id===u:!0).map(N=>Nt(N,F())),onClick:async(N,_)=>{await X({idNewResponsible:N,id:t,typeOfSelect:_})}}),s&&e.jsx(ma,{open:L,setOpen:K,trigger:e.jsx("button",{type:"button",onClick:()=>K(!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(ie.Icons,{icon:b?"play":"pause",size:"xs",strokeWidth:2})}),children:e.jsx(ba,{idTask:t,setOpen:K,paused:b})})]}),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:[e.jsx(ve.Badge,{label:U(($==null?void 0:$.tipo)??"P"),color:Q(($==null?void 0:$.tipo)??"Preventa"),size:"sm",theme:"solid"}),P&&e.jsx(ie.Tooltip,{dispatch:e.jsx(ie.Icons,{icon:"exclamation_triangle",size:"xs",color:"#C62E1F",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:"#C62E1F"},children:`Tarea atrasada debido a: ${P==null?void 0:P.motivo}`})}),e.jsx(ie.Tooltip,{dispatch:e.jsx(ie.Icons,{icon:"difficulty",size:"xs",color:(C=te[l??0])==null?void 0:C.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:(E=te[l??0])==null?void 0:E.color},children:`Dificultad ${(R=te[l??0])==null?void 0:R.title}`})}),e.jsx(fa,{priority:d,id:t}),!f||f&&p===0&&e.jsxs(e.Fragment,{children:[e.jsx(ie.Icons,{icon:"calendar",size:"xs",strokeWidth:3,color:Z.texts.subtext}),e.jsx("p",{className:"tw-font-regular tw-text-sm tw-text-texts-subtext",children:`${r.getDate()} ${vt(r.getMonth()).slice(0,3)}`})]})]}),p===1&&f&&f>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:()=>q("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(ie.Icons,{icon:"circle_minus",size:"xs",strokeWidth:3,color:Z.texts.placeholder})}),e.jsx("p",{className:"tw-text-[10px] tw-text-texts-placeholder",children:`${S??0} / ${f??0}`}),e.jsx("button",{onClick:()=>q("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(ie.Icons,{icon:"circle_plus",size:"xs",strokeWidth:3,color:Z.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:()=>{j({repeats:S,id:t})},children:"Agregar Unidad"})]})]})]}),o>0&&e.jsx("div",{className:"tw-mt-4 tw-border-t tw-border-gray-200 tw-pt-2",children:e.jsxs("button",{onClick:()=>y(!0),className:"tw-flex tw-items-center tw-gap-2",children:[e.jsx(ie.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(ga,{taskId:t,isOpen:D,setIsOpen:y})]})},lt=({title:t,tasks:a,loadNextPage:r,isFetching:n,total:s})=>{const i=w.useRef(null),o=w.useRef(null),d=w.useRef(!1);w.useEffect(()=>{var c;i!=null&&i.current&&(o!=null&&o.current)&&(o.current.style.minHeight=`${((c=i==null?void 0:i.current)==null?void 0:c.clientHeight)-300}px`)},[i==null?void 0:i.current]);const l=c=>{if(d.current)return;const{scrollTop:m,clientHeight:x,scrollHeight:p}=c==null?void 0:c.target,f=m/(p-x)*100;f<=95||f>=95&&(d.current=!0,r&&r(),setTimeout(()=>{d.current=!1},200))},u={"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] ${u[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(ie.Icons,{icon:"group_files",size:"xs",strokeWidth:5,color:Z.texts.placeholder}),e.jsx("p",{className:"tw-text-2xl tw-text-texts-placeholder",children:s??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(c=>e.jsx(zs,{...c},c.id)),n?e.jsx(_s,{}):e.jsx("p",{className:"tw-text-center tw-text-2xl tw-text-gray-500",children:"No hay más tareas por mostrar..."})]})]})},Ut=[{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"}]}],Us=()=>{const{user:t}=Se(),[a,r]=w.useState([...Ut]),n=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return w.useEffect(()=>{const s=[...Ut];n.forEach(d=>{if(d.roles.includes(t.role)){const l=s.find(u=>u.id===d.id);l&&(l.options.some(c=>c.id==="todas")||(l.options=[{id:"todas",name:"Todas las tareas"},...l.options]))}});const i=JSON.stringify(a),o=JSON.stringify(s);i!==o&&r(s)},[t.role]),{filters:a}},Hs=()=>{var i;const{defineFields:t}=Le(),{tasksProject:a}=Ve(),{filters:r}=Us();w.useEffect(()=>{(async()=>{let d=[...r];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 s=["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:s.map((o,d)=>{var l;return e.jsx(lt,{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})})})},Ws=()=>{var n,s;const{toDoTasks:t,total:a}=ha(),r=[...((s=(n=t==null?void 0:t.data)==null?void 0:n.pages)==null?void 0:s.flat())??[]];return e.jsx(lt,{total:a,title:"Por hacer",tasks:r,loadNextPage:()=>Dt(t),isFetching:t==null?void 0:t.isFetching,isLoadingData:t==null?void 0:t.isLoading})},Ks=()=>{var u;const t=ue.useQueryClient(),{tasks_api:a}=fe(),{user:r}=Se(),{filters:n}=Le(),[s,i]=w.useState(0),[o,d]=w.useState({owner:{user:r.id,config:((u=n==null?void 0:n.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:r.role},status:"trabajando"}),l=ue.useInfiniteQuery({initialPageParam:1,queryKey:["working_tasks",o],queryFn:({pageParam:c})=>St({filters:{...o,status:"trabajando",...Qe(c)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(c,m)=>m.length+1});return w.useEffect(()=>{var c;Object.keys(n).length>0&&d({...n,owner:{user:r.id,config:((c=n==null?void 0:n.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:r.role},status:"trabajando"})},[n]),w.useEffect(()=>{t.invalidateQueries({queryKey:["working_tasks",o]})},[o]),w.useEffect(()=>{(async()=>{const m=await a.get("/api/listado_tareas",{params:{...o,status:"trabajando",...Qe(1),tasks_api:a,justCount:!0}});i(m.data.total)})()},[o,l==null?void 0:l.data]),{workingTasks:l,total:s}},Gs=()=>{var n,s;const{workingTasks:t,total:a}=Ks(),r=[...((s=(n=t==null?void 0:t.data)==null?void 0:n.pages)==null?void 0:s.flat())??[]];return e.jsx(lt,{total:a,title:"Trabajando",tasks:r,loadNextPage:()=>Dt(t),isFetching:t==null?void 0:t.isFetching})},Qs=()=>{var u;const t=ue.useQueryClient(),{user:a}=Se(),{tasks_api:r}=fe(),{filters:n}=Le(),[s,i]=w.useState(0),[o,d]=w.useState({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"}),l=ue.useInfiniteQuery({initialPageParam:1,queryKey:["done_tasks",o],queryFn:({pageParam:c})=>St({filters:{...o,status:"completadas",...Qe(c)},tasks_api:r}),staleTime:1e3*60*60*24,getNextPageParam:(c,m)=>m.length+1});return w.useEffect(()=>{var c;Object.keys(n).length>0&&d({...n,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"})},[n]),w.useEffect(()=>{t.invalidateQueries({queryKey:["done_tasks",o]})},[o]),w.useEffect(()=>{(async()=>{const m=await r.get("/api/listado_tareas",{params:{...o,status:"completadas",...Qe(1),justCount:!0,tasks_api:r}});i(m.data.total)})()},[l==null?void 0:l.data,o]),{doneTasks:l,total:s}},Vs=()=>{var n,s;const{doneTasks:t,total:a}=Qs(),r=[...((s=(n=t==null?void 0:t.data)==null?void 0:n.pages)==null?void 0:s.flat())??[]];return e.jsx(lt,{title:"Completadas",tasks:r,loadNextPage:()=>Dt(t),isFetching:t==null?void 0:t.isFetching,total:a})};class ot{static toSalesmanUsers(a){return{id:a.id,name:a.nombre}}}const Xs=()=>{const{tasks_api:t}=fe(),{filters:a}=Le(),{user:r}=Se();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:r==null?void 0:r.id,config:((l=a==null?void 0:a.owner)==null?void 0:l.config)??"yo_y_mis_equipos",role:r.role},justProjects:!0}})]);return{salesmanUsers:o.data.map(ot.toSalesmanUsers),projects:d.data.map(ot.toSalesmanUsers)}},getProjects:async()=>{var d;return(await t.get("/api/listado_tareas",{params:{...a,owner:{user:r.id,config:((d=a==null?void 0:a.owner)==null?void 0:d.config)??"yo_y_mis_equipos",role:r.role},justProjects:!0}})).data.map(ot.toSalesmanUsers)},getSalesmans:async()=>(await t.get("/api/obtener-comerciales")).data.map(ot.toSalesmanUsers)}},Ys=()=>{const{user:t}=Se(),[a,r]=w.useState([...Bt]),n=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return w.useEffect(()=>{const s=[...Bt];n.forEach(d=>{if(d.roles.includes(t.role)){const l=s.find(u=>u.id===d.id);l&&(l.options.some(c=>c.id==="todas")||(l.options=[{id:"todas",name:"Todas las tareas"},...l.options]))}});const i=JSON.stringify(a),o=JSON.stringify(s);i!==o&&r(s)},[t.role]),{filters:a}},Js=()=>{const{defineFields:t}=Le(),{getSalesmanAndProjects:a}=Xs(),{filters:r}=Ys();return w.useEffect(()=>{(async()=>{let s=[...r],{salesmanUsers:i,projects:o}=await a();t(s.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(Ws,{}),e.jsx(Gs,{}),e.jsx(Vs,{})]})},ya=w.createContext({}),Zs=({children:t})=>{const[a,r]=w.useState([]),n=s=>{r(i=>i.includes(s)?i.filter(o=>o!==s):[...i,s])};return e.jsx(ya.Provider,{value:{selectedTasks:a,selectTask:n},children:t})},er=()=>w.useContext(ya),ja=({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(ie.Icons,{icon:"calendar",size:"xs",strokeWidth:4,color:Z.texts.subtext}),e.jsxs("p",{className:"tw-text-lg",children:[" ",Lt(t)]})]}),e.jsx(ie.Icons,{icon:"arrow_right",size:"xs",strokeWidth:4,color:Z.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(ie.Icons,{icon:"calendar",size:"xs",strokeWidth:4,color:Z.texts.subtext}),e.jsxs("p",{className:"tw-text-lg",children:[" ",Lt(a)]})]})]}),_a=({id:t,priority:a,difficulty:r,endDate:n,atraso:s})=>{var u,c,m;const[i,o]=w.useState({priority:!1,difficulty:!1,atraso:!1}),d={0:{title:"N/A",color:Z.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:Z.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:Z.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:Z.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:Z.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:Z.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:Z.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:Z.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:Z.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(ie.Tooltip,{dispatch:e.jsx(ie.Icons,{icon:"align_center",size:"xs",strokeWidth:4,color:Z.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 ${(u=l[r===0?1:r])==null?void 0:u.border}
52
+ ${(c=l[r===0?1:r])==null?void 0:c.borderHover}
53
53
  transition-all duration-300 tw-flex tw-h-[30px] tw-w-[30px] tw-items-center tw-justify-center
54
- tw-rounded-[8px] tw-border tw-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)]`,children:e.jsx(ie.Tooltip,{dispatch:e.jsx(ie.Icons,{icon:"difficulty",size:"xs",color:i.difficulty?l[n===0?1:n].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[n===0?1:n].color},children:l[n===0?1:n].title})})}),e.jsx("div",{onMouseEnter:()=>o({...i,priority:!0}),onMouseLeave:()=>o({...i,priority:!1}),className:`tw-gap-s ${((m=d[a??0])==null?void 0:m.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]
54
+ tw-rounded-[8px] tw-border tw-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)]`,children:e.jsx(ie.Tooltip,{dispatch:e.jsx(ie.Icons,{icon:"difficulty",size:"xs",color:i.difficulty?l[r===0?1:r].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[r===0?1:r].color},children:l[r===0?1:r].title})})}),e.jsx("div",{onMouseEnter:()=>o({...i,priority:!0}),onMouseLeave:()=>o({...i,priority:!1}),className:`tw-gap-s ${((m=d[a??0])==null?void 0:m.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]
55
55
  tw-border tw-border-success-medium tw-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)] hover:tw-border-success-dark`,children:e.jsx(ie.Tooltip,{dispatch:e.jsx(ie.Icons,{icon:"flag",size:"xs",color:i.priority?d[a??0].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:d[a??0].color},children:d[a??0].title})})}),(s==null?void 0:s.activa)&&e.jsx("div",{onMouseEnter:()=>o({...i,atraso:!0}),onMouseLeave:()=>o({...i,atraso:!1}),className:`transition-all duration-300 tw-flex tw-h-[30px] tw-w-[30px] tw-items-center tw-justify-center tw-gap-s tw-rounded-[8px]
56
- tw-border tw-border-danger-medium tw-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)] hover:tw-border-danger-dark`,children:e.jsx(ie.Tooltip,{dispatch:e.jsx(ie.Icons,{icon:"exclamation_triangle",size:"xs",strokeWidth:4,color:i.atraso?Z.danger.dark:null}),children:e.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-p-5 tw-text-sm",style:{color:Z.danger.dark},children:s==null?void 0:s.motivo})})}),e.jsx(ie.Icons,{icon:"calendar",size:"xs",strokeWidth:3,color:Z.texts.subtext}),e.jsx("p",{className:"tw-font-regular tw-text-xl tw-text-texts-subtext",children:`${r.getDate()} ${vt(r.getMonth()).slice(0,3)}`})]})]})},er=({id:t})=>{const{selectedTasks:a,selectTask:n}=Zs();return e.jsxs(e.Fragment,{children:[e.jsx("label",{className:"tw-flex tw-h-[20px] tw-w-[20px] tw-cursor-pointer tw-items-center tw-justify-center tw-rounded-md tw-border-2 tw-border-gray-200",htmlFor:t.toString(),children:e.jsx("span",{className:`${a.includes(t)?"tw-opacity-100":"tw-opacity-0"} tw-transition-opacity tw-duration-500`,children:e.jsx(ie.Icons,{icon:"check_outline",size:"xs",color:Z.primary.regular,strokeWidth:6})})}),e.jsx("input",{className:"tw-hidden",id:t.toString(),type:"checkbox",onChange:()=>n(t)})]})},_a=({task:t})=>e.jsx(ie.Tooltip,{dispatch:e.jsx("p",{className:"tw-max-w-[400px] tw-truncate tw-text-xl tw-text-texts-subtext",children:t}),children:e.jsx("p",{className:"tw-max-w-[400px] tw-p-2 tw-text-xl tw-text-texts-subtext",children:t})}),tr=({id:t})=>{var x,p,f,g,h;const[a,n]=w.useState(!1),[r,s]=w.useState(!1),{tasksProject:i}=Qe(),{reasignResponsible:o}=Ue(),{getOBPUrlApi:d}=fe(),l=(x=i==null?void 0:i.data)==null?void 0:x.find(b=>b.id===t),[c,u]=w.useState(null),{user:m}=Ee();return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"tw-border-b tw-border-gray-200 tw-pb-3",children:e.jsxs("div",{className:"tw-mb-3 tw-ml-[30px] tw-mt-1 tw-flex tw-flex-wrap tw-items-center tw-gap-xl tw-rounded-md tw-p-2 hover:tw-bg-gray-100",onMouseEnter:()=>{u(t)},onMouseLeave:()=>u(null),onClick:()=>s(!0),children:[!(l!=null&&l.nameRequiredTask)||(l==null?void 0:l.nameRequiredTask)!==""&&(l==null?void 0:l.statusRequiredTask)===2&&e.jsx(er,{id:t}),e.jsx(ca,{id:t,idAtraso:(p=l==null?void 0:l.atraso)==null?void 0:p.atrasoId,nameRequiredTask:(l==null?void 0:l.nameRequiredTask)??"",status:l==null?void 0:l.status,statusRequiredTask:(l==null?void 0:l.statusRequiredTask)??0,nameRequiredTaskResponsible:l==null?void 0:l.nameRequiredTaskResponsible},t),(l==null?void 0:l.willBePaused)&&e.jsx(wa,{open:a,setOpen:n,trigger:e.jsx(je.Button,{type:"button",variant:"ghost",onClick:()=>n(!0),className:"tw-font-regular tw-flex tw-items-center tw-gap-2 tw-text-sm tw-text-gray-400",children:e.jsx(ie.Icons,{icon:l!=null&&l.paused?"play":"pause",size:"xs",strokeWidth:2})}),children:e.jsx(ha,{idTask:l==null?void 0:l.id,setOpen:n,paused:l==null?void 0:l.paused})}),e.jsx(pa,{role:m==null?void 0:m.role,status:l==null?void 0:l.status,onClick:async(b,v)=>{var I;await o({idNewResponsible:(I=b==null?void 0:b.tasksUser)==null?void 0:I.id,id:t,typeOfSelect:v})},responsible:l==null?void 0:l.responsible,users:((f=l==null?void 0:l.users)==null?void 0:f.map(b=>Nt(b,d())))??[]}),e.jsx(_a,{task:(l==null?void 0:l.task)??""}),e.jsx(ja,{id:t,priority:l==null?void 0:l.priority,difficulty:l.difficulty,endDate:l==null?void 0:l.endDate,atraso:l==null?void 0:l.atraso}),e.jsx(ya,{startDate:l==null?void 0:l.startDate,endDate:l==null?void 0:l.endDate}),c===t&&e.jsxs("div",{className:"tw-flex tw-h-[30px] tw-items-center tw-justify-center tw-gap-2 tw-rounded-[12px] tw-rounded-md tw-bg-silver-silver_dark tw-p-[4px]",children:[e.jsx(ie.Tooltip,{dispatch:e.jsx("button",{className:"tw-z-10 tw-flex tw-h-[21px] tw-w-[24px] tw-w-fit tw-items-center tw-justify-center tw-rounded-[8px] tw-bg-silver-silver_light tw-px-[4px] hover:tw-cursor-help hover:tw-bg-gray-200",onClick:b=>{b.stopPropagation()},children:e.jsx(ie.Icons,{icon:"comment",size:"xs",strokeWidth:5,color:Z.texts.subtext,classNameDiv:"tw-w-[13px] tw-h-[13px]",style:{width:"13px",height:"13px"}})}),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..."})})}),(l==null?void 0:l.status)!==2&&e.jsx("div",{onClick:b=>{b.stopPropagation()},children:e.jsx(fa,{id:t,nameRequiredTask:l.nameRequiredTask,status:l.status,statusRequiredTask:l.statusRequiredTask,projectID:(g=i==null?void 0:i.data)==null?void 0:g.id,atrasoId:(h=l==null?void 0:l.atraso)==null?void 0:h.atrasoId,categoria:l==null?void 0:l.categoria})})]})]})}),e.jsx(xa,{taskId:t,isOpen:r,setIsOpen:s})]})},va=({id:t})=>{var d,l,c,u,m,x;const{tasksProject:a,openTasks:n,openTask:r}=Qe(),s=(d=a==null?void 0:a.data)==null?void 0:d.find(p=>p.id===t),o=(()=>{var g;const p=a==null?void 0:a.data,f=[];return(g=s==null?void 0:s.tasks)==null||g.forEach(h=>{const b=p.find(v=>v.id===(h==null?void 0:h.id));b&&f.push(b)}),f})();return s?e.jsxs("div",{className:"tw-mb-2 tw-flex tw-flex-col tw-gap-m tw-overflow-y-auto",children:[e.jsxs("div",{className:"tw-flex tw-cursor-pointer tw-flex-wrap tw-items-center tw-gap-m tw-rounded-md tw-p-2 hover:tw-bg-silver-silver_light",onClick:()=>r(t),children:[e.jsx("button",{className:`${n.includes(t)?"":"tw--rotate-90"} tw-transition-all tw-duration-300`,children:e.jsx(ie.Icons,{icon:"angle_down_outline",color:Z.texts.subtext})}),e.jsx("div",{className:"tw-mx-1 tw-flex tw-h-[28px] tw-min-h-[28px] tw-w-fit tw-min-w-[28px] tw-items-center tw-justify-center tw-rounded-full tw-bg-primary-medium",children:e.jsx("p",{className:"tw-text-primary tw-text-xl",children:((l=s==null?void 0:s.tasks)==null?void 0:l.length)===0?1:o.length})}),e.jsx(_a,{task:(s==null?void 0:s.task)??""}),e.jsx(ja,{id:t,priority:s==null?void 0:s.priority,difficulty:s==null?void 0:s.difficulty,endDate:s==null?void 0:s.endDate,atraso:s==null?void 0:s.atraso}),e.jsx(ya,{startDate:s==null?void 0:s.startDate,endDate:s==null?void 0:s.endDate}),e.jsxs("button",{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-m hover:tw-bg-gray-200",children:[e.jsx(ie.Icons,{icon:"subtasks",size:"xs",strokeWidth:5,color:Z.texts.subtext}),e.jsx("p",{className:"tw-text-xl",children:((c=s==null?void 0:s.tasks)==null?void 0:c.length)===0?1:(u=s==null?void 0:s.tasks)==null?void 0:u.length})]})]}),n.includes(t)&&e.jsx("div",{className:"tw-ml-[30px]",children:((m=s==null?void 0:s.tasks)==null?void 0:m.length)>0?(x=s==null?void 0:s.tasks)==null?void 0:x.map(p=>e.jsx(va,{id:p==null?void 0:p.id})):e.jsx(tr,{id:s==null?void 0:s.id})})]}):null},ar=()=>{var r;const{tasksProject:t,projectID:a}=Qe();if(t!=null&&t.isFetching||t!=null&&t.isLoading)return e.jsx(da,{});let n=[...(r=t==null?void 0:t.data)==null?void 0:r.filter(s=>s.isPrincipalTask)];return e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-m",children:e.jsx(Js,{project:a,children:n==null?void 0:n.sort((s,i)=>s.orden-i.orden).map(s=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-m tw-border-b tw-border-gray-200 tw-pb-m ",children:e.jsx(va,{id:s.id})}))})})};function Ht({title:t,color:a,icon:n}){return e.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-8",children:[e.jsx(A.Icon,{name:n,size:"md",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotoneSecondary:.5}),e.jsx("p",{className:"ui-text-base ui-py-0.5 ui-font-body-sm-bold ui-text-body-sm-bold ui-leading-none ui-text-primary",children:t})]})}function sr({value:t,onChange:a}){return e.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-4",children:[e.jsx("label",{className:"ui-text-body-sm-bold ui-text-primary",children:"Nombre del equipo"}),e.jsx(A.Input,{size:"xs",placeholder:"Creative",value:t,onChange:n=>a(n.target.value)})]})}const Na=({title:t})=>e.jsxs("div",{className:"flex-1 tw-flex tw-items-center tw-gap-x-4",children:[e.jsx(A.Icon,{background:!0,name:Ie.faFilePen,color:"blue",size:"lg"}),e.jsx("h1",{className:"tw-text-[24px] tw-font-bold tw-leading-none",children:t})]}),He={search:"",debouncedSearch:"",filters:[]},rr={"kanban-general":{...He},"lista-campanias":{...He},"kanban-campania":{...He},"teams-container":{...He},"templates-container":{...He}},ct=ze.create((t,a)=>({viewFilters:rr,currentPath:null,debounceTimeouts:{},setCurrentPath:n=>{const r=a().currentPath;t({currentPath:n}),r&&r!==n&&a().resetPathData(r)},setSearch:(n,r)=>{const s=r||a().currentPath;if(!s)return;const i=`search_${s}`,o=a().debounceTimeouts[i];o&&clearTimeout(o),t(l=>({viewFilters:{...l.viewFilters,[s]:{...l.viewFilters[s],search:n}}}));const d=setTimeout(()=>{t(l=>({viewFilters:{...l.viewFilters,[s]:{...l.viewFilters[s],debouncedSearch:n}},debounceTimeouts:{...l.debounceTimeouts,[i]:void 0}}))},500);t(l=>({debounceTimeouts:{...l.debounceTimeouts,[i]:d}}))},setFilters:(n,r)=>{const s=r||a().currentPath;s&&t(i=>({viewFilters:{...i.viewFilters,[s]:{...i.viewFilters[s],filters:n}}}))},getSearch:n=>{var s;const r=n||a().currentPath;return r&&((s=a().viewFilters[r])==null?void 0:s.search)||""},getDebouncedSearch:n=>{var s;const r=n||a().currentPath;return r&&((s=a().viewFilters[r])==null?void 0:s.debouncedSearch)||""},getFilters:n=>{var s;const r=n||a().currentPath;return r?((s=a().viewFilters[r])==null?void 0:s.filters)||[]:[]},resetPathData:n=>{const r=`search_${n}`,s=a().debounceTimeouts[r];s&&clearTimeout(s),t(i=>({viewFilters:{...i.viewFilters,[n]:{...He}},debounceTimeouts:{...i.debounceTimeouts,[r]:void 0}}))}}));function Ta({path:t}){const{getSearch:a,setSearch:n}=ct(),r=a(t);return e.jsx(A.Input,{leftSlot:Ie.faSearch,placeholder:"Buscar...",size:"xs",value:r,onChange:s=>n(s.target.value,t)})}const Wt={fase_plantilla:"",tipo_plantilla:"",modo_configuracion:"",categoria:"",formato_salida:"",tipo_medio:"",medio_especifico:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},nr={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},or={fase_plantilla:"",tipo_plantilla:"",categoria:"",tipo_medio:"",medio_especifico:"",modo_configuracion:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},Kt={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},Fe=ze.create(t=>({path:"",viewMode:"grid",isOpenModalLimit:!1,template:null,clave:"XX-XXX-XX-XXX-XX-X-X",templateFormData:Wt,disabledFields:Kt,claveParams:or,paramsTipo:nr,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(n=>({templateFormData:{...n.templateFormData,...a}}))},resetTemplateFormData:()=>t({templateFormData:Wt}),setDisableField:({fields:a,value:n})=>{for(const r of a)t(s=>({disabledFields:{...s.disabledFields,[r]:n}}))},resetDisabledFields:()=>t({disabledFields:Kt}),setClaveParams:({field:a,value:n})=>{t(r=>({claveParams:{...r.claveParams,[a]:n}}))},resetClave:()=>t(a=>({clave:"XX-XXX-XX-XXX-XX-X-X"})),setParamTipo:a=>t(n=>({paramsTipo:{...n.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})})),Ca=t=>{const{getSearch:a,getDebouncedSearch:n,setSearch:r,getFilters:s,setFilters:i,resetPathData:o}=ct();return{search:a(t),debouncedSearch:n(t),filters:s(t),setSearch:d=>r(d,t),setFilters:d=>i(d,t),resetData:()=>o(t)}},ir=()=>e.jsx(Na,{title:"Flujos de trabajo"}),Re=ze.create(t=>({activeTemplate:null,setActiveTemplate:a=>t({activeTemplate:a}),clearActiveTemplate:()=>t({activeTemplate:null})})),Te=ze.create((t,a)=>({mode:"grid",id:null,setMode:(n,r)=>{const s=a();if(n==="grid"||s.id!==null&&s.id!==r){const{clearAllGroupData:o}=a();o()}t({mode:n,id:r??null})},setId:n=>t({id:n}),reset:()=>{const{clearAllGroupData:n}=a();n(),t({mode:"grid",id:null})},addNode:null,addBranch:null,addNodeFromHandle:null,addNodeWithType:null,savePositions:null,loadPositions:null,clearPositions:null,activePlusNode:null,templateViewModes:{},setViewMode:(n,r)=>{const{templateViewModes:s}=a();t({templateViewModes:{...s,[n]:r}})},getViewMode:n=>{const{templateViewModes:r}=a();return r[n]??"readonly"},clearViewMode:n=>{const{templateViewModes:r}=a(),s={...r};delete s[n],t({templateViewModes:s})},expandedGroups:new Set,groupTemplateData:{},toggleGroupExpansion:n=>{const{expandedGroups:r}=a(),s=new Set(r);s.has(n)?s.delete(n):s.add(n),t({expandedGroups:s})},setGroupTemplateData:(n,r)=>{const{groupTemplateData:s}=a();t({groupTemplateData:{...s,[n]:r}})},clearGroupTemplateData:n=>{const{groupTemplateData:r}=a(),s={...r};delete s[n],t({groupTemplateData:s})},clearAllGroupData:()=>{t({expandedGroups:new Set,groupTemplateData:{}})},copiedNodes:[],setCopiedNodes:n=>t({copiedNodes:n}),clearCopiedNodes:()=>t({copiedNodes:[]}),expandGroup:null,collapseGroup:null})),Ea=()=>{const{tasks_api:t}=fe();return{getTemplateWithTasks:async n=>{var r;try{const s=Pe.stringify({filters:{plantilla:{id:n}}},{encodeValuesOnly:!0}),i=await t.get(`/api/plantillas/plantilla-tareas-grafico?${s}`);if(i.data&&i.data.data)return i.data.data;throw new Error(`No se encontraron datos para la plantilla con ID ${n}`)}catch(s){throw console.error("Error en getTemplateWithTasks:",{error:s.message,status:(r=s.response)==null?void 0:r.status}),s}}}},_e={DIRTY:"dirty",IDLE:"idle",NEW:"new"},De={DRAFT:"draft",PUBLISHED:"published",DELETED:"deleted"},We="templates",Ke="templates_states";function lr(t,a){return ze.create((n,r)=>{let s=null;const i=m=>n({isLoading:m}),o=m=>n({error:m}),d=m=>n({data:m}),l=()=>new Promise((m,x)=>{const p=indexedDB.open(t.name,t.version);p.onerror=()=>{o("Error al abrir la base de datos"),x(new Error("Error al abrir la base de datos"))},p.onsuccess=()=>{s=p.result,n({isConnected:!0,error:null}),m(s)},p.onupgradeneeded=f=>{const g=f.target.result;t.stores.forEach(h=>{var b;if(!g.objectStoreNames.contains(h.name)){const v=g.createObjectStore(h.name,{keyPath:h.keyPath,autoIncrement:h.autoIncrement??!1});(b=h.indexes)==null||b.forEach(I=>{v.createIndex(I.name,I.keyPath,I.options)})}})}}),c=(m="readonly")=>{if(!s)throw new Error("Base de datos no conectada");return s.transaction(a,m)},u=(m="readonly")=>c(m).objectStore(a);return{data:[],isLoading:!1,error:null,isConnected:!1,connect:async()=>{try{i(!0),o(null),await l(),await r().getAll()}catch(m){o(m instanceof Error?m.message:"Error desconocido")}finally{i(!1)}},disconnect:()=>{s&&(s.close(),s=null,n({isConnected:!1,data:[]}))},add:async m=>{try{i(!0),o(null);const x=u("readwrite");return new Promise((p,f)=>{const g=x.add(m);g.onsuccess=async()=>{await r().getAll(),p()},g.onerror=()=>{o("Error al agregar elemento"),f(new Error("Error al agregar elemento"))}})}finally{i(!1)}},addMany:async m=>{try{i(!0),o(null);const x=u("readwrite");return new Promise((p,f)=>{let g=0,h=!1;m.forEach(b=>{const v=x.add(b);v.onsuccess=()=>{g++,g===m.length&&!h&&r().getAll().then(()=>p())},v.onerror=()=>{h||(h=!0,o("Error al agregar elementos"),f(new Error("Error al agregar elementos")))}})})}finally{i(!1)}},get:async m=>{try{o(null);const x=u();return new Promise((p,f)=>{const g=x.get(m);g.onsuccess=()=>{p(g.result)},g.onerror=()=>{o("Error al obtener elemento"),f(new Error("Error al obtener elemento"))}})}catch(x){o(x instanceof Error?x.message:"Error desconocido");return}},getAll:async()=>{try{o(null);const m=u();return new Promise((x,p)=>{const f=m.getAll();f.onsuccess=()=>{const g=f.result;d(g),x(g)},f.onerror=()=>{o("Error al obtener elementos"),p(new Error("Error al obtener elementos"))}})}catch(m){return o(m instanceof Error?m.message:"Error desconocido"),[]}},update:async(m,x)=>{try{i(!0),o(null);const p=u("readwrite");return new Promise((f,g)=>{const h=p.get(m);h.onsuccess=()=>{const b=h.result;if(!b){o("Elemento no encontrado"),g(new Error("Elemento no encontrado"));return}const v={...b,...x},I=p.put(v);I.onsuccess=async()=>{await r().getAll(),f()},I.onerror=()=>{o("Error al actualizar elemento"),g(new Error("Error al actualizar elemento"))}},h.onerror=()=>{o("Error al obtener elemento para actualizar"),g(new Error("Error al obtener elemento para actualizar"))}})}finally{i(!1)}},delete:async m=>{try{i(!0),o(null);const x=u("readwrite");return new Promise((p,f)=>{const g=x.delete(m);g.onsuccess=async()=>{await r().getAll(),p()},g.onerror=()=>{o("Error al eliminar elemento"),f(new Error("Error al eliminar elemento"))}})}finally{i(!1)}},clear:async()=>{try{i(!0),o(null);const m=u("readwrite");return new Promise((x,p)=>{const f=m.clear();f.onsuccess=()=>{d([]),x()},f.onerror=()=>{o("Error al limpiar store"),p(new Error("Error al limpiar store"))}})}finally{i(!1)}},query:async(m,x)=>{try{o(null);const f=u().index(m);return new Promise((g,h)=>{const b=f.getAll(x);b.onsuccess=()=>{g(b.result)},b.onerror=()=>{o("Error en consulta"),h(new Error("Error en consulta"))}})}catch(p){return o(p instanceof Error?p.message:"Error desconocido"),[]}},queryRange:async(m,x,p)=>{try{o(null);const g=u().index(m);return new Promise((h,b)=>{const v=IDBKeyRange.bound(x,p),I=g.getAll(v);I.onsuccess=()=>{h(I.result)},I.onerror=()=>{o("Error en consulta por rango"),b(new Error("Error en consulta por rango"))}})}catch(f){return o(f instanceof Error?f.message:"Error desconocido"),[]}}}})}const ut=new Map;function Gt(t,a,n=!0){const r=w.useMemo(()=>{const I=`${t.name}-${a}`;if(!ut.has(I)){const $=lr(t,a);ut.set(I,$)}return ut.get(I)},[t.name,a]);w.useEffect(()=>{n&&!r.getState().isConnected&&r.getState().connect()},[n,r]);const s=r(I=>I.data),i=r(I=>I.isLoading),o=r(I=>I.error),d=r(I=>I.isConnected),l=w.useCallback(()=>r.getState().connect(),[r]),c=w.useCallback(()=>r.getState().disconnect(),[r]),u=w.useCallback(I=>r.getState().add(I),[r]),m=w.useCallback(I=>r.getState().addMany(I),[r]),x=w.useCallback(I=>r.getState().get(I),[r]),p=w.useCallback(()=>r.getState().getAll(),[r]),f=w.useCallback((I,$)=>r.getState().update(I,$),[r]),g=w.useCallback(I=>r.getState().delete(I),[r]),h=w.useCallback(()=>r.getState().clear(),[r]),b=w.useCallback((I,$)=>r.getState().query(I,$),[r]),v=w.useCallback((I,$,R)=>r.getState().queryRange(I,$,R),[r]);return{data:s,isLoading:i,error:o,isConnected:d,connect:l,disconnect:c,add:u,addMany:m,get:x,getAll:p,update:f,delete:g,clear:h,query:b,queryRange:v}}const Sa=w.createContext(void 0);function cr({children:t}){const[a,n]=w.useState(!1),[r,s]=w.useState(!0),[i,o]=w.useState(null),d={name:"template_tabs_v1",version:2,stores:[{name:We,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]},{name:Ke,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]}]},l=Gt(d,We,!0),c=Gt(d,Ke,!0),u=w.useRef(new Map);u.current.has(We)||u.current.set(We,l),u.current.has(Ke)||u.current.set(Ke,c);const m=l.isConnected,x=l.error;w.useEffect(()=>{u.current.set(We,l),u.current.set(Ke,c)},[l,c]);const p=w.useCallback(g=>{const h=u.current.get(g);if(!h)throw new Error(`Store ${g} no encontrado. Asegúrate de que esté configurada en indexedDBConfig.`);return{data:h.data,isLoading:h.isLoading,add:h.add,addMany:h.addMany,get:h.get,getAll:h.getAll,update:h.update,delete:h.delete,clear:h.clear,query:h.query,queryRange:h.queryRange,error:h.error}},[]);w.useEffect(()=>{(async()=>{try{if(s(!0),o(null),await l.connect(),m)n(!0);else throw new Error("No se pudo establecer la conexión con IndexedDB")}catch(h){o(h instanceof Error?h.message:"Error desconocido")}finally{s(!1)}})()},[l.connect,m]),w.useEffect(()=>{x&&o(x)},[x]);const f={isInitialized:a,isInitializing:r,error:i,isConnected:m,getStore:p};return e.jsx(Sa.Provider,{value:f,children:t})}function Da(){const t=w.useContext(Sa);if(t===void 0)throw new Error("useIndexedDBContext debe usarse dentro de IndexedDBProvider");return t}function It(){const{getStore:t}=Da();return t(We)}function Ia(){const{add:t}=It(),a=async o=>{try{await t(o)}catch(d){console.error("Error al guardar plantilla a indexDB:",d)}},n=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(m=>{l(m)})})};return o.tarea_plantillas.forEach(c=>{l(c)}),d},r=(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(...r(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(...r(u.id,d)):typeof u=="number"&&d[u]&&c.push(...r(u,d))}),c},s=(o,d)=>{const l=d[o];if(!l)return[];const c=[l];return l.tarea_padre&&d[l.tarea_padre]&&c.unshift(...s(l.tarea_padre,d)),c};return{hydrateTasks:async o=>{var c,u;const d=await n(o);return(u=(c=o==null?void 0:o.graph_layout)==null?void 0:c.snapshot)==null?void 0:u.nodes.map(m=>{if(m.type==="group")return{...m,data:{...m.data,type:"template"},type:"group",selected:!1};const x=m.data.tareaId?d[m.data.tareaId]:o;return x!=null&&x.start?{...m,data:{...x.plantilla,id:x.id},selected:!1}:{...m,data:{...x,type:"task"},selected:!1}})},initializeTemplateStore:a,indexedTasks:n,getTaskHierarchy:r,getTaskPath:s}}function Pa(){const{getStore:t}=Da();return t(Ke)}const at=()=>{const{add:t,get:a,delete:n,update:r}=Pa(),{get:s}=It(),i={created:[],updated:[],deleted:[]},o=async({templateId:p})=>{const f=await a(p);return f||null};return{addTaskToState:async({task:p})=>{const f=await o({templateId:p.plantilla.id}),g=await s(p.plantilla.id);if(console.log("🔄 template:",g),!f)t({...i,id:p.plantilla.id,created:[...i.created,p]});else{const h=f.created.findIndex(b=>b.id===p.id);if(h!==-1){const b=f.created[h];f.created[h]={...b,...p},await r(p.plantilla.id,f)}else f.created.push(p),await r(p.plantilla.id,f)}},getTaskFromState:o,removeTemplateStates:async p=>{await n(p)},updateTaskInState:async({task:p})=>{const f=await o({templateId:p.plantilla.id}),h=(await s(p.plantilla.id)).graph_layout.snapshot.nodes;if(console.log("🔄 nodes:",h),f){const b=f.updated.findIndex(v=>v.id===p.id);if(b!==-1){const v=f.updated[b];console.log("🔄 currentTask:",v),f.updated[b]={...v,...p}}else f.updated.push(p);await r(p.plantilla.id,f)}else t({...i,id:p.plantilla.id,updated:[...i.updated,p]})},removeTaskFromState:async({templateId:p,id:f})=>{const g=await o({templateId:p});if(g){if(f>0){const b=g.deleted.findIndex(v=>v===f);if(b!==-1){g.deleted.splice(b,1),await r(p,g);return}}const h=g.created.findIndex(b=>b.id===f);if(h!==-1){g.created.splice(h,1),await r(p,g);return}}else if(f>0){t({...i,id:p,deleted:[...i.deleted,f]});return}},removeParentIdFromNodes:async({templateId:p,id:f})=>{const g=await o({templateId:p});if(g){const h=g.created.findIndex(v=>v.id===f);if(h!==-1){g.created[h].tarea_padre=null,g.created[h].id_t_requerida=null,await r(p,g);return}const b=g.updated.findIndex(v=>v.id===f);if(b!==-1){g.updated[b].tarea_padre=null,g.updated[b].id_t_requerida=null,await r(p,g);return}}},updateNodeWithNewEdge:async({templateId:p,edge:f,task:g})=>{console.log("🔵 updateNodeWithNewEdge - Inicio",{templateId:p,taskId:g.id,taskData:g});const h=await o({templateId:p});if(console.log("🔵 updateNodeWithNewEdge - Estado actual:",h),h){console.log("🔵 updateNodeWithNewEdge - Estado existe, buscando tarea...");const b=h.created.findIndex(I=>I.id===g.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en created:",b),b!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en created"),h.created[b]=g,await r(p,h),console.log("✅ updateNodeWithNewEdge - Actualizado en created");return}const v=h.updated.findIndex(I=>I.id===g.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en updated:",v),v!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en updated"),h.updated[v]=g,await r(p,h),console.log("✅ updateNodeWithNewEdge - Actualizado en updated");return}if(console.log("🔵 updateNodeWithNewEdge - Tarea no encontrada en arrays"),g.id&&g.id!==0){const I=g.id<0;I?(console.log("🔵 updateNodeWithNewEdge - Agregando a created (tarea nueva)"),h.created.push(g)):(console.log("🔵 updateNodeWithNewEdge - Agregando a updated (tarea existente)"),h.updated.push(g)),await r(p,h),console.log("✅ updateNodeWithNewEdge - Tarea agregada exitosamente a",I?"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,v={...i,id:p,created:b?[g]:[],updated:b?[]:[g]};console.log("🔵 updateNodeWithNewEdge - Nuevo estado:",v,b?"(created)":"(updated)"),t(v),console.log("✅ updateNodeWithNewEdge - Estado creado exitosamente")}else console.error("❌ updateNodeWithNewEdge - task.id no válido:",g.id);console.log("🔵 updateNodeWithNewEdge - Fin")}}};function Be(){const{activeTemplate:t,setActiveTemplate:a}=Re(),{mode:n,setMode:r,setViewMode:s,clearViewMode:i}=Te(),{template:o,setIsOpenModalLimit:d,setOpenModalUnsavedChanges:l,setOpenModalPublishTemplate:c,setOpenModalDeleteTemplate:u}=Fe(),{hydrateTasks:m}=Ia(),{addTaskToState:x,removeTemplateStates:p}=at(),f=pe.useQueryClient(),{data:g,add:h,update:b,get:v,getAll:I,delete:$,isLoading:R,error:U}=It(),{get:P}=Pa(),{getTemplateWithTasks:C}=Ea(),{tasks_api:y}=fe(),[H,G]=w.useState(!1),[J,j]=w.useState(!1),[F,D]=w.useState(!1),M=w.useMemo(()=>g.sort((_,B)=>_.order-B.order),[g]);w.useEffect(()=>{M.length===0&&n!=="grid"&&r("grid")},[M,n,r]);const L=async(N,_=_e.IDLE)=>{var B;try{const k=await C(N.id),T=await m(k),K={id:crypto.randomUUID(),data:k,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},Y=T||[K],ee={...k,graph_layout:{...k==null?void 0:k.graph_layout,snapshot:{...(B=k==null?void 0:k.graph_layout)==null?void 0:B.snapshot,nodes:Y}},estatus:_,estatusFromStrapi:k.estatus};await h(ee)}catch(k){console.warn("No se pudieron obtener los datos completos de la plantilla, creando versión básica:",k);const T=N,K={id:crypto.randomUUID(),data:T,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},Y={id:T.id,snapshot:{nodes:[K],edges:[],viewport:{x:0,y:0,zoom:1}},history:null,zoom:1,position:{x:0,y:0}},ee={...T,graph_layout:T.graph_layout||Y,estatus:_,tarea_plantillas:T.tarea_plantillas||[]};await h(ee)}},W=async({template:N,checkTemplateInIndexedDB:_=!1,statusTemplate:B=_e.IDLE})=>{const k=M;if(!k.find(K=>K.id===N.id)){if(k.length===5){d(!0);return}if(_&&await v(N.id))return;await L({...N,order:k.length+1},B)}await X(N.id),await ae(N),r("create-edit",N==null?void 0:N.id)},ae=async N=>{const _=await v(N.id);a(_)},X=async N=>{try{let _=await I();_.sort((k,T)=>(k.order||0)-(T.order||0));const B=_.findIndex(k=>k.id===N);if(B!==-1){const[k]=_.splice(B,1);_.unshift(k),_.forEach((K,Y)=>{K.order=Y+1});const T=_.map(K=>b(K.id,K));await Promise.all(T)}else return}catch{}},oe=async N=>{try{await $(N),i(N);const _=await I();_.forEach((k,T)=>{k.order=T+1});const B=_.map(k=>b(k.id,k));await Promise.all(B)}catch{}};return{screens:M,isLoading:R,error:U,add:h,data:g,addScreen:L,openTemplate:W,update:b,delete:oe,get:v,activeTemplate:t,activateTemplate:ae,reorderingTemplates:X,replaceTemplate:async()=>{try{const N=[...M],_={...N[N.length-1]};await $(_.id);const B={...o,order:_.order};await L(B);const T=(await I()).sort((Y,ee)=>Y.order-ee.order);if(T.some((Y,ee)=>(Y.order||0)!==ee+1)){const Y=T.map((ee,le)=>({...ee,order:le+1}));for(const ee of Y)try{await b(ee.id,ee)}catch{}}}catch{}finally{d(!1)}},addTaskUpdatingTemplate:async(N,_,B="hija")=>{var Y,ee,le,Q;const k=await v(_);if(!k)return null;const T={id:N.id,uuid:crypto.randomUUID(),reference_graph:N.reference_graph,texto_corto:N.title,texto_largo:N.description||"",prioridad:N.priority||null,nivel_dificultad:N.difficulty||1,duracion:N.duration||null,start:!1,type:"task",equipo:{id:Number(N.team)||null},responsable:{id:Number(N.responsible)||null},plantilla:{id:k.id,clave:k.clave,categoria:k.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:B==="dependiente"?(ee=(Y=N.parent)==null?void 0:Y.data)==null?void 0:ee.id:null,ids_t_dependientes:[],tarea_padre:B==="hija"?(Q=(le=N.parent)==null?void 0:le.data)==null?void 0:Q.id:null,tareas:[]},K={...k,estatus:_e.DIRTY};return await b(_,K),t&&t.id===_&&a(K),await x({task:T}),T},addTemplateUpdatingTemplate:async(N,_,B,k="hija")=>{let T=null;if(t&&t.id===_?T=t:T=await v(_),!T)return null;const K=(ee,le,Q,se)=>{for(let ce=0;ce<ee.length;ce++){const ge=ee[ce];if(ge.id===le||ge.uuid===le)return se==="dependiente"?(ge.plantilla_dependents||(ge.plantilla_dependents=[]),ge.plantilla_dependents.push(Q)):se==="hija"&&(ge.plantilla_dependents||(ge.plantilla_dependents=[]),ge.plantilla_dependents.push(Q)),!0;if(ge.tareas&&ge.tareas.length>0){const ne=K(ge.tareas,le,Q,se);if(ne)return ne}}return!1};if(K(T.tarea_plantillas,B,N,k)){const ee={...T,estatus:_e.DIRTY,updatedAt:new Date().toISOString()};return await b(_,ee),t&&t.id===_&&a(ee),!0}else return!1},updateGraphLayout:async(N,_)=>{var B;if(!N){console.warn("⚠️ updateGraphLayout - Template ID no válido");return}try{const k=await v(N);if(!k){console.warn("⚠️ updateGraphLayout - Template no encontrado");return}const T=(_.nodes||[]).filter(se=>{var ce;return!((ce=se.data)!=null&&ce.isInternal)&&!se.parentId}).map(se=>{const{style:ce,measured:ge,data:ne,...de}=se,{expandedDimensions:me,isExpanded:xe,needsReExpansion:we,...be}=ne||{},Ae=ce?{...ce,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...de,style:Ae,data:be,position:se.position}}),K=(_.edges||[]).filter(se=>{var ce;return!((ce=se.data)!=null&&ce.isInternal)}).map(se=>{var ce;if((ce=se.data)!=null&&ce.redirectedToInternal){const{redirectedToInternal:ge,originalTarget:ne,...de}=se.data;return{...se,target:ne||se.target,data:de}}return se}),Y={..._,nodes:T,edges:K},ee=(B=k.graph_layout)==null?void 0:B.snapshot;if(!(!ee||JSON.stringify(ee)!==JSON.stringify(Y)))return;const Q={...k,graph_layout:{...k.graph_layout,snapshot:Y},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await b(N,Q),t&&t.id===N&&a(Q)}catch(k){console.error("❌ updateGraphLayout - Error:",k)}},saveTemplateChanges:async(N=!0)=>{try{if(t.estatus===_e.DIRTY){j(!0);const{id:_}=t,B=await v(_),k=await P(_),T=B.graph_layout.snapshot.nodes||[],K=T.filter(Q=>{var se;return!((se=Q.data)!=null&&se.isInternal)&&!Q.parentId}),Y=T.length-K.length;Y>0&&console.warn(`💾 [saveTemplateChanges] Se filtraron ${Y} nodos internos al guardar plantilla ${_}`);const ee={graph_layout:{...B.graph_layout,snapshot:{...B.graph_layout.snapshot,nodes:K.map(Q=>{const{style:se,measured:ce,selected:ge,...ne}=Q,de=se?{...se,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return Q.type==="group"?{...ne,style:de,data:{tareaId:Q.data.id&&Q.data.id>0?Q.data.id:null,clave:Q.data.clave,estatus:Q.data.estatus,updatedAt:Q.data.updatedAt,id:Q.data.id}}:{...ne,style:de,data:{tareaId:Q.data.id&&Q.data.id>0?Q.data.id:null}}}),edges:(B.graph_layout.snapshot.edges||[]).filter(Q=>{var se;return!((se=Q.data)!=null&&se.isInternal)})}},tasks:{created:(k==null?void 0:k.created)||[],updated:(k==null?void 0:k.updated)||[],deleted:(k==null?void 0:k.deleted)||[]}},le=await y.post("/api/tareas/save-tareas-grafico",{data:ee});if(le.data&&le.status===200){try{const Q=await C(_),se=await m(Q),ce={...Q,graph_layout:{...Q.graph_layout,snapshot:{...Q.graph_layout.snapshot,nodes:se}},estatus:_e.IDLE};await b(_,ce),N||a(ce)}catch{const se=await v(_);if(se&&!N){const ce={...se,estatus:_e.IDLE};await b(_,ce),a(ce)}}await f.invalidateQueries({queryKey:["template",_]}),await f.invalidateQueries({queryKey:["template"]}),p(_),N&&(oe(_),l(!1)),s(_,"readonly")}}}catch(_){console.log(_)}finally{j(!1)}},publishTemplate:async N=>{try{G(!0);const _={estatus:De.PUBLISHED,publication_date:new Date},B=await y.put(`/api/plantillas/plantilla-update-estatus/${N}`,{data:_});B.data&&B.status===200&&(a({...t,estatusFromStrapi:De.PUBLISHED}),c(!1),A.toast.info("Se publicó correctamente el proceso"))}catch(_){console.log(_),A.toast.error("Surgió un error al publicar el proceso")}finally{G(!1)}},deleteTemplate:async N=>{try{D(!0);const _={estatus:De.DELETED,sjdaksd:0},B=await y.put(`/api/plantillas/plantilla-update-estatus/${N}`,{data:_});B.data&&B.status===200&&(u(!1),A.toast.info("Se eliminó correctamente el proceso"))}catch(_){console.error(_),A.toast.error("Surgión un error al eliminar el proceso")}finally{D(!1)}},loadingPublishTemplate:H,loadingSaveChanges:J,loadingDeleteTemplate:F}}const dr=async({tasks_api:t})=>{try{return(await t.get("/api/getAllOBPusers")).data}catch(a){throw console.log("Error al obtener los usuarios de OBP",a),`Error al obtener los usuarios de OBP: ${a}`}},ur=()=>{const{tasks_api:t}=fe();return{users:pe.useQuery({queryKey:["usersOBP"],queryFn:()=>dr({tasks_api:t}),staleTime:1e3*60*60*24})}},Xe=()=>{const{users:t}=ur(),a=pe.useQuery({queryKey:["users_index",t.data],queryFn:()=>Cs({users:t.data||[]}),staleTime:1e3*60*60*24,enabled:!!t.data});return{users:a.data,isLoading:a.isLoading||t.isLoading}},Fa=()=>{const{users:t,isLoading:a}=Xe(),{getImageOBP:n}=fe();return{getImageByEmail:i=>{const o=t==null?void 0:t[i];return n(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}},st=({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(A.Spinner,{})})]}):null,Vt=({template:t,openModalPublishTemplate:a,onHadleClickEditTemplateParams:n,onEditTasks:r,canDuplicateAndDeleteTemplates:s,onHandleClickDuplicateTemplate:i,openModalDeleteTemplate:o})=>e.jsx(A.Popup,{color:"secondary",pill:"pill",icon:ue.faEllipsis,stopPropagationList:!0,children:e.jsxs(A.List,{className:"ui-p-6 ui-gap-4",children:[t.estatus!==De.PUBLISHED&&t.counts_tasks>2&&e.jsx(A.ListItem,{icon:ue.faArrowUp,onClick:a,children:"Publicar"}),e.jsx(A.ListItem,{icon:ue.faEdit,onClick:()=>{n(t)},children:"Editar parámetros"}),e.jsx(A.ListItem,{icon:ue.faEdit,onClick:()=>{r&&r(t)},children:"Editar tareas"}),s&&e.jsx(A.ListItem,{icon:ue.faClone,onClick:d=>{d.stopPropagation(),i(t)},children:"Duplicar"}),s&&e.jsx(A.ListItem,{color:"red",icon:ue.faTrash,onClick:o,children:"Eliminar"})]})}),Aa=({fullWidth:t,mode:a="grid",onClick:n,active:r,template:s,withOptions:i=!0})=>{const{openTemplate:o}=Be(),{getImageByEmail:d,getNameByEmail:l}=Fa(),{setIsEditTemplate:c,setOpenModalCreateTemplate:u,setCurrentTemplateForEdit:m,setIsDuplicateTemplate:x,setOpenModalPublishTemplate:p,setCurrentTemplateId:f,setOpenModalDeleteTemplate:g}=Fe(),h={0:{color:"accent",theme:"solid"},1:{color:"accent",theme:"soft"},2:{color:"warning",theme:"solid"},3:{color:"info",theme:"solid"},4:{color:"gray",theme:"solid"},5:{color:"warning",theme:"soft"},6:{color:"danger",theme:"solid"},7:{color:"info",theme:"soft"},8:{color:"success",theme:"solid"},9:{color:"danger",theme:"solid"}},[b,v]=w.useState(!1),I=async()=>{if(v(!0),a==="grid")try{v(!0),await o({template:s,checkTemplateInIndexedDB:!0})}catch(W){console.error(W)}finally{v(!1)}else v(!1);n==null||n(s==null?void 0:s.id)},$=async()=>{if(!(a!=="grid"||!s)){v(!0);try{await o({template:s,checkTemplateInIndexedDB:!0}),n==null||n(s==null?void 0:s.id)}catch(W){console.error(W)}finally{v(!1)}}},R=W=>{c(!0),u(!0),m(W)},U=W=>{x(!0),u(!0),m(W)},P=()=>{f(s==null?void 0:s.id),p(!0)},C=()=>{f(s==null?void 0:s.id),g(!0)},y=(s==null?void 0:s.dias_duracion)===1?"Día":"Días",H=(s==null?void 0:s.counts_tasks)===1?"Tarea":"Tareas",G=(s==null?void 0:s.estatus)===De.PUBLISHED?xt(s==null?void 0:s.publication_date).format("DD/MM/YYYY"):xt(s==null?void 0:s.createdAt).format("DD/MM/YYYY"),J=(s==null?void 0:s.updated_by)||(s==null?void 0:s.created_by),j=d(J==null?void 0:J.email),F=l(J==null?void 0:J.email)||"",D=(s==null?void 0:s.estatus)===De.PUBLISHED?"Fecha de publicación":"Fecha de creación",M=(s==null?void 0:s.estatus)===De.DRAFT,L=W=>{const ae=W.split("-");return e.jsx(e.Fragment,{children:ae.map((X,oe)=>e.jsxs("span",{children:[X,oe<ae.length-1&&e.jsx("span",{className:"tw-text-neutral-200",children:"-"})]},oe))})};return e.jsxs(A.Card,{active:r,fullWidth:t,onClick:I,className:`${t?"md:tw-flex-row":"tw-flex-col"}`,children:[e.jsx(st,{isLoading:b}),e.jsx(A.Card.Header,{children:e.jsx("div",{className:"ui-flex ui-justify-between ui-items-start ui-gap-x-4",children:e.jsxs("div",{className:"ui-flex ui-justify-between ui-items-start ui-gap-4 ui-flex-1",children:[e.jsxs("div",{className:"ui-flex ui-place-items-start ui-gap-x-4",children:[e.jsx("div",{className:"tw-flex tw-items-center",children:e.jsx(A.Icon,{name:$e.faChartDiagram,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"lg"})}),e.jsxs("div",{className:"ui-flex ui-gap-x-1 ui-flex-col ui-gap-y-4",children:[e.jsx("h1",{className:"ui-text-base ui-py-0.5 ui-font-body-sm-bold ui-text-body-sm-bold tw-leading-none ui-text-primary",children:L((s==null?void 0:s.clave)||(s==null?void 0:s.nombre_plantilla))}),e.jsxs("div",{className:"ui-flex tw-items-baseline ui-gap-x-1",children:[e.jsx(A.Badge,{size:"sm",theme:"soft",color:(s==null?void 0:s.estatus)===De.PUBLISHED?"success":"gray",label:(s==null?void 0:s.estatus)===De.PUBLISHED?"Publicado":"Borrador"}),!(typeof G=="string"&&G==="Invalid date")&&e.jsx(A.Tooltip,{label:D,children:e.jsx("p",{className:"ui-text-body-sm-regular ui-text-tertiary ui-font-body-sm-semibold",children:G})})]})]})]}),!t&&e.jsx(Vt,{template:s,openModalPublishTemplate:P,onHadleClickEditTemplateParams:R,onEditTasks:$,canDuplicateAndDeleteTemplates:M,onHandleClickDuplicateTemplate:U,openModalDeleteTemplate:C})]})})}),e.jsx(A.Card.Separator,{vertical:t}),e.jsx(A.Card.Body,{className:"ui-flex ui-flex-wrap ui-gap-x-4 ui-gap-y-1 tw-w-full md:tw-w-auto tw-flex-wrap tw-flex-1 tw-items-center",children:s==null?void 0:s.params_plantillas.map((W,ae)=>{const X=h[W.params_tipo.order-1];return e.jsx(A.Badge,{color:X.color,theme:X.theme,label:W.name,size:"sm"},W.name)})}),!t&&e.jsx(A.Card.Separator,{vertical:t}),e.jsxs(A.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(A.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-icon-all-colors-blue ui-text-xs tw-text-center tw-leading-none tw-font-semibold",children:(s==null?void 0:s.counts_tasks)||0}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:H})]})})}),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(A.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-icon-all-colors-blue ui-text-xs tw-text-center tw-leading-none tw-font-semibold",children:(s==null?void 0:s.dias_duracion)||0}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:y})]})})}),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-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Editor"}),e.jsx(A.Tooltip,{label:F,children:e.jsx(A.Avatar,{src:j,size:"xxs",type:"people"})})]})]}),t&&i&&e.jsx(A.Card.Separator,{vertical:t}),i&&e.jsx("div",{className:`tw-w-auto ${t?"tw-flex tw-items-center":""}`,children:t&&e.jsx(Vt,{template:s,openModalPublishTemplate:P,onHadleClickEditTemplateParams:R,onEditTasks:$,canDuplicateAndDeleteTemplates:M,onHandleClickDuplicateTemplate:U,openModalDeleteTemplate:C})})]})]})},pr={1:"blue",2:"green",3:"red",4:"yellow"},wr=({difficulty:t})=>e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end ui-gap-2",children:[e.jsx(A.Icon,{name:ue.faRhombus,size:"md",color:pr[t]}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Dificultad"})]}),mr=({duration:t})=>e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[e.jsx("p",{className:"ui-text-icon-all-colors-blue ui-text-body-lg-regular tw-leading-none tw-font-semibold",children:t}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Duración"})]}),fr={1:"neutral",2:"blue",3:"yellow",4:"red"},xr=({priority:t})=>e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end ui-gap-2",children:[e.jsx(A.Icon,{name:ue.faFlag,size:"md",color:fr[t]}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Prioridad"})]});class gr{static toUsers(a){return{id:a.id,name:a.nombre,image:a.image,email:a.email}}}const hr=async({tasks_api:t})=>{try{const a=Pe.stringify({filters:{blocked:!1}},{encodeValuesOnly:!0}),n=await t.get(`/api/users?${a}`);return he(n.data).map(gr.toUsers).sort((s,i)=>s.name.localeCompare(i.name))}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Pt=()=>{const{tasks_api:t}=fe(),a=pe.useQuery({queryKey:["users-mt"],queryFn:()=>hr({tasks_api:t}),staleTime:1e3*60*60*24});return{isLoading:a.isLoading,users:a.data}},br=({responsible:t})=>{const{isLoading:a}=Pt(),{getImageByEmail:n,isLoading:r}=Fa();return a||r?null:e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[e.jsx(A.Avatar,{size:"xs",src:n(t==null?void 0:t.email),type:"people"}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Responsable"})]})},yr=async t=>{const a=Pe.stringify({fields:["id","nombre"],sort:["nombre:asc"]},{encodeValuesOnly:!0}),n=await t.get(`/api/equipos?${a}`);return n.data?{data:he(n.data.data)}:{data:[]}},jr=()=>{const{tasks_api:t}=fe();return pe.useQuery({queryKey:["teams"],queryFn:()=>yr(t),staleTime:1e3*60*60*24,select:n=>n.data.map(s=>({label:s.nombre,value:s.id}))})},_r=[{label:"Muy alta",value:4,icon:ue.faFlag,iconColor:"red"},{label:"Alta",value:3,icon:ue.faFlag,iconColor:"yellow"},{label:"Media",value:2,icon:ue.faFlag,iconColor:"blue"},{label:"Baja",value:1,icon:ue.faFlag,iconColor:"neutral"}],vr=[{label:"Muy alta",value:4,icon:ue.faRhombus,iconColor:"red"},{label:"Alta",value:3,icon:ue.faRhombus,iconColor:"yellow"},{label:"Media",value:2,icon:ue.faRhombus,iconColor:"blue"},{label:"Baja",value:1,icon:ue.faRhombus,iconColor:"neutral"}],Nr=[{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}],ka=({isOpen:t,onClose:a,onSuccess:n,nodeDataType:r,parentNodeInfo:s,editMode:i=!1,taskToEdit:o})=>{const{data:d}=jr(),{users:l}=Pt(),{users:c}=Xe(),{getImageOBP:u}=fe(),m=w.useMemo(()=>{try{return!l||!c?[]:l.map(P=>{const C=c[P.email],y=C!=null&&C.image?u(C.image):"";return{label:P.name,value:P.id.toString(),icon:y}})}catch(P){return console.error("Error mapeando usuarios:",P),[]}},[l,c]),x=()=>{if(i&&o){const P=G=>{if(G==null)return"";const J=Number(G);return isNaN(J)?"":J},C=G=>G?typeof G=="string"?Number(G)||"":G.id||"":"",y=G=>{var J;return G?typeof G=="string"?G:((J=G.id)==null?void 0:J.toString())||G.name||G.nombre||"":""};return{title:o.texto_corto||"",description:o.texto_largo||"",priority:P(o.prioridad),difficulty:P(o.nivel_dificultad),duration:P(o.duracion),team:C(o.equipo),responsible:y(o.responsable),type:"tarea"}}return{title:"",description:"",priority:"",difficulty:"",duration:"",team:"",responsible:"",type:"tarea"}},{control:p,handleSubmit:f,formState:{errors:g,isValid:h},reset:b,watch:v}=Ce.useForm({mode:"onChange",defaultValues:x()});w.useEffect(()=>{t&&b(x())},[t,i,o,b]);const I=v(),$=h&&I.title&&I.description&&I.priority&&I.difficulty&&I.duration&&I.team&&Object.keys(g).length===0,R=async P=>{try{if(["title","description","priority","difficulty","duration","team"].filter(H=>!P[H]).length>0)return;n&&n({...P,parent:s}),b()}catch{}},U=()=>{b(),a()};return e.jsx(A.Drawer,{titleIcon:ue.faPencil,isOpen:t,onClose:U,onSuccess:()=>{f(P=>{R(P)},P=>{const C=Object.entries(P).map(([y,H])=>`${y}: ${H.message}`).join(`
56
+ tw-border tw-border-danger-medium tw-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)] hover:tw-border-danger-dark`,children:e.jsx(ie.Tooltip,{dispatch:e.jsx(ie.Icons,{icon:"exclamation_triangle",size:"xs",strokeWidth:4,color:i.atraso?Z.danger.dark:null}),children:e.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-p-5 tw-text-sm",style:{color:Z.danger.dark},children:s==null?void 0:s.motivo})})}),e.jsx(ie.Icons,{icon:"calendar",size:"xs",strokeWidth:3,color:Z.texts.subtext}),e.jsx("p",{className:"tw-font-regular tw-text-xl tw-text-texts-subtext",children:`${n.getDate()} ${vt(n.getMonth()).slice(0,3)}`})]})]})},tr=({id:t})=>{const{selectedTasks:a,selectTask:r}=er();return e.jsxs(e.Fragment,{children:[e.jsx("label",{className:"tw-flex tw-h-[20px] tw-w-[20px] tw-cursor-pointer tw-items-center tw-justify-center tw-rounded-md tw-border-2 tw-border-gray-200",htmlFor:t.toString(),children:e.jsx("span",{className:`${a.includes(t)?"tw-opacity-100":"tw-opacity-0"} tw-transition-opacity tw-duration-500`,children:e.jsx(ie.Icons,{icon:"check_outline",size:"xs",color:Z.primary.regular,strokeWidth:6})})}),e.jsx("input",{className:"tw-hidden",id:t.toString(),type:"checkbox",onChange:()=>r(t)})]})},va=({task:t})=>e.jsx(ie.Tooltip,{dispatch:e.jsx("p",{className:"tw-max-w-[400px] tw-truncate tw-text-xl tw-text-texts-subtext",children:t}),children:e.jsx("p",{className:"tw-max-w-[400px] tw-p-2 tw-text-xl tw-text-texts-subtext",children:t})}),ar=({id:t})=>{var x,p,f,h,g;const[a,r]=w.useState(!1),[n,s]=w.useState(!1),{tasksProject:i}=Ve(),{reasignResponsible:o}=Ue(),{getOBPUrlApi:d}=fe(),l=(x=i==null?void 0:i.data)==null?void 0:x.find(b=>b.id===t),[u,c]=w.useState(null),{user:m}=Se();return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"tw-border-b tw-border-gray-200 tw-pb-3",children:e.jsxs("div",{className:"tw-mb-3 tw-ml-[30px] tw-mt-1 tw-flex tw-flex-wrap tw-items-center tw-gap-xl tw-rounded-md tw-p-2 hover:tw-bg-gray-100",onMouseEnter:()=>{c(t)},onMouseLeave:()=>c(null),onClick:()=>s(!0),children:[!(l!=null&&l.nameRequiredTask)||(l==null?void 0:l.nameRequiredTask)!==""&&(l==null?void 0:l.statusRequiredTask)===2&&e.jsx(tr,{id:t}),e.jsx(da,{id:t,idAtraso:(p=l==null?void 0:l.atraso)==null?void 0:p.atrasoId,nameRequiredTask:(l==null?void 0:l.nameRequiredTask)??"",status:l==null?void 0:l.status,statusRequiredTask:(l==null?void 0:l.statusRequiredTask)??0,nameRequiredTaskResponsible:l==null?void 0:l.nameRequiredTaskResponsible},t),(l==null?void 0:l.willBePaused)&&e.jsx(ma,{open:a,setOpen:r,trigger:e.jsx(je.Button,{type:"button",variant:"ghost",onClick:()=>r(!0),className:"tw-font-regular tw-flex tw-items-center tw-gap-2 tw-text-sm tw-text-gray-400",children:e.jsx(ie.Icons,{icon:l!=null&&l.paused?"play":"pause",size:"xs",strokeWidth:2})}),children:e.jsx(ba,{idTask:l==null?void 0:l.id,setOpen:r,paused:l==null?void 0:l.paused})}),e.jsx(wa,{role:m==null?void 0:m.role,status:l==null?void 0:l.status,onClick:async(b,v)=>{var P;await o({idNewResponsible:(P=b==null?void 0:b.tasksUser)==null?void 0:P.id,id:t,typeOfSelect:v})},responsible:l==null?void 0:l.responsible,users:((f=l==null?void 0:l.users)==null?void 0:f.map(b=>Nt(b,d())))??[]}),e.jsx(va,{task:(l==null?void 0:l.task)??""}),e.jsx(_a,{id:t,priority:l==null?void 0:l.priority,difficulty:l.difficulty,endDate:l==null?void 0:l.endDate,atraso:l==null?void 0:l.atraso}),e.jsx(ja,{startDate:l==null?void 0:l.startDate,endDate:l==null?void 0:l.endDate}),u===t&&e.jsxs("div",{className:"tw-flex tw-h-[30px] tw-items-center tw-justify-center tw-gap-2 tw-rounded-[12px] tw-rounded-md tw-bg-silver-silver_dark tw-p-[4px]",children:[e.jsx(ie.Tooltip,{dispatch:e.jsx("button",{className:"tw-z-10 tw-flex tw-h-[21px] tw-w-[24px] tw-w-fit tw-items-center tw-justify-center tw-rounded-[8px] tw-bg-silver-silver_light tw-px-[4px] hover:tw-cursor-help hover:tw-bg-gray-200",onClick:b=>{b.stopPropagation()},children:e.jsx(ie.Icons,{icon:"comment",size:"xs",strokeWidth:5,color:Z.texts.subtext,classNameDiv:"tw-w-[13px] tw-h-[13px]",style:{width:"13px",height:"13px"}})}),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..."})})}),(l==null?void 0:l.status)!==2&&e.jsx("div",{onClick:b=>{b.stopPropagation()},children:e.jsx(xa,{id:t,nameRequiredTask:l.nameRequiredTask,status:l.status,statusRequiredTask:l.statusRequiredTask,projectID:(h=i==null?void 0:i.data)==null?void 0:h.id,atrasoId:(g=l==null?void 0:l.atraso)==null?void 0:g.atrasoId,categoria:l==null?void 0:l.categoria})})]})]})}),e.jsx(ga,{taskId:t,isOpen:n,setIsOpen:s})]})},Na=({id:t})=>{var d,l,u,c,m,x;const{tasksProject:a,openTasks:r,openTask:n}=Ve(),s=(d=a==null?void 0:a.data)==null?void 0:d.find(p=>p.id===t),o=(()=>{var h;const p=a==null?void 0:a.data,f=[];return(h=s==null?void 0:s.tasks)==null||h.forEach(g=>{const b=p.find(v=>v.id===(g==null?void 0:g.id));b&&f.push(b)}),f})();return s?e.jsxs("div",{className:"tw-mb-2 tw-flex tw-flex-col tw-gap-m tw-overflow-y-auto",children:[e.jsxs("div",{className:"tw-flex tw-cursor-pointer tw-flex-wrap tw-items-center tw-gap-m tw-rounded-md tw-p-2 hover:tw-bg-silver-silver_light",onClick:()=>n(t),children:[e.jsx("button",{className:`${r.includes(t)?"":"tw--rotate-90"} tw-transition-all tw-duration-300`,children:e.jsx(ie.Icons,{icon:"angle_down_outline",color:Z.texts.subtext})}),e.jsx("div",{className:"tw-mx-1 tw-flex tw-h-[28px] tw-min-h-[28px] tw-w-fit tw-min-w-[28px] tw-items-center tw-justify-center tw-rounded-full tw-bg-primary-medium",children:e.jsx("p",{className:"tw-text-primary tw-text-xl",children:((l=s==null?void 0:s.tasks)==null?void 0:l.length)===0?1:o.length})}),e.jsx(va,{task:(s==null?void 0:s.task)??""}),e.jsx(_a,{id:t,priority:s==null?void 0:s.priority,difficulty:s==null?void 0:s.difficulty,endDate:s==null?void 0:s.endDate,atraso:s==null?void 0:s.atraso}),e.jsx(ja,{startDate:s==null?void 0:s.startDate,endDate:s==null?void 0:s.endDate}),e.jsxs("button",{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-m hover:tw-bg-gray-200",children:[e.jsx(ie.Icons,{icon:"subtasks",size:"xs",strokeWidth:5,color:Z.texts.subtext}),e.jsx("p",{className:"tw-text-xl",children:((u=s==null?void 0:s.tasks)==null?void 0:u.length)===0?1:(c=s==null?void 0:s.tasks)==null?void 0:c.length})]})]}),r.includes(t)&&e.jsx("div",{className:"tw-ml-[30px]",children:((m=s==null?void 0:s.tasks)==null?void 0:m.length)>0?(x=s==null?void 0:s.tasks)==null?void 0:x.map(p=>e.jsx(Na,{id:p==null?void 0:p.id})):e.jsx(ar,{id:s==null?void 0:s.id})})]}):null},sr=()=>{var n;const{tasksProject:t,projectID:a}=Ve();if(t!=null&&t.isFetching||t!=null&&t.isLoading)return e.jsx(ua,{});let r=[...(n=t==null?void 0:t.data)==null?void 0:n.filter(s=>s.isPrincipalTask)];return e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-m",children:e.jsx(Zs,{project:a,children:r==null?void 0:r.sort((s,i)=>s.orden-i.orden).map(s=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-m tw-border-b tw-border-gray-200 tw-pb-m ",children:e.jsx(Na,{id:s.id})}))})})};function Ht({title:t,color:a,icon:r}){return e.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-8",children:[e.jsx(A.Icon,{name:r,size:"md",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotoneSecondary:.5}),e.jsx("p",{className:"ui-text-base ui-py-0.5 ui-font-body-sm-bold ui-text-body-sm-bold ui-leading-none ui-text-primary",children:t})]})}function rr({value:t,onChange:a}){return e.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-4",children:[e.jsx("label",{className:"ui-text-body-sm-bold ui-text-primary",children:"Nombre del equipo"}),e.jsx(A.Input,{size:"xs",placeholder:"Creative",value:t,onChange:r=>a(r.target.value)})]})}const Ta=({title:t})=>e.jsxs("div",{className:"flex-1 tw-flex tw-items-center tw-gap-x-4",children:[e.jsx(A.Icon,{background:!0,name:Ee.faFilePen,color:"blue",size:"lg"}),e.jsx("h1",{className:"tw-text-[24px] tw-font-bold tw-leading-none",children:t})]}),He={search:"",debouncedSearch:"",filters:[]},nr={"kanban-general":{...He},"lista-campanias":{...He},"kanban-campania":{...He},"teams-container":{...He},"templates-container":{...He}},ct=ze.create((t,a)=>({viewFilters:nr,currentPath:null,debounceTimeouts:{},setCurrentPath:r=>{const n=a().currentPath;t({currentPath:r}),n&&n!==r&&a().resetPathData(n)},setSearch:(r,n)=>{const s=n||a().currentPath;if(!s)return;const i=`search_${s}`,o=a().debounceTimeouts[i];o&&clearTimeout(o),t(l=>({viewFilters:{...l.viewFilters,[s]:{...l.viewFilters[s],search:r}}}));const d=setTimeout(()=>{t(l=>({viewFilters:{...l.viewFilters,[s]:{...l.viewFilters[s],debouncedSearch:r}},debounceTimeouts:{...l.debounceTimeouts,[i]:void 0}}))},500);t(l=>({debounceTimeouts:{...l.debounceTimeouts,[i]:d}}))},setFilters:(r,n)=>{const s=n||a().currentPath;s&&t(i=>({viewFilters:{...i.viewFilters,[s]:{...i.viewFilters[s],filters:r}}}))},getSearch:r=>{var s;const n=r||a().currentPath;return n&&((s=a().viewFilters[n])==null?void 0:s.search)||""},getDebouncedSearch:r=>{var s;const n=r||a().currentPath;return n&&((s=a().viewFilters[n])==null?void 0:s.debouncedSearch)||""},getFilters:r=>{var s;const n=r||a().currentPath;return n?((s=a().viewFilters[n])==null?void 0:s.filters)||[]:[]},resetPathData:r=>{const n=`search_${r}`,s=a().debounceTimeouts[n];s&&clearTimeout(s),t(i=>({viewFilters:{...i.viewFilters,[r]:{...He}},debounceTimeouts:{...i.debounceTimeouts,[n]:void 0}}))}}));function Ca({path:t}){const{getSearch:a,setSearch:r}=ct(),n=a(t);return e.jsx(A.Input,{leftSlot:Ee.faSearch,placeholder:"Buscar...",size:"xs",value:n,onChange:s=>r(s.target.value,t)})}const Wt={fase_plantilla:"",tipo_plantilla:"",modo_configuracion:"",categoria:"",formato_salida:"",tipo_medio:"",medio_especifico:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},or={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},ir={fase_plantilla:"",tipo_plantilla:"",categoria:"",tipo_medio:"",medio_especifico:"",modo_configuracion:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},Kt={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},Fe=ze.create(t=>({path:"",viewMode:"grid",isOpenModalLimit:!1,template:null,clave:"XX-XXX-XX-XXX-XX-X-X",templateFormData:Wt,disabledFields:Kt,claveParams:ir,paramsTipo:or,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(r=>({templateFormData:{...r.templateFormData,...a}}))},resetTemplateFormData:()=>t({templateFormData:Wt}),setDisableField:({fields:a,value:r})=>{for(const n of a)t(s=>({disabledFields:{...s.disabledFields,[n]:r}}))},resetDisabledFields:()=>t({disabledFields:Kt}),setClaveParams:({field:a,value:r})=>{t(n=>({claveParams:{...n.claveParams,[a]:r}}))},resetClave:()=>t(a=>({clave:"XX-XXX-XX-XXX-XX-X-X"})),setParamTipo:a=>t(r=>({paramsTipo:{...r.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})})),Ea=t=>{const{getSearch:a,getDebouncedSearch:r,setSearch:n,getFilters:s,setFilters:i,resetPathData:o}=ct();return{search:a(t),debouncedSearch:r(t),filters:s(t),setSearch:d=>n(d,t),setFilters:d=>i(d,t),resetData:()=>o(t)}},lr=()=>e.jsx(Ta,{title:"Flujos de trabajo"}),Re=ze.create(t=>({activeTemplate:null,setActiveTemplate:a=>t({activeTemplate:a}),clearActiveTemplate:()=>t({activeTemplate:null})})),Te=ze.create((t,a)=>({mode:"grid",id:null,setMode:(r,n)=>{const s=a();if(r==="grid"||s.id!==null&&s.id!==n){const{clearAllGroupData:o}=a();o()}t({mode:r,id:n??null})},setId:r=>t({id:r}),reset:()=>{const{clearAllGroupData:r}=a();r(),t({mode:"grid",id:null})},addNode:null,addBranch:null,addNodeFromHandle:null,addNodeWithType:null,savePositions:null,loadPositions:null,clearPositions:null,activePlusNode:null,templateViewModes:{},setViewMode:(r,n)=>{const{templateViewModes:s}=a();t({templateViewModes:{...s,[r]:n}})},getViewMode:r=>{const{templateViewModes:n}=a();return n[r]??"readonly"},clearViewMode:r=>{const{templateViewModes:n}=a(),s={...n};delete s[r],t({templateViewModes:s})},expandedGroups:new Set,groupTemplateData:{},toggleGroupExpansion:r=>{const{expandedGroups:n}=a(),s=new Set(n);s.has(r)?s.delete(r):s.add(r),t({expandedGroups:s})},setGroupTemplateData:(r,n)=>{const{groupTemplateData:s}=a();t({groupTemplateData:{...s,[r]:n}})},clearGroupTemplateData:r=>{const{groupTemplateData:n}=a(),s={...n};delete s[r],t({groupTemplateData:s})},clearAllGroupData:()=>{t({expandedGroups:new Set,groupTemplateData:{}})},copiedNodes:[],setCopiedNodes:r=>t({copiedNodes:r}),clearCopiedNodes:()=>t({copiedNodes:[]}),expandGroup:null,collapseGroup:null})),Sa=()=>{const{tasks_api:t}=fe();return{getTemplateWithTasks:async r=>{var n;try{const s=Pe.stringify({filters:{plantilla:{id:r}}},{encodeValuesOnly:!0}),i=await t.get(`/api/plantillas/plantilla-tareas-grafico?${s}`);if(i.data&&i.data.data)return i.data.data;throw new Error(`No se encontraron datos para la plantilla con ID ${r}`)}catch(s){throw console.error("Error en getTemplateWithTasks:",{error:s.message,status:(n=s.response)==null?void 0:n.status}),s}}}},_e={DIRTY:"dirty",IDLE:"idle",NEW:"new"},Ie={DRAFT:"draft",PUBLISHED:"published",DELETED:"deleted"},We="templates",Ke="templates_states";function cr(t,a){return ze.create((r,n)=>{let s=null;const i=m=>r({isLoading:m}),o=m=>r({error:m}),d=m=>r({data:m}),l=()=>new Promise((m,x)=>{const p=indexedDB.open(t.name,t.version);p.onerror=()=>{o("Error al abrir la base de datos"),x(new Error("Error al abrir la base de datos"))},p.onsuccess=()=>{s=p.result,r({isConnected:!0,error:null}),m(s)},p.onupgradeneeded=f=>{const h=f.target.result;t.stores.forEach(g=>{var b;if(!h.objectStoreNames.contains(g.name)){const v=h.createObjectStore(g.name,{keyPath:g.keyPath,autoIncrement:g.autoIncrement??!1});(b=g.indexes)==null||b.forEach(P=>{v.createIndex(P.name,P.keyPath,P.options)})}})}}),u=(m="readonly")=>{if(!s)throw new Error("Base de datos no conectada");return s.transaction(a,m)},c=(m="readonly")=>u(m).objectStore(a);return{data:[],isLoading:!1,error:null,isConnected:!1,connect:async()=>{try{i(!0),o(null),await l(),await n().getAll()}catch(m){o(m instanceof Error?m.message:"Error desconocido")}finally{i(!1)}},disconnect:()=>{s&&(s.close(),s=null,r({isConnected:!1,data:[]}))},add:async m=>{try{i(!0),o(null);const x=c("readwrite");return new Promise((p,f)=>{const h=x.add(m);h.onsuccess=async()=>{await n().getAll(),p()},h.onerror=()=>{o("Error al agregar elemento"),f(new Error("Error al agregar elemento"))}})}finally{i(!1)}},addMany:async m=>{try{i(!0),o(null);const x=c("readwrite");return new Promise((p,f)=>{let h=0,g=!1;m.forEach(b=>{const v=x.add(b);v.onsuccess=()=>{h++,h===m.length&&!g&&n().getAll().then(()=>p())},v.onerror=()=>{g||(g=!0,o("Error al agregar elementos"),f(new Error("Error al agregar elementos")))}})})}finally{i(!1)}},get:async m=>{try{o(null);const x=c();return new Promise((p,f)=>{const h=x.get(m);h.onsuccess=()=>{p(h.result)},h.onerror=()=>{o("Error al obtener elemento"),f(new Error("Error al obtener elemento"))}})}catch(x){o(x instanceof Error?x.message:"Error desconocido");return}},getAll:async()=>{try{o(null);const m=c();return new Promise((x,p)=>{const f=m.getAll();f.onsuccess=()=>{const h=f.result;d(h),x(h)},f.onerror=()=>{o("Error al obtener elementos"),p(new Error("Error al obtener elementos"))}})}catch(m){return o(m instanceof Error?m.message:"Error desconocido"),[]}},update:async(m,x)=>{try{i(!0),o(null);const p=c("readwrite");return new Promise((f,h)=>{const g=p.get(m);g.onsuccess=()=>{const b=g.result;if(!b){o("Elemento no encontrado"),h(new Error("Elemento no encontrado"));return}const v={...b,...x},P=p.put(v);P.onsuccess=async()=>{await n().getAll(),f()},P.onerror=()=>{o("Error al actualizar elemento"),h(new Error("Error al actualizar elemento"))}},g.onerror=()=>{o("Error al obtener elemento para actualizar"),h(new Error("Error al obtener elemento para actualizar"))}})}finally{i(!1)}},delete:async m=>{try{i(!0),o(null);const x=c("readwrite");return new Promise((p,f)=>{const h=x.delete(m);h.onsuccess=async()=>{await n().getAll(),p()},h.onerror=()=>{o("Error al eliminar elemento"),f(new Error("Error al eliminar elemento"))}})}finally{i(!1)}},clear:async()=>{try{i(!0),o(null);const m=c("readwrite");return new Promise((x,p)=>{const f=m.clear();f.onsuccess=()=>{d([]),x()},f.onerror=()=>{o("Error al limpiar store"),p(new Error("Error al limpiar store"))}})}finally{i(!1)}},query:async(m,x)=>{try{o(null);const f=c().index(m);return new Promise((h,g)=>{const b=f.getAll(x);b.onsuccess=()=>{h(b.result)},b.onerror=()=>{o("Error en consulta"),g(new Error("Error en consulta"))}})}catch(p){return o(p instanceof Error?p.message:"Error desconocido"),[]}},queryRange:async(m,x,p)=>{try{o(null);const h=c().index(m);return new Promise((g,b)=>{const v=IDBKeyRange.bound(x,p),P=h.getAll(v);P.onsuccess=()=>{g(P.result)},P.onerror=()=>{o("Error en consulta por rango"),b(new Error("Error en consulta por rango"))}})}catch(f){return o(f instanceof Error?f.message:"Error desconocido"),[]}}}})}const ut=new Map;function Gt(t,a,r=!0){const n=w.useMemo(()=>{const P=`${t.name}-${a}`;if(!ut.has(P)){const $=cr(t,a);ut.set(P,$)}return ut.get(P)},[t.name,a]);w.useEffect(()=>{r&&!n.getState().isConnected&&n.getState().connect()},[r,n]);const s=n(P=>P.data),i=n(P=>P.isLoading),o=n(P=>P.error),d=n(P=>P.isConnected),l=w.useCallback(()=>n.getState().connect(),[n]),u=w.useCallback(()=>n.getState().disconnect(),[n]),c=w.useCallback(P=>n.getState().add(P),[n]),m=w.useCallback(P=>n.getState().addMany(P),[n]),x=w.useCallback(P=>n.getState().get(P),[n]),p=w.useCallback(()=>n.getState().getAll(),[n]),f=w.useCallback((P,$)=>n.getState().update(P,$),[n]),h=w.useCallback(P=>n.getState().delete(P),[n]),g=w.useCallback(()=>n.getState().clear(),[n]),b=w.useCallback((P,$)=>n.getState().query(P,$),[n]),v=w.useCallback((P,$,B)=>n.getState().queryRange(P,$,B),[n]);return{data:s,isLoading:i,error:o,isConnected:d,connect:l,disconnect:u,add:c,addMany:m,get:x,getAll:p,update:f,delete:h,clear:g,query:b,queryRange:v}}const Da=w.createContext(void 0);function dr({children:t}){const[a,r]=w.useState(!1),[n,s]=w.useState(!0),[i,o]=w.useState(null),d={name:"template_tabs_v1",version:2,stores:[{name:We,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]},{name:Ke,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]}]},l=Gt(d,We,!0),u=Gt(d,Ke,!0),c=w.useRef(new Map);c.current.has(We)||c.current.set(We,l),c.current.has(Ke)||c.current.set(Ke,u);const m=l.isConnected,x=l.error;w.useEffect(()=>{c.current.set(We,l),c.current.set(Ke,u)},[l,u]);const p=w.useCallback(h=>{const g=c.current.get(h);if(!g)throw new Error(`Store ${h} no encontrado. Asegúrate de que esté configurada en indexedDBConfig.`);return{data:g.data,isLoading:g.isLoading,add:g.add,addMany:g.addMany,get:g.get,getAll:g.getAll,update:g.update,delete:g.delete,clear:g.clear,query:g.query,queryRange:g.queryRange,error:g.error}},[]);w.useEffect(()=>{(async()=>{try{if(s(!0),o(null),await l.connect(),m)r(!0);else throw new Error("No se pudo establecer la conexión con IndexedDB")}catch(g){o(g instanceof Error?g.message:"Error desconocido")}finally{s(!1)}})()},[l.connect,m]),w.useEffect(()=>{x&&o(x)},[x]);const f={isInitialized:a,isInitializing:n,error:i,isConnected:m,getStore:p};return e.jsx(Da.Provider,{value:f,children:t})}function Ia(){const t=w.useContext(Da);if(t===void 0)throw new Error("useIndexedDBContext debe usarse dentro de IndexedDBProvider");return t}function It(){const{getStore:t}=Ia();return t(We)}function Pa(){const{add:t}=It(),a=async o=>{try{await t(o)}catch(d){console.error("Error al guardar plantilla a indexDB:",d)}},r=async o=>{const d={},l=u=>{u.id&&(d[u.id]=u),u.tareas&&Array.isArray(u.tareas)&&u.tareas.forEach(c=>{l(c)}),u.ids_t_dependientes&&Array.isArray(u.ids_t_dependientes)&&u.ids_t_dependientes.forEach(c=>{typeof c=="object"&&c.id&&l(c)}),u.plantilla_dependents&&Array.isArray(u.plantilla_dependents)&&u.plantilla_dependents.forEach(c=>{c.tarea_plantillas&&Array.isArray(c.tarea_plantillas)&&c.tarea_plantillas.forEach(m=>{l(m)})})};return o.tarea_plantillas.forEach(u=>{l(u)}),d},n=(o,d)=>{const l=d[o];if(!l)return[];const u=[l];return l.tareas&&Array.isArray(l.tareas)&&l.tareas.forEach(c=>{c.id&&u.push(...n(c.id,d))}),l.ids_t_dependientes&&Array.isArray(l.ids_t_dependientes)&&l.ids_t_dependientes.forEach(c=>{typeof c=="object"&&c.id?u.push(...n(c.id,d)):typeof c=="number"&&d[c]&&u.push(...n(c,d))}),u},s=(o,d)=>{const l=d[o];if(!l)return[];const u=[l];return l.tarea_padre&&d[l.tarea_padre]&&u.unshift(...s(l.tarea_padre,d)),u};return{hydrateTasks:async o=>{var u,c;const d=await r(o);return(c=(u=o==null?void 0:o.graph_layout)==null?void 0:u.snapshot)==null?void 0:c.nodes.map(m=>{if(m.type==="group")return{...m,data:{...m.data,type:"template"},type:"group",selected:!1};const x=m.data.tareaId?d[m.data.tareaId]:o;return x!=null&&x.start?{...m,data:{...x.plantilla,id:x.id},selected:!1}:{...m,data:{...x,type:"task"},selected:!1}})},initializeTemplateStore:a,indexedTasks:r,getTaskHierarchy:n,getTaskPath:s}}function Fa(){const{getStore:t}=Ia();return t(Ke)}const at=()=>{const{add:t,get:a,delete:r,update:n}=Fa(),{get:s}=It(),i={created:[],updated:[],deleted:[]},o=async({templateId:p})=>{const f=await a(p);return f||null};return{addTaskToState:async({task:p})=>{const f=await o({templateId:p.plantilla.id}),h=await s(p.plantilla.id);if(console.log("🔄 template:",h),!f)t({...i,id:p.plantilla.id,created:[...i.created,p]});else{const g=f.created.findIndex(b=>b.id===p.id);if(g!==-1){const b=f.created[g];f.created[g]={...b,...p},await n(p.plantilla.id,f)}else f.created.push(p),await n(p.plantilla.id,f)}},getTaskFromState:o,removeTemplateStates:async p=>{await r(p)},updateTaskInState:async({task:p})=>{const f=await o({templateId:p.plantilla.id}),g=(await s(p.plantilla.id)).graph_layout.snapshot.nodes;if(console.log("🔄 nodes:",g),f){const b=f.updated.findIndex(v=>v.id===p.id);if(b!==-1){const v=f.updated[b];console.log("🔄 currentTask:",v),f.updated[b]={...v,...p}}else f.updated.push(p);await n(p.plantilla.id,f)}else t({...i,id:p.plantilla.id,updated:[...i.updated,p]})},removeTaskFromState:async({templateId:p,id:f})=>{const h=await o({templateId:p});if(h){if(f>0){const b=h.deleted.findIndex(v=>v===f);if(b!==-1){h.deleted.splice(b,1),await n(p,h);return}}const g=h.created.findIndex(b=>b.id===f);if(g!==-1){h.created.splice(g,1),await n(p,h);return}}else if(f>0){t({...i,id:p,deleted:[...i.deleted,f]});return}},removeParentIdFromNodes:async({templateId:p,id:f})=>{const h=await o({templateId:p});if(h){const g=h.created.findIndex(v=>v.id===f);if(g!==-1){h.created[g].tarea_padre=null,h.created[g].id_t_requerida=null,await n(p,h);return}const b=h.updated.findIndex(v=>v.id===f);if(b!==-1){h.updated[b].tarea_padre=null,h.updated[b].id_t_requerida=null,await n(p,h);return}}},updateNodeWithNewEdge:async({templateId:p,edge:f,task:h})=>{console.log("🔵 updateNodeWithNewEdge - Inicio",{templateId:p,taskId:h.id,taskData:h});const g=await o({templateId:p});if(console.log("🔵 updateNodeWithNewEdge - Estado actual:",g),g){console.log("🔵 updateNodeWithNewEdge - Estado existe, buscando tarea...");const b=g.created.findIndex(P=>P.id===h.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en created:",b),b!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en created"),g.created[b]=h,await n(p,g),console.log("✅ updateNodeWithNewEdge - Actualizado en created");return}const v=g.updated.findIndex(P=>P.id===h.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en updated:",v),v!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en updated"),g.updated[v]=h,await n(p,g),console.log("✅ updateNodeWithNewEdge - Actualizado en updated");return}if(console.log("🔵 updateNodeWithNewEdge - Tarea no encontrada en arrays"),h.id&&h.id!==0){const P=h.id<0;P?(console.log("🔵 updateNodeWithNewEdge - Agregando a created (tarea nueva)"),g.created.push(h)):(console.log("🔵 updateNodeWithNewEdge - Agregando a updated (tarea existente)"),g.updated.push(h)),await n(p,g),console.log("✅ updateNodeWithNewEdge - Tarea agregada exitosamente a",P?"created":"updated")}else console.error("❌ updateNodeWithNewEdge - task.id no válido para agregar:",h.id)}else if(console.log("🔵 updateNodeWithNewEdge - Creando nuevo estado"),h.id&&h.id!==0){const b=h.id<0,v={...i,id:p,created:b?[h]:[],updated:b?[]:[h]};console.log("🔵 updateNodeWithNewEdge - Nuevo estado:",v,b?"(created)":"(updated)"),t(v),console.log("✅ updateNodeWithNewEdge - Estado creado exitosamente")}else console.error("❌ updateNodeWithNewEdge - task.id no válido:",h.id);console.log("🔵 updateNodeWithNewEdge - Fin")}}};function Be(){const{activeTemplate:t,setActiveTemplate:a}=Re(),{mode:r,setMode:n,setViewMode:s,clearViewMode:i}=Te(),{template:o,setIsOpenModalLimit:d,setOpenModalUnsavedChanges:l,setOpenModalPublishTemplate:u,setOpenModalDeleteTemplate:c}=Fe(),{hydrateTasks:m}=Pa(),{addTaskToState:x,removeTemplateStates:p}=at(),f=ue.useQueryClient(),{data:h,add:g,update:b,get:v,getAll:P,delete:$,isLoading:B,error:H}=It(),{get:I}=Fa(),{getTemplateWithTasks:D}=Sa(),{tasks_api:y}=fe(),[L,K]=w.useState(!1),[X,j]=w.useState(!1),[F,S]=w.useState(!1),M=w.useMemo(()=>h.sort((_,z)=>_.order-z.order),[h]);w.useEffect(()=>{M.length===0&&r!=="grid"&&n("grid")},[M,r,n]);const O=async(N,_=_e.IDLE)=>{var z;try{const k=await D(N.id),T=await m(k),G={id:crypto.randomUUID(),data:k,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},J=T||[G],ee={...k,graph_layout:{...k==null?void 0:k.graph_layout,snapshot:{...(z=k==null?void 0:k.graph_layout)==null?void 0:z.snapshot,nodes:J}},estatus:_,estatusFromStrapi:k.estatus};await g(ee)}catch(k){console.warn("No se pudieron obtener los datos completos de la plantilla, creando versión básica:",k);const T=N,G={id:crypto.randomUUID(),data:T,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},J={id:T.id,snapshot:{nodes:[G],edges:[],viewport:{x:0,y:0,zoom:1}},history:null,zoom:1,position:{x:0,y:0}},ee={...T,graph_layout:T.graph_layout||J,estatus:_,tarea_plantillas:T.tarea_plantillas||[]};await g(ee)}},W=async({template:N,checkTemplateInIndexedDB:_=!1,statusTemplate:z=_e.IDLE})=>{const k=M;if(!k.find(G=>G.id===N.id)){if(k.length===5){d(!0);return}if(_&&await v(N.id))return;await O({...N,order:k.length+1},z)}await Y(N.id),await ae(N),n("create-edit",N==null?void 0:N.id)},ae=async N=>{const _=await v(N.id);a(_)},Y=async N=>{try{let _=await P();_.sort((k,T)=>(k.order||0)-(T.order||0));const z=_.findIndex(k=>k.id===N);if(z!==-1){const[k]=_.splice(z,1);_.unshift(k),_.forEach((G,J)=>{G.order=J+1});const T=_.map(G=>b(G.id,G));await Promise.all(T)}else return}catch{}},oe=async N=>{try{await $(N),i(N);const _=await P();_.forEach((k,T)=>{k.order=T+1});const z=_.map(k=>b(k.id,k));await Promise.all(z)}catch{}};return{screens:M,isLoading:B,error:H,add:g,data:h,addScreen:O,openTemplate:W,update:b,delete:oe,get:v,activeTemplate:t,activateTemplate:ae,reorderingTemplates:Y,replaceTemplate:async()=>{try{const N=[...M],_={...N[N.length-1]};await $(_.id);const z={...o,order:_.order};await O(z);const T=(await P()).sort((J,ee)=>J.order-ee.order);if(T.some((J,ee)=>(J.order||0)!==ee+1)){const J=T.map((ee,le)=>({...ee,order:le+1}));for(const ee of J)try{await b(ee.id,ee)}catch{}}}catch{}finally{d(!1)}},addTaskUpdatingTemplate:async(N,_,z="hija")=>{var J,ee,le,V;const k=await v(_);if(!k)return null;const T={id:N.id,uuid:crypto.randomUUID(),reference_graph:N.reference_graph,texto_corto:N.title,texto_largo:N.description||"",prioridad:N.priority||null,nivel_dificultad:N.difficulty||1,duracion:N.duration||null,start:!1,type:"task",equipo:{id:Number(N.team)||null},responsable:{id:Number(N.responsible)||null},plantilla:{id:k.id,clave:k.clave,categoria:k.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:z==="dependiente"?(ee=(J=N.parent)==null?void 0:J.data)==null?void 0:ee.id:null,ids_t_dependientes:[],tarea_padre:z==="hija"?(V=(le=N.parent)==null?void 0:le.data)==null?void 0:V.id:null,tareas:[]},G={...k,estatus:_e.DIRTY};return await b(_,G),t&&t.id===_&&a(G),await x({task:T}),T},addTemplateUpdatingTemplate:async(N,_,z,k="hija")=>{let T=null;if(t&&t.id===_?T=t:T=await v(_),!T)return null;const G=(ee,le,V,se)=>{for(let ce=0;ce<ee.length;ce++){const ge=ee[ce];if(ge.id===le||ge.uuid===le)return se==="dependiente"?(ge.plantilla_dependents||(ge.plantilla_dependents=[]),ge.plantilla_dependents.push(V)):se==="hija"&&(ge.plantilla_dependents||(ge.plantilla_dependents=[]),ge.plantilla_dependents.push(V)),!0;if(ge.tareas&&ge.tareas.length>0){const ne=G(ge.tareas,le,V,se);if(ne)return ne}}return!1};if(G(T.tarea_plantillas,z,N,k)){const ee={...T,estatus:_e.DIRTY,updatedAt:new Date().toISOString()};return await b(_,ee),t&&t.id===_&&a(ee),!0}else return!1},updateGraphLayout:async(N,_)=>{var z;if(!N){console.warn("⚠️ updateGraphLayout - Template ID no válido");return}try{const k=await v(N);if(!k){console.warn("⚠️ updateGraphLayout - Template no encontrado");return}const T=(_.nodes||[]).filter(se=>{var ce;return!((ce=se.data)!=null&&ce.isInternal)&&!se.parentId}).map(se=>{const{style:ce,measured:ge,data:ne,...de}=se,{expandedDimensions:me,isExpanded:xe,needsReExpansion:we,...be}=ne||{},Ae=ce?{...ce,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...de,style:Ae,data:be,position:se.position}}),G=(_.edges||[]).filter(se=>{var ce;return!((ce=se.data)!=null&&ce.isInternal)}).map(se=>{var ce;if((ce=se.data)!=null&&ce.redirectedToInternal){const{redirectedToInternal:ge,originalTarget:ne,...de}=se.data;return{...se,target:ne||se.target,data:de}}return se}),J={..._,nodes:T,edges:G},ee=(z=k.graph_layout)==null?void 0:z.snapshot;if(!(!ee||JSON.stringify(ee)!==JSON.stringify(J)))return;const V={...k,graph_layout:{...k.graph_layout,snapshot:J},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await b(N,V),t&&t.id===N&&a(V)}catch(k){console.error("❌ updateGraphLayout - Error:",k)}},saveTemplateChanges:async(N=!0)=>{try{if(t.estatus===_e.DIRTY){j(!0);const{id:_}=t,z=await v(_),k=await I(_),T=z.graph_layout.snapshot.nodes||[],G=T.filter(V=>{var se;return!((se=V.data)!=null&&se.isInternal)&&!V.parentId}),J=T.length-G.length;J>0&&console.warn(`💾 [saveTemplateChanges] Se filtraron ${J} nodos internos al guardar plantilla ${_}`);const ee={graph_layout:{...z.graph_layout,snapshot:{...z.graph_layout.snapshot,nodes:G.map(V=>{const{style:se,measured:ce,selected:ge,...ne}=V,de=se?{...se,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return V.type==="group"?{...ne,style:de,data:{tareaId:V.data.id&&V.data.id>0?V.data.id:null,clave:V.data.clave,estatus:V.data.estatus,updatedAt:V.data.updatedAt,id:V.data.id}}:{...ne,style:de,data:{tareaId:V.data.id&&V.data.id>0?V.data.id:null}}}),edges:(z.graph_layout.snapshot.edges||[]).filter(V=>{var se;return!((se=V.data)!=null&&se.isInternal)})}},tasks:{created:(k==null?void 0:k.created)||[],updated:(k==null?void 0:k.updated)||[],deleted:(k==null?void 0:k.deleted)||[]}},le=await y.post("/api/tareas/save-tareas-grafico",{data:ee});if(le.data&&le.status===200){try{const V=await D(_),se=await m(V),ce={...V,graph_layout:{...V.graph_layout,snapshot:{...V.graph_layout.snapshot,nodes:se}},estatus:_e.IDLE};await b(_,ce),N||a(ce)}catch{const se=await v(_);if(se&&!N){const ce={...se,estatus:_e.IDLE};await b(_,ce),a(ce)}}await f.invalidateQueries({queryKey:["template",_]}),await f.invalidateQueries({queryKey:["template"]}),p(_),N&&(oe(_),l(!1)),s(_,"readonly")}}}catch(_){console.log(_)}finally{j(!1)}},publishTemplate:async N=>{try{K(!0);const _={estatus:Ie.PUBLISHED,publication_date:new Date},z=await y.put(`/api/plantillas/plantilla-update-estatus/${N}`,{data:_});z.data&&z.status===200&&(a({...t,estatusFromStrapi:Ie.PUBLISHED}),u(!1),A.toast.info("Se publicó correctamente el proceso"))}catch(_){console.log(_),A.toast.error("Surgió un error al publicar el proceso")}finally{K(!1)}},deleteTemplate:async N=>{try{S(!0);const _={estatus:Ie.DELETED,sjdaksd:0},z=await y.put(`/api/plantillas/plantilla-update-estatus/${N}`,{data:_});z.data&&z.status===200&&(c(!1),A.toast.info("Se eliminó correctamente el proceso"))}catch(_){console.error(_),A.toast.error("Surgión un error al eliminar el proceso")}finally{S(!1)}},loadingPublishTemplate:L,loadingSaveChanges:X,loadingDeleteTemplate:F}}const ur=async({tasks_api:t})=>{try{return(await t.get("/api/getAllOBPusers")).data}catch(a){throw console.log("Error al obtener los usuarios de OBP",a),`Error al obtener los usuarios de OBP: ${a}`}},pr=()=>{const{tasks_api:t}=fe();return{users:ue.useQuery({queryKey:["usersOBP"],queryFn:()=>ur({tasks_api:t}),staleTime:1e3*60*60*24})}},Xe=()=>{const{users:t}=pr(),a=ue.useQuery({queryKey:["users_index",t.data],queryFn:()=>Es({users:t.data||[]}),staleTime:1e3*60*60*24,enabled:!!t.data});return{users:a.data,isLoading:a.isLoading||t.isLoading}},Aa=()=>{const{users:t,isLoading:a}=Xe(),{getImageOBP:r}=fe();return{getImageByEmail:i=>{const o=t==null?void 0:t[i];return r(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}},st=({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(A.Spinner,{})})]}):null,Qt=({template:t,openModalPublishTemplate:a,onHadleClickEditTemplateParams:r,onEditTasks:n,canDuplicateAndDeleteTemplates:s,onHandleClickDuplicateTemplate:i,openModalDeleteTemplate:o})=>e.jsx(A.Popup,{color:"secondary",pill:"pill",icon:pe.faEllipsis,stopPropagationList:!0,children:e.jsxs(A.List,{className:"ui-p-6 ui-gap-4",children:[t.estatus!==Ie.PUBLISHED&&t.counts_tasks>2&&e.jsx(A.ListItem,{icon:pe.faArrowUp,onClick:a,children:"Publicar"}),e.jsx(A.ListItem,{icon:pe.faEdit,onClick:()=>{r(t)},children:"Editar parámetros"}),e.jsx(A.ListItem,{icon:pe.faEdit,onClick:()=>{n&&n(t)},children:"Editar tareas"}),s&&e.jsx(A.ListItem,{icon:pe.faClone,onClick:d=>{d.stopPropagation(),i(t)},children:"Duplicar"}),s&&e.jsx(A.ListItem,{color:"red",icon:pe.faTrash,onClick:o,children:"Eliminar"})]})}),ka=({fullWidth:t,mode:a="grid",onClick:r,active:n,template:s,withOptions:i=!0})=>{const{openTemplate:o}=Be(),{getImageByEmail:d,getNameByEmail:l}=Aa(),{setIsEditTemplate:u,setOpenModalCreateTemplate:c,setCurrentTemplateForEdit:m,setIsDuplicateTemplate:x,setOpenModalPublishTemplate:p,setCurrentTemplateId:f,setOpenModalDeleteTemplate:h}=Fe(),g={0:{color:"accent",theme:"solid"},1:{color:"accent",theme:"soft"},2:{color:"warning",theme:"solid"},3:{color:"info",theme:"solid"},4:{color:"gray",theme:"solid"},5:{color:"warning",theme:"soft"},6:{color:"danger",theme:"solid"},7:{color:"info",theme:"soft"},8:{color:"success",theme:"solid"},9:{color:"danger",theme:"solid"}},[b,v]=w.useState(!1),P=async()=>{if(v(!0),a==="grid")try{v(!0),await o({template:s,checkTemplateInIndexedDB:!0})}catch(W){console.error(W)}finally{v(!1)}else v(!1);r==null||r(s==null?void 0:s.id)},$=async()=>{if(!(a!=="grid"||!s)){v(!0);try{await o({template:s,checkTemplateInIndexedDB:!0}),r==null||r(s==null?void 0:s.id)}catch(W){console.error(W)}finally{v(!1)}}},B=W=>{u(!0),c(!0),m(W)},H=W=>{x(!0),c(!0),m(W)},I=()=>{f(s==null?void 0:s.id),p(!0)},D=()=>{f(s==null?void 0:s.id),h(!0)},y=(s==null?void 0:s.dias_duracion)===1?"Día":"Días",L=(s==null?void 0:s.counts_tasks)===1?"Tarea":"Tareas",K=(s==null?void 0:s.estatus)===Ie.PUBLISHED?xt(s==null?void 0:s.publication_date).format("DD/MM/YYYY"):xt(s==null?void 0:s.createdAt).format("DD/MM/YYYY"),X=(s==null?void 0:s.updated_by)||(s==null?void 0:s.created_by),j=d(X==null?void 0:X.email),F=l(X==null?void 0:X.email)||"",S=(s==null?void 0:s.estatus)===Ie.PUBLISHED?"Fecha de publicación":"Fecha de creación",M=(s==null?void 0:s.estatus)===Ie.DRAFT,O=W=>{const ae=W.split("-");return e.jsx(e.Fragment,{children:ae.map((Y,oe)=>e.jsxs("span",{children:[Y,oe<ae.length-1&&e.jsx("span",{className:"tw-text-neutral-200",children:"-"})]},oe))})};return e.jsxs(A.Card,{active:n,fullWidth:t,onClick:P,className:`${t?"md:tw-flex-row":"tw-flex-col"}`,children:[e.jsx(st,{isLoading:b}),e.jsx(A.Card.Header,{children:e.jsx("div",{className:"ui-flex ui-justify-between ui-items-start ui-gap-x-4",children:e.jsxs("div",{className:"ui-flex ui-justify-between ui-items-start ui-gap-4 ui-flex-1",children:[e.jsxs("div",{className:"ui-flex ui-place-items-start ui-gap-x-4",children:[e.jsx("div",{className:"tw-flex tw-items-center",children:e.jsx(A.Icon,{name:$e.faChartDiagram,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"lg"})}),e.jsxs("div",{className:"ui-flex ui-gap-x-1 ui-flex-col ui-gap-y-4",children:[e.jsx("h1",{className:"ui-text-base ui-py-0.5 ui-font-body-sm-bold ui-text-body-sm-bold tw-leading-none ui-text-primary",children:O((s==null?void 0:s.clave)||(s==null?void 0:s.nombre_plantilla))}),e.jsxs("div",{className:"ui-flex tw-items-baseline ui-gap-x-1",children:[e.jsx(A.Badge,{size:"sm",theme:"soft",color:(s==null?void 0:s.estatus)===Ie.PUBLISHED?"success":"gray",label:(s==null?void 0:s.estatus)===Ie.PUBLISHED?"Publicado":"Borrador"}),!(typeof K=="string"&&K==="Invalid date")&&e.jsx(A.Tooltip,{label:S,children:e.jsx("p",{className:"ui-text-body-sm-regular ui-text-tertiary ui-font-body-sm-semibold",children:K})})]})]})]}),!t&&e.jsx(Qt,{template:s,openModalPublishTemplate:I,onHadleClickEditTemplateParams:B,onEditTasks:$,canDuplicateAndDeleteTemplates:M,onHandleClickDuplicateTemplate:H,openModalDeleteTemplate:D})]})})}),e.jsx(A.Card.Separator,{vertical:t}),e.jsx(A.Card.Body,{className:"ui-flex ui-flex-wrap ui-gap-x-4 ui-gap-y-1 tw-w-full md:tw-w-auto tw-flex-wrap tw-flex-1 tw-items-center",children:s==null?void 0:s.params_plantillas.map((W,ae)=>{const Y=g[W.params_tipo.order-1];return e.jsx(A.Badge,{color:Y.color,theme:Y.theme,label:W.name,size:"sm"},W.name)})}),!t&&e.jsx(A.Card.Separator,{vertical:t}),e.jsxs(A.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(A.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-icon-all-colors-blue ui-text-xs tw-text-center tw-leading-none tw-font-semibold",children:(s==null?void 0:s.counts_tasks)||0}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:L})]})})}),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(A.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-icon-all-colors-blue ui-text-xs tw-text-center tw-leading-none tw-font-semibold",children:(s==null?void 0:s.dias_duracion)||0}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:y})]})})}),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-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Editor"}),e.jsx(A.Tooltip,{label:F,children:e.jsx(A.Avatar,{src:j,size:"xxs",type:"people"})})]})]}),t&&i&&e.jsx(A.Card.Separator,{vertical:t}),i&&e.jsx("div",{className:`tw-w-auto ${t?"tw-flex tw-items-center":""}`,children:t&&e.jsx(Qt,{template:s,openModalPublishTemplate:I,onHadleClickEditTemplateParams:B,onEditTasks:$,canDuplicateAndDeleteTemplates:M,onHandleClickDuplicateTemplate:H,openModalDeleteTemplate:D})})]})]})},wr={1:"blue",2:"green",3:"red",4:"yellow"},mr=({difficulty:t})=>e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end ui-gap-2",children:[e.jsx(A.Icon,{name:pe.faRhombus,size:"md",color:wr[t]}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Dificultad"})]}),fr=({duration:t})=>e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[e.jsx("p",{className:"ui-text-icon-all-colors-blue ui-text-body-lg-regular tw-leading-none tw-font-semibold",children:t}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Duración"})]}),xr={1:"neutral",2:"blue",3:"yellow",4:"red"},gr=({priority:t})=>e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end ui-gap-2",children:[e.jsx(A.Icon,{name:pe.faFlag,size:"md",color:xr[t]}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Prioridad"})]});class hr{static toUsers(a){return{id:a.id,name:a.nombre,image:a.image,email:a.email}}}const br=async({tasks_api:t})=>{try{const a=Pe.stringify({filters:{blocked:!1}},{encodeValuesOnly:!0}),r=await t.get(`/api/users?${a}`);return he(r.data).map(hr.toUsers).sort((s,i)=>s.name.localeCompare(i.name))}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Pt=()=>{const{tasks_api:t}=fe(),a=ue.useQuery({queryKey:["users-mt"],queryFn:()=>br({tasks_api:t}),staleTime:1e3*60*60*24});return{isLoading:a.isLoading,users:a.data}},yr=({responsible:t})=>{const{isLoading:a}=Pt(),{getImageByEmail:r,isLoading:n}=Aa();return a||n?null:e.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[e.jsx(A.Avatar,{size:"xs",src:r(t==null?void 0:t.email),type:"people"}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Responsable"})]})},jr=async t=>{const a=Pe.stringify({fields:["id","nombre"],sort:["nombre:asc"]},{encodeValuesOnly:!0}),r=await t.get(`/api/equipos?${a}`);return r.data?{data:he(r.data.data)}:{data:[]}},_r=()=>{const{tasks_api:t}=fe();return ue.useQuery({queryKey:["teams"],queryFn:()=>jr(t),staleTime:1e3*60*60*24,select:r=>r.data.map(s=>({label:s.nombre,value:s.id}))})},vr=[{label:"Muy alta",value:4,icon:pe.faFlag,iconColor:"red"},{label:"Alta",value:3,icon:pe.faFlag,iconColor:"yellow"},{label:"Media",value:2,icon:pe.faFlag,iconColor:"blue"},{label:"Baja",value:1,icon:pe.faFlag,iconColor:"neutral"}],Nr=[{label:"Muy alta",value:4,icon:pe.faRhombus,iconColor:"red"},{label:"Alta",value:3,icon:pe.faRhombus,iconColor:"yellow"},{label:"Media",value:2,icon:pe.faRhombus,iconColor:"blue"},{label:"Baja",value:1,icon:pe.faRhombus,iconColor:"neutral"}],Tr=[{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:r,nodeDataType:n,parentNodeInfo:s,editMode:i=!1,taskToEdit:o})=>{const{data:d}=_r(),{users:l}=Pt(),{users:u}=Xe(),{getImageOBP:c}=fe(),m=w.useMemo(()=>{try{return!l||!u?[]:l.map(I=>{const D=u[I.email],y=D!=null&&D.image?c(D.image):"";return{label:I.name,value:I.id.toString(),icon:y}})}catch(I){return console.error("Error mapeando usuarios:",I),[]}},[l,u]),x=()=>{if(i&&o){const I=K=>{if(K==null)return"";const X=Number(K);return isNaN(X)?"":X},D=K=>K?typeof K=="string"?Number(K)||"":K.id||"":"",y=K=>{var X;return K?typeof K=="string"?K:((X=K.id)==null?void 0:X.toString())||K.name||K.nombre||"":""};return{title:o.texto_corto||"",description:o.texto_largo||"",priority:I(o.prioridad),difficulty:I(o.nivel_dificultad),duration:I(o.duracion),team:D(o.equipo),responsible:y(o.responsable),type:"tarea"}}return{title:"",description:"",priority:"",difficulty:"",duration:"",team:"",responsible:"",type:"tarea"}},{control:p,handleSubmit:f,formState:{errors:h,isValid:g},reset:b,watch:v}=Ce.useForm({mode:"onChange",defaultValues:x()});w.useEffect(()=>{t&&b(x())},[t,i,o,b]);const P=v(),$=g&&P.title&&P.description&&P.priority&&P.difficulty&&P.duration&&P.team&&Object.keys(h).length===0,B=async I=>{try{if(["title","description","priority","difficulty","duration","team"].filter(L=>!I[L]).length>0)return;r&&r({...I,parent:s}),b()}catch{}},H=()=>{b(),a()};return e.jsx(A.Drawer,{titleIcon:pe.faPencil,isOpen:t,onClose:H,onSuccess:()=>{f(I=>{B(I)},I=>{const D=Object.entries(I).map(([y,L])=>`${y}: ${L.message}`).join(`
57
57
  `);console.log(`📝 Por favor, completa los siguientes campos:
58
- `+C)})()},title:i?"Editar tarea":"Nueva tarea",successButtonText:i?"Actualizar":"Crear",disabledSuccessButton:!$,children:e.jsxs("form",{className:"tw-flex tw-flex-col tw-gap-4",children:[e.jsx(Ce.Controller,{control:p,name:"title",rules:{required:"El título es obligatorio",minLength:{value:3,message:"El título debe tener al menos 3 caracteres"}},render:({field:P})=>{var C;return e.jsx(A.Input,{fullWidth:!0,label:"Título",placeholder:"Ingresa el título de la tarea...",error:(C=g.title)==null?void 0:C.message,...P})}}),e.jsx(Ce.Controller,{control:p,name:"description",rules:{required:"La descripción es obligatoria",minLength:{value:10,message:"La descripción debe tener al menos 10 caracteres"}},render:({field:P})=>{var C;return e.jsx(A.Textarea,{className:"ui-w-full tw-w-full",placeholder:"Describe la tarea a realizar...",label:"Descripción",error:(C=g.description)==null?void 0:C.message,...P})}}),e.jsx(A.Separator,{}),e.jsx(Ce.Controller,{control:p,name:"priority",rules:{required:"La prioridad es obligatoria"},render:({field:P,fieldState:{error:C}})=>e.jsx(A.Dropdown,{fullWidth:!0,label:"Prioridad",placeholder:"Selecciona la prioridad...",options:_r,error:C==null?void 0:C.message,value:P.value,onValueChange:y=>{P.onChange(y)}})}),e.jsx(Ce.Controller,{control:p,name:"difficulty",rules:{required:"La dificultad es obligatoria"},render:({field:P,fieldState:{error:C}})=>e.jsx(A.Dropdown,{fullWidth:!0,label:"Dificultad",placeholder:"Selecciona la dificultad...",options:vr,error:C==null?void 0:C.message,value:P.value,onValueChange:y=>{P.onChange(y)}})}),e.jsx(Ce.Controller,{control:p,name:"duration",rules:{required:"La duración es obligatoria"},render:({field:P,fieldState:{error:C}})=>e.jsx(A.Dropdown,{fullWidth:!0,label:"Duración",placeholder:"Selecciona la duración...",options:Nr,error:C==null?void 0:C.message,value:P.value,onValueChange:y=>{P.onChange(y)}})}),e.jsx(A.Separator,{}),e.jsx(Ce.Controller,{control:p,name:"team",rules:{required:"El equipo es obligatorio"},render:({field:P,fieldState:{error:C}})=>e.jsx(A.Dropdown,{fullWidth:!0,label:"Equipo",placeholder:"Selecciona el equipo...",options:d,error:C==null?void 0:C.message,value:P.value,onValueChange:y=>{P.onChange(y)}})}),e.jsx(Ce.Controller,{control:p,name:"responsible",render:({field:P,fieldState:{error:C}})=>e.jsx(A.Dropdown,{fullWidth:!0,absolute:!0,label:"Responsable",placeholder:"Selecciona el responsable...",options:m,error:C==null?void 0:C.message,value:P.value,onValueChange:y=>{P.onChange(y)}})})]})})},Tr=()=>{const{get:t}=Be(),a=Re(i=>i.activeTemplate),{updateTaskInState:n,addTaskToState:r}=at();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 n({task:l}):await r({task:l})}catch(d){return console.error("❌ Error al actualizar tarea en plantilla:",d),!1}}}},Ne={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}},pt=t=>{const a=t.map(n=>({...n}));return a.filter(n=>n.type==="group").forEach(n=>{const r=a.filter(u=>u.parentId===n.id);if(r.length===0)return;const s=Math.min(...r.map(u=>u.position.x)),o=Math.max(...r.map(u=>{var m;return u.position.x+(typeof((m=u.style)==null?void 0:m.width)=="number"?u.style.width:Ne.DEFAULT_CHILD_WIDTH)}))-s,d=Math.min(...r.map(u=>u.position.y)),c=Math.max(...r.map(u=>{var m;return u.position.y+(typeof((m=u.style)==null?void 0:m.height)=="number"?u.style.height:Ne.DEFAULT_CHILD_HEIGHT)}))-d;n.style={...n.style??{},width:o,height:c}}),a},wt=t=>t.source===Ne.START_NODE_ID||t.target===Ne.START_NODE_ID,Ge=t=>t===Ne.START_NODE_ID,Cr=t=>t==="dependiente"?Qt.dependiente:Qt.normal,Er=(t,a,n)=>({id:t,type:"main",position:a,selected:!1,deletable:!0,data:n}),mt=(t,a,n,r,s,i=!1,o=null,d=null)=>{const l=Cr(r),c=i?Ne.DEFAULT_SOURCE_HANDLE:n;return{id:`edge-${t}-${a}`,source:t,sourceHandle:c,target:a,targetHandle:Ne.DEFAULT_TARGET_HANDLE,type:"smoothstep",deletable:!0,style:l,markerEnd:{type:"arrowclosed",width:12,height:12,color:l.stroke,strokeWidth:1},data:{connectionType:r,nodeType:s,isFromStartNode:i,parentId:o,childId:d}}},Sr=(t,a)=>!(!t||!a||t===a),Dr=t=>{const{clientX:a,clientY:n}="changedTouches"in t?t.changedTouches[0]:t;return{x:a,y:n}},Ir=t=>t.filter(a=>a.type==="position"&&a.dragging===!1),Ma=t=>t.map(a=>a.id),qa=({nodes:t,edges:a,setNodes:n,setEdges:r,newNodePopup:s,connectionPopup:i,closeNewNodePopup:o,closeConnectionPopup:d,setIsConnectingExistingNodes:l})=>{const{screenToFlowPosition:c,getNode:u,setViewport:m,fitView:x}=re.useReactFlow(),{get:p,update:f,addTaskUpdatingTemplate:g,addTemplateUpdatingTemplate:h}=Be(),b=Re(j=>j.activeTemplate),v=pe.useQueryClient(),I=Re(j=>j.setActiveTemplate),{removeTaskFromState:$,updateNodeWithNewEdge:R,updateTaskInState:U}=at(),P=w.useCallback(async j=>{const F=t.find(M=>M.id===j);if(!(F!=null&&F.data))return null;if(F.id===Ne.START_NODE_ID){if(!b)return null;try{const M=await p(b.id),L=M.tarea_plantillas.find(W=>W.start===!0);return L!=null&&L.id?L.id:M.tarea_plantillas.length>0?M.tarea_plantillas[0].id:null}catch{return null}}const D=F.data.id;if(!D&&D!==0)return null;if(typeof D=="string"){if(D.includes("-"))return D;{const M=parseInt(D,10);return isNaN(M)?null:M}}else if(typeof D=="number")return D;return null},[t,b,p]),C=w.useCallback(async(j=t,F=a)=>{var D,M,L,W,ae,X,oe;if(!b){A.toast.warning("No hay template activo para actualizar layout");return}try{const te=await p(b.id);if(!te){A.toast.warning("Template no encontrado en IndexedDB");return}const q=(D=te.graph_layout)==null?void 0:D.snapshot;if(!(!q||JSON.stringify(q.nodes)!==JSON.stringify(j)||JSON.stringify(q.edges)!==JSON.stringify(F))){console.log("🔄 No hay cambios en el layout, omitiendo actualización");return}const V=j.filter(O=>{var N;return!((N=O.data)!=null&&N.isInternal)&&!O.parentId}).map(O=>{const{style:N,measured:_,data:B,selected:k,...T}=O,{expandedDimensions:K,isExpanded:Y,needsReExpansion:ee,...le}=B||{},Q=N?{...N,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...T,style:Q,data:le}}),E=F.filter(O=>{var N;return!((N=O.data)!=null&&N.isInternal)}),S={...te,graph_layout:{id:((M=te.graph_layout)==null?void 0:M.id)||0,snapshot:{nodes:V,edges:E,viewport:((W=(L=te.graph_layout)==null?void 0:L.snapshot)==null?void 0:W.viewport)||{x:0,y:0,zoom:1}},history:((ae=te.graph_layout)==null?void 0:ae.history)||[],zoom:((X=te.graph_layout)==null?void 0:X.zoom)||1,position:((oe=te.graph_layout)==null?void 0:oe.position)||{x:0,y:0}},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await f(b.id,S),console.log("🗑️ [useFlowActions] Invalidando caché de la plantilla:",b.id),await v.invalidateQueries({queryKey:["template",b.id]}),await v.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlowActions] Caché invalidado exitosamente"),I(S)}catch(te){console.error("❌ Error al actualizar template layout:",te)}},[b,p,f,t,a,I]),y=w.useCallback(async(j=[],F=[],D,M)=>{var W,ae,X,oe,te,q,z,V,E,S,O,N;const L=D||(b==null?void 0:b.id);if(!L){A.toast.warning("No hay template ID disponible para actualizar");return}try{const _=await p(L);if(!_)return;const B=(X=(ae=(W=_.graph_layout)==null?void 0:W.snapshot)==null?void 0:ae.nodes)==null?void 0:X.filter(K=>{var Y;return!j.includes(K.id)&&!((Y=K.data)!=null&&Y.isInternal)&&!K.parentId}).map(K=>{const{style:Y,measured:ee,data:le,...Q}=K,{expandedDimensions:se,...ce}=le||{},ge=Y?{...Y,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...Q,style:ge,data:ce}}),k=((q=(te=(oe=_.graph_layout)==null?void 0:oe.snapshot)==null?void 0:te.edges)==null?void 0:q.filter(K=>{var Y;return!j.includes(K.source)&&!j.includes(K.target)&&!((Y=K.data)!=null&&Y.isInternal)}))||[],T={..._,graph_layout:{id:((z=_.graph_layout)==null?void 0:z.id)||0,snapshot:{nodes:B,edges:k,viewport:((E=(V=_.graph_layout)==null?void 0:V.snapshot)==null?void 0:E.viewport)||{x:0,y:0,zoom:1}},history:((S=_.graph_layout)==null?void 0:S.history)||[],zoom:((O=_.graph_layout)==null?void 0:O.zoom)||1,position:((N=_.graph_layout)==null?void 0:N.position)||{x:0,y:0}},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await $({templateId:L,id:M||0}),await f(L,T),await v.invalidateQueries({queryKey:["template",L]}),await v.invalidateQueries({queryKey:["template"]}),L===(b==null?void 0:b.id)&&I(T)}catch(_){console.error("❌ updateAfterDeleted - Error al actualizar template layout:",_)}},[b,p,f,a,t,$,I]),H=w.useCallback(async(j,F,D)=>{if(!s||!b)return;const{nodeId:M,sourceNodeId:L,sourceHandleId:W}=s;if(L)try{const ae=await P(L);if(!ae)return;if(j==="plantilla"){const X=D;if(!(X!=null&&X.templateId))return;if(!await h(X.templateId,b.id,ae,F)){A.toast.error("No se pudo agregar la plantilla. Intenta nuevamente."),o();return}try{const O=await p(b.id);if(O){const N=(B,k)=>{for(const T of B){if(T.id===k||T.uuid===k)return T;if(T.tareas&&T.tareas.length>0){const K=N(T.tareas,k);if(K)return K}}return null},_=N(O.tarea_plantillas,ae);if(_&&_.id){const B=(_.plantilla_dependents||[]).map(T=>typeof T=="object"&&T.id?{id:T.id}:typeof T=="number"?{id:T}:T),k={..._,plantilla_dependents:B,plantilla:{id:b.id,clave:O.clave,categoria:O.categoria||{id:0,nombre:"Sin categoría"}}};await U({task:k}),console.log("✅ Tarea padre agregada a templates_states.updated con plantilla_dependents:",_.id,k.plantilla_dependents)}}}catch(O){console.error("❌ Error al actualizar tarea padre en templates_states:",O)}const te=c({x:s.position.x,y:s.position.y}),q=X.templateData||{id:X.templateId,nombre_plantilla:`Flujo de trabajo ${X.templateId}`,clave:`TPL-${X.templateId}`,estatus:"activo",categoria:null,counts_tasks:0,dias_duracion:0},z={id:M,type:"group",position:te,selected:!1,deletable:!0,data:{id:X.templateId,templateId:X.templateId,type:"template",nombre_plantilla:q.nombre_plantilla||`Flujo de trabajo ${X.templateId}`,clave:q.clave||`TPL-${X.templateId}`,estatus:q.estatus||"activo",categoria:q.categoria||null,counts_tasks:q.counts_tasks||0,dias_duracion:q.dias_duracion||0,tarea_plantillas:q.tarea_plantillas||[],params_plantillas:q.params_plantillas||[],createdAt:q.createdAt||new Date().toISOString(),updatedAt:q.updatedAt||new Date().toISOString(),created_by:q.created_by||null,updated_by:q.updated_by||null}};n(O=>[...O,z]);const V=W||Ne.DEFAULT_SOURCE_HANDLE,E=Ge(L),S=mt(L,M,V,F,"plantilla",E,ae);r(O=>[...O,S]);try{const O=[...t,z],N=[...a,S];await C(O,N)}catch(O){console.error("❌ Error al actualizar layout después de agregar plantilla:",O)}}else if(j==="tarea"){const X=D;if(!X)return;const oe=c({x:s.position.x,y:s.position.y}),te=-new Date().getTime(),q={id:te,reference_graph:M,title:X.title,description:X.description,priority:X.priority,difficulty:X.difficulty,duration:X.duration,team:X.team,responsible:X.responsible,parent:{data:{id:ae}}},z=await g(q,b.id,F),V=Er(M,oe,z);n(N=>[...N,V]);const E=W||Ne.DEFAULT_SOURCE_HANDLE,S=Ge(L),O=mt(L,M,E,F,j,S,ae,te);r(N=>[...N,O]);try{const N=[...t,V],_=[...a,O];await C(N,_)}catch(N){console.error("❌ Error al actualizar layout después de agregar tarea:",N)}setTimeout(()=>{try{const N=u(M);if(N){const _=window.innerWidth,B=window.innerHeight,k=_/2,T=B/2;m({x:k-N.position.x-130,y:T-N.position.y-40,zoom:1},{duration:800})}else x({padding:.1,duration:800})}catch{try{x({padding:.1,duration:800})}catch{}}},200)}o()}catch(ae){console.error("❌ Error en createNodeFromPopup:",ae)}},[s,b,g,h,P,c,n,r,o,C,t,a]),G=w.useCallback(async(j,F)=>{var W,ae;if(console.log("🟢 createConnectionFromPopup - INICIO",{nodeType:j,connectionType:F}),!i){console.warn("⚠️ createConnectionFromPopup - No hay connectionPopup");return}const{sourceNodeId:D,sourceHandleId:M,targetNodeId:L}=i;console.log("🟢 createConnectionFromPopup - Datos de conexión:",{sourceNodeId:D,targetNodeId:L,sourceHandleId:M});try{if(!(window.validConnectionTypes||{dependiente:!0,hija:!0})[F]){console.warn("⚠️ createConnectionFromPopup - Tipo de conexión no válido:",F),A.toast.warning("Tipo de conexión no válido"),l(!1),d();return}const oe=t.find(k=>k.id===D),te=t.find(k=>k.id===L);console.log("🟢 createConnectionFromPopup - Nodos encontrados:",{sourceNode:oe==null?void 0:oe.id,targetNode:te==null?void 0:te.id,sourceData:oe==null?void 0:oe.data,targetData:te==null?void 0:te.data});const q=te==null?void 0:te.data,z=((W=oe==null?void 0:oe.data)==null?void 0:W.id)||D,V=((ae=te==null?void 0:te.data)==null?void 0:ae.id)||L;console.log("🟢 createConnectionFromPopup - IDs extraídos:",{parentId:z,childId:V});const E=mt(D,L,M||Ne.DEFAULT_SOURCE_HANDLE,F,j,Ge(D),z,V);console.log("🟢 createConnectionFromPopup - Nuevo edge creado:",E),r(k=>[...k,E]);const S=[...a,E],O=q.id||-Date.now(),N=q.reference_graph||L,_={id:O,uuid:q.uuid||crypto.randomUUID(),reference_graph:N,texto_corto:q.texto_corto||"",texto_largo:q.texto_largo||"",prioridad:q.prioridad||null,nivel_dificultad:q.nivel_dificultad||1,duracion:q.duracion||null,start:q.start||!1,equipo:q.equipo||null,responsable:q.responsable||null,plantilla:{id:q.plantilla.id,clave:q.plantilla.clave,categoria:q.plantilla.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:q.plantilla_dependents||[],ids_t_dependientes:q.ids_t_dependientes||[],tarea_padre:F==="hija"?{id:E.data.parentId}:null,id_t_requerida:F==="dependiente"?{id:E.data.parentId}:null,tareas:q.tareas||[],type:"task"};console.log("🟢 createConnectionFromPopup - taskForState creado:",_),console.log("🟢 createConnectionFromPopup - currentTemplate.id:",b.id);const B=t.map(k=>k.id===L?{...k,data:_}:k);console.log("🟢 createConnectionFromPopup - Actualizando nodos en React Flow..."),n(B),console.log("✅ createConnectionFromPopup - Nodos actualizados en React Flow"),console.log("🟢 createConnectionFromPopup - Actualizando template layout..."),await C(B,S),console.log("✅ createConnectionFromPopup - Template layout actualizado"),console.log("🟢 createConnectionFromPopup - Llamando a updateNodeWithNewEdge..."),await R({templateId:b.id,edge:E,task:_}),console.log("✅ createConnectionFromPopup - updateNodeWithNewEdge completado")}catch(X){console.error("❌ createConnectionFromPopup - Error al crear conexión:",X),console.error("❌ createConnectionFromPopup - Stack:",X.stack)}finally{console.log("🟢 createConnectionFromPopup - Limpiando estado..."),l(!1),d(),console.log("🟢 createConnectionFromPopup - FIN")}},[i,r,l,d,a,t,C]),J=w.useCallback(async j=>{if(!s||!b){A.toast.warning("No hay newNodePopup o template activo para actualizar el nodo");return}const{nodeId:F}=s;if(!F){A.toast.warning("No se encontró nodeId en newNodePopup");return}try{const D=t.find(L=>L.id===F);if(!D){A.toast.warning(`No se encontró el nodo con ID: ${F}`);return}const M={...D,data:{...D.data,...j,id:D.data.id||D.id,type:D.data.type||D.data.type,updatedAt:new Date().toISOString()}};n(L=>L.map(W=>W.id===F?M:W));try{const L=t.map(W=>W.id===F?M:W);await C(L,a)}catch(L){A.toast.error("Error al actualizar layout después de actualizar nodo:",L)}o()}catch(D){A.toast.error("Error al actualizar el nodo:",D)}},[s,b,t,n,a,C,o]);return{createNodeFromPopup:H,createConnectionFromPopup:G,updateNodeFromPopup:J,updateAfterDeleted:y}},Pr=({data:t,id:a,isConnectable:n,selected:r})=>{const s=Te(y=>y.getViewMode),[i,o]=w.useState(!1),[d,l]=w.useState(t),c=Re(y=>y.activeTemplate),u=Re(y=>y.setActiveTemplate),{get:m,update:x}=Be(),p=c!=null&&c.id?s(c.id):"readonly",{updateTaskInTemplate:f}=Tr(),{setNodes:g,setEdges:h,getNodes:b,getEdges:v}=re.useReactFlow(),I=pe.useQueryClient(),{updateAfterDeleted:$}=qa({nodes:b(),edges:v(),setNodes:g,setEdges:h,newNodePopup:null,connectionPopup:null,closeNewNodePopup:()=>{},closeConnectionPopup:()=>{},setIsConnectingExistingNodes:()=>{}}),R=()=>{o(!0)},U=w.useCallback(async()=>{var F,D,M;const y=b().find(L=>L.id===a);if(!y){console.warn("⚠️ Nodo no encontrado para eliminar");return}const H=[y],G=Ma(H),J=H.length>0?(D=(F=H[0])==null?void 0:F.data)==null?void 0:D.id:0;h(L=>L.filter(W=>!G.includes(W.source)&&!G.includes(W.target))),g(L=>L.filter(W=>W.id!==a));let j;for(const L of H)try{const W=L.data;if((M=W==null?void 0:W.plantilla)!=null&&M.id){j=W.plantilla.id;break}}catch{}try{h(L=>((async()=>{await $(G,L,j,J)})().catch(W=>{console.error("❌ Error en updateAfterDeleted:",W)}),L))}catch(L){console.error("❌ Error en handleDeleteNode:",L)}},[a,b,v,g,h,$]),P=w.useCallback(async y=>{var H,G,J,j,F,D,M,L,W,ae;if(!c){console.warn("⚠️ MainNode.updateTemplateLayout - No hay template activo");return}try{const X=await m(c.id);if(!X){console.warn("⚠️ MainNode.updateTemplateLayout - Template no encontrado en IndexedDB");return}const oe=(H=X.graph_layout)==null?void 0:H.snapshot;if(!(!oe||JSON.stringify(oe.nodes)!==JSON.stringify(y))){console.log("🔄 MainNode.updateTemplateLayout - No hay cambios en nodos, omitiendo actualización");return}const q=y.filter(E=>{var S;return!((S=E.data)!=null&&S.isInternal)&&!E.parentId}).map(E=>{const{style:S,measured:O,data:N,selected:_,...B}=E,{expandedDimensions:k,isExpanded:T,needsReExpansion:K,...Y}=N||{},ee=S?{...S,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...B,style:ee,data:Y}}),z=(((J=(G=X.graph_layout)==null?void 0:G.snapshot)==null?void 0:J.edges)||[]).filter(E=>{var S;return!((S=E.data)!=null&&S.isInternal)}),V={...X,graph_layout:{id:((j=X.graph_layout)==null?void 0:j.id)||0,snapshot:{...(F=X.graph_layout)==null?void 0:F.snapshot,nodes:q,edges:z,viewport:((M=(D=X.graph_layout)==null?void 0:D.snapshot)==null?void 0:M.viewport)||{x:0,y:0,zoom:1}},history:((L=X.graph_layout)==null?void 0:L.history)||[],zoom:((W=X.graph_layout)==null?void 0:W.zoom)||1,position:((ae=X.graph_layout)==null?void 0:ae.position)||{x:0,y:0}},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await x(c.id,V),await I.invalidateQueries({queryKey:["template",c.id]}),await I.invalidateQueries({queryKey:["template"]}),c&&c.id===V.id&&u(V)}catch(X){console.error("❌ MainNode.updateTemplateLayout - Error al actualizar template layout:",X)}},[c,m,x,u,I]),C=async y=>{if(o(!1),c){const H={...t,texto_corto:y.title,texto_largo:y.description,prioridad:y.priority?typeof y.priority=="number"?y.priority:parseInt(y.priority.toString()):null,nivel_dificultad:y.difficulty?typeof y.difficulty=="number"?y.difficulty:parseInt(y.difficulty.toString()):1,duracion:y.duration?typeof y.duration=="number"?y.duration:parseInt(y.duration.toString()):null,equipo:{id:Number(y.team)||null},responsable:{id:Number(y.responsible)||null}};await f(t.id,H),g(G=>{const J=G.map(j=>j.id===a?{...j,data:{...j.data,...H,tarea_padre:t.tarea_padre,id_t_requerida:t.id_t_requerida,updatedAt:new Date().toISOString()}}:j);return console.log("🔄 updatedNodes:",J),setTimeout(()=>P(J),0),J})}};return w.useEffect(()=>{l(t)},[t]),e.jsxs("div",{className:`tw-border-[1px] tw-bg-white tw-px-4 tw-py-2 tw-rounded-lg tw-transition-all tw-duration-200 tw-max-w-[423px] ${r?"tw-border-brand tw-shadow-lg tw-ring-2 tw-ring-blue-300 tw-ring-opacity-50":t.main?"ui-border-success tw-shadow-sm":"ui-border-default tw-shadow-sm"}`,children:[e.jsx(re.Handle,{isConnectable:n,id:"top-target",type:"target",position:re.Position.Top,className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white"}),e.jsx(re.Handle,{isConnectable:n,id:"right-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Right}),e.jsx(re.Handle,{isConnectable:n,id:"bottom-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Bottom}),e.jsx(re.Handle,{isConnectable:n,id:"left-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Left}),e.jsxs("div",{className:"tw-flex tw-h-full tw-flex-col ui-gap-y-8 ui-p-12 ",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between tw-gap-x-4 ",children:[e.jsx("p",{className:"ui-text-primary ui-font-bold tw-leading-none ui-text-body-lg-regular tw-truncate",children:d.texto_corto}),!t.isInternal&&c.estatusFromStrapi!==De.PUBLISHED&&p!=="readonly"&&e.jsx("div",{children:t.type==="task"?e.jsx(A.Popup,{position:"right",absolute:!0,size:"xxs",pill:"pill",color:"secondary",icon:ue.faEllipsis,containerClassName:"nopan nodrag",buttonClassName:"nopan nodrag",children:e.jsxs(A.List,{className:"ui-p-8 ui-gap-4",children:[e.jsx(A.ListItem,{icon:ue.faEdit,onClick:R,children:"Editar"}),e.jsx(A.ListItem,{icon:ue.faPlus,color:"red",onClick:U,children:"Eliminar"})]})}):e.jsx(A.Button,{size:"xxs",color:"secondary",pill:"pill",icon:ue.faMaximize,className:"nopan"})})]}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-sm-normal ",children:d.texto_largo}),e.jsxs("div",{className:"tw-flex tw-gap-x-6 tw-justify-between",children:[e.jsx(mr,{duration:d.duracion}),e.jsx(wr,{difficulty:d.nivel_dificultad}),e.jsx(xr,{priority:d.prioridad}),e.jsx(br,{responsible:d.responsable})]})]}),e.jsx(re.Handle,{isConnectable:n,id:"top-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Top}),e.jsx(re.Handle,{isConnectable:n,id:"right-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Right}),e.jsx(re.Handle,{isConnectable:n,id:"bottom-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Bottom}),e.jsx(re.Handle,{isConnectable:n,id:"left-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Left}),t.type==="task"&&i&&e.jsx(ka,{isOpen:i,onClose:()=>o(!1),onSuccess:C,editMode:!0,taskToEdit:d})]})},Fr=async({tasks_api:t,page:a=1,pageSize:n=10,search:r="",filters:s={}})=>{const i={clave:{$notNull:!0},estatus:{$ne:De.DELETED},...r?{$or:[{nombre_plantilla:{$containsi:r}},{clave:{$containsi:r}}]}:{},...Object.keys(s).reduce((l,c)=>(Array.isArray(s[c])?l[c]={id:{$in:s[c]}}:l[c]=s[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","order"]}}},tarea_plantillas:{fields:["id"],filters:{start:!0},populate:{tareas:{fields:["id"]},ids_t_dependientes:{fields:["id"]}}}},sort:{createdAt:"asc"},pagination:{page:a,pageSize:n}},{encodeValuesOnly:!0}),d=await t.get(`/api/plantillas/all-plantillas?${o}`);return d.data?{data:he(d.data.data),meta:d.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:n,pageCount:0,total:0}}}},La=({page:t=1,pageSize:a=10,search:n="",filters:r={}})=>{const{tasks_api:s}=fe();return pe.useQuery({queryKey:["templates",t,a,n,r],queryFn:()=>Fr({tasks_api:s,page:t,pageSize:a,search:n,filters:r}),staleTime:1e3*60*60*24,placeholderData:pe.keepPreviousData,select:i=>({data:(i==null?void 0:i.data)||[],meta:i==null?void 0:i.meta})})},Oa=({isOpen:t,onClose:a,onSuccess:n,nodeDataType:r,parentNodeInfo:s})=>{var I,$,R,U;const i=Te(P=>P.addNodeWithType),[o,d]=w.useState(0),l=5,[c,u]=w.useState(1),[m,x]=w.useState("");w.useEffect(()=>{t&&(u(1),x(""),d(0))},[t]),w.useEffect(()=>{u(1)},[m]);const{data:p,isLoading:f}=La({page:c,pageSize:l,search:m}),g=P=>{x(P.target.value)},h=()=>{var C;if(o===0)return;const P=(C=p==null?void 0:p.data)==null?void 0:C.find(y=>y.id===o);if(!P){console.error("No se encontró el flujo de trabajo seleccionado en los datos");return}n?n({templateId:o,templateData:P}):i&&i(r.id,r.type,r.connectionType)};if(f)return e.jsx("div",{children:"Cargando..."});if(!(p!=null&&p.data))return e.jsx("div",{children:"No hay datos disponibles"});const b=(($=(I=p.meta)==null?void 0:I.pagination)==null?void 0:$.total)||0,v=b===1?"flujo encontrado":"flujos encontrados";return e.jsx(A.Modal,{iconConfig:{icon:Me.faPencil},isOpen:t,size:"lg",onSuccess:h,onClose:a,title:"Agregar flujo de trabajo",successButtonText:"Agregar",disableSuccessButton:o===0,closeAtSuccess:!0,children:e.jsxs(A.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," ",v]}),e.jsx(A.Input,{className:"tw-flex-1",leftSlot:Me.faSearch,fullWidth:!0,placeholder:"Buscar por nombre, parámetros o estado...",value:m,onChange:g})]}),e.jsx(A.Separator,{}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-6 tw-p-12",children:[p.data.map(P=>e.jsx(Aa,{mode:"modal",template:P,active:o===P.id,fullWidth:!0,onClick:d,withOptions:!1},P.id)),p.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(A.Separator,{}),e.jsx("div",{className:"tw-mt-6",children:e.jsx(A.Pagination,{className:"tw-pt-0",pageSize:l,pageCount:((U=(R=p==null?void 0:p.meta)==null?void 0:R.pagination)==null?void 0:U.pageCount)||1,currentPage:c,onPageChange:P=>u(P)})})]})})},Ar=({data:t,id:a})=>{const n=Te(u=>u.addNodeWithType),[r,s]=w.useState(!1),[i,o]=w.useState(!1),[d,l]=w.useState({id:a,type:"tarea",connectionType:"dependiente"}),c=({type:u,connectionType:m})=>{n&&(l({id:a,type:u,connectionType:m}),u==="tarea"?s(!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(Oa,{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(A.Popup,{position:"right",absolute:!0,size:"md",rounded:!0,icon:ue.faPlus,containerClassName:"nopan",buttonClassName:"nopan",children:e.jsxs(A.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(A.ListItem,{icon:ue.faArrowUpLeft,iconColor:"neutral",onClick:()=>c({type:"tarea",connectionType:"dependiente"}),children:"Dependiente"}),e.jsx(A.ListItem,{icon:ue.faArrowDownRight,iconColor:"neutral",onClick:()=>c({type:"tarea",connectionType:"hija"}),children:"Hija"}),e.jsx(A.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(A.ListItem,{icon:ue.faArrowUpLeft,iconColor:"neutral",onClick:()=>c({type:"plantilla",connectionType:"dependiente"}),children:"Dependiente"}),e.jsx(A.ListItem,{icon:ue.faArrowDownRight,iconColor:"neutral",onClick:()=>c({type:"plantilla",connectionType:"hija"}),children:"Hija"})]})})]})},kr=({isOpen:t,position:a,onClose:n,createNodeFromPopup:r,parentNodeInfo:s})=>{const[i,o]=w.useState(!1),[d,l]=w.useState(!1),[c,u]=w.useState(null);if(!t)return null;const m=(h,b)=>{u({type:h,connectionType:b}),h==="tarea"?o(!0):h==="plantilla"&&l(!0)},x=()=>{o(!1),u(null),n()},p=()=>{l(!1),u(null),n()},f=h=>{c&&r(c.type,c.connectionType,h),x()},g=h=>{c&&h&&r(c.type,c.connectionType,h),p()};return e.jsxs(e.Fragment,{children:[!i&&!d&&e.jsx("div",{className:"tw-fixed tw-inset-0 tw-z-50",onClick:n}),!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(A.List,{children:[e.jsx("p",{className:"ui-text-sm ui-p-4 ui-gap-4 tw-font-medium tw-text-neutral-300",children:"Tarea"}),e.jsx(A.ListItem,{icon:ue.faArrowUpLeft,iconColor:"neutral",onClick:()=>m("tarea","dependiente"),children:"Dependiente"}),e.jsx(A.ListItem,{icon:ue.faArrowDownRight,iconColor:"neutral",onClick:()=>m("tarea","hija"),children:"Hija"}),e.jsx(A.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(A.ListItem,{icon:ue.faArrowUpLeft,iconColor:"neutral",onClick:()=>m("plantilla","dependiente"),children:"Dependiente"})]})})}),i&&c&&e.jsx(ka,{isOpen:i,onClose:x,onSuccess:f,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:s}),d&&c&&e.jsx(Oa,{isOpen:d,onClose:p,onSuccess:g,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:s})]})};function Mr({reactFlowWrapper:t,nodes:a}){const{setViewport:n,getViewport:r}=re.useReactFlow(),{zoom:s}=re.useViewport(),i=Math.round(s*100),[o,d]=w.useState([]),[l,c]=w.useState(-1),[u,m]=w.useState(!1),[x,p]=w.useState(0);w.useLayoutEffect(()=>{const R=t==null?void 0:t.current;if(R){const U=R.getBoundingClientRect();p(U.width)}},[t]);const f=w.useMemo(()=>{var C;if(!a||a.length===0)return{x:0,y:0,zoom:1};const R=a.find(y=>{var H;return(H=y==null?void 0:y.data)==null?void 0:H.main})??a[0];return{x:(x||(typeof window<"u"?window.innerWidth:0))/2-(((C=R==null?void 0:R.position)==null?void 0:C.x)??0),y:20,zoom:1}},[a,x]),g=w.useCallback(R=>{if(!u){const U=[...o.slice(0,l+1),R];d(U),c(U.length-1)}},[o,l,u]),h=w.useCallback(()=>{if(u)return;const R=r(),U=Math.min(R.zoom*1.2,2);g(R),m(!0),n({x:R.x,y:R.y,zoom:U}),setTimeout(()=>m(!1),100)},[r,n,g,u]),b=w.useCallback(()=>{if(u)return;const R=r(),U=Math.max(R.zoom/1.2,.5);g(R),m(!0),n({x:R.x,y:R.y,zoom:U}),setTimeout(()=>m(!1),100)},[r,n,g,u]),v=w.useCallback(()=>{if(u)return;const R=r();Math.abs(R.zoom-1)>.01&&g(R),m(!0),n({x:R.x,y:R.y,zoom:1}),setTimeout(()=>m(!1),100)},[r,n,g,u]),I=w.useCallback(()=>{if(u||l<=0)return;const R=o[l-1];m(!0),n(R),c(l-1),setTimeout(()=>m(!1),100)},[l,o,n,u]);return w.useEffect(()=>{o.length===0&&(d([{zoom:1,x:0,y:0}]),c(0))},[o.length]),{isReady:x!==0&&Array.isArray(a)&&a.length>0,defaultViewport:f,zoomPercentage:i,handleZoomIn:h,handleZoomOut:b,handleZoomTo100:v,handleDoubleClick:I}}const qr=t=>{var i,o;const a=((i=t.data)==null?void 0:i.isInternal)||!1,n=(o=t.data)==null?void 0:o.originalGroupId,r=t.selected||!1,s=d=>{if(d.preventDefault(),d.stopPropagation(),n){const c=Te.getState().collapseGroup;c&&c(n)}};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 ${r?"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(A.Icon,{name:$e.faFlag,size:"sm",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,background:!0,padding:"md"}),e.jsx("p",{className:"ui-text-primary ui-font-body-sm-semibold tw-leading-none ui-text-body-sm-regular tw-truncate tw-tracking-wider",children:t.data.clave}),a&&e.jsx(A.Button,{size:"sm",color:"secondary",onClick:s,className:"tw-p-2 nopan nodrag",icon:ue.faMinimize,pill:"pill"})]}),a&&e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[e.jsx(A.Tag,{color:t.data.estatus==="published"?"success":"warning",label:t.data.estatus==="published"?"Publicado":"Borrador"}),(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"})]})},Lr=()=>{const t=w.useCallback((s,i,o,d)=>{const l=(m,x)=>{const p=m.position.x,f=m.position.y,g=120,h=60,b=15;switch(x){case"top-source":case"top-target":return{x:p,y:f-h/2-b};case"bottom-source":case"bottom-target":return{x:p,y:f+h/2+b};case"left-source":case"left-target":return{x:p-g/2-b,y:f};case"right-source":case"right-target":return{x:p+g/2+b,y:f};default:return{x:p,y:f}}},c=l(s,o),u=l(i,d);return Math.sqrt(Math.pow(u.x-c.x,2)+Math.pow(u.y-c.y,2))},[]),a=w.useCallback((s,i)=>{if(s.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(s),l=o(i);return{top:"bottom",bottom:"top",left:"right",right:"left"}[d]===l},[]),n=w.useCallback((s,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 m of d){if(!a(u,m))continue;const x=t(s,i,u,m);x<l&&(l=x,c={handle1:u,handle2:m})}return c},[t,a]),r=w.useCallback((s,i,o=800)=>Math.sqrt(Math.pow(i.position.x-s.position.x,2)+Math.pow(i.position.y-s.position.y,2))<o,[]);return{findClosestHandles:n,calculateHandleDistance:t,areHandlesCompatible:a,shouldApplyMagneticConnection:r}},Or=t=>{const[a,n]=w.useState(null),[r,s]=w.useState(null),[i,o]=w.useState(!1),d=w.useCallback((x,p,f,g)=>{n({isOpen:!0,nodeId:x,position:p,sourceNodeId:f,sourceHandleId:g})},[]),l=w.useCallback(()=>{n(null)},[]),c=w.useCallback((x,p,f,g,h)=>{o(!0),s({isOpen:!0,sourceNodeId:x,sourceHandleId:f,targetNodeId:p,targetHandleId:g,position:h})},[]),u=w.useCallback(()=>{o(!1),s(null)},[]),m=w.useCallback(()=>{var p,f,g;if(!(a!=null&&a.sourceNodeId))return null;const x=t.find(h=>h.id===a.sourceNodeId);return x?{id:x.id,label:(p=x.data)==null?void 0:p.label,nodeType:(f=x.data)==null?void 0:f.nodeType,connectionType:(g=x.data)==null?void 0:g.connectionType,data:x.data}:null},[a,t]);return{newNodePopup:a,connectionPopup:r,isConnectingExistingNodes:i,openNewNodePopup:d,closeNewNodePopup:l,openConnectionPopup:c,closeConnectionPopup:u,getParentNodeInfo:m,setIsConnectingExistingNodes:o}},Rr=({initialNodes:t,initialEdges:a})=>{const[n,r,s]=re.useNodesState(pt(t)),[i,o,d]=re.useEdgesState(a),[l,c]=w.useState(!1),u=w.useCallback(E=>{o(E)},[o]),{toObject:m}=re.useReactFlow(),{findClosestHandles:x,shouldApplyMagneticConnection:p}=Lr(),{updateGraphLayout:f,get:g,update:h}=Be(),b=Re(E=>E.activeTemplate),v=Re(E=>E.setActiveTemplate),I=pe.useQueryClient(),{removeParentIdFromNodes:$}=at(),{newNodePopup:R,connectionPopup:U,isConnectingExistingNodes:P,openNewNodePopup:C,closeNewNodePopup:y,openConnectionPopup:H,closeConnectionPopup:G,getParentNodeInfo:J,setIsConnectingExistingNodes:j}=Or(n),{createNodeFromPopup:F,createConnectionFromPopup:D,updateNodeFromPopup:M,updateAfterDeleted:L}=qa({nodes:n,edges:i,setNodes:r,setEdges:u,newNodePopup:R,connectionPopup:U,closeNewNodePopup:y,closeConnectionPopup:G,setIsConnectingExistingNodes:j});w.useEffect(()=>{if(t&&t.length>0){if(!(t.some((k,T)=>{const K=n[T];return K?k.id!==K.id||JSON.stringify(k.position)!==JSON.stringify(K.position)||JSON.stringify(k.data)!==JSON.stringify(K.data):!0})||t.length!==n.filter(k=>{var T;return!((T=k.data)!=null&&T.isInternal)}).length)&&n.length>0)return;const{expandedGroups:S,groupTemplateData:O}=Te.getState(),N=pt(t),_=new Set(N.map(k=>k.id));let B=n.filter(k=>{var T,K;return((T=k.data)==null?void 0:T.isInternal)&&typeof((K=k.data)==null?void 0:K.originalGroupId)=="string"&&S.has(k.data.originalGroupId)&&_.has(k.data.originalGroupId)});if(B.length>0){const k=N.map(T=>{var K;if(S.has(T.id)){const Y=n.find(le=>le.id===T.id),ee=(K=Y==null?void 0:Y.data)==null?void 0:K.expandedDimensions;if(ee)return{...T,style:{...T.style,width:ee.width,height:ee.height},data:{...T.data,isExpanded:!0,expandedDimensions:ee}}}return T});r([...k,...B])}else if(S.size>0){const k=N.map(T=>S.has(T.id)&&O[T.id]?{...T,data:{...T.data,isExpanded:!0,needsReExpansion:!0}}:T);r(k)}else r(N)}else r([])},[t,r]),w.useEffect(()=>{if(!l&&a&&a.length>0){const{expandedGroups:E}=Te.getState(),S=pt(t),O=new Set(S.map(B=>B.id)),N=i.filter(B=>{var k,T;return((k=B.data)==null?void 0:k.isInternal)&&typeof((T=B.data)==null?void 0:T.originalGroupId)=="string"&&E.has(B.data.originalGroupId)&&O.has(B.data.originalGroupId)}),_=i.filter(B=>{var k,T;return((k=B.data)==null?void 0:k.redirectedToInternal)&&typeof((T=B.data)==null?void 0:T.originalTarget)=="string"&&E.has(B.data.originalTarget)&&O.has(B.data.originalTarget)});if(N.length>0||_.length>0){const B=a.filter(k=>!_.some(T=>{var K;return((K=T.data)==null?void 0:K.originalTarget)===k.target}));u([...B,...N,..._])}else u(a)}},[a,u,l]);const W=w.useCallback((E,S,O=!1)=>{const _=i.filter(T=>T.target===S).length>0;if(i.some(T=>T.source===E&&T.target===S||T.source===S&&T.target===E)&&!O)return A.toast.warning("La tarea destino ya tiene una conexión"),!1;const k=!_;return typeof window<"u"&&(window.validConnectionTypes={dependiente:k,hija:k}),k?!0:(A.toast.warning("La tarea destino ya tiene una conexión de entrada"),!1)},[i]),ae=w.useCallback(E=>{if(!Sr(E.source,E.target))return;Ge(E.source)&&!E.sourceHandle&&(E.sourceHandle=Ne.DEFAULT_SOURCE_HANDLE);const S=n.find(N=>N.id===E.source),O=n.find(N=>N.id===E.target);if(S&&O){if(!W(E.source,E.target))return;H(E.source,E.target,E.sourceHandle,E.targetHandle);return}return u(N=>re.addEdge(E,N))},[n,H,u,W]),X=w.useCallback((E,S)=>{var O;if(!P&&!S.isValid&&S.fromNode){const N=n.find(ee=>ee.id===S.fromNode.id);if((N==null?void 0:N.type)==="group"){A.toast.warning("En una plantilla, no se puede crear una conexión");return}const _=Dr(E),B=document.elementFromPoint(_.x,_.y);if(B!=null&&B.closest(".react-flow__node"))return;const k=crypto.randomUUID(),T=((O=S.fromHandle)==null?void 0:O.id)||Ne.DEFAULT_SOURCE_HANDLE,Y=Ge(S.fromNode.id)?Ne.DEFAULT_SOURCE_HANDLE:T;C(k,_,S.fromNode.id,Y)}},[P,C,n]),oe=w.useCallback(async E=>{var _,B,k;const S=Ma(E),O=E.length>0?(B=(_=E[0])==null?void 0:_.data)==null?void 0:B.id:0;u(T=>T.filter(K=>!S.includes(K.source)&&!S.includes(K.target)));let N;for(const T of E)try{const K=T.data;if((k=K==null?void 0:K.plantilla)!=null&&k.id){N=K.plantilla.id;break}}catch{}try{u(T=>((async()=>{await L(S,T,N,O)})().catch(K=>{console.error("❌ Error en updateAfterDeleted:",K)}),T))}catch(T){console.error("❌ Error en onDeleteNode:",T)}},[u,L]),te=w.useCallback(async E=>{var O,N,_,B,k,T,K,Y,ee,le,Q,se,ce,ge;if(!E||E.length===0)return;let S;if(b!=null&&b.id)S=b.id;else for(const ne of E){const de=n.find(xe=>xe.id===ne.source),me=n.find(xe=>xe.id===ne.target);if(de!=null&&de.data&&typeof de.data=="object"&&"plantilla"in de.data){const xe=de.data.plantilla;if(xe!=null&&xe.id){S=xe.id;break}}if(me!=null&&me.data&&typeof me.data=="object"&&"plantilla"in me.data){const xe=me.data.plantilla;if(xe!=null&&xe.id){S=xe.id;break}}}if(!S){console.warn("⚠️ onEdgesDelete - No se pudo obtener templateId");return}try{const ne=await g(S);if(!ne){console.warn("⚠️ onEdgesDelete - Template no encontrado en IndexedDB");return}const de=E.map(ye=>ye.id),me=((_=(N=(O=ne.graph_layout)==null?void 0:O.snapshot)==null?void 0:N.edges)==null?void 0:_.filter(ye=>{var ke;return!de.includes(ye.id)&&!((ke=ye.data)!=null&&ke.isInternal)}))||[],we=(((T=(k=(B=ne.graph_layout)==null?void 0:B.snapshot)==null?void 0:k.nodes)==null?void 0:T.filter(ye=>{var ke;return!((ke=ye.data)!=null&&ke.isInternal)&&!ye.parentId}))||[]).map(ye=>{const{style:ke,measured:dt,data:rt,...nt}=ye,{expandedDimensions:Ye,isExpanded:kt,needsReExpansion:po,...Mt}=rt||{},es=ke?{...ke,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0,ts=ye.data.id===E[0].data.childId?{...Mt,tarea_padre:null,id_t_requerida:null}:Mt;return{...nt,style:es,data:ts}}),be=((Y=(K=ne.graph_layout)==null?void 0:K.snapshot)==null?void 0:Y.edges)||[];if(!(JSON.stringify(be)!==JSON.stringify(me)))return;const Se={...ne,graph_layout:{id:((ee=ne.graph_layout)==null?void 0:ee.id)||0,snapshot:{nodes:we,edges:me,viewport:((Q=(le=ne.graph_layout)==null?void 0:le.snapshot)==null?void 0:Q.viewport)||{x:0,y:0,zoom:1}},history:((se=ne.graph_layout)==null?void 0:se.history)||[],zoom:((ce=ne.graph_layout)==null?void 0:ce.zoom)||1,position:((ge=ne.graph_layout)==null?void 0:ge.position)||{x:0,y:0}},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await $({templateId:S,id:E[0].data.childId}),await h(S,Se),console.log("🗑️ [useFlow] Invalidando caché de la plantilla:",S),await I.invalidateQueries({queryKey:["template",S]}),await I.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlow] Caché invalidado exitosamente"),S===(b==null?void 0:b.id)&&v(Se)}catch(ne){console.error("❌ onEdgesDelete - Error al actualizar template layout:",ne)}},[n,b,g,h,v,$]),q=w.useCallback(async E=>!E.nodes.some(O=>O.type==="start"||O.id===Ne.START_NODE_ID),[]),z=w.useCallback((E,S,O)=>{var k,T,K;const N=n.find(Y=>Y.id===S.id);if(!N)return;if(N.type==="group"&&((k=N.data)!=null&&k.isExpanded)){u(Y=>Y.map(ee=>{if(ee.hidden&&ee.target===S.id){const{hidden:le,...Q}=ee;return Q}return ee}));return}let _;if(N.type==="group"?_=b==null?void 0:b.id:(K=(T=S==null?void 0:S.data)==null?void 0:T.plantilla)!=null&&K.id&&(_=S.data.plantilla.id),!_)return;const B=i.map(Y=>{var Q,se,ce,ge,ne;if(wt(Y))return Y;const ee=n.find(de=>de.id===Y.source),le=n.find(de=>de.id===Y.target);if(ee&&le){const de=ee.type==="group"&&((Q=ee.data)==null?void 0:Q.isExpanded),me=le.type==="group"&&((se=le.data)==null?void 0:se.isExpanded),xe=(ce=ee.data)==null?void 0:ce.isInternal,we=(ge=le.data)==null?void 0:ge.isInternal,be=(ne=Y.data)==null?void 0:ne.redirectedToInternal;if(de||me||xe||we||be)return Y;if(ee.id===S.id||le.id===S.id||p(ee,le,Ne.MAGNETIC_CONNECTION_DISTANCE)){const Se=x(ee,le);if(Se!=null&&Se.handle1&&(Se!=null&&Se.handle2))return{...Y,sourceHandle:Se.handle1,targetHandle:Se.handle2}}}return Y});if(JSON.stringify(i)!==JSON.stringify(B))u(B),setTimeout(()=>{const Y=m();f(_,Y)},100);else{const Y=m();f(_,Y)}},[n,i,b,f,m,u,x,p]),V=w.useCallback(E=>{s(E);const S=Ir(E);if(S.length>0){const O=S.filter(N=>{var B;const _=n.find(k=>k.id===N);return(_==null?void 0:_.type)==="group"&&((B=_==null?void 0:_.data)==null?void 0:B.isExpanded)});if(O.length>0){u(N=>N.map(_=>{var T;const B=O.includes(_.target),k=!((T=_.data)!=null&&T.redirectedToInternal);return B&&k?{..._,hidden:!0}:_}));return}c(!0),setTimeout(()=>{const N=i.map(B=>{var K,Y,ee,le;if(wt(B))return{...B};const k=n.find(Q=>Q.id===B.source),T=n.find(Q=>Q.id===B.target);if(k&&T){const Q=k.type==="group"&&((K=k.data)==null?void 0:K.isExpanded),se=T.type==="group"&&((Y=T.data)==null?void 0:Y.isExpanded),ce=(ee=k.data)==null?void 0:ee.isInternal,ge=(le=T.data)==null?void 0:le.isInternal;if(Q||se||ce||ge)return{...B};if(p(k,T,Ne.MAGNETIC_CONNECTION_DISTANCE)){const ne=x(k,T);if(ne!=null&&ne.handle1&&(ne!=null&&ne.handle2)&&(B.sourceHandle!==ne.handle1||B.targetHandle!==ne.handle2))return{...B,sourceHandle:ne.handle1,targetHandle:ne.handle2}}}return{...B}});if(i.some((B,k)=>{const T=N[k];return B.sourceHandle!==T.sourceHandle||B.targetHandle!==T.targetHandle})){const B=N.map(k=>({...k,id:k.id}));u(B)}setTimeout(()=>{c(!1)},200)},0)}},[s,i,n,u,x,p,c]);return{nodes:n,edges:i,newNodePopup:R,connectionPopup:U,setNodes:r,setEdges:u,onEdgesChange:d,onConnect:ae,onConnectEnd:X,onDeleteNode:oe,onEdgesDelete:te,onBeforeDelete:q,handleNodesChange:V,onDragEnd:z,getParentNodeInfo:J,isProtectedConnection:wt,isStartNode:Ge,createNodeFromPopup:F,updateNodeFromPopup:M,closeNewNodePopup:y,createConnectionFromPopup:D,closeConnectionPopup:G}},Br=({isOpen:t,onClose:a,createConnectionFromPopup:n,availableConnections:r})=>{if(!t)return null;const s=r||{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}},i=(o,d)=>{(o==="tarea"?s.tarea[d]:s.plantilla[d])&&n(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-default ui-border-1 tw-relative tw-rounded-lg tw-bg-white tw-p-4",children:e.jsx("div",{children:e.jsxs(A.List,{children:[e.jsx("p",{className:"ui-text-sm tw-px-4 tw-font-medium tw-text-neutral-300",children:"Tarea"}),e.jsxs(A.ListItem,{icon:ue.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("tarea","dependiente"),children:["Dependiente ",!s.tarea.dependiente&&"(No disponible)"]}),e.jsxs(A.ListItem,{icon:ue.faArrowDownRight,iconColor:"neutral",onClick:()=>i("tarea","hija"),children:["Hija ",!s.tarea.hija&&"(No disponible)"]}),e.jsx(A.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(A.ListItem,{icon:ue.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("plantilla","dependiente"),children:["Dependiente ",!s.plantilla.dependiente&&"(No disponible)"]})]})})})]})})},$r=({data:t,id:a,selected:n})=>{const{expandedGroups:r}=Te(),[s,i]=w.useState(!1),o=w.useRef(!1);w.useEffect(()=>{const m=(t==null?void 0:t.needsReExpansion)&&r.has(a),x=(t==null?void 0:t.templateId)||(t==null?void 0:t.id);if(m&&x&&!o.current){o.current=!0;const f=Te.getState().expandGroup;f&&f(a,x).catch(g=>{console.error("Error al re-expandir grupo:",g),o.current=!1})}r.has(a)||(o.current=!1)},[t,a,r]);const d=async m=>{m.preventDefault(),m.stopPropagation();const x=(t==null?void 0:t.templateId)||(t==null?void 0:t.id);if(x){i(!0);try{const p=Te.getState(),f=p.expandGroup,g=p.collapseGroup,h=r.has(a);h&&g?g(a):!h&&f&&await f(a,x)}catch{}finally{i(!1)}}},l=r.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 ${n?"tw-bg-white tw-border-[1px] 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(st,{isLoading:s}),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:"ui-flex ui-justify-between ui-gap-x-8 ui-p-16",children:[e.jsx(A.Icon,{name:ue.faChartDiagram,color:"brand",size:"lg"}),e.jsxs("div",{className:"ui-flex ui-flex-col ui-gap-y-4",children:[e.jsx("p",{className:"ui-text-primary ui-font-bold tw-leading-none ui-text-body-lg-regular tw-truncate tw-tracking-wider",children:t.clave||t.nombre_plantilla||"N/A"}),e.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-4",children:[e.jsx(A.Badge,{size:"sm",theme:"soft",color:t.estatus==="published"?"success":"warning",label:t.estatus==="published"?"Publicado":"Borrador"}),t.updatedAt&&e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-semibold",children:new Date(t.updatedAt).toLocaleDateString("es-ES")})]})]}),e.jsx("div",{children:e.jsx(A.Button,{size:"sm",color:"secondary",pill:"pill",onClick:d,disabled:s,className:`tw-p-2 ${s?"tw-opacity-50":""} nopan nodrag`,icon:l?Me.faCompress:Me.faExpand})})]})]})},zr=(t,a,n,r)=>{const s=w.useRef(t),i=w.useRef(a);w.useEffect(()=>{s.current=t},[t]),w.useEffect(()=>{i.current=a},[a]);const{expandedGroups:o,groupTemplateData:d,toggleGroupExpansion:l,setGroupTemplateData:c,clearGroupTemplateData:u}=Te(),m=pe.useQueryClient(),{getTemplateWithTasks:x}=Ea(),{hydrateTasks:p}=Ia(),f=w.useCallback(async(v,I)=>{var $,R,U,P;try{await m.invalidateQueries({queryKey:["template",I]});const C=await x(I),y=(U=(R=($=C==null?void 0:C.graph_layout)==null?void 0:$.snapshot)==null?void 0:R.nodes)==null?void 0:U.filter(T=>{var K,Y;return((K=T.data)==null?void 0:K.isInternal)||T.parentId||((Y=T.id)==null?void 0:Y.includes("-internal-"))});if(y&&y.length>0&&console.warn("⚠️ [expandGroup] Nodos sospechosos en API para plantilla",I,":",y),!((P=C==null?void 0:C.graph_layout)!=null&&P.snapshot))throw new Error(`No se encontraron datos de graph_layout en la plantilla: ${I}`);const H=C.graph_layout.snapshot.nodes||[],G=H.filter(T=>{var Q,se;const K=(Q=T.data)==null?void 0:Q.isInternal,Y=!!T.parentId,ee=(se=T.id)==null?void 0:se.includes("-internal-"),le=K||Y||ee;return le&&console.warn("🗑️ [expandGroup] Filtrando nodo corrupto:",{id:T.id,type:T.type,esInterno:K,tieneParentId:Y,tieneInternalEnId:ee}),!le}),J={...C,graph_layout:{...C.graph_layout,snapshot:{...C.graph_layout.snapshot,nodes:G,edges:(C.graph_layout.snapshot.edges||[]).filter(T=>{var K,Y;return!((K=T.data)!=null&&K.isInternal)&&!((Y=T.id)!=null&&Y.includes("-internal-"))})}}},j=H.length-G.length;j>0?console.warn(`⚠️ [expandGroup] Se filtraron ${j} nodos internos corruptos de la BD para plantilla ${I}`):console.log(`✅ [expandGroup] No se encontraron nodos corruptos en plantilla ${I}`);const F=await p(J),D={...J,hydratedNodes:F,nodes:F||J.graph_layout.snapshot.nodes||[],edges:J.graph_layout.snapshot.edges||[]},M=D.nodes,L=D.edges;if(!M||!L){console.error("❌ No se encontraron nodos o edges en la plantilla:",I);return}c(v,{nodes:M,edges:L,viewport:D.graph_layout.snapshot.viewport||{x:0,y:0,zoom:1}});const W=s.current.find(T=>T.id===v);if(!W){console.error("❌ No se encontró el nodo grupo:",v);return}const ae=M.filter(T=>T.id!==v);let X=1/0,oe=1/0,te=-1/0,q=-1/0;ae.forEach(T=>{var ne,de,me,xe,we,be;const K=((ne=T.position)==null?void 0:ne.x)||0,Y=((de=T.position)==null?void 0:de.y)||0,ee=typeof((me=T.style)==null?void 0:me.width)=="number"?T.style.width:((xe=T.measured)==null?void 0:xe.width)||268,le=typeof((we=T.style)==null?void 0:we.height)=="number"?T.style.height:((be=T.measured)==null?void 0:be.height)||111,Q=K-ee/2,se=K+ee/2,ce=Y,ge=Y+le;X=Math.min(X,Q),oe=Math.min(oe,ce),te=Math.max(te,se),q=Math.max(q,ge)});const z=80,V=60,E=te-X,S=q-oe,O=E+z*2,N=S+z*2+V,_=M.map((T,K)=>{var ne,de;if(T.id===v)return null;const Y=((ne=T.position)==null?void 0:ne.x)||0,ee=((de=T.position)==null?void 0:de.y)||0,le=Y-X+z,Q=ee-oe+z+V,se=T.type==="start"||T.id==="start",ce=se?{...T.data,estatus:W.data.estatus,updatedAt:W.data.updatedAt,createdAt:W.data.createdAt,isInternal:!0,originalGroupId:v,originalNodeId:T.id}:{...T.data,isInternal:!0,originalGroupId:v,originalNodeId:T.id};return{...T,id:`${v}-internal-${T.id}`,parentId:v,extent:"parent",type:T.type==="group"?"main":T.type,position:{x:le,y:Q},style:{...T.style},data:ce,draggable:!1,selectable:se,selected:!1,deletable:!1,connectable:!1,focusable:se,zIndex:999}}).filter(Boolean),B=L.map(T=>{const K=_.some(le=>le&&le.id===`${v}-internal-${T.source}`),Y=_.some(le=>le&&le.id===`${v}-internal-${T.target}`);return!K||!Y?null:{...T,id:`${v}-internal-${T.id}`,source:`${v}-internal-${T.source}`,target:`${v}-internal-${T.target}`,style:{...T.style},data:{...T.data,isInternal:!0,originalGroupId:v}}}).filter(Boolean),k=_.find(T=>{var K;return T&&((K=T.data)==null?void 0:K.originalNodeId)==="start"});k&&r(T=>T.map(K=>K.target===v?{...K,target:k.id,targetHandle:"top-target",data:{...K.data,redirectedToInternal:!0,originalTarget:v,originalTargetHandle:K.targetHandle}}:K)),l(v),n(T=>[...T.map(Y=>{if(Y.id===v){const{needsReExpansion:ee,...le}=Y.data||{};return{...Y,style:{...Y.style,width:O,height:N},data:{...le,isExpanded:!0,expandedDimensions:{width:O,height:N}},zIndex:1e3}}return Y}),..._]),r(T=>[...T,...B])}catch(C){console.error("❌ Error al expandir el grupo:",C)}},[m,x,p,c,l,n,r]),g=w.useCallback(v=>{var y,H;const I=s.current,$=i.current,R=I.find(G=>G.id===v),U=((y=R==null?void 0:R.data)==null?void 0:y.templateId)||((H=R==null?void 0:R.data)==null?void 0:H.id),P=I.filter(G=>!G.id.startsWith(`${v}-internal-`)&&G.parentId!==v).map(G=>G.id===v?{...G,style:{...G.style,width:void 0,height:void 0},data:{...G.data,isExpanded:!1,expandedDimensions:void 0},zIndex:void 0}:G),C=$.filter(G=>!G.id.startsWith(`${v}-internal-`)).map(G=>{var J,j;if((J=G.data)!=null&&J.redirectedToInternal&&((j=G.data)==null?void 0:j.originalTarget)===v){const{redirectedToInternal:F,originalTarget:D,originalTargetHandle:M,...L}=G.data;return{...G,target:v,targetHandle:M||G.targetHandle,data:L}}return G});n(P),r(C),l(v),u(v),U&&m.invalidateQueries({queryKey:["template",U]})},[n,r,l,u,m]),h=w.useCallback(async(v,I)=>{o.has(v)?g(v):await f(v,I)},[o,f,g]),b=w.useCallback(v=>o.has(v),[o]);return{expandGroup:f,collapseGroup:g,toggleGroup:h,isGroupExpanded:b,groupTemplateData:d}},Ur=()=>{const{getNodes:t,setNodes:a,screenToFlowPosition:n,setCenter:r}=re.useReactFlow(),{copiedNodes:s,setCopiedNodes:i,getViewMode:o}=Te(),{activeTemplate:d,setActiveTemplate:l}=Re(),{updateGraphLayout:c,get:u,update:m}=Be(),x=d!=null&&d.id?o(d.id):"readonly",p=w.useCallback(()=>`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,[]),f=w.useCallback(()=>t().filter(P=>P.selected).filter(P=>!(P.type==="start"||P.id==="start"||P.type==="group")),[t]),g=w.useCallback(()=>{if(x==="readonly"){A.toast.error("No puedes copiar tareas en modo solo lectura");return}if(!d){A.toast.error("No hay una plantilla activa");return}const $=f();if($.length===0){const U=t().filter(P=>P.selected);if(U.length>0){const P=U.some(y=>y.type==="group"),C=U.some(y=>y.type==="start"||y.id==="start");P?A.toast.error("Las plantillas conectadas no pueden ser copiadas"):C&&A.toast.error("El nodo de inicio no puede ser copiado")}else A.toast.error("No hay tareas seleccionadas para copiar");return}const R=$.map(U=>{const{selected:P,...C}=U;return{...C,data:{...C.data,_originalTemplateId:d.id}}});i(R),A.toast.success(`${$.length} ${$.length===1?"tarea copiada":"tareas copiadas"} con éxito`)},[x,d,f,t,i]),h=w.useCallback(async $=>{if(x==="readonly"){A.toast.error("No puedes pegar tareas en modo solo lectura");return}if(!d){A.toast.error("No hay una plantilla activa");return}if(s.length===0){A.toast.error("No hay tareas copiadas para pegar");return}const R=t();let U={x:0,y:0};if($)U=n({x:$.x,y:$.y});else if(R.length>0){const j=R.reduce((D,M)=>D+M.position.x,0)/R.length,F=R.reduce((D,M)=>D+M.position.y,0)/R.length;U={x:j+50,y:F+100}}const P=s[0],C=U.x-P.position.x,y=U.y-P.position.y,H=s.map((j,F)=>{const D=p(),M=-(Date.now()+F),L=j.data.plantilla&&typeof j.data.plantilla=="object"?{...j.data.plantilla,id:d.id}:{id:d.id},{id:W,...ae}=j.data,X={...ae,id:M,reference_graph:D,plantilla:L,parent:{data:{id:null}},_originalTemplateId:void 0};return{...j,id:D,position:{x:j.position.x+C,y:j.position.y+y},data:X,selected:!0}}),J=[...R.map(j=>({...j,selected:!1})),...H];if(a(J),d.id)try{const j=await u(d.id);if(!j)return;const F=H.filter(M=>M.type!=="start"&&M.type!=="group").map(M=>{const L=M.data;return{id:L.id,reference_graph:M.id,nombre:L.nombre||L.texto_corto||"Tarea sin nombre",texto_corto:L.texto_corto||"",texto_largo:L.texto_largo||"",prioridad:L.prioridad??0,nivel_dificultad:L.nivel_dificultad??0,dias_duracion:L.dias_duracion??0,plantilla:{id:d.id},parent:{data:{id:null}},tareas:[],plantilla_dependents:L.plantilla_dependents||[],start:L.start||!1,es_grupo:L.es_grupo||!1,optional:L.optional||!1,subtask_completadas:L.subtask_completadas||0,subtask_totales:L.subtask_totales||0}}),D={...j,tarea_plantillas:[...j.tarea_plantillas,...F],estatus:"dirty",updatedAt:new Date().toISOString()};await m(d.id,D),l(D),setTimeout(async()=>{await c(d.id,{nodes:J,edges:[]})},50)}catch(j){console.error("Error al actualizar template en IndexedDB:",j)}if(H.length>0){const j=H.reduce((D,M)=>D+M.position.x,0)/H.length,F=H.reduce((D,M)=>D+M.position.y,0)/H.length;r(j,F,{zoom:1,duration:800})}A.toast.success(`${H.length} ${H.length===1?"tarea pegada":"tareas pegadas"} con éxito`)},[x,d,s,t,a,n,r,p,c,u,m,l]),b=w.useCallback(()=>s.length>0,[s]),I=f().length>0;return{handleCopy:g,handlePaste:h,hasCopiedNodes:b,hasSelectableNodes:I,copiedNodesCount:s.length}},Hr={main:Pr,plus:Ar,start:qr,group:$r},Wr=[.5,0],Kr=({initialNodes:t,initialEdges:a,debugEvents:n=!1})=>{const r=w.useRef(null),{nodes:s,edges:i,onEdgesChange:o,onConnect:d,onConnectEnd:l,onBeforeDelete:c,onDeleteNode:u,onEdgesDelete:m,handleNodesChange:x,newNodePopup:p,getParentNodeInfo:f,createNodeFromPopup:g,closeNewNodePopup:h,connectionPopup:b,createConnectionFromPopup:v,closeConnectionPopup:I,onDragEnd:$,setNodes:R,setEdges:U}=Rr({initialNodes:t,initialEdges:a}),{expandGroup:P,collapseGroup:C}=zr(s,i,R,U),{handleCopy:y,handlePaste:H,hasCopiedNodes:G,copiedNodesCount:J}=Ur();w.useEffect(()=>{if(!n)return;const ne=we=>{console.log("🔍 [DEBUG] KeyDown:",{key:we.key,code:we.code,shiftKey:we.shiftKey,ctrlKey:we.ctrlKey,metaKey:we.metaKey,altKey:we.altKey,target:we.target,defaultPrevented:we.defaultPrevented,bubbles:we.bubbles,timestamp:new Date().toISOString()})},de=we=>{console.log("🔍 [DEBUG] KeyUp:",{key:we.key,code:we.code,shiftKey:we.shiftKey,timestamp:new Date().toISOString()})},me=we=>{var be,Ae;console.log("🔍 [DEBUG] Click:",{button:we.button,shiftKey:we.shiftKey,ctrlKey:we.ctrlKey,metaKey:we.metaKey,altKey:we.altKey,target:(be=we.target)==null?void 0:be.tagName,targetClass:(Ae=we.target)==null?void 0:Ae.className,defaultPrevented:we.defaultPrevented,bubbles:we.bubbles,timestamp:new Date().toISOString()})},xe=we=>{console.log("🔍 [DEBUG] MouseDown:",{button:we.button,shiftKey:we.shiftKey,ctrlKey:we.ctrlKey,metaKey:we.metaKey,defaultPrevented:we.defaultPrevented,timestamp:new Date().toISOString()})};return document.addEventListener("keydown",ne,!0),document.addEventListener("keyup",de,!0),document.addEventListener("click",me,!0),document.addEventListener("mousedown",xe,!0),console.log("🔍 [DEBUG] Event listeners activados. Presiona Shift + Click en un nodo para ver los eventos."),()=>{document.removeEventListener("keydown",ne,!0),document.removeEventListener("keyup",de,!0),document.removeEventListener("click",me,!0),document.removeEventListener("mousedown",xe,!0),console.log("🔍 [DEBUG] Event listeners desactivados.")}},[n]);const F=s.filter(ne=>!(!ne.selected||ne.type==="start"||ne.id==="start"||ne.type==="group")).length,D=F>0,M=w.useRef(P),L=w.useRef(C);w.useEffect(()=>{M.current=P,L.current=C},[P,C]),w.useEffect(()=>{const ne=async(me,xe)=>{M.current&&await M.current(me,xe)},de=me=>{L.current&&L.current(me)};Te.setState({expandGroup:ne,collapseGroup:de})},[]);const{zoomPercentage:W,handleZoomIn:ae,handleZoomOut:X,handleZoomTo100:oe,handleDoubleClick:te}=Mr({reactFlowWrapper:r,nodes:s}),{getViewMode:q}=Te(),{activeTemplate:z}=Re(),E=(z!=null&&z.id?q(z.id):"readonly")==="readonly";w.useEffect(()=>{if(E)return;const ne=de=>{const me=de.target;me.tagName==="INPUT"||me.tagName==="TEXTAREA"||me.isContentEditable||((de.ctrlKey||de.metaKey)&&de.key==="c"&&(de.preventDefault(),y()),(de.ctrlKey||de.metaKey)&&de.key==="v"&&(de.preventDefault(),H()))};return document.addEventListener("keydown",ne),()=>{document.removeEventListener("keydown",ne)}},[y,H,E]);const S=w.useCallback((ne,de)=>{const me=ne.target;me.tagName==="BUTTON"||me.closest("button")||me.closest('[role="button"]')||me.classList.contains("nopan")||me.classList.contains("nodrag")},[]),O=w.useCallback(ne=>{const de=ne.filter(me=>{var xe,we;if(me.type==="position"&&me.dragging===!1){const be=s.find(Ae=>Ae.id===me.id);if(be&&me.position){const Ae=Math.abs((me.position.x||0)-(((xe=be.position)==null?void 0:xe.x)||0)),Se=Math.abs((me.position.y||0)-(((we=be.position)==null?void 0:we.y)||0));if(Ae<3&&Se<3)return!1}}return!0});de.length>0&&x(de)},[x,s]),N=E?void 0:o,_=E?void 0:O,B=E?void 0:d,k=E?void 0:l,T=E?void 0:c,K=E?void 0:$,Y=E?void 0:u,ee=E?void 0:m,le=E?null:["Backspace","Delete"],ce=E?{nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!0,edgesFocusable:!1,nodesFocusable:!1,draggable:!1,connectOnClick:!1}:{nodesDraggable:!0,nodesConnectable:!0,elementsSelectable:!0,edgesFocusable:!0,nodesFocusable:!0,draggable:!1,connectOnClick:!0,elevateNodesOnSelect:!0},ge=()=>{if(b)return{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}}};return e.jsxs("div",{className:"wrapper",ref:r,style:{width:"100%",height:"100vh"},children:[e.jsxs(re.ReactFlow,{nodes:s,edges:i,nodeTypes:Hr,onEdgesChange:N,onNodesChange:_,onConnect:B,onConnectEnd:k,onBeforeDelete:T,onNodeDragStop:K,onNodesDelete:Y,onEdgesDelete:ee,onNodeClick:S,...ce,fitView:!0,fitViewOptions:{padding:2},nodeOrigin:Wr,defaultEdgeOptions:{type:"smoothstep"},connectionLineType:re.ConnectionLineType.SmoothStep,deleteKeyCode:le,multiSelectionKeyCode:E?null:"Shift",selectionOnDrag:!1,panOnDrag:E?!0:[0],nodeClickDistance:15,selectNodesOnDrag:!1,nodeDragThreshold:10,autoPanOnNodeDrag:!1,autoPanOnConnect:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",children:[e.jsx(re.Background,{}),!E&&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:[z.estatusFromStrapi===De.PUBLISHED&&e.jsx(A.Tag,{color:"success",label:"Publicado"}),z.estatusFromStrapi===De.DRAFT&&e.jsx(A.Tag,{color:"warning",label:"Borrador"})]}),!E&&F>0&&e.jsxs("p",{className:"tw-text-blue-dark-500 ui-text-xs tw-font-medium",children:[F," ",F===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-4",children:[!E&&e.jsxs(A.ButtonGroup,{children:[e.jsxs(A.Button,{leftSlot:ue.faCopy,onClick:y,disabled:!D,size:"xxs",color:D?"primary":"secondary",title:D?`Copiar ${F} ${F===1?"tarea":"tareas"} (Ctrl+C)`:"Selecciona tareas para copiar (mantén Shift y haz clic)",children:["Copiar ",F>0&&`(${F})`]}),e.jsxs(A.Button,{leftSlot:ue.faFile,size:"xxs",onClick:()=>H(),disabled:!G(),color:G()?"primary":"secondary",title:G()?`Pegar ${J} ${J===1?"tarea":"tareas"} (Ctrl+V)`:"No hay tareas copiadas",children:["Pegar ",J>0&&`(${J})`]})]}),e.jsxs(A.ButtonGroup,{color:"secondary",size:"xxs",children:[e.jsx(A.Button,{icon:ue.faMinus,onClick:X,color:"secondary"}),e.jsxs(A.Button,{onClick:oe,onDoubleClick:te,color:"secondary",children:[W,"%"]}),e.jsx(A.Button,{icon:ue.faPlus,onClick:ae})]})]})})]}),p&&e.jsx(kr,{isOpen:p.isOpen,position:p.position,onClose:h,createNodeFromPopup:g,parentNodeInfo:f()}),b&&e.jsx(Br,{isOpen:b.isOpen,onClose:I,createConnectionFromPopup:v,availableConnections:ge()})]})},Gr=({initialNodes:t,initialEdges:a,debugEvents:n})=>e.jsx(re.ReactFlowProvider,{children:e.jsx(Kr,{initialNodes:t,initialEdges:a,debugEvents:n})}),et=ze.create(t=>({step:1,setStep:a=>t({step:a}),reset:()=>t({step:1})})),Vr=({limit:t})=>{const a=et(o=>o.step),n=et(o=>o.setStep),r=w.useCallback(()=>{a<t&&n(a+1)},[a,n,t]),s=w.useCallback(()=>{a>1&&a<=t&&n(a-1)},[a,n,t]),i=w.useCallback(o=>{o>0&&o<=t&&n(o)},[n,t]);return w.useMemo(()=>({step:a,nextStep:r,prevStep:s,onStepChange:i}),[a,r,s,i])},Xt=["fase_plantilla","tipo_plantilla","categoria","tipo_medio","medio_especifico","pertenencia_medio","ubicacion_medio","responsable_impresion"],Yt=["fase_plantilla","modo_configuracion","tipo_medio","formato_salida"],Jt=["tipo_medio","formato_salida","medio_especifico"],Zt={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"]}}},ea={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 Ft(t){const[a,n]=w.useState([]),[r,s]=w.useState({}),{setClaveParams:i,templateFormData:o,setTemplateFormData:d,resetTemplateFormData:l,setDisableField:c,setClave:u,claveParams:m,setParamTipo:x}=Fe(),{tasks_api:p}=fe(),f=et(q=>q.step),{data:g,error:h,isSuccess:b,isError:v}=pe.useQuery({queryKey:["paramsTipoPlantilla"],queryFn:async()=>{const q=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}),z=await p.get(`/api/params-tipos?${q}`);return z.data?{paramsTiposPlantilla:he(z.data.data)}:{paramsTiposPlantilla:[]}},refetchOnWindowFocus:!1});w.useEffect(()=>{h&&v&&console.log(h)},[h,v]),w.useEffect(()=>{if(g&&b){const q=g.paramsTiposPlantilla;n(q)}},[g,b]);const I={fase_plantilla:(q,z)=>{d({fase_plantilla:q}),x({fase_plantilla:z})},tipo_plantilla:(q,z)=>{d({tipo_plantilla:q}),x({tipo_plantilla:z})},modo_configuracion:(q,z)=>{d({modo_configuracion:q}),x({modo_configuracion:z})},categoria:(q,z)=>{d({categoria:q}),x({categoria:z})},formato_salida:(q,z)=>{d({formato_salida:q}),x({formato_salida:z})},tipo_medio:(q,z)=>{d({tipo_medio:q}),x({tipo_medio:z})},medio_especifico:(q,z)=>{d({medio_especifico:q}),x({medio_especifico:z})},responsable_impresion:(q,z)=>{d({responsable_impresion:q}),x({responsable_impresion:z})},pertenencia_medio:(q,z)=>{d({pertenencia_medio:q}),x({pertenencia_medio:z})},ubicacion_medio:(q,z)=>{d({ubicacion_medio:q}),x({ubicacion_medio:z})}},$={fase_plantilla:(q,z)=>i({field:q,value:z}),tipo_plantilla:(q,z)=>i({field:q,value:z}),categoria:(q,z)=>i({field:q,value:z}),tipo_medio:(q,z)=>i({field:q,value:z}),medio_especifico:(q,z)=>i({field:q,value:z}),responsable_impresion:(q,z)=>i({field:q,value:z}),pertenencia_medio:(q,z)=>i({field:q,value:z}),ubicacion_medio:(q,z)=>i({field:q,value:z})},R={Digital:{execute:()=>{const q=a.filter(E=>E.step===3).find(E=>E.key==="responsable_impresion").params_plantillas.find(E=>E.name==="N/A").id,z="step3.responsable_impresion",V=["responsable_impresion"];d({responsable_impresion:"N/A"}),t(z,q),c({fields:V,value:!0}),i({field:"responsable_impresion",value:"NA"})}},Impreso:{execute:()=>{const q="step3.responsable_impresion",z=["responsable_impresion"];d({responsable_impresion:""}),t(q,""),c({fields:z,value:!1}),i({field:"responsable_impresion",value:""})}}},U={"Sitios Fijos":{execute:()=>J()},"Vallas Móviles":{execute:()=>j()},Indoors:{execute:()=>J()},Camiones:{execute:()=>F()},"Brand Riders":{execute:()=>F()}},P={"Sitios Fijos":{execute:()=>G()},"Vallas Móviles":{execute:()=>G()},Indoors:{execute:()=>G()},Camiones:{execute:()=>{H(),R.Impreso.execute()}},"Brand Riders":{execute:()=>{H(),R.Impreso.execute()}}},C={"Sitios Fijos":{execute:()=>y()},"Vallas Móviles":{execute:()=>H()},Indoors:{execute:()=>y()},Camiones:{execute:()=>H()},"Brand Riders":{execute:()=>H()}},y=()=>{const q=["medio_especifico"],z=o.modo_configuracion,V=`step${f}.medio_especifico`,E=`step${f}.formato_salida`;c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0}),c(z==="Default"?{fields:q,value:!0}:{fields:q,value:!1}),d({medio_especifico:""}),d({formato_salida:""}),t(V,""),t(E,""),i({field:"medio_especifico",value:""}),i({field:"formato_salida",value:""})},H=()=>{const q=a.filter(O=>O.step===f).find(O=>O.key==="formato_salida").params_plantillas.find(O=>O.name==="Impreso").id;c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0});const V=`step${f}.formato_salida`,E=["formato_salida","medio_especifico"],S=`step${f}.medio_especifico`;d({medio_especifico:""}),d({formato_salida:"Impreso"}),t(V,q),t(S,""),i({field:"medio_especifico",value:""}),i({field:"tipo_medio",value:o.tipo_medio}),c({fields:E,value:!0})},G=()=>{const q=["formato_salida"],z=`step${f}.formato_salida`,V={};V.formato_salida="",d(V),t(z,""),c({fields:q,value:!1})},J=()=>{const q=["formato_salida","medio_especifico"],z=`step${f}.formato_salida`,V={};V.formato_salida="",d(V),t(z,""),c({fields:q,value:!1})},j=()=>{const q=["formato_salida"],z=["medio_especifico"],V=`step${f}.formato_salida`,E=`step${f}.medio_especifico`,S={};S.formato_salida="",S.medio_especifico="",d(S),t(V,""),t(E,""),c({fields:q,value:!1}),c({fields:z,value:!0})},F=()=>{const q=a.filter(S=>S.step===f).find(S=>S.key==="formato_salida").params_plantillas.find(S=>S.name==="Impreso").id,z=`step${f}.formato_salida`,V=`step${f}.medio_especifico`,E=["formato_salida","medio_especifico"];d({formato_salida:"Impreso"}),t(z,q),t(V,""),c({fields:E,value:!0}),R.Impreso.execute()},D=(q,z)=>{Object.keys(Zt).includes(q)&&Zt[q][z].fieldsToClear.forEach(S=>{const O={};O[S]="",d(O),i({field:S,value:""}),t&&[...new Set(a.map(_=>_.step))].forEach(_=>{const B=`step${_}.${S}`;t(B,"")})})},M=(q,z,V)=>q==="modo_configuracion"&&V?ea[q][V][z].fieldsToEnableDisable:ea[q][z].fieldsToEnableDisable,L=q=>a.filter(z=>z.step===q),W=q=>{var z;return r[q]||((z=a.find(V=>V.key===q))==null?void 0:z.params_plantillas)},ae=(q,z)=>{var E,S,O,N;let V=[];q==="Sitios Fijos"?z==="Preventa"?V=(E=a.find(_=>_.key==="medio_especifico"))==null?void 0:E.params_plantillas.filter(_=>_.tipomedio_nombre==="OOH"&&_.name==="PANTALLA DIGITAL"):z==="Venta"&&(V=(S=a.find(_=>_.key==="medio_especifico"))==null?void 0:S.params_plantillas.filter(_=>_.tipomedio_nombre==="OOH")):q==="Indoors"?V=(O=a.find(_=>_.key==="medio_especifico"))==null?void 0:O.params_plantillas.filter(_=>_.tipomedio_nombre==="InDoor"):V=(N=a.find(_=>_.key==="medio_especifico"))==null?void 0:N.params_plantillas,s(_=>({..._,medio_especifico:V}))},X=(q,z)=>{const V=q.key;if(Jt.includes(V)&&V==="tipo_medio"){const E=z.label,S=o.fase_plantilla,O=o.modo_configuracion;if(S==="Preventa"){ae(E,S);return}else if(O==="Especifico"){ae(E,S);return}}},oe=(q,z,V)=>{const E=q.params_plantillas.find(S=>q.key==="categoria"?S.reference_id===z.value:S.id===z.value);if(E){const S=q.key,O=z.label;if(I[S](O,V),Yt.includes(S))if(D(S,O),S==="fase_plantilla"){const N=O,_=M(S,N);c({fields:["categoria","modo_configuracion","tipo_plantilla"],value:!0}),_.length>0&&c({fields:_,value:!1}),N==="Preventa"&&c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(S==="modo_configuracion"){const N=O,_=o.fase_plantilla,B=M(S,N,_);c({fields:["medio_especifico","formato_salida"],value:!0}),B.length>0&&c({fields:B,value:!1}),_==="Preventa"&&c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(S==="tipo_medio"){const N=O,_=o.modo_configuracion;o.fase_plantilla==="Venta"?_==="Especifico"?U[N].execute():P[N].execute():C[N].execute()}else if(S==="formato_salida")R[O].execute();else{const N=M(S,O);N.length>0&&c({fields:N,value:!1})}if(Xt.includes(S)){let N="",_="";if(S==="formato_salida"){const B=o.modo_configuracion,k=O;_="tipo_medio",N=B==="Default"&&k==="Digital"?N="DDG":N="DRP"}else _=S,N=E.abbreviation;$[_](_,N)}Jt.includes(S)&&X(q,z)}},te=()=>{if(o){const q=o.fase_plantilla;if(q==="Preventa"){const z=o.modo_configuracion,V=m.fase_plantilla||"XX";let E=null;if(z==="Default")E=m.tipo_medio||"XXX";else{const O=o.tipo_medio;["Vallas Móviles","Camiones","Brand Riders"].includes(O)?E=m.tipo_medio||"XXX":E=m.medio_especifico||"XXX"}const S=`${V}-${E}`;u(S)}if(q==="Venta"){const z=m.fase_plantilla||"XX",V=m.tipo_plantilla||"XXX",E=m.categoria||"XX",S=m.medio_especifico||m.tipo_medio||m.modo_configuracion||"XXX",O=m.responsable_impresion||"XX",N=m.pertenencia_medio||"X",_=m.ubicacion_medio||"X",B=`${z}-${V}-${E}-${S}-${O}-${N}-${_}`;u(B)}}};return w.useEffect(()=>{te()},[m]),{templateFields:a,getFieldsByStep:L,dropdownFunctionsUpdateClave:$,fieldsForUpdateClave:Xt,resetTemplateFormData:l,fieldsWithDisableTrigger:Yt,getFieldsToDisable:M,handleOptionSelected:oe,getFilteredOptions:W,dropdownFunctionsUpdateFormData:I}}const At=()=>{const{control:t,setValue:a}=Ce.useFormContext(),n=et(c=>c.step),{getFieldsByStep:r,handleOptionSelected:s,getFilteredOptions:i}=Ft(a),{disabledFields:o}=Fe(),d=w.useMemo(()=>r(n),[n,r]),l=c=>`El campo ${c.charAt(0).toLocaleLowerCase()+c.slice(1)} es requerido`;return d.map(c=>{const u=`step${c.step}.${c.key}`,m=c.label,p=i(c.key).map(f=>({label:f.name,value:c.key==="categoria"?f.reference_id:f.id}));return e.jsx(Ce.Controller,{name:u,control:t,rules:{required:{value:!o[c.key],message:l(m)},validate:f=>o[c.key]||f?!0:l(m)},render:({field:f,fieldState:{error:g}})=>e.jsx("div",{children:e.jsx(A.Dropdown,{label:m,value:f.value,onValueChange:h=>{f.onChange(h)},error:g==null?void 0:g.message,options:p,onOptionSelect:h=>{s(c,h,c.id)},disabled:o[c.key]||!1})})},c.id)})},Qr=()=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:e.jsx(At,{})}),Xr=()=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:e.jsx(At,{})}),Yr=()=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:e.jsx(At,{})}),Jr=({step:t})=>e.jsxs("div",{className:"tw-flex tw-min-h-[27rem] tw-flex-col tw-gap-y-4",children:[t===1&&e.jsx(Qr,{}),t===2&&e.jsx(Xr,{}),t===3&&e.jsx(Yr,{})]}),Zr=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((n,r)=>{const s=`step${r.step}`,i=a[s];return i&&i.includes(r.key)&&(n[s]||(n[s]={}),n[s][r.key]=""),n},{})},en=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"]},n={};return Object.keys(a).forEach(r=>{n[r]={},a[r].forEach(s=>{var o;const i=(o=t[r])==null?void 0:o[s];n[r][s]=i!==void 0?i:""})}),n},tn=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 an(t,a){const{clave:n,paramsTipo:r,currentTemplateForEdit:s,isEditTemplate:i,setDisableField:o,setClaveParams:d,isDuplicateTemplate:l,templateFormData:c}=Fe(),{tasks_api:u}=fe(),{getFieldsByStep:m,dropdownFunctionsUpdateFormData:x,templateFields:p}=Ft(),f=()=>{var U;try{const P={},C=t(),y=en(C),{step1:H}=y,G=[];P.clave=n,H.categoria!=""&&(P.categoria=H.categoria);for(const[J,j]of Object.entries(y))for(const[F,D]of Object.entries(j)){const M={id:null,params_tipo:{id:null}};if(D!=""){const L=r[F];if(F==="categoria"){const W=p.find(X=>X.key==="categoria"),ae=(U=W==null?void 0:W.params_plantillas)==null?void 0:U.find(X=>X.reference_id===D);M.id=ae==null?void 0:ae.id}else M.id=D;M.params_tipo.id=L,G.push(M)}}return Object.keys(G).length>0&&(P.params_plantillas=G),P}catch(P){console.log(P)}},g=async U=>{var P;try{let C=null;return i?C=await u.put(`/api/plantillas/${s.id}`,{data:U}):C=await u.post("/api/plantillas",{data:U}),C.data?he(C.data):null}catch(C){throw console.error("Error en saveTemplateToStrapi:",{error:C.message,status:(P=C.response)==null?void 0:P.status}),C}},h=async U=>{var P;try{const C=Pe.stringify({filters:{plantilla:{id:U}},populate:{graph_layout:!0}},{encodeValuesOnly:!0}),y=await u.get(`/api/plantillas/plantilla-tareas-grafico?${C}`);return y.data?he(y.data.data):null}catch(C){throw console.error("Error en getTemplateWithTasks:",{error:C.message,status:(P=C.response)==null?void 0:P.status}),C}},b=async(U,P,C)=>{var y,H,G,J,j,F,D;try{const M=await h(U),L=await h(P);if(!M||!M.tarea_plantillas)return console.warn("No se encontraron tareas para duplicar en la plantilla original"),null;const W=new Map,ae=new Map;let X=1;M.tarea_plantillas.forEach(V=>{let E=null;V.start?E=C:E=-(Date.now()+X++),W.set(V.id,E)}),(H=(y=M.graph_layout)==null?void 0:y.snapshot)!=null&&H.nodes&&M.graph_layout.snapshot.nodes.forEach(V=>{const E=`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`;ae.set(V.id,E)});const oe=M.tarea_plantillas.filter(V=>!V.start).map(V=>{var S,O,N,_;return{id:W.get(V.id),uuid:crypto.randomUUID(),reference_graph:V.reference_graph,texto_corto:V.texto_corto,texto_largo:V.texto_largo||null,prioridad:V.prioridad,nivel_dificultad:V.nivel_dificultad,duracion:V.duracion,start:V.start,type:V.type||"task",equipo:((S=V.equipo)==null?void 0:S.id)||null,responsable:((O=V.responsable)==null?void 0:O.id)||null,plantilla:{id:P,clave:M.clave,categoria:M.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:W.get((N=V.id_t_requerida)==null?void 0:N.id)||null,ids_t_dependientes:[],tarea_padre:W.get((_=V.tarea_padre)==null?void 0:_.id)||null,tareas:[]}});let te=null;if(M.graph_layout){const V=L.tarea_plantillas.find(E=>E.start===!0);te={...M.graph_layout,id:(G=L.graph_layout)==null?void 0:G.id,snapshot:{...M.graph_layout.snapshot,edges:M.graph_layout.snapshot.edges.map(E=>{if(E.source==="start")return{...E,data:{...E.data,childId:oe.find(S=>S.reference_graph===E.target).id,parentId:V.id}};{const S=oe.find(O=>O.reference_graph===E.target);return{...E,data:{...E.data,childId:S==null?void 0:S.id,parentId:(S==null?void 0:S.id_t_requerida)||(S==null?void 0:S.tarea_padre)}}}}),nodes:((j=(J=M.graph_layout.snapshot)==null?void 0:J.nodes)==null?void 0:j.map(E=>{let S={};return E.type==="start"?S={...E,data:{...E.data,tareaId:V.id}}:S={...E,data:{tareaId:null}},S}))||[]}}}if(!te)throw console.error("Error: duplicatedGraphLayout es null, no se puede guardar"),new Error("No se pudo crear el graph_layout para la plantilla duplicada");const q={graph_layout:te,tasks:{created:oe,updated:[],deleted:[]}},z=await u.post("/api/tareas/save-tareas-grafico",{data:q});if(z.data&&z.status===200){const V=await h(P),E=new Map;V.tarea_plantillas.forEach(N=>E.set(N.reference_graph,N.id));let S=V.graph_layout;return(!((F=S==null?void 0:S.snapshot)!=null&&F.nodes)||S.snapshot.nodes.length===0)&&(console.log("Graph layout vacío, reconstruyendo desde el original..."),S=te),(D=S==null?void 0:S.snapshot)!=null&&D.nodes&&(S.snapshot.nodes=S.snapshot.nodes.map(N=>{var T;const _={...N,position:N.position||{x:0,y:0}},B=_.id,k=E.get(B);if(k)return{..._,data:{..._.data,id:k,tareaId:k}};if((T=_.data)!=null&&T.tareaId){const K=V.tarea_plantillas.find(Y=>Y.reference_graph===B);if(K)return{..._,data:{..._.data,id:K.id,tareaId:K.id}}}return _})),await u.put(`/api/plantillas/${P}`,{data:{graph_layout:S}}),await h(P)}return null}catch(M){throw console.error("Error al duplicar las tareas de la plantilla:",M),M}},v=async()=>{var U,P;try{let C=f();const y=await g(C);if(!y)return{success:!1,message:"No se pudo guardar el flujo de trabajo en Strapi",error:"templateData es null"};const H=Pe.stringify({filters:{id:{$eq:y.id}},populate:{tarea_plantillas:{filters:{start:{$eq:!0}}}}},{encodeValuesOnly:!0}),{data:G}=await u.get(`/api/plantillas?${H}`),j=he(G.data)[0].tarea_plantillas[0].id;if(l&&(s!=null&&s.id))try{const D=await b(s.id,y.id,j);return D?{success:!0,message:"Flujo de trabajo duplicado completamente con todas sus tareas",data:D}:{success:!0,message:"Flujo de trabajo creado, pero no se pudieron duplicar las tareas",data:await h(y.id)}}catch(D){return console.error("Error al duplicar tareas:",D),{success:!0,message:"Flujo de trabajo creado, pero hubo un error al duplicar las tareas",data:await h(y.id)}}const F=await h(y.id);return F?{success:!0,message:"Flujo de trabajo creado y sincronizado completamente",data:F}:{success:!1,message:"No se pudieron obtener los datos completos del flujo de trabajo",error:"completeData es null"}}catch(C){const y=tn(((P=(U=C==null?void 0:C.response)==null?void 0:U.data)==null?void 0:P.error)||C);return console.error("Error al guardar el flujo de trabajo: ",{level:y.failureLevel,message:y.errorMessage,technicalDetails:y.technicalDetails}),{success:!1,message:y.errorMessage||"Error al guardar el flujo de trabajo",error:y.technicalDetails||C.message}}},I=()=>{const U=s==null?void 0:s.params_plantillas;if(!(U!=null&&U.length))return;let P={};[1,2,3].forEach(y=>{const H=`step${y}`;P[H]={},m(y).forEach(J=>{var F;const j=U.find(D=>D.params_tipo.key===J.key);if(j){let D=null;if(J.key==="categoria"){const M=(F=J.params_plantillas)==null?void 0:F.find(L=>L.id===j.id);D=(M==null?void 0:M.reference_id)||j.id}else D=j.id;P[H][J.key]=D}})}),a(P)},$=()=>{var P;const U=s==null?void 0:s.params_plantillas;if(U!=null&&U.length)for(const C of U){const{params_tipo:{id:y,key:H},name:G,id:J}=C,j=p.find(D=>D.key===H),F=(P=j==null?void 0:j.params_plantillas)==null?void 0:P.find(D=>D.id===J);x[H]&&x[H](G,y),F&&d({field:H,value:F.abbreviation})}},R=()=>{try{const{fase_plantilla:U,modo_configuracion:P,formato_salida:C,tipo_medio:y}=c;if(U==="Venta")o({fields:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria","tipo_medio"],value:!1}),P==="Default"?(o({fields:["tipo_medio","formato_salida"],value:!1}),o({fields:["medio_especifico"],value:!0}),["Sitios Fijos","Vallas Móviles","Indoors"].includes(y)||o({fields:["formato_salida","medio_especifico"],value:!0}),C==="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(y)&&o({fields:["formato_salida","medio_especifico"],value:!1}),["Vallas Móviles"].includes(y)&&(o({fields:["formato_salida"],value:!1}),o({fields:["medio_especifico"],value:!0})),["Camiones","Brand Riders"].includes(y)&&o({fields:["formato_salida","medio_especifico"],value:!0}),C==="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}),P=="Default"){const H=["formato_salida","medio_especifico","responsable_impresion","pertenencia_medio","ubicacion_medio"];o({fields:["tipo_medio"],value:!1}),o({fields:H,value:!0})}else["Sitios Fijos","Indoors"].includes(y)?(o({fields:["formato_salida"],value:!0}),o({fields:["medio_especifico"],value:!1})):o({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!0})}catch(U){console.error("Error al aplicar reglas de habilitar y deshabilitar campos",U)}};return w.useEffect(()=>{(i||l)&&s&&(I(),$())},[i,l,s]),w.useEffect(()=>{(i||l)&&c&&R()},[i,c,l]),{savePlantilla:v,getTemplateWithTasks:h}}const sn=()=>{const{watch:t,getValues:a}=Ce.useFormContext(),{templateFormData:n,isDuplicateTemplate:r,currentTemplateForEdit:s}=Fe(),[i,o]=w.useState(!1),d=w.useRef(null),l=w.useRef(null),c=w.useRef(!1),u=t();return w.useEffect(()=>{if(!c.current&&r&&s){const x=setTimeout(()=>{d.current=a(),l.current={...n},c.current=!0,o(!1)},500);return()=>clearTimeout(x)}},[r,s,a,n]),w.useEffect(()=>{if(d.current&&l.current&&c.current){const x=a(),p=n,f=JSON.stringify(x)!==JSON.stringify(d.current),g=JSON.stringify(p)!==JSON.stringify(l.current);o(f||g)}},[u,n,a]),{hasChanges:i,resetChanges:()=>{d.current=null,l.current=null,c.current=!1,o(!1)}}},rn=({onReset:t})=>{const{hasChanges:a,resetChanges:n}=sn(),{setHasFormChanges:r}=Fe();return w.useEffect(()=>{r(a)},[a,r]),w.useEffect(()=>{t(n)},[t,n]),null},nn=({isOpen:t,onClose:a})=>{const{step:n,nextStep:r,prevStep:s,onStepChange:i}=Vr({limit:3}),o=et(S=>S.reset),{templateFields:d,resetTemplateFormData:l}=Ft(),{clave:c,resetClave:u,resetDisabledFields:m,isEditTemplate:x,setIsEditTemplate:p,refetch:f,isDuplicateTemplate:g,hasFormChanges:h,setIsDuplicateTemplate:b,setCurrentTemplateForEdit:v}=Fe(),{openTemplate:I}=Be(),[$,R]=w.useState(!1),[U,P]=w.useState(""),[C,y]=w.useState(!1),H=w.useRef(null),G=S=>{H.current=S},J=w.useMemo(()=>Zr(d),[d]),j=n===1,F=n===3,D=j?"Cancelar":"Atrás",M=Ce.useForm({mode:"onChange",defaultValues:J}),{trigger:L,reset:W,clearErrors:ae,getValues:X}=M,{savePlantilla:oe}=an(X,W),te=w.useRef(!1);w.useEffect(()=>{t&&(o(),te.current=!1)},[t,o]),w.useEffect(()=>{t&&!x&&!g&&!te.current&&(W(J),l(),te.current=!0)},[t,x,g,W,J,l]);const q=async()=>{if(await L()){if(n===3){if(!h&&g){P("Ya existe un proceso con éstos parámetros. Modifica al menos uno para poder duplicarlo."),y(!0);return}try{R(!0);const O=await oe();if(O.success){const N=O.data;if(E(),V(),y(!1),!x)try{await I({template:N,statusTemplate:_e.NEW})}catch(_){console.warn("La plantilla se creó exitosamente pero hubo un problema al abrirla:",_)}f()}else{const{error:N}=O;P(N),y(!0)}}catch(O){console.error("Error inesperado al guardar la plantilla:",O);return}finally{R(!1)}}r()}},z=()=>{P(""),y(!1)},V=()=>{ae(),W(J),l(),m(),u(),z(),p(!1),b(!1),v(null),H.current&&H.current()},E=()=>{V(),te.current=!1,a(),console.log("cerrar modal")};return $?e.jsx(st,{isLoading:$}):e.jsxs(Ce.FormProvider,{...M,children:[e.jsx(rn,{onReset:G}),e.jsx(A.Modal,{isOpen:t,closeAtCancel:!1,onSuccess:q,cancelButtonText:D,successButtonText:F?x?"Guardar":"Crear":"Continuar",onCancel:j?E:s,onClose:E,size:"sm",iconConfig:{icon:Ie.faFilePen},title:x?"Editar flujo de trabajo":"Nuevo flujo de trabajo",children:e.jsxs(A.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(A.Stepper,{currentStep:n-1,onStepChange:S=>i(S+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:[C&&e.jsx(A.Alert,{open:!0,color:"danger",message:U,className:"tw-mb-6",onClose:z}),e.jsx(Jr,{step:n})]})]})})]})},on=({isOpen:t,onClose:a,replaceTemplate:n})=>e.jsx(e.Fragment,{children:e.jsx(A.Modal,{isOpen:t,closeAtCancel:!1,cancelButtonText:"Cancelar",successButtonText:"Abrir",onCancel:a,onClose:a,onSuccess:n,size:"sm",iconConfig:{icon:ue.faExclamationTriangle},title:"Límite de flujos de trabajo",children:e.jsx(A.Modal.Body,{children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full ui-p-4 ui-gap-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 ui-p-16",style:{backgroundColor:"#EBEEF9"},children:e.jsx(A.Icon,{name:ue.faExclamationTriangle,size:"lg",color:"blue"})})}),e.jsx("div",{className:"tw-text-center tw-mt-6",children:e.jsx("h2",{className:"tw-text-[24px] tw-font-bold ui-text-brand 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-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."})})]})})})}),ln=ze.create(t=>({cachedTemplate:null,canCreateTemplate:!1,setCachedTemplate:a=>t({cachedTemplate:a}),clearCachedTemplate:()=>t({cachedTemplate:null}),setCanCreateTemplate:a=>{const n=!(a<5);t({canCreateTemplate:n})}})),cn=({isOpen:t,onClose:a,discardChanges:n,saveAndExit:r})=>e.jsx("div",{children:e.jsx(A.Modal,{isOpen:t,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Guardar y salir",onCancel:a,onClose:a,onSuccess:r,size:"sm",iconConfig:{icon:ue.faExclamationTriangle},title:"Cambios sin guardar",children:e.jsx(A.Modal.Body,{children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full ui-p-4 ui-gap-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 ui-p-16",style:{backgroundColor:"#EBEEF9"},children:e.jsx(A.Icon,{name:ue.faSave,size:"lg",color:"brand"})})}),e.jsx("div",{className:"tw-flex tw-flex-col tw-mx-6",children:e.jsx(A.Alert,{open:!0,variant:"outlined",color:"danger",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 ui-text-brand",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-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(A.Button,{size:"xs",color:"secondary",onClick:()=>{n(),a()},children:"Descartar cambios"})})]})})})}),Ra=({isOpen:t,onClose:a,publishTemplate:n})=>e.jsx(A.Modal,{isOpen:t,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Confirmar",onCancel:a,onClose:a,onSuccess:n,size:"sm",iconConfig:{icon:ue.faArrowUp},title:"Publicar",children:e.jsx(A.Modal.Body,{children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full tw-p-8 ui-gap-16",children:[e.jsx("div",{className:"tw-flex tw-justify-center tw-w-full",style:{minWidth:"fit-content"},children:e.jsx(A.Icon,{name:ue.faArrowUp,size:"lg",color:"blue",background:!0,padding:"lg"})}),e.jsx("div",{className:"tw-text-center",children:e.jsx("h2",{className:"tw-text-[24px] tw-font-bold 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-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."})})]})})}),dn=()=>{const t="grid",a="create-edit",n=w.useRef(null),{isOpenModalLimit:r,setIsOpenModalLimit:s,setOpenModalCreateTemplate:i,openModalCreateTemplate:o,setOpenModalUnsavedChanges:d,openModalUnsavedChanges:l,openModalPublishTemplate:c,setOpenModalPublishTemplate:u,setCurrentTemplateForEdit:m,setIsDuplicateTemplate:x,setIsEditTemplate:p}=Fe(),{removeTemplateStates:f}=at(),{mode:g,setMode:h,setViewMode:b,getViewMode:v}=Te(),{setCanCreateTemplate:I,canCreateTemplate:$}=ln(),R=g===t,{screens:U,get:P,delete:C,activeTemplate:y,activateTemplate:H,reorderingTemplates:G,replaceTemplate:J,saveTemplateChanges:j,publishTemplate:F,loadingPublishTemplate:D,loadingSaveChanges:M}=Be(),L=178,[W,ae]=w.useState([]),[X,oe]=w.useState([]),[te,q]=w.useState(null),[z,V]=w.useState(!1),E=y!=null&&y.id?v(y.id):"readonly";w.useEffect(()=>{const Q=()=>{if(!n.current)return;const ce=n.current.offsetWidth;let ge=0;const ne=[],de=[],me=10,xe=n.current.querySelector("button:not([data-screen])"),we=n.current.querySelector(".tw-mx-1");let be=0;xe&&(be+=xe.getBoundingClientRect().width),we&&U.length>0&&(be+=we.getBoundingClientRect().width,be+=me);const Ae=(ye,ke)=>{const Ye=ke?54:0,kt=(ye==null?void 0:ye.length)*8;return Math.max(80,kt+40+Ye)},Se=ce-L-be;U.forEach((ye,ke)=>{const dt=!!(ye.isNew||ye.badgeLabel),rt=Ae(ye.clave,dt),nt=ke>0?me:0,Ye=rt+nt;ge+Ye<=Se?(ne.push(ye),ge+=Ye):de.push(ye)}),ae(ne),oe(de)},se=()=>{const ce=U.length;I(ce)};return U.length>0&&(Q(),se(),window.addEventListener("resize",Q)),()=>{window.removeEventListener("resize",Q)}},[U,g]);const S=Q=>Q.estatus===_e.DIRTY||Q.estatus===_e.NEW,O=async Q=>{S(Q)?(q(Q.id),d(!0)):await C(Q.id)},N=()=>u(!0),_=async()=>{await C(te),await f(te)},B=async()=>{await j(!1)},k=async()=>{await j()},T=()=>{var se,ce;const Q=(ce=(se=y==null?void 0:y.graph_layout)==null?void 0:se.snapshot)==null?void 0:ce.nodes.length;V(()=>Q-1>=1)};w.useEffect(()=>{T()},[y,E]);const K=()=>!((y==null?void 0:y.estatus)==_e.IDLE&&z&&y.estatusFromStrapi!==De.PUBLISHED),Y=()=>{var se;const{nodes:Q}=(se=y==null?void 0:y.graph_layout)==null?void 0:se.snapshot;return Q==null?void 0:Q.some(ce=>ce.type!=="start"&&(ce==null?void 0:ce.data.tarea_padre)===null&&(ce==null?void 0:ce.data.id_t_requerida)===null)},ee=()=>(y==null?void 0:y.estatus)===_e.IDLE||Y()?!0:!z,le=async()=>{await F(y.id)};return M||D?e.jsx(st,{isLoading:M||D}):e.jsxs("div",{className:"tw-flex tw-gap-4 tw-justify-between tw-items-center tw-flex-wrap",children:[o&&e.jsx(nn,{isOpen:o,onClose:()=>i(!1)}),r&&e.jsx(on,{isOpen:r,onClose:()=>s(!1),replaceTemplate:J}),l&&e.jsx(cn,{isOpen:l,onClose:()=>d(!1),discardChanges:_,saveAndExit:k}),c&&e.jsx(Ra,{isOpen:c,onClose:()=>u(!1),publishTemplate:le}),e.jsxs("div",{className:"tw-flex tw-gap-2.5 tw-items-center tw-justify-between tw-flex-1 tw-flex-wrap",ref:n,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(A.Button,{size:"xs",color:R?"primary":"secondary",onClick:()=>h(t),children:"Listado de flujos"}),U.length>0&&e.jsx(A.Separator,{vertical:!0,className:"tw-mx-1"}),U.filter(Q=>W.some(se=>se.clave===Q.clave)).map(Q=>{const se=(y==null?void 0:y.clave)===Q.clave&&g===a;return e.jsxs(A.Button,{"data-screen":Q.clave,size:"xs",onClick:async()=>{await H(Q),h(a,Q.id)},color:se?"primary":"secondary",leftSlot:Me.faFilePen,badgeColor:S(Q)?"warning":void 0,onClickRightSlot:()=>O(Q),rightSlot:Me.faXmark,children:[Q.clave," ",Q.status]},Q.id)})]}),X.length>0&&e.jsx(A.Popup,{absolute:!0,rightSlot:Me.faAngleDown,label:`${X.length}+`,size:"xs",color:"secondary",children:e.jsx("div",{className:"ui-py-2 ui-gap-4",style:{minWidth:"280px"},children:e.jsx(A.List,{icon:Me.faFilePen,items:X.map(Q=>({id:Q.id,label:Q.clave})),className:"ui-p-8 ui-gap-4",onClick:async Q=>{const se=await P(Q.id);await G(se.id),await H(se),h("create-edit",se.id)}})})})]}),g===a?e.jsx("div",{className:"tw-flex tw-gap-4 tw-items-center tw-justify-end tw-flex-wrap",children:y.estatusFromStrapi!==De.PUBLISHED&&e.jsxs(e.Fragment,{children:[e.jsx(A.Button,{color:"secondary",size:"xs",leftSlot:Me.faArrowUp,disabled:K(),onClick:N,children:"Publicar"}),E=="readonly"&&e.jsx(A.Button,{size:"xs",color:"primary",leftSlot:Me.faEdit,onClick:()=>(y==null?void 0:y.id)&&b(y.id,"edit"),children:"Editar"}),E==="edit"&&e.jsx(A.Button,{size:"xs",color:"primary",leftSlot:Me.faSave,onClick:B,disabled:ee(),children:"Guardar"})]})}):e.jsx(A.Button,{disabled:$,tooltip:$?"Límite de 5 plantillas con cambios sin guardar. Guarda y cierra alguna para crear una nueva.":"",leftSlot:Me.faPlus,size:"xs",color:"primary",onClick:()=>{m(null),x(!1),p(!1),i(!0)},children:"Nuevo flujo"})]})},un=({isOpen:t,onClose:a,deleteTemplate:n})=>e.jsx(A.AlertDialog,{title:"Eliminar Borrador",iconContent:ue.faBan,heading:"¿Estás seguro?",subheading:"Si eliminas este borrador, también se borrarán todas sus tareas y conexiones con otros borradores.",icon:ue.faBan,label:"Escribe 'Eliminar' para continuar",confirmationText:"Eliminar",isOpen:t,onClose:a,onConfirm:n,placeholder:""}),pn=()=>{const{viewMode:t,setRefetch:a,openModalPublishTemplate:n,setOpenModalPublishTemplate:r,currentTemplateId:s,setOpenModalDeleteTemplate:i,openModalDeleteTemplate:o}=Fe(),{publishTemplate:d,deleteTemplate:l}=Be(),{debouncedSearch:c,filters:u}=Ca("templates-container"),m=t==="list",[x,p]=w.useState(1),f=9,{data:g,isLoading:h,isFetching:b,refetch:v}=La({page:x,pageSize:f,search:c,filters:u});w.useEffect(()=>{a(v)},[]),w.useEffect(()=>{p(1)},[u,c]);const{users:I}=Xe(),{getImageOBP:$}=fe(),R=y=>{if(!(y!=null&&y.email))return"";const H=I==null?void 0:I[y==null?void 0:y.email];return H!=null&&H.image?$(H==null?void 0:H.image):""},U=w.useMemo(()=>{try{return!g||!I?[]:g.data.map(y=>{const H=R((y==null?void 0:y.updated_by)||(y==null?void 0:y.created_by));return{...y,updated_by:{...y.updated_by,image:H}}})}catch(y){return console.error("Error al mapear las plantillas:",y),[]}},[g,I]),P=async()=>{await d(s),await v()},C=async()=>{await l(s),await v()};return h||b?e.jsx(st,{isLoading:h||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:n,onClose:()=>r(!1),publishTemplate:P}),e.jsx(un,{isOpen:o,onClose:()=>i(!1),deleteTemplate:C}),e.jsx("div",{className:`tw-grid tw-gap-4 ${m?"tw-grid-cols-1":"tw-grid-cols-1 md:tw-grid-cols-2 lg:tw-grid-cols-3"}`,children:U.map(y=>e.jsx(Aa,{fullWidth:m,template:y},y.id))}),e.jsx("div",{children:e.jsx(A.Pagination,{pageSize:f,pageCount:g==null?void 0:g.meta.pagination.pageCount,currentPage:x,onPageChange:y=>p(y)})})]})},Ba=()=>{var o,d,l,c;const t="grid",a="create-edit",{mode:n}=Te(),r=n===t,s=n===a,i=Re(u=>u.activeTemplate);return e.jsxs("div",{className:"tw-h-full tw-flex tw-flex-col tw-gap-y-6",children:[e.jsx(dn,{}),r&&e.jsx(pn,{}),s&&e.jsx(Gr,{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)||[]})]})},wn=()=>({header:e.jsx(ir,{}),body:e.jsx(Ba,{})});function mn(t){const{users:a}=Ss(),{tasks_api:n,getImageOBP:r}=fe(),s=w.useMemo(()=>a.data?a.data.map(d=>{const{image:l,id:c,name:u}=d,m=r(l);return{value:c,label:u,icon:m}}):[],[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 he(c.data).flatMap((m,x)=>{const p={id:`group-${x+1}`,label:m.label,value:`group-${x+1}`,isGroupTitle:!0},f=m.params_plantillas.map(g=>({id:g.id,label:g.name,value:g.id,checked:!1,icon:"CheckCircleOutlined",iconColor:"blue"}));return[p,...f]})},o=pe.useQuery({queryKey:["paramsPlantilla"],queryFn:()=>i(n),enabled:t==="templates-container",staleTime:1e3*60*30});return{userOptions:s,paramsPlantillasOptions:o.data||[]}}const fn={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"}},xn={createdAt:{label:"Fecha de creación",placeholder:"Selecciona una fecha...",type:"date",keyName:"createdAt"},integrantes_min:{label:"Mínimo de integrantes",type:"input",placeholder:"Ej: 1",keyName:"integrantes_min"},integrantes_max:{label:"Máximo de integrantes",type:"input",placeholder:"Ej: 10",keyName:"integrantes_max"}},gn={"templates-container":fn,"teams-container":xn,"kanban-general":null,"lista-campanias":null,"kanban-campania":null},hn=t=>({inputFilters:gn[t]||null}),bn=t=>{const{inputFilters:a}=hn(t),{userOptions:n,paramsPlantillasOptions:r}=mn(t);return{inputFilters:w.useMemo(()=>{if(a&&n.length>0&&r.length>0){const i=a;return[{...i.estatus},{...i.publication_date},{...i.propietario,options:n},{...i.created_by,options:n},{...i.updated_by,options:n},{...i.params_plantillas,options:r}]}return null},[t,a,n,r])}};function yn(){const{setFilters:t}=ct(),{refetch:a}=Fe();return{handleApplyFilters:r=>{let s={...r};s=Object.fromEntries(Object.entries(s).filter(([i,o])=>!(o===""||o===null||Array.isArray(o)&&o.length===0))),"publication_date"in s&&s.publication_date!==""&&(s={...s,publication_date:xt(s.publication_date).format("YYYY-MM-DD")}),t(s,"templates-container"),a&&a()}}}const ta="templates-container";function jn(){const{mode:t}=Te(),{inputFilters:a}=bn(ta),{handleApplyFilters:n}=yn(),{viewMode:r,setViewMode:s}=Fe();return t!=="grid"?null: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(Ta,{path:ta}),e.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-x-2.5 md:tw-flex-nowrap",children:[a&&e.jsx(A.Filters,{filters:a,onApply:n}),e.jsx(A.Button,{size:"xs",color:"secondary",colorIcon:"neutral",icon:r==="list"?Ie.faGrid2:Ie.faList,className:"tw-min-w-fit",onClick:()=>s(r==="list"?"grid":"list")})]})]})}const gt={id:null,uid:0,esEncargado:!1,idUser:{id:0,username:"",email:"",provider:"",confirmed:!1,blocked:!1,createdAt:"",updatedAt:"",nombre:""},miembros:[],miembro_padre:null,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},$a="Project Manager",za=({open:t,handleChange:a,children:n,title:r="¿Estás seguro?",onConfirm:s,contentLabel:i="",confirmLabel:o="Aceptar",cancelLabel:d="Regresar",isLoading:l=!1})=>e.jsx(ve.Modal,{isOpen:t,onClose:()=>a(!1),onCancel:()=>a(!1),onSuccess:s,size:"xs",title:r,disableEscapeClose:!0,disableOutsideClick:!0,disableOutsideTab:!0,children:e.jsxs(ve.Modal.Body,{children:[e.jsx("h1",{className:"tw-text-lg tw-font-semibold tw-text-black-black_medium",children:i}),n&&n]})}),_n=({member:t,level:a,isUpdate:n=!1,addHandler:r,updateHandler:s,removeHandler:i,updateMemberHandler:o})=>{var J,j,F;const{users:d,isLoading:l}=Pt(),{users:c,isLoading:u}=Xe(),{getImageOBP:m}=fe(),[x,p]=w.useState(!1),[f,g]=w.useState(n?t:{...gt,miembro_padre:a>1?t:null}),[h,b]=w.useState(null),[v,I]=w.useState({id:0,nombre:"",email:""}),[$,R]=w.useState(!1);w.useEffect(()=>{var D;b(c==null?void 0:c[(D=f==null?void 0:f.idUser)==null?void 0:D.email])},[f,c]),w.useEffect(()=>{t&&g({...t,miembro_padre:a>1?t.miembro_padre:null})},[t,a]);const U=w.useMemo(()=>(d||[]).map(D=>{var W,ae;const M=c==null?void 0:c[D.email??""],L=M!=null&&M.image?m(M.image):"";return{...D,label:D.name,value:D.id,subtitle:D.email??"",avatar:((ae=(W=D.name)==null?void 0:W.slice(0,2))==null?void 0:ae.toUpperCase())??"",avatarUrl:L}}),[d,c,m]),P=()=>{p(!1),I({id:0,nombre:"",email:""})},C=({id:D,name:M,email:L})=>{const W={...f,idUser:{...f.idUser,id:D,nombre:M,email:L}};g(W),s(W),I({id:D,nombre:M,email:L})},y=async()=>{if(!v.nombre&&!v.email){P();return}try{f.id&&o({user_id:v.id,miembro_id:t.id});const D={...f,idUser:{...f.idUser,id:v.id,nombre:v.nombre,email:v.email}};g(D),s(D),b(c==null?void 0:c[v.email]),P()}catch(D){A.toast.error(D instanceof Error?D.message:"Error al actualizar el colaborador")}},H=()=>{const D={...gt,uid:new Date().getTime()+Math.floor(Math.random()*1e3),miembro_padre:t,miembros:[]};r(D)},G=()=>{i(t),R(!1)};return u||l?null:e.jsxs("div",{className:"tw-flex tw-items-baseline tw-justify-between",children:[$&&e.jsx(za,{open:$,handleChange:R,onConfirm:G,contentLabel:"Estás eliminando el colaborador seleccionado"}),e.jsxs("div",{className:"tw-flex tw-flex-1 tw-justify-between ui-gap-y-4 ui-mb-2",children:[e.jsxs("div",{children:[e.jsx("div",{className:"tw-flex tw-items-center tw-gap-x-6 ui-mb-2",children:(J=f==null?void 0:f.idUser)!=null&&J.email&&!x?e.jsxs(e.Fragment,{children:[e.jsx(qe,{size:"m",alt:((j=f==null?void 0:f.idUser)==null?void 0:j.nombre)??"Avatar",imageUrl:h!=null&&h.image?m(h.image):""}),e.jsx("p",{className:"ui-text-body-sm-regular ui-font-body-sm-regular ui-leading-body-sm-regular ui-tracking-body-sm",children:(F=f==null?void 0:f.idUser)==null?void 0:F.nombre})]}):e.jsx(ve.Dropdown,{placeholder:"Seleccionar colaborador",options:U,valueName:"name",idName:"id",listVariant:"user",absolute:!0,closeOnClickOutside:!0,searchable:!0,searchPlaceholder:"Buscar colaborador...",onOptionSelect:D=>{C({id:D.id,name:D.name,email:D.email})}})}),e.jsx(ve.Button,{onClick:H,leftSlot:Ie.faPlus,size:"xxs",color:"tertiary",children:"Añadir colaborador"})]}),e.jsxs("div",{className:"ui-flex ui-gap-x-4",children:[x?e.jsxs(e.Fragment,{children:[e.jsx(ve.Button,{onClick:P,icon:Ie.faXmark,size:"xs",color:"secondary",tooltip:"Cancelar"}),e.jsx(ve.Button,{onClick:y,icon:$e.faCheck,size:"xs",color:"primary",tooltip:"Guardar"})]}):e.jsx(ve.Button,{onClick:()=>p(!0),icon:Ie.faPencil,size:"xs",color:"tertiary",tooltip:"Editar"}),e.jsx(ve.Button,{onClick:()=>R(!0),icon:Ie.faTrash,size:"xs",color:"destructive",tooltip:"Eliminar"})]})]})]})},Ua=({members:t,level:a=1,isUpdate:n=!1,setData:r})=>{const s=()=>{r(i=>({...i,miembros:[...i.miembros,{...gt,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.jsx(ve.Button,{size:"xxs",color:"tertiary",leftSlot:$e.faPlus,onClick:s,children:" Agregar miembro del equipo "})}),(t==null?void 0:t.length)>0&&(t==null?void 0:t.map(i=>e.jsx(vn,{isUpdate:n,member:i,level:a,setData:r},i.uid)))]})},vn=({member:t,level:a,isUpdate:n=!1,setData:r})=>{const s=c=>{r(u=>{if(!c.miembro_padre)return{...u,miembros:[...u.miembros,c]};const m=x=>x==null?void 0:x.map(p=>p.uid===c.miembro_padre.uid?{...p,miembros:[...p.miembros||[],c]}:p.miembros&&p.miembros.length>0?{...p,miembros:m(p.miembros)}:p);return{...u,miembros:m(u.miembros)}})},i=c=>{r(u=>{const m=x=>x.map(p=>p.uid===c.uid?(p.miembros&&p.miembros.length>0&&p.miembros.forEach(f=>{f.miembro_padre=c}),{...c,miembros:p.miembros||[]}):p.miembros&&p.miembros.length>0?{...p,miembros:m(p.miembros)}:p);return{...u,miembros:m(u.miembros)}})},o=c=>{var m;const u=[];return c.id&&u.push(c.id),(m=c.miembros)!=null&&m.length&&c.miembros.forEach(x=>{u.push(...o(x))}),u},d=c=>{r(u=>{const m=o(c),x=f=>f.filter(g=>g.uid!==c.uid).map(g=>({...g,miembros:g.miembros?x(g.miembros):[]})),p=u.miembros_actualizar.filter(f=>!m.includes(f.miembro_id));return{...u,miembros:x(u.miembros),miembros_eliminar:[...u.miembros_eliminar,...m],miembros_actualizar:p}})},l=c=>{r(u=>u.miembros_actualizar.some(x=>x.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(_n,{isUpdate:n,level:a,member:t,addHandler:s,updateHandler:i,removeHandler:d,updateMemberHandler:l}),Array.isArray(t.miembros)&&t.miembros.length>0&&e.jsx(Ua,{isUpdate:n,members:t.miembros,level:a+1,setData:r})]},t.uid)},Nn=(t=7)=>{const a=(r,s)=>r>=s?{populate:"*"}:{miembro_padre:{fields:["id"]},idUser:{populate:"*"},miembros:{populate:a(r+1,s),filters:{idUser:{blocked:!1}}}};return{miembros:{populate:a(0,t),filters:{idUser:{blocked:!1}}}}},Tn=()=>"#"+Math.floor(Math.random()*16777215).toString(16),Cn=({search:t,filters:a})=>{const n={};return t!=null&&t.trim()&&(n.nombre={$containsi:t.trim()}),a!=null&&a.createdAt&&(n.createdAt={$eq:a.createdAt}),n},En=({items:t})=>{if(!t)return{members:[],allMembers:[]};const a={};for(const o of t)a[o.uid]=o;const n=[],r=new Set,s=o=>{const d={...o};if(d.id&&(d.uid=d.id),d.uid&&!r.has(d.uid)&&(n.push(d),r.add(d.uid)),!d.miembros)return d;const l=d.miembros.map(c=>{const u={...c};u.id&&(u.uid=u.id);const m=a[u.uid];return s(m||u)}).filter(Boolean);return{...d,miembros:l}};return{members:t.filter(o=>o.miembro_padre===null).map(s),allMembers:n}},Sn=({items:t})=>t?t.map(a=>{const n=En({items:a.miembros});return{...a,integrantes:n.allMembers.length,miembros:n.members,miembros_planos:n.allMembers,miembros_eliminar:[],miembros_actualizar:[]}}):[],Dn=async({tasks_api:t,page:a=1,pageSize:n=10,search:r="",filters:s={}})=>{const i=Pe.stringify({filters:Cn({search:r,filters:s}),populate:Nn(),sort:["createdAt:asc"],pagination:{page:a,pageSize:n}},{encodeValuesOnly:!0}),o=await t.get(`/api/equipos?${i}`);return o.data?{data:he(o.data.data),meta:o.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:n,pageCount:0,total:0}}}},In=({page:t=1,pageSize:a=10,search:n="",filters:r={}})=>{const{tasks_api:s}=fe();return pe.useQuery({queryKey:["teams",t,a,n,r],queryFn:()=>Dn({tasks_api:s,page:t,pageSize:a,search:n,filters:r}),staleTime:1e3*60*60*24,placeholderData:pe.keepPreviousData,select:i=>({data:Sn({items:(i==null?void 0:i.data)||[]}),meta:i==null?void 0:i.meta})})},ht=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(ht):[]}),Ha=()=>{const{tasks_api:t}=fe(),a=pe.useQueryClient(),n=async x=>{const p={...x,id:void 0,miembros:x.miembros.map(ht)};return(await t.post("/api/registrar-equipo-miembros",{data:p})).data},r=async x=>(await t.delete(`/api/equipos/${x}`)).data,s=async(x,p)=>{const f={...p,id:void 0,miembros:p.miembros.map(ht)};return(await t.patch(`/api/actualizar-equipo-miembros/${x}`,{data:f})).data},i=async(x,p,f)=>{const g=await t.put(`/api/miembros/${x}`,{data:{[p]:f}});if(!g.data)throw new Error("Error al actualizar el miembro");return g.data},{mutateAsync:o,isPending:d}=pe.useMutation({mutationFn:r,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:x=>{throw console.error("Failed to delete the team.",x),x}}),{mutateAsync:l}=pe.useMutation({mutationFn:n,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:x=>{throw console.error("Failed to update the team.",x),x},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:c}=pe.useMutation({mutationFn:x=>s(x.teamId,x.data),onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:x=>{throw console.error("Failed to update the team.",x),x},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:u}=pe.useMutation({mutationFn:x=>i(x.memberId,x.field,x.value),onError:x=>{throw console.error("Failed to update the member.",x),new Error("Error al actualizar el miembro")}});return{addTeamHandler:l,deleteTeamHandler:o,updateTeamHandler:c,updateMemberHandler:u,invalidateTeams:()=>{a.invalidateQueries({queryKey:["teams"]})},isLoadingDeleteTeam:d}},Pn=(t,a,n)=>{const r=w.useCallback(s=>{t.current&&!t.current.contains(s.target)&&a(!1)},[t,a]);w.useEffect(()=>(n&&document.addEventListener("mousedown",r),()=>{document.removeEventListener("mousedown",r)}),[r,n])},Fn=({color:t,onChange:a})=>e.jsxs(e.Fragment,{children:[e.jsx("style",{children:`
58
+ `+D)})()},title:i?"Editar tarea":"Nueva tarea",successButtonText:i?"Actualizar":"Crear",disabledSuccessButton:!$,children:e.jsxs("form",{className:"tw-flex tw-flex-col tw-gap-4",children:[e.jsx(Ce.Controller,{control:p,name:"title",rules:{required:"El título es obligatorio",minLength:{value:3,message:"El título debe tener al menos 3 caracteres"}},render:({field:I})=>{var D;return e.jsx(A.Input,{fullWidth:!0,label:"Título",placeholder:"Ingresa el título de la tarea...",error:(D=h.title)==null?void 0:D.message,...I})}}),e.jsx(Ce.Controller,{control:p,name:"description",rules:{required:"La descripción es obligatoria",minLength:{value:10,message:"La descripción debe tener al menos 10 caracteres"}},render:({field:I})=>{var D;return e.jsx(A.Textarea,{className:"ui-w-full tw-w-full",placeholder:"Describe la tarea a realizar...",label:"Descripción",error:(D=h.description)==null?void 0:D.message,...I})}}),e.jsx(A.Separator,{}),e.jsx(Ce.Controller,{control:p,name:"priority",rules:{required:"La prioridad es obligatoria"},render:({field:I,fieldState:{error:D}})=>e.jsx(A.Dropdown,{fullWidth:!0,label:"Prioridad",placeholder:"Selecciona la prioridad...",options:vr,error:D==null?void 0:D.message,value:I.value,onValueChange:y=>{I.onChange(y)}})}),e.jsx(Ce.Controller,{control:p,name:"difficulty",rules:{required:"La dificultad es obligatoria"},render:({field:I,fieldState:{error:D}})=>e.jsx(A.Dropdown,{fullWidth:!0,label:"Dificultad",placeholder:"Selecciona la dificultad...",options:Nr,error:D==null?void 0:D.message,value:I.value,onValueChange:y=>{I.onChange(y)}})}),e.jsx(Ce.Controller,{control:p,name:"duration",rules:{required:"La duración es obligatoria"},render:({field:I,fieldState:{error:D}})=>e.jsx(A.Dropdown,{fullWidth:!0,label:"Duración",placeholder:"Selecciona la duración...",options:Tr,error:D==null?void 0:D.message,value:I.value,onValueChange:y=>{I.onChange(y)}})}),e.jsx(A.Separator,{}),e.jsx(Ce.Controller,{control:p,name:"team",rules:{required:"El equipo es obligatorio"},render:({field:I,fieldState:{error:D}})=>e.jsx(A.Dropdown,{fullWidth:!0,label:"Equipo",placeholder:"Selecciona el equipo...",options:d,error:D==null?void 0:D.message,value:I.value,onValueChange:y=>{I.onChange(y)}})}),e.jsx(Ce.Controller,{control:p,name:"responsible",render:({field:I,fieldState:{error:D}})=>e.jsx(A.Dropdown,{fullWidth:!0,absolute:!0,label:"Responsable",placeholder:"Selecciona el responsable...",options:m,error:D==null?void 0:D.message,value:I.value,onValueChange:y=>{I.onChange(y)}})})]})})},Cr=()=>{const{get:t}=Be(),a=Re(i=>i.activeTemplate),{updateTaskInState:r,addTaskToState:n}=at();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 r({task:l}):await n({task:l})}catch(d){return console.error("❌ Error al actualizar tarea en plantilla:",d),!1}}}},Ne={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"},Vt={dependiente:{stroke:"#3B82F6",strokeDasharray:"5,5",strokeWidth:2},normal:{stroke:"#6B7280",strokeWidth:2}},pt=t=>{const a=t.map(r=>({...r}));return a.filter(r=>r.type==="group").forEach(r=>{const n=a.filter(c=>c.parentId===r.id);if(n.length===0)return;const s=Math.min(...n.map(c=>c.position.x)),o=Math.max(...n.map(c=>{var m;return c.position.x+(typeof((m=c.style)==null?void 0:m.width)=="number"?c.style.width:Ne.DEFAULT_CHILD_WIDTH)}))-s,d=Math.min(...n.map(c=>c.position.y)),u=Math.max(...n.map(c=>{var m;return c.position.y+(typeof((m=c.style)==null?void 0:m.height)=="number"?c.style.height:Ne.DEFAULT_CHILD_HEIGHT)}))-d;r.style={...r.style??{},width:o,height:u}}),a},wt=t=>t.source===Ne.START_NODE_ID||t.target===Ne.START_NODE_ID,Ge=t=>t===Ne.START_NODE_ID,Er=t=>t==="dependiente"?Vt.dependiente:Vt.normal,Sr=(t,a,r)=>({id:t,type:"main",position:a,selected:!1,deletable:!0,data:r}),mt=(t,a,r,n,s,i=!1,o=null,d=null)=>{const l=Er(n),u=i?Ne.DEFAULT_SOURCE_HANDLE:r;return{id:`edge-${t}-${a}`,source:t,sourceHandle:u,target:a,targetHandle:Ne.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:s,isFromStartNode:i,parentId:o,childId:d}}},Dr=(t,a)=>!(!t||!a||t===a),Ir=t=>{const{clientX:a,clientY:r}="changedTouches"in t?t.changedTouches[0]:t;return{x:a,y:r}},Pr=t=>t.filter(a=>a.type==="position"&&a.dragging===!1),qa=t=>t.map(a=>a.id),La=({nodes:t,edges:a,setNodes:r,setEdges:n,newNodePopup:s,connectionPopup:i,closeNewNodePopup:o,closeConnectionPopup:d,setIsConnectingExistingNodes:l})=>{const{screenToFlowPosition:u,getNode:c,setViewport:m,fitView:x}=re.useReactFlow(),{get:p,update:f,addTaskUpdatingTemplate:h,addTemplateUpdatingTemplate:g}=Be(),b=Re(j=>j.activeTemplate),v=ue.useQueryClient(),P=Re(j=>j.setActiveTemplate),{removeTaskFromState:$,updateNodeWithNewEdge:B,updateTaskInState:H}=at(),I=w.useCallback(async j=>{const F=t.find(M=>M.id===j);if(!(F!=null&&F.data))return null;if(F.id===Ne.START_NODE_ID){if(!b)return null;try{const M=await p(b.id),O=M.tarea_plantillas.find(W=>W.start===!0);return O!=null&&O.id?O.id:M.tarea_plantillas.length>0?M.tarea_plantillas[0].id:null}catch{return null}}const S=F.data.id;if(!S&&S!==0)return null;if(typeof S=="string"){if(S.includes("-"))return S;{const M=parseInt(S,10);return isNaN(M)?null:M}}else if(typeof S=="number")return S;return null},[t,b,p]),D=w.useCallback(async(j=t,F=a)=>{var S,M,O,W,ae,Y,oe;if(!b){A.toast.warning("No hay template activo para actualizar layout");return}try{const te=await p(b.id);if(!te){A.toast.warning("Template no encontrado en IndexedDB");return}const q=(S=te.graph_layout)==null?void 0:S.snapshot;if(!(!q||JSON.stringify(q.nodes)!==JSON.stringify(j)||JSON.stringify(q.edges)!==JSON.stringify(F))){console.log("🔄 No hay cambios en el layout, omitiendo actualización");return}const Q=j.filter(R=>{var N;return!((N=R.data)!=null&&N.isInternal)&&!R.parentId}).map(R=>{const{style:N,measured:_,data:z,selected:k,...T}=R,{expandedDimensions:G,isExpanded:J,needsReExpansion:ee,...le}=z||{},V=N?{...N,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...T,style:V,data:le}}),C=F.filter(R=>{var N;return!((N=R.data)!=null&&N.isInternal)}),E={...te,graph_layout:{id:((M=te.graph_layout)==null?void 0:M.id)||0,snapshot:{nodes:Q,edges:C,viewport:((W=(O=te.graph_layout)==null?void 0:O.snapshot)==null?void 0:W.viewport)||{x:0,y:0,zoom:1}},history:((ae=te.graph_layout)==null?void 0:ae.history)||[],zoom:((Y=te.graph_layout)==null?void 0:Y.zoom)||1,position:((oe=te.graph_layout)==null?void 0:oe.position)||{x:0,y:0}},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await f(b.id,E),console.log("🗑️ [useFlowActions] Invalidando caché de la plantilla:",b.id),await v.invalidateQueries({queryKey:["template",b.id]}),await v.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlowActions] Caché invalidado exitosamente"),P(E)}catch(te){console.error("❌ Error al actualizar template layout:",te)}},[b,p,f,t,a,P]),y=w.useCallback(async(j=[],F=[],S,M)=>{var W,ae,Y,oe,te,q,U,Q,C,E,R,N;const O=S||(b==null?void 0:b.id);if(!O){A.toast.warning("No hay template ID disponible para actualizar");return}try{const _=await p(O);if(!_)return;const z=(Y=(ae=(W=_.graph_layout)==null?void 0:W.snapshot)==null?void 0:ae.nodes)==null?void 0:Y.filter(G=>{var J;return!j.includes(G.id)&&!((J=G.data)!=null&&J.isInternal)&&!G.parentId}).map(G=>{const{style:J,measured:ee,data:le,...V}=G,{expandedDimensions:se,...ce}=le||{},ge=J?{...J,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...V,style:ge,data:ce}}),k=((q=(te=(oe=_.graph_layout)==null?void 0:oe.snapshot)==null?void 0:te.edges)==null?void 0:q.filter(G=>{var J;return!j.includes(G.source)&&!j.includes(G.target)&&!((J=G.data)!=null&&J.isInternal)}))||[],T={..._,graph_layout:{id:((U=_.graph_layout)==null?void 0:U.id)||0,snapshot:{nodes:z,edges:k,viewport:((C=(Q=_.graph_layout)==null?void 0:Q.snapshot)==null?void 0:C.viewport)||{x:0,y:0,zoom:1}},history:((E=_.graph_layout)==null?void 0:E.history)||[],zoom:((R=_.graph_layout)==null?void 0:R.zoom)||1,position:((N=_.graph_layout)==null?void 0:N.position)||{x:0,y:0}},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await $({templateId:O,id:M||0}),await f(O,T),await v.invalidateQueries({queryKey:["template",O]}),await v.invalidateQueries({queryKey:["template"]}),O===(b==null?void 0:b.id)&&P(T)}catch(_){console.error("❌ updateAfterDeleted - Error al actualizar template layout:",_)}},[b,p,f,a,t,$,P]),L=w.useCallback(async(j,F,S)=>{if(!s||!b)return;const{nodeId:M,sourceNodeId:O,sourceHandleId:W}=s;if(O)try{const ae=await I(O);if(!ae)return;if(j==="plantilla"){const Y=S;if(!(Y!=null&&Y.templateId))return;if(!await g(Y.templateId,b.id,ae,F)){A.toast.error("No se pudo agregar la plantilla. Intenta nuevamente."),o();return}try{const R=await p(b.id);if(R){const N=(z,k)=>{for(const T of z){if(T.id===k||T.uuid===k)return T;if(T.tareas&&T.tareas.length>0){const G=N(T.tareas,k);if(G)return G}}return null},_=N(R.tarea_plantillas,ae);if(_&&_.id){const z=(_.plantilla_dependents||[]).map(T=>typeof T=="object"&&T.id?{id:T.id}:typeof T=="number"?{id:T}:T),k={..._,plantilla_dependents:z,plantilla:{id:b.id,clave:R.clave,categoria:R.categoria||{id:0,nombre:"Sin categoría"}}};await H({task:k}),console.log("✅ Tarea padre agregada a templates_states.updated con plantilla_dependents:",_.id,k.plantilla_dependents)}}}catch(R){console.error("❌ Error al actualizar tarea padre en templates_states:",R)}const te=u({x:s.position.x,y:s.position.y}),q=Y.templateData||{id:Y.templateId,nombre_plantilla:`Flujo de trabajo ${Y.templateId}`,clave:`TPL-${Y.templateId}`,estatus:"activo",categoria:null,counts_tasks:0,dias_duracion:0},U={id:M,type:"group",position:te,selected:!1,deletable:!0,data:{id:Y.templateId,templateId:Y.templateId,type:"template",nombre_plantilla:q.nombre_plantilla||`Flujo de trabajo ${Y.templateId}`,clave:q.clave||`TPL-${Y.templateId}`,estatus:q.estatus||"activo",categoria:q.categoria||null,counts_tasks:q.counts_tasks||0,dias_duracion:q.dias_duracion||0,tarea_plantillas:q.tarea_plantillas||[],params_plantillas:q.params_plantillas||[],createdAt:q.createdAt||new Date().toISOString(),updatedAt:q.updatedAt||new Date().toISOString(),created_by:q.created_by||null,updated_by:q.updated_by||null}};r(R=>[...R,U]);const Q=W||Ne.DEFAULT_SOURCE_HANDLE,C=Ge(O),E=mt(O,M,Q,F,"plantilla",C,ae);n(R=>[...R,E]);try{const R=[...t,U],N=[...a,E];await D(R,N)}catch(R){console.error("❌ Error al actualizar layout después de agregar plantilla:",R)}}else if(j==="tarea"){const Y=S;if(!Y)return;const oe=u({x:s.position.x,y:s.position.y}),te=-new Date().getTime(),q={id:te,reference_graph:M,title:Y.title,description:Y.description,priority:Y.priority,difficulty:Y.difficulty,duration:Y.duration,team:Y.team,responsible:Y.responsible,parent:{data:{id:ae}}},U=await h(q,b.id,F),Q=Sr(M,oe,U);r(N=>[...N,Q]);const C=W||Ne.DEFAULT_SOURCE_HANDLE,E=Ge(O),R=mt(O,M,C,F,j,E,ae,te);n(N=>[...N,R]);try{const N=[...t,Q],_=[...a,R];await D(N,_)}catch(N){console.error("❌ Error al actualizar layout después de agregar tarea:",N)}setTimeout(()=>{try{const N=c(M);if(N){const _=window.innerWidth,z=window.innerHeight,k=_/2,T=z/2;m({x:k-N.position.x-130,y:T-N.position.y-40,zoom:1},{duration:800})}else x({padding:.1,duration:800})}catch{try{x({padding:.1,duration:800})}catch{}}},200)}o()}catch(ae){console.error("❌ Error en createNodeFromPopup:",ae)}},[s,b,h,g,I,u,r,n,o,D,t,a]),K=w.useCallback(async(j,F)=>{var W,ae;if(console.log("🟢 createConnectionFromPopup - INICIO",{nodeType:j,connectionType:F}),!i){console.warn("⚠️ createConnectionFromPopup - No hay connectionPopup");return}const{sourceNodeId:S,sourceHandleId:M,targetNodeId:O}=i;console.log("🟢 createConnectionFromPopup - Datos de conexión:",{sourceNodeId:S,targetNodeId:O,sourceHandleId:M});try{if(!(window.validConnectionTypes||{dependiente:!0,hija:!0})[F]){console.warn("⚠️ createConnectionFromPopup - Tipo de conexión no válido:",F),A.toast.warning("Tipo de conexión no válido"),l(!1),d();return}const oe=t.find(k=>k.id===S),te=t.find(k=>k.id===O);console.log("🟢 createConnectionFromPopup - Nodos encontrados:",{sourceNode:oe==null?void 0:oe.id,targetNode:te==null?void 0:te.id,sourceData:oe==null?void 0:oe.data,targetData:te==null?void 0:te.data});const q=te==null?void 0:te.data,U=((W=oe==null?void 0:oe.data)==null?void 0:W.id)||S,Q=((ae=te==null?void 0:te.data)==null?void 0:ae.id)||O;console.log("🟢 createConnectionFromPopup - IDs extraídos:",{parentId:U,childId:Q});const C=mt(S,O,M||Ne.DEFAULT_SOURCE_HANDLE,F,j,Ge(S),U,Q);console.log("🟢 createConnectionFromPopup - Nuevo edge creado:",C),n(k=>[...k,C]);const E=[...a,C],R=q.id||-Date.now(),N=q.reference_graph||O,_={id:R,uuid:q.uuid||crypto.randomUUID(),reference_graph:N,texto_corto:q.texto_corto||"",texto_largo:q.texto_largo||"",prioridad:q.prioridad||null,nivel_dificultad:q.nivel_dificultad||1,duracion:q.duracion||null,start:q.start||!1,equipo:q.equipo||null,responsable:q.responsable||null,plantilla:{id:q.plantilla.id,clave:q.plantilla.clave,categoria:q.plantilla.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:q.plantilla_dependents||[],ids_t_dependientes:q.ids_t_dependientes||[],tarea_padre:F==="hija"?{id:C.data.parentId}:null,id_t_requerida:F==="dependiente"?{id:C.data.parentId}:null,tareas:q.tareas||[],type:"task"};console.log("🟢 createConnectionFromPopup - taskForState creado:",_),console.log("🟢 createConnectionFromPopup - currentTemplate.id:",b.id);const z=t.map(k=>k.id===O?{...k,data:_}:k);console.log("🟢 createConnectionFromPopup - Actualizando nodos en React Flow..."),r(z),console.log("✅ createConnectionFromPopup - Nodos actualizados en React Flow"),console.log("🟢 createConnectionFromPopup - Actualizando template layout..."),await D(z,E),console.log("✅ createConnectionFromPopup - Template layout actualizado"),console.log("🟢 createConnectionFromPopup - Llamando a updateNodeWithNewEdge..."),await B({templateId:b.id,edge:C,task:_}),console.log("✅ createConnectionFromPopup - updateNodeWithNewEdge completado")}catch(Y){console.error("❌ createConnectionFromPopup - Error al crear conexión:",Y),console.error("❌ createConnectionFromPopup - Stack:",Y.stack)}finally{console.log("🟢 createConnectionFromPopup - Limpiando estado..."),l(!1),d(),console.log("🟢 createConnectionFromPopup - FIN")}},[i,n,l,d,a,t,D]),X=w.useCallback(async j=>{if(!s||!b){A.toast.warning("No hay newNodePopup o template activo para actualizar el nodo");return}const{nodeId:F}=s;if(!F){A.toast.warning("No se encontró nodeId en newNodePopup");return}try{const S=t.find(O=>O.id===F);if(!S){A.toast.warning(`No se encontró el nodo con ID: ${F}`);return}const M={...S,data:{...S.data,...j,id:S.data.id||S.id,type:S.data.type||S.data.type,updatedAt:new Date().toISOString()}};r(O=>O.map(W=>W.id===F?M:W));try{const O=t.map(W=>W.id===F?M:W);await D(O,a)}catch(O){A.toast.error("Error al actualizar layout después de actualizar nodo:",O)}o()}catch(S){A.toast.error("Error al actualizar el nodo:",S)}},[s,b,t,r,a,D,o]);return{createNodeFromPopup:L,createConnectionFromPopup:K,updateNodeFromPopup:X,updateAfterDeleted:y}},Fr=({data:t,id:a,isConnectable:r,selected:n})=>{const s=Te(y=>y.getViewMode),[i,o]=w.useState(!1),[d,l]=w.useState(t),u=Re(y=>y.activeTemplate),c=Re(y=>y.setActiveTemplate),{get:m,update:x}=Be(),p=u!=null&&u.id?s(u.id):"readonly",{updateTaskInTemplate:f}=Cr(),{setNodes:h,setEdges:g,getNodes:b,getEdges:v}=re.useReactFlow(),P=ue.useQueryClient(),{updateAfterDeleted:$}=La({nodes:b(),edges:v(),setNodes:h,setEdges:g,newNodePopup:null,connectionPopup:null,closeNewNodePopup:()=>{},closeConnectionPopup:()=>{},setIsConnectingExistingNodes:()=>{}}),B=()=>{o(!0)},H=w.useCallback(async()=>{var F,S,M;const y=b().find(O=>O.id===a);if(!y){console.warn("⚠️ Nodo no encontrado para eliminar");return}const L=[y],K=qa(L),X=L.length>0?(S=(F=L[0])==null?void 0:F.data)==null?void 0:S.id:0;g(O=>O.filter(W=>!K.includes(W.source)&&!K.includes(W.target))),h(O=>O.filter(W=>W.id!==a));let j;for(const O of L)try{const W=O.data;if((M=W==null?void 0:W.plantilla)!=null&&M.id){j=W.plantilla.id;break}}catch{}try{g(O=>((async()=>{await $(K,O,j,X)})().catch(W=>{console.error("❌ Error en updateAfterDeleted:",W)}),O))}catch(O){console.error("❌ Error en handleDeleteNode:",O)}},[a,b,v,h,g,$]),I=w.useCallback(async y=>{var L,K,X,j,F,S,M,O,W,ae;if(!u){console.warn("⚠️ MainNode.updateTemplateLayout - No hay template activo");return}try{const Y=await m(u.id);if(!Y){console.warn("⚠️ MainNode.updateTemplateLayout - Template no encontrado en IndexedDB");return}const oe=(L=Y.graph_layout)==null?void 0:L.snapshot;if(!(!oe||JSON.stringify(oe.nodes)!==JSON.stringify(y))){console.log("🔄 MainNode.updateTemplateLayout - No hay cambios en nodos, omitiendo actualización");return}const q=y.filter(C=>{var E;return!((E=C.data)!=null&&E.isInternal)&&!C.parentId}).map(C=>{const{style:E,measured:R,data:N,selected:_,...z}=C,{expandedDimensions:k,isExpanded:T,needsReExpansion:G,...J}=N||{},ee=E?{...E,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...z,style:ee,data:J}}),U=(((X=(K=Y.graph_layout)==null?void 0:K.snapshot)==null?void 0:X.edges)||[]).filter(C=>{var E;return!((E=C.data)!=null&&E.isInternal)}),Q={...Y,graph_layout:{id:((j=Y.graph_layout)==null?void 0:j.id)||0,snapshot:{...(F=Y.graph_layout)==null?void 0:F.snapshot,nodes:q,edges:U,viewport:((M=(S=Y.graph_layout)==null?void 0:S.snapshot)==null?void 0:M.viewport)||{x:0,y:0,zoom:1}},history:((O=Y.graph_layout)==null?void 0:O.history)||[],zoom:((W=Y.graph_layout)==null?void 0:W.zoom)||1,position:((ae=Y.graph_layout)==null?void 0:ae.position)||{x:0,y:0}},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await x(u.id,Q),await P.invalidateQueries({queryKey:["template",u.id]}),await P.invalidateQueries({queryKey:["template"]}),u&&u.id===Q.id&&c(Q)}catch(Y){console.error("❌ MainNode.updateTemplateLayout - Error al actualizar template layout:",Y)}},[u,m,x,c,P]),D=async y=>{if(o(!1),u){const L={...t,texto_corto:y.title,texto_largo:y.description,prioridad:y.priority?typeof y.priority=="number"?y.priority:parseInt(y.priority.toString()):null,nivel_dificultad:y.difficulty?typeof y.difficulty=="number"?y.difficulty:parseInt(y.difficulty.toString()):1,duracion:y.duration?typeof y.duration=="number"?y.duration:parseInt(y.duration.toString()):null,equipo:{id:Number(y.team)||null},responsable:{id:Number(y.responsible)||null}};await f(t.id,L),h(K=>{const X=K.map(j=>j.id===a?{...j,data:{...j.data,...L,tarea_padre:t.tarea_padre,id_t_requerida:t.id_t_requerida,updatedAt:new Date().toISOString()}}:j);return console.log("🔄 updatedNodes:",X),setTimeout(()=>I(X),0),X})}};return w.useEffect(()=>{l(t)},[t]),e.jsxs("div",{className:`tw-border-[1px] tw-bg-white tw-px-4 tw-py-2 tw-rounded-lg tw-transition-all tw-duration-200 tw-max-w-[423px] ${n?"tw-border-brand tw-shadow-lg tw-ring-2 tw-ring-blue-300 tw-ring-opacity-50":t.main?"ui-border-success tw-shadow-sm":"ui-border-default tw-shadow-sm"}`,children:[e.jsx(re.Handle,{isConnectable:r,id:"top-target",type:"target",position:re.Position.Top,className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white"}),e.jsx(re.Handle,{isConnectable:r,id:"right-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Right}),e.jsx(re.Handle,{isConnectable:r,id:"bottom-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Bottom}),e.jsx(re.Handle,{isConnectable:r,id:"left-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Left}),e.jsxs("div",{className:"tw-flex tw-h-full tw-flex-col ui-gap-y-8 ui-p-12 ",children:[e.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between tw-gap-x-4 ",children:[e.jsx("p",{className:"ui-text-primary ui-font-bold tw-leading-none ui-text-body-lg-regular tw-truncate",children:d.texto_corto}),!t.isInternal&&u.estatusFromStrapi!==Ie.PUBLISHED&&p!=="readonly"&&e.jsx("div",{children:t.type==="task"?e.jsx(A.Popup,{position:"right",absolute:!0,size:"xxs",pill:"pill",color:"secondary",icon:pe.faEllipsis,containerClassName:"nopan nodrag",buttonClassName:"nopan nodrag",children:e.jsxs(A.List,{className:"ui-p-8 ui-gap-4",children:[e.jsx(A.ListItem,{icon:pe.faEdit,onClick:B,children:"Editar"}),e.jsx(A.ListItem,{icon:pe.faPlus,color:"red",onClick:H,children:"Eliminar"})]})}):e.jsx(A.Button,{size:"xxs",color:"secondary",pill:"pill",icon:pe.faMaximize,className:"nopan"})})]}),e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-sm-normal ",children:d.texto_largo}),e.jsxs("div",{className:"tw-flex tw-gap-x-6 tw-justify-between",children:[e.jsx(fr,{duration:d.duracion}),e.jsx(mr,{difficulty:d.nivel_dificultad}),e.jsx(gr,{priority:d.prioridad}),e.jsx(yr,{responsible:d.responsable})]})]}),e.jsx(re.Handle,{isConnectable:r,id:"top-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Top}),e.jsx(re.Handle,{isConnectable:r,id:"right-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Right}),e.jsx(re.Handle,{isConnectable:r,id:"bottom-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Bottom}),e.jsx(re.Handle,{isConnectable:r,id:"left-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:re.Position.Left}),t.type==="task"&&i&&e.jsx(Ma,{isOpen:i,onClose:()=>o(!1),onSuccess:D,editMode:!0,taskToEdit:d})]})},Ar=async({tasks_api:t,page:a=1,pageSize:r=10,search:n="",filters:s={}})=>{const i={clave:{$notNull:!0},estatus:{$ne:Ie.DELETED},...n?{$or:[{nombre_plantilla:{$containsi:n}},{clave:{$containsi:n}}]}:{},...Object.keys(s).reduce((l,u)=>(Array.isArray(s[u])?l[u]={id:{$in:s[u]}}:l[u]=s[u],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","order"]}}},tarea_plantillas:{fields:["id"],filters:{start:!0},populate:{tareas:{fields:["id"]},ids_t_dependientes:{fields:["id"]}}}},sort:{createdAt:"asc"},pagination:{page:a,pageSize:r}},{encodeValuesOnly:!0}),d=await t.get(`/api/plantillas/all-plantillas?${o}`);return d.data?{data:he(d.data.data),meta:d.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:r,pageCount:0,total:0}}}},Oa=({page:t=1,pageSize:a=10,search:r="",filters:n={}})=>{const{tasks_api:s}=fe();return ue.useQuery({queryKey:["templates",t,a,r,n],queryFn:()=>Ar({tasks_api:s,page:t,pageSize:a,search:r,filters:n}),staleTime:1e3*60*60*24,placeholderData:ue.keepPreviousData,select:i=>({data:(i==null?void 0:i.data)||[],meta:i==null?void 0:i.meta})})},Ra=({isOpen:t,onClose:a,onSuccess:r,nodeDataType:n,parentNodeInfo:s})=>{var P,$,B,H;const i=Te(I=>I.addNodeWithType),[o,d]=w.useState(0),l=5,[u,c]=w.useState(1),[m,x]=w.useState("");w.useEffect(()=>{t&&(c(1),x(""),d(0))},[t]),w.useEffect(()=>{c(1)},[m]);const{data:p,isLoading:f}=Oa({page:u,pageSize:l,search:m}),h=I=>{x(I.target.value)},g=()=>{var D;if(o===0)return;const I=(D=p==null?void 0:p.data)==null?void 0:D.find(y=>y.id===o);if(!I){console.error("No se encontró el flujo de trabajo seleccionado en los datos");return}r?r({templateId:o,templateData:I}):i&&i(n.id,n.type,n.connectionType)};if(f)return e.jsx("div",{children:"Cargando..."});if(!(p!=null&&p.data))return e.jsx("div",{children:"No hay datos disponibles"});const b=(($=(P=p.meta)==null?void 0:P.pagination)==null?void 0:$.total)||0,v=b===1?"flujo encontrado":"flujos encontrados";return e.jsx(A.Modal,{iconConfig:{icon:Me.faPencil},isOpen:t,size:"lg",onSuccess:g,onClose:a,title:"Agregar flujo de trabajo",successButtonText:"Agregar",disableSuccessButton:o===0,closeAtSuccess:!0,children:e.jsxs(A.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," ",v]}),e.jsx(A.Input,{className:"tw-flex-1",leftSlot:Me.faSearch,fullWidth:!0,placeholder:"Buscar por nombre, parámetros o estado...",value:m,onChange:h})]}),e.jsx(A.Separator,{}),e.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-6 tw-p-12",children:[p.data.map(I=>e.jsx(ka,{mode:"modal",template:I,active:o===I.id,fullWidth:!0,onClick:d,withOptions:!1},I.id)),p.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(A.Separator,{}),e.jsx("div",{className:"tw-mt-6",children:e.jsx(A.Pagination,{className:"tw-pt-0",pageSize:l,pageCount:((H=(B=p==null?void 0:p.meta)==null?void 0:B.pagination)==null?void 0:H.pageCount)||1,currentPage:u,onPageChange:I=>c(I)})})]})})},kr=({data:t,id:a})=>{const r=Te(c=>c.addNodeWithType),[n,s]=w.useState(!1),[i,o]=w.useState(!1),[d,l]=w.useState({id:a,type:"tarea",connectionType:"dependiente"}),u=({type:c,connectionType:m})=>{r&&(l({id:a,type:c,connectionType:m}),c==="tarea"?s(!0):c==="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(Ra,{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(A.Popup,{position:"right",absolute:!0,size:"md",rounded:!0,icon:pe.faPlus,containerClassName:"nopan",buttonClassName:"nopan",children:e.jsxs(A.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(A.ListItem,{icon:pe.faArrowUpLeft,iconColor:"neutral",onClick:()=>u({type:"tarea",connectionType:"dependiente"}),children:"Dependiente"}),e.jsx(A.ListItem,{icon:pe.faArrowDownRight,iconColor:"neutral",onClick:()=>u({type:"tarea",connectionType:"hija"}),children:"Hija"}),e.jsx(A.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(A.ListItem,{icon:pe.faArrowUpLeft,iconColor:"neutral",onClick:()=>u({type:"plantilla",connectionType:"dependiente"}),children:"Dependiente"}),e.jsx(A.ListItem,{icon:pe.faArrowDownRight,iconColor:"neutral",onClick:()=>u({type:"plantilla",connectionType:"hija"}),children:"Hija"})]})})]})},Mr=({isOpen:t,position:a,onClose:r,createNodeFromPopup:n,parentNodeInfo:s})=>{const[i,o]=w.useState(!1),[d,l]=w.useState(!1),[u,c]=w.useState(null);if(!t)return null;const m=(g,b)=>{c({type:g,connectionType:b}),g==="tarea"?o(!0):g==="plantilla"&&l(!0)},x=()=>{o(!1),c(null),r()},p=()=>{l(!1),c(null),r()},f=g=>{u&&n(u.type,u.connectionType,g),x()},h=g=>{u&&g&&n(u.type,u.connectionType,g),p()};return e.jsxs(e.Fragment,{children:[!i&&!d&&e.jsx("div",{className:"tw-fixed tw-inset-0 tw-z-50",onClick:r}),!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(A.List,{children:[e.jsx("p",{className:"ui-text-sm ui-p-4 ui-gap-4 tw-font-medium tw-text-neutral-300",children:"Tarea"}),e.jsx(A.ListItem,{icon:pe.faArrowUpLeft,iconColor:"neutral",onClick:()=>m("tarea","dependiente"),children:"Dependiente"}),e.jsx(A.ListItem,{icon:pe.faArrowDownRight,iconColor:"neutral",onClick:()=>m("tarea","hija"),children:"Hija"}),e.jsx(A.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(A.ListItem,{icon:pe.faArrowUpLeft,iconColor:"neutral",onClick:()=>m("plantilla","dependiente"),children:"Dependiente"})]})})}),i&&u&&e.jsx(Ma,{isOpen:i,onClose:x,onSuccess:f,nodeDataType:{id:"",type:u.type,connectionType:u.connectionType},parentNodeInfo:s}),d&&u&&e.jsx(Ra,{isOpen:d,onClose:p,onSuccess:h,nodeDataType:{id:"",type:u.type,connectionType:u.connectionType},parentNodeInfo:s})]})};function qr({reactFlowWrapper:t,nodes:a}){const{setViewport:r,getViewport:n}=re.useReactFlow(),{zoom:s}=re.useViewport(),i=Math.round(s*100),[o,d]=w.useState([]),[l,u]=w.useState(-1),[c,m]=w.useState(!1),[x,p]=w.useState(0);w.useLayoutEffect(()=>{const B=t==null?void 0:t.current;if(B){const H=B.getBoundingClientRect();p(H.width)}},[t]);const f=w.useMemo(()=>{var D;if(!a||a.length===0)return{x:0,y:0,zoom:1};const B=a.find(y=>{var L;return(L=y==null?void 0:y.data)==null?void 0:L.main})??a[0];return{x:(x||(typeof window<"u"?window.innerWidth:0))/2-(((D=B==null?void 0:B.position)==null?void 0:D.x)??0),y:20,zoom:1}},[a,x]),h=w.useCallback(B=>{if(!c){const H=[...o.slice(0,l+1),B];d(H),u(H.length-1)}},[o,l,c]),g=w.useCallback(()=>{if(c)return;const B=n(),H=Math.min(B.zoom*1.2,2);h(B),m(!0),r({x:B.x,y:B.y,zoom:H}),setTimeout(()=>m(!1),100)},[n,r,h,c]),b=w.useCallback(()=>{if(c)return;const B=n(),H=Math.max(B.zoom/1.2,.5);h(B),m(!0),r({x:B.x,y:B.y,zoom:H}),setTimeout(()=>m(!1),100)},[n,r,h,c]),v=w.useCallback(()=>{if(c)return;const B=n();Math.abs(B.zoom-1)>.01&&h(B),m(!0),r({x:B.x,y:B.y,zoom:1}),setTimeout(()=>m(!1),100)},[n,r,h,c]),P=w.useCallback(()=>{if(c||l<=0)return;const B=o[l-1];m(!0),r(B),u(l-1),setTimeout(()=>m(!1),100)},[l,o,r,c]);return w.useEffect(()=>{o.length===0&&(d([{zoom:1,x:0,y:0}]),u(0))},[o.length]),{isReady:x!==0&&Array.isArray(a)&&a.length>0,defaultViewport:f,zoomPercentage:i,handleZoomIn:g,handleZoomOut:b,handleZoomTo100:v,handleDoubleClick:P}}const Lr=t=>{var i,o;const a=((i=t.data)==null?void 0:i.isInternal)||!1,r=(o=t.data)==null?void 0:o.originalGroupId,n=t.selected||!1,s=d=>{if(d.preventDefault(),d.stopPropagation(),r){const u=Te.getState().collapseGroup;u&&u(r)}};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(A.Icon,{name:$e.faFlag,size:"sm",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,background:!0,padding:"md"}),e.jsx("p",{className:"ui-text-primary ui-font-body-sm-semibold tw-leading-none ui-text-body-sm-regular tw-truncate tw-tracking-wider",children:t.data.clave}),a&&e.jsx(A.Button,{size:"sm",color:"secondary",onClick:s,className:"tw-p-2 nopan nodrag",icon:pe.faMinimize,pill:"pill"})]}),a&&e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[e.jsx(A.Tag,{color:t.data.estatus==="published"?"success":"warning",label:t.data.estatus==="published"?"Publicado":"Borrador"}),(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"})]})},Or=()=>{const t=w.useCallback((s,i,o,d)=>{const l=(m,x)=>{const p=m.position.x,f=m.position.y,h=120,g=60,b=15;switch(x){case"top-source":case"top-target":return{x:p,y:f-g/2-b};case"bottom-source":case"bottom-target":return{x:p,y:f+g/2+b};case"left-source":case"left-target":return{x:p-h/2-b,y:f};case"right-source":case"right-target":return{x:p+h/2+b,y:f};default:return{x:p,y:f}}},u=l(s,o),c=l(i,d);return Math.sqrt(Math.pow(c.x-u.x,2)+Math.pow(c.y-u.y,2))},[]),a=w.useCallback((s,i)=>{if(s.includes("source")===i.includes("source"))return!1;const o=c=>c.includes("top")?"top":c.includes("bottom")?"bottom":c.includes("left")?"left":c.includes("right")?"right":null,d=o(s),l=o(i);return{top:"bottom",bottom:"top",left:"right",right:"left"}[d]===l},[]),r=w.useCallback((s,i)=>{const o=["top-source","bottom-source","left-source","right-source"],d=["top-target","bottom-target","left-target","right-target"];let l=1/0,u={handle1:o[0],handle2:d[0]};for(const c of o)for(const m of d){if(!a(c,m))continue;const x=t(s,i,c,m);x<l&&(l=x,u={handle1:c,handle2:m})}return u},[t,a]),n=w.useCallback((s,i,o=800)=>Math.sqrt(Math.pow(i.position.x-s.position.x,2)+Math.pow(i.position.y-s.position.y,2))<o,[]);return{findClosestHandles:r,calculateHandleDistance:t,areHandlesCompatible:a,shouldApplyMagneticConnection:n}},Rr=t=>{const[a,r]=w.useState(null),[n,s]=w.useState(null),[i,o]=w.useState(!1),d=w.useCallback((x,p,f,h)=>{r({isOpen:!0,nodeId:x,position:p,sourceNodeId:f,sourceHandleId:h})},[]),l=w.useCallback(()=>{r(null)},[]),u=w.useCallback((x,p,f,h,g)=>{o(!0),s({isOpen:!0,sourceNodeId:x,sourceHandleId:f,targetNodeId:p,targetHandleId:h,position:g})},[]),c=w.useCallback(()=>{o(!1),s(null)},[]),m=w.useCallback(()=>{var p,f,h;if(!(a!=null&&a.sourceNodeId))return null;const x=t.find(g=>g.id===a.sourceNodeId);return x?{id:x.id,label:(p=x.data)==null?void 0:p.label,nodeType:(f=x.data)==null?void 0:f.nodeType,connectionType:(h=x.data)==null?void 0:h.connectionType,data:x.data}:null},[a,t]);return{newNodePopup:a,connectionPopup:n,isConnectingExistingNodes:i,openNewNodePopup:d,closeNewNodePopup:l,openConnectionPopup:u,closeConnectionPopup:c,getParentNodeInfo:m,setIsConnectingExistingNodes:o}},Br=({initialNodes:t,initialEdges:a})=>{const[r,n,s]=re.useNodesState(pt(t)),[i,o,d]=re.useEdgesState(a),[l,u]=w.useState(!1),c=w.useCallback(C=>{o(C)},[o]),{toObject:m}=re.useReactFlow(),{findClosestHandles:x,shouldApplyMagneticConnection:p}=Or(),{updateGraphLayout:f,get:h,update:g}=Be(),b=Re(C=>C.activeTemplate),v=Re(C=>C.setActiveTemplate),P=ue.useQueryClient(),{removeParentIdFromNodes:$}=at(),{newNodePopup:B,connectionPopup:H,isConnectingExistingNodes:I,openNewNodePopup:D,closeNewNodePopup:y,openConnectionPopup:L,closeConnectionPopup:K,getParentNodeInfo:X,setIsConnectingExistingNodes:j}=Rr(r),{createNodeFromPopup:F,createConnectionFromPopup:S,updateNodeFromPopup:M,updateAfterDeleted:O}=La({nodes:r,edges:i,setNodes:n,setEdges:c,newNodePopup:B,connectionPopup:H,closeNewNodePopup:y,closeConnectionPopup:K,setIsConnectingExistingNodes:j});w.useEffect(()=>{if(t&&t.length>0){if(!(t.some((k,T)=>{const G=r[T];return G?k.id!==G.id||JSON.stringify(k.position)!==JSON.stringify(G.position)||JSON.stringify(k.data)!==JSON.stringify(G.data):!0})||t.length!==r.filter(k=>{var T;return!((T=k.data)!=null&&T.isInternal)}).length)&&r.length>0)return;const{expandedGroups:E,groupTemplateData:R}=Te.getState(),N=pt(t),_=new Set(N.map(k=>k.id));let z=r.filter(k=>{var T,G;return((T=k.data)==null?void 0:T.isInternal)&&typeof((G=k.data)==null?void 0:G.originalGroupId)=="string"&&E.has(k.data.originalGroupId)&&_.has(k.data.originalGroupId)});if(z.length>0){const k=N.map(T=>{var G;if(E.has(T.id)){const J=r.find(le=>le.id===T.id),ee=(G=J==null?void 0:J.data)==null?void 0:G.expandedDimensions;if(ee)return{...T,style:{...T.style,width:ee.width,height:ee.height},data:{...T.data,isExpanded:!0,expandedDimensions:ee}}}return T});n([...k,...z])}else if(E.size>0){const k=N.map(T=>E.has(T.id)&&R[T.id]?{...T,data:{...T.data,isExpanded:!0,needsReExpansion:!0}}:T);n(k)}else n(N)}else n([])},[t,n]),w.useEffect(()=>{if(!l&&a&&a.length>0){const{expandedGroups:C}=Te.getState(),E=pt(t),R=new Set(E.map(z=>z.id)),N=i.filter(z=>{var k,T;return((k=z.data)==null?void 0:k.isInternal)&&typeof((T=z.data)==null?void 0:T.originalGroupId)=="string"&&C.has(z.data.originalGroupId)&&R.has(z.data.originalGroupId)}),_=i.filter(z=>{var k,T;return((k=z.data)==null?void 0:k.redirectedToInternal)&&typeof((T=z.data)==null?void 0:T.originalTarget)=="string"&&C.has(z.data.originalTarget)&&R.has(z.data.originalTarget)});if(N.length>0||_.length>0){const z=a.filter(k=>!_.some(T=>{var G;return((G=T.data)==null?void 0:G.originalTarget)===k.target}));c([...z,...N,..._])}else c(a)}},[a,c,l]);const W=w.useCallback((C,E,R=!1)=>{const _=i.filter(T=>T.target===E).length>0;if(i.some(T=>T.source===C&&T.target===E||T.source===E&&T.target===C)&&!R)return A.toast.warning("La tarea destino ya tiene una conexión"),!1;const k=!_;return typeof window<"u"&&(window.validConnectionTypes={dependiente:k,hija:k}),k?!0:(A.toast.warning("La tarea destino ya tiene una conexión de entrada"),!1)},[i]),ae=w.useCallback(C=>{if(!Dr(C.source,C.target))return;Ge(C.source)&&!C.sourceHandle&&(C.sourceHandle=Ne.DEFAULT_SOURCE_HANDLE);const E=r.find(N=>N.id===C.source),R=r.find(N=>N.id===C.target);if(E&&R){if(!W(C.source,C.target))return;L(C.source,C.target,C.sourceHandle,C.targetHandle);return}return c(N=>re.addEdge(C,N))},[r,L,c,W]),Y=w.useCallback((C,E)=>{var R;if(!I&&!E.isValid&&E.fromNode){const N=r.find(ee=>ee.id===E.fromNode.id);if((N==null?void 0:N.type)==="group"){A.toast.warning("En una plantilla, no se puede crear una conexión");return}const _=Ir(C),z=document.elementFromPoint(_.x,_.y);if(z!=null&&z.closest(".react-flow__node"))return;const k=crypto.randomUUID(),T=((R=E.fromHandle)==null?void 0:R.id)||Ne.DEFAULT_SOURCE_HANDLE,J=Ge(E.fromNode.id)?Ne.DEFAULT_SOURCE_HANDLE:T;D(k,_,E.fromNode.id,J)}},[I,D,r]),oe=w.useCallback(async C=>{var _,z,k;const E=qa(C),R=C.length>0?(z=(_=C[0])==null?void 0:_.data)==null?void 0:z.id:0;c(T=>T.filter(G=>!E.includes(G.source)&&!E.includes(G.target)));let N;for(const T of C)try{const G=T.data;if((k=G==null?void 0:G.plantilla)!=null&&k.id){N=G.plantilla.id;break}}catch{}try{c(T=>((async()=>{await O(E,T,N,R)})().catch(G=>{console.error("❌ Error en updateAfterDeleted:",G)}),T))}catch(T){console.error("❌ Error en onDeleteNode:",T)}},[c,O]),te=w.useCallback(async C=>{var R,N,_,z,k,T,G,J,ee,le,V,se,ce,ge;if(!C||C.length===0)return;let E;if(b!=null&&b.id)E=b.id;else for(const ne of C){const de=r.find(xe=>xe.id===ne.source),me=r.find(xe=>xe.id===ne.target);if(de!=null&&de.data&&typeof de.data=="object"&&"plantilla"in de.data){const xe=de.data.plantilla;if(xe!=null&&xe.id){E=xe.id;break}}if(me!=null&&me.data&&typeof me.data=="object"&&"plantilla"in me.data){const xe=me.data.plantilla;if(xe!=null&&xe.id){E=xe.id;break}}}if(!E){console.warn("⚠️ onEdgesDelete - No se pudo obtener templateId");return}try{const ne=await h(E);if(!ne){console.warn("⚠️ onEdgesDelete - Template no encontrado en IndexedDB");return}const de=C.map(ye=>ye.id),me=((_=(N=(R=ne.graph_layout)==null?void 0:R.snapshot)==null?void 0:N.edges)==null?void 0:_.filter(ye=>{var ke;return!de.includes(ye.id)&&!((ke=ye.data)!=null&&ke.isInternal)}))||[],we=(((T=(k=(z=ne.graph_layout)==null?void 0:z.snapshot)==null?void 0:k.nodes)==null?void 0:T.filter(ye=>{var ke;return!((ke=ye.data)!=null&&ke.isInternal)&&!ye.parentId}))||[]).map(ye=>{const{style:ke,measured:dt,data:rt,...nt}=ye,{expandedDimensions:Ye,isExpanded:kt,needsReExpansion:mo,...Mt}=rt||{},ts=ke?{...ke,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0,as=ye.data.id===C[0].data.childId?{...Mt,tarea_padre:null,id_t_requerida:null}:Mt;return{...nt,style:ts,data:as}}),be=((J=(G=ne.graph_layout)==null?void 0:G.snapshot)==null?void 0:J.edges)||[];if(!(JSON.stringify(be)!==JSON.stringify(me)))return;const De={...ne,graph_layout:{id:((ee=ne.graph_layout)==null?void 0:ee.id)||0,snapshot:{nodes:we,edges:me,viewport:((V=(le=ne.graph_layout)==null?void 0:le.snapshot)==null?void 0:V.viewport)||{x:0,y:0,zoom:1}},history:((se=ne.graph_layout)==null?void 0:se.history)||[],zoom:((ce=ne.graph_layout)==null?void 0:ce.zoom)||1,position:((ge=ne.graph_layout)==null?void 0:ge.position)||{x:0,y:0}},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await $({templateId:E,id:C[0].data.childId}),await g(E,De),console.log("🗑️ [useFlow] Invalidando caché de la plantilla:",E),await P.invalidateQueries({queryKey:["template",E]}),await P.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlow] Caché invalidado exitosamente"),E===(b==null?void 0:b.id)&&v(De)}catch(ne){console.error("❌ onEdgesDelete - Error al actualizar template layout:",ne)}},[r,b,h,g,v,$]),q=w.useCallback(async C=>!C.nodes.some(R=>R.type==="start"||R.id===Ne.START_NODE_ID),[]),U=w.useCallback((C,E,R)=>{var k,T,G;const N=r.find(J=>J.id===E.id);if(!N)return;if(N.type==="group"&&((k=N.data)!=null&&k.isExpanded)){c(J=>J.map(ee=>{if(ee.hidden&&ee.target===E.id){const{hidden:le,...V}=ee;return V}return ee}));return}let _;if(N.type==="group"?_=b==null?void 0:b.id:(G=(T=E==null?void 0:E.data)==null?void 0:T.plantilla)!=null&&G.id&&(_=E.data.plantilla.id),!_)return;const z=i.map(J=>{var V,se,ce,ge,ne;if(wt(J))return J;const ee=r.find(de=>de.id===J.source),le=r.find(de=>de.id===J.target);if(ee&&le){const de=ee.type==="group"&&((V=ee.data)==null?void 0:V.isExpanded),me=le.type==="group"&&((se=le.data)==null?void 0:se.isExpanded),xe=(ce=ee.data)==null?void 0:ce.isInternal,we=(ge=le.data)==null?void 0:ge.isInternal,be=(ne=J.data)==null?void 0:ne.redirectedToInternal;if(de||me||xe||we||be)return J;if(ee.id===E.id||le.id===E.id||p(ee,le,Ne.MAGNETIC_CONNECTION_DISTANCE)){const De=x(ee,le);if(De!=null&&De.handle1&&(De!=null&&De.handle2))return{...J,sourceHandle:De.handle1,targetHandle:De.handle2}}}return J});if(JSON.stringify(i)!==JSON.stringify(z))c(z),setTimeout(()=>{const J=m();f(_,J)},100);else{const J=m();f(_,J)}},[r,i,b,f,m,c,x,p]),Q=w.useCallback(C=>{s(C);const E=Pr(C);if(E.length>0){const R=E.filter(N=>{var z;const _=r.find(k=>k.id===N);return(_==null?void 0:_.type)==="group"&&((z=_==null?void 0:_.data)==null?void 0:z.isExpanded)});if(R.length>0){c(N=>N.map(_=>{var T;const z=R.includes(_.target),k=!((T=_.data)!=null&&T.redirectedToInternal);return z&&k?{..._,hidden:!0}:_}));return}u(!0),setTimeout(()=>{const N=i.map(z=>{var G,J,ee,le;if(wt(z))return{...z};const k=r.find(V=>V.id===z.source),T=r.find(V=>V.id===z.target);if(k&&T){const V=k.type==="group"&&((G=k.data)==null?void 0:G.isExpanded),se=T.type==="group"&&((J=T.data)==null?void 0:J.isExpanded),ce=(ee=k.data)==null?void 0:ee.isInternal,ge=(le=T.data)==null?void 0:le.isInternal;if(V||se||ce||ge)return{...z};if(p(k,T,Ne.MAGNETIC_CONNECTION_DISTANCE)){const ne=x(k,T);if(ne!=null&&ne.handle1&&(ne!=null&&ne.handle2)&&(z.sourceHandle!==ne.handle1||z.targetHandle!==ne.handle2))return{...z,sourceHandle:ne.handle1,targetHandle:ne.handle2}}}return{...z}});if(i.some((z,k)=>{const T=N[k];return z.sourceHandle!==T.sourceHandle||z.targetHandle!==T.targetHandle})){const z=N.map(k=>({...k,id:k.id}));c(z)}setTimeout(()=>{u(!1)},200)},0)}},[s,i,r,c,x,p,u]);return{nodes:r,edges:i,newNodePopup:B,connectionPopup:H,setNodes:n,setEdges:c,onEdgesChange:d,onConnect:ae,onConnectEnd:Y,onDeleteNode:oe,onEdgesDelete:te,onBeforeDelete:q,handleNodesChange:Q,onDragEnd:U,getParentNodeInfo:X,isProtectedConnection:wt,isStartNode:Ge,createNodeFromPopup:F,updateNodeFromPopup:M,closeNewNodePopup:y,createConnectionFromPopup:S,closeConnectionPopup:K}},$r=({isOpen:t,onClose:a,createConnectionFromPopup:r,availableConnections:n})=>{if(!t)return null;const s=n||{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}},i=(o,d)=>{(o==="tarea"?s.tarea[d]:s.plantilla[d])&&r(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-default ui-border-1 tw-relative tw-rounded-lg tw-bg-white tw-p-4",children:e.jsx("div",{children:e.jsxs(A.List,{children:[e.jsx("p",{className:"ui-text-sm tw-px-4 tw-font-medium tw-text-neutral-300",children:"Tarea"}),e.jsxs(A.ListItem,{icon:pe.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("tarea","dependiente"),children:["Dependiente ",!s.tarea.dependiente&&"(No disponible)"]}),e.jsxs(A.ListItem,{icon:pe.faArrowDownRight,iconColor:"neutral",onClick:()=>i("tarea","hija"),children:["Hija ",!s.tarea.hija&&"(No disponible)"]}),e.jsx(A.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(A.ListItem,{icon:pe.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("plantilla","dependiente"),children:["Dependiente ",!s.plantilla.dependiente&&"(No disponible)"]})]})})})]})})},zr=({data:t,id:a,selected:r})=>{const{expandedGroups:n}=Te(),[s,i]=w.useState(!1),o=w.useRef(!1);w.useEffect(()=>{const m=(t==null?void 0:t.needsReExpansion)&&n.has(a),x=(t==null?void 0:t.templateId)||(t==null?void 0:t.id);if(m&&x&&!o.current){o.current=!0;const f=Te.getState().expandGroup;f&&f(a,x).catch(h=>{console.error("Error al re-expandir grupo:",h),o.current=!1})}n.has(a)||(o.current=!1)},[t,a,n]);const d=async m=>{m.preventDefault(),m.stopPropagation();const x=(t==null?void 0:t.templateId)||(t==null?void 0:t.id);if(x){i(!0);try{const p=Te.getState(),f=p.expandGroup,h=p.collapseGroup,g=n.has(a);g&&h?h(a):!g&&f&&await f(a,x)}catch{}finally{i(!1)}}},l=n.has(a),u=t==null?void 0:t.expandedDimensions,c=l&&u?{width:u.width,height:u.height,minWidth:u.width,minHeight:u.height}:{minWidth:268,minHeight:80};return e.jsxs("div",{className:`tw-rounded-lg tw-relative tw-transition-all tw-duration-200 ${r?"tw-bg-white tw-border-[1px] 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:c,children:[e.jsx(st,{isLoading:s}),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:"ui-flex ui-justify-between ui-gap-x-8 ui-p-16",children:[e.jsx(A.Icon,{name:pe.faChartDiagram,color:"brand",size:"lg"}),e.jsxs("div",{className:"ui-flex ui-flex-col ui-gap-y-4",children:[e.jsx("p",{className:"ui-text-primary ui-font-bold tw-leading-none ui-text-body-lg-regular tw-truncate tw-tracking-wider",children:t.clave||t.nombre_plantilla||"N/A"}),e.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-4",children:[e.jsx(A.Badge,{size:"sm",theme:"soft",color:t.estatus==="published"?"success":"warning",label:t.estatus==="published"?"Publicado":"Borrador"}),t.updatedAt&&e.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-semibold",children:new Date(t.updatedAt).toLocaleDateString("es-ES")})]})]}),e.jsx("div",{children:e.jsx(A.Button,{size:"sm",color:"secondary",pill:"pill",onClick:d,disabled:s,className:`tw-p-2 ${s?"tw-opacity-50":""} nopan nodrag`,icon:l?Me.faCompress:Me.faExpand})})]})]})},Ur=(t,a,r,n)=>{const s=w.useRef(t),i=w.useRef(a);w.useEffect(()=>{s.current=t},[t]),w.useEffect(()=>{i.current=a},[a]);const{expandedGroups:o,groupTemplateData:d,toggleGroupExpansion:l,setGroupTemplateData:u,clearGroupTemplateData:c}=Te(),m=ue.useQueryClient(),{getTemplateWithTasks:x}=Sa(),{hydrateTasks:p}=Pa(),f=w.useCallback(async(v,P)=>{var $,B,H,I;try{await m.invalidateQueries({queryKey:["template",P]});const D=await x(P),y=(H=(B=($=D==null?void 0:D.graph_layout)==null?void 0:$.snapshot)==null?void 0:B.nodes)==null?void 0:H.filter(T=>{var G,J;return((G=T.data)==null?void 0:G.isInternal)||T.parentId||((J=T.id)==null?void 0:J.includes("-internal-"))});if(y&&y.length>0&&console.warn("⚠️ [expandGroup] Nodos sospechosos en API para plantilla",P,":",y),!((I=D==null?void 0:D.graph_layout)!=null&&I.snapshot))throw new Error(`No se encontraron datos de graph_layout en la plantilla: ${P}`);const L=D.graph_layout.snapshot.nodes||[],K=L.filter(T=>{var V,se;const G=(V=T.data)==null?void 0:V.isInternal,J=!!T.parentId,ee=(se=T.id)==null?void 0:se.includes("-internal-"),le=G||J||ee;return le&&console.warn("🗑️ [expandGroup] Filtrando nodo corrupto:",{id:T.id,type:T.type,esInterno:G,tieneParentId:J,tieneInternalEnId:ee}),!le}),X={...D,graph_layout:{...D.graph_layout,snapshot:{...D.graph_layout.snapshot,nodes:K,edges:(D.graph_layout.snapshot.edges||[]).filter(T=>{var G,J;return!((G=T.data)!=null&&G.isInternal)&&!((J=T.id)!=null&&J.includes("-internal-"))})}}},j=L.length-K.length;j>0?console.warn(`⚠️ [expandGroup] Se filtraron ${j} nodos internos corruptos de la BD para plantilla ${P}`):console.log(`✅ [expandGroup] No se encontraron nodos corruptos en plantilla ${P}`);const F=await p(X),S={...X,hydratedNodes:F,nodes:F||X.graph_layout.snapshot.nodes||[],edges:X.graph_layout.snapshot.edges||[]},M=S.nodes,O=S.edges;if(!M||!O){console.error("❌ No se encontraron nodos o edges en la plantilla:",P);return}u(v,{nodes:M,edges:O,viewport:S.graph_layout.snapshot.viewport||{x:0,y:0,zoom:1}});const W=s.current.find(T=>T.id===v);if(!W){console.error("❌ No se encontró el nodo grupo:",v);return}const ae=M.filter(T=>T.id!==v);let Y=1/0,oe=1/0,te=-1/0,q=-1/0;ae.forEach(T=>{var ne,de,me,xe,we,be;const G=((ne=T.position)==null?void 0:ne.x)||0,J=((de=T.position)==null?void 0:de.y)||0,ee=typeof((me=T.style)==null?void 0:me.width)=="number"?T.style.width:((xe=T.measured)==null?void 0:xe.width)||268,le=typeof((we=T.style)==null?void 0:we.height)=="number"?T.style.height:((be=T.measured)==null?void 0:be.height)||111,V=G-ee/2,se=G+ee/2,ce=J,ge=J+le;Y=Math.min(Y,V),oe=Math.min(oe,ce),te=Math.max(te,se),q=Math.max(q,ge)});const U=80,Q=60,C=te-Y,E=q-oe,R=C+U*2,N=E+U*2+Q,_=M.map((T,G)=>{var ne,de;if(T.id===v)return null;const J=((ne=T.position)==null?void 0:ne.x)||0,ee=((de=T.position)==null?void 0:de.y)||0,le=J-Y+U,V=ee-oe+U+Q,se=T.type==="start"||T.id==="start",ce=se?{...T.data,estatus:W.data.estatus,updatedAt:W.data.updatedAt,createdAt:W.data.createdAt,isInternal:!0,originalGroupId:v,originalNodeId:T.id}:{...T.data,isInternal:!0,originalGroupId:v,originalNodeId:T.id};return{...T,id:`${v}-internal-${T.id}`,parentId:v,extent:"parent",type:T.type==="group"?"main":T.type,position:{x:le,y:V},style:{...T.style},data:ce,draggable:!1,selectable:se,selected:!1,deletable:!1,connectable:!1,focusable:se,zIndex:999}}).filter(Boolean),z=O.map(T=>{const G=_.some(le=>le&&le.id===`${v}-internal-${T.source}`),J=_.some(le=>le&&le.id===`${v}-internal-${T.target}`);return!G||!J?null:{...T,id:`${v}-internal-${T.id}`,source:`${v}-internal-${T.source}`,target:`${v}-internal-${T.target}`,style:{...T.style},data:{...T.data,isInternal:!0,originalGroupId:v}}}).filter(Boolean),k=_.find(T=>{var G;return T&&((G=T.data)==null?void 0:G.originalNodeId)==="start"});k&&n(T=>T.map(G=>G.target===v?{...G,target:k.id,targetHandle:"top-target",data:{...G.data,redirectedToInternal:!0,originalTarget:v,originalTargetHandle:G.targetHandle}}:G)),l(v),r(T=>[...T.map(J=>{if(J.id===v){const{needsReExpansion:ee,...le}=J.data||{};return{...J,style:{...J.style,width:R,height:N},data:{...le,isExpanded:!0,expandedDimensions:{width:R,height:N}},zIndex:1e3}}return J}),..._]),n(T=>[...T,...z])}catch(D){console.error("❌ Error al expandir el grupo:",D)}},[m,x,p,u,l,r,n]),h=w.useCallback(v=>{var y,L;const P=s.current,$=i.current,B=P.find(K=>K.id===v),H=((y=B==null?void 0:B.data)==null?void 0:y.templateId)||((L=B==null?void 0:B.data)==null?void 0:L.id),I=P.filter(K=>!K.id.startsWith(`${v}-internal-`)&&K.parentId!==v).map(K=>K.id===v?{...K,style:{...K.style,width:void 0,height:void 0},data:{...K.data,isExpanded:!1,expandedDimensions:void 0},zIndex:void 0}:K),D=$.filter(K=>!K.id.startsWith(`${v}-internal-`)).map(K=>{var X,j;if((X=K.data)!=null&&X.redirectedToInternal&&((j=K.data)==null?void 0:j.originalTarget)===v){const{redirectedToInternal:F,originalTarget:S,originalTargetHandle:M,...O}=K.data;return{...K,target:v,targetHandle:M||K.targetHandle,data:O}}return K});r(I),n(D),l(v),c(v),H&&m.invalidateQueries({queryKey:["template",H]})},[r,n,l,c,m]),g=w.useCallback(async(v,P)=>{o.has(v)?h(v):await f(v,P)},[o,f,h]),b=w.useCallback(v=>o.has(v),[o]);return{expandGroup:f,collapseGroup:h,toggleGroup:g,isGroupExpanded:b,groupTemplateData:d}},Hr=()=>{const{getNodes:t,setNodes:a,screenToFlowPosition:r,setCenter:n}=re.useReactFlow(),{copiedNodes:s,setCopiedNodes:i,getViewMode:o}=Te(),{activeTemplate:d,setActiveTemplate:l}=Re(),{updateGraphLayout:u,get:c,update:m}=Be(),x=d!=null&&d.id?o(d.id):"readonly",p=w.useCallback(()=>`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,[]),f=w.useCallback(()=>t().filter(I=>I.selected).filter(I=>!(I.type==="start"||I.id==="start"||I.type==="group")),[t]),h=w.useCallback(()=>{if(x==="readonly"){A.toast.error("No puedes copiar tareas en modo solo lectura");return}if(!d){A.toast.error("No hay una plantilla activa");return}const $=f();if($.length===0){const H=t().filter(I=>I.selected);if(H.length>0){const I=H.some(y=>y.type==="group"),D=H.some(y=>y.type==="start"||y.id==="start");I?A.toast.error("Las plantillas conectadas no pueden ser copiadas"):D&&A.toast.error("El nodo de inicio no puede ser copiado")}else A.toast.error("No hay tareas seleccionadas para copiar");return}const B=$.map(H=>{const{selected:I,...D}=H;return{...D,data:{...D.data,_originalTemplateId:d.id}}});i(B),A.toast.success(`${$.length} ${$.length===1?"tarea copiada":"tareas copiadas"} con éxito`)},[x,d,f,t,i]),g=w.useCallback(async $=>{if(x==="readonly"){A.toast.error("No puedes pegar tareas en modo solo lectura");return}if(!d){A.toast.error("No hay una plantilla activa");return}if(s.length===0){A.toast.error("No hay tareas copiadas para pegar");return}const B=t();let H={x:0,y:0};if($)H=r({x:$.x,y:$.y});else if(B.length>0){const j=B.reduce((S,M)=>S+M.position.x,0)/B.length,F=B.reduce((S,M)=>S+M.position.y,0)/B.length;H={x:j+50,y:F+100}}const I=s[0],D=H.x-I.position.x,y=H.y-I.position.y,L=s.map((j,F)=>{const S=p(),M=-(Date.now()+F),O=j.data.plantilla&&typeof j.data.plantilla=="object"?{...j.data.plantilla,id:d.id}:{id:d.id},{id:W,...ae}=j.data,Y={...ae,id:M,reference_graph:S,plantilla:O,parent:{data:{id:null}},_originalTemplateId:void 0};return{...j,id:S,position:{x:j.position.x+D,y:j.position.y+y},data:Y,selected:!0}}),X=[...B.map(j=>({...j,selected:!1})),...L];if(a(X),d.id)try{const j=await c(d.id);if(!j)return;const F=L.filter(M=>M.type!=="start"&&M.type!=="group").map(M=>{const O=M.data;return{id:O.id,reference_graph:M.id,nombre:O.nombre||O.texto_corto||"Tarea sin nombre",texto_corto:O.texto_corto||"",texto_largo:O.texto_largo||"",prioridad:O.prioridad??0,nivel_dificultad:O.nivel_dificultad??0,dias_duracion:O.dias_duracion??0,plantilla:{id:d.id},parent:{data:{id:null}},tareas:[],plantilla_dependents:O.plantilla_dependents||[],start:O.start||!1,es_grupo:O.es_grupo||!1,optional:O.optional||!1,subtask_completadas:O.subtask_completadas||0,subtask_totales:O.subtask_totales||0}}),S={...j,tarea_plantillas:[...j.tarea_plantillas,...F],estatus:"dirty",updatedAt:new Date().toISOString()};await m(d.id,S),l(S),setTimeout(async()=>{await u(d.id,{nodes:X,edges:[]})},50)}catch(j){console.error("Error al actualizar template en IndexedDB:",j)}if(L.length>0){const j=L.reduce((S,M)=>S+M.position.x,0)/L.length,F=L.reduce((S,M)=>S+M.position.y,0)/L.length;n(j,F,{zoom:1,duration:800})}A.toast.success(`${L.length} ${L.length===1?"tarea pegada":"tareas pegadas"} con éxito`)},[x,d,s,t,a,r,n,p,u,c,m,l]),b=w.useCallback(()=>s.length>0,[s]),P=f().length>0;return{handleCopy:h,handlePaste:g,hasCopiedNodes:b,hasSelectableNodes:P,copiedNodesCount:s.length}},Wr={main:Fr,plus:kr,start:Lr,group:zr},Kr=[.5,0],Gr=({initialNodes:t,initialEdges:a,debugEvents:r=!1})=>{const n=w.useRef(null),{nodes:s,edges:i,onEdgesChange:o,onConnect:d,onConnectEnd:l,onBeforeDelete:u,onDeleteNode:c,onEdgesDelete:m,handleNodesChange:x,newNodePopup:p,getParentNodeInfo:f,createNodeFromPopup:h,closeNewNodePopup:g,connectionPopup:b,createConnectionFromPopup:v,closeConnectionPopup:P,onDragEnd:$,setNodes:B,setEdges:H}=Br({initialNodes:t,initialEdges:a}),{expandGroup:I,collapseGroup:D}=Ur(s,i,B,H),{handleCopy:y,handlePaste:L,hasCopiedNodes:K,copiedNodesCount:X}=Hr();w.useEffect(()=>{if(!r)return;const ne=we=>{console.log("🔍 [DEBUG] KeyDown:",{key:we.key,code:we.code,shiftKey:we.shiftKey,ctrlKey:we.ctrlKey,metaKey:we.metaKey,altKey:we.altKey,target:we.target,defaultPrevented:we.defaultPrevented,bubbles:we.bubbles,timestamp:new Date().toISOString()})},de=we=>{console.log("🔍 [DEBUG] KeyUp:",{key:we.key,code:we.code,shiftKey:we.shiftKey,timestamp:new Date().toISOString()})},me=we=>{var be,Ae;console.log("🔍 [DEBUG] Click:",{button:we.button,shiftKey:we.shiftKey,ctrlKey:we.ctrlKey,metaKey:we.metaKey,altKey:we.altKey,target:(be=we.target)==null?void 0:be.tagName,targetClass:(Ae=we.target)==null?void 0:Ae.className,defaultPrevented:we.defaultPrevented,bubbles:we.bubbles,timestamp:new Date().toISOString()})},xe=we=>{console.log("🔍 [DEBUG] MouseDown:",{button:we.button,shiftKey:we.shiftKey,ctrlKey:we.ctrlKey,metaKey:we.metaKey,defaultPrevented:we.defaultPrevented,timestamp:new Date().toISOString()})};return document.addEventListener("keydown",ne,!0),document.addEventListener("keyup",de,!0),document.addEventListener("click",me,!0),document.addEventListener("mousedown",xe,!0),console.log("🔍 [DEBUG] Event listeners activados. Presiona Shift + Click en un nodo para ver los eventos."),()=>{document.removeEventListener("keydown",ne,!0),document.removeEventListener("keyup",de,!0),document.removeEventListener("click",me,!0),document.removeEventListener("mousedown",xe,!0),console.log("🔍 [DEBUG] Event listeners desactivados.")}},[r]);const F=s.filter(ne=>!(!ne.selected||ne.type==="start"||ne.id==="start"||ne.type==="group")).length,S=F>0,M=w.useRef(I),O=w.useRef(D);w.useEffect(()=>{M.current=I,O.current=D},[I,D]),w.useEffect(()=>{const ne=async(me,xe)=>{M.current&&await M.current(me,xe)},de=me=>{O.current&&O.current(me)};Te.setState({expandGroup:ne,collapseGroup:de})},[]);const{zoomPercentage:W,handleZoomIn:ae,handleZoomOut:Y,handleZoomTo100:oe,handleDoubleClick:te}=qr({reactFlowWrapper:n,nodes:s}),{getViewMode:q}=Te(),{activeTemplate:U}=Re(),C=(U!=null&&U.id?q(U.id):"readonly")==="readonly";w.useEffect(()=>{if(C)return;const ne=de=>{const me=de.target;me.tagName==="INPUT"||me.tagName==="TEXTAREA"||me.isContentEditable||((de.ctrlKey||de.metaKey)&&de.key==="c"&&(de.preventDefault(),y()),(de.ctrlKey||de.metaKey)&&de.key==="v"&&(de.preventDefault(),L()))};return document.addEventListener("keydown",ne),()=>{document.removeEventListener("keydown",ne)}},[y,L,C]);const E=w.useCallback((ne,de)=>{const me=ne.target;me.tagName==="BUTTON"||me.closest("button")||me.closest('[role="button"]')||me.classList.contains("nopan")||me.classList.contains("nodrag")},[]),R=w.useCallback(ne=>{const de=ne.filter(me=>{var xe,we;if(me.type==="position"&&me.dragging===!1){const be=s.find(Ae=>Ae.id===me.id);if(be&&me.position){const Ae=Math.abs((me.position.x||0)-(((xe=be.position)==null?void 0:xe.x)||0)),De=Math.abs((me.position.y||0)-(((we=be.position)==null?void 0:we.y)||0));if(Ae<3&&De<3)return!1}}return!0});de.length>0&&x(de)},[x,s]),N=C?void 0:o,_=C?void 0:R,z=C?void 0:d,k=C?void 0:l,T=C?void 0:u,G=C?void 0:$,J=C?void 0:c,ee=C?void 0:m,le=C?null:["Backspace","Delete"],ce=C?{nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!0,edgesFocusable:!1,nodesFocusable:!1,draggable:!1,connectOnClick:!1}:{nodesDraggable:!0,nodesConnectable:!0,elementsSelectable:!0,edgesFocusable:!0,nodesFocusable:!0,draggable:!1,connectOnClick:!0,elevateNodesOnSelect:!0},ge=()=>{if(b)return{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}}};return e.jsxs("div",{className:"wrapper",ref:n,style:{width:"100%",height:"100vh"},children:[e.jsxs(re.ReactFlow,{nodes:s,edges:i,nodeTypes:Wr,onEdgesChange:N,onNodesChange:_,onConnect:z,onConnectEnd:k,onBeforeDelete:T,onNodeDragStop:G,onNodesDelete:J,onEdgesDelete:ee,onNodeClick:E,...ce,fitView:!0,fitViewOptions:{padding:2},nodeOrigin:Kr,defaultEdgeOptions:{type:"smoothstep"},connectionLineType:re.ConnectionLineType.SmoothStep,deleteKeyCode:le,multiSelectionKeyCode:C?null:"Shift",selectionOnDrag:!1,panOnDrag:C?!0:[0],nodeClickDistance:15,selectNodesOnDrag:!1,nodeDragThreshold:10,autoPanOnNodeDrag:!1,autoPanOnConnect:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",children:[e.jsx(re.Background,{}),!C&&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:[U.estatusFromStrapi===Ie.PUBLISHED&&e.jsx(A.Tag,{color:"success",label:"Publicado"}),U.estatusFromStrapi===Ie.DRAFT&&e.jsx(A.Tag,{color:"warning",label:"Borrador"})]}),!C&&F>0&&e.jsxs("p",{className:"tw-text-blue-dark-500 ui-text-xs tw-font-medium",children:[F," ",F===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-4",children:[!C&&e.jsxs(A.ButtonGroup,{children:[e.jsxs(A.Button,{leftSlot:pe.faCopy,onClick:y,disabled:!S,size:"xxs",color:S?"primary":"secondary",title:S?`Copiar ${F} ${F===1?"tarea":"tareas"} (Ctrl+C)`:"Selecciona tareas para copiar (mantén Shift y haz clic)",children:["Copiar ",F>0&&`(${F})`]}),e.jsxs(A.Button,{leftSlot:pe.faFile,size:"xxs",onClick:()=>L(),disabled:!K(),color:K()?"primary":"secondary",title:K()?`Pegar ${X} ${X===1?"tarea":"tareas"} (Ctrl+V)`:"No hay tareas copiadas",children:["Pegar ",X>0&&`(${X})`]})]}),e.jsxs(A.ButtonGroup,{color:"secondary",size:"xxs",children:[e.jsx(A.Button,{icon:pe.faMinus,onClick:Y,color:"secondary"}),e.jsxs(A.Button,{onClick:oe,onDoubleClick:te,color:"secondary",children:[W,"%"]}),e.jsx(A.Button,{icon:pe.faPlus,onClick:ae})]})]})})]}),p&&e.jsx(Mr,{isOpen:p.isOpen,position:p.position,onClose:g,createNodeFromPopup:h,parentNodeInfo:f()}),b&&e.jsx($r,{isOpen:b.isOpen,onClose:P,createConnectionFromPopup:v,availableConnections:ge()})]})},Qr=({initialNodes:t,initialEdges:a,debugEvents:r})=>e.jsx(re.ReactFlowProvider,{children:e.jsx(Gr,{initialNodes:t,initialEdges:a,debugEvents:r})}),et=ze.create(t=>({step:1,setStep:a=>t({step:a}),reset:()=>t({step:1})})),Vr=({limit:t})=>{const a=et(o=>o.step),r=et(o=>o.setStep),n=w.useCallback(()=>{a<t&&r(a+1)},[a,r,t]),s=w.useCallback(()=>{a>1&&a<=t&&r(a-1)},[a,r,t]),i=w.useCallback(o=>{o>0&&o<=t&&r(o)},[r,t]);return w.useMemo(()=>({step:a,nextStep:n,prevStep:s,onStepChange:i}),[a,n,s,i])},Xt=["fase_plantilla","tipo_plantilla","categoria","tipo_medio","medio_especifico","pertenencia_medio","ubicacion_medio","responsable_impresion"],Yt=["fase_plantilla","modo_configuracion","tipo_medio","formato_salida"],Jt=["tipo_medio","formato_salida","medio_especifico"],Zt={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"]}}},ea={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 Ft(t){const[a,r]=w.useState([]),[n,s]=w.useState({}),{setClaveParams:i,templateFormData:o,setTemplateFormData:d,resetTemplateFormData:l,setDisableField:u,setClave:c,claveParams:m,setParamTipo:x}=Fe(),{tasks_api:p}=fe(),f=et(q=>q.step),{data:h,error:g,isSuccess:b,isError:v}=ue.useQuery({queryKey:["paramsTipoPlantilla"],queryFn:async()=>{const q=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}),U=await p.get(`/api/params-tipos?${q}`);return U.data?{paramsTiposPlantilla:he(U.data.data)}:{paramsTiposPlantilla:[]}},refetchOnWindowFocus:!1});w.useEffect(()=>{g&&v&&console.log(g)},[g,v]),w.useEffect(()=>{if(h&&b){const q=h.paramsTiposPlantilla;r(q)}},[h,b]);const P={fase_plantilla:(q,U)=>{d({fase_plantilla:q}),x({fase_plantilla:U})},tipo_plantilla:(q,U)=>{d({tipo_plantilla:q}),x({tipo_plantilla:U})},modo_configuracion:(q,U)=>{d({modo_configuracion:q}),x({modo_configuracion:U})},categoria:(q,U)=>{d({categoria:q}),x({categoria:U})},formato_salida:(q,U)=>{d({formato_salida:q}),x({formato_salida:U})},tipo_medio:(q,U)=>{d({tipo_medio:q}),x({tipo_medio:U})},medio_especifico:(q,U)=>{d({medio_especifico:q}),x({medio_especifico:U})},responsable_impresion:(q,U)=>{d({responsable_impresion:q}),x({responsable_impresion:U})},pertenencia_medio:(q,U)=>{d({pertenencia_medio:q}),x({pertenencia_medio:U})},ubicacion_medio:(q,U)=>{d({ubicacion_medio:q}),x({ubicacion_medio:U})}},$={fase_plantilla:(q,U)=>i({field:q,value:U}),tipo_plantilla:(q,U)=>i({field:q,value:U}),categoria:(q,U)=>i({field:q,value:U}),tipo_medio:(q,U)=>i({field:q,value:U}),medio_especifico:(q,U)=>i({field:q,value:U}),responsable_impresion:(q,U)=>i({field:q,value:U}),pertenencia_medio:(q,U)=>i({field:q,value:U}),ubicacion_medio:(q,U)=>i({field:q,value:U})},B={Digital:{execute:()=>{const q=a.filter(C=>C.step===3).find(C=>C.key==="responsable_impresion").params_plantillas.find(C=>C.name==="N/A").id,U="step3.responsable_impresion",Q=["responsable_impresion"];d({responsable_impresion:"N/A"}),t(U,q),u({fields:Q,value:!0}),i({field:"responsable_impresion",value:"NA"})}},Impreso:{execute:()=>{const q="step3.responsable_impresion",U=["responsable_impresion"];d({responsable_impresion:""}),t(q,""),u({fields:U,value:!1}),i({field:"responsable_impresion",value:""})}}},H={"Sitios Fijos":{execute:()=>X()},"Vallas Móviles":{execute:()=>j()},Indoors:{execute:()=>X()},Camiones:{execute:()=>F()},"Brand Riders":{execute:()=>F()}},I={"Sitios Fijos":{execute:()=>K()},"Vallas Móviles":{execute:()=>K()},Indoors:{execute:()=>K()},Camiones:{execute:()=>{L(),B.Impreso.execute()}},"Brand Riders":{execute:()=>{L(),B.Impreso.execute()}}},D={"Sitios Fijos":{execute:()=>y()},"Vallas Móviles":{execute:()=>L()},Indoors:{execute:()=>y()},Camiones:{execute:()=>L()},"Brand Riders":{execute:()=>L()}},y=()=>{const q=["medio_especifico"],U=o.modo_configuracion,Q=`step${f}.medio_especifico`,C=`step${f}.formato_salida`;u({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0}),u(U==="Default"?{fields:q,value:!0}:{fields:q,value:!1}),d({medio_especifico:""}),d({formato_salida:""}),t(Q,""),t(C,""),i({field:"medio_especifico",value:""}),i({field:"formato_salida",value:""})},L=()=>{const q=a.filter(R=>R.step===f).find(R=>R.key==="formato_salida").params_plantillas.find(R=>R.name==="Impreso").id;u({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0});const Q=`step${f}.formato_salida`,C=["formato_salida","medio_especifico"],E=`step${f}.medio_especifico`;d({medio_especifico:""}),d({formato_salida:"Impreso"}),t(Q,q),t(E,""),i({field:"medio_especifico",value:""}),i({field:"tipo_medio",value:o.tipo_medio}),u({fields:C,value:!0})},K=()=>{const q=["formato_salida"],U=`step${f}.formato_salida`,Q={};Q.formato_salida="",d(Q),t(U,""),u({fields:q,value:!1})},X=()=>{const q=["formato_salida","medio_especifico"],U=`step${f}.formato_salida`,Q={};Q.formato_salida="",d(Q),t(U,""),u({fields:q,value:!1})},j=()=>{const q=["formato_salida"],U=["medio_especifico"],Q=`step${f}.formato_salida`,C=`step${f}.medio_especifico`,E={};E.formato_salida="",E.medio_especifico="",d(E),t(Q,""),t(C,""),u({fields:q,value:!1}),u({fields:U,value:!0})},F=()=>{const q=a.filter(E=>E.step===f).find(E=>E.key==="formato_salida").params_plantillas.find(E=>E.name==="Impreso").id,U=`step${f}.formato_salida`,Q=`step${f}.medio_especifico`,C=["formato_salida","medio_especifico"];d({formato_salida:"Impreso"}),t(U,q),t(Q,""),u({fields:C,value:!0}),B.Impreso.execute()},S=(q,U)=>{Object.keys(Zt).includes(q)&&Zt[q][U].fieldsToClear.forEach(E=>{const R={};R[E]="",d(R),i({field:E,value:""}),t&&[...new Set(a.map(_=>_.step))].forEach(_=>{const z=`step${_}.${E}`;t(z,"")})})},M=(q,U,Q)=>q==="modo_configuracion"&&Q?ea[q][Q][U].fieldsToEnableDisable:ea[q][U].fieldsToEnableDisable,O=q=>a.filter(U=>U.step===q),W=q=>{var U;return n[q]||((U=a.find(Q=>Q.key===q))==null?void 0:U.params_plantillas)},ae=(q,U)=>{var C,E,R,N;let Q=[];q==="Sitios Fijos"?U==="Preventa"?Q=(C=a.find(_=>_.key==="medio_especifico"))==null?void 0:C.params_plantillas.filter(_=>_.tipomedio_nombre==="OOH"&&_.name==="PANTALLA DIGITAL"):U==="Venta"&&(Q=(E=a.find(_=>_.key==="medio_especifico"))==null?void 0:E.params_plantillas.filter(_=>_.tipomedio_nombre==="OOH")):q==="Indoors"?Q=(R=a.find(_=>_.key==="medio_especifico"))==null?void 0:R.params_plantillas.filter(_=>_.tipomedio_nombre==="InDoor"):Q=(N=a.find(_=>_.key==="medio_especifico"))==null?void 0:N.params_plantillas,s(_=>({..._,medio_especifico:Q}))},Y=(q,U)=>{const Q=q.key;if(Jt.includes(Q)&&Q==="tipo_medio"){const C=U.label,E=o.fase_plantilla,R=o.modo_configuracion;if(E==="Preventa"){ae(C,E);return}else if(R==="Especifico"){ae(C,E);return}}},oe=(q,U,Q)=>{const C=q.params_plantillas.find(E=>q.key==="categoria"?E.reference_id===U.value:E.id===U.value);if(C){const E=q.key,R=U.label;if(P[E](R,Q),Yt.includes(E))if(S(E,R),E==="fase_plantilla"){const N=R,_=M(E,N);u({fields:["categoria","modo_configuracion","tipo_plantilla"],value:!0}),_.length>0&&u({fields:_,value:!1}),N==="Preventa"&&u({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(E==="modo_configuracion"){const N=R,_=o.fase_plantilla,z=M(E,N,_);u({fields:["medio_especifico","formato_salida"],value:!0}),z.length>0&&u({fields:z,value:!1}),_==="Preventa"&&u({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(E==="tipo_medio"){const N=R,_=o.modo_configuracion;o.fase_plantilla==="Venta"?_==="Especifico"?H[N].execute():I[N].execute():D[N].execute()}else if(E==="formato_salida")B[R].execute();else{const N=M(E,R);N.length>0&&u({fields:N,value:!1})}if(Xt.includes(E)){let N="",_="";if(E==="formato_salida"){const z=o.modo_configuracion,k=R;_="tipo_medio",N=z==="Default"&&k==="Digital"?N="DDG":N="DRP"}else _=E,N=C.abbreviation;$[_](_,N)}Jt.includes(E)&&Y(q,U)}},te=()=>{if(o){const q=o.fase_plantilla;if(q==="Preventa"){const U=o.modo_configuracion,Q=m.fase_plantilla||"XX";let C=null;if(U==="Default")C=m.tipo_medio||"XXX";else{const R=o.tipo_medio;["Vallas Móviles","Camiones","Brand Riders"].includes(R)?C=m.tipo_medio||"XXX":C=m.medio_especifico||"XXX"}const E=`${Q}-${C}`;c(E)}if(q==="Venta"){const U=m.fase_plantilla||"XX",Q=m.tipo_plantilla||"XXX",C=m.categoria||"XX",E=m.medio_especifico||m.tipo_medio||m.modo_configuracion||"XXX",R=m.responsable_impresion||"XX",N=m.pertenencia_medio||"X",_=m.ubicacion_medio||"X",z=`${U}-${Q}-${C}-${E}-${R}-${N}-${_}`;c(z)}}};return w.useEffect(()=>{te()},[m]),{templateFields:a,getFieldsByStep:O,dropdownFunctionsUpdateClave:$,fieldsForUpdateClave:Xt,resetTemplateFormData:l,fieldsWithDisableTrigger:Yt,getFieldsToDisable:M,handleOptionSelected:oe,getFilteredOptions:W,dropdownFunctionsUpdateFormData:P}}const At=()=>{const{control:t,setValue:a}=Ce.useFormContext(),r=et(u=>u.step),{getFieldsByStep:n,handleOptionSelected:s,getFilteredOptions:i}=Ft(a),{disabledFields:o}=Fe(),d=w.useMemo(()=>n(r),[r,n]),l=u=>`El campo ${u.charAt(0).toLocaleLowerCase()+u.slice(1)} es requerido`;return d.map(u=>{const c=`step${u.step}.${u.key}`,m=u.label,p=i(u.key).map(f=>({label:f.name,value:u.key==="categoria"?f.reference_id:f.id}));return e.jsx(Ce.Controller,{name:c,control:t,rules:{required:{value:!o[u.key],message:l(m)},validate:f=>o[u.key]||f?!0:l(m)},render:({field:f,fieldState:{error:h}})=>e.jsx("div",{children:e.jsx(A.Dropdown,{label:m,value:f.value,onValueChange:g=>{f.onChange(g)},error:h==null?void 0:h.message,options:p,onOptionSelect:g=>{s(u,g,u.id)},disabled:o[u.key]||!1})})},u.id)})},Xr=()=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:e.jsx(At,{})}),Yr=()=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:e.jsx(At,{})}),Jr=()=>e.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:e.jsx(At,{})}),Zr=({step:t})=>e.jsxs("div",{className:"tw-flex tw-min-h-[27rem] tw-flex-col tw-gap-y-4",children:[t===1&&e.jsx(Xr,{}),t===2&&e.jsx(Yr,{}),t===3&&e.jsx(Jr,{})]}),en=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((r,n)=>{const s=`step${n.step}`,i=a[s];return i&&i.includes(n.key)&&(r[s]||(r[s]={}),r[s][n.key]=""),r},{})},tn=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"]},r={};return Object.keys(a).forEach(n=>{r[n]={},a[n].forEach(s=>{var o;const i=(o=t[n])==null?void 0:o[s];r[n][s]=i!==void 0?i:""})}),r},an=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 sn(t,a){const{clave:r,paramsTipo:n,currentTemplateForEdit:s,isEditTemplate:i,setDisableField:o,setClaveParams:d,isDuplicateTemplate:l,templateFormData:u}=Fe(),{tasks_api:c}=fe(),{getFieldsByStep:m,dropdownFunctionsUpdateFormData:x,templateFields:p}=Ft(),f=()=>{var H;try{const I={},D=t(),y=tn(D),{step1:L}=y,K=[];I.clave=r,L.categoria!=""&&(I.categoria=L.categoria);for(const[X,j]of Object.entries(y))for(const[F,S]of Object.entries(j)){const M={id:null,params_tipo:{id:null}};if(S!=""){const O=n[F];if(F==="categoria"){const W=p.find(Y=>Y.key==="categoria"),ae=(H=W==null?void 0:W.params_plantillas)==null?void 0:H.find(Y=>Y.reference_id===S);M.id=ae==null?void 0:ae.id}else M.id=S;M.params_tipo.id=O,K.push(M)}}return Object.keys(K).length>0&&(I.params_plantillas=K),I}catch(I){console.log(I)}},h=async H=>{var I;try{let D=null;return i?D=await c.put(`/api/plantillas/${s.id}`,{data:H}):D=await c.post("/api/plantillas",{data:H}),D.data?he(D.data):null}catch(D){throw console.error("Error en saveTemplateToStrapi:",{error:D.message,status:(I=D.response)==null?void 0:I.status}),D}},g=async H=>{var I;try{const D=Pe.stringify({filters:{plantilla:{id:H}},populate:{graph_layout:!0}},{encodeValuesOnly:!0}),y=await c.get(`/api/plantillas/plantilla-tareas-grafico?${D}`);return y.data?he(y.data.data):null}catch(D){throw console.error("Error en getTemplateWithTasks:",{error:D.message,status:(I=D.response)==null?void 0:I.status}),D}},b=async(H,I,D)=>{var y,L,K,X,j,F,S;try{const M=await g(H),O=await g(I);if(!M||!M.tarea_plantillas)return console.warn("No se encontraron tareas para duplicar en la plantilla original"),null;const W=new Map,ae=new Map;let Y=1;M.tarea_plantillas.forEach(Q=>{let C=null;Q.start?C=D:C=-(Date.now()+Y++),W.set(Q.id,C)}),(L=(y=M.graph_layout)==null?void 0:y.snapshot)!=null&&L.nodes&&M.graph_layout.snapshot.nodes.forEach(Q=>{const C=`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`;ae.set(Q.id,C)});const oe=M.tarea_plantillas.filter(Q=>!Q.start).map(Q=>{var E,R,N,_;return{id:W.get(Q.id),uuid:crypto.randomUUID(),reference_graph:Q.reference_graph,texto_corto:Q.texto_corto,texto_largo:Q.texto_largo||null,prioridad:Q.prioridad,nivel_dificultad:Q.nivel_dificultad,duracion:Q.duracion,start:Q.start,type:Q.type||"task",equipo:((E=Q.equipo)==null?void 0:E.id)||null,responsable:((R=Q.responsable)==null?void 0:R.id)||null,plantilla:{id:I,clave:M.clave,categoria:M.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:W.get((N=Q.id_t_requerida)==null?void 0:N.id)||null,ids_t_dependientes:[],tarea_padre:W.get((_=Q.tarea_padre)==null?void 0:_.id)||null,tareas:[]}});let te=null;if(M.graph_layout){const Q=O.tarea_plantillas.find(C=>C.start===!0);te={...M.graph_layout,id:(K=O.graph_layout)==null?void 0:K.id,snapshot:{...M.graph_layout.snapshot,edges:M.graph_layout.snapshot.edges.map(C=>{if(C.source==="start")return{...C,data:{...C.data,childId:oe.find(E=>E.reference_graph===C.target).id,parentId:Q.id}};{const E=oe.find(R=>R.reference_graph===C.target);return{...C,data:{...C.data,childId:E==null?void 0:E.id,parentId:(E==null?void 0:E.id_t_requerida)||(E==null?void 0:E.tarea_padre)}}}}),nodes:((j=(X=M.graph_layout.snapshot)==null?void 0:X.nodes)==null?void 0:j.map(C=>{let E={};return C.type==="start"?E={...C,data:{...C.data,tareaId:Q.id}}:E={...C,data:{tareaId:null}},E}))||[]}}}if(!te)throw console.error("Error: duplicatedGraphLayout es null, no se puede guardar"),new Error("No se pudo crear el graph_layout para la plantilla duplicada");const q={graph_layout:te,tasks:{created:oe,updated:[],deleted:[]}},U=await c.post("/api/tareas/save-tareas-grafico",{data:q});if(U.data&&U.status===200){const Q=await g(I),C=new Map;Q.tarea_plantillas.forEach(N=>C.set(N.reference_graph,N.id));let E=Q.graph_layout;return(!((F=E==null?void 0:E.snapshot)!=null&&F.nodes)||E.snapshot.nodes.length===0)&&(console.log("Graph layout vacío, reconstruyendo desde el original..."),E=te),(S=E==null?void 0:E.snapshot)!=null&&S.nodes&&(E.snapshot.nodes=E.snapshot.nodes.map(N=>{var T;const _={...N,position:N.position||{x:0,y:0}},z=_.id,k=C.get(z);if(k)return{..._,data:{..._.data,id:k,tareaId:k}};if((T=_.data)!=null&&T.tareaId){const G=Q.tarea_plantillas.find(J=>J.reference_graph===z);if(G)return{..._,data:{..._.data,id:G.id,tareaId:G.id}}}return _})),await c.put(`/api/plantillas/${I}`,{data:{graph_layout:E}}),await g(I)}return null}catch(M){throw console.error("Error al duplicar las tareas de la plantilla:",M),M}},v=async()=>{var H,I;try{let D=f();const y=await h(D);if(!y)return{success:!1,message:"No se pudo guardar el flujo de trabajo en Strapi",error:"templateData es null"};const L=Pe.stringify({filters:{id:{$eq:y.id}},populate:{tarea_plantillas:{filters:{start:{$eq:!0}}}}},{encodeValuesOnly:!0}),{data:K}=await c.get(`/api/plantillas?${L}`),j=he(K.data)[0].tarea_plantillas[0].id;if(l&&(s!=null&&s.id))try{const S=await b(s.id,y.id,j);return S?{success:!0,message:"Flujo de trabajo duplicado completamente con todas sus tareas",data:S}:{success:!0,message:"Flujo de trabajo creado, pero no se pudieron duplicar las tareas",data:await g(y.id)}}catch(S){return console.error("Error al duplicar tareas:",S),{success:!0,message:"Flujo de trabajo creado, pero hubo un error al duplicar las tareas",data:await g(y.id)}}const F=await g(y.id);return F?{success:!0,message:"Flujo de trabajo creado y sincronizado completamente",data:F}:{success:!1,message:"No se pudieron obtener los datos completos del flujo de trabajo",error:"completeData es null"}}catch(D){const y=an(((I=(H=D==null?void 0:D.response)==null?void 0:H.data)==null?void 0:I.error)||D);return console.error("Error al guardar el flujo de trabajo: ",{level:y.failureLevel,message:y.errorMessage,technicalDetails:y.technicalDetails}),{success:!1,message:y.errorMessage||"Error al guardar el flujo de trabajo",error:y.technicalDetails||D.message}}},P=()=>{const H=s==null?void 0:s.params_plantillas;if(!(H!=null&&H.length))return;let I={};[1,2,3].forEach(y=>{const L=`step${y}`;I[L]={},m(y).forEach(X=>{var F;const j=H.find(S=>S.params_tipo.key===X.key);if(j){let S=null;if(X.key==="categoria"){const M=(F=X.params_plantillas)==null?void 0:F.find(O=>O.id===j.id);S=(M==null?void 0:M.reference_id)||j.id}else S=j.id;I[L][X.key]=S}})}),a(I)},$=()=>{var I;const H=s==null?void 0:s.params_plantillas;if(H!=null&&H.length)for(const D of H){const{params_tipo:{id:y,key:L},name:K,id:X}=D,j=p.find(S=>S.key===L),F=(I=j==null?void 0:j.params_plantillas)==null?void 0:I.find(S=>S.id===X);x[L]&&x[L](K,y),F&&d({field:L,value:F.abbreviation})}},B=()=>{try{const{fase_plantilla:H,modo_configuracion:I,formato_salida:D,tipo_medio:y}=u;if(H==="Venta")o({fields:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria","tipo_medio"],value:!1}),I==="Default"?(o({fields:["tipo_medio","formato_salida"],value:!1}),o({fields:["medio_especifico"],value:!0}),["Sitios Fijos","Vallas Móviles","Indoors"].includes(y)||o({fields:["formato_salida","medio_especifico"],value:!0}),D==="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(y)&&o({fields:["formato_salida","medio_especifico"],value:!1}),["Vallas Móviles"].includes(y)&&(o({fields:["formato_salida"],value:!1}),o({fields:["medio_especifico"],value:!0})),["Camiones","Brand Riders"].includes(y)&&o({fields:["formato_salida","medio_especifico"],value:!0}),D==="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}),I=="Default"){const L=["formato_salida","medio_especifico","responsable_impresion","pertenencia_medio","ubicacion_medio"];o({fields:["tipo_medio"],value:!1}),o({fields:L,value:!0})}else["Sitios Fijos","Indoors"].includes(y)?(o({fields:["formato_salida"],value:!0}),o({fields:["medio_especifico"],value:!1})):o({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!0})}catch(H){console.error("Error al aplicar reglas de habilitar y deshabilitar campos",H)}};return w.useEffect(()=>{(i||l)&&s&&(P(),$())},[i,l,s]),w.useEffect(()=>{(i||l)&&u&&B()},[i,u,l]),{savePlantilla:v,getTemplateWithTasks:g}}const rn=()=>{const{watch:t,getValues:a}=Ce.useFormContext(),{templateFormData:r,isDuplicateTemplate:n,currentTemplateForEdit:s}=Fe(),[i,o]=w.useState(!1),d=w.useRef(null),l=w.useRef(null),u=w.useRef(!1),c=t();return w.useEffect(()=>{if(!u.current&&n&&s){const x=setTimeout(()=>{d.current=a(),l.current={...r},u.current=!0,o(!1)},500);return()=>clearTimeout(x)}},[n,s,a,r]),w.useEffect(()=>{if(d.current&&l.current&&u.current){const x=a(),p=r,f=JSON.stringify(x)!==JSON.stringify(d.current),h=JSON.stringify(p)!==JSON.stringify(l.current);o(f||h)}},[c,r,a]),{hasChanges:i,resetChanges:()=>{d.current=null,l.current=null,u.current=!1,o(!1)}}},nn=({onReset:t})=>{const{hasChanges:a,resetChanges:r}=rn(),{setHasFormChanges:n}=Fe();return w.useEffect(()=>{n(a)},[a,n]),w.useEffect(()=>{t(r)},[t,r]),null},on=({isOpen:t,onClose:a})=>{const{step:r,nextStep:n,prevStep:s,onStepChange:i}=Vr({limit:3}),o=et(E=>E.reset),{templateFields:d,resetTemplateFormData:l}=Ft(),{clave:u,resetClave:c,resetDisabledFields:m,isEditTemplate:x,setIsEditTemplate:p,refetch:f,isDuplicateTemplate:h,hasFormChanges:g,setIsDuplicateTemplate:b,setCurrentTemplateForEdit:v}=Fe(),{openTemplate:P}=Be(),[$,B]=w.useState(!1),[H,I]=w.useState(""),[D,y]=w.useState(!1),L=w.useRef(null),K=E=>{L.current=E},X=w.useMemo(()=>en(d),[d]),j=r===1,F=r===3,S=j?"Cancelar":"Atrás",M=Ce.useForm({mode:"onChange",defaultValues:X}),{trigger:O,reset:W,clearErrors:ae,getValues:Y}=M,{savePlantilla:oe}=sn(Y,W),te=w.useRef(!1);w.useEffect(()=>{t&&(o(),te.current=!1)},[t,o]),w.useEffect(()=>{t&&!x&&!h&&!te.current&&(W(X),l(),te.current=!0)},[t,x,h,W,X,l]);const q=async()=>{if(await O()){if(r===3){if(!g&&h){I("Ya existe un proceso con éstos parámetros. Modifica al menos uno para poder duplicarlo."),y(!0);return}try{B(!0);const R=await oe();if(R.success){const N=R.data;if(C(),Q(),y(!1),!x)try{await P({template:N,statusTemplate:_e.NEW})}catch(_){console.warn("La plantilla se creó exitosamente pero hubo un problema al abrirla:",_)}f()}else{const{error:N}=R;I(N),y(!0)}}catch(R){console.error("Error inesperado al guardar la plantilla:",R);return}finally{B(!1)}}n()}},U=()=>{I(""),y(!1)},Q=()=>{ae(),W(X),l(),m(),c(),U(),p(!1),b(!1),v(null),L.current&&L.current()},C=()=>{Q(),te.current=!1,a(),console.log("cerrar modal")};return $?e.jsx(st,{isLoading:$}):e.jsxs(Ce.FormProvider,{...M,children:[e.jsx(nn,{onReset:K}),e.jsx(A.Modal,{isOpen:t,closeAtCancel:!1,onSuccess:q,cancelButtonText:S,successButtonText:F?x?"Guardar":"Crear":"Continuar",onCancel:j?C:s,onClose:C,size:"sm",iconConfig:{icon:Ee.faFilePen},title:x?"Editar flujo de trabajo":"Nuevo flujo de trabajo",children:e.jsxs(A.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(A.Stepper,{currentStep:r-1,onStepChange:E=>i(E+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:u})}),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:[D&&e.jsx(A.Alert,{open:!0,color:"danger",message:H,className:"tw-mb-6",onClose:U}),e.jsx(Zr,{step:r})]})]})})]})},ln=({isOpen:t,onClose:a,replaceTemplate:r})=>e.jsx(e.Fragment,{children:e.jsx(A.Modal,{isOpen:t,closeAtCancel:!1,cancelButtonText:"Cancelar",successButtonText:"Abrir",onCancel:a,onClose:a,onSuccess:r,size:"sm",iconConfig:{icon:pe.faExclamationTriangle},title:"Límite de flujos de trabajo",children:e.jsx(A.Modal.Body,{children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full ui-p-4 ui-gap-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 ui-p-16",style:{backgroundColor:"#EBEEF9"},children:e.jsx(A.Icon,{name:pe.faExclamationTriangle,size:"lg",color:"blue"})})}),e.jsx("div",{className:"tw-text-center tw-mt-6",children:e.jsx("h2",{className:"tw-text-[24px] tw-font-bold ui-text-brand 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-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."})})]})})})}),cn=ze.create(t=>({cachedTemplate:null,canCreateTemplate:!1,setCachedTemplate:a=>t({cachedTemplate:a}),clearCachedTemplate:()=>t({cachedTemplate:null}),setCanCreateTemplate:a=>{const r=!(a<5);t({canCreateTemplate:r})}})),dn=({isOpen:t,onClose:a,discardChanges:r,saveAndExit:n})=>e.jsx("div",{children:e.jsx(A.Modal,{isOpen:t,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Guardar y salir",onCancel:a,onClose:a,onSuccess:n,size:"sm",iconConfig:{icon:pe.faExclamationTriangle},title:"Cambios sin guardar",children:e.jsx(A.Modal.Body,{children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full ui-p-4 ui-gap-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 ui-p-16",style:{backgroundColor:"#EBEEF9"},children:e.jsx(A.Icon,{name:pe.faSave,size:"lg",color:"brand"})})}),e.jsx("div",{className:"tw-flex tw-flex-col tw-mx-6",children:e.jsx(A.Alert,{open:!0,variant:"outlined",color:"danger",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 ui-text-brand",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-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(A.Button,{size:"xs",color:"secondary",onClick:()=>{r(),a()},children:"Descartar cambios"})})]})})})}),Ba=({isOpen:t,onClose:a,publishTemplate:r})=>e.jsx(A.Modal,{isOpen:t,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Confirmar",onCancel:a,onClose:a,onSuccess:r,size:"sm",iconConfig:{icon:pe.faArrowUp},title:"Publicar",children:e.jsx(A.Modal.Body,{children:e.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full tw-p-8 ui-gap-16",children:[e.jsx("div",{className:"tw-flex tw-justify-center tw-w-full",style:{minWidth:"fit-content"},children:e.jsx(A.Icon,{name:pe.faArrowUp,size:"lg",color:"blue",background:!0,padding:"lg"})}),e.jsx("div",{className:"tw-text-center",children:e.jsx("h2",{className:"tw-text-[24px] tw-font-bold 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-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."})})]})})}),un=()=>{const t="grid",a="create-edit",r=w.useRef(null),{isOpenModalLimit:n,setIsOpenModalLimit:s,setOpenModalCreateTemplate:i,openModalCreateTemplate:o,setOpenModalUnsavedChanges:d,openModalUnsavedChanges:l,openModalPublishTemplate:u,setOpenModalPublishTemplate:c,setCurrentTemplateForEdit:m,setIsDuplicateTemplate:x,setIsEditTemplate:p}=Fe(),{removeTemplateStates:f}=at(),{mode:h,setMode:g,setViewMode:b,getViewMode:v}=Te(),{setCanCreateTemplate:P,canCreateTemplate:$}=cn(),B=h===t,{screens:H,get:I,delete:D,activeTemplate:y,activateTemplate:L,reorderingTemplates:K,replaceTemplate:X,saveTemplateChanges:j,publishTemplate:F,loadingPublishTemplate:S,loadingSaveChanges:M}=Be(),O=178,[W,ae]=w.useState([]),[Y,oe]=w.useState([]),[te,q]=w.useState(null),[U,Q]=w.useState(!1),C=y!=null&&y.id?v(y.id):"readonly";w.useEffect(()=>{const V=()=>{if(!r.current)return;const ce=r.current.offsetWidth;let ge=0;const ne=[],de=[],me=10,xe=r.current.querySelector("button:not([data-screen])"),we=r.current.querySelector(".tw-mx-1");let be=0;xe&&(be+=xe.getBoundingClientRect().width),we&&H.length>0&&(be+=we.getBoundingClientRect().width,be+=me);const Ae=(ye,ke)=>{const Ye=ke?54:0,kt=(ye==null?void 0:ye.length)*8;return Math.max(80,kt+40+Ye)},De=ce-O-be;H.forEach((ye,ke)=>{const dt=!!(ye.isNew||ye.badgeLabel),rt=Ae(ye.clave,dt),nt=ke>0?me:0,Ye=rt+nt;ge+Ye<=De?(ne.push(ye),ge+=Ye):de.push(ye)}),ae(ne),oe(de)},se=()=>{const ce=H.length;P(ce)};return H.length>0&&(V(),se(),window.addEventListener("resize",V)),()=>{window.removeEventListener("resize",V)}},[H,h]);const E=V=>V.estatus===_e.DIRTY||V.estatus===_e.NEW,R=async V=>{E(V)?(q(V.id),d(!0)):await D(V.id)},N=()=>c(!0),_=async()=>{await D(te),await f(te)},z=async()=>{await j(!1)},k=async()=>{await j()},T=()=>{var se,ce;const V=(ce=(se=y==null?void 0:y.graph_layout)==null?void 0:se.snapshot)==null?void 0:ce.nodes.length;Q(()=>V-1>=1)};w.useEffect(()=>{T()},[y,C]);const G=()=>!((y==null?void 0:y.estatus)==_e.IDLE&&U&&y.estatusFromStrapi!==Ie.PUBLISHED),J=()=>{var se;const{nodes:V}=(se=y==null?void 0:y.graph_layout)==null?void 0:se.snapshot;return V==null?void 0:V.some(ce=>ce.type!=="start"&&(ce==null?void 0:ce.data.tarea_padre)===null&&(ce==null?void 0:ce.data.id_t_requerida)===null)},ee=()=>(y==null?void 0:y.estatus)===_e.IDLE||J()?!0:!U,le=async()=>{await F(y.id)};return M||S?e.jsx(st,{isLoading:M||S}):e.jsxs("div",{className:"tw-flex tw-gap-4 tw-justify-between tw-items-center tw-flex-wrap",children:[o&&e.jsx(on,{isOpen:o,onClose:()=>i(!1)}),n&&e.jsx(ln,{isOpen:n,onClose:()=>s(!1),replaceTemplate:X}),l&&e.jsx(dn,{isOpen:l,onClose:()=>d(!1),discardChanges:_,saveAndExit:k}),u&&e.jsx(Ba,{isOpen:u,onClose:()=>c(!1),publishTemplate:le}),e.jsxs("div",{className:"tw-flex tw-gap-2.5 tw-items-center tw-justify-between tw-flex-1 tw-flex-wrap",ref:r,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(A.Button,{size:"xs",color:B?"primary":"secondary",onClick:()=>g(t),children:"Listado de flujos"}),H.length>0&&e.jsx(A.Separator,{vertical:!0,className:"tw-mx-1"}),H.filter(V=>W.some(se=>se.clave===V.clave)).map(V=>{const se=(y==null?void 0:y.clave)===V.clave&&h===a;return e.jsxs(A.Button,{"data-screen":V.clave,size:"xs",onClick:async()=>{await L(V),g(a,V.id)},color:se?"primary":"secondary",leftSlot:Me.faFilePen,badgeColor:E(V)?"warning":void 0,onClickRightSlot:()=>R(V),rightSlot:Me.faXmark,children:[V.clave," ",V.status]},V.id)})]}),Y.length>0&&e.jsx(A.Popup,{absolute:!0,rightSlot:Me.faAngleDown,label:`${Y.length}+`,size:"xs",color:"secondary",children:e.jsx("div",{className:"ui-py-2 ui-gap-4",style:{minWidth:"280px"},children:e.jsx(A.List,{icon:Me.faFilePen,items:Y.map(V=>({id:V.id,label:V.clave})),className:"ui-p-8 ui-gap-4",onClick:async V=>{const se=await I(V.id);await K(se.id),await L(se),g("create-edit",se.id)}})})})]}),h===a?e.jsx("div",{className:"tw-flex tw-gap-4 tw-items-center tw-justify-end tw-flex-wrap",children:y.estatusFromStrapi!==Ie.PUBLISHED&&e.jsxs(e.Fragment,{children:[e.jsx(A.Button,{color:"secondary",size:"xs",leftSlot:Me.faArrowUp,disabled:G(),onClick:N,children:"Publicar"}),C=="readonly"&&e.jsx(A.Button,{size:"xs",color:"primary",leftSlot:Me.faEdit,onClick:()=>(y==null?void 0:y.id)&&b(y.id,"edit"),children:"Editar"}),C==="edit"&&e.jsx(A.Button,{size:"xs",color:"primary",leftSlot:Me.faSave,onClick:z,disabled:ee(),children:"Guardar"})]})}):e.jsx(A.Button,{disabled:$,tooltip:$?"Límite de 5 plantillas con cambios sin guardar. Guarda y cierra alguna para crear una nueva.":"",leftSlot:Me.faPlus,size:"xs",color:"primary",onClick:()=>{m(null),x(!1),p(!1),i(!0)},children:"Nuevo flujo"})]})},pn=({isOpen:t,onClose:a,deleteTemplate:r})=>e.jsx(A.AlertDialog,{title:"Eliminar Borrador",iconContent:pe.faBan,heading:"¿Estás seguro?",subheading:"Si eliminas este borrador, también se borrarán todas sus tareas y conexiones con otros borradores.",icon:pe.faBan,label:"Escribe 'Eliminar' para continuar",confirmationText:"Eliminar",isOpen:t,onClose:a,onConfirm:r,placeholder:""}),wn=()=>{const{viewMode:t,setRefetch:a,openModalPublishTemplate:r,setOpenModalPublishTemplate:n,currentTemplateId:s,setOpenModalDeleteTemplate:i,openModalDeleteTemplate:o}=Fe(),{publishTemplate:d,deleteTemplate:l}=Be(),{debouncedSearch:u,filters:c}=Ea("templates-container"),m=t==="list",[x,p]=w.useState(1),f=9,{data:h,isLoading:g,isFetching:b,refetch:v}=Oa({page:x,pageSize:f,search:u,filters:c});w.useEffect(()=>{a(v)},[]),w.useEffect(()=>{p(1)},[c,u]);const{users:P}=Xe(),{getImageOBP:$}=fe(),B=y=>{if(!(y!=null&&y.email))return"";const L=P==null?void 0:P[y==null?void 0:y.email];return L!=null&&L.image?$(L==null?void 0:L.image):""},H=w.useMemo(()=>{try{return!h||!P?[]:h.data.map(y=>{const L=B((y==null?void 0:y.updated_by)||(y==null?void 0:y.created_by));return{...y,updated_by:{...y.updated_by,image:L}}})}catch(y){return console.error("Error al mapear las plantillas:",y),[]}},[h,P]),I=async()=>{await d(s),await v()},D=async()=>{await l(s),await v()};return g||b?e.jsx(st,{isLoading:g||b}):e.jsxs("div",{className:"tw-flex tw-flex-col tw-justify-between tw-gap-y-4 tw-h-full",children:[e.jsx(Ba,{isOpen:r,onClose:()=>n(!1),publishTemplate:I}),e.jsx(pn,{isOpen:o,onClose:()=>i(!1),deleteTemplate:D}),e.jsx("div",{className:`tw-grid tw-gap-4 ${m?"tw-grid-cols-1":"tw-grid-cols-1 md:tw-grid-cols-2 lg:tw-grid-cols-3"}`,children:H.map(y=>e.jsx(ka,{fullWidth:m,template:y},y.id))}),e.jsx("div",{children:e.jsx(A.Pagination,{pageSize:f,pageCount:h==null?void 0:h.meta.pagination.pageCount,currentPage:x,onPageChange:y=>p(y)})})]})},$a=()=>{var o,d,l,u;const t="grid",a="create-edit",{mode:r}=Te(),n=r===t,s=r===a,i=Re(c=>c.activeTemplate);return e.jsxs("div",{className:"tw-h-full tw-flex tw-flex-col tw-gap-y-6",children:[e.jsx(un,{}),n&&e.jsx(wn,{}),s&&e.jsx(Qr,{initialNodes:((d=(o=i==null?void 0:i.graph_layout)==null?void 0:o.snapshot)==null?void 0:d.nodes)||[],initialEdges:((u=(l=i==null?void 0:i.graph_layout)==null?void 0:l.snapshot)==null?void 0:u.edges)||[]})]})},mn=()=>({header:e.jsx(lr,{}),body:e.jsx($a,{})});function fn(t){const{users:a}=Ds(),{tasks_api:r,getImageOBP:n}=fe(),s=w.useMemo(()=>a.data?a.data.map(d=>{const{image:l,id:u,name:c}=d,m=n(l);return{value:u,label:c,icon:m}}):[],[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:u}=await d.get(`/api/params-tipos?${l}`);return he(u.data).flatMap((m,x)=>{const p={id:`group-${x+1}`,label:m.label,value:`group-${x+1}`,isGroupTitle:!0},f=m.params_plantillas.map(h=>({id:h.id,label:h.name,value:h.id,checked:!1,icon:"CheckCircleOutlined",iconColor:"blue"}));return[p,...f]})},o=ue.useQuery({queryKey:["paramsPlantilla"],queryFn:()=>i(r),enabled:t==="templates-container",staleTime:1e3*60*30});return{userOptions:s,paramsPlantillasOptions:o.data||[]}}const xn={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"}},gn={createdAt:{label:"Fecha de creación",placeholder:"Selecciona una fecha...",type:"date",keyName:"createdAt"},integrantes_min:{label:"Mínimo de integrantes",type:"input",placeholder:"Ej: 1",keyName:"integrantes_min"},integrantes_max:{label:"Máximo de integrantes",type:"input",placeholder:"Ej: 10",keyName:"integrantes_max"}},hn={"templates-container":xn,"teams-container":gn,"kanban-general":null,"lista-campanias":null,"kanban-campania":null},bn=t=>({inputFilters:hn[t]||null}),yn=t=>{const{inputFilters:a}=bn(t),{userOptions:r,paramsPlantillasOptions:n}=fn(t);return{inputFilters:w.useMemo(()=>{if(a&&r.length>0&&n.length>0){const i=a;return[{...i.estatus},{...i.publication_date},{...i.propietario,options:r},{...i.created_by,options:r},{...i.updated_by,options:r},{...i.params_plantillas,options:n}]}return null},[t,a,r,n])}};function jn(){const{setFilters:t}=ct(),{refetch:a}=Fe();return{handleApplyFilters:n=>{let s={...n};s=Object.fromEntries(Object.entries(s).filter(([i,o])=>!(o===""||o===null||Array.isArray(o)&&o.length===0))),"publication_date"in s&&s.publication_date!==""&&(s={...s,publication_date:xt(s.publication_date).format("YYYY-MM-DD")}),t(s,"templates-container"),a&&a()}}}const ta="templates-container";function _n(){const{mode:t}=Te(),{inputFilters:a}=yn(ta),{handleApplyFilters:r}=jn(),{viewMode:n,setViewMode:s}=Fe();return t!=="grid"?null: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(Ca,{path:ta}),e.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-x-2.5 md:tw-flex-nowrap",children:[a&&e.jsx(A.Filters,{filters:a,onApply:r}),e.jsx(A.Button,{size:"xs",color:"secondary",colorIcon:"neutral",icon:n==="list"?Ee.faGrid2:Ee.faList,className:"tw-min-w-fit",onClick:()=>s(n==="list"?"grid":"list")})]})]})}const gt={id:null,uid:0,esEncargado:!1,idUser:{id:0,username:"",email:"",provider:"",confirmed:!1,blocked:!1,createdAt:"",updatedAt:"",nombre:""},miembros:[],miembro_padre:null,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},za="Project Manager",Ua=({open:t,handleChange:a,children:r,title:n="¿Estás seguro?",onConfirm:s,contentLabel:i="",confirmLabel:o="Aceptar",cancelLabel:d="Regresar",isLoading:l=!1})=>e.jsx(ve.Modal,{isOpen:t,onClose:()=>a(!1),onCancel:()=>a(!1),onSuccess:s,size:"xs",title:n,disableEscapeClose:!0,disableOutsideClick:!0,disableOutsideTab:!0,children:e.jsxs(ve.Modal.Body,{children:[e.jsx("h1",{className:"tw-text-lg tw-font-semibold tw-text-black-black_medium",children:i}),r&&r]})}),vn=({member:t,level:a,isUpdate:r=!1,addHandler:n,updateHandler:s,removeHandler:i,updateMemberHandler:o})=>{var X,j,F;const{users:d,isLoading:l}=Pt(),{users:u,isLoading:c}=Xe(),{getImageOBP:m}=fe(),[x,p]=w.useState(!1),[f,h]=w.useState(r?t:{...gt,miembro_padre:a>1?t:null}),[g,b]=w.useState(null),[v,P]=w.useState({id:0,nombre:"",email:""}),[$,B]=w.useState(!1);w.useEffect(()=>{var S;b(u==null?void 0:u[(S=f==null?void 0:f.idUser)==null?void 0:S.email])},[f,u]),w.useEffect(()=>{t&&h({...t,miembro_padre:a>1?t.miembro_padre:null})},[t,a]);const H=w.useMemo(()=>(d||[]).map(S=>{var W,ae;const M=u==null?void 0:u[S.email??""],O=M!=null&&M.image?m(M.image):"";return{...S,label:S.name,value:S.id,subtitle:S.email??"",avatar:((ae=(W=S.name)==null?void 0:W.slice(0,2))==null?void 0:ae.toUpperCase())??"",avatarUrl:O}}),[d,u,m]),I=()=>{p(!1),P({id:0,nombre:"",email:""})},D=({id:S,name:M,email:O})=>{const W={...f,idUser:{...f.idUser,id:S,nombre:M,email:O}};h(W),s(W),P({id:S,nombre:M,email:O})},y=async()=>{if(!v.nombre&&!v.email){I();return}try{f.id&&o({user_id:v.id,miembro_id:t.id});const S={...f,idUser:{...f.idUser,id:v.id,nombre:v.nombre,email:v.email}};h(S),s(S),b(u==null?void 0:u[v.email]),I()}catch(S){A.toast.error(S instanceof Error?S.message:"Error al actualizar el colaborador")}},L=()=>{const S={...gt,uid:new Date().getTime()+Math.floor(Math.random()*1e3),miembro_padre:t,miembros:[]};n(S)},K=()=>{i(t),B(!1)};return c||l?null:e.jsxs("div",{className:"tw-flex tw-items-baseline tw-justify-between",children:[$&&e.jsx(Ua,{open:$,handleChange:B,onConfirm:K,contentLabel:"Estás eliminando el colaborador seleccionado"}),e.jsxs("div",{className:"tw-flex tw-flex-1 tw-justify-between ui-gap-y-4 ui-mb-2",children:[e.jsxs("div",{children:[e.jsx("div",{className:"tw-flex tw-items-center tw-gap-x-6 ui-mb-2",children:(X=f==null?void 0:f.idUser)!=null&&X.email&&!x?e.jsxs(e.Fragment,{children:[e.jsx(qe,{size:"m",alt:((j=f==null?void 0:f.idUser)==null?void 0:j.nombre)??"Avatar",imageUrl:g!=null&&g.image?m(g.image):""}),e.jsx("p",{className:"ui-text-body-sm-regular ui-font-body-sm-regular ui-leading-body-sm-regular ui-tracking-body-sm",children:(F=f==null?void 0:f.idUser)==null?void 0:F.nombre})]}):e.jsx(ve.Dropdown,{placeholder:"Seleccionar colaborador",options:H,valueName:"name",idName:"id",listVariant:"user",absolute:!0,closeOnClickOutside:!0,searchable:!0,searchPlaceholder:"Buscar colaborador...",onOptionSelect:S=>{D({id:S.id,name:S.name,email:S.email})}})}),e.jsx(ve.Button,{onClick:L,leftSlot:Ee.faPlus,size:"xxs",color:"tertiary",children:"Añadir colaborador"})]}),e.jsxs("div",{className:"ui-flex ui-gap-x-4",children:[x?e.jsxs(e.Fragment,{children:[e.jsx(ve.Button,{onClick:I,icon:Ee.faXmark,size:"xs",color:"secondary",tooltip:"Cancelar"}),e.jsx(ve.Button,{onClick:y,icon:$e.faCheck,size:"xs",color:"primary",tooltip:"Guardar"})]}):e.jsx(ve.Button,{onClick:()=>p(!0),icon:Ee.faPencil,size:"xs",color:"tertiary",tooltip:"Editar"}),e.jsx(ve.Button,{onClick:()=>B(!0),icon:Ee.faTrash,size:"xs",color:"destructive",tooltip:"Eliminar"})]})]})]})},Ha=({members:t,level:a=1,isUpdate:r=!1,setData:n})=>{const s=()=>{n(i=>({...i,miembros:[...i.miembros,{...gt,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.jsx(ve.Button,{size:"xxs",color:"tertiary",leftSlot:$e.faPlus,onClick:s,children:" Agregar miembro del equipo "})}),(t==null?void 0:t.length)>0&&(t==null?void 0:t.map(i=>e.jsx(Nn,{isUpdate:r,member:i,level:a,setData:n},i.uid)))]})},Nn=({member:t,level:a,isUpdate:r=!1,setData:n})=>{const s=u=>{n(c=>{if(!u.miembro_padre)return{...c,miembros:[...c.miembros,u]};const m=x=>x==null?void 0:x.map(p=>p.uid===u.miembro_padre.uid?{...p,miembros:[...p.miembros||[],u]}:p.miembros&&p.miembros.length>0?{...p,miembros:m(p.miembros)}:p);return{...c,miembros:m(c.miembros)}})},i=u=>{n(c=>{const m=x=>x.map(p=>p.uid===u.uid?(p.miembros&&p.miembros.length>0&&p.miembros.forEach(f=>{f.miembro_padre=u}),{...u,miembros:p.miembros||[]}):p.miembros&&p.miembros.length>0?{...p,miembros:m(p.miembros)}:p);return{...c,miembros:m(c.miembros)}})},o=u=>{var m;const c=[];return u.id&&c.push(u.id),(m=u.miembros)!=null&&m.length&&u.miembros.forEach(x=>{c.push(...o(x))}),c},d=u=>{n(c=>{const m=o(u),x=f=>f.filter(h=>h.uid!==u.uid).map(h=>({...h,miembros:h.miembros?x(h.miembros):[]})),p=c.miembros_actualizar.filter(f=>!m.includes(f.miembro_id));return{...c,miembros:x(c.miembros),miembros_eliminar:[...c.miembros_eliminar,...m],miembros_actualizar:p}})},l=u=>{n(c=>c.miembros_actualizar.some(x=>x.miembro_id===u.miembro_id)?c:{...c,miembros_actualizar:[...c.miembros_actualizar,u]})};return e.jsxs("div",{"data-id":t.uid,style:{paddingLeft:a===1?0:"30px",marginTop:a===1?"15px":"0px",paddingBottom:"5px"},children:[e.jsx(vn,{isUpdate:r,level:a,member:t,addHandler:s,updateHandler:i,removeHandler:d,updateMemberHandler:l}),Array.isArray(t.miembros)&&t.miembros.length>0&&e.jsx(Ha,{isUpdate:r,members:t.miembros,level:a+1,setData:n})]},t.uid)},Tn=(t=7)=>{const a=(n,s)=>n>=s?{populate:"*"}:{miembro_padre:{fields:["id"]},idUser:{populate:"*"},miembros:{populate:a(n+1,s),filters:{idUser:{blocked:!1}}}};return{miembros:{populate:a(0,t),filters:{idUser:{blocked:!1}}}}},Cn=()=>"#"+Math.floor(Math.random()*16777215).toString(16),En=({search:t,filters:a})=>{const r={};return t!=null&&t.trim()&&(r.nombre={$containsi:t.trim()}),a!=null&&a.createdAt&&(r.createdAt={$eq:a.createdAt}),r},Sn=({items:t})=>{if(!t)return{members:[],allMembers:[]};const a={};for(const o of t)a[o.uid]=o;const r=[],n=new Set,s=o=>{const d={...o};if(d.id&&(d.uid=d.id),d.uid&&!n.has(d.uid)&&(r.push(d),n.add(d.uid)),!d.miembros)return d;const l=d.miembros.map(u=>{const c={...u};c.id&&(c.uid=c.id);const m=a[c.uid];return s(m||c)}).filter(Boolean);return{...d,miembros:l}};return{members:t.filter(o=>o.miembro_padre===null).map(s),allMembers:r}},Dn=({items:t})=>t?t.map(a=>{const r=Sn({items:a.miembros});return{...a,integrantes:r.allMembers.length,miembros:r.members,miembros_planos:r.allMembers,miembros_eliminar:[],miembros_actualizar:[]}}):[],In=async({tasks_api:t,page:a=1,pageSize:r=10,search:n="",filters:s={}})=>{const i=Pe.stringify({filters:En({search:n,filters:s}),populate:Tn(),sort:["createdAt:asc"],pagination:{page:a,pageSize:r}},{encodeValuesOnly:!0}),o=await t.get(`/api/equipos?${i}`);return o.data?{data:he(o.data.data),meta:o.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:r,pageCount:0,total:0}}}},Pn=({page:t=1,pageSize:a=10,search:r="",filters:n={}})=>{const{tasks_api:s}=fe();return ue.useQuery({queryKey:["teams",t,a,r,n],queryFn:()=>In({tasks_api:s,page:t,pageSize:a,search:r,filters:n}),staleTime:1e3*60*60*24,placeholderData:ue.keepPreviousData,select:i=>({data:Dn({items:(i==null?void 0:i.data)||[]}),meta:i==null?void 0:i.meta})})},ht=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(ht):[]}),Wa=()=>{const{tasks_api:t}=fe(),a=ue.useQueryClient(),r=async x=>{const p={...x,id:void 0,miembros:x.miembros.map(ht)};return(await t.post("/api/registrar-equipo-miembros",{data:p})).data},n=async x=>(await t.delete(`/api/equipos/${x}`)).data,s=async(x,p)=>{const f={...p,id:void 0,miembros:p.miembros.map(ht)};return(await t.patch(`/api/actualizar-equipo-miembros/${x}`,{data:f})).data},i=async(x,p,f)=>{const h=await t.put(`/api/miembros/${x}`,{data:{[p]:f}});if(!h.data)throw new Error("Error al actualizar el miembro");return h.data},{mutateAsync:o,isPending:d}=ue.useMutation({mutationFn:n,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:x=>{throw console.error("Failed to delete the team.",x),x}}),{mutateAsync:l}=ue.useMutation({mutationFn:r,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:x=>{throw console.error("Failed to update the team.",x),x},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:u}=ue.useMutation({mutationFn:x=>s(x.teamId,x.data),onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:x=>{throw console.error("Failed to update the team.",x),x},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:c}=ue.useMutation({mutationFn:x=>i(x.memberId,x.field,x.value),onError:x=>{throw console.error("Failed to update the member.",x),new Error("Error al actualizar el miembro")}});return{addTeamHandler:l,deleteTeamHandler:o,updateTeamHandler:u,updateMemberHandler:c,invalidateTeams:()=>{a.invalidateQueries({queryKey:["teams"]})},isLoadingDeleteTeam:d}},Fn=(t,a,r)=>{const n=w.useCallback(s=>{t.current&&!t.current.contains(s.target)&&a(!1)},[t,a]);w.useEffect(()=>(r&&document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}),[n,r])},An=({color:t,onChange:a})=>e.jsxs(e.Fragment,{children:[e.jsx("style",{children:`
59
59
  .react-pick-color div button {
60
60
  border-radius: 50% !important;
61
61
  width: 20px;
@@ -72,4 +72,4 @@
72
72
  .react-pick-color div label > span {
73
73
  display: none !important;
74
74
  }
75
- `}),e.jsx("div",{className:"react-pick-color tw-overflow-hidden tw-rounded-lg tw-shadow-lg",children:e.jsx(ss.ColorPicker,{color:t,theme:{inputBackground:"#FFF"},combinations:["monochromatic"],onChange:n=>a(n)})})]});function An({color:t,setColor:a,label:n="Elige el color",className:r=""}){const[s,i]=w.useState(!1),o=w.useRef(null);return Pn(o,i,s),e.jsxs("div",{className:"tw-relative tw-w-full",children:[e.jsx("button",{onClick:d=>{d.stopPropagation(),i(!s)},style:{backgroundColor:t},className:`ui-h-control-xs ui-w-full ui-rounded-control-sm ui-border-[1px] ui-border-default ui-px-8 ui-text-body-sm-bold ui-text-primary ui-text-left ui-text-white ${r}`,children:n}),s&&e.jsx("div",{ref:o,className:"tw-absolute tw-z-50 tw-mt-2",children:e.jsx(Fn,{color:t,onChange:d=>a(d.hex)})})]})}const ft="Ha ocurrido un error inesperado. Por favor, intente nuevamente.",kn={"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"},Wa=()=>({handleApiError:a=>{var n,r,s,i,o;if(a instanceof jt.AxiosError&&((n=a.response)==null?void 0:n.status)===400){const d=a.response.data;if(((s=(r=d.details)==null?void 0:r.errors)==null?void 0:s.length)>0){const l=d.details.errors[0];let c=kn[l.message]||ft;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||ft}return ft}});function Ka({open:t,handleChange:a,team:n}){const{addTeamHandler:r,updateTeamHandler:s}=Ha(),{handleApiError:i}=Wa(),[o,d]=w.useState(""),[l,c]=w.useState(n||{id:0,nombre:"",color:Tn(),miembros:[],miembros_planos:[],integrantes:0,miembros_eliminar:[],miembros_actualizar:[]}),u=l.id>0,m=async()=>{if(l.nombre.length===0){d("El nombre del equipo es requerido");return}if(l.miembros.length===0){d("El equipo debe tener al menos un miembro");return}const x=async()=>u?await s({data:l,teamId:l.id}):await r(l);try{await x(),d(""),a(!1);const p=u?"Equipo actualizado correctamente":"Equipo creado correctamente";A.toast.success(p)}catch(p){d(i(p))}};return e.jsx(ve.Modal,{onCancel:()=>a(!1),onSuccess:m,title:"Información del equipo",icon:$e.faUser,showCloseButton:!0,showCancelButton:!0,showSuccessButton:!0,closeAtSuccess:!0,closeAtCancel:!0,isOpen:t,onClose:()=>a(!1),size:"lg",children:e.jsxs(ve.Modal.Body,{children:[e.jsxs("div",{className:"ui-flex ui-flex-col ui-gap-y-8",children:[e.jsx(Ht,{title:"Información del equipo",icon:$e.faUser}),e.jsxs("div",{className:"ui-flex ui-w-full ui-items-center ui-gap-8 tw-flex-wrap",children:[e.jsx(sr,{value:l.nombre,onChange:x=>c({...l,nombre:x})}),e.jsxs("div",{className:"ui-flex ui-flex-1 ui-items-center ui-gap-x-8",children:[e.jsx("label",{className:"ui-text-body-sm-bold ui-text-primary ui-flex-1 ui-min-w-fit",children:"Color del equipo"}),e.jsx(An,{color:l.color,setColor:x=>c({...l,color:x})})]})]}),o&&e.jsx("p",{className:"tw-mt-4 tw-text-sm tw-text-danger-pastel",children:o})]}),e.jsxs("div",{className:"ui-mt-8",children:[e.jsx(Ht,{title:"Miembros del equipo",icon:$e.faUsers}),e.jsx(Ua,{members:l.miembros,setData:c,isUpdate:u})]})]})})}const Oe=384,Mn=80,qn=180,bt=20,Ln=2,Ga=4,yt=.8;function On({data:t}){const{getImageOBP:a}=fe();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(qe,{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 Rn={custom:On},Bn={style:{stroke:"#6366f1",strokeWidth:2}},Va=(t,a=0)=>t?t.map(n=>{const r=n.miembros?Va(n.miembros,a+1):[];return{width:Oe,height:Mn,children:r,x:0,y:a*qn,totalWidth:0,depth:a}}):[],Qa=t=>{if(t.children.length===0)return t.totalWidth=Oe,Oe;const a=t.children.reduce((s,i)=>s+Qa(i),0),n=t.children.length>Ga?yt:1,r=(t.children.length-1)*bt*n;return t.totalWidth=Math.max(Oe,a+r),t.totalWidth},Xa=(t,a=0)=>{let n=a;return t.forEach(r=>{r.totalWidth===0&&Qa(r);const s=r.children.length>Ln,i=r.children.length>Ga;if(r.children.length>0){if(Xa(r.children,n),i){const m=(r.totalWidth-Oe)/(r.children.length-1)*yt;r.children.forEach((x,p)=>{x.x=n+p*m})}else if(s){const m=(r.totalWidth-Oe)/(r.children.length-1);r.children.forEach((x,p)=>{x.x=n+p*m})}const d=r.children[0].x,l=r.children[r.children.length-1].x+Oe,c=i?Oe*.1:0;r.x=(d+l-Oe)/2+c}else r.x=n;const o=i?yt:1;n=Math.max(n+Oe+bt*o,r.x+Oe+bt*o)}),n},Ya=(t,a,n,r)=>{const s=[],i=[];return t.forEach((o,d)=>{var u,m,x,p,f,g;const l=a[d],c=l.id.toString();if(s.push({id:c,type:"custom",data:{name:(u=l.idUser)==null?void 0:u.nombre,image:(x=n==null?void 0:n[(m=l.idUser)==null?void 0:m.email])==null?void 0:x.image,job:((g=(f=n==null?void 0:n[(p=l.idUser)==null?void 0:p.email])==null?void 0:f.role)==null?void 0:g.name)||""},position:{x:o.x,y:o.y}}),r&&i.push({id:`e-${r}-${c}`,source:r,target:c,style:{stroke:"#6366f1",strokeWidth:2}}),l.miembros&&l.miembros.length>0){const h=Ya(o.children,l.miembros,n,c);s.push(...h.nodes),i.push(...h.edges)}}),{nodes:s,edges:i}};function $n({members:t}){const[a,n]=w.useState([]),[r,s]=w.useState([]),{users:i,isLoading:o}=Xe();return w.useEffect(()=>{if(t&&!o){const d=Va(t);Xa(d);const{nodes:l,edges:c}=Ya(d,t,i);n(l),s(c)}},[t,i,o]),o?null:e.jsx(re.ReactFlow,{nodeTypes:Rn,nodes:a,edges:r,draggable:!1,fitView:!0,defaultViewport:{x:0,y:0,zoom:1},minZoom:.5,maxZoom:2,defaultEdgeOptions:Bn})}function zn({open:t,handleChange:a,members:n}){return e.jsx(ve.Modal,{showCancelButton:!1,showSuccessButton:!1,hideFooter:!0,isOpen:t,onClose:()=>a(!1),size:"xl",title:"Organigrama de equipo",children:e.jsx("div",{className:"tw-mx-auto tw-bg-white",style:{width:"100%",height:"600px"},children:e.jsx(re.ReactFlowProvider,{children:e.jsx($n,{members:n})})})})}function Ja(){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 Un(){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(Ja,{})]}),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 Hn({length:t}){const n=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:n},(r,s)=>e.jsx(Un,{},s))})}function Wn({members:t}){const{getImageOBP:a}=fe(),{users:n,isLoading:r}=Xe();if(r)return e.jsx(Ja,{});const s=t.filter(i=>{var o,d;return(d=n[(o=i.idUser)==null?void 0:o.email])==null?void 0:d.image}).slice(0,3);return e.jsx("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:e.jsx(A.Avatar,{maxVisible:2,stroke:!0,stack:s.map(i=>{var d;const o=n[(d=i.idUser)==null?void 0:d.email];return{src:a(o.image),name:o.name}}),size:"sm"})})}function Kn({team:t}){const[a,n]=w.useState(!1),[r,s]=w.useState(!1),{user:i}=Ee(),[o,d]=w.useState(!1),{handleApiError:l}=Wa(),{deleteTeamHandler:c,isLoadingDeleteTeam:u}=Ha(),m=async()=>{try{await c(t.id),A.toast.success("Equipo eliminado correctamente")}catch(x){A.toast.error(l(x))}};return e.jsxs(A.Card,{children:[a&&e.jsx(Ka,{handleChange:n,open:a,team:t}),o&&e.jsx(za,{isLoading:u,open:o,handleChange:d,onConfirm:m,contentLabel:"Estás eliminando el equipo seleccionado"}),r&&e.jsx(zn,{handleChange:s,open:r,members:t.miembros}),e.jsxs(A.Card.Header,{className:"ui-flex ui-items-center justify-between",children:[e.jsx("div",{className:"ui-flex ui-flex-col ui-justify-start ui-items-start ui-gap-y-2",children:e.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-8",children:[e.jsx(A.Badge,{size:"dot",customColor:t.color,theme:"solid"}),e.jsx(A.Icon,{name:$e.faPeopleGroup,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"md"}),e.jsx("h1",{className:"ui-text-base ui-py-0.5 ui-font-body-sm-bold ui-text-body-sm-bold ui-leading-none ui-text-primary",children:t.nombre})]})}),e.jsx("div",{children:(i==null?void 0:i.role)==$a&&e.jsx(A.Popup,{size:"xs",color:"secondary",pill:"pill",icon:Ie.faEllipsis,stopPropagationList:!0,children:e.jsxs(A.List,{className:"ui-gap-4",padding:"sm",children:[e.jsx(A.ListItem,{icon:Ie.faPencil,onClick:()=>n(!0),children:"Editar"}),e.jsx(A.ListItem,{icon:Ie.faEye,onClick:()=>s(!0),children:"Ver organigrama"}),e.jsx(A.ListItem,{color:"red",icon:Ie.faTrash,onClick:()=>d(!0),children:"Eliminar"})]})})})]}),e.jsx(A.Card.Separator,{}),e.jsxs(A.Card.Body,{children:[e.jsx(Wn,{members:t.miembros_planos}),e.jsxs("div",{className:"ui-flex ui-items-center ui-gap-4 ui-mt-2",children:[e.jsx("p",{className:"ui-text-icon-all-colors-blue ui-text-xs tw-text-center tw-leading-none tw-font-semibold",children:t.integrantes||0}),e.jsxs("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:["Integrante",t.integrantes>1?"s":""]})]})]})]})}function Gn({teams:t}){return e.jsx("div",{className:"tw-grid tw-w-full tw-grid-cols-1 tw-items-baseline tw-gap-x-8 tw-gap-y-8 md:tw-grid-cols-2 lg:tw-grid-cols-3 lg:tw-gap-x-8 xl:tw-grid-cols-4",children:t==null?void 0:t.map(a=>e.jsx(Kn,{team:a},a.id))})}const Vn="teams-container";function Qn(){return e.jsx("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-justify-between tw-gap-2.5 md:tw-flex-nowrap",children:e.jsx(Ta,{path:Vn})})}function Za(){var v,I,$,R,U;const[t,a]=w.useState(!1),[n,r]=w.useState(1),[s,i]=w.useState(10),{user:o}=Ee(),{debouncedSearch:d,filters:l}=Ca("teams-container"),c=Array.isArray(l)?l:[];w.useEffect(()=>{r(1)},[d,l]);const{data:u,isLoading:m}=In({page:n,pageSize:s,search:d,filters:{nombre:"",createdAt:(v=c.find(P=>P.keyName==="createdAt"))==null?void 0:v.value,integrantes_min:(I=c.find(P=>P.keyName==="integrantes_min"))==null?void 0:I.value,integrantes_max:($=c.find(P=>P.keyName==="integrantes_max"))==null?void 0:$.value}}),x=(u==null?void 0:u.data)||[],p=u==null?void 0:u.meta,f=((R=p==null?void 0:p.pagination)==null?void 0:R.pageCount)||0,g=((U=p==null?void 0:p.pagination)==null?void 0:U.total)||0,h=P=>{r(P)},b=P=>{i(P),r(1)};return e.jsxs("div",{className:"tw-grid tw-h-full tw-grid-rows-[auto,1fr] tw-gap-y-8",children:[t&&e.jsx(Ka,{handleChange:a,open:t}),(o==null?void 0:o.role)===$a&&e.jsx("div",{className:"tw-flex tw-items-center tw-justify-end",children:e.jsx(ve.Button,{size:"xs",color:"primary",leftSlot:Ie.faPlus,onClick:()=>a(!0),children:" Nuevo equipo "})}),e.jsx("div",{className:"custom-scrollbar",style:{scrollbarGutter:"stable",paddingRight:"4px"},children:x.length===0&&!m?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:d?"No se encontraron equipos con ese nombre":"¡Parece que aún no has creado un equipo!"}),!d&&e.jsx(ve.Button,{color:"primary",onClick:()=>a(!0),children:"¡Empieza ahora!"})]})}):m?e.jsx(Hn,{}):e.jsx("div",{className:`tw-pb-16 ${m?"tw-opacity-0 tw-transition tw-duration-300":"tw-opacity-100 tw-transition tw-duration-300"}`,children:e.jsx(Gn,{teams:x})})}),f>0&&e.jsx(ve.Pagination,{currentPage:n,pageCount:f,pageSize:s,total:g,onPageChange:h,handlePageSize:b,showVisiblePages:!0,showPagesSelector:!0})]})}const Xn=()=>({header:e.jsx(to,{}),body:e.jsx(Za,{})}),Yn={"templates-container":jn,"teams-container":Qn};function Jn({path:t}){const a=t?Yn[t]:null;return a?e.jsx(a,{}):null}function Zn({path:t}){return t==="templates-container"?wn():t==="teams-container"?Xn():{header:null,body:null}}const eo=({startPath:t})=>{const{path:a,setPath:n}=Fe(),{setCurrentPath:r}=ct();w.useEffect(()=>{n(t),r(t)},[t,n,r]);const{header:s,body:i}=Zn({path:a});return e.jsxs(A.Card,{fullWidth:!0,className:"tw-h-full",children:[e.jsxs(A.Card.Header,{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-4",children:[s,e.jsx(Jn,{path:a})]}),e.jsx(A.Card.Separator,{}),e.jsx(A.Card.Body,{fullHeight:!0,className:"tw-flex tw-flex-1 tw-flex-col tw-gap-y-4",children:i})]})},to=()=>e.jsx(Na,{title:"Equipos"}),ao=({path:t,tab:a,setPath:n,project:r,setProject:s})=>{const i={"kanban-general":{kanban:e.jsx(Ys,{})},"teams-container":{teams:e.jsx(Za,{})},"lista-campanias":{lista:e.jsx(fs,{setPath:n,setProject:s}),gantt:e.jsx("div",{children:"gantt-campanias"})},"kanban-campania":{kanban:e.jsx(Us,{}),lista:e.jsx(ar,{}),gantt:e.jsx("div",{children:"kanban-campania-gantt"})},"templates-container":{templates:e.jsx(Ba,{})}};return t==="kanban-campania"?e.jsx(ds,{project:r==null?void 0:r.id,children:i[t][a]}):i[t][a]},so=({label:t,active:a,onClick:n,disabled:r})=>r?e.jsx(ie.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:r,onClick:n,className:`${a?"tw-border-b-2 tw-border-texts-enfasis tw-text-blue-600 tw-text-texts-enfasis":""} tw-text-xl tw-font-semibold ${r?"tw-cursor-not-allowed tw-text-lg tw-text-texts-placeholder":"tw-text-texts-subtext"}`,children:t}),ro=({tabs:t,renderItem:a,initialTab:n})=>{const[r,s]=w.useState(n??t[0].toLowerCase());w.useEffect(()=>{n&&s(n)},[n]);const i=o=>{s(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(so,{onClick:()=>i(o.toLowerCase()),label:o,active:o.toLowerCase()===r,disabled:["gantt"].includes(o.toLowerCase())},d)}))})};function no(){const{toast:t}=Tt();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(ie.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 oo=({path:t})=>{const a=()=>{const{selectPath:n,updateFilters:r,applyFilters:s,filters:i,fields:o}=Le(),[d,l]=w.useState("kanban"),[c,u]=w.useState(t),[m,x]=w.useState({id:1704,project:"Kanban de Campania"}),[p,f]=w.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,h]=w.useState(),b=w.useRef(null);w.useEffect(()=>{var C;l(c==="lista-campanias"?"lista":c==="kanban-campania"?"kanban":c==="teams-container"?"teams":c==="templates-container"?"templates":"kanban"),n(c),h(((C=p.find(y=>y.path===c))==null?void 0:C.search)??"")},[t,c]),w.useEffect(()=>{var C;((C=U())==null?void 0:C.trim())===""&&r({name:c==="lista-campanias"||c==="teams-container"||c==="templates-container"?"search":"taskName",value:null}),s()},[p]);const v=C=>({"kanban-general":"Kanban General","lista-campanias":"Campanias","teams-container":"Equipos","kanban-campania":`Kanban de ${m.project}`,"templates-container":"Flujos de trabajo"})[C],I=C=>{u(C)},$=["lista-campanias","kanban-campania"],R={"lista-campanias":["lista","gantt"],"kanban-campania":["kanban","lista","gantt"],"teams-container":["teams"],"templates-container":["templates"]},U=()=>{var C;return((C=p.find(y=>y.path===c))==null?void 0:C.search)??""},P=C=>{f(y=>y.map(H=>H.path===c?{...H,search:C}:H))};return w.useEffect(()=>{const C=setTimeout(()=>{r({name:c==="lista-campanias"||c==="teams-container"||c==="templates-container"?"search":"taskName",value:g==null?void 0:g.trim()}),P(g)},500);return()=>{clearTimeout(C)}},[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:()=>I("lista-campanias"),className:"tw-text-primary hover:tw-text-primary/80 tw-flex tw-items-center tw-transition-colors",children:e.jsx(ie.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:v(c)}),$.includes(c)&&e.jsx(ro,{tabs:R[c],renderItem:C=>{l(C)},initialTab:d})]}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-s !tw-text-[16px]",children:[e.jsx(A.Input,{leftSlot:ue.faSearch,onChange:C=>{h(C.target.value)},placeholder:`Buscar por ${c==="lista-campanias"?"campaña":"campaña / tarea"}`,value:g,fullWidth:!0,className:"tw-min-w-[280px]"}),o.length>0&&e.jsx(xs,{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(ys,{})})})]})]}),e.jsx("div",{className:"tw-h-full tw-max-h-[100%] tw-overflow-y-auto tw-scrollbar-none",children:e.jsx(ao,{path:c,tab:d,setPath:I,project:m,setProject:x})})]})};return e.jsx(rs,{children:e.jsxs(us,{children:[e.jsx(a,{}),e.jsx(no,{})]})})},io=({path:t})=>["templates-container","teams-container"].includes(t)?e.jsx(eo,{startPath:t}):e.jsx(oo,{path:t}),lo=()=>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"})]})})}),co=()=>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"})]})})}),uo=({path:t,user:a,url:n,mode:r})=>{const s=new pe.QueryClient;if(!a)return e.jsx(co,{});if(!a.accessToken)return e.jsx(lo,{});let i={user:a,url:n,mode:r};return e.jsxs(cr,{children:[e.jsx(A.Toaster,{}),e.jsx(os,{...i,children:e.jsx(ns,{...i,children:e.jsx("div",{className:"tw-relative tw-h-full tw-min-h-[100%] tw-w-full",children:e.jsxs(pe.QueryClientProvider,{client:s,children:[e.jsx(io,{path:t})," "]})})})})]})};exports.AppTasks=uo;
75
+ `}),e.jsx("div",{className:"react-pick-color tw-overflow-hidden tw-rounded-lg tw-shadow-lg",children:e.jsx(rs.ColorPicker,{color:t,theme:{inputBackground:"#FFF"},combinations:["monochromatic"],onChange:r=>a(r)})})]});function kn({color:t,setColor:a,label:r="Elige el color",className:n=""}){const[s,i]=w.useState(!1),o=w.useRef(null);return Fn(o,i,s),e.jsxs("div",{className:"tw-relative tw-w-full",children:[e.jsx("button",{onClick:d=>{d.stopPropagation(),i(!s)},style:{backgroundColor:t},className:`ui-h-control-xs ui-w-full ui-rounded-control-sm ui-border-[1px] ui-border-default ui-px-8 ui-text-body-sm-bold ui-text-primary ui-text-left ui-text-white ${n}`,children:r}),s&&e.jsx("div",{ref:o,className:"tw-absolute tw-z-50 tw-mt-2",children:e.jsx(An,{color:t,onChange:d=>a(d.hex)})})]})}const ft="Ha ocurrido un error inesperado. Por favor, intente nuevamente.",Mn={"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"},Ka=()=>({handleApiError:a=>{var r,n,s,i,o;if(a instanceof jt.AxiosError&&((r=a.response)==null?void 0:r.status)===400){const d=a.response.data;if(((s=(n=d.details)==null?void 0:n.errors)==null?void 0:s.length)>0){const l=d.details.errors[0];let u=Mn[l.message]||ft;return u=u.replace("{field}",l.path.join(".")),((i=l.params)==null?void 0:i.min)!==void 0&&(u=u.replace("{min}",l.params.min.toString())),((o=l.params)==null?void 0:o.max)!==void 0&&(u=u.replace("{max}",l.params.max.toString())),u}return d.message||ft}return ft}});function Ga({open:t,handleChange:a,team:r}){const{addTeamHandler:n,updateTeamHandler:s}=Wa(),{handleApiError:i}=Ka(),[o,d]=w.useState(""),[l,u]=w.useState(r||{id:0,nombre:"",color:Cn(),miembros:[],miembros_planos:[],integrantes:0,miembros_eliminar:[],miembros_actualizar:[]}),c=l.id>0,m=async()=>{if(l.nombre.length===0){d("El nombre del equipo es requerido");return}if(l.miembros.length===0){d("El equipo debe tener al menos un miembro");return}const x=async()=>c?await s({data:l,teamId:l.id}):await n(l);try{await x(),d(""),a(!1);const p=c?"Equipo actualizado correctamente":"Equipo creado correctamente";A.toast.success(p)}catch(p){d(i(p))}};return e.jsx(ve.Modal,{onCancel:()=>a(!1),onSuccess:m,title:"Información del equipo",icon:$e.faUser,showCloseButton:!0,showCancelButton:!0,showSuccessButton:!0,closeAtSuccess:!0,closeAtCancel:!0,isOpen:t,onClose:()=>a(!1),size:"lg",children:e.jsxs(ve.Modal.Body,{children:[e.jsxs("div",{className:"ui-flex ui-flex-col ui-gap-y-8",children:[e.jsx(Ht,{title:"Información del equipo",icon:$e.faUser}),e.jsxs("div",{className:"ui-flex ui-w-full ui-items-center ui-gap-8 tw-flex-wrap",children:[e.jsx(rr,{value:l.nombre,onChange:x=>u({...l,nombre:x})}),e.jsxs("div",{className:"ui-flex ui-flex-1 ui-items-center ui-gap-x-8",children:[e.jsx("label",{className:"ui-text-body-sm-bold ui-text-primary ui-flex-1 ui-min-w-fit",children:"Color del equipo"}),e.jsx(kn,{color:l.color,setColor:x=>u({...l,color:x})})]})]}),o&&e.jsx("p",{className:"tw-mt-4 tw-text-sm tw-text-danger-pastel",children:o})]}),e.jsxs("div",{className:"ui-mt-8",children:[e.jsx(Ht,{title:"Miembros del equipo",icon:$e.faUsers}),e.jsx(Ha,{members:l.miembros,setData:u,isUpdate:c})]})]})})}const Oe=384,qn=80,Ln=180,bt=20,On=2,Qa=4,yt=.8;function Rn({data:t}){const{getImageOBP:a}=fe();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(qe,{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 Bn={custom:Rn},$n={style:{stroke:"#6366f1",strokeWidth:2}},Va=(t,a=0)=>t?t.map(r=>{const n=r.miembros?Va(r.miembros,a+1):[];return{width:Oe,height:qn,children:n,x:0,y:a*Ln,totalWidth:0,depth:a}}):[],Xa=t=>{if(t.children.length===0)return t.totalWidth=Oe,Oe;const a=t.children.reduce((s,i)=>s+Xa(i),0),r=t.children.length>Qa?yt:1,n=(t.children.length-1)*bt*r;return t.totalWidth=Math.max(Oe,a+n),t.totalWidth},Ya=(t,a=0)=>{let r=a;return t.forEach(n=>{n.totalWidth===0&&Xa(n);const s=n.children.length>On,i=n.children.length>Qa;if(n.children.length>0){if(Ya(n.children,r),i){const m=(n.totalWidth-Oe)/(n.children.length-1)*yt;n.children.forEach((x,p)=>{x.x=r+p*m})}else if(s){const m=(n.totalWidth-Oe)/(n.children.length-1);n.children.forEach((x,p)=>{x.x=r+p*m})}const d=n.children[0].x,l=n.children[n.children.length-1].x+Oe,u=i?Oe*.1:0;n.x=(d+l-Oe)/2+u}else n.x=r;const o=i?yt:1;r=Math.max(r+Oe+bt*o,n.x+Oe+bt*o)}),r},Ja=(t,a,r,n)=>{const s=[],i=[];return t.forEach((o,d)=>{var c,m,x,p,f,h;const l=a[d],u=l.id.toString();if(s.push({id:u,type:"custom",data:{name:(c=l.idUser)==null?void 0:c.nombre,image:(x=r==null?void 0:r[(m=l.idUser)==null?void 0:m.email])==null?void 0:x.image,job:((h=(f=r==null?void 0:r[(p=l.idUser)==null?void 0:p.email])==null?void 0:f.role)==null?void 0:h.name)||""},position:{x:o.x,y:o.y}}),n&&i.push({id:`e-${n}-${u}`,source:n,target:u,style:{stroke:"#6366f1",strokeWidth:2}}),l.miembros&&l.miembros.length>0){const g=Ja(o.children,l.miembros,r,u);s.push(...g.nodes),i.push(...g.edges)}}),{nodes:s,edges:i}};function zn({members:t}){const[a,r]=w.useState([]),[n,s]=w.useState([]),{users:i,isLoading:o}=Xe();return w.useEffect(()=>{if(t&&!o){const d=Va(t);Ya(d);const{nodes:l,edges:u}=Ja(d,t,i);r(l),s(u)}},[t,i,o]),o?null:e.jsx(re.ReactFlow,{nodeTypes:Bn,nodes:a,edges:n,draggable:!1,fitView:!0,defaultViewport:{x:0,y:0,zoom:1},minZoom:.5,maxZoom:2,defaultEdgeOptions:$n})}function Un({open:t,handleChange:a,members:r}){return e.jsx(ve.Modal,{showCancelButton:!1,showSuccessButton:!1,hideFooter:!0,isOpen:t,onClose:()=>a(!1),size:"xl",title:"Organigrama de equipo",children:e.jsx("div",{className:"tw-mx-auto tw-bg-white",style:{width:"100%",height:"600px"},children:e.jsx(re.ReactFlowProvider,{children:e.jsx(zn,{members:r})})})})}function Za(){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 Hn(){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(Za,{})]}),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 Wn({length:t}){const r=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:r},(n,s)=>e.jsx(Hn,{},s))})}function Kn({members:t}){const{getImageOBP:a}=fe(),{users:r,isLoading:n}=Xe();if(n)return e.jsx(Za,{});const s=t.filter(i=>{var o,d;return(d=r[(o=i.idUser)==null?void 0:o.email])==null?void 0:d.image}).slice(0,3);return e.jsx("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:e.jsx(A.Avatar,{maxVisible:2,stroke:!0,stack:s.map(i=>{var d;const o=r[(d=i.idUser)==null?void 0:d.email];return{src:a(o.image),name:o.name}}),size:"sm"})})}function Gn({team:t}){const[a,r]=w.useState(!1),[n,s]=w.useState(!1),{user:i}=Se(),[o,d]=w.useState(!1),{handleApiError:l}=Ka(),{deleteTeamHandler:u,isLoadingDeleteTeam:c}=Wa(),m=async()=>{try{await u(t.id),A.toast.success("Equipo eliminado correctamente")}catch(x){A.toast.error(l(x))}};return e.jsxs(A.Card,{children:[a&&e.jsx(Ga,{handleChange:r,open:a,team:t}),o&&e.jsx(Ua,{isLoading:c,open:o,handleChange:d,onConfirm:m,contentLabel:"Estás eliminando el equipo seleccionado"}),n&&e.jsx(Un,{handleChange:s,open:n,members:t.miembros}),e.jsxs(A.Card.Header,{className:"ui-flex ui-items-center justify-between",children:[e.jsx("div",{className:"ui-flex ui-flex-col ui-justify-start ui-items-start ui-gap-y-2",children:e.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-8",children:[e.jsx(A.Badge,{size:"dot",customColor:t.color,theme:"solid"}),e.jsx(A.Icon,{name:$e.faPeopleGroup,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"md"}),e.jsx("h1",{className:"ui-text-base ui-py-0.5 ui-font-body-sm-bold ui-text-body-sm-bold ui-leading-none ui-text-primary",children:t.nombre})]})}),e.jsx("div",{children:(i==null?void 0:i.role)==za&&e.jsx(A.Popup,{size:"xs",color:"secondary",pill:"pill",icon:Ee.faEllipsis,stopPropagationList:!0,children:e.jsxs(A.List,{className:"ui-gap-4",padding:"sm",children:[e.jsx(A.ListItem,{icon:Ee.faPencil,onClick:()=>r(!0),children:"Editar"}),e.jsx(A.ListItem,{icon:Ee.faEye,onClick:()=>s(!0),children:"Ver organigrama"}),e.jsx(A.ListItem,{color:"red",icon:Ee.faTrash,onClick:()=>d(!0),children:"Eliminar"})]})})})]}),e.jsx(A.Card.Separator,{}),e.jsxs(A.Card.Body,{children:[e.jsx(Kn,{members:t.miembros_planos}),e.jsxs("div",{className:"ui-flex ui-items-center ui-gap-4 ui-mt-2",children:[e.jsx("p",{className:"ui-text-icon-all-colors-blue ui-text-xs tw-text-center tw-leading-none tw-font-semibold",children:t.integrantes||0}),e.jsxs("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:["Integrante",t.integrantes>1?"s":""]})]})]})]})}function Qn({teams:t}){return e.jsx("div",{className:"tw-grid tw-w-full tw-grid-cols-1 tw-items-baseline tw-gap-x-8 tw-gap-y-8 md:tw-grid-cols-2 lg:tw-grid-cols-3 lg:tw-gap-x-8 xl:tw-grid-cols-4",children:t==null?void 0:t.map(a=>e.jsx(Gn,{team:a},a.id))})}const Vn="teams-container";function Xn(){return e.jsx("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-justify-between tw-gap-2.5 md:tw-flex-nowrap",children:e.jsx(Ca,{path:Vn})})}function es(){var v,P,$,B,H;const[t,a]=w.useState(!1),[r,n]=w.useState(1),[s,i]=w.useState(10),{user:o}=Se(),{debouncedSearch:d,filters:l}=Ea("teams-container"),u=Array.isArray(l)?l:[];w.useEffect(()=>{n(1)},[d,l]);const{data:c,isLoading:m}=Pn({page:r,pageSize:s,search:d,filters:{nombre:"",createdAt:(v=u.find(I=>I.keyName==="createdAt"))==null?void 0:v.value,integrantes_min:(P=u.find(I=>I.keyName==="integrantes_min"))==null?void 0:P.value,integrantes_max:($=u.find(I=>I.keyName==="integrantes_max"))==null?void 0:$.value}}),x=(c==null?void 0:c.data)||[],p=c==null?void 0:c.meta,f=((B=p==null?void 0:p.pagination)==null?void 0:B.pageCount)||0,h=((H=p==null?void 0:p.pagination)==null?void 0:H.total)||0,g=I=>{n(I)},b=I=>{i(I),n(1)};return e.jsxs("div",{className:"tw-grid tw-h-full tw-grid-rows-[auto,1fr] tw-gap-y-8",children:[t&&e.jsx(Ga,{handleChange:a,open:t}),(o==null?void 0:o.role)===za&&e.jsx("div",{className:"tw-flex tw-items-center tw-justify-end",children:e.jsx(ve.Button,{size:"xs",color:"primary",leftSlot:Ee.faPlus,onClick:()=>a(!0),children:" Nuevo equipo "})}),e.jsx("div",{className:"custom-scrollbar",style:{scrollbarGutter:"stable",paddingRight:"4px"},children:x.length===0&&!m?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:d?"No se encontraron equipos con ese nombre":"¡Parece que aún no has creado un equipo!"}),!d&&e.jsx(ve.Button,{color:"primary",onClick:()=>a(!0),children:"¡Empieza ahora!"})]})}):m?e.jsx(Wn,{}):e.jsx("div",{className:`tw-pb-16 ${m?"tw-opacity-0 tw-transition tw-duration-300":"tw-opacity-100 tw-transition tw-duration-300"}`,children:e.jsx(Qn,{teams:x})})}),f>0&&e.jsx(ve.Pagination,{currentPage:r,pageCount:f,pageSize:s,total:h,onPageChange:g,handlePageSize:b,showVisiblePages:!0,showPagesSelector:!0})]})}const Yn=()=>({header:e.jsx(ao,{}),body:e.jsx(es,{})}),Jn={"templates-container":_n,"teams-container":Xn};function Zn({path:t}){const a=t?Jn[t]:null;return a?e.jsx(a,{}):null}function eo({path:t}){return t==="templates-container"?mn():t==="teams-container"?Yn():{header:null,body:null}}const to=({startPath:t})=>{const{path:a,setPath:r}=Fe(),{setCurrentPath:n}=ct();w.useEffect(()=>{r(t),n(t)},[t,r,n]);const{header:s,body:i}=eo({path:a});return e.jsxs(A.Card,{fullWidth:!0,className:"tw-h-full",children:[e.jsxs(A.Card.Header,{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-4",children:[s,e.jsx(Zn,{path:a})]}),e.jsx(A.Card.Separator,{}),e.jsx(A.Card.Body,{fullHeight:!0,className:"tw-flex tw-flex-1 tw-flex-col tw-gap-y-4",children:i})]})},ao=()=>e.jsx(Ta,{title:"Equipos"}),so=({path:t,tab:a,setPath:r,project:n,setProject:s})=>{const i={"kanban-general":{kanban:e.jsx(Js,{})},"teams-container":{teams:e.jsx(es,{})},"lista-campanias":{lista:e.jsx(xs,{setPath:r,setProject:s}),gantt:e.jsx("div",{children:"gantt-campanias"})},"kanban-campania":{kanban:e.jsx(Hs,{}),lista:e.jsx(sr,{}),gantt:e.jsx("div",{children:"kanban-campania-gantt"})},"templates-container":{templates:e.jsx($a,{})}};return t==="kanban-campania"?e.jsx(us,{project:n==null?void 0:n.id,children:i[t][a]}):i[t][a]},ro=({label:t,active:a,onClick:r,disabled:n})=>n?e.jsx(ie.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:r,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}),no=({tabs:t,renderItem:a,initialTab:r})=>{const[n,s]=w.useState(r??t[0].toLowerCase());w.useEffect(()=>{r&&s(r)},[r]);const i=o=>{s(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(ro,{onClick:()=>i(o.toLowerCase()),label:o,active:o.toLowerCase()===n,disabled:["gantt"].includes(o.toLowerCase())},d)}))})};function oo(){const{toast:t}=Tt();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(ie.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 io=["to_do_tasks","working_tasks","done_tasks"],aa="tasksProject",lo=({path:t})=>{const a=()=>{const r=ue.useQueryClient(),{selectPath:n,updateFilters:s,applyFilters:i,filters:o,fields:d}=Le(),[l,u]=w.useState("kanban"),[c,m]=w.useState(t),[x,p]=w.useState({id:1704,project:"Kanban de Campania"}),[f,h]=w.useState([{path:"lista-campanias",search:(o==null?void 0:o.search)??""},{path:"kanban-campania",search:(o==null?void 0:o.taskName)??""},{path:"kanban-general",search:(o==null?void 0:o.taskName)??""},{path:"teams-container",search:(o==null?void 0:o.taskName)??""},{path:"templates-container",search:(o==null?void 0:o.taskName)??""}]),[g,b]=w.useState(),v=w.useRef(null);w.useEffect(()=>{var L;u(c==="lista-campanias"?"lista":c==="kanban-campania"?"kanban":c==="teams-container"?"teams":c==="templates-container"?"templates":"kanban"),n(c),b(((L=f.find(K=>K.path===c))==null?void 0:L.search)??"")},[t,c]),w.useEffect(()=>{var L;((L=I())==null?void 0:L.trim())===""&&s({name:c==="lista-campanias"||c==="teams-container"||c==="templates-container"?"search":"taskName",value:null}),i()},[f]);const P=L=>({"kanban-general":"Kanban General","lista-campanias":"Campanias","teams-container":"Equipos","kanban-campania":`Kanban de ${x.project}`,"templates-container":"Flujos de trabajo"})[L],$=L=>{m(L)},B=["lista-campanias","kanban-campania"],H={"lista-campanias":["lista","gantt"],"kanban-campania":["kanban","lista","gantt"],"teams-container":["teams"],"templates-container":["templates"]},I=()=>{var L;return((L=f.find(K=>K.path===c))==null?void 0:L.search)??""},D=()=>{c==="kanban-general"?io.forEach(L=>{r.invalidateQueries({queryKey:[L]}),r.refetchQueries({queryKey:[L]})}):c==="kanban-campania"&&(r.invalidateQueries({queryKey:[aa]}),r.refetchQueries({queryKey:[aa]}))},y=L=>{h(K=>K.map(X=>X.path===c?{...X,search:L}:X))};return w.useEffect(()=>{const L=setTimeout(()=>{s({name:c==="lista-campanias"||c==="teams-container"||c==="templates-container"?"search":"taskName",value:g==null?void 0:g.trim()}),y(g)},500);return()=>{clearTimeout(L)}},[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-pb-m",children:[e.jsxs("div",{className:"tw-flex tw-gap-xl",children:[c==="kanban-campania"&&e.jsx("button",{onClick:()=>$("lista-campanias"),className:"tw-text-primary hover:tw-text-primary/80 tw-flex tw-items-center tw-transition-colors",children:e.jsx(ie.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:P(c)}),B.includes(c)&&e.jsx(no,{tabs:H[c],renderItem:L=>{u(L)},initialTab:l})]}),e.jsxs("div",{className:"tw-flex tw-items-center tw-gap-s !tw-text-[16px]",children:[e.jsx(A.Input,{leftSlot:pe.faSearch,onChange:L=>{b(L.target.value)},placeholder:`Buscar por ${c==="lista-campanias"?"campaña":"campaña / tarea"}`,value:g,fullWidth:!0,className:"tw-min-w-[280px]"}),d.length>0&&e.jsx(gs,{filterChildren:v,children:e.jsx("div",{ref:v,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(js,{})})}),(c==="kanban-general"||c==="kanban-campania")&&e.jsx(A.Button,{icon:Ee.faRotate,onClick:D,color:"secondary",pill:"pill",size:"xs"})]})]}),e.jsx("div",{className:"tw-h-full tw-max-h-[100%] tw-overflow-y-auto tw-scrollbar-none",children:e.jsx(so,{path:c,tab:l,setPath:$,project:x,setProject:p})})]})};return e.jsx(ns,{children:e.jsxs(ps,{children:[e.jsx(a,{}),e.jsx(oo,{})]})})},co=({path:t})=>["templates-container","teams-container"].includes(t)?e.jsx(to,{startPath:t}):e.jsx(lo,{path:t}),uo=()=>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"})]})})}),po=()=>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"})]})})}),wo=({path:t,user:a,url:r,mode:n})=>{const s=new ue.QueryClient;if(!a)return e.jsx(po,{});if(!a.accessToken)return e.jsx(uo,{});let i={user:a,url:r,mode:n};return e.jsxs(dr,{children:[e.jsx(A.Toaster,{}),e.jsx(is,{...i,children:e.jsx(os,{...i,children:e.jsx("div",{className:"tw-relative tw-h-full tw-min-h-[100%] tw-w-full",children:e.jsxs(ue.QueryClientProvider,{client:s,children:[e.jsx(co,{path:t})," "]})})})})]})};exports.AppTasks=wo;