@imj_media/tareas 1.5.55 → 1.6.0

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,15 +1,13 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime");require("@imj_media/imj-ui/styles.css");require("@imj_media/ui/index.css");const de=require("@tanstack/react-query"),j=require("@imj_media/ui"),p=require("react"),Ye=require("axios"),Pe=require("qs"),xe=require("@fortawesome/pro-regular-svg-icons"),Ls=require("echarts-for-react"),pe=require("@fortawesome/pro-solid-svg-icons"),ce=require("@imj_media/tasks-modules"),dt=require("react-dom"),Ce=require("@fortawesome/free-solid-svg-icons"),ct=require("date-fns"),It=require("date-fns/locale"),Be=require("@imj_media/imj-ui"),Ie=require("react-hook-form"),ne=require("@xyflow/react"),Ue=require("zustand"),Tt=require("moment"),ze=require("@fortawesome/pro-duotone-svg-icons");require("@xyflow/react/dist/style.css");const Os=require("react-pick-color"),Qt=e=>{const a={...e};return delete a.project,delete a["project.id"],a},Xt=e=>{let a={};return Object.entries(e).forEach(([n,s])=>{if(n.includes(".")){let[o,i]=n.split(".");a[o]=a[o]||{},a[o][i]=s}else a[n]=s}),a},Ta=p.createContext({}),Bs=({children:e})=>{const[a,n]=p.useState({}),[s,o]=p.useState({}),[i,r]=p.useState([]),[c,d]=p.useState(""),l=({name:w,value:f})=>{function h(y){return!isNaN(y)&&y!==null&&y!==""?parseFloat(y):null}let x=h(f);o(y=>{let b={...y},C=i==null?void 0:i.find(k=>k.label.toLowerCase().replace(/ /g,"_")===w);return C?b[C.id]=x??f:b[w]=x??f,((C==null?void 0:C.id)??w)==="owner.config"&&(b["project.id"]=null),b})};p.useEffect(()=>{let w=i.map(f=>f.id==="owner.config"?[f.id,"yo_y_mis_equipos"]:f.id==="dependency"?[f.id,"ambas"]:[f.id,null]);o(f=>{const h={search:f==null?void 0:f.search,taskName:f==null?void 0:f.taskName};return w.forEach(([x,y])=>{h[x]=(f==null?void 0:f[x])!==void 0?f==null?void 0:f[x]:y}),h})},[i]);const u=()=>{let w=i.map(f=>f.id==="owner.config"?[f.id,"yo_y_mis_equipos"]:f.id==="dependency"?[f.id,"ambas"]:[f.id,null]);o(Object.fromEntries(w)),n(Xt(Object.fromEntries(w)))},m=w=>({1:"Muy facil",2:"Facil",3:"Media",4:"Dificil",5:"Muy dificil"})[w],g=()=>{let w=Xt(s);w.difficulty&&(w.difficulty=m(w.difficulty)),n(w)};return t.jsx(Ta.Provider,{value:{fields:i,filters:a,path:c,defineFields:r,updateFilters:l,cleanFilters:u,applyFilters:g,initialFilters:s,selectPath:d},children:e})},ke=()=>p.useContext(Ta),Ca=p.createContext({}),qs=({children:e,user:a,url:n,mode:s})=>{const o=s==="prod"?"https://services.imjmedia.com.mx":"https://devobp.imjmedia.com.mx",i=Ye.create({baseURL:n,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:d=>Pe.stringify(d,{encodeValuesOnly:!0})}),r=()=>o,c=d=>d==="undefined"||d===void 0?"":`${o}${d}`;return t.jsx(Ca.Provider,{value:{tasks_api:i,getOBPUrlApi:r,getImageOBP:c},children:e})},ge=()=>p.useContext(Ca),Sa=p.createContext({}),Rs=({children:e,user:a,url:n})=>{const s=Ye.create({baseURL:n,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:o=>Pe.stringify(o,{encodeValuesOnly:!0})});return t.jsx(Sa.Provider,{value:{user:a,tasks_api:s},children:e})},Te=()=>p.useContext(Sa),be=e=>{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),s=i=>i&&typeof i=="object"&&"position"in i&&typeof i.position=="object"&&("x"in i.position||"y"in i.position)&&!("attributes"in i),o=i=>i.attributes?{id:i.id,...i.attributes}:i;if(Array.isArray(e))return e.map(i=>be(i));if(a(e)){if(n(e)){const i={};for(const r in e)i[r]=be(e[r]);return i}if(s(e)){const i={};for(const r in e)i[r]=be(e[r]);return i}Array.isArray(e.data)?e=[...e.data]:a(e.data)?e=o({...e.data}):e.data===null?e=null:e=o(e);for(const i in e)e[i]=be(e[i]);return e}return e},Yt=[{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"}]}],Jt=[{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:[]}],ft=(e,a,n)=>`${e} ${e===1?a:n}`;function zs(e){const a=e??{pausas:0,atrasos:0,vencidos:0};if((a.pausas??0)===0&&(a.atrasos??0)===0&&(a.vencidos??0)===0)return[{label:"Sin alertas",color:"gray",variant:"sin-alertas"}];const n=[];return(a.atrasos??0)>0&&n.push({label:ft(a.atrasos,"atrasada","atrasadas"),color:"danger",variant:"atrasos"}),(a.pausas??0)>0&&n.push({label:ft(a.pausas,"pausada","pausadas"),color:"warning",variant:"pausas"}),(a.vencidos??0)>0&&n.push({label:ft(a.vencidos,"vencida","vencidas"),color:"info",variant:"vencidos"}),n.slice(0,2)}const $s=xe.faLightEmergencyOn,Us={name:$s},Hs=({tags:e})=>{const a=Array.isArray(e)?e:[];return t.jsx("div",{className:"ui-inline-flex ui-min-w-0 ui-max-w-full ui-flex-wrap ui-content-center ui-items-center ui-gap-1 ui-justify-center",children:a.map((n,s)=>t.jsx("div",{className:"ui-min-w-0 ui-max-w-full ui-flex-shrink-0",children:t.jsx(j.Tag,{label:n.label,color:n.color,stroke:!1,truncateLabel:!0,truncateTooltip:!0,infoIcon:n.variant==="atrasos"?Us:void 0})},`${n.variant}-${n.label}-${s}`))})},Ks=(e,a=500)=>{const[n,s]=p.useState(e);return p.useEffect(()=>{const o=setTimeout(()=>{s(e)},a);return()=>{clearTimeout(o)}},[e,a]),n},Ws=async e=>{const a=Pe.stringify({fields:["id","nombre"],sort:["nombre:asc"]},{encodeValuesOnly:!0}),n=await e.get(`/api/equipos?${a}`);return n.data?{data:be(n.data.data)}:{data:[]}},Gs=()=>{const{tasks_api:e}=ge();return de.useQuery({queryKey:["teams"],queryFn:()=>Ws(e),staleTime:1e3*60*60*24,select:n=>n.data.map(o=>({label:o.nombre,value:o.id}))})},Vs="/api/listado-progreso",Qs="/api/proyectos/listado-progreso";function Xs(e){return Pe.stringify(e,{encodeValuesOnly:!0,arrayFormat:"repeat"})}function Ys(e){var i,r,c;const a=Number(e.proyecto_id);if(!Number.isFinite(a)||a<=0||!Number.isInteger(a))throw new Error("listado-progreso: proyecto_id debe ser un entero positivo");const n=String(e.fase).trim().toLowerCase();if(n!=="preventa"&&n!=="venta")throw new Error('listado-progreso: fase debe ser "preventa" o "venta"');const s={proyecto_id:a,fase:n};(i=e.status)!=null&&i.length&&(s.status=e.status.map(d=>String(d).trim()).filter(Boolean)),(r=e.types_media)!=null&&r.length&&(s.types_media=e.types_media.map(d=>String(d).trim()).filter(Boolean)),(c=e.locations)!=null&&c.length&&(s.locations=e.locations.map(d=>String(d).trim()));const o=e.search!=null?String(e.search).trim():"";return o&&(s.search=o),e.blocked_only!==void 0&&(s.blocked_only=e.blocked_only===!0||e.blocked_only==="true"?"true":"false"),s}function Zt(e){const a=Array.isArray(e.data)?e.data:[],n=e.grafico,s=e.graficos,o=Array.isArray(n)&&n.length>0?n:Array.isArray(s)?s:[];return{data:a,grafico:o}}async function ea(e,a,n){const{data:s}=await e.get(a,{params:n,paramsSerializer:Xs});return s??{}}async function Js(e,a){var s;const n=Ys(a);try{const o=await ea(e,Vs,n);return Zt(o)}catch(o){if(Ye.isAxiosError(o)&&((s=o.response)==null?void 0:s.status)===404){const i=await ea(e,Qs,n);return Zt(i)}throw o}}function Zs({proyectoId:e,fase:a,enabled:n,filters:s}){const{tasks_api:o}=ge(),i=n&&Number.isFinite(e)&&Number.isInteger(e)&&e>0;return de.useQuery({queryKey:["listado-progreso",e,a,s],queryFn:()=>Js(o,{proyecto_id:e,fase:a,...s}),enabled:i,staleTime:3e4})}const en=({campaignName:e,searchValue:a,onSearchChange:n})=>t.jsx("div",{className:"tw-border-b tw-border-gray-200 tw-pb-6 tw-pt-6",children:t.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-justify-between tw-gap-3",children:[t.jsx("h3",{className:"tw-text-[2.1rem] tw-font-semibold tw-leading-tight tw-text-gray-800",children:e||"-"}),t.jsx("div",{className:"tw-w-full sm:tw-w-[260px] md:tw-w-[300px]",children:t.jsx(j.Input,{size:"sm",fullWidth:!0,leftSlot:xe.faSearch,placeholder:"Buscar...",value:a,onValueChange:n,clearable:!0,onClear:()=>n("")})})]})});function tn(e,a){Array.isArray(e)&&a(e.map(String))}function gt({options:e,selected:a,onChange:n,emptyPlaceholder:s,header:o,tagsOverflowPopoverTitle:i,panelSearch:r,panelSearchPlaceholder:c="Buscar…"}){return t.jsx(j.Dropdown,{field:{placeholder:s},items:{options:e},values:{value:a},events:{onValueChange:d=>tn(d,n)},multi:{multiple:!0,selectionSummary:"tags",tagsOverflow:"single-line",tagsOverflowPopoverTitle:i},popover:{fullWidth:!0},list:{listVariant:"search-multi-checkbox",searchMultiCheckbox:{header:o,search:{show:r,placeholder:c},showClearSelection:!1}},menuSearch:{searchable:!1}})}const an=({mediosOptions:e,plazasOptions:a,estadosOptions:n,selectedMedios:s,selectedPlazas:o,selectedEstados:i,onlyDelayed:r,onChangeMedios:c,onChangePlazas:d,onChangeEstados:l,onChangeOnlyDelayed:u})=>t.jsx("div",{className:"tw-flex tw-flex-col tw-gap-2 tw-mt-5 tw-mb-5",children:t.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-justify-between tw-gap-3",children:[t.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-4 tw-flex-1",children:[t.jsx("div",{className:"tw-w-full sm:tw-w-[280px]",children:t.jsx(gt,{options:e,selected:s,onChange:c,emptyPlaceholder:"Todos los medios",header:{id:"listado-progreso-medios-all",label:"Todos los medios"},tagsOverflowPopoverTitle:"Medios seleccionados",panelSearch:!1})}),t.jsx("div",{className:"tw-w-full sm:tw-w-[280px]",children:t.jsx(gt,{options:a,selected:o,onChange:d,emptyPlaceholder:"Todas las plazas",header:{id:"listado-progreso-plazas-all",label:"Todas las plazas"},tagsOverflowPopoverTitle:"Plazas seleccionadas",panelSearch:!0,panelSearchPlaceholder:"Buscar…"})}),t.jsx("div",{className:"tw-w-full sm:tw-w-[280px]",children:t.jsx(gt,{options:n,selected:i,onChange:l,emptyPlaceholder:"Todos los estados",header:{id:"listado-progreso-estados-all",label:"Todos los estados"},tagsOverflowPopoverTitle:"Estados seleccionados",panelSearch:!1})})]}),t.jsx("div",{className:"tw-flex tw-items-center",children:t.jsx(j.Toggle,{label:"Solo Atrasadas",checked:r,onChange:u})})]})}),At=[{singular:"completada",serieApiName:"completadas",uiLabel:"Completada",chartLegendLabel:"Completadas",tagColor:"success",chartColorHex:"#22C55E"},{singular:"progresada",serieApiName:"progresadas",uiLabel:"En progreso",chartLegendLabel:"En progreso",tagColor:"accent",chartColorHex:"#3658C1"},{singular:"pausada",serieApiName:"pausadas",uiLabel:"Pausada",chartLegendLabel:"Pausadas",tagColor:"warning",chartColorHex:"#EAB308"},{singular:"atrasada",serieApiName:"atrasadas",uiLabel:"Atrasada",chartLegendLabel:"Atrasadas",tagColor:"danger",chartColorHex:"#EF4444"},{singular:"pendiente",serieApiName:"pendientes",uiLabel:"Pendiente",chartLegendLabel:"Pendientes",tagColor:"gray",chartColorHex:"#BABCBF"},{singular:"vencida",serieApiName:"vencidas",uiLabel:"Vencida",chartLegendLabel:"Vencidas",tagColor:"info",chartColorHex:"#0592AA"}],sn=Object.fromEntries(At.map(e=>[e.singular,e])),ta=At.map(e=>e.serieApiName),nn="atrasada";function Dt(e){return sn[e]}function on(e){var a;return(a=Dt(e.trim().toLowerCase()))==null?void 0:a.serieApiName}function Ea(e){return e?e.charAt(0).toUpperCase()+e.slice(1):""}function rn(e){const a=Dt(e);return a?a.uiLabel:Ea(e)}function ln(e,a){const n=(e??"").trim().toLowerCase();if(!n)return[{label:a,color:"gray"}];const s=Dt(n);return s?[{label:s.uiLabel,color:s.tagColor}]:[{label:Ea(n),color:"gray"}]}function cn(e){var a,n;if(Ye.isAxiosError(e)){const s=(a=e.response)==null?void 0:a.data;if(typeof s=="string"&&s.trim())return s;if(s&&typeof s=="object"&&"message"in s){const i=s.message;if(typeof i=="string")return i}const o=(n=e.response)==null?void 0:n.status;if(o)return`Error del servidor (${o}). Revisa logs del backend o el body de la respuesta.`}return e.message||"No se pudieron cargar los datos de progreso."}function dn(e){if(!e||typeof e!="object")return null;const n=e.event;if(n&&typeof n=="object"){const s=n;if(typeof s.offsetX=="number"&&typeof s.offsetY=="number")return{x:s.offsetX,y:s.offsetY};const o=s.event;if(o&&typeof o.offsetX=="number"&&typeof o.offsetY=="number")return{x:o.offsetX,y:o.offsetY}}return null}function un(e){if(!e||typeof e!="object")return 0;const a=e.value;return typeof a=="number"?a:Array.isArray(a)&&typeof a[0]=="number"?a[0]:0}function pn(e){return(Number.isFinite(e)?e:0).toFixed(0)}const mn=({id:e,listadoProgreso:a,phaseLabel:n,listadoForUi:s})=>{const{isPending:o,isError:i,error:r,isSuccess:c,data:d}=a,[l,u]=p.useState(null),m=s??d,g=p.useMemo(()=>{const x=(m==null?void 0:m.grafico)??[],y=F=>{var q,T;return((T=(q=x.find(S=>S.name===F))==null?void 0:q.data)==null?void 0:T[0])??0},b=At.map(F=>({key:F.serieApiName,label:F.chartLegendLabel,color:F.chartColorHex})),C=b.map(F=>F.label),k={legendLabel:{color:"#6C6E73",fontSize:12,fontWeight:"bold",padding:[0,0,0,20]}};return b.forEach((F,q)=>{k[`legendDot${q}`]={color:F.color,fontSize:20,fontWeight:"bold",padding:[0,0,0,6]}}),{tooltip:{show:!1},grid:{top:"20%",bottom:"20%",left:"7%",right:"3%"},xAxis:{type:"value",max:100,splitLine:{show:!0},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"category",data:[n],axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6C6E73",fontWeight:"bold",fontSize:12}},legend:{data:C,orient:"horizontal",top:"0%",left:"center",itemGap:30,icon:"none",itemWidth:0,itemHeight:0,formatter:F=>{const q=b.findIndex(T=>T.label===F);return q===-1?F:`{legendLabel|${F}}{legendDot${q}|●}`},textStyle:{rich:k}},series:b.map(F=>({name:F.label,type:"bar",stack:"total",itemStyle:{color:F.color},barWidth:"50%",data:[y(F.key)]}))}},[m==null?void 0:m.grafico,n]),w=p.useCallback(x=>{const y=x;if(y.componentType!=="series")return;const b=dn(x);if(!b)return;const C=un(x),k=typeof y.seriesName=="string"?y.seriesName:"";u({x:b.x,y:b.y,label:`${pn(C)}% ${k}`})},[]),f=p.useCallback(()=>{u(null)},[]),h=p.useMemo(()=>({mouseover:w,mousemove:w,globalout:f}),[w,f]);return t.jsx(j.Accordion,{id:e,title:"Grafico de Tareas",subtitle:"Distribución de tareas por estatus",defaultOpen:!0,children:t.jsxs("div",{className:"tw-min-h-[140px] tw-w-full tw-border tw-rounded-3xl tw-border-gray-50 tw-px-2 tw-py-2",style:{backgroundColor:"#F7F8FA"},children:[o&&t.jsx("h3",{className:"tw-flex tw-h-[140px] tw-items-center tw-justify-center tw-text-xl tw-font-medium tw-text-gray-500",children:"Cargando datos de progreso…"}),i&&r&&t.jsx("div",{className:"tw-flex tw-h-[140px] tw-items-center tw-justify-center tw-px-4 tw-text-center",children:t.jsx("span",{className:"tw-text-sm tw-font-medium tw-text-red-600",children:cn(r)})}),c&&d&&t.jsxs("div",{className:"tw-relative tw-h-[140px] tw-w-full",children:[t.jsx(Ls,{option:g,style:{height:"100%",width:"100%"},onEvents:h}),l&&t.jsx("div",{className:"tw-pointer-events-none tw-absolute tw-z-[10]",style:{left:l.x,top:l.y,width:1,height:1,transform:"translate(-50%, -50%)"},"aria-hidden":!0,children:t.jsx(j.InlineTooltip,{isVisible:!0,label:l.label,position:"top"})})]})]})})},Ft="-";function Qe(e){const a=String(e??"").trim();return a.length>0?a:null}function Ke(e){const a=String(e??"").trim();return a.length>0?a:Ft}function wn(e){var i,r,c,d,l,u,m,g,w,f;if(!e)return;const a=(c=(r=(i=e.formats)==null?void 0:i.thumbnail)==null?void 0:r.url)==null?void 0:c.trim(),n=(u=(l=(d=e.formats)==null?void 0:d.small)==null?void 0:l.url)==null?void 0:u.trim(),s=(w=(g=(m=e.formats)==null?void 0:m.medium)==null?void 0:g.url)==null?void 0:w.trim(),o=(f=e.url)==null?void 0:f.trim();return a||n||s||o||void 0}function fn(e){if(!e)return!1;if(e.startsWith("data:")||e.startsWith("blob:"))return!0;try{const a=new URL(e);return a.protocol==="http:"||a.protocol==="https:"}catch{return!1}}function kt(e,a){const n=(e.nombre??"").trim()||Ft,s=wn(e.imagen??null);let o;if(s){const r=s.startsWith("http")||s.startsWith("data:")||s.startsWith("blob:")?s:a(s);fn(r)&&(o=r)}const i=n.slice(0,1);return{name:n,src:o,letter:i}}function gn(e){return{tarea:Ke(e.tarea),categoria:Ke(e.categoria),nota:Ke(e.nota),clave:Ke(e.clave),tipo_medio:Ke(e.tipo_medio),ubicacion:Ke(e.ubicacion)}}function hn(e){return ln(e,Ft)}const Pa=4,aa=Pa-1,xn=120,bn=-8,sa=8;function yn(e){return e.length<=Pa?{visible:e,overflow:[]}:{visible:e.slice(0,aa),overflow:e.slice(aa)}}const tt="ui-h-8 ui-w-8 ui-min-h-[32px] ui-min-w-[32px] ui-max-h-[32px] ui-max-w-[32px] ui-shrink-0 ui-border ui-border-default",na="Sin responsable",Ia="bottom",Aa="center",jn="tw-flex tw-max-w-xs tw-items-start tw-gap-2 tw-py-1",vn="tw-text-sm tw-font-semibold tw-leading-snug tw-text-gray-900";function oa(e,a){return e<a-1?{marginRight:`${bn}px`}:void 0}function _n({person:e,getImageOBP:a}){const{src:n,letter:s}=kt(e,a);return n?t.jsx(j.Avatar,{type:"people",src:n,size:"xxs",className:tt}):t.jsx(j.Avatar,{type:"letter",text:s,size:"xxs",className:tt})}function Nn({person:e,getImageOBP:a}){const{name:n,src:s,letter:o}=kt(e,a);return t.jsxs("div",{className:jn,children:[s?t.jsx(j.Avatar,{type:"people",src:s,size:"xxs",className:`ui-mt-0.5 ${tt}`}):t.jsx(j.Avatar,{type:"letter",text:o,size:"xxs",className:`ui-mt-0.5 ${tt}`}),t.jsx("span",{className:vn,children:n})]})}function Tn({popupId:e,trigger:a,children:n,popupBodyClassName:s="tw-p-3"}){const o=p.useRef(null),i=p.useRef(null),r=p.useRef(null),c=p.useCallback(()=>{r.current!==null&&(window.clearTimeout(r.current),r.current=null)},[]),d=p.useCallback(()=>{var u;c(),(u=i.current)==null||u.open()},[c]),l=p.useCallback(()=>{c(),r.current=window.setTimeout(()=>{var u;(u=i.current)==null||u.close(),r.current=null},xn)},[c]);return p.useEffect(()=>()=>c(),[c]),t.jsxs("div",{className:"ui-relative ui-inline-flex ui-shrink-0",children:[t.jsx("span",{ref:o,className:"ui-inline-flex ui-cursor-default",onMouseEnter:d,onMouseLeave:l,children:a}),t.jsx(j.Popup,{ref:i,popupId:e,triggerRef:o,closeOnClick:!1,position:"bottom-center",children:t.jsx("div",{className:s,onMouseEnter:d,onMouseLeave:l,children:n})})]})}function Cn(){return t.jsx(j.Tooltip,{label:na,position:Ia,alignment:Aa,preserveLayout:!0,children:t.jsx("span",{className:"ui-inline-flex ui-shrink-0",role:"img","aria-label":na,children:t.jsx(j.Avatar,{type:"people",size:"xxs",className:tt,alt:""})})})}function Sn({person:e,getImageOBP:a}){const{name:n}=kt(e,a);return t.jsx(j.Tooltip,{label:n,position:Ia,alignment:Aa,preserveLayout:!0,children:t.jsx("span",{className:"ui-inline-flex ui-shrink-0",children:t.jsx(_n,{person:e,getImageOBP:a})})})}function En({overflow:e,getImageOBP:a,popupId:n}){return t.jsx(Tn,{popupId:n,popupBodyClassName:"tw-max-h-64 tw-overflow-y-auto tw-p-3",trigger:t.jsxs("span",{className:"ui-inline-flex ui-h-8 ui-w-8 ui-min-h-[32px] ui-min-w-[32px] ui-max-h-[32px] ui-max-w-[32px] ui-cursor-default ui-items-center ui-justify-center ui-rounded-control-pill ui-border ui-border-default ui-bg-fill-brand ui-text-xs ui-font-normal ui-leading-none ui-tracking-[0.5px] ui-text-on-color",children:["+",e.length]}),children:e.map((s,o)=>t.jsx(Nn,{person:s,getImageOBP:a},s.id!=null?`${s.id}-${o}`:o))})}const Pn=({responsables:e,getImageOBP:a,rowId:n})=>{const s=Array.isArray(e)?e:[];if(s.length===0)return t.jsx("div",{className:"ui-flex ui-min-w-0 ui-items-center",style:{paddingRight:`${sa}px`},children:t.jsx(Cn,{})});const{visible:o,overflow:i}=yn(s),r=o.length+(i.length>0?1:0);return t.jsxs("div",{className:"ui-flex ui-min-w-0 ui-items-center",style:{paddingRight:`${sa}px`},children:[o.map((c,d)=>{const l=c.id!=null?`r-${c.id}-${d}`:`r-${n}-${d}`;return t.jsx("div",{className:"ui-shrink-0",style:oa(d,r),children:t.jsx(Sn,{person:c,getImageOBP:a})},l)}),i.length>0?t.jsx("div",{className:"ui-shrink-0",style:oa(r-1,r),children:t.jsx(En,{overflow:i,getImageOBP:a,popupId:`listado-progreso-${n}-more`})}):null]})},In={name:pe.faCircleSmall};function An({tags:e}){const a=Array.isArray(e)?e:[];return t.jsx("div",{className:"ui-inline-flex ui-min-w-0 ui-max-w-full ui-flex-wrap ui-content-start ui-items-center ui-gap-1",children:a.map((n,s)=>t.jsx("div",{className:"ui-min-w-0 ui-max-w-full ui-flex-shrink-0",children:t.jsx(j.Tag,{label:n.label,color:n.color,stroke:!1,truncateLabel:!0,truncateTooltip:!0,infoIcon:In})},`${n.label}-${s}`))})}const Dn=({listadoProgreso:e,listadoForUi:a,hideClaveColumn:n=!1})=>{var d,l;const{getImageOBP:s}=ge(),o=p.useMemo(()=>{const u=[{id:"responsables",header:"Responsable",accessor:m=>m.responsables,width:140,minWidth:100,sortable:!1,filterable:!1,resizable:!1,render:(m,g)=>t.jsx(Pn,{responsables:g.responsables,getImageOBP:s,rowId:g.id})},{id:"tarea",header:"Tarea",accessor:"tarea",width:100,minWidth:90,sortable:!1,filterable:!1,resizable:!1},{id:"categoria",header:"Categoría",accessor:"categoria",width:110,minWidth:90,sortable:!1,filterable:!1,resizable:!1,contentAlign:"center"},{id:"estado",header:"Estado",accessor:m=>hn(m.estado),contentAlign:"center",width:110,minWidth:90,sortable:!1,filterable:!1,resizable:!1,render:m=>t.jsx(An,{tags:Array.isArray(m)?m:[]})},{id:"nota",header:"Notas",accessor:"nota",width:100,minWidth:90,sortable:!1,filterable:!1,resizable:!1},{id:"tipo_medio",header:"Grupo medio",accessor:"tipo_medio",width:130,minWidth:110,sortable:!1,filterable:!1,resizable:!1},{id:"ubicacion",header:"Ubicación",accessor:"ubicacion",width:120,minWidth:100,sortable:!1,filterable:!1,resizable:!1}];return n||u.splice(5,0,{id:"clave",header:"Código / Ruta",accessor:"clave",width:130,minWidth:100,sortable:!1,filterable:!1,resizable:!1,contentAlign:"center"}),u},[s,n]),i=p.useMemo(()=>{var m;const u=(a==null?void 0:a.data)??((m=e.data)==null?void 0:m.data);return Array.isArray(u)?u.map(g=>({...g,id:g.id,...gn(g)})):[]},[a==null?void 0:a.data,(d=e.data)==null?void 0:d.data]),r=e.isPending||e.isFetching&&i.length===0&&!e.isError,c=p.useMemo(()=>{var g,w;const u=(g=e.data)==null?void 0:g.data,m=Array.isArray(u)?u.length:0;if(e.isError)return{type:"empty",icon:xe.faBan,title:"No se pudo cargar el listado",description:((w=e.error)==null?void 0:w.message)??"Revisa la conexión o vuelve a intentar."};if(e.isSuccess){if(m===0&&i.length===0)return{type:"empty",icon:xe.faBan,title:"Esta campaña aún no tiene tareas",description:"Cuando asignes tareas a medios, aparecerán aquí con su estado y responsables."};if(m>0&&i.length===0)return{type:"no-filters",icon:xe.faBan,title:"No hay nada aquí...",description:"No hay tareas que coincidan con los filtros seleccionados."}}return{type:"empty",icon:xe.faBan,title:"No hay nada aquí..."}},[e.isError,e.isSuccess,e.error,(l=e.data)==null?void 0:l.data,i.length]);return t.jsx(t.Fragment,{children:t.jsx("div",{className:"tw-flex tw-min-h-0 tw-flex-col tw-mt-2 tw-h-[455px] tw-border tw-rounded-3xl tw-border-gray-300",children:t.jsx(j.Table,{columns:o,columnsLockable:!1,rows:i,loading:r,hoverable:!1,bordered:!1,borderable:!1,stickyHeader:!0,empty:c,resizable:!1,expandable:!1,striped:!1,stickyCheckbox:!1})})})},Fn={preventa:"Preventa",venta:"Venta"},kn=({campaignName:e,phase:a,search:n,listado:s,filters:o})=>{const i=Fn[a],r=a==="preventa";return t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-4",children:[t.jsx(en,{campaignName:e,searchValue:n.value,onSearchChange:n.onChange}),t.jsx(an,{mediosOptions:o.mediosOptions,plazasOptions:o.plazasOptions,estadosOptions:o.estadosOptions,selectedMedios:o.selectedMedios,selectedPlazas:o.selectedPlazas,selectedEstados:o.selectedEstados,onlyDelayed:o.onlyDelayed,onChangeMedios:o.onChangeMedios,onChangePlazas:o.onChangePlazas,onChangeEstados:o.onChangeEstados,onChangeOnlyDelayed:o.onChangeOnlyDelayed}),t.jsx(mn,{id:`progress-chart-${i}`,listadoProgreso:s.query,phaseLabel:i,listadoForUi:s.dataForUi}),t.jsx(Dn,{listadoProgreso:s.query,listadoForUi:s.dataForUi,hideClaveColumn:r})]})};function Mn(e){var i,r,c,d;const a=(i=e.types_media)==null?void 0:i.map(l=>l.trim()).filter(Boolean),n=(r=e.locations)==null?void 0:r.map(l=>l.trim()),s=(c=e.status)==null?void 0:c.map(l=>l.trim().toLowerCase()).filter(Boolean),o=((d=e.search)==null?void 0:d.trim().toLowerCase())||void 0;return{mediosSet:a&&a.length>0?new Set(a):void 0,locationsSet:n&&n.length>0?new Set(n):void 0,statusSet:s&&s.length>0?new Set(s):void 0,searchLower:o,onlyDelayed:e.onlyDelayed===!0}}function Ln(e,a){const{mediosSet:n,locationsSet:s,statusSet:o,searchLower:i,onlyDelayed:r}=a;if(n){const c=Qe(e.tipo_medio)??"";if(!n.has(c))return!1}if(s){const c=Qe(e.ubicacion)??"";if(!s.has(c))return!1}if(o){const c=(e.estado??"").trim().toLowerCase();if(!o.has(c))return!1}return!(r&&(e.estado??"").trim().toLowerCase()!==nn||i&&![(e.responsables??[]).flatMap(l=>[l.nombre??"",l.role??"",l.email??""]).join(" ").toLowerCase(),e.tarea??"",e.categoria??"",e.estado??"",e.nota??"",e.clave??"",e.tipo_medio??"",e.ubicacion??""].join(" ").toLowerCase().includes(i))}function On(e){const a=Object.fromEntries(ta.map(s=>[s,0]));for(const s of e){const o=on(s.estado??"");o&&(a[o]+=1)}const n=e.length;return ta.map(s=>({name:s,data:[n>0?a[s]/n*100:0]}))}function Bn(e,a){const n=Mn(a);if(!(n.mediosSet!==void 0||n.locationsSet!==void 0||n.statusSet!==void 0||n.searchLower!==void 0||n.onlyDelayed))return e;const o=e.data.filter(i=>Ln(i,n));return{data:o,grafico:On(o)}}const Da="__sin_ubicacion__";function Fa(e,a){return String(e.label).localeCompare(String(a.label),"es",{sensitivity:"base"})}function ht(e,a,n){const s=new Map;return e.forEach(o=>{const i=a(o);!i||s.has(i)||s.set(i,{label:n?n(i):i,value:i})}),Array.from(s.values()).sort(Fa)}function qn(e){return e.map(a=>a===Da?"":a)}function Rn(e){const a=ht(e,r=>Qe(r.tipo_medio)),n=e.some(r=>Qe(r.ubicacion)===null),s=ht(e,r=>Qe(r.ubicacion)),o=[...n?[{label:"Sin ubicación",value:Da}]:[],...s].sort(Fa),i=ht(e,r=>{var c;return((c=Qe(r.estado))==null?void 0:c.toLowerCase())??null},r=>rn(r));return{medios:a,plazas:o,estados:i}}const zn=({isOpen:e,proyectoId:a,campaignName:n,onClose:s})=>{var M;const[r,c]=p.useState("preventa"),[d,l]=p.useState([]),[u,m]=p.useState([]),[g,w]=p.useState([]),[f,h]=p.useState(!1),[x,y]=p.useState(""),b=Ks(x,400),C=p.useMemo(()=>[{label:"Fase 1 (Preventa)",value:"preventa",leftSlot:xe.faHandHoldingHand},{label:"Fase 2 (Venta)",value:"venta",leftSlot:xe.faHandHoldingCircleDollar}],[]),k=()=>{l([]),m([]),w([]),h(!1)},F=()=>{c("preventa"),k(),y(""),s()},q=z=>{(z==="preventa"||z==="venta")&&(c(z),k(),y(""))},T=p.useMemo(()=>{const z=b.trim();if(z)return z.length>=2?z:void 0},[b,2]),S=Zs({proyectoId:a,fase:r,enabled:e,filters:{}}),v=p.useMemo(()=>({types_media:d.length>0?d:void 0,locations:u.length>0?qn(u):void 0,status:g.length>0?g:void 0,search:T,onlyDelayed:f}),[d,u,g,T,f]),{medios:R,plazas:K,estados:J}=p.useMemo(()=>{var ee;const z=((ee=S.data)==null?void 0:ee.data)??[];return Rn(z)},[(M=S.data)==null?void 0:M.data]),H=p.useMemo(()=>{const z=S.data;return z?Bn(z,v):null},[S.data,v]),O=p.useMemo(()=>({value:x,onChange:y}),[x]),E=p.useMemo(()=>({query:S,dataForUi:H}),[S,H]),B=p.useMemo(()=>({mediosOptions:R,plazasOptions:K,estadosOptions:J,selectedMedios:d,selectedPlazas:u,selectedEstados:g,onlyDelayed:f,onChangeMedios:l,onChangePlazas:m,onChangeEstados:w,onChangeOnlyDelayed:h}),[R,K,J,d,u,g,f]);return t.jsx(j.Modal,{isOpen:e,onClose:F,size:"xl",title:"Progreso",tabs:C,defaultValueTab:"preventa",onChangeTab:q,iconConfig:{icon:xe.faBullhorn},cancelButtonText:"Cerrar",showCancelButton:!0,closeAtCancel:!0,onCancel:F,showSuccessButton:!1,children:t.jsx("div",{style:{backgroundColor:"#F7F8FA",padding:"0px 16px 16px 16px"},children:t.jsx(j.Modal.Body,{children:t.jsx(kn,{campaignName:n,phase:r,search:O,listado:E,filters:B})})})})},$n=({setPath:e,setProject:a})=>{var B;const[n,s]=p.useState([]),[o,i]=p.useState(!0),[r,c]=p.useState(0),[d,l]=p.useState(10),[u,m]=p.useState(0),[g,w]=p.useState(!1),[f,h]=p.useState(""),[x,y]=p.useState(0),{filters:b,defineFields:C}=ke(),{tasks_api:k,getImageOBP:F}=ge(),{user:q}=Te(),T=p.useCallback(async(M,z)=>{var ee,V,oe;try{i(!0);const Z={filters:{search:(b==null?void 0:b.search)??"",responsable:{idUser:q.id,responsableType:(ee=b==null?void 0:b.responsable)==null?void 0:ee.responsableType},ejecutivo:(b==null?void 0:b.ejecutivo)??"",cancelada:{$eq:!1}}},P=await k.get("/api/listado_campanias",{params:{pagination:{page:M,pageSize:z},...Z}}),$=be(P==null?void 0:P.data);s($),m((oe=(V=P==null?void 0:P.data)==null?void 0:V.meta)==null?void 0:oe.total)}catch(Z){console.error("Error fetching data en Lista Campaña:",Z)}finally{i(!1)}},[b==null?void 0:b.ejecutivo,(B=b==null?void 0:b.responsable)==null?void 0:B.responsableType,b==null?void 0:b.search,k,q.id]),S=p.useCallback(async()=>{try{const M=await k.get("/api/obtener-comerciales");return[...Jt].map(ee=>(ee.id==="ejecutivo"&&(ee.options=M.data.map(V=>({id:V.nombre,name:V.nombre}))),ee))}catch(M){return console.error("Error fetching salesman data:",M),[...Jt]}},[k]);p.useEffect(()=>{(async()=>{const z=await S();C(z)})()},[C,S]),p.useEffect(()=>{const M=Math.floor(r/d)+1;T(M,d)},[r,d,b,T]);const v=M=>{c(M.first),l(M.rows)},R=Math.floor(r/d)+1,K=p.useMemo(()=>(q.role??"").trim().toLowerCase()==="project manager",[q.role]),J=p.useCallback(M=>{var z;h(((z=M.campania)==null?void 0:z.nombre)??M.nombre??""),y(Number(M.id)),w(!0)},[]),H=p.useMemo(()=>({label:"Ver progreso",leftSlot:xe.faEye,theme:"solid",color:"secondary",tooltip:"Ver progreso",onClick:M=>J(M)}),[J]),O=p.useMemo(()=>{const M=[{id:"nombre",header:"CAMPAÑA",accessor:z=>{var ee;return((ee=z.campania)==null?void 0:ee.nombre)??z.nombre??"-"},width:200,sortable:!1,filterable:!1,resizable:!1},{id:"inicia",header:"FECHA INICIO",accessor:z=>{var ee;return((ee=z.campania)==null?void 0:ee.inicia)??"-"},width:100,sortable:!1,filterable:!1,resizable:!1},{id:"termina",header:"FECHA FIN",accessor:z=>{var ee;return((ee=z.campania)==null?void 0:ee.termina)??"-"},width:100,sortable:!1,filterable:!1,resizable:!1},{id:"responsable",header:"RESPONSABLE",type:"primary",accessor:z=>{var ee,V;return((V=(ee=z.campania)==null?void 0:ee.responsable)==null?void 0:V.nombre)??"-"},width:150,sortable:!1,filterable:!1,resizable:!1,render:(z,ee)=>{var Q,D,A,W,I;const V=(Q=ee.campania)==null?void 0:Q.responsable,oe=typeof z=="string"||typeof z=="number"?String(z):(V==null?void 0:V.nombre)??"-",Z=(V==null?void 0:V.role)??"-",P=((W=(A=(D=V==null?void 0:V.imagen)==null?void 0:D.formats)==null?void 0:A.thumbnail)==null?void 0:W.url)||((I=V==null?void 0:V.imagen)==null?void 0:I.url)||"",$=P?F(P):V==null?void 0:V.nombre;return{name:oe,...$?{avatar:$}:{},...Z?{subtitle:Z}:{}}}},{id:"alertas",header:"ALERTAS",accessor:z=>zs(z.alertas),width:200,minWidth:100,filterable:!1,sortable:!1,resizable:!1,contentAlign:"center",render:z=>t.jsx(Hs,{tags:Array.isArray(z)?z:[]})}];return K&&M.push({id:"acciones",header:"ACCIONES",type:"button",sortable:!1,filterable:!1,resizable:!1,accessor:()=>H,width:190,minWidth:160}),M},[F,K,H]),E=p.useMemo(()=>(n??[]).map(M=>({...M,id:M.id})),[n]);return t.jsxs("div",{className:"tw-h-full tw-max-h-[100%] tw-overflow-y-auto tw-scrollbar-none",children:[t.jsx(j.Table,{columns:O,columnsLockable:!1,rows:E,loading:o,hoverable:!0,resizable:!1,pagination:{enabled:!0,currentPage:R,pageSize:d,total:u,pageSizes:[5,10,15,20,25,50],onPageChange:M=>c((M-1)*d),onPageSizeChange:M=>v({first:0,rows:M})},onRowClick:M=>{a({id:M.id,project:M.nombre}),e("kanban-campania")},empty:{type:"empty",title:"No hay campañas disponibles"}}),t.jsx(zn,{isOpen:g,proyectoId:x,campaignName:f,onClose:()=>w(!1)})]})},fe={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"}},ka=()=>{const[e,a]=p.useState(null);return{position:e,setElementPosition:i=>{var l;let r=(l=i.current)==null?void 0:l.getBoundingClientRect(),c=(r==null?void 0:r.x)+((r==null?void 0:r.width)??0),d=(r==null?void 0:r.y)+(r==null?void 0:r.height);a(e?null:{x:c??0,y:d??0})},getChildrenSize:i=>{var r;return(r=i.current)==null?void 0:r.getBoundingClientRect()},clearPosition:()=>{a(null)}}},Ma=p.createContext(null),Un=()=>p.useContext(Ma),Hn=({children:e,filterChildren:a})=>{const{position:n,setElementPosition:s,clearPosition:o}=ka(),i=p.useRef(null),r=({children:c})=>{const[d,l]=p.useState();return p.useEffect(()=>{var u,m;a.current&&l(((n==null?void 0:n.x)??0)-(((m=(u=a.current)==null?void 0:u.getBoundingClientRect())==null?void 0:m.width)??0))},[a==null?void 0:a.current,n==null?void 0:n.x]),n&&dt.createPortal(t.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:100},"data-portal-host":!0,children:t.jsx(Ma.Provider,{value:o,children:c})}),document.body)};return t.jsxs(t.Fragment,{children:[t.jsxs("label",{ref:i,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:[t.jsx(ce.Icons,{icon:"filter",size:"xs",strokeWidth:5,color:fe.primary.regular}),"Filtrar"]}),t.jsx("button",{className:"tw-hidden",id:"filter-button",onClick:()=>{s(i)}}),t.jsx(r,{children:e})]})};function Kn(e,a=300,n={leading:!1,trailing:!0}){let s,o=null;return function(...i){const r=Date.now(),c=n.leading&&!o;clearTimeout(s),c&&e(...i),o=r,s=setTimeout(()=>{n.trailing&&(!n.leading||r-o>=a)&&(e(...i),o=null)},a)}}const Le=({imageUrl:e="https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png",alt:a="avatar",size:n="s"})=>{const s={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 t.jsx("img",{src:e===""?"https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png":e,alt:a??"avatar",className:`${s} tw-bg-containers tw-rounded-full tw-border-2 tw-border-white`})},Wn="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",La=({options:e,onselect:a})=>{const[n,s]=p.useState(null),o=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),i=[...e].filter(r=>r.name.toLowerCase().includes((n==null?void 0:n.toLowerCase())??""));return t.jsxs("div",{className:"tw-h-fit tw-w-full tw-min-w-max",children:[t.jsxs("div",{className:"tw-relative tw-flex tw-items-center",children:[t.jsx("input",{id:o,value:n??"",onChange:r=>s(r.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"}),t.jsx("div",{className:"tw-absolute tw-right-[8px]",children:t.jsx("img",{src:Wn,alt:"Icono",className:"tw-h-[12px] tw-w-[12px]"})})]}),t.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(r=>t.jsxs("button",{onClick:()=>{a(r)},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:[r.image&&t.jsx(Le,{imageUrl:r.image,alt:r.name}),t.jsx("p",{className:"tw-text-s tw-content-text tw-truncate tw-py-m tw-font-normal tw-text-texts-subtext",children:r.name})]}))})]})},Gn=({error:e,options:a,onSelect:n,initialValue:s})=>{const[o,i]=p.useState(!1),[r,c]=p.useState(s??null);return p.useEffect(()=>{c(s??null)},[s]),t.jsxs("div",{className:"tw-relative",children:[t.jsxs("div",{onBlur:()=>i(!1),onClick:()=>i(!o),className:`tw-z-[1] tw-flex tw-h-[30px] tw-w-full tw-cursor-pointer tw-items-center tw-gap-s tw-rounded-md tw-bg-bg-card tw-pl-2 tw-pr-2 ${e?"tw-border-2 tw-border-danger-regular tw-shadow-danger-regular":"tw-shadow-input"} ${e?"tw-text-danger-regular":r?"tw-text-texts-subtext":"tw-text-texts-placeholder"}`,children:[t.jsx("p",{className:"tw-m-0 tw-min-w-0 tw-flex-1 tw-truncate tw-text-inherit",children:(r==null?void 0:r.name)??"Selecciona una opción"}),t.jsx("span",{className:"tw-shrink-0",children:t.jsx(ce.Icons,{icon:"angle_down_outline",color:e?fe.danger.regular:fe.texts.placeholder})})]}),o&&t.jsx("div",{className:"absolute tw-z-[10] tw-w-full tw-rounded-lg tw-shadow-md",children:t.jsx(La,{onselect:d=>{c(d),i(!1),n&&n(d)},options:a})})]})},Vn=()=>{const{fields:e,updateFilters:a,cleanFilters:n,applyFilters:s,initialFilters:o}=ke(),i=Un();return t.jsxs("div",{className:"tw-z-[100] tw-flex tw-min-w-[250px] tw-flex-col tw-gap-l",children:[t.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between",children:[t.jsx("p",{className:"tw-text-2xl tw-text-texts",children:"Filtros"}),t.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(),i==null||i()},children:"Limpiar"})]}),t.jsx("div",{className:"tw-flex tw-flex-col tw-gap-m",children:e==null?void 0:e.map((r,c)=>{var d;return t.jsxs("div",{style:{zIndex:10-c},children:[t.jsx("p",{className:"z-[1] tw-text-xl",children:r.label}),(r==null?void 0:r.type)==="select"?t.jsx("div",{className:"tw-relative tw-z-[10]",children:t.jsx(Gn,{error:!1,options:r==null?void 0:r.options,onSelect:l=>{a({name:r==null?void 0:r.id,value:l==null?void 0:l.id})},initialValue:(d=r==null?void 0:r.options)==null?void 0:d.find(l=>l.id===(o==null?void 0:o[r==null?void 0:r.id]))})}):t.jsx("input",{className:"tw-h-[30px] tw-w-full tw-rounded-lg tw-p-s tw-shadow-input",type:r.type,value:o==null?void 0:o[r==null?void 0:r.id],name:r.label.toLowerCase().replace(/ /g,"_"),onChange:Kn(l=>{var u,m;return a({name:(u=l==null?void 0:l.target)==null?void 0:u.name,value:(m=l==null?void 0:l.target)==null?void 0:m.value})},1e3)})]},c)})}),t.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:()=>{s(),i==null||i()},children:"Filtrar"})]})},Mt=e=>new Intl.DateTimeFormat("es-MX",{month:"long"}).format(e);function Qn(e){const a=["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],n=new Date(e).getDay();return a[n]}const ra=e=>{let a=e||new Date,n=a.getDate(),s=Mt(a.getMonth()).slice(0,3),o=a.getFullYear().toString().slice(-2),i=Qn(a).slice(0,3);return`${i.charAt(0).toUpperCase()+i.slice(1)} ${n} ${s.charAt(0).toUpperCase()+s.slice(1)} ${o}`},Lt=(e,a)=>({...e,image:e.image?`${a}${e.image}`:""}),at=e=>{var a,n;return e?(a=e.responsable)!=null&&a.nombre?e.responsable.nombre:(n=e.equipo)!=null&&n.nombre?e.equipo.nombre:null:null};class Xn{static toCampaignTasks(a){var i,r,c,d,l,u,m,g,w,f,h,x,y,b,C;const n=at(a==null?void 0:a.id_t_requerida),s=at(a==null?void 0:a.tarea_padre);let o=[];return a!=null&&a.responsable&&o.push({id:a.responsable.id,name:a.responsable.nombre,image:(l=(d=(c=(r=(i=a.responsable)==null?void 0:i.userOBP)==null?void 0:r.imagen)==null?void 0:c.formats)==null?void 0:d.thumbnail)==null?void 0:l.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(k=>{var F,q,T,S,v;o!=null&&o.find(R=>R.id===k.idUser.id)||k.idUser&&o.push({id:k.idUser.id,name:k.idUser.nombre,image:(S=(T=(q=(F=k==null?void 0:k.userOBP)==null?void 0:F.imagen)==null?void 0:q.formats)==null?void 0:T.thumbnail)==null?void 0:S.url,role:((v=k.userOBP)==null?void 0:v.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:o,repeatsToDo:(a==null?void 0:a.repeticiones)??null,repeats:(a==null?void 0:a.repeticiones_realizadas)??null,comments:((g=a==null?void 0:a.comentarios)==null?void 0:g.length)??null,willBePaused:a==null?void 0:a.es_pausable,nameProject:((w=a==null?void 0:a.proyecto)==null?void 0:w.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:((x=a==null?void 0:a.id_t_requerida)==null?void 0:x.texto_corto)??null,nameRequiredTaskResponsible:n,name_father_required_task:((y=a==null?void 0:a.tarea_padre)==null?void 0:y.texto_corto)??null,name_father_required_task_responsible:s,responsible:((b=a==null?void 0:a.responsable)==null?void 0:b.id)??null,tasks:((C=a==null?void 0:a.tareas)==null?void 0:C.map(k=>({id:k.id,name:k.texto_corto,status:k.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 Yn=async({filters:e,tasks_api:a,project:n})=>{try{const s=await a.get("/api/listado_tareas_flujo",{params:{...e,project:{id:n},includeAllTasks:!0,populate:"*",cancelada:!1}}),o=be(s.data.tareas),i=Array.isArray(o)?o:[o],r=new Set;if(i.forEach(c=>{var d;(d=c==null?void 0:c.id_t_requerida)!=null&&d.id&&r.add(c.id_t_requerida.id)}),r.size>0){const c=Array.from(r),d=Pe.stringify({filters:{id:{$in:c}},populate:{responsable:{fields:["id","nombre"]},equipo:{fields:["id","nombre"]}}},{encodeValuesOnly:!0});try{const l=await a.get(`/api/tareas?${d}`),u=be(l.data.data||l.data),m=Array.isArray(u)?u:[u],g=new Map(m.map(w=>[w.id,w]));i.forEach(w=>{var f;if((f=w==null?void 0:w.id_t_requerida)!=null&&f.id){const h=g.get(w.id_t_requerida.id);h&&(w.id_t_requerida={...w.id_t_requerida,responsable:h.responsable||null,equipo:h.equipo||null})}})}catch{}}return i.map(Xn.toCampaignTasks)}catch(s){console.log(s)}},Oa=p.createContext({}),Jn=({children:e,project:a})=>{var y;const[n,s]=p.useState([]),[o,i]=p.useState(!1),[r,c]=p.useState([]),{tasks_api:d}=ge(),{filters:l}=ke(),{user:u}=Te(),[m,g]=p.useState({owner:{user:u.id,config:((y=l==null?void 0:l.owner)==null?void 0:y.config)??"yo_y_mis_equipos"},project:{id:a}});p.useEffect(()=>{var b;if(Object.keys(l).length>0){const C={...l,owner:{user:u.id,config:((b=l==null?void 0:l.owner)==null?void 0:b.config)??"yo_y_mis_equipos"},project:{id:a}};g(C)}},[l,u.id,a]);const w=de.useQuery({queryKey:["tasksProject",m,a],queryFn:()=>{const b={...m,taskName:l==null?void 0:l.taskName,owner:{...m.owner,config:m.owner.config||"yo_y_mis_equipos"}};return Yn({filters:b,project:a,tasks_api:d})},refetchOnWindowFocus:!1}),f=b=>{s(C=>[...C,b])},h=b=>{c(C=>C.includes(b)?C.filter(k=>k!==b):[...C,b])},x=a??null;return t.jsx(Oa.Provider,{value:{tasksProject:w,selectedTasks:n,projectID:x,openTasks:r,selectTask:f,filtersToSend:m,openTask:h,isRefetching:o,project:a,filters:l,setIsRefetching:i},children:e})},Je=()=>p.useContext(Oa),Ba=p.createContext(void 0),ia=()=>({selectedTaskIds:[],baseColumn:null,isFullColumnSelected:!1});function qa({children:e,invalidateAfterBulkSuccess:a}){const[n,s]=p.useState(ia),[o,i]=p.useState(null),[r,c]=p.useState(!1),{selectedTaskIds:d,baseColumn:l,isFullColumnSelected:u}=n,m=d.length>0,g=l!==null,w=p.useCallback(()=>{s(ia()),i(null),c(!1)},[]),f=p.useCallback(()=>{s(b=>({...b,selectedTaskIds:[],isFullColumnSelected:!1}))},[]),h=p.useCallback((b,C)=>{C!=="Completadas"&&s(k=>{if(k.baseColumn&&k.baseColumn!==C)return k;const F=new Set(k.selectedTaskIds);return F.has(b)?(F.delete(b),{selectedTaskIds:[...F],baseColumn:k.baseColumn,isFullColumnSelected:!1}):(F.add(b),{selectedTaskIds:[...F],baseColumn:k.baseColumn??C,isFullColumnSelected:!1})})},[]),x=p.useCallback(async(b,C)=>{if(b!=="Completadas"){c(!0);try{const k=await C(),F=[...new Set(k)];s(q=>q.baseColumn&&q.baseColumn!==b?q:{selectedTaskIds:F,baseColumn:q.baseColumn??b,isFullColumnSelected:F.length>0})}finally{c(!1)}}},[]);p.useEffect(()=>{d.length===0&&l!==null&&w()},[d.length,l,w]);const y=p.useMemo(()=>({selectedTaskIds:d,baseColumn:l,isMultiSelectActive:m,isBulkSessionActive:g,isFullColumnSelected:u,pendingTargetStatus:o,isBulkLoading:r,invalidateAfterBulkSuccess:a,toggleTaskSelection:h,deselectAllSelectedTasks:f,exitBulkSelectionMode:w,selectEntireColumn:x,setPendingTargetStatus:i,setIsBulkLoading:c}),[d,l,m,g,u,o,r,a,h,f,w,x,i,c]);return t.jsx(Ba.Provider,{value:y,children:e})}function Ot(){return p.useContext(Ba)}const Zn=()=>t.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:[t.jsxs("div",{className:"tw-flex tw-h-[30px] tw-gap-3",children:[t.jsx("div",{className:"tw-h-full tw-w-[30px] tw-min-w-[30px] tw-rounded-full tw-bg-gray-300"}),t.jsx("div",{className:"tw-h-full tw-w-full tw-bg-gray-300"}),t.jsx("div",{className:"tw-h-full tw-w-[30px] tw-min-w-[30px] tw-rounded-full tw-bg-gray-300"})]}),t.jsxs("div",{className:"tw-flex tw-h-[30px] tw-w-full tw-justify-between tw-gap-[50px]",children:[t.jsx("div",{className:"tw-h-[30px] tw-w-full tw-bg-gray-300"}),t.jsx("div",{className:"tw-h-[30px] tw-w-full tw-bg-gray-300"})]})]}),Ra=p.createContext(null),eo=({children:e})=>{const[a,n]=p.useState({message:"",type:"success"}),s=(o,i)=>{n({message:o,type:i}),setTimeout(()=>n({message:"",type:"success"}),3e3)};return t.jsx(Ra.Provider,{value:{toast:a,showSuccess:o=>s(o,"success"),showError:o=>s(o,"error")},children:e})},Bt=()=>p.useContext(Ra);class za{static toAtrasoReasons(a){return{id:a.id,motivo_imj:a.motivo_imj,categoria:a.categoria??null}}}const to=async({tasks_api:e})=>{try{const a=await e.get("/api/motivos",{params:{populate:{categoria:{fields:["id","nombre","tipo"]}},filters:{tipo:{$eq:"atraso"}}}});return be(a.data).map(za.toAtrasoReasons)}catch(a){throw console.log("Error al obtener los motivos de atraso",a),`Error al obtener los motivos de atraso: ${a}`}},$a=({enabled:e=!1}={})=>{const{tasks_api:a}=ge(),{user:n}=Te(),s=de.useQueryClient(),{showSuccess:o,showError:i}=Bt(),{filters:r,path:c}=ke(),{data:d,isLoading:l}=de.useQuery({queryKey:["atraso_reasons"],queryFn:()=>to({tasks_api:a}),staleTime:1e3*60*60*24,enabled:e}),u=async()=>{const k=await a.get("/api/motivos",{params:{filters:{tipo:{$eq:"atraso"}}}});return be(k.data).map(za.toAtrasoReasons)},m=async({taskId:k,motivoId:F,projectID:q})=>{try{return(await a.post("/api/atrasos",{data:{inicio:new Date,fin:null,motivo:F,proyecto:q,tarea:k,creada_por:n==null?void 0:n.id}})).data}catch(T){console.log("error",T)}},g=async k=>{try{return(await a.delete(`/api/atrasos/${k}`)).data}catch(F){console.log("error",F)}},w=async k=>{try{return(await a.put(`/api/atrasos/${k}`,{data:{fin:new Date}})).data}catch(F){console.log("error",F)}},f=async({taskId:k,projectID:F,motivo:q})=>{await y({taskId:k,motivoId:q,projectID:F})},h=async k=>{await b(k)},x=async k=>{await C(k)},{mutateAsync:y}=de.useMutation({mutationFn:m,onSuccess:()=>{o("Atraso registrado correctamente"),c==="kanban-general"&&(s.invalidateQueries({queryKey:["to_do_tasks",r]}),s.invalidateQueries({queryKey:["working_tasks",r]})),c==="kanban-campania"&&s.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{i("Error al registrar el atraso")}}),{mutateAsync:b}=de.useMutation({mutationFn:g,onSuccess:()=>{o("Atraso eliminado correctamente"),c==="kanban-general"&&(s.invalidateQueries({queryKey:["to_do_tasks"]}),s.invalidateQueries({queryKey:["working_tasks"]}),s.invalidateQueries({queryKey:["done_tasks"]})),c==="kanban-campania"&&s.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{i("Error al eliminar el atraso")}}),{mutateAsync:C}=de.useMutation({mutationFn:w,onSuccess:()=>{o("Atraso finalizado correctamente")},onError:()=>{i("Error al finalizar el atraso")}});return{atrasoReasons:d,isLoading:l,createAtraso:f,getAtrasoReasons:u,deleteAtraso:h,finalizarAtraso:x}},He=()=>{const{tasks_api:e}=ge(),{user:a}=Te(),{filters:n,path:s}=ke(),o=de.useQueryClient(),{projectID:i}=Je(),{showSuccess:r,showError:c}=Bt(),{finalizarAtraso:d}=$a({enabled:!1}),l=async({id:O})=>(await e.put(`/api/tareas/${O}`,{data:{estatus:1,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,u=async({id:O})=>(await e.put(`/api/tareas/${O}`,{data:{estatus:0,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,m=async({id:O,idAtraso:E})=>{const B=await e.post("/api/terminarTarea",{id_task:O,ended_at:new Date().toISOString(),id_user:a==null?void 0:a.id});return await d(E),B.data},g=async({id:O,repeats:E})=>(await e.put(`/api/tareas/${O}`,{data:{repeticiones_realizadas:E,updated_by:a==null?void 0:a.id}})).data,w=async({id:O,motiveId:E})=>{try{const B=await e.post("/api/pausarTarea",{taskId:O,userId:a==null?void 0:a.id,motivoId:E});return r("Tarea pausada correctamente"),B.data}catch(B){c("Error al pausar la tarea: "+B)}},f=async({id:O})=>{try{const E=await e.post("/api/reanudarTarea",{taskId:O});return r("Tarea reanudada correctamente"),E.data}catch(E){c("Error al reanudar la tarea: "+E)}},h=async({id:O,idNewResponsible:E,typeOfSelect:B})=>{let M={updated_by:a==null?void 0:a.id};return B==="responsible"&&(M={...M,responsable:E}),B==="team"&&(M={...M,responsable:null,equipo:E}),(await e.put(`/api/tareas/${O}`,{data:M})).data},x=async({id:O,data:E,user:B})=>{try{return(await e.put(`/api/tareas/${O}`,{data:{...E,updated_by:B==null?void 0:B.id}})).data}catch(M){console.error("Error updating the element:",M)}},y=async({id:O})=>{await k({id:O})},b=async({id:O,data:E,user:B})=>{await C({id:O,data:E,user:B})},{mutateAsync:C}=de.useMutation({mutationFn:x,onSuccess:()=>{r("Tarea actualizada correctamente");const O={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[O[s],n]}),o.invalidateQueries({queryKey:["done_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(E){console.error("Error invalidating queries:",E)}},onError:O=>{console.error("Failed to update the task.",O)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]})}}),{mutateAsync:k}=de.useMutation({mutationFn:l,onSuccess:()=>{const O={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[O[s],n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(E){console.error("Error updating the element:",E)}},onError:O=>{console.error("Failed to update the task.",O)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:F}=de.useMutation({mutationFn:m,onSuccess:()=>{const O={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o.setQueryData([O[s],n],E=>{console.log({oldData:E})}),s==="kanban-general"&&(o.invalidateQueries({queryKey:[O[s],n]}),o.invalidateQueries({queryKey:["done_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(E){console.error("Error invalidating queries:",E)}},onError:O=>{console.error("Failed to update the task.",O)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["done_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:q}=de.useMutation({mutationFn:g,onSuccess:()=>{const O={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[O[s],n]}),o.invalidateQueries({queryKey:["done_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(E){console.error("Error invalidating queries:",E)}},onError:O=>{console.error("Failed to update the task.",O)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["done_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:T}=de.useMutation({mutationFn:h,onSuccess:()=>{const O={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[O[s],n]}),o.invalidateQueries({queryKey:["done_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(E){console.error("Error invalidating queries:",E)}},onError:O=>{console.error("Failed to reassign the task.",O)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["done_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:S}=de.useMutation({mutationFn:u,onSuccess:()=>{const O={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[O[s],n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(E){console.error("Error updating the element:",E)}},onError:O=>{console.error("Failed to update the task.",O)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}});return{updatingTask:b,updateTask:x,startTask:async({id:O})=>{await S({id:O})},startWorking:y,completeTask:async({id:O,idAtraso:E})=>{await F({id:O,idAtraso:E})},reasignResponsible:async({id:O,idNewResponsible:E,typeOfSelect:B})=>{await T({id:O,idNewResponsible:E,typeOfSelect:B})},updateUnitys:async({repeats:O,id:E})=>{await q({repeats:O,id:E})},pauseTask:async({id:O,motiveId:E})=>{console.log({taksId:O,motivoId:E,user:a==null?void 0:a.id})},postPauseTask:w,postReanudeTask:f}};function ao(e,a){const n=a??0;return(e??"")!==""&&n===2&&n===2||!(e??"")}function so(e){const a=e.repeatsToDo;return a==null||a<=0?!1:(e.repeats??0)!==a}function qt(e){return e.status===2||so(e)?!1:ao(e.nameRequiredTask,e.statusRequiredTask)}const la=({trigger:e,user:a,showUser:n=!0})=>t.jsx(ce.Tooltip,{dispatch:e,children:n&&t.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:[t.jsx(Le,{imageUrl:a.image??"",alt:a.name}),t.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:a.name})]})});class no{static toDomain(a){return{id:a.id,name:a.nombre,color:a.color}}}const oo=()=>{const{tasks_api:e}=ge();return{teams:de.useQuery({queryKey:["teams","all"],queryFn:async()=>{const n=await e.get("/api/equipos");return be(n.data).map(no.toDomain)},refetchOnWindowFocus:!1})}};class Rt{static toUsers(a){var n,s,o;return{id:a.id,name:a.nombre,image:(o=(s=(n=a.imagen)==null?void 0:n.formats)==null?void 0:s.thumbnail)==null?void 0:o.url,tasksUser:{email:a.tasksUser.email,id:a.tasksUser.id,nombre:a.tasksUser.nombre},role:a.role}}static toUsersV2(a){var n,s,o;return{id:a.id,name:a.nombre,image:(o=(s=(n=a.imagen)==null?void 0:n.formats)==null?void 0:s.thumbnail)==null?void 0:o.url,role:a.role}}static toUsersWithIndex(a){var s,o,i;const n={};for(const r of a)n[r.email]={...r,image:(i=(o=(s=r.imagen)==null?void 0:s.formats)==null?void 0:o.thumbnail)==null?void 0:i.url};return n}}const ro=async({tasks_api:e})=>{try{const a=await e.get("/api/getAllOBPusersMembers");return be(a.data).map(Rt.toUsers)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},io=async({tasks_api:e})=>{try{const a={filters:{$and:[{role:{name:{$in:["Project Manager","Operation Manager","Administrador"]}}},{blocked:{$eq:!1}}]}},n=Pe.stringify(a,{encodeValuesOnly:!0}),s=await e.get(`/api/users?${n}`),i=be(s.data).map(d=>d.email),r=await e.get(`/api/getAllOBPusers?filters[name][$in]=${i}`);return be(r.data).map(Rt.toUsersV2)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},lo=async({users:e})=>{try{const a=be(e);return Rt.toUsersWithIndex(a)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},co=()=>{const{tasks_api:e}=ge();return{users:de.useQuery({queryKey:["users"],queryFn:()=>ro({tasks_api:e}),staleTime:1e3*60*60*24})}},uo=()=>{const{tasks_api:e}=ge();return{users:de.useQuery({queryKey:["allUsers"],queryFn:()=>io({tasks_api:e}),staleTime:1e3*60*60*24})}},Ua=({users:e,onClick:a,responsible:n,role:s,status:o})=>{const{getOBPUrlApi:i}=ge(),r=`button-assign-users-${Math.random().toString(36).substring(2,15)}`,{setElementPosition:c,position:d,clearPosition:l}=ka(),u=p.useRef(null),m="Project Manager",g=()=>n?null:e.length>3&&t.jsx(ce.Tooltip,{dispatch:t.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:t.jsx("p",{className:"tw-text-s tw-font-bold tw-text-white ",children:`+${e.length-3}`})}),children:t.jsx("div",{className:"tw-border-containers tw-h-fit tw-w-fit tw-rounded-lg tw-bg-bg-card tw-p-2",children:e==null?void 0:e.slice(3).map((x,y)=>t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2 ",children:[t.jsx(Le,{imageUrl:x.image??"",alt:x.name},y),t.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:x.name})]},y))})}),w=()=>{if(n){let x=e.find(y=>y.id===n);return t.jsx("div",{children:t.jsx(la,{trigger:t.jsx(Le,{imageUrl:x==null?void 0:x.image,alt:x==null?void 0:x.name},n),user:x,showUser:!(d!=null&&d.x)})})}return(e==null?void 0:e.length)>0&&e.slice(0,3).map((x,y)=>t.jsx("div",{className:`${y===0?"":"tw-ml-[-8px]"}`,children:t.jsx(la,{trigger:t.jsx(Le,{imageUrl:x.image,alt:x.name}),user:x,showUser:!(d!=null&&d.x)})},x.id||y))},f=({children:x})=>t.jsx("label",{ref:u,htmlFor:r,className:"tw-flex tw-cursor-pointer tw-items-center",children:x});if(e.length===0)return t.jsx(f,{children:t.jsx(ce.Icons,{icon:"user",size:"xs",strokeWidth:3})});const h=()=>{var T;const[x,y]=p.useState(),[b,C]=p.useState("team"),{teams:k}=oo(),{users:F}=co();p.useEffect(()=>{var S,v;u.current&&y(((d==null?void 0:d.x)??0)-(((v=(S=u.current)==null?void 0:S.getBoundingClientRect())==null?void 0:v.width)??0))},[u==null?void 0:u.current,d==null?void 0:d.x]);const q=()=>{const S=[{id:"team",label:"Equipo"},{id:"responsible",label:"Responsable"}];return t.jsx("div",{className:"tw-flex tw-w-full tw-justify-center tw-gap-l tw-font-bold tw-text-texts-placeholder",children:S.map((v,R)=>t.jsx("button",{className:`tw-w-full tw-border-texts-placeholder tw-text-center tw-text-sm ${b===v.id?"tw-text-primary-pastel":""} ${R===S.length-1?"tw-border-r-0":" tw-border-r-2"}`,onClick:()=>C(v.id),children:v.label},v.id))})};return s===m||o===0&&s!==m?(d==null?void 0:d.x)&&dt.createPortal(t.jsx("div",{"data-portal-host":!0,className:`absolute tw-h-fit tw-w-[300px] tw-p-[1rem] ${x?"tw-block":"tw-hidden"}`,style:{top:`${d==null?void 0:d.y}px`,left:`${x}px`,zIndex:1},children:t.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:[t.jsx(q,{}),t.jsx(La,{options:b==="team"?k.data.map(S=>({id:S.id,name:S.name,image:""})):((T=F.data)==null?void 0:T.map(S=>Lt(S,i())))||[],onselect:S=>{var v;l(),a&&a((v=S.tasksUser)==null?void 0:v.id,b)}})]})}),document.body):null};return t.jsxs(t.Fragment,{children:[t.jsxs(f,{children:[w(),g()]}),t.jsx("button",{className:"tw-hidden",id:r,onClick:()=>c(u)}),t.jsx(h,{})]})},Ha=({priority:e,id:a,withLabel:n=!1})=>{var w,f,h,x,y;const{updatingTask:s}=He(),o=p.useId().replace(/:/g,""),[i,r]=p.useState(null),{user:c}=Te(),[d,l]=p.useState(e);p.useEffect(()=>{l(e)},[e]);const u={0:{title:"Normal",color:fe.primary.regular},1:{title:"Baja",color:fe.success.regular},2:{title:"Media",color:fe.warning.regular},3:{title:"Alta",color:fe.danger.regular}},m=()=>{if(!i)return null;const b=({priorityTask:C,text:k})=>{var F,q;return t.jsxs("button",{onClick:async()=>{r(null),await s({id:a,data:{prioridad:C},user:c==null?void 0:c.id}),l(C)},className:"tw-flex tw-items-center tw-gap-m tw-px-l tw-py-s hover:tw-bg-primary-light",children:[t.jsx(ce.Icons,{icon:"flag",size:"xs",strokeWidth:4,color:(F=u[C??0])==null?void 0:F.color}),t.jsx("p",{className:"tw-text-sm",style:{color:(q=u[C??0])==null?void 0:q.color},children:k})]})};return dt.createPortal(t.jsx("div",{onBlur:()=>{r(null)},id:`${o}-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((C,k)=>t.jsx(b,{priorityTask:k,text:C.title},k))}),document.body)},g=b=>{b.stopPropagation()};return t.jsxs("div",{className:"tw-relative tw-h-[22px]",onClick:g,onPointerDown:g,children:[t.jsxs("label",{onBlur:()=>{r(null)},htmlFor:o,className:"tw-flex tw-cursor-pointer tw-items-center tw-gap-2 active:tw-opacity-50",children:[t.jsx(ce.Tooltip,{dispatch:t.jsx(ce.Icons,{icon:"flag",size:"xs",strokeWidth:4,color:(w=u[d??0])==null?void 0:w.color}),children:t.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-p-5 tw-text-sm",style:{color:(f=u[d??0])==null?void 0:f.color},children:`Prioridad: ${(h=u[d??0])==null?void 0:h.title}`})}),n&&t.jsx("span",{style:{color:(x=u[d??0])==null?void 0:x.color},className:"tw-text-lg tw-font-normal",children:((y=u[d??0])==null?void 0:y.title)??"Sin prioridad"})]}),t.jsx("button",{id:o,onClick:b=>{b.stopPropagation(),r(i?null:{x:b.clientX,y:b.clientY})},className:"tw-hidden"}),t.jsx(m,{})]})};function po(e,a){return((e==null?void 0:e.map(s=>{var o;return{id:s.id,nombre:s.motivo_imj??"",categoria:(o=s.categoria)==null?void 0:o.nombre}}).filter(s=>s.categoria===a))??[]).filter(s=>typeof s.id=="number"&&!Number.isNaN(s.id)&&s.nombre.length>0).map(s=>({id:s.id,nombre:s.nombre}))}function mo(e){return e.map(a=>({id:a.id,label:a.nombre}))}const Re={TO_SECOND:"task-move-first-to-second",TO_THIRD:"task-move-first-to-third",TO_FOURTH:"task-move-first-to-fourth"};function wo(e,a){const n=[];return e===0&&n.push({id:Re.TO_SECOND,label:"Mover a trabajando",icon:Ce.faArrowRight}),e===1&&n.push({id:Re.TO_SECOND,label:"Mover a completada",icon:Ce.faArrowRight},{id:Re.TO_FOURTH,label:"Mover por hacer",icon:Ce.faArrowLeft}),a?n.push({id:Re.TO_THIRD,label:"Eliminar atraso"}):n.push({id:Re.TO_THIRD,label:"Agregar atraso"}),n}function fo(e){return e===0?{title:"Mover a trabajando"}:{title:"Mover a completada"}}function go(){return{title:"Mover a por hacer"}}function ca({copy:e,onMove:a}){return t.jsxs("div",{className:"tw-flex tw-h-fit tw-w-max tw-max-w-[280px] 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:[t.jsx("p",{className:"tw-text-left tw-text-[14px] tw-font-semibold tw-text-black-black_medium",children:e.title}),t.jsx(j.Button,{type:"button",fullWidth:!0,size:"xs",color:"primary",onClick:a,children:"Mover"})]})}const Ka=({status:e,nameRequiredTask:a,statusRequiredTask:n,id:s,statusLateTask:o=null,projectID:i,atrasoId:r,categoria:c,disabled:d=!1})=>{const l=p.useRef(null),u=p.useRef(null),m=p.useRef(null),{startWorking:g,completeTask:w,startTask:f}=He(),h=p.useRef(!1),[x,y]=p.useState(!1),[b,C]=p.useState(null),[k,F]=p.useState("first"),q=a!==""&&n===2,[T,S]=p.useState(null),{atrasoReasons:v,isLoading:R,createAtraso:K,deleteAtraso:J}=$a({enabled:!0}),[H,O]=p.useState(null),E=p.useCallback(()=>{var P;(P=l.current)==null||P.close()},[]);p.useEffect(()=>{o&&F("third")},[o]),p.useEffect(()=>{if(!x)return;const P=()=>{E()};return window.addEventListener("scroll",P,!0),document.addEventListener("scroll",P,!0),()=>{window.removeEventListener("scroll",P,!0),document.removeEventListener("scroll",P,!0)}},[x,E]);const B=P=>{F(P),P==="second"?C(e===0?"Trabajando":"Completadas"):P==="fourth"&&C("Por hacer")},M=()=>{if(h!=null&&h.current)return t.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:t.jsx("p",{className:"tw-font-regular tw-text-sm tw-font-normal tw-text-primary-pastel",children:"Moviendo..."})});const P=wo(e,r);return t.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:t.jsx(j.ListBase,{variant:"default",list:{items:P},events:{onItemClick:$=>{switch($.id){case Re.TO_SECOND:B("second");break;case Re.TO_THIRD:B("third");break;case Re.TO_FOURTH:B("fourth");break}}}})})},z=()=>t.jsx(ca,{copy:fo(e),onMove:()=>{h.current=!0,b==="Trabajando"?g({id:s}):b==="Por hacer"?f({id:s}):w({id:s,idAtraso:r}),E()}}),ee=()=>{if(R)return t.jsx("div",{children:"Cargando motivos..."});const P=po(v,c==null?void 0:c.nombre),$=mo(P);return P.length>0?t.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:[!T&&!r?t.jsxs(t.Fragment,{children:[t.jsx("p",{className:"tw-mb-[11px] tw-text-left tw-text-[14px] tw-font-semibold tw-text-black-black_regular",children:"Atraso de tarea"}),t.jsx(j.Dropdown,{field:{placeholder:"Seleccione una opción"},items:{options:$,idName:"id"},values:{value:(H==null?void 0:H.id)??""},menuSearch:{searchable:!0,searchPlaceholder:"Buscar"},popover:{absolute:!1,closeOnClickOutside:!0,dropdownId:`task-atraso-motivo-${s}`,popoverZIndex:1200},events:{onValueChange:Q=>{const D=Number(Q);if(Number.isNaN(D))return;const A=P.find(W=>W.id===D);O({id:D,nombre:(A==null?void 0:A.nombre)??""})},onOptionSelect:Q=>{const D=Q.id;D==null||Number.isNaN(Number(D))||O({id:Number(D),nombre:String(Q.label??"")})}}})]}):t.jsxs(t.Fragment,{children:[t.jsx("p",{className:"tw-text-left tw-text-[14px] tw-font-semibold tw-text-black-black_medium",children:"¿Estas seguro?"}),t.jsx("p",{className:"tw-text-left tw-text-[14px] tw-font-semibold tw-text-black-black_medium",children:r?"Estás eliminando el atraso de la tarea seleccionada":`Esta tarea está atrasada debido a ${(T==null?void 0:T.nombre)??""}`})]}),t.jsxs("div",{className:"tw-my-[11px] tw-flex tw-justify-end tw-gap-3",children:[t.jsx(j.Button,{type:"button",size:"xs",color:"secondary",onClick:()=>{T?S(null):E()},children:T?"Regresar":"Cancelar"}),t.jsx(j.Button,{type:"button",size:"xs",color:"primary",onClick:()=>{S(H),r&&!T?J(r):T&&Z()},children:"Aceptar"})]})]}):t.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"})},V=()=>t.jsx(ca,{copy:go(),onMove:()=>{h.current=!0,f({id:s}),E()}}),oe=()=>{if(k==="first")return M();if(k==="second")return z();if(k==="third")return ee();if(k==="fourth")return V()},Z=async()=>{if(H)try{await K({taskId:s,projectID:i,motivo:(H==null?void 0:H.id)??null}),E()}catch(P){console.error("Error al crear atraso:",P)}};return t.jsx(t.Fragment,{children:(q&&n===2||!a)&&t.jsxs(t.Fragment,{children:[t.jsx(j.Button,{ref:u,type:"button","aria-label":"Más opciones para mover la tarea",color:"secondary",pill:"pill",size:"xxs",icon:Ce.faEllipsis,disabled:d}),t.jsx(j.Popup,{ref:l,triggerRef:u,popupId:`task-move-menu-${s}`,position:"bottom-right",offset:1,closeOnClick:!1,closeOnClickOutside:!1,popoverArrow:!1,onOpen:()=>{y(!0),F("first")},onClose:()=>y(!1),children:t.jsx("div",{ref:m,className:`
3
- tw-ease tw-transition-all tw-duration-300
4
- ${k==="second"?"":"tw-translate-x-0"}
5
- `,children:oe()})})]})})},ho=({id:e,idAtraso:a})=>{const[n,s]=p.useState(!1),{completeTask:o}=He();return{checked:n,checkTask:()=>{s(!n),o({id:e,idAtraso:a})}}},da={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"},xo="tw-mx-[2px] tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-success-regular tw-transition-all",ua="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",Wa=({id:e,nameRequiredTask:a,statusRequiredTask:n,status:s,idAtraso:o,nameRequiredTaskResponsible:i,name_father_required_task:r,name_father_required_task_responsible:c,repeatsAreCompleted:d=!1})=>{const l=p.useId(),u=`checkbox-${e}-${l}`,{checked:m,checkTask:g}=ho({id:e,idAtraso:o}),f=!!(a&&a!==""&&n===2)||!a,h=!!r,x=s===1&&d,y=()=>t.jsx("label",{htmlFor:u,className:m?da.checked:da.unchecked,children:t.jsx(ce.Icons,{icon:m?"check_outline":"circle_checked",color:m?"white":fe.texts.placeholder,strokeWidth:4,size:m?"xs":"s"})});return s===2?t.jsx("div",{className:xo,children:t.jsx(ce.Icons,{icon:"circle_checked",color:"white",strokeWidth:4,size:"xs"})}):h?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"tw-flex tw-w-fit tw-shrink-0 tw-flex-row tw-flex-nowrap tw-items-center tw-gap-1",children:[t.jsx(ce.Tooltip,{dispatch:t.jsx("label",{className:"tw-cursor-help","aria-hidden":!0,children:t.jsx(ce.Icons,{icon:"info_circle",color:fe.warning.regular,strokeWidth:4})}),children:t.jsxs("div",{className:ua,children:[t.jsx("p",{className:"tw-w-[210px] tw-font-bold",children:"Tarea padre:"}),t.jsx("p",{children:r}),c&&t.jsxs("p",{className:"tw-font-bold",children:["Responsable: ",t.jsx("span",{className:"tw-font-normal",children:c})]}),t.jsx("span",{className:"tw-font-normal tw-italic tw-text-[#919191]",children:"Esta tarea completa automáticamente la tarea padre."})]})}),x&&y()]}),t.jsx("input",{id:u,checked:m,onChange:g,type:"checkbox",className:"tw-hidden","aria-hidden":!0})]}):f?t.jsxs(t.Fragment,{children:[s===1&&y(),t.jsx("input",{id:u,checked:m,onChange:g,type:"checkbox",className:"tw-hidden","aria-hidden":!0})]}):t.jsxs(t.Fragment,{children:[t.jsx(ce.Tooltip,{dispatch:t.jsx("label",{className:"tw-cursor-help","aria-hidden":!0,children:t.jsx(ce.Icons,{icon:"info_circle",color:fe.warning.regular,strokeWidth:4})}),children:t.jsxs("div",{className:ua,children:[t.jsx("p",{className:"tw-w-[210px] tw-font-bold",children:"Requiere completar su tarea:"}),t.jsx("p",{children:a}),i&&t.jsxs("p",{className:"tw-font-bold",children:["Responsable: ",t.jsx("span",{className:"tw-font-normal",children:i})]})]})}),t.jsx("input",{id:u,checked:m,onChange:g,type:"checkbox",className:"tw-hidden","aria-hidden":!0})]})};function bo({items:e}){var s;const[a,n]=p.useState(1);return t.jsxs(t.Fragment,{children:[t.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:e.map((o,i)=>t.jsx("div",{className:`tw-border-r tw-border-neutral-100 tw-pr-3 ${i!==0?"tw-px-3":""}`,children:t.jsx(Be.Button,{variant:"ghost",onClick:()=>n(o.id),className:`rounded-none tw-h-12 tw-py-1 tw-text-xl tw-font-semibold ${a===o.id?"tw-border-primary tw-border-b-2 tw-text-primary-regular":"tw-border-b-0 tw-text-neutral-400"}`,children:o.label},o.id)},o.id))}),t.jsx("div",{className:"tw-flex-1 tw-overflow-y-auto tw-bg-white tw-pt-4",children:(s=e.find(o=>o.id===a))==null?void 0:s.component})]})}function yo({comment:e}){var o,i,r,c,d;const{getImageOBP:a}=ge(),n=(c=(r=(i=(o=e==null?void 0:e.autor)==null?void 0:o.imagen)==null?void 0:i.formats)==null?void 0:r.thumbnail)==null?void 0:c.url;function s(l){const u=ct.parseISO(l);return ct.formatDistanceToNow(u,{locale:It.es,addSuffix:!0})}return t.jsx("div",{children:t.jsxs("div",{className:"tw-flex tw-flex-row tw-items-start tw-gap-3",children:[t.jsx(Le,{size:"xxl",imageUrl:n?a(n):"",alt:"@shadcn"}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-1",children:[t.jsxs("div",{className:"tw-flex tw-flex-row tw-gap-2",children:[t.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-900",children:(d=e==null?void 0:e.autor)==null?void 0:d.nombre}),t.jsx("span",{className:"tw-mt-[2px] tw-text-base tw-font-normal tw-text-neutral-600",children:s(e==null?void 0:e.createdAt)})]}),t.jsx("p",{className:"tw-text-xl tw-font-normal tw-text-neutral-600",children:e==null?void 0:e.comentario})]})]})})}function jo({currentUser:e,data:a,taskId:n,onNewComment:s}){var w,f,h;const{tasks_api:o,getImageOBP:i}=ge(),{register:r,handleSubmit:c,reset:d}=Ie.useForm(),[l,u]=p.useState([]),m=(h=(f=(w=e==null?void 0:e.imagen)==null?void 0:w.formats)==null?void 0:f.thumbnail)==null?void 0:h.url;p.useEffect(()=>{if(a!=null&&a.comentarios){const x=[...a.comentarios].sort((y,b)=>new Date(b.createdAt).getTime()-new Date(y.createdAt).getTime());u(x)}},[a]);const g=async x=>{try{const y={autor:{id:e==null?void 0:e.id,email:e==null?void 0:e.email,nombre:e==null?void 0:e.nombre,imagen:e==null?void 0:e.imagen},comentario:x==null?void 0:x.comment,createdAt:new Date().toISOString()};await o.post("/api/comentarios",{data:{autor:e==null?void 0:e.id,comentario:x.comment,tarea:n}}),s(!0),u(b=>[y,...b]),d()}catch(y){console.error("Error al agregar comentario:",y)}};return t.jsxs("div",{className:"tw-flex tw-h-full tw-flex-col tw-gap-4",children:[t.jsxs("form",{onSubmit:c(g),className:"tw-flex tw-flex-row tw-items-center tw-gap-3",children:[t.jsx(Le,{size:"xxl",imageUrl:m?i(m):"",alt:"@shadcn"}),t.jsx(Be.Input,{...r("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"})]}),l&&l.map((x,y)=>t.jsx(yo,{comment:x},y))]})}function vo({data:e}){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=s=>s?ct.format(new Date(s),"d MMM",{locale:It.es}):"";return t.jsxs("div",{children:[t.jsxs("div",{className:"tw-flex tw-flex-row tw-items-center tw-gap-4",children:[t.jsx(Be.Label,{className:"tw-text-2xl tw-font-medium tw-text-neutral-900",children:"Tareas dependientes"}),t.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:e==null?void 0:e.length})]}),t.jsx("div",{className:"tw-mt-3 tw-flex tw-flex-col tw-gap-2 tw-rounded-lg tw-border tw-border-neutral-200",children:e==null?void 0:e.map(s=>{var o,i,r,c,d;return t.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:[t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[t.jsx(Le,{imageUrl:(c=(r=(i=(o=s.responsable)==null?void 0:o.image)==null?void 0:i.formats)==null?void 0:r.thumbnail)==null?void 0:c.url}),t.jsx("p",{className:"tw-w-[400px] tw-overflow-hidden tw-text-ellipsis tw-text-nowrap tw-text-sm tw-font-normal",children:s==null?void 0:s.texto_corto})]}),t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-1",children:[t.jsx("p",{className:"tw-text-sm tw-font-normal",children:n(s==null?void 0:s.createdAt)}),t.jsx("div",{className:`tw-block tw-h-4 tw-w-4 tw-rounded-full tw-bg-gray-400 ${((d=a[s==null?void 0:s.estatus])==null?void 0:d.color)??"tw-bg-gray-400"}`})]})]},s.id)})})]})}function _o({id:e,texto_largo:a,user_id:n}){const[s,o]=p.useState(a),{updatingTask:i}=He(),r=async()=>{await i({id:e,data:{texto_largo:s},user:n})};return p.useEffect(()=>{o(a)},[a]),t.jsxs("div",{className:"tw-mt-8 tw-flex tw-w-full tw-flex-col tw-gap-3",children:[t.jsx("h6",{className:"tw-text-2xl tw-font-semibold tw-text-neutral-900",children:"Descripción"}),t.jsx(Be.Input,{value:s,onChange:c=>o(c.target.value),onBlur:r,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:e,setIsOpen:a,taskId:n}){var y,b,C,k,F,q,T,S,v;const[s,o]=p.useState(null),[i,r]=p.useState(!1),[c,d]=p.useState(!1),[l,u]=p.useState(null),m=(k=(C=(b=(y=s==null?void 0:s.responsable)==null?void 0:y.imagen)==null?void 0:b.formats)==null?void 0:C.thumbnail)==null?void 0:k.url,{tasks_api:g,getImageOBP:w}=ge(),{user:f}=Te();p.useEffect(()=>{if(e&&n||i){const R=async()=>{const J=await g.get(`/api/detalleTarea/${n}`);o(J==null?void 0:J.data)},K=async()=>{const J=await g.get(`/api/users/${f.id}`);u(J==null?void 0:J.data)};R(),K()}},[e,n,i,f.id,g]);const h=R=>R?ct.format(R,"d MMM yyyy, h:mmaaa",{locale:It.es}):"Fecha no disponible",x=[{id:1,label:"Todo",component:t.jsx(jo,{taskId:n,currentUser:l,data:s,onNewComment:r})},{id:2,label:"Dependencias",component:t.jsx(vo,{data:s==null?void 0:s.ids_t_dependientes})}];return e&&dt.createPortal(t.jsxs(t.Fragment,{children:[t.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 ${e?"tw-pointer-events-auto tw-block":"tw-pointer-events-none tw-hidden"}`,onClick:()=>a(!1)}),t.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 ${e?"tw-pointer-events-auto tw-right-0 tw-block":"tw-pointer-events-none tw-right-[-100%] tw-hidden"}`,children:t.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:[t.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:[t.jsxs("div",{className:"tw-relative tw-flex tw-flex-row tw-items-start tw-gap-2",children:[((F=s==null?void 0:s.id_t_requerida)==null?void 0:F.id)&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"tw-cursor-help",onMouseOver:()=>d(!0),onMouseLeave:()=>d(!1),children:t.jsx(ce.Icons,{icon:"info_circle",color:fe.warning.regular,strokeWidth:4})}),c&&(()=>{var K;const R=at(s==null?void 0:s.id_t_requerida);return t.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:[t.jsx("p",{className:"tw-font-bold",children:"Requiere completar su tarea:"}),t.jsx("p",{className:"tw-text-2xl tw-font-normal tw-text-neutral-600",children:(K=s==null?void 0:s.id_t_requerida)==null?void 0:K.texto_corto}),R&&t.jsxs("p",{className:"tw-font-bold",children:["Responsable: ",t.jsx("span",{className:"tw-font-normal",children:R})]})]})})()]}),t.jsx("div",{className:"tw-flex tw-flex-row tw-items-center tw-gap-2",children:t.jsxs("h3",{className:"tw-text-3xl tw-font-semibold tw-text-neutral-900",children:[s==null?void 0:s.texto_corto,(s==null?void 0:s.atraso)&&t.jsx(ce.TooltipV2,{content:(q=s==null?void 0:s.atraso)==null?void 0:q.motivo,position:"bottom",children:t.jsx("button",{className:"tw-ml-2 tw-inline-block tw-h-fit tw-align-middle",children:t.jsx(ce.Icons,{icon:"exclamation_triangle",color:fe.warning.dark,style:{width:"20px",height:"20px"}})})})]})})]}),t.jsx(Be.Button,{variant:"shadow",size:"sm",onClick:()=>a(!1),className:"tw-h-12 tw-w-12 tw-bg-neutral-100",children:t.jsx(ce.Icons,{icon:"x_outline",size:"xs",strokeWidth:4,color:"#000"})})]}),t.jsx("div",{className:"tw-mt-6 tw-flex tw-w-full tw-flex-row tw-justify-between",children:t.jsxs("span",{className:"tw-text-xl tw-font-medium tw-text-black-black_light",children:[s==null?void 0:s.campania," / ",s==null?void 0:s.nombre_medio]})}),t.jsx(_o,{id:n,texto_largo:s==null?void 0:s.texto_largo,user_id:f.id}),t.jsx(Be.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:t.jsxs(Be.AccordionItem,{value:"item-1",className:"tw-border-none",children:[t.jsx(Be.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"}),t.jsx(Be.AccordionContent,{className:"tw-border-none",children:t.jsxs("div",{className:"tw-gap-xy-details tw-grid tw-w-full tw-grid-cols-3 tw-p-4",children:[t.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[t.jsx("span",{className:"tw-bg-black tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-[100%] tw-tracking-normal",children:"Responsable"}),(T=s==null?void 0:s.responsable)!=null&&T.nombre?t.jsxs("div",{className:"tw-flex tw-flex-row tw-items-center tw-gap-2",children:[t.jsx(Le,{size:"xxl",imageUrl:m?w(m):"",alt:"@shadcn"}),t.jsx("span",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:(S=s==null?void 0:s.responsable)==null?void 0:S.nombre})]}):t.jsx("span",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:"Sin responsable"})]}),t.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[t.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"}),t.jsx("div",{className:"tw-flex tw-flex-row tw-gap-2",children:t.jsx("span",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:((v=s==null?void 0:s.equipo)==null?void 0:v.nombre)??"Sin equipo"})})]}),t.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[t.jsx("span",{className:"tw-text-xl tw-font-medium tw-text-neutral-900",children:"Prioridad"}),t.jsx(Ha,{priority:parseInt(s==null?void 0:s.prioridad)||0,id:n,withLabel:!0})]}),t.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[t.jsx("span",{className:"tw-bg-black tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-[100%] tw-tracking-normal",children:"Lista"}),t.jsx("div",{className:"tw-flex tw-flex-row tw-gap-2",children:t.jsx("span",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:(s==null?void 0:s.lista)??"Sin lista"})})]}),t.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[t.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"}),t.jsx("p",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:h(s==null?void 0:s.f_inicio_estimada)})]}),t.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[t.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"}),t.jsx("p",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:h(s==null?void 0:s.f_fin_estimada)})]}),t.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[t.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"}),t.jsx("p",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:h(s==null?void 0:s.ffin)})]}),t.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[t.jsx("span",{className:"tw-bg-black tw-font-sans tw-text-[1.4rem] tw-font-semibold tw-leading-[100%] tw-tracking-normal",children:"Creado"}),t.jsx("p",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:h(s==null?void 0:s.createdAt)})]}),t.jsxs("div",{className:"tw-flex tw-w-auto tw-flex-col tw-gap-2",children:[t.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"}),t.jsx("p",{className:"tw-text-lg tw-font-normal tw-text-neutral-600",children:h(s==null?void 0:s.updatedAt)})]})]})})]})}),t.jsx(bo,{items:x})]})})]}),document.body)}class No{static toPauseReasons(a){return{id:a.id,motivo_imj:a.motivo_imj}}}const To=async({tasks_api:e})=>{try{const a=await e.get("/api/motivos");return be(a.data).map(No.toPauseReasons)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Co=()=>{const{tasks_api:e}=ge();return{pauseReasons:de.useQuery({queryKey:["pause_task_reasons"],queryFn:()=>To({tasks_api:e}),staleTime:1e3*60*60*24})}};class So{static toKanbanTasks(a){var i,r,c,d,l,u,m,g,w,f,h,x,y;const n=at(a==null?void 0:a.id_t_requerida),s=at(a==null?void 0:a.tarea_padre);let o=[];return a!=null&&a.responsable&&o.push({id:a.responsable.id,name:a.responsable.nombre,image:(l=(d=(c=(r=(i=a.responsable)==null?void 0:i.userOBP)==null?void 0:r.imagen)==null?void 0:c.formats)==null?void 0:d.thumbnail)==null?void 0:l.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(b=>{var C,k,F,q,T;o!=null&&o.find(S=>S.id===b.idUser.id)||b.idUser&&o.push({id:b.idUser.id,name:b.idUser.nombre,image:(q=(F=(k=(C=b==null?void 0:b.userOBP)==null?void 0:C.imagen)==null?void 0:k.formats)==null?void 0:F.thumbnail)==null?void 0:q.url,role:((T=b.userOBP)==null?void 0:T.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:(g=a==null?void 0:a.proyecto)==null?void 0:g.nombre,idProject:(w=a==null?void 0:a.proyecto)==null?void 0:w.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:o,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:s,statusRequiredTask:((x=a.id_t_requerida)==null?void 0:x.estatus)??null,nameRequiredTask:((y=a.id_t_requerida)==null?void 0:y.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 ut=async({filters:e,tasks_api:a})=>{try{const s=(await a.get("/api/listado_tareas?populate=*",{params:{...e,cancelada:!1}})).data.tareas.map(be),o=new Set;if(s.forEach(i=>{var r;(r=i==null?void 0:i.id_t_requerida)!=null&&r.id&&o.add(i.id_t_requerida.id)}),o.size>0){const i=Array.from(o),r=Pe.stringify({filters:{id:{$in:i}},populate:{responsable:{fields:["id","nombre"]},equipo:{fields:["id","nombre"]}}},{encodeValuesOnly:!0});try{const c=await a.get(`/api/tareas?${r}`),d=be(c.data.data||c.data),l=Array.isArray(d)?d:[d],u=new Map(l.map(m=>[m.id,m]));s.forEach(m=>{var g;if((g=m==null?void 0:m.id_t_requerida)!=null&&g.id){const w=u.get(m.id_t_requerida.id);w&&(m.id_t_requerida={...m.id_t_requerida,responsable:w.responsable||null,equipo:w.equipo||null})}})}catch{}}return s.map(So.toKanbanTasks)}catch(n){throw console.log({error:n}),`Error al obtener las tareas: ${n}`}},zt=30,$t=e=>{var a;if(e!=null&&e.hasNextPage){const n=(a=e==null?void 0:e.data)==null?void 0:a.pages[e.data.pages.length-1];(n==null?void 0:n.length)===zt&&(e==null||e.fetchNextPage())}},$e=e=>({pagination:{page:e,pageSize:zt,withCount:!0}}),Va=()=>{var l;const e=de.useQueryClient(),{tasks_api:a}=ge(),{user:n}=Te(),{filters:s}=ke(),[o,i]=p.useState(0),[r,c]=p.useState({owner:{user:n.id,config:((l=s==null?void 0:s.owner)==null?void 0:l.config)??"yo_y_mis_equipos",role:n.role},status:"por_hacer"}),d=de.useInfiniteQuery({initialPageParam:1,queryKey:["to_do_tasks",r],queryFn:({pageParam:u})=>ut({filters:{...r,status:"por_hacer",...$e(u)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(u,m)=>m.length+1});return p.useEffect(()=>{var u;Object.keys(s).length>0&&c({...s,owner:{user:n.id,config:((u=s==null?void 0:s.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:n.role},status:"por_hacer"})},[s]),p.useEffect(()=>{e.invalidateQueries({queryKey:["to_do_tasks",r]})},[r]),p.useEffect(()=>{(async()=>{const m=await a.get("/api/listado_tareas",{params:{...r,status:"por_hacer",cancelada:!1,...$e(1),tasks_api:a,justCount:!0}});i(m.data.total)})()},[r,d==null?void 0:d.data]),{toDoTasks:d,total:o,filtersToSend:r}};function Eo(e){return(e??[]).map(a=>({id:a.id,label:a.motivo_imj}))}const Po=({idTask:e,setOpen:a,paused:n})=>{const s=de.useQueryClient(),{toDoTasks:o,filtersToSend:i}=Va(),[r,c]=p.useState(!1),[d,l]=p.useState(null),{tasksProject:u}=Je(),{postPauseTask:m,postReanudeTask:g}=He(),{pauseReasons:w}=Co(),f=Eo(w==null?void 0:w.data),h=async()=>{try{if(d==null)return;if(a(!1),await m({id:e,motiveId:d}),await s.invalidateQueries({queryKey:["to_do_tasks",i]}),await s.invalidateQueries({queryKey:["tasksProject"]}),o&&typeof o.refetch=="function"||u&&typeof u.refetch=="function"){const y=await o.refetch(),b=await u.refetch();return[y,b]}}catch(y){console.error("Error al pausar la tarea:",y)}},x=async()=>{try{if(a(!1),await g({id:e}),await s.invalidateQueries({queryKey:["to_do_tasks",i]}),await s.invalidateQueries({queryKey:["tasksProject"]}),o&&typeof o.refetch=="function"||u&&typeof u.refetch=="function"){const y=await o.refetch(),b=await u.refetch();return[y,b]}}catch(y){console.error("Error al reanudar la tarea:",y)}};return t.jsx("div",{className:"tw-flex tw-w-[300px] tw-max-w-[300px] tw-items-center !tw-p-4",children:t.jsxs("div",{className:"tw-flex tw-w-full tw-flex-col tw-gap-s ",children:[t.jsx("h6",{className:"tw-font-regular tw-text-texts-subtexttw-truncate tw-text-xl",children:"Pausar tarea:"}),r?t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-s",children:[t.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-600",children:"Esta acción detendrá la campaña en curso."}),t.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):n?t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-s",children:[t.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-600",children:"Esta acción reanudará la campaña en curso."}),t.jsx("p",{className:"tw-text-xl tw-font-medium tw-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):t.jsx(j.Dropdown,{field:{placeholder:"Selecciona una razón"},items:{options:f,idName:"id"},values:{value:d??""},menuSearch:{searchable:!0,searchPlaceholder:"Buscar"},popover:{absolute:!1,closeOnClickOutside:!0,dropdownId:`task-pause-motivo-${e}`,popoverZIndex:1200},events:{onValueChange:y=>{const b=Number(y);Number.isNaN(b)||l(b)},onOptionSelect:y=>{const b=Number(y.id);Number.isNaN(b)||l(b)}}}),t.jsxs("div",{className:"tw-mt-5 tw-flex tw-w-full tw-justify-end tw-gap-m",children:[t.jsx(j.Button,{type:"button",onClick:()=>a(!1),size:"xs",color:"secondary",children:"Cancelar"}),n?t.jsx(j.Button,{type:"button",onClick:()=>x(),size:"xs",color:"primary",children:"Si, reanudar"}):t.jsx(j.Button,{type:"button",disabled:!d,onClick:()=>r?h():c(!0),size:"xs",color:"primary",children:"Aceptar"})]})]})})},Qa=({idTask:e,paused:a,popupId:n,children:s})=>{const o=p.useRef(null),i=p.useRef(null),[r,c]=p.useState(!1),[d,l]=p.useState(0),u=`task-pause-motivo-${e}`,m=p.useCallback(()=>{var g;(g=o.current)==null||g.close()},[]);return p.useEffect(()=>{if(!r)return;const g=w=>{const f=w.target;f instanceof Element&&(f.closest(`[data-popup-id="${n}"]`)||f.closest(`[data-dropdown-id="${u}"]`))||m()};return window.addEventListener("scroll",g,!0),document.addEventListener("scroll",g,!0),()=>{window.removeEventListener("scroll",g,!0),document.removeEventListener("scroll",g,!0)}},[r,m,n,u]),t.jsxs(t.Fragment,{children:[s(i),t.jsx(j.Popup,{ref:o,triggerRef:i,popupId:n,position:"bottom-left",offset:5,closeOnClick:!1,closeOnClickOutside:!1,popoverArrow:!1,onOpen:()=>{c(!0),l(g=>g+1)},onClose:()=>c(!1),children:t.jsx(Po,{idTask:e,paused:a,setOpen:g=>{g||m()}},d)})]})},Io=({id:e,task:a,endDate:n,users:s,willBePaused:o,nameProject:i,comments:r,priority:c,difficulty:d,responsible:l,nameRequiredTask:u,nameRequiredTaskResponsible:m,statusRequiredTask:g,status:w,repeatsToDo:f,repeats:h,medioName:x,paused:y,idProject:b,atraso:C,categoria:k,cambio_arte:F,name_father_required_task:q,name_father_required_task_responsible:T,boardColumnTitle:S,isBulkColumnLocked:v=!1})=>{var X,se,re;const[R,K]=p.useState(!1),J=p.useId(),{reasignResponsible:H,updateUnitys:O}=He(),{getOBPUrlApi:E}=ge(),[B,M]=p.useState(h??0),z=!!(f&&h===f),ee=!f||f===1,V=w===0,{user:oe}=Te(),Z=Ot(),P=!!(Z!=null&&Z.selectedTaskIds.includes(e)),$=qt({status:w,nameRequiredTask:u,statusRequiredTask:g,repeatsToDo:f,repeats:h}),Q=!!Z&&!!S&&S!=="Completadas"&&!v,D=Q&&$,A=Q&&!$&&!!(Z!=null&&Z.isBulkSessionActive),W=!!(Z!=null&&Z.isMultiSelectActive&&D),I=!D||!!(Z!=null&&Z.isBulkLoading),N=le=>{!Z||!S||I||Z.toggleTaskSelection(e,S)},U=()=>t.jsxs("div",{className:"tw-relative tw-flex tw-h-fit tw-w-full tw-items-center tw-justify-between",children:[t.jsxs("div",{className:"tw-flex tw-min-w-0 tw-flex-1 tw-flex-row tw-items-start tw-gap-[8px]",children:[w<2&&(q||z||ee||V)&&t.jsx("span",{"data-prevent-bulk-select":!0,children:t.jsx(Wa,{id:e,nameRequiredTask:u??"",statusRequiredTask:g??0,status:w,idAtraso:C==null?void 0:C.atrasoId,nameRequiredTaskResponsible:m,name_father_required_task:q,name_father_required_task_responsible:T,repeatsAreCompleted:z})}),t.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","data-prevent-bulk-select":!0,onClick:le=>{le.stopPropagation(),K(!0)},children:a})]}),$&&t.jsxs("div",{className:"tw-flex tw-shrink-0 tw-items-center tw-gap-2","data-prevent-bulk-select":!0,children:[Z?t.jsx("div",{className:"tw-flex tw-items-center tw-pt-0.5 tw-pr-2",children:t.jsx(j.Checkbox,{id:`kanban-bulk-select-${e}-${J}`,size:"sm",checked:P,disabled:I,onChange:N})}):null,t.jsx(Ka,{id:e,nameRequiredTask:u,status:w,statusRequiredTask:g,projectID:b,atrasoId:C==null?void 0:C.atrasoId,categoria:k,disabled:W})]})]}),L={0:{title:"Muy fácil",color:fe.primary.regular},1:{title:"Fácil",color:fe.success.regular},2:{title:"Media",color:fe.warning.regular},3:{title:"Difícil",color:fe.danger.regular},4:{title:"Muy difícil",color:fe.danger.dark}},_=le=>{M(te=>le==="minus"?Math.max(0,te-1):Math.min(f,te+1))},G=le=>{var te;return((te=le==null?void 0:le.charAt(0))==null?void 0:te.toUpperCase())??""},Y=le=>le==="Venta"?"accent":"danger",ae=v||!!(Z!=null&&Z.isBulkLoading),ie=A?"tw-cursor-not-allowed tw-opacity-60 hover:tw-border-cards hover:tw-bg-white":"tw-cursor-pointer hover:tw-border-active hover:tw-border-blue-500 hover:tw-bg-primary-light";return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:`tw-border-cards tw-relative tw-h-fit tw-max-w-[350px] tw-rounded-lg tw-border tw-p-[12px_12px] tw-transition-all tw-duration-300 ${ie} ${P?"tw-border-blue-500 tw-bg-primary-light":"tw-border-transparent tw-bg-white"} ${ae?"tw-pointer-events-none":""}`,children:[t.jsx(U,{}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-[4px] tw-py-2",children:[t.jsx("p",{className:"tw-font-regular tw-max-w-[250px] tw-truncate tw-text-xl tw-text-texts-subtext",children:i}),x&&t.jsx("p",{className:"tw-text-xl",children:x})]}),F&&t.jsx(j.Badge,{label:F.nombre,color:"gray",icon:xe.faImage,size:"md",theme:"solid"}),t.jsxs("div",{"data-prevent-bulk-select":!0,className:"tw-relative tw-flex tw-h-fit tw-w-full tw-items-center tw-justify-between tw-pb-1 tw-pt-5",children:[t.jsxs("div",{className:"tw-relative tw-flex tw-items-center",children:[t.jsx(Ua,{responsible:l,role:oe==null?void 0:oe.role,status:w,users:s.filter(le=>l?le.id===l:!0).map(le=>Lt(le,E())),onClick:async(le,te)=>{await H({idNewResponsible:le,id:e,typeOfSelect:te})}}),o&&t.jsx(Qa,{idTask:e,paused:y,popupId:`task-pause-menu-${e}`,children:le=>t.jsx("button",{ref:le,type:"button",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:t.jsx(ce.Icons,{icon:y?"play":"pause",size:"xs",strokeWidth:2})})})]}),t.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-m",children:[t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[t.jsx(j.Badge,{label:G((k==null?void 0:k.tipo)??"P"),color:Y((k==null?void 0:k.tipo)??"Preventa"),size:"sm",theme:"solid"}),C&&t.jsx(ce.Tooltip,{dispatch:t.jsx(ce.Icons,{icon:"exclamation_triangle",size:"xs",color:"#C62E1F",strokeWidth:4}),children:t.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: ${C==null?void 0:C.motivo}`})}),t.jsx(ce.Tooltip,{dispatch:t.jsx(ce.Icons,{icon:"difficulty",size:"xs",color:(X=L[d??0])==null?void 0:X.color,strokeWidth:4,style:{border:"1.5px"}}),children:t.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-p-5 tw-text-sm",style:{color:(se=L[d??0])==null?void 0:se.color},children:`Dificultad ${(re=L[d??0])==null?void 0:re.title}`})}),t.jsx(Ha,{priority:c,id:e}),!f||f&&w===0&&t.jsxs(t.Fragment,{children:[t.jsx(ce.Icons,{icon:"calendar",size:"xs",strokeWidth:3,color:fe.texts.subtext}),t.jsx("p",{className:"tw-font-regular tw-text-sm tw-text-texts-subtext",children:`${n.getDate()} ${Mt(n.getMonth()).slice(0,3)}`})]})]}),w===1&&f&&f>0&&t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-m",children:[t.jsx("p",{className:"tw-pr-[5px] tw-text-[10px] tw-text-texts-placeholder",children:"unidades"}),t.jsx("button",{onClick:()=>_("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:t.jsx(ce.Icons,{icon:"circle_minus",size:"xs",strokeWidth:3,color:fe.texts.placeholder})}),t.jsx("p",{className:"tw-text-[10px] tw-text-texts-placeholder",children:`${B??0} / ${f??0}`}),t.jsx("button",{onClick:()=>_("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:t.jsx(ce.Icons,{icon:"circle_plus",size:"xs",strokeWidth:3,color:fe.texts.placeholder})}),t.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:()=>{O({repeats:B,id:e})},children:"Agregar Unidad"})]})]})]}),r>0&&t.jsx("div",{className:"tw-mt-4 tw-border-t tw-border-gray-200 tw-pt-2",children:t.jsxs("button",{type:"button","data-prevent-bulk-select":!0,onClick:le=>{le.stopPropagation(),K(!0)},className:"tw-flex tw-items-center tw-gap-2",children:[t.jsx(ce.Icons,{icon:"comment",size:"xs",strokeWidth:4}),t.jsx("span",{className:"tw-font-regular tw-text-xl tw-text-gray-400",children:r})]})})]}),t.jsx(Ga,{taskId:e,isOpen:R,setIsOpen:K})]})},pt=({title:e,tasks:a,loadNextPage:n,isFetching:s,total:o,bulkSelectAllIds:i})=>{const r=p.useRef(null),c=p.useRef(null),d=p.useRef(!1);p.useEffect(()=>{var x;r!=null&&r.current&&(c!=null&&c.current)&&(c.current.style.minHeight=`${((x=r==null?void 0:r.current)==null?void 0:x.clientHeight)-300}px`)},[r==null?void 0:r.current]);const l=x=>{if(d.current)return;const{scrollTop:y,clientHeight:b,scrollHeight:C}=x==null?void 0:x.target,k=y/(C-b)*100;k<=95||k>=95&&(d.current=!0,n&&n(),setTimeout(()=>{d.current=!1},200))},u={"Por hacer":"tw-border-texts-placeholder",Trabajando:"tw-border-primary-regular",Completadas:"tw-border-success-regular"},m=Ot(),g=e,w=!!(m!=null&&m.baseColumn&&m.baseColumn!==e),f=!!m&&e!=="Completadas"&&(m==null?void 0:m.isBulkSessionActive)&&m.baseColumn===e&&typeof i=="function",h=()=>{if(!(!m||!i)){if(m.isFullColumnSelected){m.deselectAllSelectedTasks();return}m.selectEntireColumn(g,i)}};return t.jsxs("div",{ref:r,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[e]} ${w?"tw-opacity-40":""}`,children:[t.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between",children:[t.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between tw-w-full",children:[t.jsx("p",{className:"tw-text-2xl",children:e}),f&&t.jsx("button",{type:"button",className:"tw-text-s tw-font-medium tw-text-primary-regular disabled:tw-cursor-not-allowed disabled:tw-opacity-50 tw-mx-3",disabled:m==null?void 0:m.isBulkLoading,onClick:h,children:m!=null&&m.isBulkLoading?"Cargando…":m!=null&&m.isFullColumnSelected?"Quitar Selección":"Seleccionar todas"})]}),t.jsx("div",{className:"tw-flex tw-items-center tw-gap-[8px]",children:t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-[4px]",children:[t.jsx(ce.Icons,{icon:"group_files",size:"xs",strokeWidth:5,color:fe.texts.placeholder}),t.jsx("p",{className:"tw-text-2xl tw-text-texts-placeholder",children:o??0})]})})]}),t.jsxs("div",{ref:c,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(x=>t.jsx(Io,{...x,boardColumnTitle:m?g:void 0,isBulkColumnLocked:!!(m&&w)},x.id)),s?t.jsx(Zn,{}):t.jsx("p",{className:"tw-text-center tw-text-2xl tw-text-gray-500",children:"No hay más tareas por mostrar..."})]})]})},pa=[{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"}]}],Ao=()=>{const{user:e}=Te(),[a,n]=p.useState([...pa]),s=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return p.useEffect(()=>{const o=[...pa];s.forEach(c=>{if(c.roles.includes(e.role)){const d=o.find(l=>l.id===c.id);d&&(d.options.some(u=>u.id==="todas")||(d.options=[{id:"todas",name:"Todas las tareas"},...d.options]))}});const i=JSON.stringify(a),r=JSON.stringify(o);i!==r&&n(o)},[e.role]),{filters:a}},Do="/api/tareas/bulk-update-status";async function Fo(e,a){const{data:n}=await e.post(Do,a);return n}function ko(e){var a,n,s,o;if(Ye.isAxiosError(e)){const i=(a=e.response)==null?void 0:a.status,r=(n=e.response)==null?void 0:n.data;if(i===400){if(typeof r=="string"&&r.trim().length>0)return r.trim();if(r&&typeof r=="object"){const c=r.message;if(typeof c=="string"&&c.trim())return c.trim();const d=(s=r.details)==null?void 0:s.errors,l=(o=d==null?void 0:d[0])==null?void 0:o.message;if(typeof l=="string"&&l.trim())return l.trim()}return"Los datos enviados no son válidos. Revisa la selección e inténtalo de nuevo."}return typeof r=="string"&&r.trim().length>0?r.trim():e.message||"No se pudo actualizar las tareas."}return e instanceof Error?e.message:"No se pudo actualizar las tareas."}function Mo(){const{tasks_api:e}=ge(),{user:a}=Te();return de.useMutation({mutationKey:["tareas","bulk-update-status"],mutationFn:async n=>{const s=n.user_id??(a==null?void 0:a.id);if(s==null||s<1)throw new Error("No hay usuario válido para la actualización masiva.");try{return await Fo(e,{...n,user_id:s})}catch(o){throw new Error(ko(o))}}})}const xt={MOVE_TO_TRABAJANDO:"kanban-bulk-move-trabajando",MOVE_TO_POR_HACER:"kanban-bulk-move-por-hacer",MOVE_TO_COMPLETADAS:"kanban-bulk-move-completadas"};function Lo(e){const{isBulkLoading:a}=e;return[{type:"button",label:"Cancelar",icon:xe.faXmark,color:"secondary",pill:"pill",disabled:a,onClick:()=>{a||(e.setPendingTargetStatus(null),e.setActiveButtonId(null))}},{type:"button",label:"Confirmar",icon:xe.faCheck,color:"secondary",pill:"pill",disabled:a,onClick:()=>{a||e.onConfirmBulkMove()}}]}const bt="secondary";function Oo(e){const a=Lo({setActiveButtonId:e.setActiveButtonId,setPendingTargetStatus:e.setPendingTargetStatus,onConfirmBulkMove:e.onConfirmBulkMove,isBulkLoading:e.isBulkLoading});return e.baseColumn==="Por hacer"?[{id:xt.MOVE_TO_TRABAJANDO,label:"Mover a trabajando",icon:xe.faArrowRight,color:bt,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(1)},addons:a}]:e.baseColumn==="Trabajando"?[{id:xt.MOVE_TO_POR_HACER,label:"Mover a por hacer",icon:xe.faArrowLeft,color:bt,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(0)},addons:a},{id:xt.MOVE_TO_COMPLETADAS,label:"Mover a completadas",icon:xe.faArrowRight,color:bt,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(2)},addons:a}]:[]}const Bo="Seleccionados";function Xa(){const e=Ot(),[a,n]=p.useState(null),s=a!==null,o=de.useQueryClient(),{mutate:i}=Mo(),r=(e==null?void 0:e.selectedTaskIds.length)??0;p.useEffect(()=>{r===0&&n(null)},[r]);const c=p.useCallback(()=>{e!=null&&e.isBulkLoading||e==null||e.setPendingTargetStatus(null)},[e]),d=p.useCallback(()=>{n(null),e==null||e.exitBulkSelectionMode()},[e]),l=p.useCallback(()=>{if(!e)return;const m=e.pendingTargetStatus,g=e.selectedTaskIds;if(m==null||g.length===0)return;const w={tasks_ids:[...g],estatus:m,...m===2?{ended_at:new Date().toISOString()}:{}};e.setIsBulkLoading(!0),i(w,{onSettled:()=>{e.setIsBulkLoading(!1)},onSuccess:async()=>{await e.invalidateAfterBulkSuccess(o),n(null),e.exitBulkSelectionMode()},onError:()=>{n(null),e.setPendingTargetStatus(null)}})},[e,i,o]),u=p.useMemo(()=>e?Oo({baseColumn:e.baseColumn,setPendingTargetStatus:e.setPendingTargetStatus,setActiveButtonId:n,onConfirmBulkMove:l,isBulkLoading:e.isBulkLoading}):[],[e,l]);return!e||r===0||e.baseColumn!=="Por hacer"&&e.baseColumn!=="Trabajando"?null:t.jsx(j.Toolbar,{visible:!0,count:r,text:Bo,activeButtonId:a,onActiveButtonIdChange:n,onBackClick:c,buttons:u,onClose:d,showCounterInButtonsView:!s,showBackButton:!s,showCloseButton:!s})}const Ya=["to_do_tasks","working_tasks","done_tasks"],qo="tasksProject";function Ro(e){return Promise.all(Ya.map(a=>e.invalidateQueries({queryKey:[a]}))).then(()=>{})}function zo(e){return Promise.all(Ya.flatMap(a=>[e.invalidateQueries({queryKey:[a]}),e.refetchQueries({queryKey:[a]})])).then(()=>{})}function $o(e){return e.invalidateQueries({queryKey:[qo]}).then(()=>{})}const Uo=["Por hacer","Trabajando","Completadas"],Ho=()=>{const{defineFields:e}=ke(),{tasksProject:a}=Je(),{filters:n}=Ao();p.useEffect(()=>{(async()=>{let i=[...n];e(i)})()},[]);const s=p.useMemo(()=>{var o;return(o=a==null?void 0:a.data)==null?void 0:o.filter(i=>{var r;return((r=i==null?void 0:i.tasks)==null?void 0:r.length)===0}).reduce((i,r)=>(i[r.status]=i[r.status]||[],i[r.status].push(r),i),{})},[a==null?void 0:a.data]);return t.jsxs(qa,{invalidateAfterBulkSuccess:$o,children:[t.jsx(Xa,{}),t.jsx("div",{className:"tw-relative tw-flex tw-h-full tw-min-h-[100%] tw-w-full tw-gap-4",children:Uo.map((o,i)=>{const r=(s==null?void 0:s[i])??[];return t.jsx(pt,{total:r.length,title:o,tasks:r,isFetching:a==null?void 0:a.isFetching,isLoadingData:a==null?void 0:a.isLoading,bulkSelectAllIds:()=>Promise.resolve(r.filter(c=>qt({status:c.status,nameRequiredTask:c.nameRequiredTask,statusRequiredTask:c.statusRequiredTask,repeatsToDo:c.repeatsToDo,repeats:c.repeats})).map(c=>c.id))},o)})})]})};async function Ja(e){const a=[];let n=1;for(;;){const s=await ut({filters:{...e.filters,status:e.status,...$e(n)},tasks_api:e.tasks_api});for(const o of s)qt({status:o.status,nameRequiredTask:o.nameRequiredTask,statusRequiredTask:o.statusRequiredTask,repeatsToDo:o.repeatsToDo,repeats:o.repeats})&&a.push(o.id);if(s.length<zt)break;n+=1}return a}const Ko=()=>{var i,r;const{tasks_api:e}=ge(),{toDoTasks:a,total:n,filtersToSend:s}=Va(),o=[...((r=(i=a==null?void 0:a.data)==null?void 0:i.pages)==null?void 0:r.flat())??[]];return t.jsx(pt,{total:n,title:"Por hacer",tasks:o,loadNextPage:()=>$t(a),isFetching:a==null?void 0:a.isFetching,isLoadingData:a==null?void 0:a.isLoading,bulkSelectAllIds:()=>Ja({tasks_api:e,filters:s,status:"por_hacer"})})},Wo=()=>{var l;const e=de.useQueryClient(),{tasks_api:a}=ge(),{user:n}=Te(),{filters:s}=ke(),[o,i]=p.useState(0),[r,c]=p.useState({owner:{user:n.id,config:((l=s==null?void 0:s.owner)==null?void 0:l.config)??"yo_y_mis_equipos",role:n.role},status:"trabajando"}),d=de.useInfiniteQuery({initialPageParam:1,queryKey:["working_tasks",r],queryFn:({pageParam:u})=>ut({filters:{...r,status:"trabajando",...$e(u)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(u,m)=>m.length+1});return p.useEffect(()=>{var u;Object.keys(s).length>0&&c({...s,owner:{user:n.id,config:((u=s==null?void 0:s.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:n.role},status:"trabajando"})},[s]),p.useEffect(()=>{e.invalidateQueries({queryKey:["working_tasks",r]})},[r]),p.useEffect(()=>{(async()=>{const m=await a.get("/api/listado_tareas",{params:{...r,status:"trabajando",cancelada:!1,...$e(1),tasks_api:a,justCount:!0}});i(m.data.total)})()},[r,d==null?void 0:d.data]),{workingTasks:d,total:o,filtersToSend:r}},Go=()=>{var i,r;const{tasks_api:e}=ge(),{workingTasks:a,total:n,filtersToSend:s}=Wo(),o=[...((r=(i=a==null?void 0:a.data)==null?void 0:i.pages)==null?void 0:r.flat())??[]];return t.jsx(pt,{total:n,title:"Trabajando",tasks:o,loadNextPage:()=>$t(a),isFetching:a==null?void 0:a.isFetching,bulkSelectAllIds:()=>Ja({tasks_api:e,filters:s,status:"trabajando"})})},Vo=()=>{var l;const e=de.useQueryClient(),{user:a}=Te(),{tasks_api:n}=ge(),{filters:s}=ke(),[o,i]=p.useState(0),[r,c]=p.useState({owner:{user:a.id,config:((l=s==null?void 0:s.owner)==null?void 0:l.config)??"yo_y_mis_equipos",role:a.role},status:"completadas"}),d=de.useInfiniteQuery({initialPageParam:1,queryKey:["done_tasks",r],queryFn:({pageParam:u})=>ut({filters:{...r,status:"completadas",...$e(u)},tasks_api:n}),staleTime:1e3*60*60*24,getNextPageParam:(u,m)=>m.length+1});return p.useEffect(()=>{var u;Object.keys(s).length>0&&c({...s,owner:{user:a.id,config:((u=s==null?void 0:s.owner)==null?void 0:u.config)??"yo_y_mis_equipos",role:a.role},status:"completadas"})},[s]),p.useEffect(()=>{e.invalidateQueries({queryKey:["done_tasks",r]})},[r]),p.useEffect(()=>{(async()=>{const m=await n.get("/api/listado_tareas",{params:{...r,status:"completadas",cancelada:!1,...$e(1),justCount:!0,tasks_api:n}});i(m.data.total)})()},[d==null?void 0:d.data,r]),{doneTasks:d,total:o,filtersToSend:r}},Qo=()=>{var s,o;const{doneTasks:e,total:a}=Vo(),n=[...((o=(s=e==null?void 0:e.data)==null?void 0:s.pages)==null?void 0:o.flat())??[]];return t.jsx(pt,{title:"Completadas",tasks:n,loadNextPage:()=>$t(e),isFetching:e==null?void 0:e.isFetching,total:a})};class lt{static toSalesmanUsers(a){return{id:a.id,name:a.nombre}}}const Xo=()=>{const{tasks_api:e}=ge(),{filters:a}=ke(),{user:n}=Te(),s=async()=>(await e.get("/api/obtener-comerciales")).data.map(lt.toSalesmanUsers),o=async()=>{var c;return(await e.get("/api/listado_tareas",{params:{...Qt(a),owner:{user:n.id,config:((c=a==null?void 0:a.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:n.role},justProjects:!0,cancelada:!1}})).data.map(lt.toSalesmanUsers)};return{getSalesmanAndProjects:p.useCallback(async(r={})=>{var w;const c={...a,...r},d=(r==null?void 0:r["owner.config"])??((w=a==null?void 0:a.owner)==null?void 0:w.config)??"yo_y_mis_equipos",l={...c};delete l["owner.config"];const u=Qt(l),[m,g]=await Promise.all([e.get("/api/obtener-comerciales"),e.get("/api/listado_tareas",{params:{...u,owner:{user:n==null?void 0:n.id,config:d,role:n.role},justProjects:!0,cancelada:!1}})]);return{salesmanUsers:m.data.map(lt.toSalesmanUsers),projects:g.data.map(lt.toSalesmanUsers)}},[e,a,n==null?void 0:n.id,n==null?void 0:n.role]),getProjects:o,getSalesmans:s}},Yo=()=>{const{user:e}=Te(),[a,n]=p.useState([...Yt]),s=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return p.useEffect(()=>{const o=[...Yt];s.forEach(c=>{if(c.roles.includes(e.role)){const d=o.find(l=>l.id===c.id);d&&(d.options.some(u=>u.id==="todas")||(d.options=[{id:"todas",name:"Todas las tareas"},...d.options]))}});const i=JSON.stringify(a),r=JSON.stringify(o);i!==r&&n(o)},[e.role]),{filters:a}},Jo=()=>{const{defineFields:e,initialFilters:a}=ke(),{getSalesmanAndProjects:n}=Xo(),{filters:s}=Yo(),o=(a==null?void 0:a["owner.config"])??"yo_y_mis_equipos";return p.useEffect(()=>{let i=!1;return(async()=>{const{salesmanUsers:c,projects:d}=await n({"owner.config":o});i||e(s.map(l=>l.id==="project.id"?{...l,options:d}:l.id==="salesman.id"?{...l,options:c}:l))})(),()=>{i=!0}},[e,s,n,o]),t.jsxs(qa,{invalidateAfterBulkSuccess:Ro,children:[t.jsx(Xa,{}),t.jsxs("div",{className:"tw-relative tw-flex tw-h-full tw-min-h-[100%] tw-w-full tw-gap-4",children:[t.jsx(Ko,{}),t.jsx(Go,{}),t.jsx(Qo,{})]})]})},Za=p.createContext({}),Zo=({children:e})=>{const[a,n]=p.useState([]),s=o=>{n(i=>i.includes(o)?i.filter(r=>r!==o):[...i,o])};return t.jsx(Za.Provider,{value:{selectedTasks:a,selectTask:s},children:e})},er=()=>p.useContext(Za),tr=()=>{const e=()=>t.jsxs("div",{className:"tw-flex tw-w-full tw-gap-m",children:[t.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"}),t.jsx("div",{className:"tw-h-[30px] tw-w-[30%] tw-animate-pulse tw-rounded-md tw-bg-gray-200"}),t.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"}),t.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"}),t.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"}),t.jsx("div",{className:"tw-h-[30px] tw-w-[10%] tw-animate-pulse tw-rounded-md tw-bg-gray-200"}),t.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"}),t.jsx("div",{className:"tw-h-[30px] tw-w-[10%] tw-animate-pulse tw-rounded-md tw-bg-gray-200"}),t.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"}),t.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 t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-m",children:[t.jsx(e,{}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-m tw-pl-5",children:[t.jsx(e,{}),t.jsx("div",{className:"tw-pl-5",children:t.jsx(e,{})})]}),t.jsx(e,{}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-m tw-pl-5",children:[t.jsx(e,{}),t.jsx("div",{className:"tw-pl-5",children:t.jsx(e,{})})]})]})},es=({startDate:e,endDate:a})=>t.jsxs(t.Fragment,{children:[t.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:[t.jsx(ce.Icons,{icon:"calendar",size:"xs",strokeWidth:4,color:fe.texts.subtext}),t.jsxs("p",{className:"tw-text-lg",children:[" ",ra(e)]})]}),t.jsx(ce.Icons,{icon:"arrow_right",size:"xs",strokeWidth:4,color:fe.texts.DEFAULT}),t.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:[t.jsx(ce.Icons,{icon:"calendar",size:"xs",strokeWidth:4,color:fe.texts.subtext}),t.jsxs("p",{className:"tw-text-lg",children:[" ",ra(a)]})]})]}),ts=({id:e,priority:a,difficulty:n,endDate:s,atraso:o})=>{var l,u,m;const[i,r]=p.useState({priority:!1,difficulty:!1,atraso:!1}),c={0:{title:"N/A",color:fe.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:fe.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:fe.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:fe.danger.regular,bg:"tw-bg-danger-light tw-border-danger-regular",border:"tw-border-danger-regular",borderHover:"hover:tw-border-danger-dark"}},d={1:{title:"Muy fácil",color:fe.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:fe.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:fe.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:fe.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:fe.danger.dark,bg:"tw-bg-danger-light tw-border-danger-regular",border:"tw-border-danger-medium",borderHover:"hover:tw-border-danger-dark"}};return t.jsxs(t.Fragment,{children:[t.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:t.jsx(ce.Tooltip,{dispatch:t.jsx(ce.Icons,{icon:"align_center",size:"xs",strokeWidth:4,color:fe.texts.subtext}),children:t.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..."})})}),t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[t.jsx("div",{onMouseEnter:()=>r({...i,difficulty:!0}),onMouseLeave:()=>r({...i,difficulty:!1}),className:`tw-gap-s ${(l=d[n===0?1:n])==null?void 0:l.border}
6
- ${(u=d[n===0?1:n])==null?void 0:u.borderHover}
7
- transition-all duration-300 tw-flex tw-h-[30px] tw-w-[30px] tw-items-center tw-justify-center
8
- tw-rounded-[8px] tw-border tw-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)]`,children:t.jsx(ce.Tooltip,{dispatch:t.jsx(ce.Icons,{icon:"difficulty",size:"xs",color:i.difficulty?d[n===0?1:n].color:null,strokeWidth:4}),children:t.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-p-5 tw-text-sm",style:{color:d[n===0?1:n].color},children:d[n===0?1:n].title})})}),t.jsx("div",{onMouseEnter:()=>r({...i,priority:!0}),onMouseLeave:()=>r({...i,priority:!1}),className:`tw-gap-s ${((m=c[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]
9
- tw-border tw-border-success-medium tw-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)] hover:tw-border-success-dark`,children:t.jsx(ce.Tooltip,{dispatch:t.jsx(ce.Icons,{icon:"flag",size:"xs",color:i.priority?c[a??0].color:null,strokeWidth:4}),children:t.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-p-5 tw-text-sm",style:{color:c[a??0].color},children:c[a??0].title})})}),(o==null?void 0:o.activa)&&t.jsx("div",{onMouseEnter:()=>r({...i,atraso:!0}),onMouseLeave:()=>r({...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]
10
- tw-border tw-border-danger-medium tw-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)] hover:tw-border-danger-dark`,children:t.jsx(ce.Tooltip,{dispatch:t.jsx(ce.Icons,{icon:"exclamation_triangle",size:"xs",strokeWidth:4,color:i.atraso?fe.danger.dark:null}),children:t.jsx("p",{className:"tw-font-regular tw-rounded-lg tw-bg-bg-card tw-p-5 tw-text-sm",style:{color:fe.danger.dark},children:o==null?void 0:o.motivo})})}),t.jsx(ce.Icons,{icon:"calendar",size:"xs",strokeWidth:3,color:fe.texts.subtext}),t.jsx("p",{className:"tw-font-regular tw-text-xl tw-text-texts-subtext",children:`${s.getDate()} ${Mt(s.getMonth()).slice(0,3)}`})]})]})},ar=({id:e})=>{const{selectedTasks:a,selectTask:n}=er();return t.jsxs(t.Fragment,{children:[t.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:e.toString(),children:t.jsx("span",{className:`${a.includes(e)?"tw-opacity-100":"tw-opacity-0"} tw-transition-opacity tw-duration-500`,children:t.jsx(ce.Icons,{icon:"check_outline",size:"xs",color:fe.primary.regular,strokeWidth:6})})}),t.jsx("input",{className:"tw-hidden",id:e.toString(),type:"checkbox",onChange:()=>n(e)})]})},as=({task:e})=>t.jsx(ce.Tooltip,{dispatch:t.jsx("p",{className:"tw-max-w-[400px] tw-truncate tw-text-xl tw-text-texts-subtext",children:e}),children:t.jsx("p",{className:"tw-max-w-[400px] tw-p-2 tw-text-xl tw-text-texts-subtext",children:e})}),sr=({id:e})=>{var u,m,g,w,f;const[a,n]=p.useState(!1),{tasksProject:s}=Je(),{reasignResponsible:o}=He(),{getOBPUrlApi:i}=ge(),r=(u=s==null?void 0:s.data)==null?void 0:u.find(h=>h.id===e),[c,d]=p.useState(null),{user:l}=Te();return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"tw-border-b tw-border-gray-200 tw-pb-3",children:t.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:()=>{d(e)},onMouseLeave:()=>d(null),onClick:()=>n(!0),children:[!(r!=null&&r.nameRequiredTask)||(r==null?void 0:r.nameRequiredTask)!==""&&(r==null?void 0:r.statusRequiredTask)===2&&t.jsx(ar,{id:e}),t.jsx(Wa,{id:e,idAtraso:(m=r==null?void 0:r.atraso)==null?void 0:m.atrasoId,nameRequiredTask:(r==null?void 0:r.nameRequiredTask)??"",status:r==null?void 0:r.status,statusRequiredTask:(r==null?void 0:r.statusRequiredTask)??0,nameRequiredTaskResponsible:r==null?void 0:r.nameRequiredTaskResponsible},e),(r==null?void 0:r.willBePaused)&&t.jsx(Qa,{idTask:r.id,paused:r.paused,popupId:`child-task-pause-menu-${r.id}`,children:h=>t.jsx(Be.Button,{ref:h,type:"button",variant:"ghost",className:"tw-font-regular tw-flex tw-items-center tw-gap-2 tw-text-sm tw-text-gray-400",children:t.jsx(ce.Icons,{icon:r!=null&&r.paused?"play":"pause",size:"xs",strokeWidth:2})})}),t.jsx(Ua,{role:l==null?void 0:l.role,status:r==null?void 0:r.status,onClick:async(h,x)=>{var y;await o({idNewResponsible:(y=h==null?void 0:h.tasksUser)==null?void 0:y.id,id:e,typeOfSelect:x})},responsible:r==null?void 0:r.responsible,users:((g=r==null?void 0:r.users)==null?void 0:g.map(h=>Lt(h,i())))??[]}),t.jsx(as,{task:(r==null?void 0:r.task)??""}),t.jsx(ts,{id:e,priority:r==null?void 0:r.priority,difficulty:r.difficulty,endDate:r==null?void 0:r.endDate,atraso:r==null?void 0:r.atraso}),t.jsx(es,{startDate:r==null?void 0:r.startDate,endDate:r==null?void 0:r.endDate}),c===e&&t.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:[t.jsx(ce.Tooltip,{dispatch:t.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:h=>{h.stopPropagation()},children:t.jsx(ce.Icons,{icon:"comment",size:"xs",strokeWidth:5,color:fe.texts.subtext,classNameDiv:"tw-w-[13px] tw-h-[13px]",style:{width:"13px",height:"13px"}})}),children:t.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:t.jsx("p",{className:"tw-text-lg tw-font-semibold tw-text-texts-placeholder",children:"Espéralo muy pronto..."})})}),(r==null?void 0:r.status)!==2&&t.jsx("div",{onClick:h=>{h.stopPropagation()},children:t.jsx(Ka,{id:e,nameRequiredTask:r.nameRequiredTask,status:r.status,statusRequiredTask:r.statusRequiredTask,projectID:(w=s==null?void 0:s.data)==null?void 0:w.id,atrasoId:(f=r==null?void 0:r.atraso)==null?void 0:f.atrasoId,categoria:r==null?void 0:r.categoria})})]})]})}),t.jsx(Ga,{taskId:e,isOpen:a,setIsOpen:n})]})},ss=({id:e})=>{var c,d,l,u,m,g;const{tasksProject:a,openTasks:n,openTask:s}=Je(),o=(c=a==null?void 0:a.data)==null?void 0:c.find(w=>w.id===e),r=(()=>{var h;const w=a==null?void 0:a.data,f=[];return(h=o==null?void 0:o.tasks)==null||h.forEach(x=>{const y=w.find(b=>b.id===(x==null?void 0:x.id));y&&f.push(y)}),f})();return o?t.jsxs("div",{className:"tw-mb-2 tw-flex tw-flex-col tw-gap-m tw-overflow-y-auto",children:[t.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:()=>s(e),children:[t.jsx("button",{className:`${n.includes(e)?"":"tw--rotate-90"} tw-transition-all tw-duration-300`,children:t.jsx(ce.Icons,{icon:"angle_down_outline",color:fe.texts.subtext})}),t.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:t.jsx("p",{className:"tw-text-primary tw-text-xl",children:((d=o==null?void 0:o.tasks)==null?void 0:d.length)===0?1:r.length})}),t.jsx(as,{task:(o==null?void 0:o.task)??""}),t.jsx(ts,{id:e,priority:o==null?void 0:o.priority,difficulty:o==null?void 0:o.difficulty,endDate:o==null?void 0:o.endDate,atraso:o==null?void 0:o.atraso}),t.jsx(es,{startDate:o==null?void 0:o.startDate,endDate:o==null?void 0:o.endDate}),t.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:[t.jsx(ce.Icons,{icon:"subtasks",size:"xs",strokeWidth:5,color:fe.texts.subtext}),t.jsx("p",{className:"tw-text-xl",children:((l=o==null?void 0:o.tasks)==null?void 0:l.length)===0?1:(u=o==null?void 0:o.tasks)==null?void 0:u.length})]})]}),n.includes(e)&&t.jsx("div",{className:"tw-ml-[30px]",children:((m=o==null?void 0:o.tasks)==null?void 0:m.length)>0?(g=o==null?void 0:o.tasks)==null?void 0:g.map(w=>t.jsx(ss,{id:w==null?void 0:w.id})):t.jsx(sr,{id:o==null?void 0:o.id})})]}):null},nr=()=>{var s;const{tasksProject:e,projectID:a}=Je();if(e!=null&&e.isFetching||e!=null&&e.isLoading)return t.jsx(tr,{});let n=[...(s=e==null?void 0:e.data)==null?void 0:s.filter(o=>o.isPrincipalTask)];return t.jsx("div",{className:"tw-flex tw-flex-col tw-gap-m",children:t.jsx(Zo,{project:a,children:n==null?void 0:n.sort((o,i)=>o.orden-i.orden).map(o=>t.jsx("div",{className:"tw-flex tw-flex-col tw-gap-m tw-border-b tw-border-gray-200 tw-pb-m ",children:t.jsx(ss,{id:o.id})}))})})};function or({title:e,color:a,icon:n}){return t.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-8",children:[t.jsx(j.Icon,{name:n,size:"md",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotoneSecondary:.5}),t.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:e})]})}function rr({value:e,onChange:a}){return t.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-4",children:[t.jsx("label",{className:"ui-text-body-sm-bold ui-text-primary",children:"Nombre del equipo"}),t.jsx(j.Input,{size:"xs",placeholder:"Creative",value:e,onChange:n=>a(n.target.value)})]})}const ns=({title:e})=>t.jsxs("div",{className:"flex-1 tw-flex tw-items-center tw-gap-x-4",children:[t.jsx(j.Icon,{background:!0,name:xe.faFilePen,color:"blue",size:"lg"}),t.jsx("h1",{className:"tw-text-[24px] tw-font-bold tw-leading-none",children:e})]}),We={search:"",debouncedSearch:"",filters:[]},ir={"kanban-general":{...We},"lista-campanias":{...We},"kanban-campania":{...We},"teams-container":{...We},"templates-container":{...We}},mt=Ue.create((e,a)=>({viewFilters:ir,currentPath:null,debounceTimeouts:{},setCurrentPath:n=>{const s=a().currentPath;e({currentPath:n}),s&&s!==n&&a().resetPathData(s)},setSearch:(n,s)=>{const o=s||a().currentPath;if(!o)return;const i=`search_${o}`,r=a().debounceTimeouts[i];r&&clearTimeout(r),e(d=>({viewFilters:{...d.viewFilters,[o]:{...d.viewFilters[o],search:n}}}));const c=setTimeout(()=>{e(d=>({viewFilters:{...d.viewFilters,[o]:{...d.viewFilters[o],debouncedSearch:n}},debounceTimeouts:{...d.debounceTimeouts,[i]:void 0}}))},500);e(d=>({debounceTimeouts:{...d.debounceTimeouts,[i]:c}}))},setFilters:(n,s)=>{const o=s||a().currentPath;o&&e(i=>({viewFilters:{...i.viewFilters,[o]:{...i.viewFilters[o],filters:n}}}))},getSearch:n=>{var o;const s=n||a().currentPath;return s&&((o=a().viewFilters[s])==null?void 0:o.search)||""},getDebouncedSearch:n=>{var o;const s=n||a().currentPath;return s&&((o=a().viewFilters[s])==null?void 0:o.debouncedSearch)||""},getFilters:n=>{var o;const s=n||a().currentPath;return s?((o=a().viewFilters[s])==null?void 0:o.filters)||[]:[]},resetPathData:n=>{const s=`search_${n}`,o=a().debounceTimeouts[s];o&&clearTimeout(o),e(i=>({viewFilters:{...i.viewFilters,[n]:{...We}},debounceTimeouts:{...i.debounceTimeouts,[s]:void 0}}))}}));function os({path:e}){const{getSearch:a,setSearch:n}=mt(),s=a(e);return t.jsx(j.Input,{leftSlot:xe.faSearch,placeholder:"Buscar...",size:"xs",value:s,onChange:o=>n(o.target.value,e)})}const ma={fase_plantilla:"",tipo_plantilla:"",modo_configuracion:"",categoria:"",formato_salida:"",tipo_medio:"",medio_especifico:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},lr={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},cr={fase_plantilla:"",tipo_plantilla:"",categoria:"",tipo_medio:"",medio_especifico:"",modo_configuracion:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},wa={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},Ae=Ue.create(e=>({path:"",viewMode:"grid",isOpenModalLimit:!1,template:null,clave:"XX-XXX-XX-XXX-XX-X-X",templateFormData:ma,disabledFields:wa,claveParams:cr,paramsTipo:lr,isEditTemplate:!1,openModalCreateTemplate:!1,currentTemplateForEdit:null,refetch:null,openModalUnsavedChanges:!1,isDuplicateTemplate:!1,hasFormChanges:!1,openModalPublishTemplate:!1,currentTemplateId:null,openModalDeleteTemplate:!1,setPath:a=>e({path:a}),setViewMode:a=>e({viewMode:a}),setIsOpenModalLimit:a=>e({isOpenModalLimit:a}),setTemplate:a=>e({template:a}),setClave:a=>e({clave:a}),setTemplateFormData:a=>{e(n=>({templateFormData:{...n.templateFormData,...a}}))},resetTemplateFormData:()=>e({templateFormData:ma}),setDisableField:({fields:a,value:n})=>{for(const s of a)e(o=>({disabledFields:{...o.disabledFields,[s]:n}}))},resetDisabledFields:()=>e({disabledFields:wa}),setClaveParams:({field:a,value:n})=>{e(s=>({claveParams:{...s.claveParams,[a]:n}}))},resetClave:()=>e(a=>({clave:"XX-XXX-XX-XXX-XX-X-X"})),setParamTipo:a=>e(n=>({paramsTipo:{...n.paramsTipo,...a}})),setIsEditTemplate:a=>e({isEditTemplate:a}),setOpenModalCreateTemplate:a=>e({openModalCreateTemplate:a}),setCurrentTemplateForEdit:a=>e({currentTemplateForEdit:a}),setRefetch:a=>e({refetch:a}),setOpenModalUnsavedChanges:a=>e({openModalUnsavedChanges:a}),setIsDuplicateTemplate:a=>e({isDuplicateTemplate:a}),setHasFormChanges:a=>e({hasFormChanges:a}),setOpenModalPublishTemplate:a=>e({openModalPublishTemplate:a}),setCurrentTemplateId:a=>e({currentTemplateId:a}),setOpenModalDeleteTemplate:a=>e({openModalDeleteTemplate:a})})),rs=e=>{const{getSearch:a,getDebouncedSearch:n,setSearch:s,getFilters:o,setFilters:i,resetPathData:r}=mt();return{search:a(e),debouncedSearch:n(e),filters:o(e),setSearch:c=>s(c,e),setFilters:c=>i(c,e),resetData:()=>r(e)}},dr=()=>t.jsx(ns,{title:"Flujos de trabajo"}),Oe=Ue.create(e=>({activeTemplate:null,setActiveTemplate:a=>e({activeTemplate:a}),clearActiveTemplate:()=>e({activeTemplate:null})})),Ne=Ue.create((e,a)=>({mode:"grid",id:null,setMode:(n,s)=>{const o=a();if(n==="grid"||o.id!==null&&o.id!==s){const{clearAllGroupData:r}=a();r()}e({mode:n,id:s??null})},setId:n=>e({id:n}),reset:()=>{const{clearAllGroupData:n}=a();n(),e({mode:"grid",id:null})},addNode:null,addBranch:null,addNodeFromHandle:null,addNodeWithType:null,savePositions:null,loadPositions:null,clearPositions:null,activePlusNode:null,templateViewModes:{},setViewMode:(n,s)=>{const{templateViewModes:o}=a();e({templateViewModes:{...o,[n]:s}})},getViewMode:n=>{const{templateViewModes:s}=a();return s[n]??"readonly"},clearViewMode:n=>{const{templateViewModes:s}=a(),o={...s};delete o[n],e({templateViewModes:o})},expandedGroups:new Set,groupTemplateData:{},toggleGroupExpansion:n=>{const{expandedGroups:s}=a(),o=new Set(s);o.has(n)?o.delete(n):o.add(n),e({expandedGroups:o})},setGroupTemplateData:(n,s)=>{const{groupTemplateData:o}=a();e({groupTemplateData:{...o,[n]:s}})},clearGroupTemplateData:n=>{const{groupTemplateData:s}=a(),o={...s};delete o[n],e({groupTemplateData:o})},clearAllGroupData:()=>{e({expandedGroups:new Set,groupTemplateData:{}})},copiedNodes:[],setCopiedNodes:n=>e({copiedNodes:n}),clearCopiedNodes:()=>e({copiedNodes:[]}),expandGroup:null,collapseGroup:null})),is=()=>{const{tasks_api:e}=ge();return{getTemplateWithTasks:async n=>{var s;try{const o=Pe.stringify({filters:{plantilla:{id:n}}},{encodeValuesOnly:!0}),i=await e.get(`/api/plantillas/plantilla-tareas-grafico?${o}`);if(i.data&&i.data.data)return i.data.data;throw new Error(`No se encontraron datos para la plantilla con ID ${n}`)}catch(o){throw console.error("Error en getTemplateWithTasks:",{error:o.message,status:(s=o.response)==null?void 0:s.status}),o}}}},ve={DIRTY:"dirty",IDLE:"idle",NEW:"new"},Ee={DRAFT:"draft",PUBLISHED:"published",DELETED:"deleted"},Ge="templates",Ve="templates_states";function ur(e,a){return Ue.create((n,s)=>{let o=null;const i=m=>n({isLoading:m}),r=m=>n({error:m}),c=m=>n({data:m}),d=()=>new Promise((m,g)=>{const w=indexedDB.open(e.name,e.version);w.onerror=()=>{r("Error al abrir la base de datos"),g(new Error("Error al abrir la base de datos"))},w.onsuccess=()=>{o=w.result,n({isConnected:!0,error:null}),m(o)},w.onupgradeneeded=f=>{const h=f.target.result;e.stores.forEach(x=>{var y;if(!h.objectStoreNames.contains(x.name)){const b=h.createObjectStore(x.name,{keyPath:x.keyPath,autoIncrement:x.autoIncrement??!1});(y=x.indexes)==null||y.forEach(C=>{b.createIndex(C.name,C.keyPath,C.options)})}})}}),l=(m="readonly")=>{if(!o)throw new Error("Base de datos no conectada");return o.transaction(a,m)},u=(m="readonly")=>l(m).objectStore(a);return{data:[],isLoading:!1,error:null,isConnected:!1,connect:async()=>{try{i(!0),r(null),await d(),await s().getAll()}catch(m){r(m instanceof Error?m.message:"Error desconocido")}finally{i(!1)}},disconnect:()=>{o&&(o.close(),o=null,n({isConnected:!1,data:[]}))},add:async m=>{try{i(!0),r(null);const g=u("readwrite");return new Promise((w,f)=>{const h=g.add(m);h.onsuccess=async()=>{await s().getAll(),w()},h.onerror=()=>{r("Error al agregar elemento"),f(new Error("Error al agregar elemento"))}})}finally{i(!1)}},addMany:async m=>{try{i(!0),r(null);const g=u("readwrite");return new Promise((w,f)=>{let h=0,x=!1;m.forEach(y=>{const b=g.add(y);b.onsuccess=()=>{h++,h===m.length&&!x&&s().getAll().then(()=>w())},b.onerror=()=>{x||(x=!0,r("Error al agregar elementos"),f(new Error("Error al agregar elementos")))}})})}finally{i(!1)}},get:async m=>{try{r(null);const g=u();return new Promise((w,f)=>{const h=g.get(m);h.onsuccess=()=>{w(h.result)},h.onerror=()=>{r("Error al obtener elemento"),f(new Error("Error al obtener elemento"))}})}catch(g){r(g instanceof Error?g.message:"Error desconocido");return}},getAll:async()=>{try{r(null);const m=u();return new Promise((g,w)=>{const f=m.getAll();f.onsuccess=()=>{const h=f.result;c(h),g(h)},f.onerror=()=>{r("Error al obtener elementos"),w(new Error("Error al obtener elementos"))}})}catch(m){return r(m instanceof Error?m.message:"Error desconocido"),[]}},update:async(m,g)=>{try{i(!0),r(null);const w=u("readwrite");return new Promise((f,h)=>{const x=w.get(m);x.onsuccess=()=>{const y=x.result;if(!y){r("Elemento no encontrado"),h(new Error("Elemento no encontrado"));return}const b={...y,...g},C=w.put(b);C.onsuccess=async()=>{await s().getAll(),f()},C.onerror=()=>{r("Error al actualizar elemento"),h(new Error("Error al actualizar elemento"))}},x.onerror=()=>{r("Error al obtener elemento para actualizar"),h(new Error("Error al obtener elemento para actualizar"))}})}finally{i(!1)}},delete:async m=>{try{i(!0),r(null);const g=u("readwrite");return new Promise((w,f)=>{const h=g.delete(m);h.onsuccess=async()=>{await s().getAll(),w()},h.onerror=()=>{r("Error al eliminar elemento"),f(new Error("Error al eliminar elemento"))}})}finally{i(!1)}},clear:async()=>{try{i(!0),r(null);const m=u("readwrite");return new Promise((g,w)=>{const f=m.clear();f.onsuccess=()=>{c([]),g()},f.onerror=()=>{r("Error al limpiar store"),w(new Error("Error al limpiar store"))}})}finally{i(!1)}},query:async(m,g)=>{try{r(null);const f=u().index(m);return new Promise((h,x)=>{const y=f.getAll(g);y.onsuccess=()=>{h(y.result)},y.onerror=()=>{r("Error en consulta"),x(new Error("Error en consulta"))}})}catch(w){return r(w instanceof Error?w.message:"Error desconocido"),[]}},queryRange:async(m,g,w)=>{try{r(null);const h=u().index(m);return new Promise((x,y)=>{const b=IDBKeyRange.bound(g,w),C=h.getAll(b);C.onsuccess=()=>{x(C.result)},C.onerror=()=>{r("Error en consulta por rango"),y(new Error("Error en consulta por rango"))}})}catch(f){return r(f instanceof Error?f.message:"Error desconocido"),[]}}}})}const yt=new Map;function fa(e,a,n=!0){const s=p.useMemo(()=>{const C=`${e.name}-${a}`;if(!yt.has(C)){const k=ur(e,a);yt.set(C,k)}return yt.get(C)},[e.name,a]);p.useEffect(()=>{n&&!s.getState().isConnected&&s.getState().connect()},[n,s]);const o=s(C=>C.data),i=s(C=>C.isLoading),r=s(C=>C.error),c=s(C=>C.isConnected),d=p.useCallback(()=>s.getState().connect(),[s]),l=p.useCallback(()=>s.getState().disconnect(),[s]),u=p.useCallback(C=>s.getState().add(C),[s]),m=p.useCallback(C=>s.getState().addMany(C),[s]),g=p.useCallback(C=>s.getState().get(C),[s]),w=p.useCallback(()=>s.getState().getAll(),[s]),f=p.useCallback((C,k)=>s.getState().update(C,k),[s]),h=p.useCallback(C=>s.getState().delete(C),[s]),x=p.useCallback(()=>s.getState().clear(),[s]),y=p.useCallback((C,k)=>s.getState().query(C,k),[s]),b=p.useCallback((C,k,F)=>s.getState().queryRange(C,k,F),[s]);return{data:o,isLoading:i,error:r,isConnected:c,connect:d,disconnect:l,add:u,addMany:m,get:g,getAll:w,update:f,delete:h,clear:x,query:y,queryRange:b}}const ls=p.createContext(void 0);function pr({children:e}){const[a,n]=p.useState(!1),[s,o]=p.useState(!0),[i,r]=p.useState(null),c={name:"template_tabs_v1",version:2,stores:[{name:Ge,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]},{name:Ve,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]}]},d=fa(c,Ge,!0),l=fa(c,Ve,!0),u=p.useRef(new Map);u.current.has(Ge)||u.current.set(Ge,d),u.current.has(Ve)||u.current.set(Ve,l);const m=d.isConnected,g=d.error;p.useEffect(()=>{u.current.set(Ge,d),u.current.set(Ve,l)},[d,l]);const w=p.useCallback(h=>{const x=u.current.get(h);if(!x)throw new Error(`Store ${h} no encontrado. Asegúrate de que esté configurada en indexedDBConfig.`);return{data:x.data,isLoading:x.isLoading,add:x.add,addMany:x.addMany,get:x.get,getAll:x.getAll,update:x.update,delete:x.delete,clear:x.clear,query:x.query,queryRange:x.queryRange,error:x.error}},[]);p.useEffect(()=>{(async()=>{try{if(o(!0),r(null),await d.connect(),m)n(!0);else throw new Error("No se pudo establecer la conexión con IndexedDB")}catch(x){r(x instanceof Error?x.message:"Error desconocido")}finally{o(!1)}})()},[d.connect,m]),p.useEffect(()=>{g&&r(g)},[g]);const f={isInitialized:a,isInitializing:s,error:i,isConnected:m,getStore:w};return t.jsx(ls.Provider,{value:f,children:e})}function cs(){const e=p.useContext(ls);if(e===void 0)throw new Error("useIndexedDBContext debe usarse dentro de IndexedDBProvider");return e}function Ut(){const{getStore:e}=cs();return e(Ge)}function ds(){const{add:e}=Ut(),a=async r=>{try{await e(r)}catch(c){console.error("Error al guardar plantilla a indexDB:",c)}},n=async r=>{const c={},d=l=>{l.id&&(c[l.id]=l),l.tareas&&Array.isArray(l.tareas)&&l.tareas.forEach(u=>{d(u)}),l.ids_t_dependientes&&Array.isArray(l.ids_t_dependientes)&&l.ids_t_dependientes.forEach(u=>{typeof u=="object"&&u.id&&d(u)}),l.plantilla_dependents&&Array.isArray(l.plantilla_dependents)&&l.plantilla_dependents.forEach(u=>{u.tarea_plantillas&&Array.isArray(u.tarea_plantillas)&&u.tarea_plantillas.forEach(m=>{d(m)})})};return r.tarea_plantillas.forEach(l=>{d(l)}),c},s=(r,c)=>{const d=c[r];if(!d)return[];const l=[d];return d.tareas&&Array.isArray(d.tareas)&&d.tareas.forEach(u=>{u.id&&l.push(...s(u.id,c))}),d.ids_t_dependientes&&Array.isArray(d.ids_t_dependientes)&&d.ids_t_dependientes.forEach(u=>{typeof u=="object"&&u.id?l.push(...s(u.id,c)):typeof u=="number"&&c[u]&&l.push(...s(u,c))}),l},o=(r,c)=>{const d=c[r];if(!d)return[];const l=[d];return d.tarea_padre&&c[d.tarea_padre]&&l.unshift(...o(d.tarea_padre,c)),l};return{hydrateTasks:async r=>{var l,u;const c=await n(r);return(u=(l=r==null?void 0:r.graph_layout)==null?void 0:l.snapshot)==null?void 0:u.nodes.map(m=>{if(m.type==="group")return{...m,data:{...m.data,type:"template"},type:"group",selected:!1};const g=m.data.tareaId?c[m.data.tareaId]:r;return g!=null&&g.start?{...m,data:{...g.plantilla,id:g.id},selected:!1}:{...m,data:{...g,type:"task"},selected:!1}})},initializeTemplateStore:a,indexedTasks:n,getTaskHierarchy:s,getTaskPath:o}}function us(){const{getStore:e}=cs();return e(Ve)}const nt=()=>{const{add:e,get:a,delete:n,update:s}=us(),{get:o}=Ut(),i={created:[],updated:[],deleted:[]},r=async({templateId:w})=>{const f=await a(w);return f||null};return{addTaskToState:async({task:w})=>{const f=await r({templateId:w.plantilla.id}),h=await o(w.plantilla.id);if(console.log("🔄 template:",h),!f)e({...i,id:w.plantilla.id,created:[...i.created,w]});else{const x=f.created.findIndex(y=>y.id===w.id);if(x!==-1){const y=f.created[x];f.created[x]={...y,...w},await s(w.plantilla.id,f)}else f.created.push(w),await s(w.plantilla.id,f)}},getTaskFromState:r,removeTemplateStates:async w=>{await n(w)},updateTaskInState:async({task:w})=>{const f=await r({templateId:w.plantilla.id}),x=(await o(w.plantilla.id)).graph_layout.snapshot.nodes;if(console.log("🔄 nodes:",x),f){const y=f.updated.findIndex(b=>b.id===w.id);if(y!==-1){const b=f.updated[y];console.log("🔄 currentTask:",b),f.updated[y]={...b,...w}}else f.updated.push(w);await s(w.plantilla.id,f)}else e({...i,id:w.plantilla.id,updated:[...i.updated,w]})},removeTaskFromState:async({templateId:w,id:f})=>{const h=await r({templateId:w});if(h){if(f>0){const y=h.deleted.findIndex(b=>b===f);if(y!==-1){h.deleted.splice(y,1),await s(w,h);return}}const x=h.created.findIndex(y=>y.id===f);if(x!==-1){h.created.splice(x,1),await s(w,h);return}}else if(f>0){e({...i,id:w,deleted:[...i.deleted,f]});return}},removeParentIdFromNodes:async({templateId:w,id:f})=>{const h=await r({templateId:w});if(h){const x=h.created.findIndex(b=>b.id===f);if(x!==-1){h.created[x].tarea_padre=null,h.created[x].id_t_requerida=null,await s(w,h);return}const y=h.updated.findIndex(b=>b.id===f);if(y!==-1){h.updated[y].tarea_padre=null,h.updated[y].id_t_requerida=null,await s(w,h);return}}},updateNodeWithNewEdge:async({templateId:w,edge:f,task:h})=>{console.log("🔵 updateNodeWithNewEdge - Inicio",{templateId:w,taskId:h.id,taskData:h});const x=await r({templateId:w});if(console.log("🔵 updateNodeWithNewEdge - Estado actual:",x),x){console.log("🔵 updateNodeWithNewEdge - Estado existe, buscando tarea...");const y=x.created.findIndex(C=>C.id===h.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en created:",y),y!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en created"),x.created[y]=h,await s(w,x),console.log("✅ updateNodeWithNewEdge - Actualizado en created");return}const b=x.updated.findIndex(C=>C.id===h.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en updated:",b),b!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en updated"),x.updated[b]=h,await s(w,x),console.log("✅ updateNodeWithNewEdge - Actualizado en updated");return}if(console.log("🔵 updateNodeWithNewEdge - Tarea no encontrada en arrays"),h.id&&h.id!==0){const C=h.id<0;C?(console.log("🔵 updateNodeWithNewEdge - Agregando a created (tarea nueva)"),x.created.push(h)):(console.log("🔵 updateNodeWithNewEdge - Agregando a updated (tarea existente)"),x.updated.push(h)),await s(w,x),console.log("✅ updateNodeWithNewEdge - Tarea agregada exitosamente a",C?"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 y=h.id<0,b={...i,id:w,created:y?[h]:[],updated:y?[]:[h]};console.log("🔵 updateNodeWithNewEdge - Nuevo estado:",b,y?"(created)":"(updated)"),e(b),console.log("✅ updateNodeWithNewEdge - Estado creado exitosamente")}else console.error("❌ updateNodeWithNewEdge - task.id no válido:",h.id);console.log("🔵 updateNodeWithNewEdge - Fin")}}};function qe(){const{activeTemplate:e,setActiveTemplate:a}=Oe(),{mode:n,setMode:s,setViewMode:o,clearViewMode:i}=Ne(),{template:r,setIsOpenModalLimit:c,setOpenModalUnsavedChanges:d,setOpenModalPublishTemplate:l,setOpenModalDeleteTemplate:u}=Ae(),{hydrateTasks:m}=ds(),{addTaskToState:g,removeTemplateStates:w}=nt(),f=de.useQueryClient(),{data:h,add:x,update:y,get:b,getAll:C,delete:k,isLoading:F,error:q}=Ut(),{get:T}=us(),{getTemplateWithTasks:S}=is(),{tasks_api:v}=ge(),[R,K]=p.useState(!1),[J,H]=p.useState(!1),[O,E]=p.useState(!1),B=p.useMemo(()=>h.sort((N,U)=>N.order-U.order),[h]);p.useEffect(()=>{B.length===0&&n!=="grid"&&s("grid")},[B,n,s]);const M=async(I,N=ve.IDLE)=>{var U;try{const L=await S(I.id),_=await m(L),G={id:crypto.randomUUID(),data:L,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},Y=_||[G],ae={...L,graph_layout:{...L==null?void 0:L.graph_layout,snapshot:{...(U=L==null?void 0:L.graph_layout)==null?void 0:U.snapshot,nodes:Y}},estatus:N,estatusFromStrapi:L.estatus};await x(ae)}catch(L){console.warn("No se pudieron obtener los datos completos de la plantilla, creando versión básica:",L);const _=I,G={id:crypto.randomUUID(),data:_,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},Y={id:_.id,snapshot:{nodes:[G],edges:[],viewport:{x:0,y:0,zoom:1}},history:null,zoom:1,position:{x:0,y:0}},ae={..._,graph_layout:_.graph_layout||Y,estatus:N,tarea_plantillas:_.tarea_plantillas||[]};await x(ae)}},z=async({template:I,checkTemplateInIndexedDB:N=!1,statusTemplate:U=ve.IDLE})=>{const L=B;if(!L.find(G=>G.id===I.id)){if(L.length===5){c(!0);return}if(N&&await b(I.id))return;await M({...I,order:L.length+1},U)}await V(I.id),await ee(I),s("create-edit",I==null?void 0:I.id)},ee=async I=>{const N=await b(I.id);a(N)},V=async I=>{try{let N=await C();N.sort((L,_)=>(L.order||0)-(_.order||0));const U=N.findIndex(L=>L.id===I);if(U!==-1){const[L]=N.splice(U,1);N.unshift(L),N.forEach((G,Y)=>{G.order=Y+1});const _=N.map(G=>y(G.id,G));await Promise.all(_)}else return}catch{}},oe=async I=>{try{await k(I),i(I);const N=await C();N.forEach((L,_)=>{L.order=_+1});const U=N.map(L=>y(L.id,L));await Promise.all(U)}catch{}};return{screens:B,isLoading:F,error:q,add:x,data:h,addScreen:M,openTemplate:z,update:y,delete:oe,get:b,activeTemplate:e,activateTemplate:ee,reorderingTemplates:V,replaceTemplate:async()=>{try{const I=[...B],N={...I[I.length-1]};await k(N.id);const U={...r,order:N.order};await M(U);const _=(await C()).sort((Y,ae)=>Y.order-ae.order);if(_.some((Y,ae)=>(Y.order||0)!==ae+1)){const Y=_.map((ae,ie)=>({...ae,order:ie+1}));for(const ae of Y)try{await y(ae.id,ae)}catch{}}}catch{}finally{c(!1)}},addTaskUpdatingTemplate:async(I,N,U="hija")=>{var Y,ae,ie,X;const L=await b(N);if(!L)return null;const _={id:I.id,uuid:crypto.randomUUID(),reference_graph:I.reference_graph,texto_corto:I.title,texto_largo:I.description||"",prioridad:I.priority||null,nivel_dificultad:I.difficulty||1,duracion:I.duration||null,start:!1,type:"task",equipo:{id:Number(I.team)||null},responsable:{id:Number(I.responsible)||null},plantilla:{id:L.id,clave:L.clave,categoria:L.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:U==="dependiente"?(ae=(Y=I.parent)==null?void 0:Y.data)==null?void 0:ae.id:null,ids_t_dependientes:[],tarea_padre:U==="hija"?(X=(ie=I.parent)==null?void 0:ie.data)==null?void 0:X.id:null,tareas:[]},G={...L,estatus:ve.DIRTY};return await y(N,G),e&&e.id===N&&a(G),await g({task:_}),_},addTemplateUpdatingTemplate:async(I,N,U,L="hija")=>{let _=null;if(e&&e.id===N?_=e:_=await b(N),!_)return null;const G=(ae,ie,X,se)=>{for(let re=0;re<ae.length;re++){const le=ae[re];if(le.id===ie||le.uuid===ie)return se==="dependiente"?(le.plantilla_dependents||(le.plantilla_dependents=[]),le.plantilla_dependents.push(X)):se==="hija"&&(le.plantilla_dependents||(le.plantilla_dependents=[]),le.plantilla_dependents.push(X)),!0;if(le.tareas&&le.tareas.length>0){const te=G(le.tareas,ie,X,se);if(te)return te}}return!1};if(G(_.tarea_plantillas,U,I,L)){const ae={..._,estatus:ve.DIRTY,updatedAt:new Date().toISOString()};return await y(N,ae),e&&e.id===N&&a(ae),!0}else return!1},updateGraphLayout:async(I,N)=>{var U;if(!I){console.warn("⚠️ updateGraphLayout - Template ID no válido");return}try{const L=await b(I);if(!L){console.warn("⚠️ updateGraphLayout - Template no encontrado");return}const _=(N.nodes||[]).filter(se=>{var re;return!((re=se.data)!=null&&re.isInternal)&&!se.parentId}).map(se=>{const{style:re,measured:le,data:te,...ue}=se,{expandedDimensions:we,isExpanded:he,needsReExpansion:me,...ye}=te||{},De=re?{...re,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...ue,style:De,data:ye,position:se.position}}),G=(N.edges||[]).filter(se=>{var re;return!((re=se.data)!=null&&re.isInternal)}).map(se=>{var re;if((re=se.data)!=null&&re.redirectedToInternal){const{redirectedToInternal:le,originalTarget:te,...ue}=se.data;return{...se,target:te||se.target,data:ue}}return se}),Y={...N,nodes:_,edges:G},ae=(U=L.graph_layout)==null?void 0:U.snapshot;if(!(!ae||JSON.stringify(ae)!==JSON.stringify(Y)))return;const X={...L,graph_layout:{...L.graph_layout,snapshot:Y},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await y(I,X),e&&e.id===I&&a(X)}catch(L){console.error("❌ updateGraphLayout - Error:",L)}},saveTemplateChanges:async(I=!0)=>{try{if(e.estatus===ve.DIRTY){H(!0);const{id:N}=e,U=await b(N),L=await T(N),_=U.graph_layout.snapshot.nodes||[],G=_.filter(X=>{var se;return!((se=X.data)!=null&&se.isInternal)&&!X.parentId}),Y=_.length-G.length;Y>0&&console.warn(`💾 [saveTemplateChanges] Se filtraron ${Y} nodos internos al guardar plantilla ${N}`);const ae={graph_layout:{...U.graph_layout,snapshot:{...U.graph_layout.snapshot,nodes:G.map(X=>{const{style:se,measured:re,selected:le,...te}=X,ue=se?{...se,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return X.type==="group"?{...te,style:ue,data:{tareaId:X.data.id&&X.data.id>0?X.data.id:null,clave:X.data.clave,estatus:X.data.estatus,updatedAt:X.data.updatedAt,id:X.data.id}}:{...te,style:ue,data:{tareaId:X.data.id&&X.data.id>0?X.data.id:null}}}),edges:(U.graph_layout.snapshot.edges||[]).filter(X=>{var se;return!((se=X.data)!=null&&se.isInternal)})}},tasks:{created:(L==null?void 0:L.created)||[],updated:(L==null?void 0:L.updated)||[],deleted:(L==null?void 0:L.deleted)||[]}},ie=await v.post("/api/tareas/save-tareas-grafico",{data:ae});if(ie.data&&ie.status===200){try{const X=await S(N),se=await m(X),re={...X,graph_layout:{...X.graph_layout,snapshot:{...X.graph_layout.snapshot,nodes:se}},estatus:ve.IDLE};await y(N,re),I||a(re)}catch{const se=await b(N);if(se&&!I){const re={...se,estatus:ve.IDLE};await y(N,re),a(re)}}await f.invalidateQueries({queryKey:["template",N]}),await f.invalidateQueries({queryKey:["template"]}),w(N),I&&(oe(N),d(!1)),o(N,"readonly")}}}catch(N){console.log(N)}finally{H(!1)}},publishTemplate:async I=>{try{K(!0);const N={estatus:Ee.PUBLISHED,publication_date:new Date},U=await v.put(`/api/plantillas/plantilla-update-estatus/${I}`,{data:N});U.data&&U.status===200&&(a({...e,estatusFromStrapi:Ee.PUBLISHED}),l(!1),j.toast.info("Se publicó correctamente el proceso"))}catch(N){console.log(N),j.toast.error("Surgió un error al publicar el proceso")}finally{K(!1)}},deleteTemplate:async I=>{try{E(!0);const N={estatus:Ee.DELETED,sjdaksd:0},U=await v.put(`/api/plantillas/plantilla-update-estatus/${I}`,{data:N});U.data&&U.status===200&&(u(!1),j.toast.info("Se eliminó correctamente el proceso"))}catch(N){console.error(N),j.toast.error("Surgión un error al eliminar el proceso")}finally{E(!1)}},loadingPublishTemplate:R,loadingSaveChanges:J,loadingDeleteTemplate:O}}const mr=async({tasks_api:e})=>{try{return(await e.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}`}},wr=()=>{const{tasks_api:e}=ge();return{users:de.useQuery({queryKey:["usersOBP"],queryFn:()=>mr({tasks_api:e}),staleTime:1e3*60*60*24})}},Ze=()=>{const{users:e}=wr(),a=de.useQuery({queryKey:["users_index",e.data],queryFn:()=>lo({users:e.data||[]}),staleTime:1e3*60*60*24,enabled:!!e.data});return{users:a.data,isLoading:a.isLoading||e.isLoading}},ps=()=>{const{users:e,isLoading:a}=Ze(),{getImageOBP:n}=ge();return{getImageByEmail:i=>{const r=e==null?void 0:e[i];return n(r==null?void 0:r.image)},getNameByEmail:i=>{const r=e==null?void 0:e[i];return(r==null?void 0:r.nombre)||""},isLoading:a}},ot=({isLoading:e})=>e?t.jsxs("div",{className:"fixed inset-0 flex items-center justify-center z-50",children:[t.jsx("div",{className:"absolute inset-0",style:{backgroundColor:"rgba(255, 255, 255, 0.5)"}}),t.jsx("div",{className:"relative flex flex-col items-center gap-4",children:t.jsx(j.Spinner,{})})]}):null,ga=({template:e,openModalPublishTemplate:a,onHadleClickEditTemplateParams:n,onEditTasks:s,canDuplicateAndDeleteTemplates:o,onHandleClickDuplicateTemplate:i,openModalDeleteTemplate:r})=>t.jsx(j.Popup,{color:"secondary",pill:"pill",icon:pe.faEllipsis,stopPropagationList:!0,children:t.jsxs(j.List,{className:"ui-p-6 ui-gap-4",children:[e.estatus!==Ee.PUBLISHED&&e.counts_tasks>2&&t.jsx(j.ListItem,{icon:pe.faArrowUp,onClick:a,children:"Publicar"}),t.jsx(j.ListItem,{icon:pe.faEdit,onClick:()=>{n(e)},children:"Editar parámetros"}),t.jsx(j.ListItem,{icon:pe.faEdit,onClick:()=>{s&&s(e)},children:"Editar tareas"}),o&&t.jsx(j.ListItem,{icon:pe.faClone,onClick:c=>{c.stopPropagation(),i(e)},children:"Duplicar"}),o&&t.jsx(j.ListItem,{color:"red",icon:pe.faTrash,onClick:r,children:"Eliminar"})]})}),ms=({fullWidth:e,mode:a="grid",onClick:n,active:s,template:o,withOptions:i=!0})=>{const{openTemplate:r}=qe(),{getImageByEmail:c,getNameByEmail:d}=ps(),{setIsEditTemplate:l,setOpenModalCreateTemplate:u,setCurrentTemplateForEdit:m,setIsDuplicateTemplate:g,setOpenModalPublishTemplate:w,setCurrentTemplateId:f,setOpenModalDeleteTemplate:h}=Ae(),x={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"}},[y,b]=p.useState(!1),C=async()=>{if(b(!0),a==="grid")try{b(!0),await r({template:o,checkTemplateInIndexedDB:!0})}catch(z){console.error(z)}finally{b(!1)}else b(!1);n==null||n(o==null?void 0:o.id)},k=async()=>{if(!(a!=="grid"||!o)){b(!0);try{await r({template:o,checkTemplateInIndexedDB:!0}),n==null||n(o==null?void 0:o.id)}catch(z){console.error(z)}finally{b(!1)}}},F=z=>{l(!0),u(!0),m(z)},q=z=>{g(!0),u(!0),m(z)},T=()=>{f(o==null?void 0:o.id),w(!0)},S=()=>{f(o==null?void 0:o.id),h(!0)},v=(o==null?void 0:o.dias_duracion)===1?"Día":"Días",R=(o==null?void 0:o.counts_tasks)===1?"Tarea":"Tareas",K=(o==null?void 0:o.estatus)===Ee.PUBLISHED?Tt(o==null?void 0:o.publication_date).format("DD/MM/YYYY"):Tt(o==null?void 0:o.createdAt).format("DD/MM/YYYY"),J=(o==null?void 0:o.updated_by)||(o==null?void 0:o.created_by),H=c(J==null?void 0:J.email),O=d(J==null?void 0:J.email)||"",E=(o==null?void 0:o.estatus)===Ee.PUBLISHED?"Fecha de publicación":"Fecha de creación",B=(o==null?void 0:o.estatus)===Ee.DRAFT,M=z=>{const ee=z.split("-");return t.jsx(t.Fragment,{children:ee.map((V,oe)=>t.jsxs("span",{children:[V,oe<ee.length-1&&t.jsx("span",{className:"tw-text-neutral-200",children:"-"})]},oe))})};return t.jsxs(j.Card,{active:s,fullWidth:e,onClick:C,className:`${e?"md:tw-flex-row":"tw-flex-col"}`,children:[t.jsx(ot,{isLoading:y}),t.jsx(j.Card.Header,{children:t.jsx("div",{className:"ui-flex ui-justify-between ui-items-start ui-gap-x-4",children:t.jsxs("div",{className:"ui-flex ui-justify-between ui-items-start ui-gap-4 ui-flex-1",children:[t.jsxs("div",{className:"ui-flex ui-place-items-start ui-gap-x-4",children:[t.jsx("div",{className:"tw-flex tw-items-center",children:t.jsx(j.Icon,{name:ze.faChartDiagram,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"lg"})}),t.jsxs("div",{className:"ui-flex ui-gap-x-1 ui-flex-col ui-gap-y-4",children:[t.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:M((o==null?void 0:o.clave)||(o==null?void 0:o.nombre_plantilla))}),t.jsxs("div",{className:"ui-flex tw-items-baseline ui-gap-x-1",children:[t.jsx(j.Badge,{size:"sm",theme:"soft",color:(o==null?void 0:o.estatus)===Ee.PUBLISHED?"success":"gray",label:(o==null?void 0:o.estatus)===Ee.PUBLISHED?"Publicado":"Borrador"}),!(typeof K=="string"&&K==="Invalid date")&&t.jsx(j.Tooltip,{label:E,children:t.jsx("p",{className:"ui-text-body-sm-regular ui-text-tertiary ui-font-body-sm-semibold",children:K})})]})]})]}),!e&&t.jsx(ga,{template:o,openModalPublishTemplate:T,onHadleClickEditTemplateParams:F,onEditTasks:k,canDuplicateAndDeleteTemplates:B,onHandleClickDuplicateTemplate:q,openModalDeleteTemplate:S})]})})}),t.jsx(j.Card.Separator,{vertical:e}),t.jsx(j.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:o==null?void 0:o.params_plantillas.map((z,ee)=>{const V=x[z.params_tipo.order-1];return t.jsx(j.Badge,{color:V.color,theme:V.theme,label:z.name,size:"sm"},z.name)})}),!e&&t.jsx(j.Card.Separator,{vertical:e}),t.jsxs(j.Card.Footer,{className:"ui-flex ui-justify-between tw-w-full md:tw-w-auto tw-gap-x-4",children:[t.jsxs("div",{className:`tw-flex tw-flex-1 ${e?"tw-gap-x-2 md:tw-gap-20 lg:tw-gap-32 2xl:tw-gap-44":""}`,children:[t.jsx("div",{className:`ui-flex ui-gap-x-1 ui-justify-center tw-items-center ui-flex-1 ${e?"tw-flex-col":"tw-flex-row"}`,children:t.jsx(j.Tooltip,{label:"Tareas totales",children:t.jsxs("div",{className:`tw-flex tw-items-center tw-gap-2 ${e?"tw-flex-col":"tw-flex-row"}`,children:[t.jsx("p",{className:"ui-text-icon-all-colors-blue ui-text-xs tw-text-center tw-leading-none tw-font-semibold",children:(o==null?void 0:o.counts_tasks)||0}),t.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:R})]})})}),t.jsx("div",{className:`ui-flex ui-gap-x-1 ui-justify-center tw-items-center ui-flex-1 ${e?"tw-flex-col":"tw-flex-row"}`,children:t.jsx(j.Tooltip,{label:"Tareas totales",children:t.jsxs("div",{className:`tw-flex tw-items-center tw-gap-2 ${e?"tw-flex-col":"tw-flex-row"}`,children:[t.jsx("p",{className:"ui-text-icon-all-colors-blue ui-text-xs tw-text-center tw-leading-none tw-font-semibold",children:(o==null?void 0:o.dias_duracion)||0}),t.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:v})]})})}),t.jsxs("div",{className:`ui-flex ui-gap-x-1 ui-justify-center tw-items-center ui-flex-1 ${e?"tw-flex-col-reverse tw-gap-y-1":"tw-flex-row"}`,children:[t.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Editor"}),t.jsx(j.Tooltip,{label:O,children:t.jsx(j.Avatar,{src:H,size:"xxs",type:"people"})})]})]}),e&&i&&t.jsx(j.Card.Separator,{vertical:e}),i&&t.jsx("div",{className:`tw-w-auto ${e?"tw-flex tw-items-center":""}`,children:e&&t.jsx(ga,{template:o,openModalPublishTemplate:T,onHadleClickEditTemplateParams:F,onEditTasks:k,canDuplicateAndDeleteTemplates:B,onHandleClickDuplicateTemplate:q,openModalDeleteTemplate:S})})]})]})},fr={1:"blue",2:"green",3:"red",4:"yellow"},gr=({difficulty:e})=>t.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end ui-gap-2",children:[t.jsx(j.Icon,{name:pe.faRhombus,size:"md",color:fr[e]}),t.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Dificultad"})]}),hr=({duration:e})=>t.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[t.jsx("p",{className:"ui-text-icon-all-colors-blue ui-text-body-lg-regular tw-leading-none tw-font-semibold",children:e}),t.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"},br=({priority:e})=>t.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end ui-gap-2",children:[t.jsx(j.Icon,{name:pe.faFlag,size:"md",color:xr[e]}),t.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Prioridad"})]});class yr{static toUsers(a){return{id:a.id,name:a.nombre,image:a.image,email:a.email}}}const jr=async({tasks_api:e})=>{try{const a=Pe.stringify({filters:{blocked:!1}},{encodeValuesOnly:!0}),n=await e.get(`/api/users?${a}`);return be(n.data).map(yr.toUsers).sort((o,i)=>o.name.localeCompare(i.name))}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Ht=()=>{const{tasks_api:e}=ge(),a=de.useQuery({queryKey:["users-mt"],queryFn:()=>jr({tasks_api:e}),staleTime:1e3*60*60*24});return{isLoading:a.isLoading,users:a.data}},vr=({responsible:e})=>{const{isLoading:a}=Ht(),{getImageByEmail:n,isLoading:s}=ps();return a||s?null:t.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[t.jsx(j.Avatar,{size:"xs",src:n(e==null?void 0:e.email),type:"people"}),t.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Responsable"})]})},_r=[{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}],ws=({isOpen:e,onClose:a,onSuccess:n,nodeDataType:s,parentNodeInfo:o,editMode:i=!1,taskToEdit:r})=>{const{data:c}=Gs(),{users:d}=Ht(),{users:l}=Ze(),{getImageOBP:u}=ge(),m=p.useMemo(()=>{try{return!d||!l?[]:d.map(T=>{const S=l[T.email],v=S!=null&&S.image?u(S.image):"";return{label:T.name,value:T.id.toString(),icon:v}})}catch(T){return console.error("Error mapeando usuarios:",T),[]}},[d,l]),g=()=>{if(i&&r){const T=K=>{if(K==null)return"";const J=Number(K);return isNaN(J)?"":J},S=K=>K?typeof K=="string"?Number(K)||"":K.id||"":"",v=K=>{var J;return K?typeof K=="string"?K:((J=K.id)==null?void 0:J.toString())||K.name||K.nombre||"":""};return{title:r.texto_corto||"",description:r.texto_largo||"",priority:T(r.prioridad),difficulty:T(r.nivel_dificultad),duration:T(r.duracion),team:S(r.equipo),responsible:v(r.responsable),type:"tarea"}}return{title:"",description:"",priority:"",difficulty:"",duration:"",team:"",responsible:"",type:"tarea"}},{control:w,handleSubmit:f,formState:{errors:h,isValid:x},reset:y,watch:b}=Ie.useForm({mode:"onChange",defaultValues:g()});p.useEffect(()=>{e&&y(g())},[e,i,r,y]);const C=b(),k=x&&C.title&&C.description&&C.priority&&C.difficulty&&C.duration&&C.team&&Object.keys(h).length===0,F=async T=>{try{if(["title","description","priority","difficulty","duration","team"].filter(R=>!T[R]).length>0)return;n&&n({...T,parent:o}),y()}catch{}},q=()=>{y(),a()};return t.jsx(j.Drawer,{titleIcon:pe.faPencil,isOpen:e,onClose:q,onSuccess:()=>{f(T=>{F(T)},T=>{const S=Object.entries(T).map(([v,R])=>`${v}: ${R.message}`).join(`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),me=require("@tanstack/react-query"),x=require("@imj_media/ui"),u=require("react"),Ye=require("axios"),Pe=require("qs"),ne=require("@fortawesome/pro-regular-svg-icons"),Os=require("echarts-for-react"),de=require("@fortawesome/pro-solid-svg-icons"),Na=require("react-dom"),Ce=require("@fortawesome/free-solid-svg-icons"),ct=require("date-fns"),Pt=require("date-fns/locale"),Se=require("react-hook-form"),oe=require("@xyflow/react"),Ue=require("zustand"),Tt=require("moment"),ze=require("@fortawesome/pro-duotone-svg-icons");require("@xyflow/react/dist/style.css");const Ls=require("react-pick-color"),Qt=e=>{const a={...e};return delete a.project,delete a["project.id"],a},Xt=e=>{let a={};return Object.entries(e).forEach(([n,s])=>{if(n.includes(".")){let[o,i]=n.split(".");a[o]=a[o]||{},a[o][i]=s}else a[n]=s}),a},Sa=u.createContext({}),Bs=({children:e})=>{const[a,n]=u.useState({}),[s,o]=u.useState({}),[i,r]=u.useState([]),[c,m]=u.useState(""),l=({name:f,value:g})=>{function y(j){return!isNaN(j)&&j!==null&&j!==""?parseFloat(j):null}let w=y(g);o(j=>{let b={...j},_=i==null?void 0:i.find(M=>M.label.toLowerCase().replace(/ /g,"_")===f);return _?b[_.id]=w??g:b[f]=w??g,((_==null?void 0:_.id)??f)==="owner.config"&&(b["project.id"]=null),b})};u.useEffect(()=>{let f=i.map(g=>g.id==="owner.config"?[g.id,"yo_y_mis_equipos"]:g.id==="dependency"?[g.id,"ambas"]:[g.id,null]);o(g=>{const y={search:g==null?void 0:g.search,taskName:g==null?void 0:g.taskName};return f.forEach(([w,j])=>{y[w]=(g==null?void 0:g[w])!==void 0?g==null?void 0:g[w]:j}),y})},[i]);const d=()=>{let f=i.map(g=>g.id==="owner.config"?[g.id,"yo_y_mis_equipos"]:g.id==="dependency"?[g.id,"ambas"]:[g.id,null]);o(Object.fromEntries(f)),n(Xt(Object.fromEntries(f)))},p=f=>({1:"Muy facil",2:"Facil",3:"Media",4:"Dificil",5:"Muy dificil"})[f],h=()=>{let f=Xt(s);f.difficulty&&(f.difficulty=p(f.difficulty)),n(f)};return t.jsx(Sa.Provider,{value:{fields:i,filters:a,path:c,defineFields:r,updateFilters:l,cleanFilters:d,applyFilters:h,initialFilters:s,selectPath:m},children:e})},De=()=>u.useContext(Sa),Ea=u.createContext({}),Rs=({children:e,user:a,url:n,mode:s})=>{const o=s==="prod"?"https://services.imjmedia.com.mx":"https://devobp.imjmedia.com.mx",i=Ye.create({baseURL:n,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:m=>Pe.stringify(m,{encodeValuesOnly:!0})}),r=()=>o,c=m=>m==="undefined"||m===void 0?"":`${o}${m}`;return t.jsx(Ea.Provider,{value:{tasks_api:i,getOBPUrlApi:r,getImageOBP:c},children:e})},he=()=>u.useContext(Ea),Pa=u.createContext({}),qs=({children:e,user:a,url:n})=>{const s=Ye.create({baseURL:n,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:o=>Pe.stringify(o,{encodeValuesOnly:!0})});return t.jsx(Pa.Provider,{value:{user:a,tasks_api:s},children:e})},we=()=>u.useContext(Pa),be=e=>{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),s=i=>i&&typeof i=="object"&&"position"in i&&typeof i.position=="object"&&("x"in i.position||"y"in i.position)&&!("attributes"in i),o=i=>i.attributes?{id:i.id,...i.attributes}:i;if(Array.isArray(e))return e.map(i=>be(i));if(a(e)){if(n(e)){const i={};for(const r in e)i[r]=be(e[r]);return i}if(s(e)){const i={};for(const r in e)i[r]=be(e[r]);return i}Array.isArray(e.data)?e=[...e.data]:a(e.data)?e=o({...e.data}):e.data===null?e=null:e=o(e);for(const i in e)e[i]=be(e[i]);return e}return e},Yt=[{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"}]}],Jt=[{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:[]}],ft=(e,a,n)=>`${e} ${e===1?a:n}`;function zs(e){const a=e??{pausas:0,atrasos:0,vencidos:0};if((a.pausas??0)===0&&(a.atrasos??0)===0&&(a.vencidos??0)===0)return[{label:"Sin alertas",color:"gray",variant:"sin-alertas"}];const n=[];return(a.atrasos??0)>0&&n.push({label:ft(a.atrasos,"atrasada","atrasadas"),color:"danger",variant:"atrasos"}),(a.pausas??0)>0&&n.push({label:ft(a.pausas,"pausada","pausadas"),color:"warning",variant:"pausas"}),(a.vencidos??0)>0&&n.push({label:ft(a.vencidos,"vencida","vencidas"),color:"info",variant:"vencidos"}),n.slice(0,2)}const $s=ne.faLightEmergencyOn,Us={name:$s},Hs=({tags:e})=>{const a=Array.isArray(e)?e:[];return t.jsx("div",{className:"tm-inline-flex tm-min-w-0 tm-max-w-full tm-flex-wrap tm-content-center tm-items-center tm-gap-1 tm-justify-center",children:a.map((n,s)=>t.jsx("div",{className:"tm-min-w-0 tm-max-w-full tm-flex-shrink-0",children:t.jsx(x.Tag,{label:n.label,color:n.color,stroke:!1,truncateLabel:!0,truncateTooltip:!0,infoIcon:n.variant==="atrasos"?Us:void 0})},`${n.variant}-${n.label}-${s}`))})},Ks=(e,a=500)=>{const[n,s]=u.useState(e);return u.useEffect(()=>{const o=setTimeout(()=>{s(e)},a);return()=>{clearTimeout(o)}},[e,a]),n},Gs=async e=>{const a=Pe.stringify({fields:["id","nombre"],sort:["nombre:asc"]},{encodeValuesOnly:!0}),n=await e.get(`/api/equipos?${a}`);return n.data?{data:be(n.data.data)}:{data:[]}},Vs=()=>{const{tasks_api:e}=he();return me.useQuery({queryKey:["teams"],queryFn:()=>Gs(e),staleTime:1e3*60*60*24,select:n=>n.data.map(o=>({label:o.nombre,value:o.id}))})},Ws="/api/listado-progreso",Qs="/api/proyectos/listado-progreso";function Xs(e){return Pe.stringify(e,{encodeValuesOnly:!0,arrayFormat:"repeat"})}function Ys(e){var i,r,c;const a=Number(e.proyecto_id);if(!Number.isFinite(a)||a<=0||!Number.isInteger(a))throw new Error("listado-progreso: proyecto_id debe ser un entero positivo");const n=String(e.fase).trim().toLowerCase();if(n!=="preventa"&&n!=="venta")throw new Error('listado-progreso: fase debe ser "preventa" o "venta"');const s={proyecto_id:a,fase:n};(i=e.status)!=null&&i.length&&(s.status=e.status.map(m=>String(m).trim()).filter(Boolean)),(r=e.types_media)!=null&&r.length&&(s.types_media=e.types_media.map(m=>String(m).trim()).filter(Boolean)),(c=e.locations)!=null&&c.length&&(s.locations=e.locations.map(m=>String(m).trim()));const o=e.search!=null?String(e.search).trim():"";return o&&(s.search=o),e.blocked_only!==void 0&&(s.blocked_only=e.blocked_only===!0||e.blocked_only==="true"?"true":"false"),s}function Zt(e){const a=Array.isArray(e.data)?e.data:[],n=e.grafico,s=e.graficos,o=Array.isArray(n)&&n.length>0?n:Array.isArray(s)?s:[];return{data:a,grafico:o}}async function ea(e,a,n){const{data:s}=await e.get(a,{params:n,paramsSerializer:Xs});return s??{}}async function Js(e,a){var s;const n=Ys(a);try{const o=await ea(e,Ws,n);return Zt(o)}catch(o){if(Ye.isAxiosError(o)&&((s=o.response)==null?void 0:s.status)===404){const i=await ea(e,Qs,n);return Zt(i)}throw o}}function Zs({proyectoId:e,fase:a,enabled:n,filters:s}){const{tasks_api:o}=he(),i=n&&Number.isFinite(e)&&Number.isInteger(e)&&e>0;return me.useQuery({queryKey:["listado-progreso",e,a,s],queryFn:()=>Js(o,{proyecto_id:e,fase:a,...s}),enabled:i,staleTime:3e4})}const en=({campaignName:e,searchValue:a,onSearchChange:n})=>t.jsx("div",{className:"tm-border-b tm-border-light-gray-100 tm-pb-6 tm-pt-6",children:t.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-3",children:[t.jsx("h3",{className:"tm-text-[21px] tm-font-semibold tm-leading-tight tm-text-gray-800",children:e||"-"}),t.jsx("div",{className:"tm-w-full sm:tm-w-[260px] md:tm-w-[300px]",children:t.jsx(x.Input,{size:"sm",fullWidth:!0,leftSlot:ne.faSearch,placeholder:"Buscar...",value:a,onValueChange:n,clearable:!0,onClear:()=>n("")})})]})});function tn(e,a){Array.isArray(e)&&a(e.map(String))}function gt({options:e,selected:a,onChange:n,emptyPlaceholder:s,header:o,tagsOverflowPopoverTitle:i,panelSearch:r,panelSearchPlaceholder:c="Buscar…"}){return t.jsx(x.Dropdown,{field:{placeholder:s},items:{options:e},values:{value:a},events:{onValueChange:m=>tn(m,n)},multi:{multiple:!0,selectionSummary:"tags",tagsOverflow:"single-line",tagsOverflowPopoverTitle:i},popover:{fullWidth:!0},list:{listVariant:"search-multi-checkbox",searchMultiCheckbox:{header:o,search:{show:r,placeholder:c},showClearSelection:!1}},menuSearch:{searchable:!1}})}const an=({mediosOptions:e,plazasOptions:a,estadosOptions:n,selectedMedios:s,selectedPlazas:o,selectedEstados:i,onlyDelayed:r,onChangeMedios:c,onChangePlazas:m,onChangeEstados:l,onChangeOnlyDelayed:d})=>t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-2 tm-mt-5 tm-mb-5",children:t.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-3",children:[t.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-4 tm-flex-1",children:[t.jsx("div",{className:"tm-w-full sm:tm-w-[280px]",children:t.jsx(gt,{options:e,selected:s,onChange:c,emptyPlaceholder:"Todos los medios",header:{id:"listado-progreso-medios-all",label:"Todos los medios"},tagsOverflowPopoverTitle:"Medios seleccionados",panelSearch:!1})}),t.jsx("div",{className:"tm-w-full sm:tm-w-[280px]",children:t.jsx(gt,{options:a,selected:o,onChange:m,emptyPlaceholder:"Todas las plazas",header:{id:"listado-progreso-plazas-all",label:"Todas las plazas"},tagsOverflowPopoverTitle:"Plazas seleccionadas",panelSearch:!0,panelSearchPlaceholder:"Buscar…"})}),t.jsx("div",{className:"tm-w-full sm:tm-w-[280px]",children:t.jsx(gt,{options:n,selected:i,onChange:l,emptyPlaceholder:"Todos los estados",header:{id:"listado-progreso-estados-all",label:"Todos los estados"},tagsOverflowPopoverTitle:"Estados seleccionados",panelSearch:!1})})]}),t.jsx("div",{className:"tm-flex tm-items-center",children:t.jsx(x.Toggle,{label:"Solo Atrasadas",checked:r,onChange:d})})]})}),At=[{singular:"completada",serieApiName:"completadas",uiLabel:"Completada",chartLegendLabel:"Completadas",tagColor:"success",chartColorHex:"#22C55E"},{singular:"progresada",serieApiName:"progresadas",uiLabel:"En progreso",chartLegendLabel:"En progreso",tagColor:"accent",chartColorHex:"#3658C1"},{singular:"pausada",serieApiName:"pausadas",uiLabel:"Pausada",chartLegendLabel:"Pausadas",tagColor:"warning",chartColorHex:"#EAB308"},{singular:"atrasada",serieApiName:"atrasadas",uiLabel:"Atrasada",chartLegendLabel:"Atrasadas",tagColor:"danger",chartColorHex:"#EF4444"},{singular:"pendiente",serieApiName:"pendientes",uiLabel:"Pendiente",chartLegendLabel:"Pendientes",tagColor:"gray",chartColorHex:"#BABCBF"},{singular:"vencida",serieApiName:"vencidas",uiLabel:"Vencida",chartLegendLabel:"Vencidas",tagColor:"info",chartColorHex:"#0592AA"}],sn=Object.fromEntries(At.map(e=>[e.singular,e])),ta=At.map(e=>e.serieApiName),nn="atrasada";function It(e){return sn[e]}function on(e){var a;return(a=It(e.trim().toLowerCase()))==null?void 0:a.serieApiName}function Aa(e){return e?e.charAt(0).toUpperCase()+e.slice(1):""}function rn(e){const a=It(e);return a?a.uiLabel:Aa(e)}function ln(e,a){const n=(e??"").trim().toLowerCase();if(!n)return[{label:a,color:"gray"}];const s=It(n);return s?[{label:s.uiLabel,color:s.tagColor}]:[{label:Aa(n),color:"gray"}]}function cn(e){var a,n;if(Ye.isAxiosError(e)){const s=(a=e.response)==null?void 0:a.data;if(typeof s=="string"&&s.trim())return s;if(s&&typeof s=="object"&&"message"in s){const i=s.message;if(typeof i=="string")return i}const o=(n=e.response)==null?void 0:n.status;if(o)return`Error del servidor (${o}). Revisa logs del backend o el body de la respuesta.`}return e.message||"No se pudieron cargar los datos de progreso."}function dn(e){if(!e||typeof e!="object")return null;const n=e.event;if(n&&typeof n=="object"){const s=n;if(typeof s.offsetX=="number"&&typeof s.offsetY=="number")return{x:s.offsetX,y:s.offsetY};const o=s.event;if(o&&typeof o.offsetX=="number"&&typeof o.offsetY=="number")return{x:o.offsetX,y:o.offsetY}}return null}function mn(e){if(!e||typeof e!="object")return 0;const a=e.value;return typeof a=="number"?a:Array.isArray(a)&&typeof a[0]=="number"?a[0]:0}function un(e){return(Number.isFinite(e)?e:0).toFixed(0)}const pn=({id:e,listadoProgreso:a,phaseLabel:n,listadoForUi:s})=>{const{isPending:o,isError:i,error:r,isSuccess:c,data:m}=a,[l,d]=u.useState(null),p=s??m,h=u.useMemo(()=>{const w=(p==null?void 0:p.grafico)??[],j=F=>{var R,N;return((N=(R=w.find(D=>D.name===F))==null?void 0:R.data)==null?void 0:N[0])??0},b=At.map(F=>({key:F.serieApiName,label:F.chartLegendLabel,color:F.chartColorHex})),_=b.map(F=>F.label),M={legendLabel:{color:"#6C6E73",fontSize:12,fontWeight:"bold",padding:[0,0,0,20]}};return b.forEach((F,R)=>{M[`legendDot${R}`]={color:F.color,fontSize:20,fontWeight:"bold",padding:[0,0,0,6]}}),{tooltip:{show:!1},grid:{top:"20%",bottom:"20%",left:"7%",right:"3%"},xAxis:{type:"value",max:100,splitLine:{show:!0},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"category",data:[n],axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6C6E73",fontWeight:"bold",fontSize:12}},legend:{data:_,orient:"horizontal",top:"0%",left:"center",itemGap:30,icon:"none",itemWidth:0,itemHeight:0,formatter:F=>{const R=b.findIndex(N=>N.label===F);return R===-1?F:`{legendLabel|${F}}{legendDot${R}|●}`},textStyle:{rich:M}},series:b.map(F=>({name:F.label,type:"bar",stack:"total",itemStyle:{color:F.color},barWidth:"50%",data:[j(F.key)]}))}},[p==null?void 0:p.grafico,n]),f=u.useCallback(w=>{const j=w;if(j.componentType!=="series")return;const b=dn(w);if(!b)return;const _=mn(w),M=typeof j.seriesName=="string"?j.seriesName:"";d({x:b.x,y:b.y,label:`${un(_)}% ${M}`})},[]),g=u.useCallback(()=>{d(null)},[]),y=u.useMemo(()=>({mouseover:f,mousemove:f,globalout:g}),[f,g]);return t.jsx(x.Accordion,{id:e,title:"Grafico de Tareas",subtitle:"Distribución de tareas por estatus",defaultOpen:!0,children:t.jsxs("div",{className:"tm-min-h-[140px] tm-w-full tm-border tm-rounded-3xl tm-border-gray-50 tm-px-2 tm-py-2",style:{backgroundColor:"#F7F8FA"},children:[o&&t.jsx("h3",{className:"tm-flex tm-h-[140px] tm-items-center tm-justify-center tm-text-xl tm-font-medium tm-text-gray-500",children:"Cargando datos de progreso…"}),i&&r&&t.jsx("div",{className:"tm-flex tm-h-[140px] tm-items-center tm-justify-center tm-px-4 tm-text-center",children:t.jsx("span",{className:"tm-text-sm tm-font-medium tm-text-red-600",children:cn(r)})}),c&&m&&t.jsxs("div",{className:"tm-relative tm-h-[140px] tm-w-full",children:[t.jsx(Os,{option:h,style:{height:"100%",width:"100%"},onEvents:y}),l&&t.jsx("div",{className:"tm-pointer-events-none tm-absolute tm-z-[10]",style:{left:l.x,top:l.y,width:1,height:1,transform:"translate(-50%, -50%)"},"aria-hidden":!0,children:t.jsx(x.InlineTooltip,{isVisible:!0,label:l.label,position:"top"})})]})]})})},Dt="-";function Qe(e){const a=String(e??"").trim();return a.length>0?a:null}function Ke(e){const a=String(e??"").trim();return a.length>0?a:Dt}function fn(e){var i,r,c,m,l,d,p,h,f,g;if(!e)return;const a=(c=(r=(i=e.formats)==null?void 0:i.thumbnail)==null?void 0:r.url)==null?void 0:c.trim(),n=(d=(l=(m=e.formats)==null?void 0:m.small)==null?void 0:l.url)==null?void 0:d.trim(),s=(f=(h=(p=e.formats)==null?void 0:p.medium)==null?void 0:h.url)==null?void 0:f.trim(),o=(g=e.url)==null?void 0:g.trim();return a||n||s||o||void 0}function gn(e){if(!e)return!1;if(e.startsWith("data:")||e.startsWith("blob:"))return!0;try{const a=new URL(e);return a.protocol==="http:"||a.protocol==="https:"}catch{return!1}}function Ft(e,a){const n=(e.nombre??"").trim()||Dt,s=fn(e.imagen??null);let o;if(s){const r=s.startsWith("http")||s.startsWith("data:")||s.startsWith("blob:")?s:a(s);gn(r)&&(o=r)}const i=n.slice(0,1);return{name:n,src:o,letter:i}}function hn(e){return{tarea:Ke(e.tarea),categoria:Ke(e.categoria),nota:Ke(e.nota),clave:Ke(e.clave),tipo_medio:Ke(e.tipo_medio),ubicacion:Ke(e.ubicacion)}}function xn(e){return ln(e,Dt)}const Ia=4,aa=Ia-1,bn=120,yn=-8,sa=8;function jn(e){return e.length<=Ia?{visible:e,overflow:[]}:{visible:e.slice(0,aa),overflow:e.slice(aa)}}const tt="tm-h-8 tm-w-8 tm-min-h-[32px] tm-min-w-[32px] tm-max-h-[32px] tm-max-w-[32px] tm-shrink-0 tm-border tm-border-default",na="Sin responsable",Da="bottom",Fa="center",wn="tm-flex tm-max-w-xs tm-items-start tm-gap-2 tm-py-1",vn="tm-text-sm tm-font-semibold tm-leading-snug tm-text-gray-900";function oa(e,a){return e<a-1?{marginRight:`${yn}px`}:void 0}function _n({person:e,getImageOBP:a}){const{src:n,letter:s}=Ft(e,a);return n?t.jsx(x.Avatar,{type:"people",src:n,size:"xxs",className:tt}):t.jsx(x.Avatar,{type:"letter",text:s,size:"xxs",className:tt})}function Tn({person:e,getImageOBP:a}){const{name:n,src:s,letter:o}=Ft(e,a);return t.jsxs("div",{className:wn,children:[s?t.jsx(x.Avatar,{type:"people",src:s,size:"xxs",className:`tm-mt-0.5 ${tt}`}):t.jsx(x.Avatar,{type:"letter",text:o,size:"xxs",className:`tm-mt-0.5 ${tt}`}),t.jsx("span",{className:vn,children:n})]})}function Cn({popupId:e,trigger:a,children:n,popupBodyClassName:s="tm-p-3"}){const o=u.useRef(null),i=u.useRef(null),r=u.useRef(null),c=u.useCallback(()=>{r.current!==null&&(window.clearTimeout(r.current),r.current=null)},[]),m=u.useCallback(()=>{var d;c(),(d=i.current)==null||d.open()},[c]),l=u.useCallback(()=>{c(),r.current=window.setTimeout(()=>{var d;(d=i.current)==null||d.close(),r.current=null},bn)},[c]);return u.useEffect(()=>()=>c(),[c]),t.jsxs("div",{className:"tm-relative tm-inline-flex tm-shrink-0",children:[t.jsx("span",{ref:o,className:"tm-inline-flex tm-cursor-default",onMouseEnter:m,onMouseLeave:l,children:a}),t.jsx(x.Popup,{ref:i,popupId:e,triggerRef:o,closeOnClick:!1,position:"bottom-center",children:t.jsx("div",{className:s,onMouseEnter:m,onMouseLeave:l,children:n})})]})}function Nn(){return t.jsx(x.Tooltip,{label:na,position:Da,alignment:Fa,preserveLayout:!0,children:t.jsx("span",{className:"tm-inline-flex tm-shrink-0",role:"img","aria-label":na,children:t.jsx(x.Avatar,{type:"people",size:"xxs",className:tt,alt:""})})})}function Sn({person:e,getImageOBP:a}){const{name:n}=Ft(e,a);return t.jsx(x.Tooltip,{label:n,position:Da,alignment:Fa,preserveLayout:!0,children:t.jsx("span",{className:"tm-inline-flex tm-shrink-0",children:t.jsx(_n,{person:e,getImageOBP:a})})})}function En({overflow:e,getImageOBP:a,popupId:n}){return t.jsx(Cn,{popupId:n,popupBodyClassName:"tm-max-h-64 tm-overflow-y-auto tm-p-3",trigger:t.jsxs("span",{className:"tm-inline-flex tm-h-8 tm-w-8 tm-min-h-[32px] tm-min-w-[32px] tm-max-h-[32px] tm-max-w-[32px] tm-cursor-default tm-items-center tm-justify-center tm-rounded-control-pill tm-border tm-border-default tm-bg-fill-brand tm-text-xs tm-font-normal tm-leading-none tm-tracking-[0.5px] tm-text-on-color",children:["+",e.length]}),children:e.map((s,o)=>t.jsx(Tn,{person:s,getImageOBP:a},s.id!=null?`${s.id}-${o}`:o))})}const Pn=({responsables:e,getImageOBP:a,rowId:n})=>{const s=Array.isArray(e)?e:[];if(s.length===0)return t.jsx("div",{className:"tm-flex tm-min-w-0 tm-items-center",style:{paddingRight:`${sa}px`},children:t.jsx(Nn,{})});const{visible:o,overflow:i}=jn(s),r=o.length+(i.length>0?1:0);return t.jsxs("div",{className:"tm-flex tm-min-w-0 tm-items-center",style:{paddingRight:`${sa}px`},children:[o.map((c,m)=>{const l=c.id!=null?`r-${c.id}-${m}`:`r-${n}-${m}`;return t.jsx("div",{className:"tm-shrink-0",style:oa(m,r),children:t.jsx(Sn,{person:c,getImageOBP:a})},l)}),i.length>0?t.jsx("div",{className:"tm-shrink-0",style:oa(r-1,r),children:t.jsx(En,{overflow:i,getImageOBP:a,popupId:`listado-progreso-${n}-more`})}):null]})},An={name:de.faCircleSmall};function In({tags:e}){const a=Array.isArray(e)?e:[];return t.jsx("div",{className:"tm-inline-flex tm-min-w-0 tm-max-w-full tm-flex-wrap tm-content-start tm-items-center tm-gap-1",children:a.map((n,s)=>t.jsx("div",{className:"tm-min-w-0 tm-max-w-full tm-flex-shrink-0",children:t.jsx(x.Tag,{label:n.label,color:n.color,stroke:!1,truncateLabel:!0,truncateTooltip:!0,infoIcon:An})},`${n.label}-${s}`))})}const Dn=({listadoProgreso:e,listadoForUi:a,hideClaveColumn:n=!1})=>{var m,l;const{getImageOBP:s}=he(),o=u.useMemo(()=>{const d=[{id:"responsables",header:"Responsable",accessor:p=>p.responsables,width:140,minWidth:100,sortable:!1,filterable:!1,resizable:!1,render:(p,h)=>t.jsx(Pn,{responsables:h.responsables,getImageOBP:s,rowId:h.id})},{id:"tarea",header:"Tarea",accessor:"tarea",width:100,minWidth:90,sortable:!1,filterable:!1,resizable:!1},{id:"categoria",header:"Categoría",accessor:"categoria",width:110,minWidth:90,sortable:!1,filterable:!1,resizable:!1,contentAlign:"center"},{id:"estado",header:"Estado",accessor:p=>xn(p.estado),contentAlign:"center",width:110,minWidth:90,sortable:!1,filterable:!1,resizable:!1,render:p=>t.jsx(In,{tags:Array.isArray(p)?p:[]})},{id:"nota",header:"Notas",accessor:"nota",width:100,minWidth:90,sortable:!1,filterable:!1,resizable:!1},{id:"tipo_medio",header:"Grupo medio",accessor:"tipo_medio",width:130,minWidth:110,sortable:!1,filterable:!1,resizable:!1},{id:"ubicacion",header:"Ubicación",accessor:"ubicacion",width:120,minWidth:100,sortable:!1,filterable:!1,resizable:!1}];return n||d.splice(5,0,{id:"clave",header:"Código / Ruta",accessor:"clave",width:130,minWidth:100,sortable:!1,filterable:!1,resizable:!1,contentAlign:"center"}),d},[s,n]),i=u.useMemo(()=>{var p;const d=(a==null?void 0:a.data)??((p=e.data)==null?void 0:p.data);return Array.isArray(d)?d.map(h=>({...h,id:h.id,...hn(h)})):[]},[a==null?void 0:a.data,(m=e.data)==null?void 0:m.data]),r=e.isPending||e.isFetching&&i.length===0&&!e.isError,c=u.useMemo(()=>{var h,f;const d=(h=e.data)==null?void 0:h.data,p=Array.isArray(d)?d.length:0;if(e.isError)return{type:"empty",icon:ne.faBan,title:"No se pudo cargar el listado",description:((f=e.error)==null?void 0:f.message)??"Revisa la conexión o vuelve a intentar."};if(e.isSuccess){if(p===0&&i.length===0)return{type:"empty",icon:ne.faBan,title:"Esta campaña aún no tiene tareas",description:"Cuando asignes tareas a medios, aparecerán aquí con su estado y responsables."};if(p>0&&i.length===0)return{type:"no-filters",icon:ne.faBan,title:"No hay nada aquí...",description:"No hay tareas que coincidan con los filtros seleccionados."}}return{type:"empty",icon:ne.faBan,title:"No hay nada aquí..."}},[e.isError,e.isSuccess,e.error,(l=e.data)==null?void 0:l.data,i.length]);return t.jsx(t.Fragment,{children:t.jsx("div",{className:"tm-flex tm-min-h-0 tm-flex-col tm-mt-2 tm-h-[455px] tm-border tm-rounded-3xl tm-border-gray-300",children:t.jsx(x.Table,{columns:o,columnsLockable:!1,rows:i,loading:r,hoverable:!1,bordered:!1,borderable:!1,stickyHeader:!0,empty:c,resizable:!1,expandable:!1,striped:!1,stickyCheckbox:!1})})})},Fn={preventa:"Preventa",venta:"Venta"},Mn=({campaignName:e,phase:a,search:n,listado:s,filters:o})=>{const i=Fn[a],r=a==="preventa";return t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-4",children:[t.jsx(en,{campaignName:e,searchValue:n.value,onSearchChange:n.onChange}),t.jsx(an,{mediosOptions:o.mediosOptions,plazasOptions:o.plazasOptions,estadosOptions:o.estadosOptions,selectedMedios:o.selectedMedios,selectedPlazas:o.selectedPlazas,selectedEstados:o.selectedEstados,onlyDelayed:o.onlyDelayed,onChangeMedios:o.onChangeMedios,onChangePlazas:o.onChangePlazas,onChangeEstados:o.onChangeEstados,onChangeOnlyDelayed:o.onChangeOnlyDelayed}),t.jsx(pn,{id:`progress-chart-${i}`,listadoProgreso:s.query,phaseLabel:i,listadoForUi:s.dataForUi}),t.jsx(Dn,{listadoProgreso:s.query,listadoForUi:s.dataForUi,hideClaveColumn:r})]})};function kn(e){var i,r,c,m;const a=(i=e.types_media)==null?void 0:i.map(l=>l.trim()).filter(Boolean),n=(r=e.locations)==null?void 0:r.map(l=>l.trim()),s=(c=e.status)==null?void 0:c.map(l=>l.trim().toLowerCase()).filter(Boolean),o=((m=e.search)==null?void 0:m.trim().toLowerCase())||void 0;return{mediosSet:a&&a.length>0?new Set(a):void 0,locationsSet:n&&n.length>0?new Set(n):void 0,statusSet:s&&s.length>0?new Set(s):void 0,searchLower:o,onlyDelayed:e.onlyDelayed===!0}}function On(e,a){const{mediosSet:n,locationsSet:s,statusSet:o,searchLower:i,onlyDelayed:r}=a;if(n){const c=Qe(e.tipo_medio)??"";if(!n.has(c))return!1}if(s){const c=Qe(e.ubicacion)??"";if(!s.has(c))return!1}if(o){const c=(e.estado??"").trim().toLowerCase();if(!o.has(c))return!1}return!(r&&(e.estado??"").trim().toLowerCase()!==nn||i&&![(e.responsables??[]).flatMap(l=>[l.nombre??"",l.role??"",l.email??""]).join(" ").toLowerCase(),e.tarea??"",e.categoria??"",e.estado??"",e.nota??"",e.clave??"",e.tipo_medio??"",e.ubicacion??""].join(" ").toLowerCase().includes(i))}function Ln(e){const a=Object.fromEntries(ta.map(s=>[s,0]));for(const s of e){const o=on(s.estado??"");o&&(a[o]+=1)}const n=e.length;return ta.map(s=>({name:s,data:[n>0?a[s]/n*100:0]}))}function Bn(e,a){const n=kn(a);if(!(n.mediosSet!==void 0||n.locationsSet!==void 0||n.statusSet!==void 0||n.searchLower!==void 0||n.onlyDelayed))return e;const o=e.data.filter(i=>On(i,n));return{data:o,grafico:Ln(o)}}const Ma="__sin_ubicacion__";function ka(e,a){return String(e.label).localeCompare(String(a.label),"es",{sensitivity:"base"})}function ht(e,a,n){const s=new Map;return e.forEach(o=>{const i=a(o);!i||s.has(i)||s.set(i,{label:n?n(i):i,value:i})}),Array.from(s.values()).sort(ka)}function Rn(e){return e.map(a=>a===Ma?"":a)}function qn(e){const a=ht(e,r=>Qe(r.tipo_medio)),n=e.some(r=>Qe(r.ubicacion)===null),s=ht(e,r=>Qe(r.ubicacion)),o=[...n?[{label:"Sin ubicación",value:Ma}]:[],...s].sort(ka),i=ht(e,r=>{var c;return((c=Qe(r.estado))==null?void 0:c.toLowerCase())??null},r=>rn(r));return{medios:a,plazas:o,estados:i}}const zn=({isOpen:e,proyectoId:a,campaignName:n,onClose:s})=>{var k;const[r,c]=u.useState("preventa"),[m,l]=u.useState([]),[d,p]=u.useState([]),[h,f]=u.useState([]),[g,y]=u.useState(!1),[w,j]=u.useState(""),b=Ks(w,400),_=u.useMemo(()=>[{label:"Fase 1 (Preventa)",value:"preventa",leftSlot:ne.faHandHoldingHand},{label:"Fase 2 (Venta)",value:"venta",leftSlot:ne.faHandHoldingCircleDollar}],[]),M=()=>{l([]),p([]),f([]),y(!1)},F=()=>{c("preventa"),M(),j(""),s()},R=q=>{(q==="preventa"||q==="venta")&&(c(q),M(),j(""))},N=u.useMemo(()=>{const q=b.trim();if(q)return q.length>=2?q:void 0},[b,2]),D=Zs({proyectoId:a,fase:r,enabled:e,filters:{}}),v=u.useMemo(()=>({types_media:m.length>0?m:void 0,locations:d.length>0?Rn(d):void 0,status:h.length>0?h:void 0,search:N,onlyDelayed:g}),[m,d,h,N,g]),{medios:U,plazas:K,estados:J}=u.useMemo(()=>{var ee;const q=((ee=D.data)==null?void 0:ee.data)??[];return qn(q)},[(k=D.data)==null?void 0:k.data]),H=u.useMemo(()=>{const q=D.data;return q?Bn(q,v):null},[D.data,v]),O=u.useMemo(()=>({value:w,onChange:j}),[w]),S=u.useMemo(()=>({query:D,dataForUi:H}),[D,H]),B=u.useMemo(()=>({mediosOptions:U,plazasOptions:K,estadosOptions:J,selectedMedios:m,selectedPlazas:d,selectedEstados:h,onlyDelayed:g,onChangeMedios:l,onChangePlazas:p,onChangeEstados:f,onChangeOnlyDelayed:y}),[U,K,J,m,d,h,g]);return t.jsx(x.Modal,{isOpen:e,onClose:F,size:"xl",title:"Progreso",tabs:_,defaultValueTab:"preventa",onChangeTab:R,iconConfig:{icon:ne.faBullhorn},cancelButtonText:"Cerrar",showCancelButton:!0,closeAtCancel:!0,onCancel:F,showSuccessButton:!1,children:t.jsx("div",{style:{backgroundColor:"#F7F8FA",padding:"0px 16px 16px 16px"},children:t.jsx(x.Modal.Body,{children:t.jsx(Mn,{campaignName:n,phase:r,search:O,listado:S,filters:B})})})})},$n=({setPath:e,setProject:a})=>{var B;const[n,s]=u.useState([]),[o,i]=u.useState(!0),[r,c]=u.useState(0),[m,l]=u.useState(10),[d,p]=u.useState(0),[h,f]=u.useState(!1),[g,y]=u.useState(""),[w,j]=u.useState(0),{filters:b,defineFields:_}=De(),{tasks_api:M,getImageOBP:F}=he(),{user:R}=we(),N=u.useCallback(async(k,q)=>{var ee,W,re;try{i(!0);const Z={filters:{search:(b==null?void 0:b.search)??"",responsable:{idUser:R.id,responsableType:(ee=b==null?void 0:b.responsable)==null?void 0:ee.responsableType},ejecutivo:(b==null?void 0:b.ejecutivo)??"",cancelada:{$eq:!1}}},E=await M.get("/api/listado_campanias",{params:{pagination:{page:k,pageSize:q},...Z}}),z=be(E==null?void 0:E.data);s(z),p((re=(W=E==null?void 0:E.data)==null?void 0:W.meta)==null?void 0:re.total)}catch(Z){console.error("Error fetching data en Lista Campaña:",Z)}finally{i(!1)}},[b==null?void 0:b.ejecutivo,(B=b==null?void 0:b.responsable)==null?void 0:B.responsableType,b==null?void 0:b.search,M,R.id]),D=u.useCallback(async()=>{try{const k=await M.get("/api/obtener-comerciales");return[...Jt].map(ee=>(ee.id==="ejecutivo"&&(ee.options=k.data.map(W=>({id:W.nombre,name:W.nombre}))),ee))}catch(k){return console.error("Error fetching salesman data:",k),[...Jt]}},[M]);u.useEffect(()=>{(async()=>{const q=await D();_(q)})()},[_,D]),u.useEffect(()=>{const k=Math.floor(r/m)+1;N(k,m)},[r,m,b,N]);const v=k=>{c(k.first),l(k.rows)},U=Math.floor(r/m)+1,K=u.useMemo(()=>(R.role??"").trim().toLowerCase()==="project manager",[R.role]),J=u.useCallback(k=>{var q;y(((q=k.campania)==null?void 0:q.nombre)??k.nombre??""),j(Number(k.id)),f(!0)},[]),H=u.useMemo(()=>({label:"Ver progreso",leftSlot:ne.faEye,theme:"solid",color:"secondary",tooltip:"Ver progreso",onClick:k=>J(k)}),[J]),O=u.useMemo(()=>{const k=[{id:"nombre",header:"CAMPAÑA",accessor:q=>{var ee;return((ee=q.campania)==null?void 0:ee.nombre)??q.nombre??"-"},width:200,sortable:!1,filterable:!1,resizable:!1},{id:"inicia",header:"FECHA INICIO",accessor:q=>{var ee;return((ee=q.campania)==null?void 0:ee.inicia)??"-"},width:100,sortable:!1,filterable:!1,resizable:!1},{id:"termina",header:"FECHA FIN",accessor:q=>{var ee;return((ee=q.campania)==null?void 0:ee.termina)??"-"},width:100,sortable:!1,filterable:!1,resizable:!1},{id:"responsable",header:"RESPONSABLE",type:"primary",accessor:q=>{var ee,W;return((W=(ee=q.campania)==null?void 0:ee.responsable)==null?void 0:W.nombre)??"-"},width:150,sortable:!1,filterable:!1,resizable:!1,render:(q,ee)=>{var Q,I,A,G,P;const W=(Q=ee.campania)==null?void 0:Q.responsable,re=typeof q=="string"||typeof q=="number"?String(q):(W==null?void 0:W.nombre)??"-",Z=(W==null?void 0:W.role)??"-",E=((G=(A=(I=W==null?void 0:W.imagen)==null?void 0:I.formats)==null?void 0:A.thumbnail)==null?void 0:G.url)||((P=W==null?void 0:W.imagen)==null?void 0:P.url)||"",z=E?F(E):W==null?void 0:W.nombre;return{name:re,...z?{avatar:z}:{},...Z?{subtitle:Z}:{}}}},{id:"alertas",header:"ALERTAS",accessor:q=>zs(q.alertas),width:200,minWidth:100,filterable:!1,sortable:!1,resizable:!1,contentAlign:"center",render:q=>t.jsx(Hs,{tags:Array.isArray(q)?q:[]})}];return K&&k.push({id:"acciones",header:"ACCIONES",type:"button",sortable:!1,filterable:!1,resizable:!1,accessor:()=>H,width:190,minWidth:160}),k},[F,K,H]),S=u.useMemo(()=>(n??[]).map(k=>({...k,id:k.id})),[n]);return t.jsxs("div",{className:"tm-h-full tm-max-h-[100%] tm-overflow-y-auto tm-scrollbar-none",children:[t.jsx(x.Table,{columns:O,columnsLockable:!1,rows:S,loading:o,hoverable:!0,resizable:!1,pagination:{enabled:!0,currentPage:U,pageSize:m,total:d,pageSizes:[5,10,15,20,25,50],onPageChange:k=>c((k-1)*m),onPageSizeChange:k=>v({first:0,rows:k})},onRowClick:k=>{a({id:k.id,project:k.nombre}),e("kanban-campania")},empty:{type:"empty",title:"No hay campañas disponibles"}}),t.jsx(zn,{isOpen:h,proyectoId:w,campaignName:g,onClose:()=>f(!1)})]})},Oa=u.createContext(null),Un=()=>u.useContext(Oa),Hn=({children:e})=>{const a=u.useRef(null),n=u.useRef(null),s=()=>{var o;(o=n.current)==null||o.close()};return t.jsxs(t.Fragment,{children:[t.jsx(x.Button,{ref:a,leftSlot:ne.faFilter,color:"primary",theme:"solid",size:"sm",type:"button",children:"Filtrar"}),t.jsx(x.Popup,{ref:n,triggerRef:a,position:"bottom-right",offset:8,closeOnClickOutside:!0,closeOnEscape:!0,closeOnClick:!1,popoverArrow:!1,allowOverflow:!0,popupId:"tareas-filters-layout-popup",children:t.jsx(Oa.Provider,{value:s,children:e})})]})};function Kn(e,a=300,n={leading:!1,trailing:!0}){let s,o=null;return function(...i){const r=Date.now(),c=n.leading&&!o;clearTimeout(s),c&&e(...i),o=r,s=setTimeout(()=>{n.trailing&&(!n.leading||r-o>=a)&&(e(...i),o=null)},a)}}function Gn(e){return e!=null&&e.length?e.map(a=>({id:a.id,label:a.name,value:a.id})):[]}function Vn({field:e}){const{updateFilters:a,initialFilters:n}=De(),s=u.useMemo(()=>Gn(e.options),[e.options]),o=n==null?void 0:n[e.id],i=o??"";return t.jsx(x.Dropdown,{field:{label:e.label,placeholder:"Selecciona una opción",size:"xs"},items:{options:s,idName:"id"},values:{value:i},menuSearch:{searchable:!0,searchPlaceholder:"Buscar…"},popover:{fullWidth:!0,absolute:!1,closeOnClickOutside:!0,dropdownId:`filter-layout-${e.id}`,popoverZIndex:1300},events:{onValueChange:r=>{a({name:e.id,value:String(r)})}}})}const Wn=()=>{const{fields:e,updateFilters:a,cleanFilters:n,applyFilters:s,initialFilters:o}=De(),i=Un();return t.jsxs("div",{className:"tm-flex tm-min-w-[280px] tm-max-w-[400px] tm-flex-col tm-gap-8 tm-p-8",children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-gap-2",children:[t.jsx("p",{className:"tm-m-0 tm-text-heading-h6 tm-font-heading-h6 tm-leading-heading-h6 tm-tracking-heading-h6 tm-text-primary",children:"Filtros"}),t.jsx(x.Button,{color:"secondary",size:"xxs",icon:ne.faXmark,type:"button",onClick:()=>{n(),i==null||i()},children:"Limpiar"})]}),t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-3",children:e==null?void 0:e.map((r,c)=>t.jsx("div",{className:"tm-relative",style:{zIndex:10-c},children:(r==null?void 0:r.type)==="select"?t.jsx("div",{className:"tm-relative tm-z-[10] tm-w-full",children:t.jsx(Vn,{field:r})}):t.jsxs(t.Fragment,{children:[t.jsx("p",{className:"z-[1] tm-text-xl",children:r.label}),t.jsx("input",{className:"tm-h-[30px] tm-w-full tm-rounded-lg tm-p-s tm-shadow-input",type:r.type,value:o==null?void 0:o[r==null?void 0:r.id],name:r.label.toLowerCase().replace(/ /g,"_"),onChange:Kn(m=>{var l,d;return a({name:(l=m==null?void 0:m.target)==null?void 0:l.name,value:(d=m==null?void 0:m.target)==null?void 0:d.value})},1e3)})]})},c))}),t.jsx(x.Button,{color:"primary",size:"xs",type:"button",fullWidth:!0,onClick:()=>{s(),i==null||i()},children:"Filtrar"})]})},Mt=e=>new Intl.DateTimeFormat("es-MX",{month:"long"}).format(e);function Qn(e){const a=["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],n=new Date(e).getDay();return a[n]}const ra=e=>{let a=e||new Date,n=a.getDate(),s=Mt(a.getMonth()).slice(0,3),o=a.getFullYear().toString().slice(-2),i=Qn(a).slice(0,3);return`${i.charAt(0).toUpperCase()+i.slice(1)} ${n} ${s.charAt(0).toUpperCase()+s.slice(1)} ${o}`},kt=(e,a)=>({...e,image:e.image?`${a}${e.image}`:""}),at=e=>{var a,n;return e?(a=e.responsable)!=null&&a.nombre?e.responsable.nombre:(n=e.equipo)!=null&&n.nombre?e.equipo.nombre:null:null};class Xn{static toCampaignTasks(a){var i,r,c,m,l,d,p,h,f,g,y,w,j,b,_;const n=at(a==null?void 0:a.id_t_requerida),s=at(a==null?void 0:a.tarea_padre);let o=[];return a!=null&&a.responsable&&o.push({id:a.responsable.id,name:a.responsable.nombre,image:(l=(m=(c=(r=(i=a.responsable)==null?void 0:i.userOBP)==null?void 0:r.imagen)==null?void 0:c.formats)==null?void 0:m.thumbnail)==null?void 0:l.url,role:((d=a.responsable.userOBP)==null?void 0:d.role)||{id:0,name:""}}),(p=a==null?void 0:a.equipo)!=null&&p.miembros&&a.equipo.miembros.forEach(M=>{var F,R,N,D,v;o!=null&&o.find(U=>U.id===M.idUser.id)||M.idUser&&o.push({id:M.idUser.id,name:M.idUser.nombre,image:(D=(N=(R=(F=M==null?void 0:M.userOBP)==null?void 0:F.imagen)==null?void 0:R.formats)==null?void 0:N.thumbnail)==null?void 0:D.url,role:((v=M.userOBP)==null?void 0:v.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:o,repeatsToDo:(a==null?void 0:a.repeticiones)??null,repeats:(a==null?void 0:a.repeticiones_realizadas)??null,comments:((h=a==null?void 0:a.comentarios)==null?void 0:h.length)??null,willBePaused:a==null?void 0:a.es_pausable,nameProject:((f=a==null?void 0:a.proyecto)==null?void 0:f.nombre)??null,idProject:((g=a==null?void 0:a.proyecto)==null?void 0:g.id)??null,medioName:(a==null?void 0:a.nombre_medio)??null,statusRequiredTask:((y=a==null?void 0:a.id_t_requerida)==null?void 0:y.estatus)??null,nameRequiredTask:((w=a==null?void 0:a.id_t_requerida)==null?void 0:w.texto_corto)??null,nameRequiredTaskResponsible:n,name_father_required_task:((j=a==null?void 0:a.tarea_padre)==null?void 0:j.texto_corto)??null,name_father_required_task_responsible:s,responsible:((b=a==null?void 0:a.responsable)==null?void 0:b.id)??null,tasks:((_=a==null?void 0:a.tareas)==null?void 0:_.map(M=>({id:M.id,name:M.texto_corto,status:M.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 Yn=async({filters:e,tasks_api:a,project:n})=>{try{const s=await a.get("/api/listado_tareas_flujo",{params:{...e,project:{id:n},includeAllTasks:!0,populate:"*",cancelada:!1}}),o=be(s.data.tareas),i=Array.isArray(o)?o:[o],r=new Set;if(i.forEach(c=>{var m;(m=c==null?void 0:c.id_t_requerida)!=null&&m.id&&r.add(c.id_t_requerida.id)}),r.size>0){const c=Array.from(r),m=Pe.stringify({filters:{id:{$in:c}},populate:{responsable:{fields:["id","nombre"]},equipo:{fields:["id","nombre"]}}},{encodeValuesOnly:!0});try{const l=await a.get(`/api/tareas?${m}`),d=be(l.data.data||l.data),p=Array.isArray(d)?d:[d],h=new Map(p.map(f=>[f.id,f]));i.forEach(f=>{var g;if((g=f==null?void 0:f.id_t_requerida)!=null&&g.id){const y=h.get(f.id_t_requerida.id);y&&(f.id_t_requerida={...f.id_t_requerida,responsable:y.responsable||null,equipo:y.equipo||null})}})}catch{}}return i.map(Xn.toCampaignTasks)}catch(s){console.log(s)}},La=u.createContext({}),Jn=({children:e,project:a})=>{var j;const[n,s]=u.useState([]),[o,i]=u.useState(!1),[r,c]=u.useState([]),{tasks_api:m}=he(),{filters:l}=De(),{user:d}=we(),[p,h]=u.useState({owner:{user:d.id,config:((j=l==null?void 0:l.owner)==null?void 0:j.config)??"yo_y_mis_equipos"},project:{id:a}});u.useEffect(()=>{var b;if(Object.keys(l).length>0){const _={...l,owner:{user:d.id,config:((b=l==null?void 0:l.owner)==null?void 0:b.config)??"yo_y_mis_equipos"},project:{id:a}};h(_)}},[l,d.id,a]);const f=me.useQuery({queryKey:["tasksProject",p,a],queryFn:()=>{const b={...p,taskName:l==null?void 0:l.taskName,owner:{...p.owner,config:p.owner.config||"yo_y_mis_equipos"}};return Yn({filters:b,project:a,tasks_api:m})},refetchOnWindowFocus:!1}),g=b=>{s(_=>[..._,b])},y=b=>{c(_=>_.includes(b)?_.filter(M=>M!==b):[..._,b])},w=a??null;return t.jsx(La.Provider,{value:{tasksProject:f,selectedTasks:n,projectID:w,openTasks:r,selectTask:g,filtersToSend:p,openTask:y,isRefetching:o,project:a,filters:l,setIsRefetching:i},children:e})},Je=()=>u.useContext(La),Ba=u.createContext(void 0),ia=()=>({selectedTaskIds:[],baseColumn:null,isFullColumnSelected:!1});function Ra({children:e,invalidateAfterBulkSuccess:a}){const[n,s]=u.useState(ia),[o,i]=u.useState(null),[r,c]=u.useState(!1),{selectedTaskIds:m,baseColumn:l,isFullColumnSelected:d}=n,p=m.length>0,h=l!==null,f=u.useCallback(()=>{s(ia()),i(null),c(!1)},[]),g=u.useCallback(()=>{s(b=>({...b,selectedTaskIds:[],isFullColumnSelected:!1}))},[]),y=u.useCallback((b,_)=>{_!=="Completadas"&&s(M=>{if(M.baseColumn&&M.baseColumn!==_)return M;const F=new Set(M.selectedTaskIds);return F.has(b)?(F.delete(b),{selectedTaskIds:[...F],baseColumn:M.baseColumn,isFullColumnSelected:!1}):(F.add(b),{selectedTaskIds:[...F],baseColumn:M.baseColumn??_,isFullColumnSelected:!1})})},[]),w=u.useCallback(async(b,_)=>{if(b!=="Completadas"){c(!0);try{const M=await _(),F=[...new Set(M)];s(R=>R.baseColumn&&R.baseColumn!==b?R:{selectedTaskIds:F,baseColumn:R.baseColumn??b,isFullColumnSelected:F.length>0})}finally{c(!1)}}},[]);u.useEffect(()=>{m.length===0&&l!==null&&f()},[m.length,l,f]);const j=u.useMemo(()=>({selectedTaskIds:m,baseColumn:l,isMultiSelectActive:p,isBulkSessionActive:h,isFullColumnSelected:d,pendingTargetStatus:o,isBulkLoading:r,invalidateAfterBulkSuccess:a,toggleTaskSelection:y,deselectAllSelectedTasks:g,exitBulkSelectionMode:f,selectEntireColumn:w,setPendingTargetStatus:i,setIsBulkLoading:c}),[m,l,p,h,d,o,r,a,y,g,f,w,i,c]);return t.jsx(Ba.Provider,{value:j,children:e})}function Ot(){return u.useContext(Ba)}const Zn=()=>t.jsxs("div",{className:"tm-flex tm-h-[150px] tm-w-full tm-animate-pulse tm-flex-col tm-gap-[50px] tm-rounded-md tm-bg-gray-200 tm-p-4",children:[t.jsxs("div",{className:"tm-flex tm-h-[30px] tm-gap-3",children:[t.jsx("div",{className:"tm-h-full tm-w-[30px] tm-min-w-[30px] tm-rounded-full tm-bg-gray-300"}),t.jsx("div",{className:"tm-h-full tm-w-full tm-bg-gray-300"}),t.jsx("div",{className:"tm-h-full tm-w-[30px] tm-min-w-[30px] tm-rounded-full tm-bg-gray-300"})]}),t.jsxs("div",{className:"tm-flex tm-h-[30px] tm-w-full tm-justify-between tm-gap-[50px]",children:[t.jsx("div",{className:"tm-h-[30px] tm-w-full tm-bg-gray-300"}),t.jsx("div",{className:"tm-h-[30px] tm-w-full tm-bg-gray-300"})]})]});function Ie({trigger:e,children:a,enabled:n=!0,position:s="top",offset:o=8,closeOnClick:i=!1,popoverArrow:r="auto",className:c="tm-inline-flex tm-max-w-full",triggerWrapperClassName:m="tm-inline-flex tm-max-w-full"}){const l=u.useRef(null);return n?t.jsxs("span",{className:c,children:[t.jsx("span",{ref:l,className:m,children:e}),t.jsx(x.Popover,{triggerRef:l,openOnHover:!0,position:s,offset:o,closeOnClick:i,popoverArrow:r,children:a})]}):t.jsx(t.Fragment,{children:e})}const ge={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"}},qa=u.createContext(null),eo=({children:e})=>{const[a,n]=u.useState({message:"",type:"success"}),s=(o,i)=>{n({message:o,type:i}),setTimeout(()=>n({message:"",type:"success"}),3e3)};return t.jsx(qa.Provider,{value:{toast:a,showSuccess:o=>s(o,"success"),showError:o=>s(o,"error")},children:e})},Lt=()=>u.useContext(qa);class za{static toAtrasoReasons(a){return{id:a.id,motivo_imj:a.motivo_imj,categoria:a.categoria??null}}}const to=async({tasks_api:e})=>{try{const a=await e.get("/api/motivos",{params:{populate:{categoria:{fields:["id","nombre","tipo"]}},filters:{tipo:{$eq:"atraso"}}}});return be(a.data).map(za.toAtrasoReasons)}catch(a){throw console.log("Error al obtener los motivos de atraso",a),`Error al obtener los motivos de atraso: ${a}`}},$a=({enabled:e=!1}={})=>{const{tasks_api:a}=he(),{user:n}=we(),s=me.useQueryClient(),{showSuccess:o,showError:i}=Lt(),{filters:r,path:c}=De(),{data:m,isLoading:l}=me.useQuery({queryKey:["atraso_reasons"],queryFn:()=>to({tasks_api:a}),staleTime:1e3*60*60*24,enabled:e}),d=async()=>{const M=await a.get("/api/motivos",{params:{filters:{tipo:{$eq:"atraso"}}}});return be(M.data).map(za.toAtrasoReasons)},p=async({taskId:M,motivoId:F,projectID:R})=>{try{return(await a.post("/api/atrasos",{data:{inicio:new Date,fin:null,motivo:F,proyecto:R,tarea:M,creada_por:n==null?void 0:n.id}})).data}catch(N){console.log("error",N)}},h=async M=>{try{return(await a.delete(`/api/atrasos/${M}`)).data}catch(F){console.log("error",F)}},f=async M=>{try{return(await a.put(`/api/atrasos/${M}`,{data:{fin:new Date}})).data}catch(F){console.log("error",F)}},g=async({taskId:M,projectID:F,motivo:R})=>{await j({taskId:M,motivoId:R,projectID:F})},y=async M=>{await b(M)},w=async M=>{await _(M)},{mutateAsync:j}=me.useMutation({mutationFn:p,onSuccess:()=>{o("Atraso registrado correctamente"),c==="kanban-general"&&(s.invalidateQueries({queryKey:["to_do_tasks",r]}),s.invalidateQueries({queryKey:["working_tasks",r]})),c==="kanban-campania"&&s.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{i("Error al registrar el atraso")}}),{mutateAsync:b}=me.useMutation({mutationFn:h,onSuccess:()=>{o("Atraso eliminado correctamente"),c==="kanban-general"&&(s.invalidateQueries({queryKey:["to_do_tasks"]}),s.invalidateQueries({queryKey:["working_tasks"]}),s.invalidateQueries({queryKey:["done_tasks"]})),c==="kanban-campania"&&s.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{i("Error al eliminar el atraso")}}),{mutateAsync:_}=me.useMutation({mutationFn:f,onSuccess:()=>{o("Atraso finalizado correctamente")},onError:()=>{i("Error al finalizar el atraso")}});return{atrasoReasons:m,isLoading:l,createAtraso:g,getAtrasoReasons:d,deleteAtraso:y,finalizarAtraso:w}},He=()=>{const{tasks_api:e}=he(),{user:a}=we(),{filters:n,path:s}=De(),o=me.useQueryClient(),{projectID:i}=Je(),{showSuccess:r,showError:c}=Lt(),{finalizarAtraso:m}=$a({enabled:!1}),l=async({id:O})=>(await e.put(`/api/tareas/${O}`,{data:{estatus:1,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,d=async({id:O})=>(await e.put(`/api/tareas/${O}`,{data:{estatus:0,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,p=async({id:O,idAtraso:S})=>{const B=await e.post("/api/terminarTarea",{id_task:O,ended_at:new Date().toISOString(),id_user:a==null?void 0:a.id});return await m(S),B.data},h=async({id:O,repeats:S})=>(await e.put(`/api/tareas/${O}`,{data:{repeticiones_realizadas:S,updated_by:a==null?void 0:a.id}})).data,f=async({id:O,motiveId:S})=>{try{const B=await e.post("/api/pausarTarea",{taskId:O,userId:a==null?void 0:a.id,motivoId:S});return r("Tarea pausada correctamente"),B.data}catch(B){c("Error al pausar la tarea: "+B)}},g=async({id:O})=>{try{const S=await e.post("/api/reanudarTarea",{taskId:O});return r("Tarea reanudada correctamente"),S.data}catch(S){c("Error al reanudar la tarea: "+S)}},y=async({id:O,idNewResponsible:S,typeOfSelect:B})=>{let k={updated_by:a==null?void 0:a.id};return B==="responsible"&&(k={...k,responsable:S}),B==="team"&&(k={...k,responsable:null,equipo:S}),(await e.put(`/api/tareas/${O}`,{data:k})).data},w=async({id:O,data:S,user:B})=>{try{return(await e.put(`/api/tareas/${O}`,{data:{...S,updated_by:B==null?void 0:B.id}})).data}catch(k){console.error("Error updating the element:",k)}},j=async({id:O})=>{await M({id:O})},b=async({id:O,data:S,user:B})=>{await _({id:O,data:S,user:B})},{mutateAsync:_}=me.useMutation({mutationFn:w,onSuccess:()=>{r("Tarea actualizada correctamente");const O={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[O[s],n]}),o.invalidateQueries({queryKey:["done_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(S){console.error("Error invalidating queries:",S)}},onError:O=>{console.error("Failed to update the task.",O)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]})}}),{mutateAsync:M}=me.useMutation({mutationFn:l,onSuccess:()=>{const O={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[O[s],n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(S){console.error("Error updating the element:",S)}},onError:O=>{console.error("Failed to update the task.",O)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:F}=me.useMutation({mutationFn:p,onSuccess:()=>{const O={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o.setQueryData([O[s],n],S=>{console.log({oldData:S})}),s==="kanban-general"&&(o.invalidateQueries({queryKey:[O[s],n]}),o.invalidateQueries({queryKey:["done_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(S){console.error("Error invalidating queries:",S)}},onError:O=>{console.error("Failed to update the task.",O)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["done_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:R}=me.useMutation({mutationFn:h,onSuccess:()=>{const O={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[O[s],n]}),o.invalidateQueries({queryKey:["done_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(S){console.error("Error invalidating queries:",S)}},onError:O=>{console.error("Failed to update the task.",O)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["done_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:N}=me.useMutation({mutationFn:y,onSuccess:()=>{const O={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[O[s],n]}),o.invalidateQueries({queryKey:["done_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(S){console.error("Error invalidating queries:",S)}},onError:O=>{console.error("Failed to reassign the task.",O)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["done_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:D}=me.useMutation({mutationFn:d,onSuccess:()=>{const O={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[O[s],n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(S){console.error("Error updating the element:",S)}},onError:O=>{console.error("Failed to update the task.",O)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}});return{updatingTask:b,updateTask:w,startTask:async({id:O})=>{await D({id:O})},startWorking:j,completeTask:async({id:O,idAtraso:S})=>{await F({id:O,idAtraso:S})},reasignResponsible:async({id:O,idNewResponsible:S,typeOfSelect:B})=>{await N({id:O,idNewResponsible:S,typeOfSelect:B})},updateUnitys:async({repeats:O,id:S})=>{await R({repeats:O,id:S})},pauseTask:async({id:O,motiveId:S})=>{console.log({taksId:O,motivoId:S,user:a==null?void 0:a.id})},postPauseTask:f,postReanudeTask:g}};function ao(e,a){const n=a??0;return(e??"")!==""&&n===2&&n===2||!(e??"")}function so(e){const a=e.repeatsToDo;return a==null||a<=0?!1:(e.repeats??0)!==a}function Bt(e){return e.status===2||so(e)?!1:ao(e.nameRequiredTask,e.statusRequiredTask)}const Ae=({imageUrl:e="https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png",alt:a="avatar",size:n="s"})=>{const s={xs:"tm-w-[24px] tm-h-[24px] tm-min-w-[24px] tm-min-h-[24px]",s:"tm-w-[28px] tm-h-[28px] tm-min-w-[28px] tm-min-h-[28px]",m:"tm-w-[32px] tm-h-[32px] tm-min-w-[32px] tm-min-h-[32px]",l:"tm-w-[36px] tm-h-[36px] tm-min-w-[36px] tm-min-h-[36px]",xl:"tm-w-[40px] tm-h-[40px] tm-min-w-[40px] tm-min-h-[40px]",xxl:"tm-w-[44px] tm-h-[44px] tm-min-w-[44px] tm-min-h-[44px]"}[n];return t.jsx("img",{src:e===""?"https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png":e,alt:a??"avatar",className:`${s} tm-bg-containers tm-rounded-full tm-border-2 tm-border-white`})},la=({trigger:e,user:a,showUser:n=!0})=>t.jsx(Ie,{trigger:e,enabled:n,children:t.jsxs("div",{className:"tm-flex tm-h-fit tm-w-fit tm-items-center tm-gap-2 tm-bg-bg-card tm-p-2",children:[t.jsx(Ae,{imageUrl:a.image??"",alt:a.name}),t.jsx("p",{className:"tm-text-sm tm-font-bold tm-text-texts-subtext",children:a.name})]})}),no=({options:e,onselect:a})=>{const[n,s]=u.useState(""),o=[...e].filter(i=>i.name.toLowerCase().includes(n.toLowerCase()));return t.jsxs("div",{className:"tm-h-fit tm-w-full tm-min-w-max",children:[t.jsx(x.Input,{size:"sm",fullWidth:!0,leftSlot:ne.faSearch,placeholder:"Buscar",value:n,onValueChange:s}),t.jsx("div",{className:"tm-border-cards tm-flex tm-max-h-[120px] tm-min-w-max tm-flex-col tm-gap-s tm-overflow-y-auto tm-rounded-lg tm-bg-bg-card tm-p-2 tm-mt-2",children:o.map(i=>t.jsxs("button",{type:"button",onClick:()=>{a(i)},className:"tm-flex tm-min-w-full tm-max-w-[200px] tm-cursor-pointer tm-items-center tm-gap-s hover:tm-bg-primary-light",children:[i.image&&t.jsx(Ae,{imageUrl:i.image,alt:i.name}),t.jsx("p",{className:"tm-min-w-0 tm-text-left tm-text-[14px] tm-truncate tm-py-m tm-font-normal tm-text-texts-subtext",children:i.name})]},i.id??i.name))})]})};class oo{static toDomain(a){return{id:a.id,name:a.nombre,color:a.color}}}const ro=()=>{const{tasks_api:e}=he();return{teams:me.useQuery({queryKey:["teams","all"],queryFn:async()=>{const n=await e.get("/api/equipos");return be(n.data).map(oo.toDomain)},refetchOnWindowFocus:!1})}};class Rt{static toUsers(a){var n,s,o;return{id:a.id,name:a.nombre,image:(o=(s=(n=a.imagen)==null?void 0:n.formats)==null?void 0:s.thumbnail)==null?void 0:o.url,tasksUser:{email:a.tasksUser.email,id:a.tasksUser.id,nombre:a.tasksUser.nombre},role:a.role}}static toUsersV2(a){var n,s,o;return{id:a.id,name:a.nombre,image:(o=(s=(n=a.imagen)==null?void 0:n.formats)==null?void 0:s.thumbnail)==null?void 0:o.url,role:a.role}}static toUsersWithIndex(a){var s,o,i;const n={};for(const r of a)n[r.email]={...r,image:(i=(o=(s=r.imagen)==null?void 0:s.formats)==null?void 0:o.thumbnail)==null?void 0:i.url};return n}}const io=async({tasks_api:e})=>{try{const a=await e.get("/api/getAllOBPusersMembers");return be(a.data).map(Rt.toUsers)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},lo=async({tasks_api:e})=>{try{const a={filters:{$and:[{role:{name:{$in:["Project Manager","Operation Manager","Administrador"]}}},{blocked:{$eq:!1}}]}},n=Pe.stringify(a,{encodeValuesOnly:!0}),s=await e.get(`/api/users?${n}`),i=be(s.data).map(m=>m.email),r=await e.get(`/api/getAllOBPusers?filters[name][$in]=${i}`);return be(r.data).map(Rt.toUsersV2)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},co=async({users:e})=>{try{const a=be(e);return Rt.toUsersWithIndex(a)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},mo=()=>{const{tasks_api:e}=he();return{users:me.useQuery({queryKey:["users"],queryFn:()=>io({tasks_api:e}),staleTime:1e3*60*60*24})}},uo=()=>{const{tasks_api:e}=he();return{users:me.useQuery({queryKey:["allUsers"],queryFn:()=>lo({tasks_api:e}),staleTime:1e3*60*60*24})}},ca="Project Manager",Ua=({users:e,onClick:a,responsible:n,role:s,status:o})=>{const{getOBPUrlApi:i}=he(),r=u.useRef(null),c=u.useRef(null),m=u.useId(),[l,d]=u.useState("team"),{teams:p}=ro(),{users:h}=mo(),f=s===ca||o===0&&s!==ca,g=()=>n?null:e.length>3&&t.jsx(Ie,{position:"top",popoverArrow:!1,triggerWrapperClassName:"tm-inline-flex tm-items-center",trigger:t.jsx("div",{className:"tm-ml-[-8px] tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center tm-rounded-full tm-border-2 tm-border-white tm-bg-[var(--ui-color-bg-fill-brand-default)]",children:t.jsx("p",{className:"tm-text-sm tm-font-bold tm-text-white ",children:`+${e.length-3}`})}),children:t.jsx("div",{className:"tm-border-containers tm-h-fit tm-w-fit tm-rounded-lg tm-bg-bg-card tm-p-2",children:e==null?void 0:e.slice(3).map((b,_)=>t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-2 ",children:[t.jsx(Ae,{imageUrl:b.image??"",alt:b.name},_),t.jsx("p",{className:"tm-text-sm tm-font-bold tm-text-texts-subtext",children:b.name})]},_))})}),y=()=>{if(n){const b=e.find(_=>_.id===n);return t.jsx("div",{children:f?t.jsx(x.Tooltip,{label:(b==null?void 0:b.name)??"",position:"top",children:t.jsx(Ae,{imageUrl:b==null?void 0:b.image,alt:b==null?void 0:b.name},n)}):t.jsx(la,{trigger:t.jsx(Ae,{imageUrl:b==null?void 0:b.image,alt:b==null?void 0:b.name},n),user:b,showUser:!0})})}return(e==null?void 0:e.length)>0&&e.slice(0,3).map((b,_)=>t.jsx("div",{className:`${_===0?"":"tm-ml-[-8px]"}`,children:f?t.jsx(x.Tooltip,{label:b.name,position:"top",children:t.jsx(Ae,{imageUrl:b.image,alt:b.name})}):t.jsx(la,{trigger:t.jsx(Ae,{imageUrl:b.image,alt:b.name}),user:b,showUser:!0})},b.id||_))},w=()=>{const b=[{id:"team",label:"Equipo"},{id:"responsible",label:"Responsable"}];return t.jsx("div",{className:"tm-flex tm-w-full tm-justify-center tm-gap-l tm-font-bold tm-text-texts-placeholder",children:b.map((_,M)=>t.jsx("button",{type:"button",className:`tm-w-full tm-border-texts-placeholder tm-text-center tm-text-[10px] ${l===_.id?"tm-text-primary-pastel":""} ${M===b.length-1?"tm-border-r-0":" tm-border-r-2"}`,onClick:()=>d(_.id),children:_.label},_.id))})},j=()=>t.jsxs("div",{className:"tm-border-cards tm-flex tm-max-h-[200px] tm-flex-col tm-gap-m tm-overflow-y-hidden tm-rounded-lg tm-bg-bg-card tm-p-2",style:{boxShadow:"0px 2px 16px 0px rgba(0, 0, 0, 0.25)"},children:[w(),t.jsx(no,{options:l==="team"?((p==null?void 0:p.data)??[]).map(b=>({id:b.id,name:b.name,image:""})):((h==null?void 0:h.data)??[]).map(b=>kt(b,i())),onselect:b=>{var _,M;(_=c.current)==null||_.close(),a((M=b.tasksUser)==null?void 0:M.id,l)}})]});return e.length===0?f?t.jsxs(t.Fragment,{children:[t.jsx("span",{ref:r,className:"tm-inline-flex tm-cursor-pointer tm-items-center",children:t.jsx(x.Icon,{name:ne.faUser,size:"xs",color:"current"})}),t.jsx(x.Popover,{ref:c,triggerRef:r,position:"bottom-left",offset:8,closeOnClick:!1,closeOnClickOutside:!0,closeOnEscape:!0,popoverArrow:!1,popupId:`assign-users-${m}`,children:j()})]}):t.jsx("span",{className:"tm-inline-flex tm-items-center",children:t.jsx(x.Icon,{name:ne.faUser,size:"xs",color:"current"})}):t.jsxs(t.Fragment,{children:[t.jsxs("span",{ref:r,className:"tm-flex tm-cursor-pointer tm-items-center",children:[y(),g()]}),f&&t.jsx(x.Popover,{ref:c,triggerRef:r,position:"bottom-left",offset:8,closeOnClick:!1,closeOnClickOutside:!0,closeOnEscape:!0,popoverArrow:!1,popupId:`assign-users-avatars-${m}`,children:j()})]})},Ha=({priority:e,id:a,withLabel:n=!1})=>{const{updatingTask:s}=He(),o=u.useId().replace(/:/g,""),[i,r]=u.useState(null),{user:c}=we(),[m,l]=u.useState(e);u.useEffect(()=>{l(e)},[e]);const d={0:{title:"Normal",color:ge.primary.regular},1:{title:"Baja",color:ge.success.regular},2:{title:"Media",color:ge.warning.regular},3:{title:"Alta",color:ge.danger.regular}},p={title:"Sin prioridad",color:ge.texts.subtext},f=(()=>{const j=m;if(typeof j!="number"||!Number.isFinite(j))return p;const b=Math.trunc(j);return b<0||b>3?p:d[b]??p})(),g=f.title??"Sin prioridad",y=()=>{if(!i)return null;const j=({priorityTask:b,text:_})=>{var M,F;return t.jsxs("button",{onClick:async()=>{r(null),await s({id:a,data:{prioridad:b},user:c==null?void 0:c.id}),l(b)},className:"tm-flex tm-items-center tm-gap-m tm-px-l tm-py-s hover:tm-bg-primary-light",children:[t.jsx(x.Icon,{name:ne.faFlag,size:"xs",style:{color:(M=d[b??0])==null?void 0:M.color},color:"current"}),t.jsx("p",{className:"tm-text-sm",style:{color:(F=d[b??0])==null?void 0:F.color},children:_})]})};return Na.createPortal(t.jsx("div",{onBlur:()=>{r(null)},id:`${o}-options`,style:{top:`${i.y+5}px`,left:`${i.x+5}px`,zIndex:50},className:`tm-absolute tm-flex tm-h-fit tm-w-max tm-flex-col tm-gap-2 tm-rounded-xl tm-bg-bg-card tm-p-m
2
+ tm-shadow-lg`,"data-portal-host":!0,children:Object.values(d).map((b,_)=>t.jsx(j,{priorityTask:_,text:b.title},_))}),document.body)},w=j=>{j.stopPropagation()};return t.jsxs("div",{className:"tm-relative",onClick:w,onPointerDown:w,children:[t.jsxs("label",{onBlur:()=>{r(null)},htmlFor:o,className:"tm-flex tm-cursor-pointer tm-items-center tm-gap-2 active:tm-opacity-50",children:[t.jsx(Ie,{trigger:t.jsx(x.Icon,{name:ne.faFlag,size:"sm",style:{color:f.color},color:"current"}),children:t.jsx("p",{className:"tm-font-regular tm-rounded-lg tm-bg-bg-card tm-p-5 tm-text-sm",style:{color:f.color},children:`Prioridad: ${g}`})}),n&&t.jsx("span",{style:{color:f.color},className:"tm-text-lg tm-font-normal",children:g})]}),t.jsx("button",{id:o,onClick:j=>{j.stopPropagation(),r(i?null:{x:j.clientX,y:j.clientY})},className:"tm-hidden"}),t.jsx(y,{})]})};function po(e,a){return((e==null?void 0:e.map(s=>{var o;return{id:s.id,nombre:s.motivo_imj??"",categoria:(o=s.categoria)==null?void 0:o.nombre}}).filter(s=>s.categoria===a))??[]).filter(s=>typeof s.id=="number"&&!Number.isNaN(s.id)&&s.nombre.length>0).map(s=>({id:s.id,nombre:s.nombre}))}function fo(e){return e.map(a=>({id:a.id,label:a.nombre}))}const Re={TO_SECOND:"task-move-first-to-second",TO_THIRD:"task-move-first-to-third",TO_FOURTH:"task-move-first-to-fourth"};function go(e,a){const n=[];return e===0&&n.push({id:Re.TO_SECOND,label:"Mover a trabajando",icon:Ce.faArrowRight}),e===1&&n.push({id:Re.TO_SECOND,label:"Mover a completada",icon:Ce.faArrowRight},{id:Re.TO_FOURTH,label:"Mover por hacer",icon:Ce.faArrowLeft}),a?n.push({id:Re.TO_THIRD,label:"Eliminar atraso"}):n.push({id:Re.TO_THIRD,label:"Agregar atraso"}),n}function ho(e){return e===0?{title:"Mover a trabajando"}:{title:"Mover a completada"}}function xo(){return{title:"Mover a por hacer"}}function da({copy:e,onMove:a}){return t.jsxs("div",{className:"tm-flex tm-h-fit tm-w-max tm-max-w-[280px] tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-lg tm-transition-all tm-duration-200 tm-ease-in-out",children:[t.jsx("p",{className:"tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_medium",children:e.title}),t.jsx(x.Button,{type:"button",fullWidth:!0,size:"xs",color:"primary",onClick:a,children:"Mover"})]})}const Ka=({status:e,nameRequiredTask:a,statusRequiredTask:n,id:s,statusLateTask:o=null,projectID:i,atrasoId:r,categoria:c,disabled:m=!1})=>{const l=u.useRef(null),d=u.useRef(null),p=u.useRef(null),{startWorking:h,completeTask:f,startTask:g}=He(),y=u.useRef(!1),[w,j]=u.useState(!1),[b,_]=u.useState(null),[M,F]=u.useState("first"),R=a!==""&&n===2,[N,D]=u.useState(null),{atrasoReasons:v,isLoading:U,createAtraso:K,deleteAtraso:J}=$a({enabled:!0}),[H,O]=u.useState(null),S=u.useCallback(()=>{var E;(E=l.current)==null||E.close()},[]);u.useEffect(()=>{o&&F("third")},[o]),u.useEffect(()=>{if(!w)return;const E=()=>{S()};return window.addEventListener("scroll",E,!0),document.addEventListener("scroll",E,!0),()=>{window.removeEventListener("scroll",E,!0),document.removeEventListener("scroll",E,!0)}},[w,S]);const B=E=>{F(E),E==="second"?_(e===0?"Trabajando":"Completadas"):E==="fourth"&&_("Por hacer")},k=()=>{if(y!=null&&y.current)return t.jsx("div",{className:"tm-hover:bg-primary-light tm-flex tm-h-fit tm-w-max tm-translate-x-0 tm-items-center tm-gap-2 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-lg tm-transition-all tm-duration-200 tm-ease-in-out",children:t.jsx("p",{className:"tm-font-regular tm-text-sm tm-font-normal tm-text-primary-pastel",children:"Moviendo..."})});const E=go(e,r);return t.jsx("div",{className:"tm-flex tm-h-fit tm-w-max tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-lg tm-transition-all tm-duration-200 tm-ease-in-out",children:t.jsx(x.ListBase,{variant:"default",list:{items:E},events:{onItemClick:z=>{switch(z.id){case Re.TO_SECOND:B("second");break;case Re.TO_THIRD:B("third");break;case Re.TO_FOURTH:B("fourth");break}}}})})},q=()=>t.jsx(da,{copy:ho(e),onMove:()=>{y.current=!0,b==="Trabajando"?h({id:s}):b==="Por hacer"?g({id:s}):f({id:s,idAtraso:r}),S()}}),ee=()=>{if(U)return t.jsx("div",{children:"Cargando motivos..."});const E=po(v,c==null?void 0:c.nombre),z=fo(E);return E.length>0?t.jsxs("div",{className:"tm-flex tm-h-fit tm-w-[288px] tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-lg tm-transition-all tm-duration-200 tm-ease-in-out",children:[!N&&!r?t.jsxs(t.Fragment,{children:[t.jsx("p",{className:"tm-mb-[11px] tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_regular",children:"Atraso de tarea"}),t.jsx(x.Dropdown,{field:{placeholder:"Seleccione una opción"},items:{options:z,idName:"id"},values:{value:(H==null?void 0:H.id)??""},menuSearch:{searchable:!0,searchPlaceholder:"Buscar"},popover:{absolute:!1,closeOnClickOutside:!0,dropdownId:`task-atraso-motivo-${s}`,popoverZIndex:1200},events:{onValueChange:Q=>{const I=Number(Q);if(Number.isNaN(I))return;const A=E.find(G=>G.id===I);O({id:I,nombre:(A==null?void 0:A.nombre)??""})},onOptionSelect:Q=>{const I=Q.id;I==null||Number.isNaN(Number(I))||O({id:Number(I),nombre:String(Q.label??"")})}}})]}):t.jsxs(t.Fragment,{children:[t.jsx("p",{className:"tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_medium",children:"¿Estas seguro?"}),t.jsx("p",{className:"tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_medium",children:r?"Estás eliminando el atraso de la tarea seleccionada":`Esta tarea está atrasada debido a ${(N==null?void 0:N.nombre)??""}`})]}),t.jsxs("div",{className:"tm-my-[11px] tm-flex tm-justify-end tm-gap-3",children:[t.jsx(x.Button,{type:"button",size:"xs",color:"secondary",onClick:()=>{N?D(null):S()},children:N?"Regresar":"Cancelar"}),t.jsx(x.Button,{type:"button",size:"xs",color:"primary",onClick:()=>{D(H),r&&!N?J(r):N&&Z()},children:"Aceptar"})]})]}):t.jsx("div",{className:"tm-flex tm-h-fit tm-w-[288px] tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-lg tm-transition-all tm-duration-200 tm-ease-in-out",children:"No hay motivos de atraso para ésta tarea"})},W=()=>t.jsx(da,{copy:xo(),onMove:()=>{y.current=!0,g({id:s}),S()}}),re=()=>{if(M==="first")return k();if(M==="second")return q();if(M==="third")return ee();if(M==="fourth")return W()},Z=async()=>{if(H)try{await K({taskId:s,projectID:i,motivo:(H==null?void 0:H.id)??null}),S()}catch(E){console.error("Error al crear atraso:",E)}};return t.jsx(t.Fragment,{children:(R&&n===2||!a)&&t.jsxs(t.Fragment,{children:[t.jsx(x.Button,{ref:d,type:"button","aria-label":"Más opciones para mover la tarea",color:"secondary",pill:"pill",size:"xxs",icon:Ce.faEllipsis,disabled:m}),t.jsx(x.Popup,{ref:l,triggerRef:d,popupId:`task-move-menu-${s}`,position:"bottom-right",offset:1,closeOnClick:!1,closeOnClickOutside:!1,popoverArrow:!1,onOpen:()=>{j(!0),F("first")},onClose:()=>j(!1),children:t.jsx("div",{ref:p,className:`
3
+ tm-ease tm-transition-all tm-duration-300
4
+ ${M==="second"?"":"tm-translate-x-0"}
5
+ `,children:re()})})]})})},bo=({id:e,idAtraso:a})=>{const[n,s]=u.useState(!1),{completeTask:o}=He();return{checked:n,checkTask:()=>{s(!n),o({id:e,idAtraso:a})}}},ma={checked:"tm-mx-[2px] tm-flex tm-h-[20px] tm-w-[20px] tm-items-center tm-justify-center tm-rounded-full tm-bg-success-regular tm-transition-all",unchecked:"tm-transition-colors"},yo="tm-mx-[2px] tm-flex tm-items-center tm-justify-center tm-rounded-full tm-bg-success-regular tm-transition-all",ua="tm-text-sm tm-flex tm-w-fit tm-max-w-[400px] tm-flex-col tm-gap-m tm-rounded-lg tm-border-l-[5px] tm-border-warning-regular tm-bg-warning-light tm-p-l tm-text-warning-dark tm-shadow-xl",Ga=({id:e,nameRequiredTask:a,statusRequiredTask:n,status:s,idAtraso:o,nameRequiredTaskResponsible:i,name_father_required_task:r,name_father_required_task_responsible:c,repeatsAreCompleted:m=!1})=>{const l=u.useId(),d=`checkbox-${e}-${l}`,{checked:p,checkTask:h}=bo({id:e,idAtraso:o}),g=!!(a&&a!==""&&n===2)||!a,y=!!r,w=s===1&&m,j=()=>t.jsx("label",{htmlFor:d,className:p?ma.checked:ma.unchecked,children:p?t.jsx(x.Icon,{name:ne.faCheck,size:"xs",style:{color:"white"},color:"current"}):t.jsx(x.Icon,{name:ne.faCircle,size:"sm",style:{color:ge.texts.placeholder},color:"current"})});return s===2?t.jsx("div",{className:yo,children:t.jsx(x.Icon,{name:de.faCircleCheck,size:"xs",style:{color:"white"},color:"current"})}):y?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"tm-flex tm-w-fit tm-shrink-0 tm-flex-row tm-flex-nowrap tm-items-center tm-gap-1",children:[t.jsx(Ie,{position:"bottom",popoverArrow:!1,triggerWrapperClassName:"tm-inline-flex tm-items-center",trigger:t.jsx("span",{className:"tm-cursor-help tm-inline-flex","aria-hidden":!0,children:t.jsx(x.Icon,{name:ne.faCircleInfo,size:"sm",style:{color:ge.warning.regular},color:"current"})}),children:t.jsxs("div",{className:ua,children:[t.jsx("p",{className:"tm-w-[210px] tm-font-bold",children:"Tarea padre:"}),t.jsx("p",{children:r}),c&&t.jsxs("p",{className:"tm-font-bold",children:["Responsable:"," ",t.jsx("span",{className:"tm-font-normal",children:c})]}),t.jsx("span",{className:"tm-font-normal tm-italic tm-text-[#919191]",children:"Esta tarea completa automáticamente la tarea padre."})]})}),w&&j()]}),t.jsx("input",{id:d,checked:p,onChange:h,type:"checkbox",className:"tm-hidden","aria-hidden":!0})]}):g?t.jsxs(t.Fragment,{children:[s===1&&j(),t.jsx("input",{id:d,checked:p,onChange:h,type:"checkbox",className:"tm-hidden","aria-hidden":!0})]}):t.jsxs(t.Fragment,{children:[t.jsx(Ie,{position:"bottom",popoverArrow:!1,triggerWrapperClassName:"tm-inline-flex tm-items-center",trigger:t.jsx("span",{className:"tm-cursor-help tm-inline-flex","aria-hidden":!0,children:t.jsx(x.Icon,{name:ne.faCircleInfo,size:"sm",style:{color:ge.warning.regular},color:"current"})}),children:t.jsxs("div",{className:ua,children:[t.jsx("p",{className:"tm-w-[210px] tm-font-bold",children:"Requiere completar su tarea:"}),t.jsx("p",{children:a}),i&&t.jsxs("p",{className:"tm-font-bold",children:["Responsable: ",t.jsx("span",{className:"tm-font-normal",children:i})]})]})}),t.jsx("input",{id:d,checked:p,onChange:h,type:"checkbox",className:"tm-hidden","aria-hidden":!0})]})};function jo({items:e}){var s;const[a,n]=u.useState(1);return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"tm-mb-2 tm-mt-4 tm-flex tm-flex-row tm-border-b tm-border-black-light tm-bg-white",children:e.map((o,i)=>t.jsx("div",{className:"tm-border-r tm-border-black-light",children:t.jsx(x.Button,{color:"tertiary",pill:"none",size:"xs",active:a===o.id,onClick:()=>n(o.id),children:o.label},o.id)},o.id))}),t.jsx("div",{className:"tm-flex-1 tm-overflow-y-auto tm-bg-white tm-pt-4",children:(s=e.find(o=>o.id===a))==null?void 0:s.component})]})}function wo({comment:e}){var o,i,r,c,m;const{getImageOBP:a}=he(),n=(c=(r=(i=(o=e==null?void 0:e.autor)==null?void 0:o.imagen)==null?void 0:i.formats)==null?void 0:r.thumbnail)==null?void 0:c.url;function s(l){const d=ct.parseISO(l);return ct.formatDistanceToNow(d,{locale:Pt.es,addSuffix:!0})}return t.jsx("div",{children:t.jsxs("div",{className:"tm-flex tm-flex-row tm-items-start tm-gap-3",children:[t.jsx(Ae,{size:"xxl",imageUrl:n?a(n):"",alt:"@shadcn"}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-4",children:[t.jsxs("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-4",children:[t.jsx(x.Text,{type:"title",size:"sm",weight:"medium",color:"secondary",children:(m=e==null?void 0:e.autor)==null?void 0:m.nombre}),t.jsx(x.Text,{children:s(e==null?void 0:e.createdAt)})]}),t.jsx(x.Text,{children:e==null?void 0:e.comentario})]})]})})}function vo({currentUser:e,data:a,taskId:n,onNewComment:s}){var f,g,y;const{tasks_api:o,getImageOBP:i}=he(),{control:r,handleSubmit:c,reset:m}=Se.useForm({defaultValues:{comment:""}}),[l,d]=u.useState([]),p=(y=(g=(f=e==null?void 0:e.imagen)==null?void 0:f.formats)==null?void 0:g.thumbnail)==null?void 0:y.url;u.useEffect(()=>{if(a!=null&&a.comentarios){const w=[...a.comentarios].sort((j,b)=>new Date(b.createdAt).getTime()-new Date(j.createdAt).getTime());d(w)}},[a]);const h=async w=>{try{const j={id:Date.now(),autor:{id:e==null?void 0:e.id,email:e==null?void 0:e.email,nombre:e==null?void 0:e.nombre,imagen:e==null?void 0:e.imagen},comentario:w.comment,createdAt:new Date().toISOString(),updatedAt:null};await o.post("/api/comentarios",{data:{autor:e==null?void 0:e.id,comentario:w.comment,tarea:n}}),s(!0),d(b=>[j,...b]),m()}catch(j){console.error("Error al agregar comentario:",j)}};return t.jsxs("div",{className:"tm-flex tm-h-full tm-flex-col tm-gap-4",children:[t.jsxs("form",{onSubmit:c(h),className:"tm-flex tm-flex-row tm-items-center tm-gap-3",children:[t.jsx(Ae,{size:"xxl",imageUrl:p?i(p):"",alt:"@shadcn"}),t.jsx("div",{className:"tm-min-w-0 tm-flex-1",children:t.jsx(Se.Controller,{name:"comment",control:r,rules:{required:"Escribe un comentario"},render:({field:w,fieldState:{error:j}})=>t.jsx(x.Input,{fullWidth:!0,placeholder:"Escribe un comentario",autoComplete:"off",size:"xs",error:j==null?void 0:j.message,...w,value:w.value??""})})})]}),l&&l.map((w,j)=>t.jsx(wo,{comment:w},j))]})}function _o({data:e}){const a={0:{color:"tm-bg-gray-400",label:"Sin estado"},1:{color:"tm-bg-primary-regular",label:"En curso"},2:{color:"tm-bg-success-regular",label:"Finalizada"},3:{color:"tm-bg-success-regular",label:"Finalizada"}},n=s=>s?ct.format(new Date(s),"d MMM",{locale:Pt.es}):"";return t.jsxs("div",{children:[t.jsxs("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-4",children:[t.jsx(x.Text,{children:"Tareas dependientes"}),t.jsx(x.Text,{className:"tm-flex tm-h-24 tm-w-24 tm-items-center tm-justify-center tm-rounded-full tm-bg-[#E1EBF9] tm-text-xs tm-font-normal tm-text-primary",children:e==null?void 0:e.length})]}),t.jsx("div",{className:"tm-mt-3 tm-flex tm-flex-col tm-gap-2 tm-rounded-lg tm-border tm-border-light-gray-100",children:e==null?void 0:e.map(s=>{var o,i,r,c,m;return t.jsxs("div",{className:"tm-flex tm-w-full tm-flex-row tm-items-center tm-justify-between tm-gap-s tm-px-2 tm-py-1",children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-2",children:[t.jsx(Ae,{imageUrl:(c=(r=(i=(o=s.responsable)==null?void 0:o.image)==null?void 0:i.formats)==null?void 0:r.thumbnail)==null?void 0:c.url}),t.jsx(x.Text,{children:s==null?void 0:s.texto_corto})]}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-1",children:[t.jsx(x.Text,{children:n(s==null?void 0:s.createdAt)}),t.jsx("div",{className:`tm-block tm-h-4 tm-w-4 tm-rounded-full tm-bg-gray-400 ${((m=a[s==null?void 0:s.estatus])==null?void 0:m.color)??"tm-bg-gray-400"}`})]})]},s.id)})})]})}function To({id:e,texto_largo:a,user_id:n}){const[s,o]=u.useState(a),{updatingTask:i}=He(),r=async()=>{await i({id:e,data:{texto_largo:s},user:n})};return u.useEffect(()=>{o(a)},[a]),t.jsx("div",{className:"tm-mt-16 tm-flex tm-w-full tm-flex-col tm-gap-3",children:t.jsx(x.Input,{fullWidth:!0,label:"Descripción",size:"md",value:s,onChange:c=>o(c.target.value),onBlur:r,autoComplete:"off",placeholder:"Agregar descripción"})})}function Va({isOpen:e,setIsOpen:a,taskId:n}){var j,b,_,M,F,R,N,D,v;const[s,o]=u.useState(null),[i,r]=u.useState(!1),[c,m]=u.useState(!1),[l,d]=u.useState(null),p=(M=(_=(b=(j=s==null?void 0:s.responsable)==null?void 0:j.imagen)==null?void 0:b.formats)==null?void 0:_.thumbnail)==null?void 0:M.url,{tasks_api:h,getImageOBP:f}=he(),{user:g}=we();u.useEffect(()=>{if(e&&n||i){const U=async()=>{const J=await h.get(`/api/detalleTarea/${n}`);o(J==null?void 0:J.data)},K=async()=>{const J=await h.get(`/api/users/${g.id}`);d(J==null?void 0:J.data)};U(),K()}},[e,n,i,g.id,h]);const y=U=>U?ct.format(U,"d MMM yyyy, h:mmaaa",{locale:Pt.es}):"Fecha no disponible",w=[{id:1,label:"Todo",component:t.jsx(vo,{taskId:n,currentUser:l,data:s,onNewComment:r})},{id:2,label:"Dependencias",component:t.jsx(_o,{data:s==null?void 0:s.ids_t_dependientes})}];return e&&Na.createPortal(t.jsxs(t.Fragment,{children:[t.jsx("div",{className:`tm-fixed tm-inset-0 tm-z-20 tm-flex tm-items-center tm-justify-center tm-bg-transparent tm-bg-opacity-50 ${e?"tm-pointer-events-auto tm-block":"tm-pointer-events-none tm-hidden"}`,onClick:()=>a(!1)}),t.jsx("section",{className:`tm-fixed tm-bottom-0 tm-top-0 tm-z-50 tm-flex tm-h-screen tm-w-[550px] tm-items-center tm-justify-center tm-overflow-hidden tm-bg-white tm-bg-opacity-50 tm-shadow-2xl tm-transition-all tm-duration-500 tm-ease-in-out ${e?"tm-pointer-events-auto tm-right-0 tm-block":"tm-pointer-events-none tm-right-[-100%] tm-hidden"}`,children:t.jsxs("div",{className:"tm-flex tm-h-full tm-w-full tm-flex-col tm-overflow-y-scroll tm-border-none tm-bg-white tm-p-16 tm-shadow-xl",children:[t.jsxs("div",{className:"tm-flex tm-w-full tm-flex-row tm-items-center tm-justify-between tm-gap-10 tm-border-none tm-pb-4",children:[t.jsxs("div",{className:"tm-relative tm-flex tm-flex-row tm-items-start tm-gap-8",children:[((F=s==null?void 0:s.id_t_requerida)==null?void 0:F.id)&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"tm-cursor-help",onMouseOver:()=>m(!0),onMouseLeave:()=>m(!1),children:t.jsx(x.Icon,{name:ne.faCircleInfo,size:"sm",style:{color:ge.warning.regular},color:"current"})}),c&&(()=>{var K;const U=at(s==null?void 0:s.id_t_requerida);return t.jsxs("div",{style:{top:"25px"},className:"tm-absolute tm-flex tm-w-fit tm-max-w-[400px] tm-flex-col tm-gap-m tm-rounded-lg tm-border-l-[5px] tm-border-warning-regular tm-bg-warning-light tm-p-l tm-text-xs tm-text-warning-dark",children:[t.jsx("p",{className:"tm-font-bold",children:"Requiere completar su tarea:"}),t.jsx("p",{className:"tm-text-2xl tm-font-normal tm-text-neutral-600",children:(K=s==null?void 0:s.id_t_requerida)==null?void 0:K.texto_corto}),U&&t.jsxs("p",{className:"tm-font-bold",children:["Responsable: ",t.jsx("span",{className:"tm-font-normal",children:U})]})]})})()]}),t.jsx("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-8",children:t.jsxs("h3",{className:"tm-text-base tm-font-semibold tm-text-neutral-900",children:[s==null?void 0:s.texto_corto,(s==null?void 0:s.atraso)&&t.jsx(x.Tooltip,{label:(R=s==null?void 0:s.atraso)==null?void 0:R.motivo,position:"bottom",children:t.jsx("button",{className:"tm-ml-2 tm-inline-block tm-h-fit tm-align-middle",children:t.jsx(x.Icon,{name:ne.faTriangleExclamation,size:"md",style:{color:ge.warning.dark},color:"current"})})})]})})]}),t.jsx(x.Button,{color:"secondary",pill:"pill",size:"xs",onClick:()=>a(!1),icon:ne.faXmark})]}),t.jsx("div",{className:"tm-mt-6 tm-flex tm-w-full tm-flex-row tm-justify-between",children:t.jsxs("span",{className:"tm-text-xs tm-text-light-gray-700",children:[s==null?void 0:s.campania," / ",s==null?void 0:s.nombre_medio]})}),t.jsx(To,{id:n,texto_largo:s==null?void 0:s.texto_largo,user_id:g.id}),t.jsx(x.Accordion,{id:`details-task-detalles-${n}`,title:"Detalles",defaultOpen:!0,className:"tm-mt-6 tm-w-full",headerClassName:"tm-border-b tm-border-black-light tm-pb-4",children:t.jsxs("div",{className:"tm-gap-xy-details tm-grid tm-w-full tm-grid-cols-3 tm-p-4",children:[t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Responsable"}),(N=s==null?void 0:s.responsable)!=null&&N.nombre?t.jsxs("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-8",children:[t.jsx(Ae,{size:"xxl",imageUrl:p?f(p):"",alt:"@shadcn"}),t.jsx(x.Text,{children:(D=s==null?void 0:s.responsable)==null?void 0:D.nombre})]}):t.jsx(x.Text,{children:"Sin responsable"})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Equipo asignado"}),t.jsx("div",{className:"tm-flex tm-flex-row tm-gap-8",children:t.jsx(x.Text,{children:((v=s==null?void 0:s.equipo)==null?void 0:v.nombre)??"Sin equipo"})})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Prioridad"}),t.jsx(Ha,{priority:parseInt(s==null?void 0:s.prioridad)||0,id:n,withLabel:!0})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Lista"}),t.jsx("div",{className:"tm-flex tm-flex-row tm-gap-8",children:t.jsx(x.Text,{children:(s==null?void 0:s.lista)??"Sin lista"})})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Fecha estimada de inicio"}),t.jsx(x.Text,{children:y(s==null?void 0:s.f_inicio_estimada)})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Fecha estimada de fin"}),t.jsx(x.Text,{children:y(s==null?void 0:s.f_fin_estimada)})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Fecha de fin"}),t.jsx(x.Text,{children:y(s==null?void 0:s.ffin)})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Creado"}),t.jsx(x.Text,{children:y(s==null?void 0:s.createdAt)})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Última modificación"}),t.jsx(x.Text,{children:y(s==null?void 0:s.updatedAt)})]})]})}),t.jsx(jo,{items:w})]})})]}),document.body)}class Co{static toPauseReasons(a){return{id:a.id,motivo_imj:a.motivo_imj}}}const No=async({tasks_api:e})=>{try{const a=await e.get("/api/motivos");return be(a.data).map(Co.toPauseReasons)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},So=()=>{const{tasks_api:e}=he();return{pauseReasons:me.useQuery({queryKey:["pause_task_reasons"],queryFn:()=>No({tasks_api:e}),staleTime:1e3*60*60*24})}};class Eo{static toKanbanTasks(a){var i,r,c,m,l,d,p,h,f,g,y,w,j;const n=at(a==null?void 0:a.id_t_requerida),s=at(a==null?void 0:a.tarea_padre);let o=[];return a!=null&&a.responsable&&o.push({id:a.responsable.id,name:a.responsable.nombre,image:(l=(m=(c=(r=(i=a.responsable)==null?void 0:i.userOBP)==null?void 0:r.imagen)==null?void 0:c.formats)==null?void 0:m.thumbnail)==null?void 0:l.url,role:((d=a.responsable.userOBP)==null?void 0:d.role)||{id:0,name:""}}),(p=a==null?void 0:a.equipo)!=null&&p.miembros&&a.equipo.miembros.forEach(b=>{var _,M,F,R,N;o!=null&&o.find(D=>D.id===b.idUser.id)||b.idUser&&o.push({id:b.idUser.id,name:b.idUser.nombre,image:(R=(F=(M=(_=b==null?void 0:b.userOBP)==null?void 0:_.imagen)==null?void 0:M.formats)==null?void 0:F.thumbnail)==null?void 0:R.url,role:((N=b.userOBP)==null?void 0:N.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:(h=a==null?void 0:a.proyecto)==null?void 0:h.nombre,idProject:(f=a==null?void 0:a.proyecto)==null?void 0:f.id,willBePaused:a.es_pausable,difficulty:a.nivel_dificultad,endDate:new Date(a.ffin),id:a.id,priority:a.prioridad??0,status:a.estatus,task:a.texto_corto,users:o,responsible:((g=a==null?void 0:a.responsable)==null?void 0:g.id)??null,name_father_required_task:((y=a==null?void 0:a.tarea_padre)==null?void 0:y.texto_corto)??null,name_father_required_task_responsible:s,statusRequiredTask:((w=a.id_t_requerida)==null?void 0:w.estatus)??null,nameRequiredTask:((j=a.id_t_requerida)==null?void 0:j.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 dt=async({filters:e,tasks_api:a})=>{try{const s=(await a.get("/api/listado_tareas?populate=*",{params:{...e,cancelada:!1}})).data.tareas.map(be),o=new Set;if(s.forEach(i=>{var r;(r=i==null?void 0:i.id_t_requerida)!=null&&r.id&&o.add(i.id_t_requerida.id)}),o.size>0){const i=Array.from(o),r=Pe.stringify({filters:{id:{$in:i}},populate:{responsable:{fields:["id","nombre"]},equipo:{fields:["id","nombre"]}}},{encodeValuesOnly:!0});try{const c=await a.get(`/api/tareas?${r}`),m=be(c.data.data||c.data),l=Array.isArray(m)?m:[m],d=new Map(l.map(p=>[p.id,p]));s.forEach(p=>{var h;if((h=p==null?void 0:p.id_t_requerida)!=null&&h.id){const f=d.get(p.id_t_requerida.id);f&&(p.id_t_requerida={...p.id_t_requerida,responsable:f.responsable||null,equipo:f.equipo||null})}})}catch{}}return s.map(Eo.toKanbanTasks)}catch(n){throw console.log({error:n}),`Error al obtener las tareas: ${n}`}},qt=30,zt=e=>{var a;if(e!=null&&e.hasNextPage){const n=(a=e==null?void 0:e.data)==null?void 0:a.pages[e.data.pages.length-1];(n==null?void 0:n.length)===qt&&(e==null||e.fetchNextPage())}},$e=e=>({pagination:{page:e,pageSize:qt,withCount:!0}}),Wa=()=>{var l;const e=me.useQueryClient(),{tasks_api:a}=he(),{user:n}=we(),{filters:s}=De(),[o,i]=u.useState(0),[r,c]=u.useState({owner:{user:n.id,config:((l=s==null?void 0:s.owner)==null?void 0:l.config)??"yo_y_mis_equipos",role:n.role},status:"por_hacer"}),m=me.useInfiniteQuery({initialPageParam:1,queryKey:["to_do_tasks",r],queryFn:({pageParam:d})=>dt({filters:{...r,status:"por_hacer",...$e(d)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(d,p)=>p.length+1});return u.useEffect(()=>{var d;Object.keys(s).length>0&&c({...s,owner:{user:n.id,config:((d=s==null?void 0:s.owner)==null?void 0:d.config)??"yo_y_mis_equipos",role:n.role},status:"por_hacer"})},[s]),u.useEffect(()=>{e.invalidateQueries({queryKey:["to_do_tasks",r]})},[r]),u.useEffect(()=>{(async()=>{const p=await a.get("/api/listado_tareas",{params:{...r,status:"por_hacer",cancelada:!1,...$e(1),tasks_api:a,justCount:!0}});i(p.data.total)})()},[r,m==null?void 0:m.data]),{toDoTasks:m,total:o,filtersToSend:r}};function Po(e){return(e??[]).map(a=>({id:a.id,label:a.motivo_imj}))}const Ao=({idTask:e,setOpen:a,paused:n})=>{const s=me.useQueryClient(),{toDoTasks:o,filtersToSend:i}=Wa(),[r,c]=u.useState(!1),[m,l]=u.useState(null),{tasksProject:d}=Je(),{postPauseTask:p,postReanudeTask:h}=He(),{pauseReasons:f}=So(),g=Po(f==null?void 0:f.data),y=async()=>{try{if(m==null)return;if(a(!1),await p({id:e,motiveId:m}),await s.invalidateQueries({queryKey:["to_do_tasks",i]}),await s.invalidateQueries({queryKey:["tasksProject"]}),o&&typeof o.refetch=="function"||d&&typeof d.refetch=="function"){const j=await o.refetch(),b=await d.refetch();return[j,b]}}catch(j){console.error("Error al pausar la tarea:",j)}},w=async()=>{try{if(a(!1),await h({id:e}),await s.invalidateQueries({queryKey:["to_do_tasks",i]}),await s.invalidateQueries({queryKey:["tasksProject"]}),o&&typeof o.refetch=="function"||d&&typeof d.refetch=="function"){const j=await o.refetch(),b=await d.refetch();return[j,b]}}catch(j){console.error("Error al reanudar la tarea:",j)}};return t.jsx("div",{className:"tm-flex tm-w-[300px] tm-max-w-[300px] tm-items-center !tm-p-4",children:t.jsxs("div",{className:"tm-flex tm-w-full tm-flex-col tm-gap-s ",children:[t.jsx("h6",{className:"tm-font-regular tm-text-texts-subtext tm-truncate tm-text-xl",children:"Pausar tarea:"}),r?t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-s",children:[t.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"Esta acción detendrá la campaña en curso."}),t.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):n?t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-s",children:[t.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"Esta acción reanudará la campaña en curso."}),t.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):t.jsx(x.Dropdown,{field:{placeholder:"Selecciona una razón"},items:{options:g,idName:"id"},values:{value:m??""},menuSearch:{searchable:!0,searchPlaceholder:"Buscar"},popover:{absolute:!1,closeOnClickOutside:!0,dropdownId:`task-pause-motivo-${e}`,popoverZIndex:1200},events:{onValueChange:j=>{const b=Number(j);Number.isNaN(b)||l(b)},onOptionSelect:j=>{const b=Number(j.id);Number.isNaN(b)||l(b)}}}),t.jsxs("div",{className:"tm-mt-5 tm-flex tm-w-full tm-justify-end tm-gap-m",children:[t.jsx(x.Button,{type:"button",onClick:()=>a(!1),size:"xs",color:"secondary",children:"Cancelar"}),n?t.jsx(x.Button,{type:"button",onClick:()=>w(),size:"xs",color:"primary",children:"Si, reanudar"}):t.jsx(x.Button,{type:"button",disabled:!m,onClick:()=>r?y():c(!0),size:"xs",color:"primary",children:"Aceptar"})]})]})})},Qa=({idTask:e,paused:a,popupId:n,children:s})=>{const o=u.useRef(null),i=u.useRef(null),[r,c]=u.useState(!1),[m,l]=u.useState(0),d=`task-pause-motivo-${e}`,p=u.useCallback(()=>{var h;(h=o.current)==null||h.close()},[]);return u.useEffect(()=>{if(!r)return;const h=f=>{const g=f.target;g instanceof Element&&(g.closest(`[data-popup-id="${n}"]`)||g.closest(`[data-dropdown-id="${d}"]`))||p()};return window.addEventListener("scroll",h,!0),document.addEventListener("scroll",h,!0),()=>{window.removeEventListener("scroll",h,!0),document.removeEventListener("scroll",h,!0)}},[r,p,n,d]),t.jsxs(t.Fragment,{children:[s(i),t.jsx(x.Popup,{ref:o,triggerRef:i,popupId:n,position:"bottom-left",offset:5,closeOnClick:!1,closeOnClickOutside:!1,popoverArrow:!1,onOpen:()=>{c(!0),l(h=>h+1)},onClose:()=>c(!1),children:t.jsx(Ao,{idTask:e,paused:a,setOpen:h=>{h||p()}},m)})]})},Io=({id:e,task:a,endDate:n,users:s,willBePaused:o,nameProject:i,comments:r,priority:c,difficulty:m,responsible:l,nameRequiredTask:d,nameRequiredTaskResponsible:p,statusRequiredTask:h,status:f,repeatsToDo:g,repeats:y,medioName:w,paused:j,idProject:b,atraso:_,categoria:M,cambio_arte:F,name_father_required_task:R,name_father_required_task_responsible:N,boardColumnTitle:D,isBulkColumnLocked:v=!1})=>{const[U,K]=u.useState(!1),J=u.useId(),{reasignResponsible:H,updateUnitys:O}=He(),{getOBPUrlApi:S}=he(),[B,k]=u.useState(y??0),q=!!(g&&y===g),ee=!g||g===1,W=f===0,{user:re}=we(),Z=Ot(),E=!!(Z!=null&&Z.selectedTaskIds.includes(e)),z=Bt({status:f,nameRequiredTask:d,statusRequiredTask:h,repeatsToDo:g,repeats:y}),Q=!!Z&&!!D&&D!=="Completadas"&&!v,I=Q&&z,A=Q&&!z&&!!(Z!=null&&Z.isBulkSessionActive),G=!!(Z!=null&&Z.isMultiSelectActive&&I),P=!I||!!(Z!=null&&Z.isBulkLoading),C=ie=>{!Z||!D||P||Z.toggleTaskSelection(e,D)},$=()=>t.jsxs("div",{className:"tm-relative tm-flex tm-h-fit tm-w-full tm-items-center tm-justify-between",children:[t.jsxs("div",{className:"tm-flex tm-min-w-0 tm-flex-1 tm-flex-row tm-items-start tm-gap-[8px]",children:[f<2&&(R||q||ee||W)&&t.jsx("span",{"data-prevent-bulk-select":!0,children:t.jsx(Ga,{id:e,nameRequiredTask:d??"",statusRequiredTask:h??0,status:f,idAtraso:_==null?void 0:_.atrasoId,nameRequiredTaskResponsible:p,name_father_required_task:R,name_father_required_task_responsible:N,repeatsAreCompleted:q})}),t.jsx("p",{className:"tm-w-full tm-overflow-hidden tm-text-ellipsis tm-text-nowrap tm-text-base tm-text-neutral-900","data-prevent-bulk-select":!0,onClick:ie=>{ie.stopPropagation(),K(!0)},children:a})]}),z&&t.jsxs("div",{className:"tm-flex tm-shrink-0 tm-items-center tm-gap-2","data-prevent-bulk-select":!0,children:[Z?t.jsx("div",{className:"tm-flex tm-items-center tm-pt-0.5 tm-pr-2",children:t.jsx(x.Checkbox,{id:`kanban-bulk-select-${e}-${J}`,size:"sm",checked:E,disabled:P,onChange:C})}):null,t.jsx(Ka,{id:e,nameRequiredTask:d,status:f,statusRequiredTask:h,projectID:b,atrasoId:_==null?void 0:_.atrasoId,categoria:M,disabled:G})]})]}),L={0:{title:"Muy fácil",color:ge.primary.regular},1:{title:"Fácil",color:ge.success.regular},2:{title:"Media",color:ge.warning.regular},3:{title:"Difícil",color:ge.danger.regular},4:{title:"Muy difícil",color:ge.danger.dark}},T={title:"Sin dato",color:ge.texts.subtext},Y=(()=>{const ie=m;if(typeof ie!="number"||!Number.isFinite(ie))return T;const te=Math.trunc(ie);return te<0||te>4?T:L[te]??T})(),ae=ie=>{k(te=>ie==="minus"?Math.max(0,te-1):Math.min(g,te+1))},le=ie=>{var te;return((te=ie==null?void 0:ie.charAt(0))==null?void 0:te.toUpperCase())??""},X=ie=>ie==="Venta"?"accent":"danger",se=v||!!(Z!=null&&Z.isBulkLoading),ce=A?"tm-cursor-not-allowed tm-opacity-60 hover:tm-border-cards hover:tm-bg-white":"tm-cursor-pointer hover:tm-border-light-gray-100 hover:tm-border-primary-regular hover:tm-bg-primary-light";return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:`tm-relative tm-h-fit tm-max-w-[350px] tm-rounded-lg tm-border tm-p-[12px_12px] tm-transition-all tm-duration-300 ${ce} ${E?"tm-border-blue-500 tm-bg-primary-light":"tm-border-transparent tm-bg-white"} ${se?"tm-pointer-events-none":""}`,children:[t.jsx($,{}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-[4px] tm-py-2",children:[t.jsx("p",{className:"tm-font-regular tm-max-w-[250px] tm-truncate tm-text-xs tm-text-texts-subtext",children:i}),w&&t.jsx("p",{className:"tm-text-xl",children:w})]}),F&&t.jsx(x.Badge,{label:F.nombre,color:"gray",icon:ne.faImage,size:"md",theme:"solid"}),t.jsxs("div",{"data-prevent-bulk-select":!0,className:"tm-relative tm-flex tm-h-fit tm-w-full tm-items-center tm-justify-between tm-pb-1 tm-pt-5",children:[t.jsxs("div",{className:"tm-relative tm-flex tm-items-center",children:[t.jsx(Ua,{responsible:l,role:re==null?void 0:re.role,status:f,users:s.filter(ie=>l?ie.id===l:!0).map(ie=>kt(ie,S())),onClick:async(ie,te)=>{await H({idNewResponsible:ie,id:e,typeOfSelect:te})}}),o&&t.jsx(Qa,{idTask:e,paused:j,popupId:`task-pause-menu-${e}`,children:ie=>t.jsx("button",{ref:ie,type:"button",className:"tm-font-regular tm-flex !tm-h-[32px] !tm-w-[32px] tm-items-center tm-justify-center tm-gap-2 tm-text-sm tm-text-gray-400",children:t.jsx(x.Icon,{name:j?ne.faPlay:ne.faPause,size:"xs",color:"current"})})})]}),t.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-m",children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-2",children:[t.jsx(x.Badge,{label:le((M==null?void 0:M.tipo)??"P"),color:X((M==null?void 0:M.tipo)??"Preventa"),size:"sm",theme:"solid"}),_&&t.jsx(Ie,{trigger:t.jsx(x.Icon,{name:ne.faTriangleExclamation,size:"sm",style:{color:"#C62E1F"},color:"current"}),children:t.jsx("p",{className:"tm-font-regular tm-rounded-lg tm-bg-bg-card tm-p-5 tm-text-sm",style:{color:"#C62E1F"},children:`Tarea atrasada debido a: ${_==null?void 0:_.motivo}`})}),t.jsx(Ie,{trigger:t.jsx(x.Icon,{name:ne.faRhombus,size:"sm",style:{color:Y.color},color:"current"}),children:t.jsx("p",{className:"tm-font-regular tm-rounded-lg tm-bg-bg-card tm-p-5 tm-text-sm",style:{color:Y.color},children:`Dificultad ${Y.title}`})}),t.jsx(Ha,{priority:c,id:e}),!g||g&&f===0&&t.jsxs(t.Fragment,{children:[t.jsx(x.Icon,{name:ne.faCalendar,size:"xs",style:{color:ge.texts.subtext},color:"current"}),t.jsx("p",{className:"tm-font-regular tm-text-sm tm-text-texts-subtext",children:`${n.getDate()} ${Mt(n.getMonth()).slice(0,3)}`})]})]}),f===1&&g&&g>0&&t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-m",children:[t.jsx("p",{className:"tm-pr-[5px] tm-text-[10px] tm-text-texts-placeholder",children:"unidades"}),t.jsx("button",{onClick:()=>ae("minus"),className:"tm-mr-[4px] tm-flex tm-w-[0] tm-items-center tm-justify-center tm-rounded-full tm-bg-gray-200 hover:tm-bg-gray-400",children:t.jsx(x.Icon,{name:ne.faCircleMinus,size:"xs",style:{color:ge.texts.placeholder},color:"current"})}),t.jsx("p",{className:"tm-text-[10px] tm-text-texts-placeholder",children:`${B??0} / ${g??0}`}),t.jsx("button",{onClick:()=>ae("plus"),className:"tm-ml-[4px] tm-flex tm-w-[0] tm-items-center tm-justify-center tm-rounded-full tm-bg-gray-200 hover:tm-bg-gray-400",children:t.jsx(x.Icon,{name:ne.faCirclePlus,size:"xs",style:{color:ge.texts.placeholder},color:"current"})}),t.jsx("button",{className:"tm-ml-[4px] tm-rounded-md tm-bg-primary-medium tm-px-m tm-py-s tm-text-xs tm-text-brand",onClick:()=>{O({repeats:B,id:e})},children:"Agregar Unidad"})]})]})]}),r>0&&t.jsx("div",{className:"tm-mt-4 tm-border-t tm-border-light-gray-100 tm-pt-2",children:t.jsxs("button",{type:"button","data-prevent-bulk-select":!0,onClick:ie=>{ie.stopPropagation(),K(!0)},className:"tm-flex tm-items-center tm-gap-2",children:[t.jsx(x.Icon,{name:ne.faComment,size:"xs",color:"current"}),t.jsx("span",{className:"tm-font-regular tm-text-xl tm-text-gray-400",children:r})]})})]}),t.jsx(Va,{taskId:e,isOpen:U,setIsOpen:K})]})},mt=({title:e,tasks:a,loadNextPage:n,isFetching:s,total:o,bulkSelectAllIds:i})=>{const r=u.useRef(null),c=u.useRef(null),m=u.useRef(!1);u.useEffect(()=>{var w;r!=null&&r.current&&(c!=null&&c.current)&&(c.current.style.minHeight=`${((w=r==null?void 0:r.current)==null?void 0:w.clientHeight)-300}px`)},[r==null?void 0:r.current]);const l=w=>{if(m.current)return;const{scrollTop:j,clientHeight:b,scrollHeight:_}=w==null?void 0:w.target,M=j/(_-b)*100;M<=95||M>=95&&(m.current=!0,n&&n(),setTimeout(()=>{m.current=!1},200))},d={"Por hacer":"tm-border-texts-placeholder",Trabajando:"tm-border-primary-regular",Completadas:"tm-border-success-regular"},p=Ot(),h=e,f=!!(p!=null&&p.baseColumn&&p.baseColumn!==e),g=!!p&&e!=="Completadas"&&(p==null?void 0:p.isBulkSessionActive)&&p.baseColumn===e&&typeof i=="function",y=()=>{if(!(!p||!i)){if(p.isFullColumnSelected){p.deselectAllSelectedTasks();return}p.selectEntireColumn(h,i)}};return t.jsxs("div",{ref:r,className:`tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-fit tm-min-w-[400px] tm-max-w-[400px] tm-flex-col tm-overflow-hidden tm-rounded-lg tm-border-t-4 tm-bg-light-gray-50 tm-p-[16px] ${d[e]} ${f?"tm-opacity-40":""}`,children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between",children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-w-full",children:[t.jsx("p",{className:"tm-text-sm",children:e}),g&&t.jsx("button",{type:"button",className:"tm-text-base tm-text-brand disabled:tm-cursor-not-allowed disabled:tm-opacity-50 tm-mx-3",disabled:p==null?void 0:p.isBulkLoading,onClick:y,children:p!=null&&p.isBulkLoading?"Cargando…":p!=null&&p.isFullColumnSelected?"Quitar Selección":"Seleccionar todas"})]}),t.jsx("div",{className:"tm-flex tm-items-center tm-gap-[8px]",children:t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-[4px]",children:[t.jsx(x.Icon,{name:ne.faFiles,size:"sm",color:"secondary"}),t.jsx("p",{className:"tm-text-base tm-text-texts-placeholder",children:o??0})]})})]}),t.jsxs("div",{ref:c,className:"tm-flex tm-h-full tm-max-w-[350px] tm-flex-col tm-gap-[12px] tm-overflow-y-auto tm-pb-[200px] tm-pt-4 tm-scrollbar-none hover:tm-border-light-gray-100 hover:tm-bg-light-gray-50 focus:tm-border-light-gray-100 focus:tm-bg-light-gray-50 focus:tm-outline-none",onScroll:l,children:[a==null?void 0:a.map(w=>t.jsx(Io,{...w,boardColumnTitle:p?h:void 0,isBulkColumnLocked:!!(p&&f)},w.id)),s?t.jsx(Zn,{}):t.jsx("p",{className:"tm-text-center tm-text-sm tm-text-light-gray-900",children:"No hay más tareas por mostrar..."})]})]})},pa=[{label:"Tipo de dependencia 2",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"}]}],Do=()=>{const{user:e}=we(),[a,n]=u.useState([...pa]),s=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return u.useEffect(()=>{const o=[...pa];s.forEach(c=>{if(c.roles.includes(e.role)){const m=o.find(l=>l.id===c.id);m&&(m.options.some(d=>d.id==="todas")||(m.options=[{id:"todas",name:"Todas las tareas"},...m.options]))}});const i=JSON.stringify(a),r=JSON.stringify(o);i!==r&&n(o)},[e.role]),{filters:a}},Fo="/api/tareas/bulk-update-status";async function Mo(e,a){const{data:n}=await e.post(Fo,a);return n}function ko(e){var a,n,s,o;if(Ye.isAxiosError(e)){const i=(a=e.response)==null?void 0:a.status,r=(n=e.response)==null?void 0:n.data;if(i===400){if(typeof r=="string"&&r.trim().length>0)return r.trim();if(r&&typeof r=="object"){const c=r.message;if(typeof c=="string"&&c.trim())return c.trim();const m=(s=r.details)==null?void 0:s.errors,l=(o=m==null?void 0:m[0])==null?void 0:o.message;if(typeof l=="string"&&l.trim())return l.trim()}return"Los datos enviados no son válidos. Revisa la selección e inténtalo de nuevo."}return typeof r=="string"&&r.trim().length>0?r.trim():e.message||"No se pudo actualizar las tareas."}return e instanceof Error?e.message:"No se pudo actualizar las tareas."}function Oo(){const{tasks_api:e}=he(),{user:a}=we();return me.useMutation({mutationKey:["tareas","bulk-update-status"],mutationFn:async n=>{const s=n.user_id??(a==null?void 0:a.id);if(s==null||s<1)throw new Error("No hay usuario válido para la actualización masiva.");try{return await Mo(e,{...n,user_id:s})}catch(o){throw new Error(ko(o))}}})}const xt={MOVE_TO_TRABAJANDO:"kanban-bulk-move-trabajando",MOVE_TO_POR_HACER:"kanban-bulk-move-por-hacer",MOVE_TO_COMPLETADAS:"kanban-bulk-move-completadas"};function Lo(e){const{isBulkLoading:a}=e;return[{type:"button",label:"Cancelar",icon:ne.faXmark,color:"secondary",pill:"pill",disabled:a,onClick:()=>{a||(e.setPendingTargetStatus(null),e.setActiveButtonId(null))}},{type:"button",label:"Confirmar",icon:ne.faCheck,color:"secondary",pill:"pill",disabled:a,onClick:()=>{a||e.onConfirmBulkMove()}}]}const bt="secondary";function Bo(e){const a=Lo({setActiveButtonId:e.setActiveButtonId,setPendingTargetStatus:e.setPendingTargetStatus,onConfirmBulkMove:e.onConfirmBulkMove,isBulkLoading:e.isBulkLoading});return e.baseColumn==="Por hacer"?[{id:xt.MOVE_TO_TRABAJANDO,label:"Mover a trabajando",icon:ne.faArrowRight,color:bt,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(1)},addons:a}]:e.baseColumn==="Trabajando"?[{id:xt.MOVE_TO_POR_HACER,label:"Mover a por hacer",icon:ne.faArrowLeft,color:bt,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(0)},addons:a},{id:xt.MOVE_TO_COMPLETADAS,label:"Mover a completadas",icon:ne.faArrowRight,color:bt,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(2)},addons:a}]:[]}const Ro="Seleccionados";function Xa(){const e=Ot(),[a,n]=u.useState(null),s=a!==null,o=me.useQueryClient(),{mutate:i}=Oo(),r=(e==null?void 0:e.selectedTaskIds.length)??0;u.useEffect(()=>{r===0&&n(null)},[r]);const c=u.useCallback(()=>{e!=null&&e.isBulkLoading||e==null||e.setPendingTargetStatus(null)},[e]),m=u.useCallback(()=>{n(null),e==null||e.exitBulkSelectionMode()},[e]),l=u.useCallback(()=>{if(!e)return;const p=e.pendingTargetStatus,h=e.selectedTaskIds;if(p==null||h.length===0)return;const f={tasks_ids:[...h],estatus:p,...p===2?{ended_at:new Date().toISOString()}:{}};e.setIsBulkLoading(!0),i(f,{onSettled:()=>{e.setIsBulkLoading(!1)},onSuccess:async()=>{await e.invalidateAfterBulkSuccess(o),n(null),e.exitBulkSelectionMode()},onError:()=>{n(null),e.setPendingTargetStatus(null)}})},[e,i,o]),d=u.useMemo(()=>e?Bo({baseColumn:e.baseColumn,setPendingTargetStatus:e.setPendingTargetStatus,setActiveButtonId:n,onConfirmBulkMove:l,isBulkLoading:e.isBulkLoading}):[],[e,l]);return!e||r===0||e.baseColumn!=="Por hacer"&&e.baseColumn!=="Trabajando"?null:t.jsx(x.Toolbar,{visible:!0,count:r,text:Ro,activeButtonId:a,onActiveButtonIdChange:n,onBackClick:c,buttons:d,onClose:m,showCounterInButtonsView:!s,showBackButton:!s,showCloseButton:!s})}const Ya=["to_do_tasks","working_tasks","done_tasks"],qo="tasksProject";function zo(e){return Promise.all(Ya.map(a=>e.invalidateQueries({queryKey:[a]}))).then(()=>{})}function $o(e){return Promise.all(Ya.flatMap(a=>[e.invalidateQueries({queryKey:[a]}),e.refetchQueries({queryKey:[a]})])).then(()=>{})}function Uo(e){return e.invalidateQueries({queryKey:[qo]}).then(()=>{})}const Ho=["Por hacer","Trabajando","Completadas"],Ko=()=>{const{defineFields:e}=De(),{tasksProject:a}=Je(),{filters:n}=Do();u.useEffect(()=>{(async()=>{let i=[...n];e(i)})()},[]);const s=u.useMemo(()=>{var o;return(o=a==null?void 0:a.data)==null?void 0:o.filter(i=>{var r;return((r=i==null?void 0:i.tasks)==null?void 0:r.length)===0}).reduce((i,r)=>(i[r.status]=i[r.status]||[],i[r.status].push(r),i),{})},[a==null?void 0:a.data]);return t.jsxs(Ra,{invalidateAfterBulkSuccess:Uo,children:[t.jsx(Xa,{}),t.jsx("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-gap-4",children:Ho.map((o,i)=>{const r=(s==null?void 0:s[i])??[];return t.jsx(mt,{total:r.length,title:o,tasks:r,isFetching:a==null?void 0:a.isFetching,isLoadingData:a==null?void 0:a.isLoading,bulkSelectAllIds:()=>Promise.resolve(r.filter(c=>Bt({status:c.status,nameRequiredTask:c.nameRequiredTask,statusRequiredTask:c.statusRequiredTask,repeatsToDo:c.repeatsToDo,repeats:c.repeats})).map(c=>c.id))},o)})})]})};async function Ja(e){const a=[];let n=1;for(;;){const s=await dt({filters:{...e.filters,status:e.status,...$e(n)},tasks_api:e.tasks_api});for(const o of s)Bt({status:o.status,nameRequiredTask:o.nameRequiredTask,statusRequiredTask:o.statusRequiredTask,repeatsToDo:o.repeatsToDo,repeats:o.repeats})&&a.push(o.id);if(s.length<qt)break;n+=1}return a}const Go=()=>{var i,r;const{tasks_api:e}=he(),{toDoTasks:a,total:n,filtersToSend:s}=Wa(),o=[...((r=(i=a==null?void 0:a.data)==null?void 0:i.pages)==null?void 0:r.flat())??[]];return t.jsx(mt,{total:n,title:"Por hacer",tasks:o,loadNextPage:()=>zt(a),isFetching:a==null?void 0:a.isFetching,isLoadingData:a==null?void 0:a.isLoading,bulkSelectAllIds:()=>Ja({tasks_api:e,filters:s,status:"por_hacer"})})},Vo=()=>{var l;const e=me.useQueryClient(),{tasks_api:a}=he(),{user:n}=we(),{filters:s}=De(),[o,i]=u.useState(0),[r,c]=u.useState({owner:{user:n.id,config:((l=s==null?void 0:s.owner)==null?void 0:l.config)??"yo_y_mis_equipos",role:n.role},status:"trabajando"}),m=me.useInfiniteQuery({initialPageParam:1,queryKey:["working_tasks",r],queryFn:({pageParam:d})=>dt({filters:{...r,status:"trabajando",...$e(d)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(d,p)=>p.length+1});return u.useEffect(()=>{var d;Object.keys(s).length>0&&c({...s,owner:{user:n.id,config:((d=s==null?void 0:s.owner)==null?void 0:d.config)??"yo_y_mis_equipos",role:n.role},status:"trabajando"})},[s]),u.useEffect(()=>{e.invalidateQueries({queryKey:["working_tasks",r]})},[r]),u.useEffect(()=>{(async()=>{const p=await a.get("/api/listado_tareas",{params:{...r,status:"trabajando",cancelada:!1,...$e(1),tasks_api:a,justCount:!0}});i(p.data.total)})()},[r,m==null?void 0:m.data]),{workingTasks:m,total:o,filtersToSend:r}},Wo=()=>{var i,r;const{tasks_api:e}=he(),{workingTasks:a,total:n,filtersToSend:s}=Vo(),o=[...((r=(i=a==null?void 0:a.data)==null?void 0:i.pages)==null?void 0:r.flat())??[]];return t.jsx(mt,{total:n,title:"Trabajando",tasks:o,loadNextPage:()=>zt(a),isFetching:a==null?void 0:a.isFetching,bulkSelectAllIds:()=>Ja({tasks_api:e,filters:s,status:"trabajando"})})},Qo=()=>{var l;const e=me.useQueryClient(),{user:a}=we(),{tasks_api:n}=he(),{filters:s}=De(),[o,i]=u.useState(0),[r,c]=u.useState({owner:{user:a.id,config:((l=s==null?void 0:s.owner)==null?void 0:l.config)??"yo_y_mis_equipos",role:a.role},status:"completadas"}),m=me.useInfiniteQuery({initialPageParam:1,queryKey:["done_tasks",r],queryFn:({pageParam:d})=>dt({filters:{...r,status:"completadas",...$e(d)},tasks_api:n}),staleTime:1e3*60*60*24,getNextPageParam:(d,p)=>p.length+1});return u.useEffect(()=>{var d;Object.keys(s).length>0&&c({...s,owner:{user:a.id,config:((d=s==null?void 0:s.owner)==null?void 0:d.config)??"yo_y_mis_equipos",role:a.role},status:"completadas"})},[s]),u.useEffect(()=>{e.invalidateQueries({queryKey:["done_tasks",r]})},[r]),u.useEffect(()=>{(async()=>{const p=await n.get("/api/listado_tareas",{params:{...r,status:"completadas",cancelada:!1,...$e(1),justCount:!0,tasks_api:n}});i(p.data.total)})()},[m==null?void 0:m.data,r]),{doneTasks:m,total:o,filtersToSend:r}},Xo=()=>{var s,o;const{doneTasks:e,total:a}=Qo(),n=[...((o=(s=e==null?void 0:e.data)==null?void 0:s.pages)==null?void 0:o.flat())??[]];return t.jsx(mt,{title:"Completadas",tasks:n,loadNextPage:()=>zt(e),isFetching:e==null?void 0:e.isFetching,total:a})};class lt{static toSalesmanUsers(a){return{id:a.id,name:a.nombre}}}const Yo=()=>{const{tasks_api:e}=he(),{filters:a}=De(),{user:n}=we(),s=async()=>(await e.get("/api/obtener-comerciales")).data.map(lt.toSalesmanUsers),o=async()=>{var c;return(await e.get("/api/listado_tareas",{params:{...Qt(a),owner:{user:n.id,config:((c=a==null?void 0:a.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:n.role},justProjects:!0,cancelada:!1}})).data.map(lt.toSalesmanUsers)};return{getSalesmanAndProjects:u.useCallback(async(r={})=>{var f;const c={...a,...r},m=(r==null?void 0:r["owner.config"])??((f=a==null?void 0:a.owner)==null?void 0:f.config)??"yo_y_mis_equipos",l={...c};delete l["owner.config"];const d=Qt(l),[p,h]=await Promise.all([e.get("/api/obtener-comerciales"),e.get("/api/listado_tareas",{params:{...d,owner:{user:n==null?void 0:n.id,config:m,role:n.role},justProjects:!0,cancelada:!1}})]);return{salesmanUsers:p.data.map(lt.toSalesmanUsers),projects:h.data.map(lt.toSalesmanUsers)}},[e,a,n==null?void 0:n.id,n==null?void 0:n.role]),getProjects:o,getSalesmans:s}},Jo=()=>{const{user:e}=we(),[a,n]=u.useState([...Yt]),s=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return u.useEffect(()=>{const o=[...Yt];s.forEach(c=>{if(c.roles.includes(e.role)){const m=o.find(l=>l.id===c.id);m&&(m.options.some(d=>d.id==="todas")||(m.options=[{id:"todas",name:"Todas las tareas"},...m.options]))}});const i=JSON.stringify(a),r=JSON.stringify(o);i!==r&&n(o)},[e.role]),{filters:a}},Zo=()=>{const{defineFields:e,initialFilters:a}=De(),{getSalesmanAndProjects:n}=Yo(),{filters:s}=Jo(),o=(a==null?void 0:a["owner.config"])??"yo_y_mis_equipos";return u.useEffect(()=>{let i=!1;return(async()=>{const{salesmanUsers:c,projects:m}=await n({"owner.config":o});i||e(s.map(l=>l.id==="project.id"?{...l,options:m}:l.id==="salesman.id"?{...l,options:c}:l))})(),()=>{i=!0}},[e,s,n,o]),t.jsxs(Ra,{invalidateAfterBulkSuccess:zo,children:[t.jsx(Xa,{}),t.jsxs("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-gap-4",children:[t.jsx(Go,{}),t.jsx(Wo,{}),t.jsx(Xo,{})]})]})},Za=u.createContext({}),er=({children:e})=>{const[a,n]=u.useState([]),s=o=>{n(i=>i.includes(o)?i.filter(r=>r!==o):[...i,o])};return t.jsx(Za.Provider,{value:{selectedTasks:a,selectTask:s},children:e})},tr=()=>u.useContext(Za),ar=()=>{const e=()=>t.jsxs("div",{className:"tm-flex tm-w-full tm-gap-m",children:[t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-full tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-w-[30%] tm-animate-pulse tm-rounded-md tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-w-[10%] tm-animate-pulse tm-rounded-md tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-w-[10%] tm-animate-pulse tm-rounded-md tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"})]});return t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-m",children:[t.jsx(e,{}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-m tm-pl-5",children:[t.jsx(e,{}),t.jsx("div",{className:"tm-pl-5",children:t.jsx(e,{})})]}),t.jsx(e,{}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-m tm-pl-5",children:[t.jsx(e,{}),t.jsx("div",{className:"tm-pl-5",children:t.jsx(e,{})})]})]})},es=({startDate:e,endDate:a})=>t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"tm-flex tm-h-[30px] tm-w-fit tm-items-center tm-justify-center tm-gap-s tm-rounded-md tm-bg-light-gray-50 tm-px-xl",children:[t.jsx(x.Icon,{name:ne.faCalendar,size:"xs",style:{color:ge.texts.subtext},color:"current"}),t.jsxs(x.Text,{children:[" ",ra(e)]})]}),t.jsx(x.Icon,{name:ne.faArrowRight,size:"xs",style:{color:ge.texts.DEFAULT},color:"current"}),t.jsxs("div",{className:"tm-flex tm-h-[30px] tm-w-fit tm-items-center tm-justify-center tm-gap-s tm-rounded-md tm-bg-light-gray-50 tm-px-xxxl",children:[t.jsx(x.Icon,{name:ne.faCalendar,size:"xs",style:{color:ge.texts.subtext},color:"current"}),t.jsxs(x.Text,{children:[" ",ra(a)]})]})]}),ts=({id:e,priority:a,difficulty:n,endDate:s,atraso:o})=>{const[i,r]=u.useState({priority:!1,difficulty:!1,atraso:!1}),c={0:{title:"N/A",color:ge.success.regular,bg:"tm-bg-texts-placeholder tm-border-texts-placeholder",border:"tm-border-success-medium",borderHover:"hover:tm-border-success-dark"},1:{title:"Baja",color:ge.success.regular,bg:"tm-bg-success-medium tm-border-success-pastel",border:"tm-border-success-pastel",borderHover:"hover:tm-border-success-dark"},2:{title:"Media",color:ge.warning.regular,bg:"tm-bg-warning-light tm-border-warning-regular",border:"tm-border-warning-regular",borderHover:"hover:tm-border-warning-dark"},3:{title:"Alta",color:ge.danger.regular,bg:"tm-bg-danger-light tm-border-danger-regular",border:"tm-border-danger-regular",borderHover:"hover:tm-border-danger-dark"}},m={1:{title:"Muy fácil",color:ge.success.dark,bg:"tm-bg-success-medium tm-border-success-regular",border:"tm-border-success-medium",borderHover:"hover:tm-border-success-dark"},2:{title:"Fácil",color:ge.success.regular,bg:"tm-bg-success-medium tm-border-success-pastel",border:"tm-border-success-medium",borderHover:"hover:tm-border-success-dark"},3:{title:"Media",color:ge.warning.regular,bg:"tm-bg-warning-light tm-border-warning-regular",border:"tm-border-warning-medium",borderHover:"hover:tm-border-warning-dark"},4:{title:"Difícil",color:ge.danger.regular,bg:"tm-bg-danger-light tm-border-danger-regular",border:"tm-border-danger-medium",borderHover:"hover:tm-border-danger-dark"},5:{title:"Muy difícil",color:ge.danger.dark,bg:"tm-bg-danger-light tm-border-danger-regular",border:"tm-border-danger-medium",borderHover:"hover:tm-border-danger-dark"}},l=()=>{if(n==null||Number.isNaN(Number(n)))return 1;const g=Math.trunc(Number(n));return g===0?1:g>=1&&g<=5?g:1},d=()=>{if(a==null||Number.isNaN(Number(a)))return 0;const g=Math.trunc(Number(a));return g>=0&&g<=3?g:0},p=m[l()]??m[1],h=c[d()]??c[0],f=s instanceof Date&&!Number.isNaN(s.getTime())?`${s.getDate()} ${Mt(s.getMonth()).slice(0,3)}`:"—";return t.jsxs(t.Fragment,{children:[t.jsx("button",{type:"button",className:"tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center tm-gap-8 tm-rounded-[8px] tm-bg-light-gray-50 hover:tm-bg-gray-200",children:t.jsx(Ie,{trigger:t.jsx(x.Icon,{name:ne.faAlignCenter,size:"xs",style:{color:ge.texts.subtext},color:"current"}),children:t.jsx("p",{className:"tm-font-regular tm-rounded-lg tm-bg-bg-card tm-px-4 tm-py-2 tm-text-2xl",style:{color:"gray"},children:"Espéralo muy pronto..."})})}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[t.jsx("div",{onMouseEnter:()=>r({...i,difficulty:!0}),onMouseLeave:()=>r({...i,difficulty:!1}),className:`tm-gap-s ${p.border} ${p.borderHover} transition-all duration-300 tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center
6
+ tm-rounded-[8px] tm-border tm-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)]`,children:t.jsx(Ie,{trigger:t.jsx(x.Icon,{name:ne.faRhombus,size:"sm",style:{color:i.difficulty?p.color:ge.texts.subtext},color:"current"}),children:t.jsx("p",{className:"tm-font-regular tm-rounded-lg tm-bg-bg-card tm-p-5 tm-text-sm",style:{color:p.color},children:p.title})})}),t.jsx("div",{onMouseEnter:()=>r({...i,priority:!0}),onMouseLeave:()=>r({...i,priority:!1}),className:`tm-gap-s ${h.bg.replace(/\bbg-|border-/g,"tm-$&")??"tm-bg-light-gray-50"} transition-all duration-300 tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center tm-rounded-[8px]
7
+ tm-border tm-border-success-medium tm-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)] hover:tm-border-success-dark`,children:t.jsx(Ie,{trigger:t.jsx(x.Icon,{name:ne.faFlag,size:"sm",style:{color:i.priority?h.color:ge.texts.subtext},color:"current"}),children:t.jsx("p",{className:"tm-font-regular tm-rounded-lg tm-bg-bg-card tm-p-5 tm-text-sm",style:{color:h.color},children:h.title})})}),(o==null?void 0:o.activa)&&t.jsx("div",{onMouseEnter:()=>r({...i,atraso:!0}),onMouseLeave:()=>r({...i,atraso:!1}),className:`transition-all duration-300 tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center tm-gap-s tm-rounded-[8px]
8
+ tm-border tm-border-danger-medium tm-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)] hover:tm-border-danger-dark`,children:t.jsx(Ie,{trigger:t.jsx(x.Icon,{name:ne.faTriangleExclamation,size:"xs",style:{color:i.atraso?ge.danger.dark:ge.danger.regular},color:"current"}),children:t.jsx("p",{className:"tm-font-regular tm-rounded-lg tm-bg-bg-card tm-p-5 tm-text-sm",style:{color:ge.danger.dark},children:o==null?void 0:o.motivo})})}),t.jsx(x.Icon,{name:ne.faCalendar,size:"xs",style:{color:ge.texts.subtext},color:"current"}),t.jsx("p",{className:"tm-font-regular tm-text-xs tm-text-texts-subtext",children:f})]})]})},sr=({id:e})=>{const{selectedTasks:a,selectTask:n}=tr();return t.jsxs(t.Fragment,{children:[t.jsx("label",{className:"tm-flex tm-h-[20px] tm-w-[20px] tm-cursor-pointer tm-items-center tm-justify-center tm-rounded-md tm-border-2 tm-border-light-gray-100",htmlFor:e.toString(),children:t.jsx("span",{className:`${a.includes(e)?"tm-opacity-100":"tm-opacity-0"} tm-transition-opacity tm-duration-500`,children:t.jsx(x.Icon,{name:ne.faCheck,size:"xs",style:{color:ge.primary.regular},color:"current"})})}),t.jsx("input",{className:"tm-hidden",id:e.toString(),type:"checkbox",onChange:()=>n(e)})]})},as=({task:e})=>t.jsx(Ie,{trigger:t.jsx(x.Text,{children:e}),children:t.jsx("div",{className:"tm-py-2 tm-px-4",children:t.jsx(x.Text,{children:e})})}),nr=({id:e})=>{var d,p,h,f,g;const[a,n]=u.useState(!1),{tasksProject:s}=Je(),{reasignResponsible:o}=He(),{getOBPUrlApi:i}=he(),r=(d=s==null?void 0:s.data)==null?void 0:d.find(y=>y.id===e),[c,m]=u.useState(null),{user:l}=we();return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"tm-border-b tm-border-light-gray-100 tm-pb-3",children:t.jsxs("div",{className:"tm-mb-3 tm-ml-[30px] tm-mt-1 tm-flex tm-flex-wrap tm-items-center tm-gap-xl tm-rounded-md tm-p-2 hover:tm-bg-light-gray-50",onMouseEnter:()=>{m(e)},onMouseLeave:()=>m(null),onClick:()=>n(!0),children:[!(r!=null&&r.nameRequiredTask)||(r==null?void 0:r.nameRequiredTask)!==""&&(r==null?void 0:r.statusRequiredTask)===2&&t.jsx(sr,{id:e}),t.jsx(Ga,{id:e,idAtraso:(p=r==null?void 0:r.atraso)==null?void 0:p.atrasoId,nameRequiredTask:(r==null?void 0:r.nameRequiredTask)??"",status:r==null?void 0:r.status,statusRequiredTask:(r==null?void 0:r.statusRequiredTask)??0,nameRequiredTaskResponsible:r==null?void 0:r.nameRequiredTaskResponsible},e),(r==null?void 0:r.willBePaused)&&t.jsx(Qa,{idTask:r.id,paused:r.paused,popupId:`child-task-pause-menu-${r.id}`,children:y=>t.jsx(x.Button,{ref:y,color:"tertiary",icon:r!=null&&r.paused?ne.faPause:ne.faPlay,className:"tm-font-regular tm-flex tm-items-center tm-gap-2 tm-text-sm tm-text-gray-400",size:"xs"})}),t.jsx(Ua,{role:l==null?void 0:l.role,status:r==null?void 0:r.status,onClick:async(y,w)=>{await o({idNewResponsible:y,id:e,typeOfSelect:w})},responsible:r==null?void 0:r.responsible,users:((h=r==null?void 0:r.users)==null?void 0:h.map(y=>kt(y,i())))??[]}),t.jsx(as,{task:(r==null?void 0:r.task)??""}),t.jsx(ts,{id:e,priority:r==null?void 0:r.priority,difficulty:r.difficulty,endDate:r==null?void 0:r.endDate,atraso:r==null?void 0:r.atraso}),t.jsx(es,{startDate:r==null?void 0:r.startDate,endDate:r==null?void 0:r.endDate}),c===e&&t.jsx("div",{className:"tm-flex tm-h-[30px] tm-items-center tm-justify-center tm-gap-2 tm-rounded-[12px] tm-rounded-md tm-bg-silver-silver_dark tm-p-[4px]",children:(r==null?void 0:r.status)!==2&&t.jsx("div",{onClick:y=>{y.stopPropagation()},children:t.jsx(Ka,{id:e,nameRequiredTask:r.nameRequiredTask,status:r.status,statusRequiredTask:r.statusRequiredTask,projectID:(f=s==null?void 0:s.data)==null?void 0:f.id,atrasoId:(g=r==null?void 0:r.atraso)==null?void 0:g.atrasoId,categoria:r==null?void 0:r.categoria})})})]})}),t.jsx(Va,{taskId:e,isOpen:a,setIsOpen:n})]})},ss=({id:e})=>{var c,m,l,d,p,h;const{tasksProject:a,openTasks:n,openTask:s}=Je(),o=(c=a==null?void 0:a.data)==null?void 0:c.find(f=>f.id===e),r=(()=>{var y;const f=a==null?void 0:a.data,g=[];return(y=o==null?void 0:o.tasks)==null||y.forEach(w=>{const j=f.find(b=>b.id===(w==null?void 0:w.id));j&&g.push(j)}),g})();return o?t.jsxs("div",{className:"tm-mb-2 tm-flex tm-flex-col tm-gap-m tm-overflow-y-auto",children:[t.jsxs("div",{className:"tm-flex tm-cursor-pointer tm-flex-wrap tm-items-center tm-gap-16 tm-rounded-md tm-p-2 hover:tm-bg-silver-silver_light",onClick:()=>s(e),children:[t.jsx("button",{type:"button",className:`${n.includes(e)?"":"tm--rotate-90"} tm-transition-all tm-duration-300`,children:t.jsx(x.Icon,{name:ne.faChevronDown,size:"sm",style:{color:ge.texts.subtext},color:"current"})}),t.jsx("div",{className:"tm-mx-1 tm-flex tm-h-[28px] tm-min-h-[28px] tm-w-fit tm-min-w-[28px] tm-items-center tm-justify-center tm-rounded-full tm-bg-slate-100",children:t.jsx("p",{className:"tm-text-primary tm-text-md",children:((m=o==null?void 0:o.tasks)==null?void 0:m.length)===0?1:r.length})}),t.jsx(as,{task:(o==null?void 0:o.task)??""}),t.jsx(ts,{id:e,priority:o==null?void 0:o.priority,difficulty:o==null?void 0:o.difficulty,endDate:o==null?void 0:o.endDate,atraso:o==null?void 0:o.atraso}),t.jsx(es,{startDate:o==null?void 0:o.startDate,endDate:o==null?void 0:o.endDate}),t.jsxs("button",{type:"button",className:"tm-flex tm-h-[30px] tm-w-fit tm-items-center tm-justify-center tm-gap-s tm-rounded-md tm-bg-light-gray-50 tm-px-m hover:tm-bg-gray-200",children:[t.jsx(x.Icon,{name:ne.faDiagramSubtask,size:"sm",style:{color:ge.texts.subtext},color:"current"}),t.jsx(x.Text,{children:((l=o==null?void 0:o.tasks)==null?void 0:l.length)===0?1:(d=o==null?void 0:o.tasks)==null?void 0:d.length})]})]}),n.includes(e)&&t.jsx("div",{className:"tm-ml-[30px]",children:((p=o==null?void 0:o.tasks)==null?void 0:p.length)>0?(h=o==null?void 0:o.tasks)==null?void 0:h.map(f=>t.jsx(ss,{id:f==null?void 0:f.id})):t.jsx(nr,{id:o==null?void 0:o.id})})]}):null},or=()=>{var s;const{tasksProject:e,projectID:a}=Je();if(e!=null&&e.isFetching||e!=null&&e.isLoading)return t.jsx(ar,{});let n=[...(s=e==null?void 0:e.data)==null?void 0:s.filter(o=>o.isPrincipalTask)];return t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-m",children:t.jsx(er,{project:a,children:n==null?void 0:n.sort((o,i)=>o.orden-i.orden).map(o=>t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-m tm-border-b tm-border-light-gray-100 tm-pb-m ",children:t.jsx(ss,{id:o.id})}))})})};function rr({title:e,color:a,icon:n}){return t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[t.jsx(x.Icon,{name:n,size:"md",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotoneSecondary:.5}),t.jsx("p",{className:"tm-text-base tm-py-0.5 tm-font-body-sm-bold tm-text-body-sm-bold tm-leading-none tm-text-primary",children:e})]})}function ir({value:e,onChange:a}){return t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-4",children:[t.jsx("label",{className:"tm-text-body-sm-bold tm-text-primary",children:"Nombre del equipo"}),t.jsx(x.Input,{size:"xs",placeholder:"Creative",value:e,onChange:n=>a(n.target.value)})]})}const ns=({title:e})=>t.jsxs("div",{className:"flex-1 tm-flex tm-items-center tm-gap-x-8",children:[t.jsx(x.Icon,{background:!0,name:ne.faFilePen,color:"blue",size:"lg"}),t.jsx(x.Text,{size:"xl",weight:"bold",children:e})]}),Ge={search:"",debouncedSearch:"",filters:[]},lr={"kanban-general":{...Ge},"lista-campanias":{...Ge},"kanban-campania":{...Ge},"teams-container":{...Ge},"templates-container":{...Ge}},ut=Ue.create((e,a)=>({viewFilters:lr,currentPath:null,debounceTimeouts:{},setCurrentPath:n=>{const s=a().currentPath;e({currentPath:n}),s&&s!==n&&a().resetPathData(s)},setSearch:(n,s)=>{const o=s||a().currentPath;if(!o)return;const i=`search_${o}`,r=a().debounceTimeouts[i];r&&clearTimeout(r),e(m=>({viewFilters:{...m.viewFilters,[o]:{...m.viewFilters[o],search:n}}}));const c=setTimeout(()=>{e(m=>({viewFilters:{...m.viewFilters,[o]:{...m.viewFilters[o],debouncedSearch:n}},debounceTimeouts:{...m.debounceTimeouts,[i]:void 0}}))},500);e(m=>({debounceTimeouts:{...m.debounceTimeouts,[i]:c}}))},setFilters:(n,s)=>{const o=s||a().currentPath;o&&e(i=>({viewFilters:{...i.viewFilters,[o]:{...i.viewFilters[o],filters:n}}}))},getSearch:n=>{var o;const s=n||a().currentPath;return s&&((o=a().viewFilters[s])==null?void 0:o.search)||""},getDebouncedSearch:n=>{var o;const s=n||a().currentPath;return s&&((o=a().viewFilters[s])==null?void 0:o.debouncedSearch)||""},getFilters:n=>{var o;const s=n||a().currentPath;return s?((o=a().viewFilters[s])==null?void 0:o.filters)||[]:[]},resetPathData:n=>{const s=`search_${n}`,o=a().debounceTimeouts[s];o&&clearTimeout(o),e(i=>({viewFilters:{...i.viewFilters,[n]:{...Ge}},debounceTimeouts:{...i.debounceTimeouts,[s]:void 0}}))}}));function os({path:e}){const{getSearch:a,setSearch:n}=ut(),s=a(e);return t.jsx(x.Input,{leftSlot:ne.faSearch,placeholder:"Buscar...",size:"xs",value:s,onChange:o=>n(o.target.value,e)})}const fa={fase_plantilla:"",tipo_plantilla:"",modo_configuracion:"",categoria:"",formato_salida:"",tipo_medio:"",medio_especifico:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},cr={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},dr={fase_plantilla:"",tipo_plantilla:"",categoria:"",tipo_medio:"",medio_especifico:"",modo_configuracion:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},ga={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=Ue.create(e=>({path:"",viewMode:"grid",isOpenModalLimit:!1,template:null,clave:"XX-XXX-XX-XXX-XX-X-X",templateFormData:fa,disabledFields:ga,claveParams:dr,paramsTipo:cr,isEditTemplate:!1,openModalCreateTemplate:!1,currentTemplateForEdit:null,refetch:null,openModalUnsavedChanges:!1,isDuplicateTemplate:!1,hasFormChanges:!1,openModalPublishTemplate:!1,currentTemplateId:null,openModalDeleteTemplate:!1,setPath:a=>e({path:a}),setViewMode:a=>e({viewMode:a}),setIsOpenModalLimit:a=>e({isOpenModalLimit:a}),setTemplate:a=>e({template:a}),setClave:a=>e({clave:a}),setTemplateFormData:a=>{e(n=>({templateFormData:{...n.templateFormData,...a}}))},resetTemplateFormData:()=>e({templateFormData:fa}),setDisableField:({fields:a,value:n})=>{for(const s of a)e(o=>({disabledFields:{...o.disabledFields,[s]:n}}))},resetDisabledFields:()=>e({disabledFields:ga}),setClaveParams:({field:a,value:n})=>{e(s=>({claveParams:{...s.claveParams,[a]:n}}))},resetClave:()=>e(a=>({clave:"XX-XXX-XX-XXX-XX-X-X"})),setParamTipo:a=>e(n=>({paramsTipo:{...n.paramsTipo,...a}})),setIsEditTemplate:a=>e({isEditTemplate:a}),setOpenModalCreateTemplate:a=>e({openModalCreateTemplate:a}),setCurrentTemplateForEdit:a=>e({currentTemplateForEdit:a}),setRefetch:a=>e({refetch:a}),setOpenModalUnsavedChanges:a=>e({openModalUnsavedChanges:a}),setIsDuplicateTemplate:a=>e({isDuplicateTemplate:a}),setHasFormChanges:a=>e({hasFormChanges:a}),setOpenModalPublishTemplate:a=>e({openModalPublishTemplate:a}),setCurrentTemplateId:a=>e({currentTemplateId:a}),setOpenModalDeleteTemplate:a=>e({openModalDeleteTemplate:a})})),rs=e=>{const{getSearch:a,getDebouncedSearch:n,setSearch:s,getFilters:o,setFilters:i,resetPathData:r}=ut();return{search:a(e),debouncedSearch:n(e),filters:o(e),setSearch:c=>s(c,e),setFilters:c=>i(c,e),resetData:()=>r(e)}},mr=()=>t.jsx(ns,{title:"Flujos de trabajo"}),Le=Ue.create(e=>({activeTemplate:null,setActiveTemplate:a=>e({activeTemplate:a}),clearActiveTemplate:()=>e({activeTemplate:null})})),Te=Ue.create((e,a)=>({mode:"grid",id:null,setMode:(n,s)=>{const o=a();if(n==="grid"||o.id!==null&&o.id!==s){const{clearAllGroupData:r}=a();r()}e({mode:n,id:s??null})},setId:n=>e({id:n}),reset:()=>{const{clearAllGroupData:n}=a();n(),e({mode:"grid",id:null})},addNode:null,addBranch:null,addNodeFromHandle:null,addNodeWithType:null,savePositions:null,loadPositions:null,clearPositions:null,activePlusNode:null,templateViewModes:{},setViewMode:(n,s)=>{const{templateViewModes:o}=a();e({templateViewModes:{...o,[n]:s}})},getViewMode:n=>{const{templateViewModes:s}=a();return s[n]??"readonly"},clearViewMode:n=>{const{templateViewModes:s}=a(),o={...s};delete o[n],e({templateViewModes:o})},expandedGroups:new Set,groupTemplateData:{},toggleGroupExpansion:n=>{const{expandedGroups:s}=a(),o=new Set(s);o.has(n)?o.delete(n):o.add(n),e({expandedGroups:o})},setGroupTemplateData:(n,s)=>{const{groupTemplateData:o}=a();e({groupTemplateData:{...o,[n]:s}})},clearGroupTemplateData:n=>{const{groupTemplateData:s}=a(),o={...s};delete o[n],e({groupTemplateData:o})},clearAllGroupData:()=>{e({expandedGroups:new Set,groupTemplateData:{}})},copiedNodes:[],setCopiedNodes:n=>e({copiedNodes:n}),clearCopiedNodes:()=>e({copiedNodes:[]}),expandGroup:null,collapseGroup:null})),is=()=>{const{tasks_api:e}=he();return{getTemplateWithTasks:async n=>{var s;try{const o=Pe.stringify({filters:{plantilla:{id:n}}},{encodeValuesOnly:!0}),i=await e.get(`/api/plantillas/plantilla-tareas-grafico?${o}`);if(i.data&&i.data.data)return i.data.data;throw new Error(`No se encontraron datos para la plantilla con ID ${n}`)}catch(o){throw console.error("Error en getTemplateWithTasks:",{error:o.message,status:(s=o.response)==null?void 0:s.status}),o}}}},ve={DIRTY:"dirty",IDLE:"idle",NEW:"new"},Ee={DRAFT:"draft",PUBLISHED:"published",DELETED:"deleted"},Ve="templates",We="templates_states";function ur(e,a){return Ue.create((n,s)=>{let o=null;const i=p=>n({isLoading:p}),r=p=>n({error:p}),c=p=>n({data:p}),m=()=>new Promise((p,h)=>{const f=indexedDB.open(e.name,e.version);f.onerror=()=>{r("Error al abrir la base de datos"),h(new Error("Error al abrir la base de datos"))},f.onsuccess=()=>{o=f.result,n({isConnected:!0,error:null}),p(o)},f.onupgradeneeded=g=>{const y=g.target.result;e.stores.forEach(w=>{var j;if(!y.objectStoreNames.contains(w.name)){const b=y.createObjectStore(w.name,{keyPath:w.keyPath,autoIncrement:w.autoIncrement??!1});(j=w.indexes)==null||j.forEach(_=>{b.createIndex(_.name,_.keyPath,_.options)})}})}}),l=(p="readonly")=>{if(!o)throw new Error("Base de datos no conectada");return o.transaction(a,p)},d=(p="readonly")=>l(p).objectStore(a);return{data:[],isLoading:!1,error:null,isConnected:!1,connect:async()=>{try{i(!0),r(null),await m(),await s().getAll()}catch(p){r(p instanceof Error?p.message:"Error desconocido")}finally{i(!1)}},disconnect:()=>{o&&(o.close(),o=null,n({isConnected:!1,data:[]}))},add:async p=>{try{i(!0),r(null);const h=d("readwrite");return new Promise((f,g)=>{const y=h.add(p);y.onsuccess=async()=>{await s().getAll(),f()},y.onerror=()=>{r("Error al agregar elemento"),g(new Error("Error al agregar elemento"))}})}finally{i(!1)}},addMany:async p=>{try{i(!0),r(null);const h=d("readwrite");return new Promise((f,g)=>{let y=0,w=!1;p.forEach(j=>{const b=h.add(j);b.onsuccess=()=>{y++,y===p.length&&!w&&s().getAll().then(()=>f())},b.onerror=()=>{w||(w=!0,r("Error al agregar elementos"),g(new Error("Error al agregar elementos")))}})})}finally{i(!1)}},get:async p=>{try{r(null);const h=d();return new Promise((f,g)=>{const y=h.get(p);y.onsuccess=()=>{f(y.result)},y.onerror=()=>{r("Error al obtener elemento"),g(new Error("Error al obtener elemento"))}})}catch(h){r(h instanceof Error?h.message:"Error desconocido");return}},getAll:async()=>{try{r(null);const p=d();return new Promise((h,f)=>{const g=p.getAll();g.onsuccess=()=>{const y=g.result;c(y),h(y)},g.onerror=()=>{r("Error al obtener elementos"),f(new Error("Error al obtener elementos"))}})}catch(p){return r(p instanceof Error?p.message:"Error desconocido"),[]}},update:async(p,h)=>{try{i(!0),r(null);const f=d("readwrite");return new Promise((g,y)=>{const w=f.get(p);w.onsuccess=()=>{const j=w.result;if(!j){r("Elemento no encontrado"),y(new Error("Elemento no encontrado"));return}const b={...j,...h},_=f.put(b);_.onsuccess=async()=>{await s().getAll(),g()},_.onerror=()=>{r("Error al actualizar elemento"),y(new Error("Error al actualizar elemento"))}},w.onerror=()=>{r("Error al obtener elemento para actualizar"),y(new Error("Error al obtener elemento para actualizar"))}})}finally{i(!1)}},delete:async p=>{try{i(!0),r(null);const h=d("readwrite");return new Promise((f,g)=>{const y=h.delete(p);y.onsuccess=async()=>{await s().getAll(),f()},y.onerror=()=>{r("Error al eliminar elemento"),g(new Error("Error al eliminar elemento"))}})}finally{i(!1)}},clear:async()=>{try{i(!0),r(null);const p=d("readwrite");return new Promise((h,f)=>{const g=p.clear();g.onsuccess=()=>{c([]),h()},g.onerror=()=>{r("Error al limpiar store"),f(new Error("Error al limpiar store"))}})}finally{i(!1)}},query:async(p,h)=>{try{r(null);const g=d().index(p);return new Promise((y,w)=>{const j=g.getAll(h);j.onsuccess=()=>{y(j.result)},j.onerror=()=>{r("Error en consulta"),w(new Error("Error en consulta"))}})}catch(f){return r(f instanceof Error?f.message:"Error desconocido"),[]}},queryRange:async(p,h,f)=>{try{r(null);const y=d().index(p);return new Promise((w,j)=>{const b=IDBKeyRange.bound(h,f),_=y.getAll(b);_.onsuccess=()=>{w(_.result)},_.onerror=()=>{r("Error en consulta por rango"),j(new Error("Error en consulta por rango"))}})}catch(g){return r(g instanceof Error?g.message:"Error desconocido"),[]}}}})}const yt=new Map;function ha(e,a,n=!0){const s=u.useMemo(()=>{const _=`${e.name}-${a}`;if(!yt.has(_)){const M=ur(e,a);yt.set(_,M)}return yt.get(_)},[e.name,a]);u.useEffect(()=>{n&&!s.getState().isConnected&&s.getState().connect()},[n,s]);const o=s(_=>_.data),i=s(_=>_.isLoading),r=s(_=>_.error),c=s(_=>_.isConnected),m=u.useCallback(()=>s.getState().connect(),[s]),l=u.useCallback(()=>s.getState().disconnect(),[s]),d=u.useCallback(_=>s.getState().add(_),[s]),p=u.useCallback(_=>s.getState().addMany(_),[s]),h=u.useCallback(_=>s.getState().get(_),[s]),f=u.useCallback(()=>s.getState().getAll(),[s]),g=u.useCallback((_,M)=>s.getState().update(_,M),[s]),y=u.useCallback(_=>s.getState().delete(_),[s]),w=u.useCallback(()=>s.getState().clear(),[s]),j=u.useCallback((_,M)=>s.getState().query(_,M),[s]),b=u.useCallback((_,M,F)=>s.getState().queryRange(_,M,F),[s]);return{data:o,isLoading:i,error:r,isConnected:c,connect:m,disconnect:l,add:d,addMany:p,get:h,getAll:f,update:g,delete:y,clear:w,query:j,queryRange:b}}const ls=u.createContext(void 0);function pr({children:e}){const[a,n]=u.useState(!1),[s,o]=u.useState(!0),[i,r]=u.useState(null),c={name:"template_tabs_v1",version:2,stores:[{name:Ve,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]},{name:We,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]}]},m=ha(c,Ve,!0),l=ha(c,We,!0),d=u.useRef(new Map);d.current.has(Ve)||d.current.set(Ve,m),d.current.has(We)||d.current.set(We,l);const p=m.isConnected,h=m.error;u.useEffect(()=>{d.current.set(Ve,m),d.current.set(We,l)},[m,l]);const f=u.useCallback(y=>{const w=d.current.get(y);if(!w)throw new Error(`Store ${y} no encontrado. Asegúrate de que esté configurada en indexedDBConfig.`);return{data:w.data,isLoading:w.isLoading,add:w.add,addMany:w.addMany,get:w.get,getAll:w.getAll,update:w.update,delete:w.delete,clear:w.clear,query:w.query,queryRange:w.queryRange,error:w.error}},[]);u.useEffect(()=>{(async()=>{try{if(o(!0),r(null),await m.connect(),p)n(!0);else throw new Error("No se pudo establecer la conexión con IndexedDB")}catch(w){r(w instanceof Error?w.message:"Error desconocido")}finally{o(!1)}})()},[m.connect,p]),u.useEffect(()=>{h&&r(h)},[h]);const g={isInitialized:a,isInitializing:s,error:i,isConnected:p,getStore:f};return t.jsx(ls.Provider,{value:g,children:e})}function cs(){const e=u.useContext(ls);if(e===void 0)throw new Error("useIndexedDBContext debe usarse dentro de IndexedDBProvider");return e}function $t(){const{getStore:e}=cs();return e(Ve)}function ds(){const{add:e}=$t(),a=async r=>{try{await e(r)}catch(c){console.error("Error al guardar plantilla a indexDB:",c)}},n=async r=>{const c={},m=l=>{l.id&&(c[l.id]=l),l.tareas&&Array.isArray(l.tareas)&&l.tareas.forEach(d=>{m(d)}),l.ids_t_dependientes&&Array.isArray(l.ids_t_dependientes)&&l.ids_t_dependientes.forEach(d=>{typeof d=="object"&&d.id&&m(d)}),l.plantilla_dependents&&Array.isArray(l.plantilla_dependents)&&l.plantilla_dependents.forEach(d=>{d.tarea_plantillas&&Array.isArray(d.tarea_plantillas)&&d.tarea_plantillas.forEach(p=>{m(p)})})};return r.tarea_plantillas.forEach(l=>{m(l)}),c},s=(r,c)=>{const m=c[r];if(!m)return[];const l=[m];return m.tareas&&Array.isArray(m.tareas)&&m.tareas.forEach(d=>{d.id&&l.push(...s(d.id,c))}),m.ids_t_dependientes&&Array.isArray(m.ids_t_dependientes)&&m.ids_t_dependientes.forEach(d=>{typeof d=="object"&&d.id?l.push(...s(d.id,c)):typeof d=="number"&&c[d]&&l.push(...s(d,c))}),l},o=(r,c)=>{const m=c[r];if(!m)return[];const l=[m];return m.tarea_padre&&c[m.tarea_padre]&&l.unshift(...o(m.tarea_padre,c)),l};return{hydrateTasks:async r=>{var l,d;const c=await n(r);return(d=(l=r==null?void 0:r.graph_layout)==null?void 0:l.snapshot)==null?void 0:d.nodes.map(p=>{if(p.type==="group")return{...p,data:{...p.data,type:"template"},type:"group",selected:!1};const h=p.data.tareaId?c[p.data.tareaId]:r;return h!=null&&h.start?{...p,data:{...h.plantilla,id:h.id},selected:!1}:{...p,data:{...h,type:"task"},selected:!1}})},initializeTemplateStore:a,indexedTasks:n,getTaskHierarchy:s,getTaskPath:o}}function ms(){const{getStore:e}=cs();return e(We)}const nt=()=>{const{add:e,get:a,delete:n,update:s}=ms(),{get:o}=$t(),i={created:[],updated:[],deleted:[]},r=async({templateId:f})=>{const g=await a(f);return g||null};return{addTaskToState:async({task:f})=>{const g=await r({templateId:f.plantilla.id}),y=await o(f.plantilla.id);if(console.log("🔄 template:",y),!g)e({...i,id:f.plantilla.id,created:[...i.created,f]});else{const w=g.created.findIndex(j=>j.id===f.id);if(w!==-1){const j=g.created[w];g.created[w]={...j,...f},await s(f.plantilla.id,g)}else g.created.push(f),await s(f.plantilla.id,g)}},getTaskFromState:r,removeTemplateStates:async f=>{await n(f)},updateTaskInState:async({task:f})=>{const g=await r({templateId:f.plantilla.id}),w=(await o(f.plantilla.id)).graph_layout.snapshot.nodes;if(console.log("🔄 nodes:",w),g){const j=g.updated.findIndex(b=>b.id===f.id);if(j!==-1){const b=g.updated[j];console.log("🔄 currentTask:",b),g.updated[j]={...b,...f}}else g.updated.push(f);await s(f.plantilla.id,g)}else e({...i,id:f.plantilla.id,updated:[...i.updated,f]})},removeTaskFromState:async({templateId:f,id:g})=>{const y=await r({templateId:f});if(y){if(g>0){const j=y.deleted.findIndex(b=>b===g);if(j!==-1){y.deleted.splice(j,1),await s(f,y);return}}const w=y.created.findIndex(j=>j.id===g);if(w!==-1){y.created.splice(w,1),await s(f,y);return}}else if(g>0){e({...i,id:f,deleted:[...i.deleted,g]});return}},removeParentIdFromNodes:async({templateId:f,id:g})=>{const y=await r({templateId:f});if(y){const w=y.created.findIndex(b=>b.id===g);if(w!==-1){y.created[w].tarea_padre=null,y.created[w].id_t_requerida=null,await s(f,y);return}const j=y.updated.findIndex(b=>b.id===g);if(j!==-1){y.updated[j].tarea_padre=null,y.updated[j].id_t_requerida=null,await s(f,y);return}}},updateNodeWithNewEdge:async({templateId:f,edge:g,task:y})=>{console.log("🔵 updateNodeWithNewEdge - Inicio",{templateId:f,taskId:y.id,taskData:y});const w=await r({templateId:f});if(console.log("🔵 updateNodeWithNewEdge - Estado actual:",w),w){console.log("🔵 updateNodeWithNewEdge - Estado existe, buscando tarea...");const j=w.created.findIndex(_=>_.id===y.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en created:",j),j!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en created"),w.created[j]=y,await s(f,w),console.log("✅ updateNodeWithNewEdge - Actualizado en created");return}const b=w.updated.findIndex(_=>_.id===y.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en updated:",b),b!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en updated"),w.updated[b]=y,await s(f,w),console.log("✅ updateNodeWithNewEdge - Actualizado en updated");return}if(console.log("🔵 updateNodeWithNewEdge - Tarea no encontrada en arrays"),y.id&&y.id!==0){const _=y.id<0;_?(console.log("🔵 updateNodeWithNewEdge - Agregando a created (tarea nueva)"),w.created.push(y)):(console.log("🔵 updateNodeWithNewEdge - Agregando a updated (tarea existente)"),w.updated.push(y)),await s(f,w),console.log("✅ updateNodeWithNewEdge - Tarea agregada exitosamente a",_?"created":"updated")}else console.error("❌ updateNodeWithNewEdge - task.id no válido para agregar:",y.id)}else if(console.log("🔵 updateNodeWithNewEdge - Creando nuevo estado"),y.id&&y.id!==0){const j=y.id<0,b={...i,id:f,created:j?[y]:[],updated:j?[]:[y]};console.log("🔵 updateNodeWithNewEdge - Nuevo estado:",b,j?"(created)":"(updated)"),e(b),console.log("✅ updateNodeWithNewEdge - Estado creado exitosamente")}else console.error("❌ updateNodeWithNewEdge - task.id no válido:",y.id);console.log("🔵 updateNodeWithNewEdge - Fin")}}};function Be(){const{activeTemplate:e,setActiveTemplate:a}=Le(),{mode:n,setMode:s,setViewMode:o,clearViewMode:i}=Te(),{template:r,setIsOpenModalLimit:c,setOpenModalUnsavedChanges:m,setOpenModalPublishTemplate:l,setOpenModalDeleteTemplate:d}=Fe(),{hydrateTasks:p}=ds(),{addTaskToState:h,removeTemplateStates:f}=nt(),g=me.useQueryClient(),{data:y,add:w,update:j,get:b,getAll:_,delete:M,isLoading:F,error:R}=$t(),{get:N}=ms(),{getTemplateWithTasks:D}=is(),{tasks_api:v}=he(),[U,K]=u.useState(!1),[J,H]=u.useState(!1),[O,S]=u.useState(!1),B=u.useMemo(()=>y.sort((C,$)=>C.order-$.order),[y]);u.useEffect(()=>{B.length===0&&n!=="grid"&&s("grid")},[B,n,s]);const k=async(P,C=ve.IDLE)=>{var $;try{const L=await D(P.id),T=await p(L),V={id:crypto.randomUUID(),data:L,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},Y=T||[V],ae={...L,graph_layout:{...L==null?void 0:L.graph_layout,snapshot:{...($=L==null?void 0:L.graph_layout)==null?void 0:$.snapshot,nodes:Y}},estatus:C,estatusFromStrapi:L.estatus};await w(ae)}catch(L){console.warn("No se pudieron obtener los datos completos de la plantilla, creando versión básica:",L);const T=P,V={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:[V],edges:[],viewport:{x:0,y:0,zoom:1}},history:null,zoom:1,position:{x:0,y:0}},ae={...T,graph_layout:T.graph_layout||Y,estatus:C,tarea_plantillas:T.tarea_plantillas||[]};await w(ae)}},q=async({template:P,checkTemplateInIndexedDB:C=!1,statusTemplate:$=ve.IDLE})=>{const L=B;if(!L.find(V=>V.id===P.id)){if(L.length===5){c(!0);return}if(C&&await b(P.id))return;await k({...P,order:L.length+1},$)}await W(P.id),await ee(P),s("create-edit",P==null?void 0:P.id)},ee=async P=>{const C=await b(P.id);a(C)},W=async P=>{try{let C=await _();C.sort((L,T)=>(L.order||0)-(T.order||0));const $=C.findIndex(L=>L.id===P);if($!==-1){const[L]=C.splice($,1);C.unshift(L),C.forEach((V,Y)=>{V.order=Y+1});const T=C.map(V=>j(V.id,V));await Promise.all(T)}else return}catch{}},re=async P=>{try{await M(P),i(P);const C=await _();C.forEach((L,T)=>{L.order=T+1});const $=C.map(L=>j(L.id,L));await Promise.all($)}catch{}};return{screens:B,isLoading:F,error:R,add:w,data:y,addScreen:k,openTemplate:q,update:j,delete:re,get:b,activeTemplate:e,activateTemplate:ee,reorderingTemplates:W,replaceTemplate:async()=>{try{const P=[...B],C={...P[P.length-1]};await M(C.id);const $={...r,order:C.order};await k($);const T=(await _()).sort((Y,ae)=>Y.order-ae.order);if(T.some((Y,ae)=>(Y.order||0)!==ae+1)){const Y=T.map((ae,le)=>({...ae,order:le+1}));for(const ae of Y)try{await j(ae.id,ae)}catch{}}}catch{}finally{c(!1)}},addTaskUpdatingTemplate:async(P,C,$="hija")=>{var Y,ae,le,X;const L=await b(C);if(!L)return null;const T={id:P.id,uuid:crypto.randomUUID(),reference_graph:P.reference_graph,texto_corto:P.title,texto_largo:P.description||"",prioridad:P.priority||null,nivel_dificultad:P.difficulty||1,duracion:P.duration||null,start:!1,type:"task",equipo:{id:Number(P.team)||null},responsable:{id:Number(P.responsible)||null},plantilla:{id:L.id,clave:L.clave,categoria:L.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:$==="dependiente"?(ae=(Y=P.parent)==null?void 0:Y.data)==null?void 0:ae.id:null,ids_t_dependientes:[],tarea_padre:$==="hija"?(X=(le=P.parent)==null?void 0:le.data)==null?void 0:X.id:null,tareas:[]},V={...L,estatus:ve.DIRTY};return await j(C,V),e&&e.id===C&&a(V),await h({task:T}),T},addTemplateUpdatingTemplate:async(P,C,$,L="hija")=>{let T=null;if(e&&e.id===C?T=e:T=await b(C),!T)return null;const V=(ae,le,X,se)=>{for(let ce=0;ce<ae.length;ce++){const ie=ae[ce];if(ie.id===le||ie.uuid===le)return se==="dependiente"?(ie.plantilla_dependents||(ie.plantilla_dependents=[]),ie.plantilla_dependents.push(X)):se==="hija"&&(ie.plantilla_dependents||(ie.plantilla_dependents=[]),ie.plantilla_dependents.push(X)),!0;if(ie.tareas&&ie.tareas.length>0){const te=V(ie.tareas,le,X,se);if(te)return te}}return!1};if(V(T.tarea_plantillas,$,P,L)){const ae={...T,estatus:ve.DIRTY,updatedAt:new Date().toISOString()};return await j(C,ae),e&&e.id===C&&a(ae),!0}else return!1},updateGraphLayout:async(P,C)=>{var $;if(!P){console.warn("⚠️ updateGraphLayout - Template ID no válido");return}try{const L=await b(P);if(!L){console.warn("⚠️ updateGraphLayout - Template no encontrado");return}const T=(C.nodes||[]).filter(se=>{var ce;return!((ce=se.data)!=null&&ce.isInternal)&&!se.parentId}).map(se=>{const{style:ce,measured:ie,data:te,...ue}=se,{expandedDimensions:fe,isExpanded:xe,needsReExpansion:pe,...ye}=te||{},Me=ce?{...ce,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...ue,style:Me,data:ye,position:se.position}}),V=(C.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:ie,originalTarget:te,...ue}=se.data;return{...se,target:te||se.target,data:ue}}return se}),Y={...C,nodes:T,edges:V},ae=($=L.graph_layout)==null?void 0:$.snapshot;if(!(!ae||JSON.stringify(ae)!==JSON.stringify(Y)))return;const X={...L,graph_layout:{...L.graph_layout,snapshot:Y},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await j(P,X),e&&e.id===P&&a(X)}catch(L){console.error("❌ updateGraphLayout - Error:",L)}},saveTemplateChanges:async(P=!0)=>{try{if(e.estatus===ve.DIRTY){H(!0);const{id:C}=e,$=await b(C),L=await N(C),T=$.graph_layout.snapshot.nodes||[],V=T.filter(X=>{var se;return!((se=X.data)!=null&&se.isInternal)&&!X.parentId}),Y=T.length-V.length;Y>0&&console.warn(`💾 [saveTemplateChanges] Se filtraron ${Y} nodos internos al guardar plantilla ${C}`);const ae={graph_layout:{...$.graph_layout,snapshot:{...$.graph_layout.snapshot,nodes:V.map(X=>{const{style:se,measured:ce,selected:ie,...te}=X,ue=se?{...se,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return X.type==="group"?{...te,style:ue,data:{tareaId:X.data.id&&X.data.id>0?X.data.id:null,clave:X.data.clave,estatus:X.data.estatus,updatedAt:X.data.updatedAt,id:X.data.id}}:{...te,style:ue,data:{tareaId:X.data.id&&X.data.id>0?X.data.id:null}}}),edges:($.graph_layout.snapshot.edges||[]).filter(X=>{var se;return!((se=X.data)!=null&&se.isInternal)})}},tasks:{created:(L==null?void 0:L.created)||[],updated:(L==null?void 0:L.updated)||[],deleted:(L==null?void 0:L.deleted)||[]}},le=await v.post("/api/tareas/save-tareas-grafico",{data:ae});if(le.data&&le.status===200){try{const X=await D(C),se=await p(X),ce={...X,graph_layout:{...X.graph_layout,snapshot:{...X.graph_layout.snapshot,nodes:se}},estatus:ve.IDLE};await j(C,ce),P||a(ce)}catch{const se=await b(C);if(se&&!P){const ce={...se,estatus:ve.IDLE};await j(C,ce),a(ce)}}await g.invalidateQueries({queryKey:["template",C]}),await g.invalidateQueries({queryKey:["template"]}),f(C),P&&(re(C),m(!1)),o(C,"readonly")}}}catch(C){console.log(C)}finally{H(!1)}},publishTemplate:async P=>{try{K(!0);const C={estatus:Ee.PUBLISHED,publication_date:new Date},$=await v.put(`/api/plantillas/plantilla-update-estatus/${P}`,{data:C});$.data&&$.status===200&&(a({...e,estatusFromStrapi:Ee.PUBLISHED}),l(!1),x.toast.info("Se publicó correctamente el proceso"))}catch(C){console.log(C),x.toast.error("Surgió un error al publicar el proceso")}finally{K(!1)}},deleteTemplate:async P=>{try{S(!0);const C={estatus:Ee.DELETED,sjdaksd:0},$=await v.put(`/api/plantillas/plantilla-update-estatus/${P}`,{data:C});$.data&&$.status===200&&(d(!1),x.toast.info("Se eliminó correctamente el proceso"))}catch(C){console.error(C),x.toast.error("Surgión un error al eliminar el proceso")}finally{S(!1)}},loadingPublishTemplate:U,loadingSaveChanges:J,loadingDeleteTemplate:O}}const fr=async({tasks_api:e})=>{try{return(await e.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}`}},gr=()=>{const{tasks_api:e}=he();return{users:me.useQuery({queryKey:["usersOBP"],queryFn:()=>fr({tasks_api:e}),staleTime:1e3*60*60*24})}},Ze=()=>{const{users:e}=gr(),a=me.useQuery({queryKey:["users_index",e.data],queryFn:()=>co({users:e.data||[]}),staleTime:1e3*60*60*24,enabled:!!e.data});return{users:a.data,isLoading:a.isLoading||e.isLoading}},us=()=>{const{users:e,isLoading:a}=Ze(),{getImageOBP:n}=he();return{getImageByEmail:i=>{const r=e==null?void 0:e[i];return n(r==null?void 0:r.image)},getNameByEmail:i=>{const r=e==null?void 0:e[i];return(r==null?void 0:r.nombre)||""},isLoading:a}},ot=({isLoading:e})=>e?t.jsxs("div",{className:"tm-fixed tm-inset-0 tm-z-50 tm-flex tm-items-center tm-justify-center",children:[t.jsx("div",{className:"tm-absolute tm-inset-0",style:{backgroundColor:"rgba(255, 255, 255, 0.5)"}}),t.jsx("div",{className:"tm-relative tm-flex tm-flex-col tm-items-center tm-justify-center tm-gap-4",children:t.jsx(x.Spinner,{})})]}):null,xa=({template:e,openModalPublishTemplate:a,onHadleClickEditTemplateParams:n,onEditTasks:s,canDuplicateAndDeleteTemplates:o,onHandleClickDuplicateTemplate:i,openModalDeleteTemplate:r})=>t.jsx(x.Popup,{color:"secondary",pill:"pill",icon:de.faEllipsis,stopPropagationList:!0,children:t.jsxs(x.List,{className:"tm-p-6 tm-gap-4",children:[e.estatus!==Ee.PUBLISHED&&e.counts_tasks>2&&t.jsx(x.ListItem,{icon:de.faArrowUp,onClick:a,children:"Publicar"}),t.jsx(x.ListItem,{icon:de.faEdit,onClick:()=>{n(e)},children:"Editar parámetros"}),t.jsx(x.ListItem,{icon:de.faEdit,onClick:()=>{s&&s(e)},children:"Editar tareas"}),o&&t.jsx(x.ListItem,{icon:de.faClone,onClick:c=>{c.stopPropagation(),i(e)},children:"Duplicar"}),o&&t.jsx(x.ListItem,{color:"red",icon:de.faTrash,onClick:r,children:"Eliminar"})]})}),ps=({fullWidth:e,mode:a="grid",onClick:n,active:s,template:o,withOptions:i=!0})=>{const{openTemplate:r}=Be(),{getImageByEmail:c,getNameByEmail:m}=us(),{setIsEditTemplate:l,setOpenModalCreateTemplate:d,setCurrentTemplateForEdit:p,setIsDuplicateTemplate:h,setOpenModalPublishTemplate:f,setCurrentTemplateId:g,setOpenModalDeleteTemplate:y}=Fe(),w={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"}},[j,b]=u.useState(!1),_=async()=>{if(b(!0),a==="grid")try{b(!0),await r({template:o,checkTemplateInIndexedDB:!0})}catch(q){console.error(q)}finally{b(!1)}else b(!1);n==null||n(o==null?void 0:o.id)},M=async()=>{if(!(a!=="grid"||!o)){b(!0);try{await r({template:o,checkTemplateInIndexedDB:!0}),n==null||n(o==null?void 0:o.id)}catch(q){console.error(q)}finally{b(!1)}}},F=q=>{l(!0),d(!0),p(q)},R=q=>{h(!0),d(!0),p(q)},N=()=>{g(o==null?void 0:o.id),f(!0)},D=()=>{g(o==null?void 0:o.id),y(!0)},v=(o==null?void 0:o.dias_duracion)===1?"Día":"Días",U=(o==null?void 0:o.counts_tasks)===1?"Tarea":"Tareas",K=(o==null?void 0:o.estatus)===Ee.PUBLISHED?Tt(o==null?void 0:o.publication_date).format("DD/MM/YYYY"):Tt(o==null?void 0:o.createdAt).format("DD/MM/YYYY"),J=(o==null?void 0:o.updated_by)||(o==null?void 0:o.created_by),H=c(J==null?void 0:J.email),O=m(J==null?void 0:J.email)||"",S=(o==null?void 0:o.estatus)===Ee.PUBLISHED?"Fecha de publicación":"Fecha de creación",B=(o==null?void 0:o.estatus)===Ee.DRAFT,k=q=>{const ee=q.split("-");return t.jsx(t.Fragment,{children:ee.map((W,re)=>t.jsxs("span",{children:[W,re<ee.length-1&&t.jsx("span",{className:"tm-text-neutral-200",children:"-"})]},re))})};return t.jsxs(x.Card,{active:s,fullWidth:e,onClick:_,className:`${e?"md:tm-flex-row":"tm-flex-col"}`,children:[t.jsx(ot,{isLoading:j}),t.jsx(x.Card.Header,{children:t.jsx("div",{className:"tm-flex tm-justify-between tm-items-start tm-gap-x-4",children:t.jsxs("div",{className:"tm-flex tm-justify-between tm-items-start tm-gap-4 tm-flex-1",children:[t.jsxs("div",{className:"tm-flex tm-place-items-start tm-gap-x-4",children:[t.jsx("div",{className:"tm-flex tm-items-center",children:t.jsx(x.Icon,{name:ze.faChartDiagram,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"lg"})}),t.jsxs("div",{className:"tm-flex tm-gap-x-1 tm-flex-col tm-gap-y-4",children:[t.jsx("h1",{className:"tm-text-base tm-py-0.5 tm-font-body-sm-bold tm-text-body-sm-bold tm-leading-none tm-text-primary",children:k((o==null?void 0:o.clave)||(o==null?void 0:o.nombre_plantilla))}),t.jsxs("div",{className:"tm-flex tm-items-baseline tm-gap-x-1",children:[t.jsx(x.Badge,{size:"sm",theme:"soft",color:(o==null?void 0:o.estatus)===Ee.PUBLISHED?"success":"gray",label:(o==null?void 0:o.estatus)===Ee.PUBLISHED?"Publicado":"Borrador"}),!(typeof K=="string"&&K==="Invalid date")&&t.jsx(x.Tooltip,{label:S,children:t.jsx("p",{className:"tm-text-body-sm-regular tm-text-tertiary tm-font-body-sm-semibold",children:K})})]})]})]}),!e&&t.jsx(xa,{template:o,openModalPublishTemplate:N,onHadleClickEditTemplateParams:F,onEditTasks:M,canDuplicateAndDeleteTemplates:B,onHandleClickDuplicateTemplate:R,openModalDeleteTemplate:D})]})})}),t.jsx(x.Card.Separator,{vertical:e}),t.jsx(x.Card.Body,{className:"tm-flex tm-flex-wrap tm-gap-x-4 tm-gap-y-1 tm-w-full md:tm-w-auto tm-flex-wrap tm-flex-1 tm-items-center",children:o==null?void 0:o.params_plantillas.map((q,ee)=>{const W=w[q.params_tipo.order-1];return t.jsx(x.Badge,{color:W.color,theme:W.theme,label:q.name,size:"sm"},q.name)})}),!e&&t.jsx(x.Card.Separator,{vertical:e}),t.jsxs(x.Card.Footer,{className:"tm-flex tm-justify-between tm-w-full md:tm-w-auto tm-gap-x-4",children:[t.jsxs("div",{className:`tm-flex tm-flex-1 ${e?"tm-gap-x-2 md:tm-gap-20 lg:tm-gap-32 2xl:tm-gap-44":""}`,children:[t.jsx("div",{className:`tm-flex tm-gap-x-1 tm-justify-center tm-items-center tm-flex-1 ${e?"tm-flex-col":"tm-flex-row"}`,children:t.jsx(x.Tooltip,{label:"Tareas totales",children:t.jsxs("div",{className:`tm-flex tm-items-center tm-gap-2 ${e?"tm-flex-col":"tm-flex-row"}`,children:[t.jsx("p",{className:"tm-text-icon-all-colors-blue tm-text-xs tm-text-center tm-leading-none tm-font-semibold",children:(o==null?void 0:o.counts_tasks)||0}),t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:U})]})})}),t.jsx("div",{className:`tm-flex tm-gap-x-1 tm-justify-center tm-items-center tm-flex-1 ${e?"tm-flex-col":"tm-flex-row"}`,children:t.jsx(x.Tooltip,{label:"Tareas totales",children:t.jsxs("div",{className:`tm-flex tm-items-center tm-gap-2 ${e?"tm-flex-col":"tm-flex-row"}`,children:[t.jsx("p",{className:"tm-text-icon-all-colors-blue tm-text-xs tm-text-center tm-leading-none tm-font-semibold",children:(o==null?void 0:o.dias_duracion)||0}),t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:v})]})})}),t.jsxs("div",{className:`tm-flex tm-gap-x-1 tm-justify-center tm-items-center tm-flex-1 ${e?"tm-flex-col-reverse tm-gap-y-1":"tm-flex-row"}`,children:[t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Editor"}),t.jsx(x.Tooltip,{label:O,children:t.jsx(x.Avatar,{src:H,size:"xxs",type:"people"})})]})]}),e&&i&&t.jsx(x.Card.Separator,{vertical:e}),i&&t.jsx("div",{className:`tm-w-auto ${e?"tm-flex tm-items-center":""}`,children:e&&t.jsx(xa,{template:o,openModalPublishTemplate:N,onHadleClickEditTemplateParams:F,onEditTasks:M,canDuplicateAndDeleteTemplates:B,onHandleClickDuplicateTemplate:R,openModalDeleteTemplate:D})})]})]})},hr={1:"blue",2:"green",3:"red",4:"yellow"},xr=({difficulty:e})=>t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end tm-gap-2",children:[t.jsx(x.Icon,{name:de.faRhombus,size:"md",color:hr[e]}),t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Dificultad"})]}),br=({duration:e})=>t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end",children:[t.jsx("p",{className:"tm-text-icon-all-colors-blue tm-text-body-lg-regular tm-leading-none tm-font-semibold",children:e}),t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Duración"})]}),yr={1:"neutral",2:"blue",3:"yellow",4:"red"},jr=({priority:e})=>t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end tm-gap-2",children:[t.jsx(x.Icon,{name:de.faFlag,size:"md",color:yr[e]}),t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Prioridad"})]});class wr{static toUsers(a){return{id:a.id,name:a.nombre,image:a.image,email:a.email}}}const vr=async({tasks_api:e})=>{try{const a=Pe.stringify({filters:{blocked:!1}},{encodeValuesOnly:!0}),n=await e.get(`/api/users?${a}`);return be(n.data).map(wr.toUsers).sort((o,i)=>o.name.localeCompare(i.name))}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Ut=()=>{const{tasks_api:e}=he(),a=me.useQuery({queryKey:["users-mt"],queryFn:()=>vr({tasks_api:e}),staleTime:1e3*60*60*24});return{isLoading:a.isLoading,users:a.data}},_r=({responsible:e})=>{const{isLoading:a}=Ut(),{getImageByEmail:n,isLoading:s}=us();return a||s?null:t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end",children:[t.jsx(x.Avatar,{size:"xs",src:n(e==null?void 0:e.email),type:"people"}),t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Responsable"})]})},Tr=[{label:"Muy alta",value:4,icon:de.faFlag,iconColor:"red"},{label:"Alta",value:3,icon:de.faFlag,iconColor:"yellow"},{label:"Media",value:2,icon:de.faFlag,iconColor:"blue"},{label:"Baja",value:1,icon:de.faFlag,iconColor:"neutral"}],Cr=[{label:"Muy alta",value:4,icon:de.faRhombus,iconColor:"red"},{label:"Alta",value:3,icon:de.faRhombus,iconColor:"yellow"},{label:"Media",value:2,icon:de.faRhombus,iconColor:"blue"},{label:"Baja",value:1,icon:de.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}],fs=({isOpen:e,onClose:a,onSuccess:n,nodeDataType:s,parentNodeInfo:o,editMode:i=!1,taskToEdit:r})=>{const{data:c}=Vs(),{users:m}=Ut(),{users:l}=Ze(),{getImageOBP:d}=he(),p=u.useMemo(()=>{try{return!m||!l?[]:m.map(N=>{const D=l[N.email],v=D!=null&&D.image?d(D.image):"";return{label:N.name,value:N.id.toString(),icon:v}})}catch(N){return console.error("Error mapeando usuarios:",N),[]}},[m,l]),h=()=>{if(i&&r){const N=K=>{if(K==null)return"";const J=Number(K);return isNaN(J)?"":J},D=K=>K?typeof K=="string"?Number(K)||"":K.id||"":"",v=K=>{var J;return K?typeof K=="string"?K:((J=K.id)==null?void 0:J.toString())||K.name||K.nombre||"":""};return{title:r.texto_corto||"",description:r.texto_largo||"",priority:N(r.prioridad),difficulty:N(r.nivel_dificultad),duration:N(r.duracion),team:D(r.equipo),responsible:v(r.responsable),type:"tarea"}}return{title:"",description:"",priority:"",difficulty:"",duration:"",team:"",responsible:"",type:"tarea"}},{control:f,handleSubmit:g,formState:{errors:y,isValid:w},reset:j,watch:b}=Se.useForm({mode:"onChange",defaultValues:h()});u.useEffect(()=>{e&&j(h())},[e,i,r,j]);const _=b(),M=w&&_.title&&_.description&&_.priority&&_.difficulty&&_.duration&&_.team&&Object.keys(y).length===0,F=async N=>{try{if(["title","description","priority","difficulty","duration","team"].filter(U=>!N[U]).length>0)return;n&&n({...N,parent:o}),j()}catch{}},R=()=>{j(),a()};return t.jsx(x.Drawer,{titleIcon:de.faPencil,isOpen:e,onClose:R,onSuccess:()=>{g(N=>{F(N)},N=>{const D=Object.entries(N).map(([v,U])=>`${v}: ${U.message}`).join(`
11
9
  `);console.log(`📝 Por favor, completa los siguientes campos:
12
- `+S)})()},title:i?"Editar tarea":"Nueva tarea",successButtonText:i?"Actualizar":"Crear",disabledSuccessButton:!k,children:t.jsxs("form",{className:"tw-flex tw-flex-col tw-gap-4",children:[t.jsx(Ie.Controller,{control:w,name:"title",rules:{required:"El título es obligatorio",minLength:{value:3,message:"El título debe tener al menos 3 caracteres"}},render:({field:T})=>{var S;return t.jsx(j.Input,{fullWidth:!0,label:"Título",placeholder:"Ingresa el título de la tarea...",error:(S=h.title)==null?void 0:S.message,...T})}}),t.jsx(Ie.Controller,{control:w,name:"description",rules:{required:"La descripción es obligatoria",minLength:{value:10,message:"La descripción debe tener al menos 10 caracteres"}},render:({field:T})=>{var S;return t.jsx(j.Textarea,{className:"ui-w-full tw-w-full",placeholder:"Describe la tarea a realizar...",label:"Descripción",error:(S=h.description)==null?void 0:S.message,...T})}}),t.jsx(j.Separator,{}),t.jsx(Ie.Controller,{control:w,name:"priority",rules:{required:"La prioridad es obligatoria"},render:({field:T,fieldState:{error:S}})=>t.jsx(j.Dropdown,{fullWidth:!0,label:"Prioridad",placeholder:"Selecciona la prioridad...",options:_r,error:S==null?void 0:S.message,value:T.value,onValueChange:v=>{T.onChange(v)}})}),t.jsx(Ie.Controller,{control:w,name:"difficulty",rules:{required:"La dificultad es obligatoria"},render:({field:T,fieldState:{error:S}})=>t.jsx(j.Dropdown,{fullWidth:!0,label:"Dificultad",placeholder:"Selecciona la dificultad...",options:Nr,error:S==null?void 0:S.message,value:T.value,onValueChange:v=>{T.onChange(v)}})}),t.jsx(Ie.Controller,{control:w,name:"duration",rules:{required:"La duración es obligatoria"},render:({field:T,fieldState:{error:S}})=>t.jsx(j.Dropdown,{fullWidth:!0,label:"Duración",placeholder:"Selecciona la duración...",options:Tr,error:S==null?void 0:S.message,value:T.value,onValueChange:v=>{T.onChange(v)}})}),t.jsx(j.Separator,{}),t.jsx(Ie.Controller,{control:w,name:"team",rules:{required:"El equipo es obligatorio"},render:({field:T,fieldState:{error:S}})=>t.jsx(j.Dropdown,{fullWidth:!0,label:"Equipo",placeholder:"Selecciona el equipo...",options:c,error:S==null?void 0:S.message,value:T.value,onValueChange:v=>{T.onChange(v)}})}),t.jsx(Ie.Controller,{control:w,name:"responsible",render:({field:T,fieldState:{error:S}})=>t.jsx(j.Dropdown,{fullWidth:!0,absolute:!0,label:"Responsable",placeholder:"Selecciona el responsable...",options:m,error:S==null?void 0:S.message,value:T.value,onValueChange:v=>{T.onChange(v)}})})]})})},Cr=()=>{const{get:e}=qe(),a=Oe(i=>i.activeTemplate),{updateTaskInState:n,addTaskToState:s}=nt();return{updateTaskInTemplate:async(i,r)=>{if(!a)return console.error("No hay plantilla activa"),!1;try{const c=await e(a.id);if(!c)return console.error("Flujo de trabajo no encontrado"),!1;const d={id:i,uuid:r.uuid||crypto.randomUUID(),reference_graph:r.reference_graph||null,texto_corto:r.texto_corto||"",texto_largo:r.texto_largo||"",prioridad:r.prioridad||null,nivel_dificultad:r.nivel_dificultad||1,duracion:r.duracion||null,start:r.start||!1,equipo:r.equipo||null,responsable:r.responsable||null,plantilla:{id:c.id,clave:c.clave,categoria:c.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:r.plantilla_dependents||[],id_t_requerida:r.id_t_requerida||null,ids_t_dependientes:r.ids_t_dependientes||[],tarea_padre:r.tarea_padre||null,tareas:r.tareas||[]};i>0?await n({task:d}):await s({task:d})}catch(c){return console.error("❌ Error al actualizar tarea en plantilla:",c),!1}}}},_e={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"},ha={dependiente:{stroke:"#3B82F6",strokeDasharray:"5,5",strokeWidth:2},normal:{stroke:"#6B7280",strokeWidth:2}},jt=e=>{const a=e.map(n=>({...n}));return a.filter(n=>n.type==="group").forEach(n=>{const s=a.filter(u=>u.parentId===n.id);if(s.length===0)return;const o=Math.min(...s.map(u=>u.position.x)),r=Math.max(...s.map(u=>{var m;return u.position.x+(typeof((m=u.style)==null?void 0:m.width)=="number"?u.style.width:_e.DEFAULT_CHILD_WIDTH)}))-o,c=Math.min(...s.map(u=>u.position.y)),l=Math.max(...s.map(u=>{var m;return u.position.y+(typeof((m=u.style)==null?void 0:m.height)=="number"?u.style.height:_e.DEFAULT_CHILD_HEIGHT)}))-c;n.style={...n.style??{},width:r,height:l}}),a},vt=e=>e.source===_e.START_NODE_ID||e.target===_e.START_NODE_ID,Xe=e=>e===_e.START_NODE_ID,Sr=e=>e==="dependiente"?ha.dependiente:ha.normal,Er=(e,a,n)=>({id:e,type:"main",position:a,selected:!1,deletable:!0,data:n}),_t=(e,a,n,s,o,i=!1,r=null,c=null)=>{const d=Sr(s),l=i?_e.DEFAULT_SOURCE_HANDLE:n;return{id:`edge-${e}-${a}`,source:e,sourceHandle:l,target:a,targetHandle:_e.DEFAULT_TARGET_HANDLE,type:"smoothstep",deletable:!0,style:d,markerEnd:{type:"arrowclosed",width:12,height:12,color:d.stroke,strokeWidth:1},data:{connectionType:s,nodeType:o,isFromStartNode:i,parentId:r,childId:c}}},Pr=(e,a)=>!(!e||!a||e===a),Ir=e=>{const{clientX:a,clientY:n}="changedTouches"in e?e.changedTouches[0]:e;return{x:a,y:n}},Ar=e=>e.filter(a=>a.type==="position"&&a.dragging===!1),fs=e=>e.map(a=>a.id),gs=({nodes:e,edges:a,setNodes:n,setEdges:s,newNodePopup:o,connectionPopup:i,closeNewNodePopup:r,closeConnectionPopup:c,setIsConnectingExistingNodes:d})=>{const{screenToFlowPosition:l,getNode:u,setViewport:m,fitView:g}=ne.useReactFlow(),{get:w,update:f,addTaskUpdatingTemplate:h,addTemplateUpdatingTemplate:x}=qe(),y=Oe(H=>H.activeTemplate),b=de.useQueryClient(),C=Oe(H=>H.setActiveTemplate),{removeTaskFromState:k,updateNodeWithNewEdge:F,updateTaskInState:q}=nt(),T=p.useCallback(async H=>{const O=e.find(B=>B.id===H);if(!(O!=null&&O.data))return null;if(O.id===_e.START_NODE_ID){if(!y)return null;try{const B=await w(y.id),M=B.tarea_plantillas.find(z=>z.start===!0);return M!=null&&M.id?M.id:B.tarea_plantillas.length>0?B.tarea_plantillas[0].id:null}catch{return null}}const E=O.data.id;if(!E&&E!==0)return null;if(typeof E=="string"){if(E.includes("-"))return E;{const B=parseInt(E,10);return isNaN(B)?null:B}}else if(typeof E=="number")return E;return null},[e,y,w]),S=p.useCallback(async(H=e,O=a)=>{var E,B,M,z,ee,V,oe;if(!y){j.toast.warning("No hay template activo para actualizar layout");return}try{const Z=await w(y.id);if(!Z){j.toast.warning("Template no encontrado en IndexedDB");return}const P=(E=Z.graph_layout)==null?void 0:E.snapshot;if(!(!P||JSON.stringify(P.nodes)!==JSON.stringify(H)||JSON.stringify(P.edges)!==JSON.stringify(O))){console.log("🔄 No hay cambios en el layout, omitiendo actualización");return}const Q=H.filter(W=>{var I;return!((I=W.data)!=null&&I.isInternal)&&!W.parentId}).map(W=>{const{style:I,measured:N,data:U,selected:L,..._}=W,{expandedDimensions:G,isExpanded:Y,needsReExpansion:ae,...ie}=U||{},X=I?{...I,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{..._,style:X,data:ie}}),D=O.filter(W=>{var I;return!((I=W.data)!=null&&I.isInternal)}),A={...Z,graph_layout:{id:((B=Z.graph_layout)==null?void 0:B.id)||0,snapshot:{nodes:Q,edges:D,viewport:((z=(M=Z.graph_layout)==null?void 0:M.snapshot)==null?void 0:z.viewport)||{x:0,y:0,zoom:1}},history:((ee=Z.graph_layout)==null?void 0:ee.history)||[],zoom:((V=Z.graph_layout)==null?void 0:V.zoom)||1,position:((oe=Z.graph_layout)==null?void 0:oe.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await f(y.id,A),console.log("🗑️ [useFlowActions] Invalidando caché de la plantilla:",y.id),await b.invalidateQueries({queryKey:["template",y.id]}),await b.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlowActions] Caché invalidado exitosamente"),C(A)}catch(Z){console.error("❌ Error al actualizar template layout:",Z)}},[y,w,f,e,a,C]),v=p.useCallback(async(H=[],O=[],E,B)=>{var z,ee,V,oe,Z,P,$,Q,D,A,W,I;const M=E||(y==null?void 0:y.id);if(!M){j.toast.warning("No hay template ID disponible para actualizar");return}try{const N=await w(M);if(!N)return;const U=(V=(ee=(z=N.graph_layout)==null?void 0:z.snapshot)==null?void 0:ee.nodes)==null?void 0:V.filter(G=>{var Y;return!H.includes(G.id)&&!((Y=G.data)!=null&&Y.isInternal)&&!G.parentId}).map(G=>{const{style:Y,measured:ae,data:ie,...X}=G,{expandedDimensions:se,...re}=ie||{},le=Y?{...Y,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...X,style:le,data:re}}),L=((P=(Z=(oe=N.graph_layout)==null?void 0:oe.snapshot)==null?void 0:Z.edges)==null?void 0:P.filter(G=>{var Y;return!H.includes(G.source)&&!H.includes(G.target)&&!((Y=G.data)!=null&&Y.isInternal)}))||[],_={...N,graph_layout:{id:(($=N.graph_layout)==null?void 0:$.id)||0,snapshot:{nodes:U,edges:L,viewport:((D=(Q=N.graph_layout)==null?void 0:Q.snapshot)==null?void 0:D.viewport)||{x:0,y:0,zoom:1}},history:((A=N.graph_layout)==null?void 0:A.history)||[],zoom:((W=N.graph_layout)==null?void 0:W.zoom)||1,position:((I=N.graph_layout)==null?void 0:I.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await k({templateId:M,id:B||0}),await f(M,_),await b.invalidateQueries({queryKey:["template",M]}),await b.invalidateQueries({queryKey:["template"]}),M===(y==null?void 0:y.id)&&C(_)}catch(N){console.error("❌ updateAfterDeleted - Error al actualizar template layout:",N)}},[y,w,f,a,e,k,C]),R=p.useCallback(async(H,O,E)=>{if(!o||!y)return;const{nodeId:B,sourceNodeId:M,sourceHandleId:z}=o;if(M)try{const ee=await T(M);if(!ee)return;if(H==="plantilla"){const V=E;if(!(V!=null&&V.templateId))return;if(!await x(V.templateId,y.id,ee,O)){j.toast.error("No se pudo agregar la plantilla. Intenta nuevamente."),r();return}try{const W=await w(y.id);if(W){const I=(U,L)=>{for(const _ of U){if(_.id===L||_.uuid===L)return _;if(_.tareas&&_.tareas.length>0){const G=I(_.tareas,L);if(G)return G}}return null},N=I(W.tarea_plantillas,ee);if(N&&N.id){const U=(N.plantilla_dependents||[]).map(_=>typeof _=="object"&&_.id?{id:_.id}:typeof _=="number"?{id:_}:_),L={...N,plantilla_dependents:U,plantilla:{id:y.id,clave:W.clave,categoria:W.categoria||{id:0,nombre:"Sin categoría"}}};await q({task:L}),console.log("✅ Tarea padre agregada a templates_states.updated con plantilla_dependents:",N.id,L.plantilla_dependents)}}}catch(W){console.error("❌ Error al actualizar tarea padre en templates_states:",W)}const Z=l({x:o.position.x,y:o.position.y}),P=V.templateData||{id:V.templateId,nombre_plantilla:`Flujo de trabajo ${V.templateId}`,clave:`TPL-${V.templateId}`,estatus:"activo",categoria:null,counts_tasks:0,dias_duracion:0},$={id:B,type:"group",position:Z,selected:!1,deletable:!0,data:{id:V.templateId,templateId:V.templateId,type:"template",nombre_plantilla:P.nombre_plantilla||`Flujo de trabajo ${V.templateId}`,clave:P.clave||`TPL-${V.templateId}`,estatus:P.estatus||"activo",categoria:P.categoria||null,counts_tasks:P.counts_tasks||0,dias_duracion:P.dias_duracion||0,tarea_plantillas:P.tarea_plantillas||[],params_plantillas:P.params_plantillas||[],createdAt:P.createdAt||new Date().toISOString(),updatedAt:P.updatedAt||new Date().toISOString(),created_by:P.created_by||null,updated_by:P.updated_by||null}};n(W=>[...W,$]);const Q=z||_e.DEFAULT_SOURCE_HANDLE,D=Xe(M),A=_t(M,B,Q,O,"plantilla",D,ee);s(W=>[...W,A]);try{const W=[...e,$],I=[...a,A];await S(W,I)}catch(W){console.error("❌ Error al actualizar layout después de agregar plantilla:",W)}}else if(H==="tarea"){const V=E;if(!V)return;const oe=l({x:o.position.x,y:o.position.y}),Z=-new Date().getTime(),P={id:Z,reference_graph:B,title:V.title,description:V.description,priority:V.priority,difficulty:V.difficulty,duration:V.duration,team:V.team,responsible:V.responsible,parent:{data:{id:ee}}},$=await h(P,y.id,O),Q=Er(B,oe,$);n(I=>[...I,Q]);const D=z||_e.DEFAULT_SOURCE_HANDLE,A=Xe(M),W=_t(M,B,D,O,H,A,ee,Z);s(I=>[...I,W]);try{const I=[...e,Q],N=[...a,W];await S(I,N)}catch(I){console.error("❌ Error al actualizar layout después de agregar tarea:",I)}setTimeout(()=>{try{const I=u(B);if(I){const N=window.innerWidth,U=window.innerHeight,L=N/2,_=U/2;m({x:L-I.position.x-130,y:_-I.position.y-40,zoom:1},{duration:800})}else g({padding:.1,duration:800})}catch{try{g({padding:.1,duration:800})}catch{}}},200)}r()}catch(ee){console.error("❌ Error en createNodeFromPopup:",ee)}},[o,y,h,x,T,l,n,s,r,S,e,a]),K=p.useCallback(async(H,O)=>{var z,ee;if(console.log("🟢 createConnectionFromPopup - INICIO",{nodeType:H,connectionType:O}),!i){console.warn("⚠️ createConnectionFromPopup - No hay connectionPopup");return}const{sourceNodeId:E,sourceHandleId:B,targetNodeId:M}=i;console.log("🟢 createConnectionFromPopup - Datos de conexión:",{sourceNodeId:E,targetNodeId:M,sourceHandleId:B});try{if(!(window.validConnectionTypes||{dependiente:!0,hija:!0})[O]){console.warn("⚠️ createConnectionFromPopup - Tipo de conexión no válido:",O),j.toast.warning("Tipo de conexión no válido"),d(!1),c();return}const oe=e.find(L=>L.id===E),Z=e.find(L=>L.id===M);console.log("🟢 createConnectionFromPopup - Nodos encontrados:",{sourceNode:oe==null?void 0:oe.id,targetNode:Z==null?void 0:Z.id,sourceData:oe==null?void 0:oe.data,targetData:Z==null?void 0:Z.data});const P=Z==null?void 0:Z.data,$=((z=oe==null?void 0:oe.data)==null?void 0:z.id)||E,Q=((ee=Z==null?void 0:Z.data)==null?void 0:ee.id)||M;console.log("🟢 createConnectionFromPopup - IDs extraídos:",{parentId:$,childId:Q});const D=_t(E,M,B||_e.DEFAULT_SOURCE_HANDLE,O,H,Xe(E),$,Q);console.log("🟢 createConnectionFromPopup - Nuevo edge creado:",D),s(L=>[...L,D]);const A=[...a,D],W=P.id||-Date.now(),I=P.reference_graph||M,N={id:W,uuid:P.uuid||crypto.randomUUID(),reference_graph:I,texto_corto:P.texto_corto||"",texto_largo:P.texto_largo||"",prioridad:P.prioridad||null,nivel_dificultad:P.nivel_dificultad||1,duracion:P.duracion||null,start:P.start||!1,equipo:P.equipo||null,responsable:P.responsable||null,plantilla:{id:P.plantilla.id,clave:P.plantilla.clave,categoria:P.plantilla.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:P.plantilla_dependents||[],ids_t_dependientes:P.ids_t_dependientes||[],tarea_padre:O==="hija"?{id:D.data.parentId}:null,id_t_requerida:O==="dependiente"?{id:D.data.parentId}:null,tareas:P.tareas||[],type:"task"};console.log("🟢 createConnectionFromPopup - taskForState creado:",N),console.log("🟢 createConnectionFromPopup - currentTemplate.id:",y.id);const U=e.map(L=>L.id===M?{...L,data:N}:L);console.log("🟢 createConnectionFromPopup - Actualizando nodos en React Flow..."),n(U),console.log("✅ createConnectionFromPopup - Nodos actualizados en React Flow"),console.log("🟢 createConnectionFromPopup - Actualizando template layout..."),await S(U,A),console.log("✅ createConnectionFromPopup - Template layout actualizado"),console.log("🟢 createConnectionFromPopup - Llamando a updateNodeWithNewEdge..."),await F({templateId:y.id,edge:D,task:N}),console.log("✅ createConnectionFromPopup - updateNodeWithNewEdge completado")}catch(V){console.error("❌ createConnectionFromPopup - Error al crear conexión:",V),console.error("❌ createConnectionFromPopup - Stack:",V.stack)}finally{console.log("🟢 createConnectionFromPopup - Limpiando estado..."),d(!1),c(),console.log("🟢 createConnectionFromPopup - FIN")}},[i,s,d,c,a,e,S]),J=p.useCallback(async H=>{if(!o||!y){j.toast.warning("No hay newNodePopup o template activo para actualizar el nodo");return}const{nodeId:O}=o;if(!O){j.toast.warning("No se encontró nodeId en newNodePopup");return}try{const E=e.find(M=>M.id===O);if(!E){j.toast.warning(`No se encontró el nodo con ID: ${O}`);return}const B={...E,data:{...E.data,...H,id:E.data.id||E.id,type:E.data.type||E.data.type,updatedAt:new Date().toISOString()}};n(M=>M.map(z=>z.id===O?B:z));try{const M=e.map(z=>z.id===O?B:z);await S(M,a)}catch(M){j.toast.error("Error al actualizar layout después de actualizar nodo:",M)}r()}catch(E){j.toast.error("Error al actualizar el nodo:",E)}},[o,y,e,n,a,S,r]);return{createNodeFromPopup:R,createConnectionFromPopup:K,updateNodeFromPopup:J,updateAfterDeleted:v}},Dr=({data:e,id:a,isConnectable:n,selected:s})=>{const o=Ne(v=>v.getViewMode),[i,r]=p.useState(!1),[c,d]=p.useState(e),l=Oe(v=>v.activeTemplate),u=Oe(v=>v.setActiveTemplate),{get:m,update:g}=qe(),w=l!=null&&l.id?o(l.id):"readonly",{updateTaskInTemplate:f}=Cr(),{setNodes:h,setEdges:x,getNodes:y,getEdges:b}=ne.useReactFlow(),C=de.useQueryClient(),{updateAfterDeleted:k}=gs({nodes:y(),edges:b(),setNodes:h,setEdges:x,newNodePopup:null,connectionPopup:null,closeNewNodePopup:()=>{},closeConnectionPopup:()=>{},setIsConnectingExistingNodes:()=>{}}),F=()=>{r(!0)},q=p.useCallback(async()=>{var O,E,B;const v=y().find(M=>M.id===a);if(!v){console.warn("⚠️ Nodo no encontrado para eliminar");return}const R=[v],K=fs(R),J=R.length>0?(E=(O=R[0])==null?void 0:O.data)==null?void 0:E.id:0;x(M=>M.filter(z=>!K.includes(z.source)&&!K.includes(z.target))),h(M=>M.filter(z=>z.id!==a));let H;for(const M of R)try{const z=M.data;if((B=z==null?void 0:z.plantilla)!=null&&B.id){H=z.plantilla.id;break}}catch{}try{x(M=>((async()=>{await k(K,M,H,J)})().catch(z=>{console.error("❌ Error en updateAfterDeleted:",z)}),M))}catch(M){console.error("❌ Error en handleDeleteNode:",M)}},[a,y,b,h,x,k]),T=p.useCallback(async v=>{var R,K,J,H,O,E,B,M,z,ee;if(!l){console.warn("⚠️ MainNode.updateTemplateLayout - No hay template activo");return}try{const V=await m(l.id);if(!V){console.warn("⚠️ MainNode.updateTemplateLayout - Template no encontrado en IndexedDB");return}const oe=(R=V.graph_layout)==null?void 0:R.snapshot;if(!(!oe||JSON.stringify(oe.nodes)!==JSON.stringify(v))){console.log("🔄 MainNode.updateTemplateLayout - No hay cambios en nodos, omitiendo actualización");return}const P=v.filter(D=>{var A;return!((A=D.data)!=null&&A.isInternal)&&!D.parentId}).map(D=>{const{style:A,measured:W,data:I,selected:N,...U}=D,{expandedDimensions:L,isExpanded:_,needsReExpansion:G,...Y}=I||{},ae=A?{...A,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...U,style:ae,data:Y}}),$=(((J=(K=V.graph_layout)==null?void 0:K.snapshot)==null?void 0:J.edges)||[]).filter(D=>{var A;return!((A=D.data)!=null&&A.isInternal)}),Q={...V,graph_layout:{id:((H=V.graph_layout)==null?void 0:H.id)||0,snapshot:{...(O=V.graph_layout)==null?void 0:O.snapshot,nodes:P,edges:$,viewport:((B=(E=V.graph_layout)==null?void 0:E.snapshot)==null?void 0:B.viewport)||{x:0,y:0,zoom:1}},history:((M=V.graph_layout)==null?void 0:M.history)||[],zoom:((z=V.graph_layout)==null?void 0:z.zoom)||1,position:((ee=V.graph_layout)==null?void 0:ee.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await g(l.id,Q),await C.invalidateQueries({queryKey:["template",l.id]}),await C.invalidateQueries({queryKey:["template"]}),l&&l.id===Q.id&&u(Q)}catch(V){console.error("❌ MainNode.updateTemplateLayout - Error al actualizar template layout:",V)}},[l,m,g,u,C]),S=async v=>{if(r(!1),l){const R={...e,texto_corto:v.title,texto_largo:v.description,prioridad:v.priority?typeof v.priority=="number"?v.priority:parseInt(v.priority.toString()):null,nivel_dificultad:v.difficulty?typeof v.difficulty=="number"?v.difficulty:parseInt(v.difficulty.toString()):1,duracion:v.duration?typeof v.duration=="number"?v.duration:parseInt(v.duration.toString()):null,equipo:{id:Number(v.team)||null},responsable:{id:Number(v.responsible)||null}};await f(e.id,R),h(K=>{const J=K.map(H=>H.id===a?{...H,data:{...H.data,...R,tarea_padre:e.tarea_padre,id_t_requerida:e.id_t_requerida,updatedAt:new Date().toISOString()}}:H);return console.log("🔄 updatedNodes:",J),setTimeout(()=>T(J),0),J})}};return p.useEffect(()=>{d(e)},[e]),t.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] ${s?"tw-border-brand tw-shadow-lg tw-ring-2 tw-ring-blue-300 tw-ring-opacity-50":e.main?"ui-border-success tw-shadow-sm":"ui-border-default tw-shadow-sm"}`,children:[t.jsx(ne.Handle,{isConnectable:n,id:"top-target",type:"target",position:ne.Position.Top,className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white"}),t.jsx(ne.Handle,{isConnectable:n,id:"right-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:ne.Position.Right}),t.jsx(ne.Handle,{isConnectable:n,id:"bottom-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:ne.Position.Bottom}),t.jsx(ne.Handle,{isConnectable:n,id:"left-target",type:"target",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:ne.Position.Left}),t.jsxs("div",{className:"tw-flex tw-h-full tw-flex-col ui-gap-y-8 ui-p-12 ",children:[t.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between tw-gap-x-4 ",children:[t.jsx("p",{className:"ui-text-primary ui-font-bold tw-leading-none ui-text-body-lg-regular tw-truncate",children:c.texto_corto}),!e.isInternal&&l.estatusFromStrapi!==Ee.PUBLISHED&&w!=="readonly"&&t.jsx("div",{children:e.type==="task"?t.jsx(j.Popup,{position:"right",absolute:!0,size:"xxs",pill:"pill",color:"secondary",icon:pe.faEllipsis,containerClassName:"nopan nodrag",buttonClassName:"nopan nodrag",children:t.jsxs(j.List,{className:"ui-p-8 ui-gap-4",children:[t.jsx(j.ListItem,{icon:pe.faEdit,onClick:F,children:"Editar"}),t.jsx(j.ListItem,{icon:pe.faPlus,color:"red",onClick:q,children:"Eliminar"})]})}):t.jsx(j.Button,{size:"xxs",color:"secondary",pill:"pill",icon:pe.faMaximize,className:"nopan"})})]}),t.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-sm-normal ",children:c.texto_largo}),t.jsxs("div",{className:"tw-flex tw-gap-x-6 tw-justify-between",children:[t.jsx(hr,{duration:c.duracion}),t.jsx(gr,{difficulty:c.nivel_dificultad}),t.jsx(br,{priority:c.prioridad}),t.jsx(vr,{responsible:c.responsable})]})]}),t.jsx(ne.Handle,{isConnectable:n,id:"top-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:ne.Position.Top}),t.jsx(ne.Handle,{isConnectable:n,id:"right-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:ne.Position.Right}),t.jsx(ne.Handle,{isConnectable:n,id:"bottom-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:ne.Position.Bottom}),t.jsx(ne.Handle,{isConnectable:n,id:"left-source",type:"source",className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white",position:ne.Position.Left}),e.type==="task"&&i&&t.jsx(ws,{isOpen:i,onClose:()=>r(!1),onSuccess:S,editMode:!0,taskToEdit:c})]})},Fr=async({tasks_api:e,page:a=1,pageSize:n=10,search:s="",filters:o={}})=>{const i={clave:{$notNull:!0},estatus:{$ne:Ee.DELETED},...s?{$or:[{nombre_plantilla:{$containsi:s}},{clave:{$containsi:s}}]}:{},...Object.keys(o).reduce((d,l)=>(Array.isArray(o[l])?d[l]={id:{$in:o[l]}}:d[l]=o[l],d),{})},r=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}),c=await e.get(`/api/plantillas/all-plantillas?${r}`);return c.data?{data:be(c.data.data),meta:c.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:n,pageCount:0,total:0}}}},hs=({page:e=1,pageSize:a=10,search:n="",filters:s={}})=>{const{tasks_api:o}=ge();return de.useQuery({queryKey:["templates",e,a,n,s],queryFn:()=>Fr({tasks_api:o,page:e,pageSize:a,search:n,filters:s}),staleTime:1e3*60*60*24,placeholderData:de.keepPreviousData,select:i=>({data:(i==null?void 0:i.data)||[],meta:i==null?void 0:i.meta})})},xs=({isOpen:e,onClose:a,onSuccess:n,nodeDataType:s,parentNodeInfo:o})=>{var C,k,F,q;const i=Ne(T=>T.addNodeWithType),[r,c]=p.useState(0),d=5,[l,u]=p.useState(1),[m,g]=p.useState("");p.useEffect(()=>{e&&(u(1),g(""),c(0))},[e]),p.useEffect(()=>{u(1)},[m]);const{data:w,isLoading:f}=hs({page:l,pageSize:d,search:m}),h=T=>{g(T.target.value)},x=()=>{var S;if(r===0)return;const T=(S=w==null?void 0:w.data)==null?void 0:S.find(v=>v.id===r);if(!T){console.error("No se encontró el flujo de trabajo seleccionado en los datos");return}n?n({templateId:r,templateData:T}):i&&i(s.id,s.type,s.connectionType)};if(f)return t.jsx("div",{children:"Cargando..."});if(!(w!=null&&w.data))return t.jsx("div",{children:"No hay datos disponibles"});const y=((k=(C=w.meta)==null?void 0:C.pagination)==null?void 0:k.total)||0,b=y===1?"flujo encontrado":"flujos encontrados";return t.jsx(j.Modal,{iconConfig:{icon:Ce.faPencil},isOpen:e,size:"lg",onSuccess:x,onClose:a,title:"Agregar flujo de trabajo",successButtonText:"Agregar",disableSuccessButton:r===0,closeAtSuccess:!0,children:t.jsxs(j.Modal.Body,{withPadding:!1,children:[t.jsxs("div",{className:"tw-flex tw-items-center tw-justify-between tw-gap-6 tw-px-12 tw-py-3",children:[t.jsxs("p",{className:"tw-flex-1 tw-text-[14px] tw-text-neutral-500",children:[y," ",b]}),t.jsx(j.Input,{className:"tw-flex-1",leftSlot:Ce.faSearch,fullWidth:!0,placeholder:"Buscar por nombre, parámetros o estado...",value:m,onChange:h})]}),t.jsx(j.Separator,{}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-6 tw-p-12",children:[w.data.map(T=>t.jsx(ms,{mode:"modal",template:T,active:r===T.id,fullWidth:!0,onClick:c,withOptions:!1},T.id)),w.data.length===0&&t.jsx("div",{className:"tw-flex tw-items-center tw-justify-center tw-h-full",children:t.jsx("p",{className:"tw-text-[14px] tw-text-neutral-500",children:"No se encontraron flujos de trabajo con ese criterio de búsqueda"})})]}),t.jsx(j.Separator,{}),t.jsx("div",{className:"tw-mt-6",children:t.jsx(j.Pagination,{className:"tw-pt-0",pageSize:d,pageCount:((q=(F=w==null?void 0:w.meta)==null?void 0:F.pagination)==null?void 0:q.pageCount)||1,currentPage:l,onPageChange:T=>u(T)})})]})})},kr=({data:e,id:a})=>{const n=Ne(u=>u.addNodeWithType),[s,o]=p.useState(!1),[i,r]=p.useState(!1),[c,d]=p.useState({id:a,type:"tarea",connectionType:"dependiente"}),l=({type:u,connectionType:m})=>{n&&(d({id:a,type:u,connectionType:m}),u==="tarea"?o(!0):u==="plantilla"&&r(!0))};return console.log({data:e,id:a}),t.jsxs("div",{className:"tw-flex tw-items-center tw-justify-center",children:[c.type==="plantilla"&&t.jsx(xs,{isOpen:i,onClose:()=>r(!1),nodeDataType:c}),t.jsx(ne.Handle,{id:"top-target",type:"target",position:ne.Position.Top}),t.jsx(ne.Handle,{id:"right-target",type:"target",position:ne.Position.Right}),t.jsx(ne.Handle,{id:"bottom-target",type:"target",position:ne.Position.Bottom}),t.jsx(ne.Handle,{id:"left-target",type:"target",position:ne.Position.Left}),t.jsx(ne.Handle,{id:"top-source",type:"source",position:ne.Position.Top}),t.jsx(ne.Handle,{id:"right-source",type:"source",position:ne.Position.Right}),t.jsx(ne.Handle,{id:"bottom-source",type:"source",position:ne.Position.Bottom}),t.jsx(ne.Handle,{id:"left-source",type:"source",position:ne.Position.Left}),t.jsx(j.Popup,{position:"right",absolute:!0,size:"md",rounded:!0,icon:pe.faPlus,containerClassName:"nopan",buttonClassName:"nopan",children:t.jsxs(j.List,{className:"nopan nodrag",children:[t.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Tarea"}),t.jsx(j.ListItem,{icon:pe.faArrowUpLeft,iconColor:"neutral",onClick:()=>l({type:"tarea",connectionType:"dependiente"}),children:"Dependiente"}),t.jsx(j.ListItem,{icon:pe.faArrowDownRight,iconColor:"neutral",onClick:()=>l({type:"tarea",connectionType:"hija"}),children:"Hija"}),t.jsx(j.ListSeparator,{}),t.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Flujo de trabajo"}),t.jsx(j.ListItem,{icon:pe.faArrowUpLeft,iconColor:"neutral",onClick:()=>l({type:"plantilla",connectionType:"dependiente"}),children:"Dependiente"}),t.jsx(j.ListItem,{icon:pe.faArrowDownRight,iconColor:"neutral",onClick:()=>l({type:"plantilla",connectionType:"hija"}),children:"Hija"})]})})]})},Mr=({isOpen:e,position:a,onClose:n,createNodeFromPopup:s,parentNodeInfo:o})=>{const[i,r]=p.useState(!1),[c,d]=p.useState(!1),[l,u]=p.useState(null);if(!e)return null;const m=(x,y)=>{u({type:x,connectionType:y}),x==="tarea"?r(!0):x==="plantilla"&&d(!0)},g=()=>{r(!1),u(null),n()},w=()=>{d(!1),u(null),n()},f=x=>{l&&s(l.type,l.connectionType,x),g()},h=x=>{l&&x&&s(l.type,l.connectionType,x),w()};return t.jsxs(t.Fragment,{children:[!i&&!c&&t.jsx("div",{className:"tw-fixed tw-inset-0 tw-z-50",onClick:n}),!i&&!c&&t.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:t.jsx("div",{className:"tw-p-2",children:t.jsxs(j.List,{children:[t.jsx("p",{className:"ui-text-sm ui-p-4 ui-gap-4 tw-font-medium tw-text-neutral-300",children:"Tarea"}),t.jsx(j.ListItem,{icon:pe.faArrowUpLeft,iconColor:"neutral",onClick:()=>m("tarea","dependiente"),children:"Dependiente"}),t.jsx(j.ListItem,{icon:pe.faArrowDownRight,iconColor:"neutral",onClick:()=>m("tarea","hija"),children:"Hija"}),t.jsx(j.ListSeparator,{}),t.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Flujo de trabajo"}),t.jsx(j.ListItem,{icon:pe.faArrowUpLeft,iconColor:"neutral",onClick:()=>m("plantilla","dependiente"),children:"Dependiente"})]})})}),i&&l&&t.jsx(ws,{isOpen:i,onClose:g,onSuccess:f,nodeDataType:{id:"",type:l.type,connectionType:l.connectionType},parentNodeInfo:o}),c&&l&&t.jsx(xs,{isOpen:c,onClose:w,onSuccess:h,nodeDataType:{id:"",type:l.type,connectionType:l.connectionType},parentNodeInfo:o})]})};function Lr({reactFlowWrapper:e,nodes:a}){const{setViewport:n,getViewport:s}=ne.useReactFlow(),{zoom:o}=ne.useViewport(),i=Math.round(o*100),[r,c]=p.useState([]),[d,l]=p.useState(-1),[u,m]=p.useState(!1),[g,w]=p.useState(0);p.useLayoutEffect(()=>{const F=e==null?void 0:e.current;if(F){const q=F.getBoundingClientRect();w(q.width)}},[e]);const f=p.useMemo(()=>{var S;if(!a||a.length===0)return{x:0,y:0,zoom:1};const F=a.find(v=>{var R;return(R=v==null?void 0:v.data)==null?void 0:R.main})??a[0];return{x:(g||(typeof window<"u"?window.innerWidth:0))/2-(((S=F==null?void 0:F.position)==null?void 0:S.x)??0),y:20,zoom:1}},[a,g]),h=p.useCallback(F=>{if(!u){const q=[...r.slice(0,d+1),F];c(q),l(q.length-1)}},[r,d,u]),x=p.useCallback(()=>{if(u)return;const F=s(),q=Math.min(F.zoom*1.2,2);h(F),m(!0),n({x:F.x,y:F.y,zoom:q}),setTimeout(()=>m(!1),100)},[s,n,h,u]),y=p.useCallback(()=>{if(u)return;const F=s(),q=Math.max(F.zoom/1.2,.5);h(F),m(!0),n({x:F.x,y:F.y,zoom:q}),setTimeout(()=>m(!1),100)},[s,n,h,u]),b=p.useCallback(()=>{if(u)return;const F=s();Math.abs(F.zoom-1)>.01&&h(F),m(!0),n({x:F.x,y:F.y,zoom:1}),setTimeout(()=>m(!1),100)},[s,n,h,u]),C=p.useCallback(()=>{if(u||d<=0)return;const F=r[d-1];m(!0),n(F),l(d-1),setTimeout(()=>m(!1),100)},[d,r,n,u]);return p.useEffect(()=>{r.length===0&&(c([{zoom:1,x:0,y:0}]),l(0))},[r.length]),{isReady:g!==0&&Array.isArray(a)&&a.length>0,defaultViewport:f,zoomPercentage:i,handleZoomIn:x,handleZoomOut:y,handleZoomTo100:b,handleDoubleClick:C}}const Or=e=>{var i,r;const a=((i=e.data)==null?void 0:i.isInternal)||!1,n=(r=e.data)==null?void 0:r.originalGroupId,s=e.selected||!1,o=c=>{if(c.preventDefault(),c.stopPropagation(),n){const l=Ne.getState().collapseGroup;l&&l(n)}};return t.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 ${s?"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:[t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[t.jsx(j.Icon,{name:ze.faFlag,size:"sm",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,background:!0,padding:"md"}),t.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:e.data.clave}),a&&t.jsx(j.Button,{size:"sm",color:"secondary",onClick:o,className:"tw-p-2 nopan nodrag",icon:pe.faMinimize,pill:"pill"})]}),a&&t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:[t.jsx(j.Tag,{color:e.data.estatus==="published"?"success":"warning",label:e.data.estatus==="published"?"Publicado":"Borrador"}),(e.data.updatedAt||e.data.updated_at)&&t.jsx("p",{className:"tw-text-sm tw-text-neutral-500 tw-font-medium",children:new Date(e.data.updatedAt||e.data.updated_at).toLocaleDateString("es-ES")})]}),t.jsx(ne.Handle,{id:"bottom-source",type:"source",position:ne.Position.Bottom,className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white tw-cursor-crosshair"}),t.jsx(ne.Handle,{id:"top-target",type:"target",position:ne.Position.Top,className:"tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white tw-cursor-crosshair"})]})},Br=()=>{const e=p.useCallback((o,i,r,c)=>{const d=(m,g)=>{const w=m.position.x,f=m.position.y,h=120,x=60,y=15;switch(g){case"top-source":case"top-target":return{x:w,y:f-x/2-y};case"bottom-source":case"bottom-target":return{x:w,y:f+x/2+y};case"left-source":case"left-target":return{x:w-h/2-y,y:f};case"right-source":case"right-target":return{x:w+h/2+y,y:f};default:return{x:w,y:f}}},l=d(o,r),u=d(i,c);return Math.sqrt(Math.pow(u.x-l.x,2)+Math.pow(u.y-l.y,2))},[]),a=p.useCallback((o,i)=>{if(o.includes("source")===i.includes("source"))return!1;const r=u=>u.includes("top")?"top":u.includes("bottom")?"bottom":u.includes("left")?"left":u.includes("right")?"right":null,c=r(o),d=r(i);return{top:"bottom",bottom:"top",left:"right",right:"left"}[c]===d},[]),n=p.useCallback((o,i)=>{const r=["top-source","bottom-source","left-source","right-source"],c=["top-target","bottom-target","left-target","right-target"];let d=1/0,l={handle1:r[0],handle2:c[0]};for(const u of r)for(const m of c){if(!a(u,m))continue;const g=e(o,i,u,m);g<d&&(d=g,l={handle1:u,handle2:m})}return l},[e,a]),s=p.useCallback((o,i,r=800)=>Math.sqrt(Math.pow(i.position.x-o.position.x,2)+Math.pow(i.position.y-o.position.y,2))<r,[]);return{findClosestHandles:n,calculateHandleDistance:e,areHandlesCompatible:a,shouldApplyMagneticConnection:s}},qr=e=>{const[a,n]=p.useState(null),[s,o]=p.useState(null),[i,r]=p.useState(!1),c=p.useCallback((g,w,f,h)=>{n({isOpen:!0,nodeId:g,position:w,sourceNodeId:f,sourceHandleId:h})},[]),d=p.useCallback(()=>{n(null)},[]),l=p.useCallback((g,w,f,h,x)=>{r(!0),o({isOpen:!0,sourceNodeId:g,sourceHandleId:f,targetNodeId:w,targetHandleId:h,position:x})},[]),u=p.useCallback(()=>{r(!1),o(null)},[]),m=p.useCallback(()=>{var w,f,h;if(!(a!=null&&a.sourceNodeId))return null;const g=e.find(x=>x.id===a.sourceNodeId);return g?{id:g.id,label:(w=g.data)==null?void 0:w.label,nodeType:(f=g.data)==null?void 0:f.nodeType,connectionType:(h=g.data)==null?void 0:h.connectionType,data:g.data}:null},[a,e]);return{newNodePopup:a,connectionPopup:s,isConnectingExistingNodes:i,openNewNodePopup:c,closeNewNodePopup:d,openConnectionPopup:l,closeConnectionPopup:u,getParentNodeInfo:m,setIsConnectingExistingNodes:r}},Rr=({initialNodes:e,initialEdges:a})=>{const[n,s,o]=ne.useNodesState(jt(e)),[i,r,c]=ne.useEdgesState(a),[d,l]=p.useState(!1),u=p.useCallback(D=>{r(D)},[r]),{toObject:m}=ne.useReactFlow(),{findClosestHandles:g,shouldApplyMagneticConnection:w}=Br(),{updateGraphLayout:f,get:h,update:x}=qe(),y=Oe(D=>D.activeTemplate),b=Oe(D=>D.setActiveTemplate),C=de.useQueryClient(),{removeParentIdFromNodes:k}=nt(),{newNodePopup:F,connectionPopup:q,isConnectingExistingNodes:T,openNewNodePopup:S,closeNewNodePopup:v,openConnectionPopup:R,closeConnectionPopup:K,getParentNodeInfo:J,setIsConnectingExistingNodes:H}=qr(n),{createNodeFromPopup:O,createConnectionFromPopup:E,updateNodeFromPopup:B,updateAfterDeleted:M}=gs({nodes:n,edges:i,setNodes:s,setEdges:u,newNodePopup:F,connectionPopup:q,closeNewNodePopup:v,closeConnectionPopup:K,setIsConnectingExistingNodes:H});p.useEffect(()=>{if(e&&e.length>0){if(!(e.some((L,_)=>{const G=n[_];return G?L.id!==G.id||JSON.stringify(L.position)!==JSON.stringify(G.position)||JSON.stringify(L.data)!==JSON.stringify(G.data):!0})||e.length!==n.filter(L=>{var _;return!((_=L.data)!=null&&_.isInternal)}).length)&&n.length>0)return;const{expandedGroups:A,groupTemplateData:W}=Ne.getState(),I=jt(e),N=new Set(I.map(L=>L.id));let U=n.filter(L=>{var _,G;return((_=L.data)==null?void 0:_.isInternal)&&typeof((G=L.data)==null?void 0:G.originalGroupId)=="string"&&A.has(L.data.originalGroupId)&&N.has(L.data.originalGroupId)});if(U.length>0){const L=I.map(_=>{var G;if(A.has(_.id)){const Y=n.find(ie=>ie.id===_.id),ae=(G=Y==null?void 0:Y.data)==null?void 0:G.expandedDimensions;if(ae)return{..._,style:{..._.style,width:ae.width,height:ae.height},data:{..._.data,isExpanded:!0,expandedDimensions:ae}}}return _});s([...L,...U])}else if(A.size>0){const L=I.map(_=>A.has(_.id)&&W[_.id]?{..._,data:{..._.data,isExpanded:!0,needsReExpansion:!0}}:_);s(L)}else s(I)}else s([])},[e,s]),p.useEffect(()=>{if(!d&&a&&a.length>0){const{expandedGroups:D}=Ne.getState(),A=jt(e),W=new Set(A.map(U=>U.id)),I=i.filter(U=>{var L,_;return((L=U.data)==null?void 0:L.isInternal)&&typeof((_=U.data)==null?void 0:_.originalGroupId)=="string"&&D.has(U.data.originalGroupId)&&W.has(U.data.originalGroupId)}),N=i.filter(U=>{var L,_;return((L=U.data)==null?void 0:L.redirectedToInternal)&&typeof((_=U.data)==null?void 0:_.originalTarget)=="string"&&D.has(U.data.originalTarget)&&W.has(U.data.originalTarget)});if(I.length>0||N.length>0){const U=a.filter(L=>!N.some(_=>{var G;return((G=_.data)==null?void 0:G.originalTarget)===L.target}));u([...U,...I,...N])}else u(a)}},[a,u,d]);const z=p.useCallback((D,A,W=!1)=>{const N=i.filter(_=>_.target===A).length>0;if(i.some(_=>_.source===D&&_.target===A||_.source===A&&_.target===D)&&!W)return j.toast.warning("La tarea destino ya tiene una conexión"),!1;const L=!N;return typeof window<"u"&&(window.validConnectionTypes={dependiente:L,hija:L}),L?!0:(j.toast.warning("La tarea destino ya tiene una conexión de entrada"),!1)},[i]),ee=p.useCallback(D=>{if(!Pr(D.source,D.target))return;Xe(D.source)&&!D.sourceHandle&&(D.sourceHandle=_e.DEFAULT_SOURCE_HANDLE);const A=n.find(I=>I.id===D.source),W=n.find(I=>I.id===D.target);if(A&&W){if(!z(D.source,D.target))return;R(D.source,D.target,D.sourceHandle,D.targetHandle);return}return u(I=>ne.addEdge(D,I))},[n,R,u,z]),V=p.useCallback((D,A)=>{var W;if(!T&&!A.isValid&&A.fromNode){const I=n.find(ae=>ae.id===A.fromNode.id);if((I==null?void 0:I.type)==="group"){j.toast.warning("En una plantilla, no se puede crear una conexión");return}const N=Ir(D),U=document.elementFromPoint(N.x,N.y);if(U!=null&&U.closest(".react-flow__node"))return;const L=crypto.randomUUID(),_=((W=A.fromHandle)==null?void 0:W.id)||_e.DEFAULT_SOURCE_HANDLE,Y=Xe(A.fromNode.id)?_e.DEFAULT_SOURCE_HANDLE:_;S(L,N,A.fromNode.id,Y)}},[T,S,n]),oe=p.useCallback(async D=>{var N,U,L;const A=fs(D),W=D.length>0?(U=(N=D[0])==null?void 0:N.data)==null?void 0:U.id:0;u(_=>_.filter(G=>!A.includes(G.source)&&!A.includes(G.target)));let I;for(const _ of D)try{const G=_.data;if((L=G==null?void 0:G.plantilla)!=null&&L.id){I=G.plantilla.id;break}}catch{}try{u(_=>((async()=>{await M(A,_,I,W)})().catch(G=>{console.error("❌ Error en updateAfterDeleted:",G)}),_))}catch(_){console.error("❌ Error en onDeleteNode:",_)}},[u,M]),Z=p.useCallback(async D=>{var W,I,N,U,L,_,G,Y,ae,ie,X,se,re,le;if(!D||D.length===0)return;let A;if(y!=null&&y.id)A=y.id;else for(const te of D){const ue=n.find(he=>he.id===te.source),we=n.find(he=>he.id===te.target);if(ue!=null&&ue.data&&typeof ue.data=="object"&&"plantilla"in ue.data){const he=ue.data.plantilla;if(he!=null&&he.id){A=he.id;break}}if(we!=null&&we.data&&typeof we.data=="object"&&"plantilla"in we.data){const he=we.data.plantilla;if(he!=null&&he.id){A=he.id;break}}}if(!A){console.warn("⚠️ onEdgesDelete - No se pudo obtener templateId");return}try{const te=await h(A);if(!te){console.warn("⚠️ onEdgesDelete - Template no encontrado en IndexedDB");return}const ue=D.map(je=>je.id),we=((N=(I=(W=te.graph_layout)==null?void 0:W.snapshot)==null?void 0:I.edges)==null?void 0:N.filter(je=>{var Fe;return!ue.includes(je.id)&&!((Fe=je.data)!=null&&Fe.isInternal)}))||[],me=(((_=(L=(U=te.graph_layout)==null?void 0:U.snapshot)==null?void 0:L.nodes)==null?void 0:_.filter(je=>{var Fe;return!((Fe=je.data)!=null&&Fe.isInternal)&&!je.parentId}))||[]).map(je=>{const{style:Fe,measured:wt,data:rt,...it}=je,{expandedDimensions:et,isExpanded:Gt,needsReExpansion:ul,...Vt}=rt||{},ks=Fe?{...Fe,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0,Ms=je.data.id===D[0].data.childId?{...Vt,tarea_padre:null,id_t_requerida:null}:Vt;return{...it,style:ks,data:Ms}}),ye=((Y=(G=te.graph_layout)==null?void 0:G.snapshot)==null?void 0:Y.edges)||[];if(!(JSON.stringify(ye)!==JSON.stringify(we)))return;const Se={...te,graph_layout:{id:((ae=te.graph_layout)==null?void 0:ae.id)||0,snapshot:{nodes:me,edges:we,viewport:((X=(ie=te.graph_layout)==null?void 0:ie.snapshot)==null?void 0:X.viewport)||{x:0,y:0,zoom:1}},history:((se=te.graph_layout)==null?void 0:se.history)||[],zoom:((re=te.graph_layout)==null?void 0:re.zoom)||1,position:((le=te.graph_layout)==null?void 0:le.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await k({templateId:A,id:D[0].data.childId}),await x(A,Se),console.log("🗑️ [useFlow] Invalidando caché de la plantilla:",A),await C.invalidateQueries({queryKey:["template",A]}),await C.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlow] Caché invalidado exitosamente"),A===(y==null?void 0:y.id)&&b(Se)}catch(te){console.error("❌ onEdgesDelete - Error al actualizar template layout:",te)}},[n,y,h,x,b,k]),P=p.useCallback(async D=>!D.nodes.some(W=>W.type==="start"||W.id===_e.START_NODE_ID),[]),$=p.useCallback((D,A,W)=>{var L,_,G;const I=n.find(Y=>Y.id===A.id);if(!I)return;if(I.type==="group"&&((L=I.data)!=null&&L.isExpanded)){u(Y=>Y.map(ae=>{if(ae.hidden&&ae.target===A.id){const{hidden:ie,...X}=ae;return X}return ae}));return}let N;if(I.type==="group"?N=y==null?void 0:y.id:(G=(_=A==null?void 0:A.data)==null?void 0:_.plantilla)!=null&&G.id&&(N=A.data.plantilla.id),!N)return;const U=i.map(Y=>{var X,se,re,le,te;if(vt(Y))return Y;const ae=n.find(ue=>ue.id===Y.source),ie=n.find(ue=>ue.id===Y.target);if(ae&&ie){const ue=ae.type==="group"&&((X=ae.data)==null?void 0:X.isExpanded),we=ie.type==="group"&&((se=ie.data)==null?void 0:se.isExpanded),he=(re=ae.data)==null?void 0:re.isInternal,me=(le=ie.data)==null?void 0:le.isInternal,ye=(te=Y.data)==null?void 0:te.redirectedToInternal;if(ue||we||he||me||ye)return Y;if(ae.id===A.id||ie.id===A.id||w(ae,ie,_e.MAGNETIC_CONNECTION_DISTANCE)){const Se=g(ae,ie);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(U))u(U),setTimeout(()=>{const Y=m();f(N,Y)},100);else{const Y=m();f(N,Y)}},[n,i,y,f,m,u,g,w]),Q=p.useCallback(D=>{o(D);const A=Ar(D);if(A.length>0){const W=A.filter(I=>{var U;const N=n.find(L=>L.id===I);return(N==null?void 0:N.type)==="group"&&((U=N==null?void 0:N.data)==null?void 0:U.isExpanded)});if(W.length>0){u(I=>I.map(N=>{var _;const U=W.includes(N.target),L=!((_=N.data)!=null&&_.redirectedToInternal);return U&&L?{...N,hidden:!0}:N}));return}l(!0),setTimeout(()=>{const I=i.map(U=>{var G,Y,ae,ie;if(vt(U))return{...U};const L=n.find(X=>X.id===U.source),_=n.find(X=>X.id===U.target);if(L&&_){const X=L.type==="group"&&((G=L.data)==null?void 0:G.isExpanded),se=_.type==="group"&&((Y=_.data)==null?void 0:Y.isExpanded),re=(ae=L.data)==null?void 0:ae.isInternal,le=(ie=_.data)==null?void 0:ie.isInternal;if(X||se||re||le)return{...U};if(w(L,_,_e.MAGNETIC_CONNECTION_DISTANCE)){const te=g(L,_);if(te!=null&&te.handle1&&(te!=null&&te.handle2)&&(U.sourceHandle!==te.handle1||U.targetHandle!==te.handle2))return{...U,sourceHandle:te.handle1,targetHandle:te.handle2}}}return{...U}});if(i.some((U,L)=>{const _=I[L];return U.sourceHandle!==_.sourceHandle||U.targetHandle!==_.targetHandle})){const U=I.map(L=>({...L,id:L.id}));u(U)}setTimeout(()=>{l(!1)},200)},0)}},[o,i,n,u,g,w,l]);return{nodes:n,edges:i,newNodePopup:F,connectionPopup:q,setNodes:s,setEdges:u,onEdgesChange:c,onConnect:ee,onConnectEnd:V,onDeleteNode:oe,onEdgesDelete:Z,onBeforeDelete:P,handleNodesChange:Q,onDragEnd:$,getParentNodeInfo:J,isProtectedConnection:vt,isStartNode:Xe,createNodeFromPopup:O,updateNodeFromPopup:B,closeNewNodePopup:v,createConnectionFromPopup:E,closeConnectionPopup:K}},zr=({isOpen:e,onClose:a,createConnectionFromPopup:n,availableConnections:s})=>{if(!e)return null;const o=s||{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}},i=(r,c)=>{(r==="tarea"?o.tarea[c]:o.plantilla[c])&&n(r,c)};return t.jsx(t.Fragment,{children:t.jsxs("div",{className:"tw-fixed tw-inset-0 tw-z-50 tw-flex tw-items-center tw-justify-center",children:[t.jsx("div",{className:"tw-bg-black/20 tw-absolute tw-inset-0",onClick:a}),t.jsx("div",{className:"ui-shadow-lg ui-border-default ui-border-1 tw-relative tw-rounded-lg tw-bg-white tw-p-4",children:t.jsx("div",{children:t.jsxs(j.List,{children:[t.jsx("p",{className:"ui-text-sm tw-px-4 tw-font-medium tw-text-neutral-300",children:"Tarea"}),t.jsxs(j.ListItem,{icon:pe.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("tarea","dependiente"),children:["Dependiente ",!o.tarea.dependiente&&"(No disponible)"]}),t.jsxs(j.ListItem,{icon:pe.faArrowDownRight,iconColor:"neutral",onClick:()=>i("tarea","hija"),children:["Hija ",!o.tarea.hija&&"(No disponible)"]}),t.jsx(j.ListSeparator,{}),t.jsx("p",{className:"ui-text-sm tw-px-4 tw-py-2 tw-font-medium tw-text-neutral-300",children:"Flujo de trabajo"}),t.jsxs(j.ListItem,{icon:pe.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("plantilla","dependiente"),children:["Dependiente ",!o.plantilla.dependiente&&"(No disponible)"]})]})})})]})})},$r=({data:e,id:a,selected:n})=>{const{expandedGroups:s}=Ne(),[o,i]=p.useState(!1),r=p.useRef(!1);p.useEffect(()=>{const m=(e==null?void 0:e.needsReExpansion)&&s.has(a),g=(e==null?void 0:e.templateId)||(e==null?void 0:e.id);if(m&&g&&!r.current){r.current=!0;const f=Ne.getState().expandGroup;f&&f(a,g).catch(h=>{console.error("Error al re-expandir grupo:",h),r.current=!1})}s.has(a)||(r.current=!1)},[e,a,s]);const c=async m=>{m.preventDefault(),m.stopPropagation();const g=(e==null?void 0:e.templateId)||(e==null?void 0:e.id);if(g){i(!0);try{const w=Ne.getState(),f=w.expandGroup,h=w.collapseGroup,x=s.has(a);x&&h?h(a):!x&&f&&await f(a,g)}catch{}finally{i(!1)}}},d=s.has(a),l=e==null?void 0:e.expandedDimensions,u=d&&l?{width:l.width,height:l.height,minWidth:l.width,minHeight:l.height}:{minWidth:268,minHeight:80};return t.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":d?"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:[t.jsx(ot,{isLoading:o}),t.jsx(ne.Handle,{id:"top-target",type:"target",position:ne.Position.Top,className:`tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white ${d?"tw-opacity-0 tw-pointer-events-none":""}`,isConnectable:!d}),t.jsx(ne.Handle,{id:"right-target",type:"target",className:`tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white ${d?"tw-opacity-0 tw-pointer-events-none":""}`,position:ne.Position.Right,isConnectable:!d}),t.jsx(ne.Handle,{id:"bottom-target",type:"target",className:`tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white ${d?"tw-opacity-0 tw-pointer-events-none":""}`,position:ne.Position.Bottom,isConnectable:!d}),t.jsx(ne.Handle,{id:"left-target",type:"target",className:`tw-h-[16px] tw-w-[16px] tw-border-neutral-100 !tw-bg-white ${d?"tw-opacity-0 tw-pointer-events-none":""}`,position:ne.Position.Left,isConnectable:!d}),!d&&t.jsxs("div",{className:"ui-flex ui-justify-between ui-gap-x-8 ui-p-16",children:[t.jsx(j.Icon,{name:pe.faChartDiagram,color:"brand",size:"lg"}),t.jsxs("div",{className:"ui-flex ui-flex-col ui-gap-y-4",children:[t.jsx("p",{className:"ui-text-primary ui-font-bold tw-leading-none ui-text-body-lg-regular tw-truncate tw-tracking-wider",children:e.clave||e.nombre_plantilla||"N/A"}),t.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-4",children:[t.jsx(j.Badge,{size:"sm",theme:"soft",color:e.estatus==="published"?"success":"warning",label:e.estatus==="published"?"Publicado":"Borrador"}),e.updatedAt&&t.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-semibold",children:new Date(e.updatedAt).toLocaleDateString("es-ES")})]})]}),t.jsx("div",{children:t.jsx(j.Button,{size:"sm",color:"secondary",pill:"pill",onClick:c,disabled:o,className:`tw-p-2 ${o?"tw-opacity-50":""} nopan nodrag`,icon:d?Ce.faCompress:Ce.faExpand})})]})]})},Ur=(e,a,n,s)=>{const o=p.useRef(e),i=p.useRef(a);p.useEffect(()=>{o.current=e},[e]),p.useEffect(()=>{i.current=a},[a]);const{expandedGroups:r,groupTemplateData:c,toggleGroupExpansion:d,setGroupTemplateData:l,clearGroupTemplateData:u}=Ne(),m=de.useQueryClient(),{getTemplateWithTasks:g}=is(),{hydrateTasks:w}=ds(),f=p.useCallback(async(b,C)=>{var k,F,q,T;try{await m.invalidateQueries({queryKey:["template",C]});const S=await g(C),v=(q=(F=(k=S==null?void 0:S.graph_layout)==null?void 0:k.snapshot)==null?void 0:F.nodes)==null?void 0:q.filter(_=>{var G,Y;return((G=_.data)==null?void 0:G.isInternal)||_.parentId||((Y=_.id)==null?void 0:Y.includes("-internal-"))});if(v&&v.length>0&&console.warn("⚠️ [expandGroup] Nodos sospechosos en API para plantilla",C,":",v),!((T=S==null?void 0:S.graph_layout)!=null&&T.snapshot))throw new Error(`No se encontraron datos de graph_layout en la plantilla: ${C}`);const R=S.graph_layout.snapshot.nodes||[],K=R.filter(_=>{var X,se;const G=(X=_.data)==null?void 0:X.isInternal,Y=!!_.parentId,ae=(se=_.id)==null?void 0:se.includes("-internal-"),ie=G||Y||ae;return ie&&console.warn("🗑️ [expandGroup] Filtrando nodo corrupto:",{id:_.id,type:_.type,esInterno:G,tieneParentId:Y,tieneInternalEnId:ae}),!ie}),J={...S,graph_layout:{...S.graph_layout,snapshot:{...S.graph_layout.snapshot,nodes:K,edges:(S.graph_layout.snapshot.edges||[]).filter(_=>{var G,Y;return!((G=_.data)!=null&&G.isInternal)&&!((Y=_.id)!=null&&Y.includes("-internal-"))})}}},H=R.length-K.length;H>0?console.warn(`⚠️ [expandGroup] Se filtraron ${H} nodos internos corruptos de la BD para plantilla ${C}`):console.log(`✅ [expandGroup] No se encontraron nodos corruptos en plantilla ${C}`);const O=await w(J),E={...J,hydratedNodes:O,nodes:O||J.graph_layout.snapshot.nodes||[],edges:J.graph_layout.snapshot.edges||[]},B=E.nodes,M=E.edges;if(!B||!M){console.error("❌ No se encontraron nodos o edges en la plantilla:",C);return}l(b,{nodes:B,edges:M,viewport:E.graph_layout.snapshot.viewport||{x:0,y:0,zoom:1}});const z=o.current.find(_=>_.id===b);if(!z){console.error("❌ No se encontró el nodo grupo:",b);return}const ee=B.filter(_=>_.id!==b);let V=1/0,oe=1/0,Z=-1/0,P=-1/0;ee.forEach(_=>{var te,ue,we,he,me,ye;const G=((te=_.position)==null?void 0:te.x)||0,Y=((ue=_.position)==null?void 0:ue.y)||0,ae=typeof((we=_.style)==null?void 0:we.width)=="number"?_.style.width:((he=_.measured)==null?void 0:he.width)||268,ie=typeof((me=_.style)==null?void 0:me.height)=="number"?_.style.height:((ye=_.measured)==null?void 0:ye.height)||111,X=G-ae/2,se=G+ae/2,re=Y,le=Y+ie;V=Math.min(V,X),oe=Math.min(oe,re),Z=Math.max(Z,se),P=Math.max(P,le)});const $=80,Q=60,D=Z-V,A=P-oe,W=D+$*2,I=A+$*2+Q,N=B.map((_,G)=>{var te,ue;if(_.id===b)return null;const Y=((te=_.position)==null?void 0:te.x)||0,ae=((ue=_.position)==null?void 0:ue.y)||0,ie=Y-V+$,X=ae-oe+$+Q,se=_.type==="start"||_.id==="start",re=se?{..._.data,estatus:z.data.estatus,updatedAt:z.data.updatedAt,createdAt:z.data.createdAt,isInternal:!0,originalGroupId:b,originalNodeId:_.id}:{..._.data,isInternal:!0,originalGroupId:b,originalNodeId:_.id};return{..._,id:`${b}-internal-${_.id}`,parentId:b,extent:"parent",type:_.type==="group"?"main":_.type,position:{x:ie,y:X},style:{..._.style},data:re,draggable:!1,selectable:se,selected:!1,deletable:!1,connectable:!1,focusable:se,zIndex:999}}).filter(Boolean),U=M.map(_=>{const G=N.some(ie=>ie&&ie.id===`${b}-internal-${_.source}`),Y=N.some(ie=>ie&&ie.id===`${b}-internal-${_.target}`);return!G||!Y?null:{..._,id:`${b}-internal-${_.id}`,source:`${b}-internal-${_.source}`,target:`${b}-internal-${_.target}`,style:{..._.style},data:{..._.data,isInternal:!0,originalGroupId:b}}}).filter(Boolean),L=N.find(_=>{var G;return _&&((G=_.data)==null?void 0:G.originalNodeId)==="start"});L&&s(_=>_.map(G=>G.target===b?{...G,target:L.id,targetHandle:"top-target",data:{...G.data,redirectedToInternal:!0,originalTarget:b,originalTargetHandle:G.targetHandle}}:G)),d(b),n(_=>[..._.map(Y=>{if(Y.id===b){const{needsReExpansion:ae,...ie}=Y.data||{};return{...Y,style:{...Y.style,width:W,height:I},data:{...ie,isExpanded:!0,expandedDimensions:{width:W,height:I}},zIndex:1e3}}return Y}),...N]),s(_=>[..._,...U])}catch(S){console.error("❌ Error al expandir el grupo:",S)}},[m,g,w,l,d,n,s]),h=p.useCallback(b=>{var v,R;const C=o.current,k=i.current,F=C.find(K=>K.id===b),q=((v=F==null?void 0:F.data)==null?void 0:v.templateId)||((R=F==null?void 0:F.data)==null?void 0:R.id),T=C.filter(K=>!K.id.startsWith(`${b}-internal-`)&&K.parentId!==b).map(K=>K.id===b?{...K,style:{...K.style,width:void 0,height:void 0},data:{...K.data,isExpanded:!1,expandedDimensions:void 0},zIndex:void 0}:K),S=k.filter(K=>!K.id.startsWith(`${b}-internal-`)).map(K=>{var J,H;if((J=K.data)!=null&&J.redirectedToInternal&&((H=K.data)==null?void 0:H.originalTarget)===b){const{redirectedToInternal:O,originalTarget:E,originalTargetHandle:B,...M}=K.data;return{...K,target:b,targetHandle:B||K.targetHandle,data:M}}return K});n(T),s(S),d(b),u(b),q&&m.invalidateQueries({queryKey:["template",q]})},[n,s,d,u,m]),x=p.useCallback(async(b,C)=>{r.has(b)?h(b):await f(b,C)},[r,f,h]),y=p.useCallback(b=>r.has(b),[r]);return{expandGroup:f,collapseGroup:h,toggleGroup:x,isGroupExpanded:y,groupTemplateData:c}},Hr=()=>{const{getNodes:e,setNodes:a,screenToFlowPosition:n,setCenter:s}=ne.useReactFlow(),{copiedNodes:o,setCopiedNodes:i,getViewMode:r}=Ne(),{activeTemplate:c,setActiveTemplate:d}=Oe(),{updateGraphLayout:l,get:u,update:m}=qe(),g=c!=null&&c.id?r(c.id):"readonly",w=p.useCallback(()=>`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,[]),f=p.useCallback(()=>e().filter(T=>T.selected).filter(T=>!(T.type==="start"||T.id==="start"||T.type==="group")),[e]),h=p.useCallback(()=>{if(g==="readonly"){j.toast.error("No puedes copiar tareas en modo solo lectura");return}if(!c){j.toast.error("No hay una plantilla activa");return}const k=f();if(k.length===0){const q=e().filter(T=>T.selected);if(q.length>0){const T=q.some(v=>v.type==="group"),S=q.some(v=>v.type==="start"||v.id==="start");T?j.toast.error("Las plantillas conectadas no pueden ser copiadas"):S&&j.toast.error("El nodo de inicio no puede ser copiado")}else j.toast.error("No hay tareas seleccionadas para copiar");return}const F=k.map(q=>{const{selected:T,...S}=q;return{...S,data:{...S.data,_originalTemplateId:c.id}}});i(F),j.toast.success(`${k.length} ${k.length===1?"tarea copiada":"tareas copiadas"} con éxito`)},[g,c,f,e,i]),x=p.useCallback(async k=>{if(g==="readonly"){j.toast.error("No puedes pegar tareas en modo solo lectura");return}if(!c){j.toast.error("No hay una plantilla activa");return}if(o.length===0){j.toast.error("No hay tareas copiadas para pegar");return}const F=e();let q={x:0,y:0};if(k)q=n({x:k.x,y:k.y});else if(F.length>0){const H=F.reduce((E,B)=>E+B.position.x,0)/F.length,O=F.reduce((E,B)=>E+B.position.y,0)/F.length;q={x:H+50,y:O+100}}const T=o[0],S=q.x-T.position.x,v=q.y-T.position.y,R=o.map((H,O)=>{const E=w(),B=-(Date.now()+O),M=H.data.plantilla&&typeof H.data.plantilla=="object"?{...H.data.plantilla,id:c.id}:{id:c.id},{id:z,...ee}=H.data,V={...ee,id:B,reference_graph:E,plantilla:M,parent:{data:{id:null}},_originalTemplateId:void 0};return{...H,id:E,position:{x:H.position.x+S,y:H.position.y+v},data:V,selected:!0}}),J=[...F.map(H=>({...H,selected:!1})),...R];if(a(J),c.id)try{const H=await u(c.id);if(!H)return;const O=R.filter(B=>B.type!=="start"&&B.type!=="group").map(B=>{const M=B.data;return{id:M.id,reference_graph:B.id,nombre:M.nombre||M.texto_corto||"Tarea sin nombre",texto_corto:M.texto_corto||"",texto_largo:M.texto_largo||"",prioridad:M.prioridad??0,nivel_dificultad:M.nivel_dificultad??0,dias_duracion:M.dias_duracion??0,plantilla:{id:c.id},parent:{data:{id:null}},tareas:[],plantilla_dependents:M.plantilla_dependents||[],start:M.start||!1,es_grupo:M.es_grupo||!1,optional:M.optional||!1,subtask_completadas:M.subtask_completadas||0,subtask_totales:M.subtask_totales||0}}),E={...H,tarea_plantillas:[...H.tarea_plantillas,...O],estatus:"dirty",updatedAt:new Date().toISOString()};await m(c.id,E),d(E),setTimeout(async()=>{await l(c.id,{nodes:J,edges:[]})},50)}catch(H){console.error("Error al actualizar template en IndexedDB:",H)}if(R.length>0){const H=R.reduce((E,B)=>E+B.position.x,0)/R.length,O=R.reduce((E,B)=>E+B.position.y,0)/R.length;s(H,O,{zoom:1,duration:800})}j.toast.success(`${R.length} ${R.length===1?"tarea pegada":"tareas pegadas"} con éxito`)},[g,c,o,e,a,n,s,w,l,u,m,d]),y=p.useCallback(()=>o.length>0,[o]),C=f().length>0;return{handleCopy:h,handlePaste:x,hasCopiedNodes:y,hasSelectableNodes:C,copiedNodesCount:o.length}},Kr={main:Dr,plus:kr,start:Or,group:$r},Wr=[.5,0],Gr=({initialNodes:e,initialEdges:a,debugEvents:n=!1})=>{const s=p.useRef(null),{nodes:o,edges:i,onEdgesChange:r,onConnect:c,onConnectEnd:d,onBeforeDelete:l,onDeleteNode:u,onEdgesDelete:m,handleNodesChange:g,newNodePopup:w,getParentNodeInfo:f,createNodeFromPopup:h,closeNewNodePopup:x,connectionPopup:y,createConnectionFromPopup:b,closeConnectionPopup:C,onDragEnd:k,setNodes:F,setEdges:q}=Rr({initialNodes:e,initialEdges:a}),{expandGroup:T,collapseGroup:S}=Ur(o,i,F,q),{handleCopy:v,handlePaste:R,hasCopiedNodes:K,copiedNodesCount:J}=Hr();p.useEffect(()=>{if(!n)return;const te=me=>{console.log("🔍 [DEBUG] KeyDown:",{key:me.key,code:me.code,shiftKey:me.shiftKey,ctrlKey:me.ctrlKey,metaKey:me.metaKey,altKey:me.altKey,target:me.target,defaultPrevented:me.defaultPrevented,bubbles:me.bubbles,timestamp:new Date().toISOString()})},ue=me=>{console.log("🔍 [DEBUG] KeyUp:",{key:me.key,code:me.code,shiftKey:me.shiftKey,timestamp:new Date().toISOString()})},we=me=>{var ye,De;console.log("🔍 [DEBUG] Click:",{button:me.button,shiftKey:me.shiftKey,ctrlKey:me.ctrlKey,metaKey:me.metaKey,altKey:me.altKey,target:(ye=me.target)==null?void 0:ye.tagName,targetClass:(De=me.target)==null?void 0:De.className,defaultPrevented:me.defaultPrevented,bubbles:me.bubbles,timestamp:new Date().toISOString()})},he=me=>{console.log("🔍 [DEBUG] MouseDown:",{button:me.button,shiftKey:me.shiftKey,ctrlKey:me.ctrlKey,metaKey:me.metaKey,defaultPrevented:me.defaultPrevented,timestamp:new Date().toISOString()})};return document.addEventListener("keydown",te,!0),document.addEventListener("keyup",ue,!0),document.addEventListener("click",we,!0),document.addEventListener("mousedown",he,!0),console.log("🔍 [DEBUG] Event listeners activados. Presiona Shift + Click en un nodo para ver los eventos."),()=>{document.removeEventListener("keydown",te,!0),document.removeEventListener("keyup",ue,!0),document.removeEventListener("click",we,!0),document.removeEventListener("mousedown",he,!0),console.log("🔍 [DEBUG] Event listeners desactivados.")}},[n]);const O=o.filter(te=>!(!te.selected||te.type==="start"||te.id==="start"||te.type==="group")).length,E=O>0,B=p.useRef(T),M=p.useRef(S);p.useEffect(()=>{B.current=T,M.current=S},[T,S]),p.useEffect(()=>{const te=async(we,he)=>{B.current&&await B.current(we,he)},ue=we=>{M.current&&M.current(we)};Ne.setState({expandGroup:te,collapseGroup:ue})},[]);const{zoomPercentage:z,handleZoomIn:ee,handleZoomOut:V,handleZoomTo100:oe,handleDoubleClick:Z}=Lr({reactFlowWrapper:s,nodes:o}),{getViewMode:P}=Ne(),{activeTemplate:$}=Oe(),D=($!=null&&$.id?P($.id):"readonly")==="readonly";p.useEffect(()=>{if(D)return;const te=ue=>{const we=ue.target;we.tagName==="INPUT"||we.tagName==="TEXTAREA"||we.isContentEditable||((ue.ctrlKey||ue.metaKey)&&ue.key==="c"&&(ue.preventDefault(),v()),(ue.ctrlKey||ue.metaKey)&&ue.key==="v"&&(ue.preventDefault(),R()))};return document.addEventListener("keydown",te),()=>{document.removeEventListener("keydown",te)}},[v,R,D]);const A=p.useCallback((te,ue)=>{const we=te.target;we.tagName==="BUTTON"||we.closest("button")||we.closest('[role="button"]')||we.classList.contains("nopan")||we.classList.contains("nodrag")},[]),W=p.useCallback(te=>{const ue=te.filter(we=>{var he,me;if(we.type==="position"&&we.dragging===!1){const ye=o.find(De=>De.id===we.id);if(ye&&we.position){const De=Math.abs((we.position.x||0)-(((he=ye.position)==null?void 0:he.x)||0)),Se=Math.abs((we.position.y||0)-(((me=ye.position)==null?void 0:me.y)||0));if(De<3&&Se<3)return!1}}return!0});ue.length>0&&g(ue)},[g,o]),I=D?void 0:r,N=D?void 0:W,U=D?void 0:c,L=D?void 0:d,_=D?void 0:l,G=D?void 0:k,Y=D?void 0:u,ae=D?void 0:m,ie=D?null:["Backspace","Delete"],re=D?{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},le=()=>{if(y)return{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}}};return t.jsxs("div",{className:"wrapper",ref:s,style:{width:"100%",height:"100vh"},children:[t.jsxs(ne.ReactFlow,{nodes:o,edges:i,nodeTypes:Kr,onEdgesChange:I,onNodesChange:N,onConnect:U,onConnectEnd:L,onBeforeDelete:_,onNodeDragStop:G,onNodesDelete:Y,onEdgesDelete:ae,onNodeClick:A,...re,fitView:!0,fitViewOptions:{padding:2},nodeOrigin:Wr,defaultEdgeOptions:{type:"smoothstep"},connectionLineType:ne.ConnectionLineType.SmoothStep,deleteKeyCode:ie,multiSelectionKeyCode:D?null:"Shift",selectionOnDrag:!1,panOnDrag:D?!0:[0],nodeClickDistance:15,selectNodesOnDrag:!1,nodeDragThreshold:10,autoPanOnNodeDrag:!1,autoPanOnConnect:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",children:[t.jsx(ne.Background,{}),!D&&t.jsx(ne.Panel,{position:"bottom-left",className:"tw-m-0",children:t.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:[t.jsx("div",{className:"tw-font-semibold tw-text-neutral-900 tw-mb-2",children:"Atajos de teclado"}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-1",children:[t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[t.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"Shift"}),t.jsx("span",{children:"+ clic para seleccionar múltiples tareas"})]}),t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[t.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"Ctrl"}),t.jsx("span",{children:"+"}),t.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"C"}),t.jsx("span",{children:"Copiar"})]}),t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[t.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"Ctrl"}),t.jsx("span",{children:"+"}),t.jsx("kbd",{className:"tw-px-2 tw-pt-0.5 tw-bg-neutral-100 tw-rounded tw-text-sm",children:"V"}),t.jsx("span",{children:"Ppegar"})]})]})]})}),t.jsx(ne.Panel,{position:"top-left",className:"tw-m-0",children:t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-2",children:[t.jsxs("div",{children:[$.estatusFromStrapi===Ee.PUBLISHED&&t.jsx(j.Tag,{color:"success",label:"Publicado"}),$.estatusFromStrapi===Ee.DRAFT&&t.jsx(j.Tag,{color:"warning",label:"Borrador"})]}),!D&&O>0&&t.jsxs("p",{className:"tw-text-blue-dark-500 ui-text-xs tw-font-medium",children:[O," ",O===1?"tarea seleccionada":"tareas seleccionadas"]})]})}),t.jsx(ne.Panel,{position:"top-right",className:"tw-m-0",children:t.jsxs("div",{className:"tw-flex tw-gap-4",children:[!D&&t.jsxs(j.ButtonGroup,{children:[t.jsxs(j.Button,{leftSlot:pe.faCopy,onClick:v,disabled:!E,size:"xxs",color:E?"primary":"secondary",title:E?`Copiar ${O} ${O===1?"tarea":"tareas"} (Ctrl+C)`:"Selecciona tareas para copiar (mantén Shift y haz clic)",children:["Copiar ",O>0&&`(${O})`]}),t.jsxs(j.Button,{leftSlot:pe.faFile,size:"xxs",onClick:()=>R(),disabled:!K(),color:K()?"primary":"secondary",title:K()?`Pegar ${J} ${J===1?"tarea":"tareas"} (Ctrl+V)`:"No hay tareas copiadas",children:["Pegar ",J>0&&`(${J})`]})]}),t.jsxs(j.ButtonGroup,{color:"secondary",size:"xxs",children:[t.jsx(j.Button,{icon:pe.faMinus,onClick:V,color:"secondary"}),t.jsxs(j.Button,{onClick:oe,onDoubleClick:Z,color:"secondary",children:[z,"%"]}),t.jsx(j.Button,{icon:pe.faPlus,onClick:ee})]})]})})]}),w&&t.jsx(Mr,{isOpen:w.isOpen,position:w.position,onClose:x,createNodeFromPopup:h,parentNodeInfo:f()}),y&&t.jsx(zr,{isOpen:y.isOpen,onClose:C,createConnectionFromPopup:b,availableConnections:le()})]})},Vr=({initialNodes:e,initialEdges:a,debugEvents:n})=>t.jsx(ne.ReactFlowProvider,{children:t.jsx(Gr,{initialNodes:e,initialEdges:a,debugEvents:n})}),st=Ue.create(e=>({step:1,setStep:a=>e({step:a}),reset:()=>e({step:1})})),Qr=({limit:e})=>{const a=st(r=>r.step),n=st(r=>r.setStep),s=p.useCallback(()=>{a<e&&n(a+1)},[a,n,e]),o=p.useCallback(()=>{a>1&&a<=e&&n(a-1)},[a,n,e]),i=p.useCallback(r=>{r>0&&r<=e&&n(r)},[n,e]);return p.useMemo(()=>({step:a,nextStep:s,prevStep:o,onStepChange:i}),[a,s,o,i])},xa=["fase_plantilla","tipo_plantilla","categoria","tipo_medio","medio_especifico","pertenencia_medio","ubicacion_medio","responsable_impresion"],ba=["fase_plantilla","modo_configuracion","tipo_medio","formato_salida"],ya=["tipo_medio","formato_salida","medio_especifico"],ja={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"]}}},va={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 Kt(e){const[a,n]=p.useState([]),[s,o]=p.useState({}),{setClaveParams:i,templateFormData:r,setTemplateFormData:c,resetTemplateFormData:d,setDisableField:l,setClave:u,claveParams:m,setParamTipo:g}=Ae(),{tasks_api:w}=ge(),f=st(P=>P.step),{data:h,error:x,isSuccess:y,isError:b}=de.useQuery({queryKey:["paramsTipoPlantilla"],queryFn:async()=>{const P=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}),$=await w.get(`/api/params-tipos?${P}`);return $.data?{paramsTiposPlantilla:be($.data.data)}:{paramsTiposPlantilla:[]}},refetchOnWindowFocus:!1});p.useEffect(()=>{x&&b&&console.log(x)},[x,b]),p.useEffect(()=>{if(h&&y){const P=h.paramsTiposPlantilla;n(P)}},[h,y]);const C={fase_plantilla:(P,$)=>{c({fase_plantilla:P}),g({fase_plantilla:$})},tipo_plantilla:(P,$)=>{c({tipo_plantilla:P}),g({tipo_plantilla:$})},modo_configuracion:(P,$)=>{c({modo_configuracion:P}),g({modo_configuracion:$})},categoria:(P,$)=>{c({categoria:P}),g({categoria:$})},formato_salida:(P,$)=>{c({formato_salida:P}),g({formato_salida:$})},tipo_medio:(P,$)=>{c({tipo_medio:P}),g({tipo_medio:$})},medio_especifico:(P,$)=>{c({medio_especifico:P}),g({medio_especifico:$})},responsable_impresion:(P,$)=>{c({responsable_impresion:P}),g({responsable_impresion:$})},pertenencia_medio:(P,$)=>{c({pertenencia_medio:P}),g({pertenencia_medio:$})},ubicacion_medio:(P,$)=>{c({ubicacion_medio:P}),g({ubicacion_medio:$})}},k={fase_plantilla:(P,$)=>i({field:P,value:$}),tipo_plantilla:(P,$)=>i({field:P,value:$}),categoria:(P,$)=>i({field:P,value:$}),tipo_medio:(P,$)=>i({field:P,value:$}),medio_especifico:(P,$)=>i({field:P,value:$}),responsable_impresion:(P,$)=>i({field:P,value:$}),pertenencia_medio:(P,$)=>i({field:P,value:$}),ubicacion_medio:(P,$)=>i({field:P,value:$})},F={Digital:{execute:()=>{const P=a.filter(D=>D.step===3).find(D=>D.key==="responsable_impresion").params_plantillas.find(D=>D.name==="N/A").id,$="step3.responsable_impresion",Q=["responsable_impresion"];c({responsable_impresion:"N/A"}),e($,P),l({fields:Q,value:!0}),i({field:"responsable_impresion",value:"NA"})}},Impreso:{execute:()=>{const P="step3.responsable_impresion",$=["responsable_impresion"];c({responsable_impresion:""}),e(P,""),l({fields:$,value:!1}),i({field:"responsable_impresion",value:""})}}},q={"Sitios Fijos":{execute:()=>J()},"Vallas Móviles":{execute:()=>H()},Indoors:{execute:()=>J()},Camiones:{execute:()=>O()},"Brand Riders":{execute:()=>O()}},T={"Sitios Fijos":{execute:()=>K()},"Vallas Móviles":{execute:()=>K()},Indoors:{execute:()=>K()},Camiones:{execute:()=>{R(),F.Impreso.execute()}},"Brand Riders":{execute:()=>{R(),F.Impreso.execute()}}},S={"Sitios Fijos":{execute:()=>v()},"Vallas Móviles":{execute:()=>R()},Indoors:{execute:()=>v()},Camiones:{execute:()=>R()},"Brand Riders":{execute:()=>R()}},v=()=>{const P=["medio_especifico"],$=r.modo_configuracion,Q=`step${f}.medio_especifico`,D=`step${f}.formato_salida`;l({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0}),l($==="Default"?{fields:P,value:!0}:{fields:P,value:!1}),c({medio_especifico:""}),c({formato_salida:""}),e(Q,""),e(D,""),i({field:"medio_especifico",value:""}),i({field:"formato_salida",value:""})},R=()=>{const P=a.filter(W=>W.step===f).find(W=>W.key==="formato_salida").params_plantillas.find(W=>W.name==="Impreso").id;l({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0});const Q=`step${f}.formato_salida`,D=["formato_salida","medio_especifico"],A=`step${f}.medio_especifico`;c({medio_especifico:""}),c({formato_salida:"Impreso"}),e(Q,P),e(A,""),i({field:"medio_especifico",value:""}),i({field:"tipo_medio",value:r.tipo_medio}),l({fields:D,value:!0})},K=()=>{const P=["formato_salida"],$=`step${f}.formato_salida`,Q={};Q.formato_salida="",c(Q),e($,""),l({fields:P,value:!1})},J=()=>{const P=["formato_salida","medio_especifico"],$=`step${f}.formato_salida`,Q={};Q.formato_salida="",c(Q),e($,""),l({fields:P,value:!1})},H=()=>{const P=["formato_salida"],$=["medio_especifico"],Q=`step${f}.formato_salida`,D=`step${f}.medio_especifico`,A={};A.formato_salida="",A.medio_especifico="",c(A),e(Q,""),e(D,""),l({fields:P,value:!1}),l({fields:$,value:!0})},O=()=>{const P=a.filter(A=>A.step===f).find(A=>A.key==="formato_salida").params_plantillas.find(A=>A.name==="Impreso").id,$=`step${f}.formato_salida`,Q=`step${f}.medio_especifico`,D=["formato_salida","medio_especifico"];c({formato_salida:"Impreso"}),e($,P),e(Q,""),l({fields:D,value:!0}),F.Impreso.execute()},E=(P,$)=>{Object.keys(ja).includes(P)&&ja[P][$].fieldsToClear.forEach(A=>{const W={};W[A]="",c(W),i({field:A,value:""}),e&&[...new Set(a.map(N=>N.step))].forEach(N=>{const U=`step${N}.${A}`;e(U,"")})})},B=(P,$,Q)=>P==="modo_configuracion"&&Q?va[P][Q][$].fieldsToEnableDisable:va[P][$].fieldsToEnableDisable,M=P=>a.filter($=>$.step===P),z=P=>{var $;return s[P]||(($=a.find(Q=>Q.key===P))==null?void 0:$.params_plantillas)},ee=(P,$)=>{var D,A,W,I;let Q=[];P==="Sitios Fijos"?$==="Preventa"?Q=(D=a.find(N=>N.key==="medio_especifico"))==null?void 0:D.params_plantillas.filter(N=>N.tipomedio_nombre==="OOH"&&N.name==="PANTALLA DIGITAL"):$==="Venta"&&(Q=(A=a.find(N=>N.key==="medio_especifico"))==null?void 0:A.params_plantillas.filter(N=>N.tipomedio_nombre==="OOH")):P==="Indoors"?Q=(W=a.find(N=>N.key==="medio_especifico"))==null?void 0:W.params_plantillas.filter(N=>N.tipomedio_nombre==="InDoor"):Q=(I=a.find(N=>N.key==="medio_especifico"))==null?void 0:I.params_plantillas,o(N=>({...N,medio_especifico:Q}))},V=(P,$)=>{const Q=P.key;if(ya.includes(Q)&&Q==="tipo_medio"){const D=$.label,A=r.fase_plantilla,W=r.modo_configuracion;if(A==="Preventa"){ee(D,A);return}else if(W==="Especifico"){ee(D,A);return}}},oe=(P,$,Q)=>{const D=P.params_plantillas.find(A=>P.key==="categoria"?A.reference_id===$.value:A.id===$.value);if(D){const A=P.key,W=$.label;if(C[A](W,Q),ba.includes(A))if(E(A,W),A==="fase_plantilla"){const I=W,N=B(A,I);l({fields:["categoria","modo_configuracion","tipo_plantilla"],value:!0}),N.length>0&&l({fields:N,value:!1}),I==="Preventa"&&l({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(A==="modo_configuracion"){const I=W,N=r.fase_plantilla,U=B(A,I,N);l({fields:["medio_especifico","formato_salida"],value:!0}),U.length>0&&l({fields:U,value:!1}),N==="Preventa"&&l({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(A==="tipo_medio"){const I=W,N=r.modo_configuracion;r.fase_plantilla==="Venta"?N==="Especifico"?q[I].execute():T[I].execute():S[I].execute()}else if(A==="formato_salida")F[W].execute();else{const I=B(A,W);I.length>0&&l({fields:I,value:!1})}if(xa.includes(A)){let I="",N="";if(A==="formato_salida"){const U=r.modo_configuracion,L=W;N="tipo_medio",I=U==="Default"&&L==="Digital"?I="DDG":I="DRP"}else N=A,I=D.abbreviation;k[N](N,I)}ya.includes(A)&&V(P,$)}},Z=()=>{if(r){const P=r.fase_plantilla;if(P==="Preventa"){const $=r.modo_configuracion,Q=m.fase_plantilla||"XX";let D=null;if($==="Default")D=m.tipo_medio||"XXX";else{const W=r.tipo_medio;["Vallas Móviles","Camiones","Brand Riders"].includes(W)?D=m.tipo_medio||"XXX":D=m.medio_especifico||"XXX"}const A=`${Q}-${D}`;u(A)}if(P==="Venta"){const $=m.fase_plantilla||"XX",Q=m.tipo_plantilla||"XXX",D=m.categoria||"XX",A=m.medio_especifico||m.tipo_medio||m.modo_configuracion||"XXX",W=m.responsable_impresion||"XX",I=m.pertenencia_medio||"X",N=m.ubicacion_medio||"X",U=`${$}-${Q}-${D}-${A}-${W}-${I}-${N}`;u(U)}}};return p.useEffect(()=>{Z()},[m]),{templateFields:a,getFieldsByStep:M,dropdownFunctionsUpdateClave:k,fieldsForUpdateClave:xa,resetTemplateFormData:d,fieldsWithDisableTrigger:ba,getFieldsToDisable:B,handleOptionSelected:oe,getFilteredOptions:z,dropdownFunctionsUpdateFormData:C}}const Wt=()=>{const{control:e,setValue:a}=Ie.useFormContext(),n=st(l=>l.step),{getFieldsByStep:s,handleOptionSelected:o,getFilteredOptions:i}=Kt(a),{disabledFields:r}=Ae(),c=p.useMemo(()=>s(n),[n,s]),d=l=>`El campo ${l.charAt(0).toLocaleLowerCase()+l.slice(1)} es requerido`;return c.map(l=>{const u=`step${l.step}.${l.key}`,m=l.label,w=i(l.key).map(f=>({label:f.name,value:l.key==="categoria"?f.reference_id:f.id}));return t.jsx(Ie.Controller,{name:u,control:e,rules:{required:{value:!r[l.key],message:d(m)},validate:f=>r[l.key]||f?!0:d(m)},render:({field:f,fieldState:{error:h}})=>t.jsx("div",{children:t.jsx(j.Dropdown,{label:m,value:f.value,onValueChange:x=>{f.onChange(x)},error:h==null?void 0:h.message,options:w,onOptionSelect:x=>{o(l,x,l.id)},disabled:r[l.key]||!1})})},l.id)})},Xr=()=>t.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:t.jsx(Wt,{})}),Yr=()=>t.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:t.jsx(Wt,{})}),Jr=()=>t.jsx("div",{className:"tw-flex tw-flex-col tw-gap-y-4",children:t.jsx(Wt,{})}),Zr=({step:e})=>t.jsxs("div",{className:"tw-flex tw-min-h-[27rem] tw-flex-col tw-gap-y-4",children:[e===1&&t.jsx(Xr,{}),e===2&&t.jsx(Yr,{}),e===3&&t.jsx(Jr,{})]}),ei=e=>{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 e.reduce((n,s)=>{const o=`step${s.step}`,i=a[o];return i&&i.includes(s.key)&&(n[o]||(n[o]={}),n[o][s.key]=""),n},{})},ti=e=>{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(s=>{n[s]={},a[s].forEach(o=>{var r;const i=(r=e[s])==null?void 0:r[o];n[s][o]=i!==void 0?i:""})}),n},ai=e=>e&&e.status===400?{failureLevel:"strapi",errorMessage:"Error al procesar la solicitud",technicalDetails:e.message}:e&&e.status===401?{failureLevel:"authentication",errorMessage:"Error de autenticación",technicalDetails:`Token expirado o inválido: ${e.message}`}:e&&e.status===500?{failureLevel:"strapi",errorMessage:"Error de servidor",technicalDetails:`Error en el servidor de Strapi: ${e.message}`}:{failureLevel:"unknown",errorMessage:"Error inesperado al crear la plantilla",technicalDetails:`Error desconocido: ${e.message}`};function si(e,a){const{clave:n,paramsTipo:s,currentTemplateForEdit:o,isEditTemplate:i,setDisableField:r,setClaveParams:c,isDuplicateTemplate:d,templateFormData:l}=Ae(),{tasks_api:u}=ge(),{getFieldsByStep:m,dropdownFunctionsUpdateFormData:g,templateFields:w}=Kt(),f=()=>{var q;try{const T={},S=e(),v=ti(S),{step1:R}=v,K=[];T.clave=n,R.categoria!=""&&(T.categoria=R.categoria);for(const[J,H]of Object.entries(v))for(const[O,E]of Object.entries(H)){const B={id:null,params_tipo:{id:null}};if(E!=""){const M=s[O];if(O==="categoria"){const z=w.find(V=>V.key==="categoria"),ee=(q=z==null?void 0:z.params_plantillas)==null?void 0:q.find(V=>V.reference_id===E);B.id=ee==null?void 0:ee.id}else B.id=E;B.params_tipo.id=M,K.push(B)}}return Object.keys(K).length>0&&(T.params_plantillas=K),T}catch(T){console.log(T)}},h=async q=>{var T;try{let S=null;return i?S=await u.put(`/api/plantillas/${o.id}`,{data:q}):S=await u.post("/api/plantillas",{data:q}),S.data?be(S.data):null}catch(S){throw console.error("Error en saveTemplateToStrapi:",{error:S.message,status:(T=S.response)==null?void 0:T.status}),S}},x=async q=>{var T;try{const S=Pe.stringify({filters:{plantilla:{id:q}},populate:{graph_layout:!0}},{encodeValuesOnly:!0}),v=await u.get(`/api/plantillas/plantilla-tareas-grafico?${S}`);return v.data?be(v.data.data):null}catch(S){throw console.error("Error en getTemplateWithTasks:",{error:S.message,status:(T=S.response)==null?void 0:T.status}),S}},y=async(q,T,S)=>{var v,R,K,J,H,O,E;try{const B=await x(q),M=await x(T);if(!B||!B.tarea_plantillas)return console.warn("No se encontraron tareas para duplicar en la plantilla original"),null;const z=new Map,ee=new Map;let V=1;B.tarea_plantillas.forEach(Q=>{let D=null;Q.start?D=S:D=-(Date.now()+V++),z.set(Q.id,D)}),(R=(v=B.graph_layout)==null?void 0:v.snapshot)!=null&&R.nodes&&B.graph_layout.snapshot.nodes.forEach(Q=>{const D=`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`;ee.set(Q.id,D)});const oe=B.tarea_plantillas.filter(Q=>!Q.start).map(Q=>{var A,W,I,N;return{id:z.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:((A=Q.equipo)==null?void 0:A.id)||null,responsable:((W=Q.responsable)==null?void 0:W.id)||null,plantilla:{id:T,clave:B.clave,categoria:B.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:z.get((I=Q.id_t_requerida)==null?void 0:I.id)||null,ids_t_dependientes:[],tarea_padre:z.get((N=Q.tarea_padre)==null?void 0:N.id)||null,tareas:[]}});let Z=null;if(B.graph_layout){const Q=M.tarea_plantillas.find(D=>D.start===!0);Z={...B.graph_layout,id:(K=M.graph_layout)==null?void 0:K.id,snapshot:{...B.graph_layout.snapshot,edges:B.graph_layout.snapshot.edges.map(D=>{if(D.source==="start")return{...D,data:{...D.data,childId:oe.find(A=>A.reference_graph===D.target).id,parentId:Q.id}};{const A=oe.find(W=>W.reference_graph===D.target);return{...D,data:{...D.data,childId:A==null?void 0:A.id,parentId:(A==null?void 0:A.id_t_requerida)||(A==null?void 0:A.tarea_padre)}}}}),nodes:((H=(J=B.graph_layout.snapshot)==null?void 0:J.nodes)==null?void 0:H.map(D=>{let A={};return D.type==="start"?A={...D,data:{...D.data,tareaId:Q.id}}:A={...D,data:{tareaId:null}},A}))||[]}}}if(!Z)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 P={graph_layout:Z,tasks:{created:oe,updated:[],deleted:[]}},$=await u.post("/api/tareas/save-tareas-grafico",{data:P});if($.data&&$.status===200){const Q=await x(T),D=new Map;Q.tarea_plantillas.forEach(I=>D.set(I.reference_graph,I.id));let A=Q.graph_layout;return(!((O=A==null?void 0:A.snapshot)!=null&&O.nodes)||A.snapshot.nodes.length===0)&&(console.log("Graph layout vacío, reconstruyendo desde el original..."),A=Z),(E=A==null?void 0:A.snapshot)!=null&&E.nodes&&(A.snapshot.nodes=A.snapshot.nodes.map(I=>{var _;const N={...I,position:I.position||{x:0,y:0}},U=N.id,L=D.get(U);if(L)return{...N,data:{...N.data,id:L,tareaId:L}};if((_=N.data)!=null&&_.tareaId){const G=Q.tarea_plantillas.find(Y=>Y.reference_graph===U);if(G)return{...N,data:{...N.data,id:G.id,tareaId:G.id}}}return N})),await u.put(`/api/plantillas/${T}`,{data:{graph_layout:A}}),await x(T)}return null}catch(B){throw console.error("Error al duplicar las tareas de la plantilla:",B),B}},b=async()=>{var q,T;try{let S=f();const v=await h(S);if(!v)return{success:!1,message:"No se pudo guardar el flujo de trabajo en Strapi",error:"templateData es null"};const R=Pe.stringify({filters:{id:{$eq:v.id}},populate:{tarea_plantillas:{filters:{start:{$eq:!0}}}}},{encodeValuesOnly:!0}),{data:K}=await u.get(`/api/plantillas?${R}`),H=be(K.data)[0].tarea_plantillas[0].id;if(d&&(o!=null&&o.id))try{const E=await y(o.id,v.id,H);return E?{success:!0,message:"Flujo de trabajo duplicado completamente con todas sus tareas",data:E}:{success:!0,message:"Flujo de trabajo creado, pero no se pudieron duplicar las tareas",data:await x(v.id)}}catch(E){return console.error("Error al duplicar tareas:",E),{success:!0,message:"Flujo de trabajo creado, pero hubo un error al duplicar las tareas",data:await x(v.id)}}const O=await x(v.id);return O?{success:!0,message:"Flujo de trabajo creado y sincronizado completamente",data:O}:{success:!1,message:"No se pudieron obtener los datos completos del flujo de trabajo",error:"completeData es null"}}catch(S){const v=ai(((T=(q=S==null?void 0:S.response)==null?void 0:q.data)==null?void 0:T.error)||S);return console.error("Error al guardar el flujo de trabajo: ",{level:v.failureLevel,message:v.errorMessage,technicalDetails:v.technicalDetails}),{success:!1,message:v.errorMessage||"Error al guardar el flujo de trabajo",error:v.technicalDetails||S.message}}},C=()=>{const q=o==null?void 0:o.params_plantillas;if(!(q!=null&&q.length))return;let T={};[1,2,3].forEach(v=>{const R=`step${v}`;T[R]={},m(v).forEach(J=>{var O;const H=q.find(E=>E.params_tipo.key===J.key);if(H){let E=null;if(J.key==="categoria"){const B=(O=J.params_plantillas)==null?void 0:O.find(M=>M.id===H.id);E=(B==null?void 0:B.reference_id)||H.id}else E=H.id;T[R][J.key]=E}})}),a(T)},k=()=>{var T;const q=o==null?void 0:o.params_plantillas;if(q!=null&&q.length)for(const S of q){const{params_tipo:{id:v,key:R},name:K,id:J}=S,H=w.find(E=>E.key===R),O=(T=H==null?void 0:H.params_plantillas)==null?void 0:T.find(E=>E.id===J);g[R]&&g[R](K,v),O&&c({field:R,value:O.abbreviation})}},F=()=>{try{const{fase_plantilla:q,modo_configuracion:T,formato_salida:S,tipo_medio:v}=l;if(q==="Venta")r({fields:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria","tipo_medio"],value:!1}),T==="Default"?(r({fields:["tipo_medio","formato_salida"],value:!1}),r({fields:["medio_especifico"],value:!0}),["Sitios Fijos","Vallas Móviles","Indoors"].includes(v)||r({fields:["formato_salida","medio_especifico"],value:!0}),S==="Digital"?(r({fields:["responsable_impresion"],value:!0}),r({fields:["pertenencia_medio","ubicacion_medio"],value:!1})):r({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!1})):(["Sitios Fijos","Indoors"].includes(v)&&r({fields:["formato_salida","medio_especifico"],value:!1}),["Vallas Móviles"].includes(v)&&(r({fields:["formato_salida"],value:!1}),r({fields:["medio_especifico"],value:!0})),["Camiones","Brand Riders"].includes(v)&&r({fields:["formato_salida","medio_especifico"],value:!0}),S==="Digital"?(r({fields:["responsable_impresion"],value:!0}),r({fields:["pertenencia_medio","ubicacion_medio"],value:!1})):r({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!1}));else if(r({fields:["modo_configuracion"],value:!1}),r({fields:["tipo_plantilla","categoria"],value:!0}),T=="Default"){const R=["formato_salida","medio_especifico","responsable_impresion","pertenencia_medio","ubicacion_medio"];r({fields:["tipo_medio"],value:!1}),r({fields:R,value:!0})}else["Sitios Fijos","Indoors"].includes(v)?(r({fields:["formato_salida"],value:!0}),r({fields:["medio_especifico"],value:!1})):r({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!0})}catch(q){console.error("Error al aplicar reglas de habilitar y deshabilitar campos",q)}};return p.useEffect(()=>{(i||d)&&o&&(C(),k())},[i,d,o]),p.useEffect(()=>{(i||d)&&l&&F()},[i,l,d]),{savePlantilla:b,getTemplateWithTasks:x}}const ni=()=>{const{watch:e,getValues:a}=Ie.useFormContext(),{templateFormData:n,isDuplicateTemplate:s,currentTemplateForEdit:o}=Ae(),[i,r]=p.useState(!1),c=p.useRef(null),d=p.useRef(null),l=p.useRef(!1),u=e();return p.useEffect(()=>{if(!l.current&&s&&o){const g=setTimeout(()=>{c.current=a(),d.current={...n},l.current=!0,r(!1)},500);return()=>clearTimeout(g)}},[s,o,a,n]),p.useEffect(()=>{if(c.current&&d.current&&l.current){const g=a(),w=n,f=JSON.stringify(g)!==JSON.stringify(c.current),h=JSON.stringify(w)!==JSON.stringify(d.current);r(f||h)}},[u,n,a]),{hasChanges:i,resetChanges:()=>{c.current=null,d.current=null,l.current=!1,r(!1)}}},oi=({onReset:e})=>{const{hasChanges:a,resetChanges:n}=ni(),{setHasFormChanges:s}=Ae();return p.useEffect(()=>{s(a)},[a,s]),p.useEffect(()=>{e(n)},[e,n]),null},ri=({isOpen:e,onClose:a})=>{const{step:n,nextStep:s,prevStep:o,onStepChange:i}=Qr({limit:3}),r=st(A=>A.reset),{templateFields:c,resetTemplateFormData:d}=Kt(),{clave:l,resetClave:u,resetDisabledFields:m,isEditTemplate:g,setIsEditTemplate:w,refetch:f,isDuplicateTemplate:h,hasFormChanges:x,setIsDuplicateTemplate:y,setCurrentTemplateForEdit:b}=Ae(),{openTemplate:C}=qe(),[k,F]=p.useState(!1),[q,T]=p.useState(""),[S,v]=p.useState(!1),R=p.useRef(null),K=A=>{R.current=A},J=p.useMemo(()=>ei(c),[c]),H=n===1,O=n===3,E=H?"Cancelar":"Atrás",B=Ie.useForm({mode:"onChange",defaultValues:J}),{trigger:M,reset:z,clearErrors:ee,getValues:V}=B,{savePlantilla:oe}=si(V,z),Z=p.useRef(!1);p.useEffect(()=>{e&&(r(),Z.current=!1)},[e,r]),p.useEffect(()=>{e&&!g&&!h&&!Z.current&&(z(J),d(),Z.current=!0)},[e,g,h,z,J,d]);const P=async()=>{if(await M()){if(n===3){if(!x&&h){T("Ya existe un proceso con éstos parámetros. Modifica al menos uno para poder duplicarlo."),v(!0);return}try{F(!0);const W=await oe();if(W.success){const I=W.data;if(D(),Q(),v(!1),!g)try{await C({template:I,statusTemplate:ve.NEW})}catch(N){console.warn("La plantilla se creó exitosamente pero hubo un problema al abrirla:",N)}f()}else{const{error:I}=W;T(I),v(!0)}}catch(W){console.error("Error inesperado al guardar la plantilla:",W);return}finally{F(!1)}}s()}},$=()=>{T(""),v(!1)},Q=()=>{ee(),z(J),d(),m(),u(),$(),w(!1),y(!1),b(null),R.current&&R.current()},D=()=>{Q(),Z.current=!1,a(),console.log("cerrar modal")};return k?t.jsx(ot,{isLoading:k}):t.jsxs(Ie.FormProvider,{...B,children:[t.jsx(oi,{onReset:K}),t.jsx(j.Modal,{isOpen:e,closeAtCancel:!1,onSuccess:P,cancelButtonText:E,successButtonText:O?g?"Guardar":"Crear":"Continuar",onCancel:H?D:o,onClose:D,size:"sm",iconConfig:{icon:xe.faFilePen},title:g?"Editar flujo de trabajo":"Nuevo flujo de trabajo",children:t.jsxs(j.Modal.Body,{children:[t.jsx("div",{className:"tw-flex tw-w-full tw-overflow-x-auto tw-pb-16 tw-pt-12",children:t.jsx("div",{className:"tw-flex tw-w-full",style:{justifyContent:"center",minWidth:"fit-content"},children:t.jsx(j.Stepper,{currentStep:n-1,onStepChange:A=>i(A+1),steps:[{title:"Paso 1",description:"INFORMACIÓN"},{title:"Paso 2",description:"DETALLES"},{title:"Paso 3",description:"PRODUCCIÓN"}]})})}),t.jsx("div",{className:"tw-flex tw-w-full tw-justify-center",children:t.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-gap-0",children:[t.jsx("div",{className:"tw-bg-[#F0F0F0] tw-rounded-[100px] tw-p-2",style:{width:"fit-content",minWidth:"fit-content"},children:t.jsx("div",{className:"tw-font-sans tw-font-bold tw-py-1 tw-p-[90px]",children:l})}),t.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"})]})}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-y-4 tw-p-16",children:[S&&t.jsx(j.Alert,{open:!0,color:"danger",message:q,className:"tw-mb-6",onClose:$}),t.jsx(Zr,{step:n})]})]})})]})},ii=({isOpen:e,onClose:a,replaceTemplate:n})=>t.jsx(t.Fragment,{children:t.jsx(j.Modal,{isOpen:e,closeAtCancel:!1,cancelButtonText:"Cancelar",successButtonText:"Abrir",onCancel:a,onClose:a,onSuccess:n,size:"sm",iconConfig:{icon:pe.faExclamationTriangle},title:"Límite de flujos de trabajo",children:t.jsx(j.Modal.Body,{children:t.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full ui-p-4 ui-gap-8",children:[t.jsx("div",{className:"tw-flex tw-justify-center tw-w-full",style:{minWidth:"fit-content"},children:t.jsx("div",{className:"tw-flex tw-justify-center tw-items-center tw-gap-[10px] tw-rounded-full ui-p-16",style:{backgroundColor:"#EBEEF9"},children:t.jsx(j.Icon,{name:pe.faExclamationTriangle,size:"lg",color:"blue"})})}),t.jsx("div",{className:"tw-text-center tw-mt-6",children:t.jsx("h2",{className:"tw-text-[24px] tw-font-bold ui-text-brand tw-leading-tight",children:"¿Quieres continuar?"})}),t.jsx("div",{className:"tw-text-center tw-mt-2",children:t.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."})})]})})})}),li=Ue.create(e=>({cachedTemplate:null,canCreateTemplate:!1,setCachedTemplate:a=>e({cachedTemplate:a}),clearCachedTemplate:()=>e({cachedTemplate:null}),setCanCreateTemplate:a=>{const n=!(a<5);e({canCreateTemplate:n})}})),ci=({isOpen:e,onClose:a,discardChanges:n,saveAndExit:s})=>t.jsx("div",{children:t.jsx(j.Modal,{isOpen:e,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Guardar y salir",onCancel:a,onClose:a,onSuccess:s,size:"sm",iconConfig:{icon:pe.faExclamationTriangle},title:"Cambios sin guardar",children:t.jsx(j.Modal.Body,{children:t.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full ui-p-4 ui-gap-8",children:[t.jsx("div",{className:"tw-flex tw-justify-center tw-w-full",style:{minWidth:"fit-content"},children:t.jsx("div",{className:"tw-flex tw-justify-center tw-items-center tw-gap-[10px] tw-rounded-full ui-p-16",style:{backgroundColor:"#EBEEF9"},children:t.jsx(j.Icon,{name:pe.faSave,size:"lg",color:"brand"})})}),t.jsx("div",{className:"tw-flex tw-flex-col tw-mx-6",children:t.jsx(j.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"})}),t.jsx("div",{className:"tw-text-center tw-mt-5",children:t.jsx("h2",{className:"tw-text-[24px] tw-font-bold ui-text-brand",children:"¿Qué deseas hacer antes de salir?"})}),t.jsx("div",{className:"tw-text-center tw-mt-1",children:t.jsx("div",{className:"tw-text-[12px] tw-font-normal tw-text-[#6B6B6B]",children:"Si sales ahora sin guardar se perderán los cambios actuales."})}),t.jsx("div",{className:"tw-flex tw-justify-center tw-mt-4",children:t.jsx(j.Button,{size:"xs",color:"secondary",onClick:()=>{n(),a()},children:"Descartar cambios"})})]})})})}),bs=({isOpen:e,onClose:a,publishTemplate:n})=>t.jsx(j.Modal,{isOpen:e,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Confirmar",onCancel:a,onClose:a,onSuccess:n,size:"sm",iconConfig:{icon:pe.faArrowUp},title:"Publicar",children:t.jsx(j.Modal.Body,{children:t.jsxs("div",{className:"tw-flex tw-flex-col tw-overflow-auto tw-w-full tw-p-8 ui-gap-16",children:[t.jsx("div",{className:"tw-flex tw-justify-center tw-w-full",style:{minWidth:"fit-content"},children:t.jsx(j.Icon,{name:pe.faArrowUp,size:"lg",color:"blue",background:!0,padding:"lg"})}),t.jsx("div",{className:"tw-text-center",children:t.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?"})}),t.jsx("div",{className:"tw-text-center",children:t.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."})})]})})}),di=()=>{const e="grid",a="create-edit",n=p.useRef(null),{isOpenModalLimit:s,setIsOpenModalLimit:o,setOpenModalCreateTemplate:i,openModalCreateTemplate:r,setOpenModalUnsavedChanges:c,openModalUnsavedChanges:d,openModalPublishTemplate:l,setOpenModalPublishTemplate:u,setCurrentTemplateForEdit:m,setIsDuplicateTemplate:g,setIsEditTemplate:w}=Ae(),{removeTemplateStates:f}=nt(),{mode:h,setMode:x,setViewMode:y,getViewMode:b}=Ne(),{setCanCreateTemplate:C,canCreateTemplate:k}=li(),F=h===e,{screens:q,get:T,delete:S,activeTemplate:v,activateTemplate:R,reorderingTemplates:K,replaceTemplate:J,saveTemplateChanges:H,publishTemplate:O,loadingPublishTemplate:E,loadingSaveChanges:B}=qe(),M=178,[z,ee]=p.useState([]),[V,oe]=p.useState([]),[Z,P]=p.useState(null),[$,Q]=p.useState(!1),D=v!=null&&v.id?b(v.id):"readonly";p.useEffect(()=>{const X=()=>{if(!n.current)return;const re=n.current.offsetWidth;let le=0;const te=[],ue=[],we=10,he=n.current.querySelector("button:not([data-screen])"),me=n.current.querySelector(".tw-mx-1");let ye=0;he&&(ye+=he.getBoundingClientRect().width),me&&q.length>0&&(ye+=me.getBoundingClientRect().width,ye+=we);const De=(je,Fe)=>{const et=Fe?54:0,Gt=(je==null?void 0:je.length)*8;return Math.max(80,Gt+40+et)},Se=re-M-ye;q.forEach((je,Fe)=>{const wt=!!(je.isNew||je.badgeLabel),rt=De(je.clave,wt),it=Fe>0?we:0,et=rt+it;le+et<=Se?(te.push(je),le+=et):ue.push(je)}),ee(te),oe(ue)},se=()=>{const re=q.length;C(re)};return q.length>0&&(X(),se(),window.addEventListener("resize",X)),()=>{window.removeEventListener("resize",X)}},[q,h]);const A=X=>X.estatus===ve.DIRTY||X.estatus===ve.NEW,W=async X=>{A(X)?(P(X.id),c(!0)):await S(X.id)},I=()=>u(!0),N=async()=>{await S(Z),await f(Z)},U=async()=>{await H(!1)},L=async()=>{await H()},_=()=>{var se,re;const X=(re=(se=v==null?void 0:v.graph_layout)==null?void 0:se.snapshot)==null?void 0:re.nodes.length;Q(()=>X-1>=1)};p.useEffect(()=>{_()},[v,D]);const G=()=>!((v==null?void 0:v.estatus)==ve.IDLE&&$&&v.estatusFromStrapi!==Ee.PUBLISHED),Y=()=>{var se;const{nodes:X}=(se=v==null?void 0:v.graph_layout)==null?void 0:se.snapshot;return X==null?void 0:X.some(re=>re.type!=="start"&&(re==null?void 0:re.data.tarea_padre)===null&&(re==null?void 0:re.data.id_t_requerida)===null)},ae=()=>(v==null?void 0:v.estatus)===ve.IDLE||Y()?!0:!$,ie=async()=>{await O(v.id)};return B||E?t.jsx(ot,{isLoading:B||E}):t.jsxs("div",{className:"tw-flex tw-gap-4 tw-justify-between tw-items-center tw-flex-wrap",children:[r&&t.jsx(ri,{isOpen:r,onClose:()=>i(!1)}),s&&t.jsx(ii,{isOpen:s,onClose:()=>o(!1),replaceTemplate:J}),d&&t.jsx(ci,{isOpen:d,onClose:()=>c(!1),discardChanges:N,saveAndExit:L}),l&&t.jsx(bs,{isOpen:l,onClose:()=>u(!1),publishTemplate:ie}),t.jsxs("div",{className:"tw-flex tw-gap-2.5 tw-items-center tw-justify-between tw-flex-1 tw-flex-wrap",ref:n,children:[t.jsxs("div",{className:"tw-flex tw-gap-2.5 tw-items-center tw-justify-start tw-flex-1 tw-flex-wrap",children:[t.jsx(j.Button,{size:"xs",color:F?"primary":"secondary",onClick:()=>x(e),children:"Listado de flujos"}),q.length>0&&t.jsx(j.Separator,{vertical:!0,className:"tw-mx-1"}),q.filter(X=>z.some(se=>se.clave===X.clave)).map(X=>{const se=(v==null?void 0:v.clave)===X.clave&&h===a;return t.jsxs(j.Button,{"data-screen":X.clave,size:"xs",onClick:async()=>{await R(X),x(a,X.id)},color:se?"primary":"secondary",leftSlot:Ce.faFilePen,badgeColor:A(X)?"warning":void 0,onClickRightSlot:()=>W(X),rightSlot:Ce.faXmark,children:[X.clave," ",X.status]},X.id)})]}),V.length>0&&t.jsx(j.Popup,{absolute:!0,rightSlot:Ce.faAngleDown,label:`${V.length}+`,size:"xs",color:"secondary",children:t.jsx("div",{className:"ui-py-2 ui-gap-4",style:{minWidth:"280px"},children:t.jsx(j.List,{icon:Ce.faFilePen,items:V.map(X=>({id:X.id,label:X.clave})),className:"ui-p-8 ui-gap-4",onClick:async X=>{const se=await T(X.id);await K(se.id),await R(se),x("create-edit",se.id)}})})})]}),h===a?t.jsx("div",{className:"tw-flex tw-gap-4 tw-items-center tw-justify-end tw-flex-wrap",children:v.estatusFromStrapi!==Ee.PUBLISHED&&t.jsxs(t.Fragment,{children:[t.jsx(j.Button,{color:"secondary",size:"xs",leftSlot:Ce.faArrowUp,disabled:G(),onClick:I,children:"Publicar"}),D=="readonly"&&t.jsx(j.Button,{size:"xs",color:"primary",leftSlot:Ce.faEdit,onClick:()=>(v==null?void 0:v.id)&&y(v.id,"edit"),children:"Editar"}),D==="edit"&&t.jsx(j.Button,{size:"xs",color:"primary",leftSlot:Ce.faSave,onClick:U,disabled:ae(),children:"Guardar"})]})}):t.jsx(j.Button,{disabled:k,tooltip:k?"Límite de 5 plantillas con cambios sin guardar. Guarda y cierra alguna para crear una nueva.":"",leftSlot:Ce.faPlus,size:"xs",color:"primary",onClick:()=>{m(null),g(!1),w(!1),i(!0)},children:"Nuevo flujo"})]})},ui=({isOpen:e,onClose:a,deleteTemplate:n})=>t.jsx(j.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:e,onClose:a,onConfirm:n,placeholder:""}),pi=()=>{const{viewMode:e,setRefetch:a,openModalPublishTemplate:n,setOpenModalPublishTemplate:s,currentTemplateId:o,setOpenModalDeleteTemplate:i,openModalDeleteTemplate:r}=Ae(),{publishTemplate:c,deleteTemplate:d}=qe(),{debouncedSearch:l,filters:u}=rs("templates-container"),m=e==="list",[g,w]=p.useState(1),f=9,{data:h,isLoading:x,isFetching:y,refetch:b}=hs({page:g,pageSize:f,search:l,filters:u});p.useEffect(()=>{a(b)},[]),p.useEffect(()=>{w(1)},[u,l]);const{users:C}=Ze(),{getImageOBP:k}=ge(),F=v=>{if(!(v!=null&&v.email))return"";const R=C==null?void 0:C[v==null?void 0:v.email];return R!=null&&R.image?k(R==null?void 0:R.image):""},q=p.useMemo(()=>{try{return!h||!C?[]:h.data.map(v=>{const R=F((v==null?void 0:v.updated_by)||(v==null?void 0:v.created_by));return{...v,updated_by:{...v.updated_by,image:R}}})}catch(v){return console.error("Error al mapear las plantillas:",v),[]}},[h,C]),T=async()=>{await c(o),await b()},S=async()=>{await d(o),await b()};return x||y?t.jsx(ot,{isLoading:x||y}):t.jsxs("div",{className:"tw-flex tw-flex-col tw-justify-between tw-gap-y-4 tw-h-full",children:[t.jsx(bs,{isOpen:n,onClose:()=>s(!1),publishTemplate:T}),t.jsx(ui,{isOpen:r,onClose:()=>i(!1),deleteTemplate:S}),t.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:q.map(v=>t.jsx(ms,{fullWidth:m,template:v},v.id))}),t.jsx("div",{children:t.jsx(j.Pagination,{pageSize:f,pageCount:h==null?void 0:h.meta.pagination.pageCount,currentPage:g,onPageChange:v=>w(v)})})]})},ys=()=>{var r,c,d,l;const e="grid",a="create-edit",{mode:n}=Ne(),s=n===e,o=n===a,i=Oe(u=>u.activeTemplate);return t.jsxs("div",{className:"tw-h-full tw-flex tw-flex-col tw-gap-y-6",children:[t.jsx(di,{}),s&&t.jsx(pi,{}),o&&t.jsx(Vr,{initialNodes:((c=(r=i==null?void 0:i.graph_layout)==null?void 0:r.snapshot)==null?void 0:c.nodes)||[],initialEdges:((l=(d=i==null?void 0:i.graph_layout)==null?void 0:d.snapshot)==null?void 0:l.edges)||[]})]})},mi=()=>({header:t.jsx(dr,{}),body:t.jsx(ys,{})});function wi(e){const{users:a}=uo(),{tasks_api:n,getImageOBP:s}=ge(),o=p.useMemo(()=>a.data?a.data.map(c=>{const{image:d,id:l,name:u}=c,m=s(d);return{value:l,label:u,icon:m}}):[],[a.data]),i=async c=>{const d=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:l}=await c.get(`/api/params-tipos?${d}`);return be(l.data).flatMap((m,g)=>{const w={id:`group-${g+1}`,label:m.label,value:`group-${g+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[w,...f]})},r=de.useQuery({queryKey:["paramsPlantilla"],queryFn:()=>i(n),enabled:e==="templates-container",staleTime:1e3*60*30});return{userOptions:o,paramsPlantillasOptions:r.data||[]}}const fi={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"}},gi={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"}},hi={"templates-container":fi,"teams-container":gi,"kanban-general":null,"lista-campanias":null,"kanban-campania":null},xi=e=>({inputFilters:hi[e]||null}),bi=e=>{const{inputFilters:a}=xi(e),{userOptions:n,paramsPlantillasOptions:s}=wi(e);return{inputFilters:p.useMemo(()=>{if(a&&n.length>0&&s.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:s}]}return null},[e,a,n,s])}};function yi(){const{setFilters:e}=mt(),{refetch:a}=Ae();return{handleApplyFilters:s=>{let o={...s};o=Object.fromEntries(Object.entries(o).filter(([i,r])=>!(r===""||r===null||Array.isArray(r)&&r.length===0))),"publication_date"in o&&o.publication_date!==""&&(o={...o,publication_date:Tt(o.publication_date).format("YYYY-MM-DD")}),e(o,"templates-container"),a&&a()}}}const _a="templates-container";function ji(){const{mode:e}=Ne(),{inputFilters:a}=bi(_a),{handleApplyFilters:n}=yi(),{viewMode:s,setViewMode:o}=Ae();return e!=="grid"?null:t.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-justify-between tw-gap-2.5 md:tw-flex-nowrap",children:[t.jsx(os,{path:_a}),t.jsxs("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-x-2.5 md:tw-flex-nowrap",children:[a&&t.jsx(j.Filters,{filters:a,onApply:n}),t.jsx(j.Button,{size:"xs",color:"secondary",colorIcon:"neutral",icon:s==="list"?xe.faGrid2:xe.faList,className:"tw-min-w-fit",onClick:()=>o(s==="list"?"grid":"list")})]})]})}const Ct={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()},js="Project Manager",vs=({open:e,handleChange:a,children:n,title:s="¿Estás seguro?",onConfirm:o,contentLabel:i="",confirmLabel:r="Aceptar",cancelLabel:c="Regresar",isLoading:d=!1})=>t.jsx(j.Modal,{isOpen:e,onClose:()=>a(!1),onCancel:()=>a(!1),onSuccess:o,size:"xs",title:s,disableEscapeClose:!0,disableOutsideClick:!0,disableOutsideTab:!0,children:t.jsxs(j.Modal.Body,{children:[t.jsx("h1",{className:"tw-text-lg tw-font-semibold tw-text-black-black_medium",children:i}),n&&n]})}),vi=({member:e,level:a,isUpdate:n=!1,addHandler:s,updateHandler:o,removeHandler:i,updateMemberHandler:r})=>{var J,H,O;const{users:c,isLoading:d}=Ht(),{users:l,isLoading:u}=Ze(),{getImageOBP:m}=ge(),[g,w]=p.useState(!1),[f,h]=p.useState(n?e:{...Ct,miembro_padre:a>1?e:null}),[x,y]=p.useState(null),[b,C]=p.useState({id:0,nombre:"",email:""}),[k,F]=p.useState(!1);p.useEffect(()=>{var E;y(l==null?void 0:l[(E=f==null?void 0:f.idUser)==null?void 0:E.email])},[f,l]),p.useEffect(()=>{e&&h({...e,miembro_padre:a>1?e.miembro_padre:null})},[e,a]);const q=p.useMemo(()=>(c||[]).map(E=>{var z,ee;const B=l==null?void 0:l[E.email??""],M=B!=null&&B.image?m(B.image):"";return{...E,label:E.name,value:E.id,subtitle:E.email??"",avatar:((ee=(z=E.name)==null?void 0:z.slice(0,2))==null?void 0:ee.toUpperCase())??"",avatarUrl:M}}),[c,l,m]),T=()=>{w(!1),C({id:0,nombre:"",email:""})},S=({id:E,name:B,email:M})=>{const z={...f,idUser:{...f.idUser,id:E,nombre:B,email:M}};h(z),o(z),C({id:E,nombre:B,email:M})},v=async()=>{if(!b.nombre&&!b.email){T();return}try{f.id&&r({user_id:b.id,miembro_id:e.id});const E={...f,idUser:{...f.idUser,id:b.id,nombre:b.nombre,email:b.email}};h(E),o(E),y(l==null?void 0:l[b.email]),T()}catch(E){j.toast.error(E instanceof Error?E.message:"Error al actualizar el colaborador")}},R=()=>{const E={...Ct,uid:new Date().getTime()+Math.floor(Math.random()*1e3),miembro_padre:e,miembros:[]};s(E)},K=()=>{i(e),F(!1)};return u||d?null:t.jsxs("div",{className:"tw-flex tw-items-baseline tw-justify-between",children:[k&&t.jsx(vs,{open:k,handleChange:F,onConfirm:K,contentLabel:"Estás eliminando el colaborador seleccionado"}),t.jsxs("div",{className:"tw-flex tw-flex-1 tw-justify-between ui-gap-y-4 ui-mb-2",children:[t.jsxs("div",{children:[t.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&&!g?t.jsxs(t.Fragment,{children:[t.jsx(Le,{size:"m",alt:((H=f==null?void 0:f.idUser)==null?void 0:H.nombre)??"Avatar",imageUrl:x!=null&&x.image?m(x.image):""}),t.jsx("p",{className:"ui-text-body-sm-regular ui-font-body-sm-regular ui-leading-body-sm-regular ui-tracking-body-sm",children:(O=f==null?void 0:f.idUser)==null?void 0:O.nombre})]}):t.jsx(j.Dropdown,{placeholder:"Seleccionar colaborador",options:q,valueName:"name",idName:"id",listVariant:"user",absolute:!0,closeOnClickOutside:!0,searchable:!0,searchPlaceholder:"Buscar colaborador...",onOptionSelect:E=>{S({id:E.id,name:E.name,email:E.email})}})}),t.jsx(j.Button,{onClick:R,leftSlot:xe.faPlus,size:"xxs",color:"tertiary",children:"Añadir colaborador"})]}),t.jsxs("div",{className:"ui-flex ui-gap-x-4",children:[g?t.jsxs(t.Fragment,{children:[t.jsx(j.Button,{onClick:T,icon:xe.faXmark,size:"xs",color:"secondary",tooltip:"Cancelar"}),t.jsx(j.Button,{onClick:v,icon:ze.faCheck,size:"xs",color:"primary",tooltip:"Guardar"})]}):t.jsx(j.Button,{onClick:()=>w(!0),icon:xe.faPencil,size:"xs",color:"tertiary",tooltip:"Editar"}),t.jsx(j.Button,{onClick:()=>F(!0),icon:xe.faTrash,size:"xs",color:"destructive",tooltip:"Eliminar"})]})]})]})},_s=({members:e,level:a=1,isUpdate:n=!1,setData:s})=>{const o=()=>{s(i=>({...i,miembros:[...i.miembros,{...Ct,uid:new Date().getTime()+Math.floor(Math.random()*1e3)}]}))};return t.jsxs("div",{children:[(e==null?void 0:e.length)===0&&a===1&&t.jsx("div",{className:"tw-flex tw-justify-end",children:t.jsx(j.Button,{size:"xxs",color:"tertiary",leftSlot:ze.faPlus,onClick:o,children:" Agregar miembro del equipo "})}),(e==null?void 0:e.length)>0&&(e==null?void 0:e.map(i=>t.jsx(_i,{isUpdate:n,member:i,level:a,setData:s},i.uid)))]})},_i=({member:e,level:a,isUpdate:n=!1,setData:s})=>{const o=l=>{s(u=>{if(!l.miembro_padre)return{...u,miembros:[...u.miembros,l]};const m=g=>g==null?void 0:g.map(w=>w.uid===l.miembro_padre.uid?{...w,miembros:[...w.miembros||[],l]}:w.miembros&&w.miembros.length>0?{...w,miembros:m(w.miembros)}:w);return{...u,miembros:m(u.miembros)}})},i=l=>{s(u=>{const m=g=>g.map(w=>w.uid===l.uid?(w.miembros&&w.miembros.length>0&&w.miembros.forEach(f=>{f.miembro_padre=l}),{...l,miembros:w.miembros||[]}):w.miembros&&w.miembros.length>0?{...w,miembros:m(w.miembros)}:w);return{...u,miembros:m(u.miembros)}})},r=l=>{var m;const u=[];return l.id&&u.push(l.id),(m=l.miembros)!=null&&m.length&&l.miembros.forEach(g=>{u.push(...r(g))}),u},c=l=>{s(u=>{const m=r(l),g=f=>f.filter(h=>h.uid!==l.uid).map(h=>({...h,miembros:h.miembros?g(h.miembros):[]})),w=u.miembros_actualizar.filter(f=>!m.includes(f.miembro_id));return{...u,miembros:g(u.miembros),miembros_eliminar:[...u.miembros_eliminar,...m],miembros_actualizar:w}})},d=l=>{s(u=>u.miembros_actualizar.some(g=>g.miembro_id===l.miembro_id)?u:{...u,miembros_actualizar:[...u.miembros_actualizar,l]})};return t.jsxs("div",{"data-id":e.uid,style:{paddingLeft:a===1?0:"30px",marginTop:a===1?"15px":"0px",paddingBottom:"5px"},children:[t.jsx(vi,{isUpdate:n,level:a,member:e,addHandler:o,updateHandler:i,removeHandler:c,updateMemberHandler:d}),Array.isArray(e.miembros)&&e.miembros.length>0&&t.jsx(_s,{isUpdate:n,members:e.miembros,level:a+1,setData:s})]},e.uid)},Ni=(e=7)=>{const a=(s,o)=>s>=o?{populate:"*"}:{miembro_padre:{fields:["id"]},idUser:{populate:"*"},miembros:{populate:a(s+1,o),filters:{idUser:{blocked:!1}}}};return{miembros:{populate:a(0,e),filters:{idUser:{blocked:!1}}}}},Ti=()=>"#"+Math.floor(Math.random()*16777215).toString(16),Ci=({search:e,filters:a})=>{const n={};return e!=null&&e.trim()&&(n.nombre={$containsi:e.trim()}),a!=null&&a.createdAt&&(n.createdAt={$eq:a.createdAt}),n},Si=({items:e})=>{if(!e)return{members:[],allMembers:[]};const a={};for(const r of e)a[r.uid]=r;const n=[],s=new Set,o=r=>{const c={...r};if(c.id&&(c.uid=c.id),c.uid&&!s.has(c.uid)&&(n.push(c),s.add(c.uid)),!c.miembros)return c;const d=c.miembros.map(l=>{const u={...l};u.id&&(u.uid=u.id);const m=a[u.uid];return o(m||u)}).filter(Boolean);return{...c,miembros:d}};return{members:e.filter(r=>r.miembro_padre===null).map(o),allMembers:n}},Ei=({items:e})=>e?e.map(a=>{const n=Si({items:a.miembros});return{...a,integrantes:n.allMembers.length,miembros:n.members,miembros_planos:n.allMembers,miembros_eliminar:[],miembros_actualizar:[]}}):[],Pi=async({tasks_api:e,page:a=1,pageSize:n=10,search:s="",filters:o={}})=>{const i=Pe.stringify({filters:Ci({search:s,filters:o}),populate:Ni(),sort:["createdAt:asc"],pagination:{page:a,pageSize:n}},{encodeValuesOnly:!0}),r=await e.get(`/api/equipos?${i}`);return r.data?{data:be(r.data.data),meta:r.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:n,pageCount:0,total:0}}}},Ii=({page:e=1,pageSize:a=10,search:n="",filters:s={}})=>{const{tasks_api:o}=ge();return de.useQuery({queryKey:["teams",e,a,n,s],queryFn:()=>Pi({tasks_api:o,page:e,pageSize:a,search:n,filters:s}),staleTime:1e3*60*60*24,placeholderData:de.keepPreviousData,select:i=>({data:Ei({items:(i==null?void 0:i.data)||[]}),meta:i==null?void 0:i.meta})})},St=e=>({...e,miembro_padre:e.miembro_padre?{id:e.miembro_padre.id,uid:e.miembro_padre.uid}:null,idUser:e.idUser?{id:e.idUser.id,nombre:e.idUser.nombre,email:e.idUser.email,image:e.idUser.image}:null,miembros:e.miembros?e.miembros.map(St):[]}),Ns=()=>{const{tasks_api:e}=ge(),a=de.useQueryClient(),n=async g=>{const w={...g,id:void 0,miembros:g.miembros.map(St)};return(await e.post("/api/registrar-equipo-miembros",{data:w})).data},s=async g=>(await e.delete(`/api/equipos/${g}`)).data,o=async(g,w)=>{const f={...w,id:void 0,miembros:w.miembros.map(St)};return(await e.patch(`/api/actualizar-equipo-miembros/${g}`,{data:f})).data},i=async(g,w,f)=>{const h=await e.put(`/api/miembros/${g}`,{data:{[w]:f}});if(!h.data)throw new Error("Error al actualizar el miembro");return h.data},{mutateAsync:r,isPending:c}=de.useMutation({mutationFn:s,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:g=>{throw console.error("Failed to delete the team.",g),g}}),{mutateAsync:d}=de.useMutation({mutationFn:n,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:g=>{throw console.error("Failed to update the team.",g),g},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:l}=de.useMutation({mutationFn:g=>o(g.teamId,g.data),onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:g=>{throw console.error("Failed to update the team.",g),g},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:u}=de.useMutation({mutationFn:g=>i(g.memberId,g.field,g.value),onError:g=>{throw console.error("Failed to update the member.",g),new Error("Error al actualizar el miembro")}});return{addTeamHandler:d,deleteTeamHandler:r,updateTeamHandler:l,updateMemberHandler:u,invalidateTeams:()=>{a.invalidateQueries({queryKey:["teams"]})},isLoadingDeleteTeam:c}},Ai=(e,a,n)=>{const s=p.useCallback(o=>{e.current&&!e.current.contains(o.target)&&a(!1)},[e,a]);p.useEffect(()=>(n&&document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)}),[s,n])},Di=({color:e,onChange:a})=>t.jsxs(t.Fragment,{children:[t.jsx("style",{children:`
10
+ `+D)})()},title:i?"Editar tarea":"Nueva tarea",successButtonText:i?"Actualizar":"Crear",disabledSuccessButton:!M,children:t.jsxs("form",{className:"tm-flex tm-flex-col tm-gap-4",children:[t.jsx(Se.Controller,{control:f,name:"title",rules:{required:"El título es obligatorio",minLength:{value:3,message:"El título debe tener al menos 3 caracteres"}},render:({field:N})=>{var D;return t.jsx(x.Input,{fullWidth:!0,label:"Título",placeholder:"Ingresa el título de la tarea...",error:(D=y.title)==null?void 0:D.message,...N})}}),t.jsx(Se.Controller,{control:f,name:"description",rules:{required:"La descripción es obligatoria",minLength:{value:10,message:"La descripción debe tener al menos 10 caracteres"}},render:({field:N})=>{var D;return t.jsx(x.Textarea,{className:"tm-w-full tm-w-full",placeholder:"Describe la tarea a realizar...",label:"Descripción",error:(D=y.description)==null?void 0:D.message,...N})}}),t.jsx(x.Separator,{}),t.jsx(Se.Controller,{control:f,name:"priority",rules:{required:"La prioridad es obligatoria"},render:({field:N,fieldState:{error:D}})=>t.jsx(x.Dropdown,{fullWidth:!0,label:"Prioridad",placeholder:"Selecciona la prioridad...",options:Tr,error:D==null?void 0:D.message,value:N.value,onValueChange:v=>{N.onChange(v)}})}),t.jsx(Se.Controller,{control:f,name:"difficulty",rules:{required:"La dificultad es obligatoria"},render:({field:N,fieldState:{error:D}})=>t.jsx(x.Dropdown,{fullWidth:!0,label:"Dificultad",placeholder:"Selecciona la dificultad...",options:Cr,error:D==null?void 0:D.message,value:N.value,onValueChange:v=>{N.onChange(v)}})}),t.jsx(Se.Controller,{control:f,name:"duration",rules:{required:"La duración es obligatoria"},render:({field:N,fieldState:{error:D}})=>t.jsx(x.Dropdown,{fullWidth:!0,label:"Duración",placeholder:"Selecciona la duración...",options:Nr,error:D==null?void 0:D.message,value:N.value,onValueChange:v=>{N.onChange(v)}})}),t.jsx(x.Separator,{}),t.jsx(Se.Controller,{control:f,name:"team",rules:{required:"El equipo es obligatorio"},render:({field:N,fieldState:{error:D}})=>t.jsx(x.Dropdown,{fullWidth:!0,label:"Equipo",placeholder:"Selecciona el equipo...",options:c,error:D==null?void 0:D.message,value:N.value,onValueChange:v=>{N.onChange(v)}})}),t.jsx(Se.Controller,{control:f,name:"responsible",render:({field:N,fieldState:{error:D}})=>t.jsx(x.Dropdown,{fullWidth:!0,absolute:!0,label:"Responsable",placeholder:"Selecciona el responsable...",options:p,error:D==null?void 0:D.message,value:N.value,onValueChange:v=>{N.onChange(v)}})})]})})},Sr=()=>{const{get:e}=Be(),a=Le(i=>i.activeTemplate),{updateTaskInState:n,addTaskToState:s}=nt();return{updateTaskInTemplate:async(i,r)=>{if(!a)return console.error("No hay plantilla activa"),!1;try{const c=await e(a.id);if(!c)return console.error("Flujo de trabajo no encontrado"),!1;const m={id:i,uuid:r.uuid||crypto.randomUUID(),reference_graph:r.reference_graph||null,texto_corto:r.texto_corto||"",texto_largo:r.texto_largo||"",prioridad:r.prioridad||null,nivel_dificultad:r.nivel_dificultad||1,duracion:r.duracion||null,start:r.start||!1,equipo:r.equipo||null,responsable:r.responsable||null,plantilla:{id:c.id,clave:c.clave,categoria:c.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:r.plantilla_dependents||[],id_t_requerida:r.id_t_requerida||null,ids_t_dependientes:r.ids_t_dependientes||[],tarea_padre:r.tarea_padre||null,tareas:r.tareas||[]};i>0?await n({task:m}):await s({task:m})}catch(c){return console.error("❌ Error al actualizar tarea en plantilla:",c),!1}}}},_e={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"},ba={dependiente:{stroke:"#3B82F6",strokeDasharray:"5,5",strokeWidth:2},normal:{stroke:"#6B7280",strokeWidth:2}},jt=e=>{const a=e.map(n=>({...n}));return a.filter(n=>n.type==="group").forEach(n=>{const s=a.filter(d=>d.parentId===n.id);if(s.length===0)return;const o=Math.min(...s.map(d=>d.position.x)),r=Math.max(...s.map(d=>{var p;return d.position.x+(typeof((p=d.style)==null?void 0:p.width)=="number"?d.style.width:_e.DEFAULT_CHILD_WIDTH)}))-o,c=Math.min(...s.map(d=>d.position.y)),l=Math.max(...s.map(d=>{var p;return d.position.y+(typeof((p=d.style)==null?void 0:p.height)=="number"?d.style.height:_e.DEFAULT_CHILD_HEIGHT)}))-c;n.style={...n.style??{},width:r,height:l}}),a},wt=e=>e.source===_e.START_NODE_ID||e.target===_e.START_NODE_ID,Xe=e=>e===_e.START_NODE_ID,Er=e=>e==="dependiente"?ba.dependiente:ba.normal,Pr=(e,a,n)=>({id:e,type:"main",position:a,selected:!1,deletable:!0,data:n}),vt=(e,a,n,s,o,i=!1,r=null,c=null)=>{const m=Er(s),l=i?_e.DEFAULT_SOURCE_HANDLE:n;return{id:`edge-${e}-${a}`,source:e,sourceHandle:l,target:a,targetHandle:_e.DEFAULT_TARGET_HANDLE,type:"smoothstep",deletable:!0,style:m,markerEnd:{type:"arrowclosed",width:12,height:12,color:m.stroke,strokeWidth:1},data:{connectionType:s,nodeType:o,isFromStartNode:i,parentId:r,childId:c}}},Ar=(e,a)=>!(!e||!a||e===a),Ir=e=>{const{clientX:a,clientY:n}="changedTouches"in e?e.changedTouches[0]:e;return{x:a,y:n}},Dr=e=>e.filter(a=>a.type==="position"&&a.dragging===!1),gs=e=>e.map(a=>a.id),hs=({nodes:e,edges:a,setNodes:n,setEdges:s,newNodePopup:o,connectionPopup:i,closeNewNodePopup:r,closeConnectionPopup:c,setIsConnectingExistingNodes:m})=>{const{screenToFlowPosition:l,getNode:d,setViewport:p,fitView:h}=oe.useReactFlow(),{get:f,update:g,addTaskUpdatingTemplate:y,addTemplateUpdatingTemplate:w}=Be(),j=Le(H=>H.activeTemplate),b=me.useQueryClient(),_=Le(H=>H.setActiveTemplate),{removeTaskFromState:M,updateNodeWithNewEdge:F,updateTaskInState:R}=nt(),N=u.useCallback(async H=>{const O=e.find(B=>B.id===H);if(!(O!=null&&O.data))return null;if(O.id===_e.START_NODE_ID){if(!j)return null;try{const B=await f(j.id),k=B.tarea_plantillas.find(q=>q.start===!0);return k!=null&&k.id?k.id:B.tarea_plantillas.length>0?B.tarea_plantillas[0].id:null}catch{return null}}const S=O.data.id;if(!S&&S!==0)return null;if(typeof S=="string"){if(S.includes("-"))return S;{const B=parseInt(S,10);return isNaN(B)?null:B}}else if(typeof S=="number")return S;return null},[e,j,f]),D=u.useCallback(async(H=e,O=a)=>{var S,B,k,q,ee,W,re;if(!j){x.toast.warning("No hay template activo para actualizar layout");return}try{const Z=await f(j.id);if(!Z){x.toast.warning("Template no encontrado en IndexedDB");return}const E=(S=Z.graph_layout)==null?void 0:S.snapshot;if(!(!E||JSON.stringify(E.nodes)!==JSON.stringify(H)||JSON.stringify(E.edges)!==JSON.stringify(O))){console.log("🔄 No hay cambios en el layout, omitiendo actualización");return}const Q=H.filter(G=>{var P;return!((P=G.data)!=null&&P.isInternal)&&!G.parentId}).map(G=>{const{style:P,measured:C,data:$,selected:L,...T}=G,{expandedDimensions:V,isExpanded:Y,needsReExpansion:ae,...le}=$||{},X=P?{...P,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...T,style:X,data:le}}),I=O.filter(G=>{var P;return!((P=G.data)!=null&&P.isInternal)}),A={...Z,graph_layout:{id:((B=Z.graph_layout)==null?void 0:B.id)||0,snapshot:{nodes:Q,edges:I,viewport:((q=(k=Z.graph_layout)==null?void 0:k.snapshot)==null?void 0:q.viewport)||{x:0,y:0,zoom:1}},history:((ee=Z.graph_layout)==null?void 0:ee.history)||[],zoom:((W=Z.graph_layout)==null?void 0:W.zoom)||1,position:((re=Z.graph_layout)==null?void 0:re.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await g(j.id,A),console.log("🗑️ [useFlowActions] Invalidando caché de la plantilla:",j.id),await b.invalidateQueries({queryKey:["template",j.id]}),await b.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlowActions] Caché invalidado exitosamente"),_(A)}catch(Z){console.error("❌ Error al actualizar template layout:",Z)}},[j,f,g,e,a,_]),v=u.useCallback(async(H=[],O=[],S,B)=>{var q,ee,W,re,Z,E,z,Q,I,A,G,P;const k=S||(j==null?void 0:j.id);if(!k){x.toast.warning("No hay template ID disponible para actualizar");return}try{const C=await f(k);if(!C)return;const $=(W=(ee=(q=C.graph_layout)==null?void 0:q.snapshot)==null?void 0:ee.nodes)==null?void 0:W.filter(V=>{var Y;return!H.includes(V.id)&&!((Y=V.data)!=null&&Y.isInternal)&&!V.parentId}).map(V=>{const{style:Y,measured:ae,data:le,...X}=V,{expandedDimensions:se,...ce}=le||{},ie=Y?{...Y,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...X,style:ie,data:ce}}),L=((E=(Z=(re=C.graph_layout)==null?void 0:re.snapshot)==null?void 0:Z.edges)==null?void 0:E.filter(V=>{var Y;return!H.includes(V.source)&&!H.includes(V.target)&&!((Y=V.data)!=null&&Y.isInternal)}))||[],T={...C,graph_layout:{id:((z=C.graph_layout)==null?void 0:z.id)||0,snapshot:{nodes:$,edges:L,viewport:((I=(Q=C.graph_layout)==null?void 0:Q.snapshot)==null?void 0:I.viewport)||{x:0,y:0,zoom:1}},history:((A=C.graph_layout)==null?void 0:A.history)||[],zoom:((G=C.graph_layout)==null?void 0:G.zoom)||1,position:((P=C.graph_layout)==null?void 0:P.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await M({templateId:k,id:B||0}),await g(k,T),await b.invalidateQueries({queryKey:["template",k]}),await b.invalidateQueries({queryKey:["template"]}),k===(j==null?void 0:j.id)&&_(T)}catch(C){console.error("❌ updateAfterDeleted - Error al actualizar template layout:",C)}},[j,f,g,a,e,M,_]),U=u.useCallback(async(H,O,S)=>{if(!o||!j)return;const{nodeId:B,sourceNodeId:k,sourceHandleId:q}=o;if(k)try{const ee=await N(k);if(!ee)return;if(H==="plantilla"){const W=S;if(!(W!=null&&W.templateId))return;if(!await w(W.templateId,j.id,ee,O)){x.toast.error("No se pudo agregar la plantilla. Intenta nuevamente."),r();return}try{const G=await f(j.id);if(G){const P=($,L)=>{for(const T of $){if(T.id===L||T.uuid===L)return T;if(T.tareas&&T.tareas.length>0){const V=P(T.tareas,L);if(V)return V}}return null},C=P(G.tarea_plantillas,ee);if(C&&C.id){const $=(C.plantilla_dependents||[]).map(T=>typeof T=="object"&&T.id?{id:T.id}:typeof T=="number"?{id:T}:T),L={...C,plantilla_dependents:$,plantilla:{id:j.id,clave:G.clave,categoria:G.categoria||{id:0,nombre:"Sin categoría"}}};await R({task:L}),console.log("✅ Tarea padre agregada a templates_states.updated con plantilla_dependents:",C.id,L.plantilla_dependents)}}}catch(G){console.error("❌ Error al actualizar tarea padre en templates_states:",G)}const Z=l({x:o.position.x,y:o.position.y}),E=W.templateData||{id:W.templateId,nombre_plantilla:`Flujo de trabajo ${W.templateId}`,clave:`TPL-${W.templateId}`,estatus:"activo",categoria:null,counts_tasks:0,dias_duracion:0},z={id:B,type:"group",position:Z,selected:!1,deletable:!0,data:{id:W.templateId,templateId:W.templateId,type:"template",nombre_plantilla:E.nombre_plantilla||`Flujo de trabajo ${W.templateId}`,clave:E.clave||`TPL-${W.templateId}`,estatus:E.estatus||"activo",categoria:E.categoria||null,counts_tasks:E.counts_tasks||0,dias_duracion:E.dias_duracion||0,tarea_plantillas:E.tarea_plantillas||[],params_plantillas:E.params_plantillas||[],createdAt:E.createdAt||new Date().toISOString(),updatedAt:E.updatedAt||new Date().toISOString(),created_by:E.created_by||null,updated_by:E.updated_by||null}};n(G=>[...G,z]);const Q=q||_e.DEFAULT_SOURCE_HANDLE,I=Xe(k),A=vt(k,B,Q,O,"plantilla",I,ee);s(G=>[...G,A]);try{const G=[...e,z],P=[...a,A];await D(G,P)}catch(G){console.error("❌ Error al actualizar layout después de agregar plantilla:",G)}}else if(H==="tarea"){const W=S;if(!W)return;const re=l({x:o.position.x,y:o.position.y}),Z=-new Date().getTime(),E={id:Z,reference_graph:B,title:W.title,description:W.description,priority:W.priority,difficulty:W.difficulty,duration:W.duration,team:W.team,responsible:W.responsible,parent:{data:{id:ee}}},z=await y(E,j.id,O),Q=Pr(B,re,z);n(P=>[...P,Q]);const I=q||_e.DEFAULT_SOURCE_HANDLE,A=Xe(k),G=vt(k,B,I,O,H,A,ee,Z);s(P=>[...P,G]);try{const P=[...e,Q],C=[...a,G];await D(P,C)}catch(P){console.error("❌ Error al actualizar layout después de agregar tarea:",P)}setTimeout(()=>{try{const P=d(B);if(P){const C=window.innerWidth,$=window.innerHeight,L=C/2,T=$/2;p({x:L-P.position.x-130,y:T-P.position.y-40,zoom:1},{duration:800})}else h({padding:.1,duration:800})}catch{try{h({padding:.1,duration:800})}catch{}}},200)}r()}catch(ee){console.error("❌ Error en createNodeFromPopup:",ee)}},[o,j,y,w,N,l,n,s,r,D,e,a]),K=u.useCallback(async(H,O)=>{var q,ee;if(console.log("🟢 createConnectionFromPopup - INICIO",{nodeType:H,connectionType:O}),!i){console.warn("⚠️ createConnectionFromPopup - No hay connectionPopup");return}const{sourceNodeId:S,sourceHandleId:B,targetNodeId:k}=i;console.log("🟢 createConnectionFromPopup - Datos de conexión:",{sourceNodeId:S,targetNodeId:k,sourceHandleId:B});try{if(!(window.validConnectionTypes||{dependiente:!0,hija:!0})[O]){console.warn("⚠️ createConnectionFromPopup - Tipo de conexión no válido:",O),x.toast.warning("Tipo de conexión no válido"),m(!1),c();return}const re=e.find(L=>L.id===S),Z=e.find(L=>L.id===k);console.log("🟢 createConnectionFromPopup - Nodos encontrados:",{sourceNode:re==null?void 0:re.id,targetNode:Z==null?void 0:Z.id,sourceData:re==null?void 0:re.data,targetData:Z==null?void 0:Z.data});const E=Z==null?void 0:Z.data,z=((q=re==null?void 0:re.data)==null?void 0:q.id)||S,Q=((ee=Z==null?void 0:Z.data)==null?void 0:ee.id)||k;console.log("🟢 createConnectionFromPopup - IDs extraídos:",{parentId:z,childId:Q});const I=vt(S,k,B||_e.DEFAULT_SOURCE_HANDLE,O,H,Xe(S),z,Q);console.log("🟢 createConnectionFromPopup - Nuevo edge creado:",I),s(L=>[...L,I]);const A=[...a,I],G=E.id||-Date.now(),P=E.reference_graph||k,C={id:G,uuid:E.uuid||crypto.randomUUID(),reference_graph:P,texto_corto:E.texto_corto||"",texto_largo:E.texto_largo||"",prioridad:E.prioridad||null,nivel_dificultad:E.nivel_dificultad||1,duracion:E.duracion||null,start:E.start||!1,equipo:E.equipo||null,responsable:E.responsable||null,plantilla:{id:E.plantilla.id,clave:E.plantilla.clave,categoria:E.plantilla.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:E.plantilla_dependents||[],ids_t_dependientes:E.ids_t_dependientes||[],tarea_padre:O==="hija"?{id:I.data.parentId}:null,id_t_requerida:O==="dependiente"?{id:I.data.parentId}:null,tareas:E.tareas||[],type:"task"};console.log("🟢 createConnectionFromPopup - taskForState creado:",C),console.log("🟢 createConnectionFromPopup - currentTemplate.id:",j.id);const $=e.map(L=>L.id===k?{...L,data:C}:L);console.log("🟢 createConnectionFromPopup - Actualizando nodos en React Flow..."),n($),console.log("✅ createConnectionFromPopup - Nodos actualizados en React Flow"),console.log("🟢 createConnectionFromPopup - Actualizando template layout..."),await D($,A),console.log("✅ createConnectionFromPopup - Template layout actualizado"),console.log("🟢 createConnectionFromPopup - Llamando a updateNodeWithNewEdge..."),await F({templateId:j.id,edge:I,task:C}),console.log("✅ createConnectionFromPopup - updateNodeWithNewEdge completado")}catch(W){console.error("❌ createConnectionFromPopup - Error al crear conexión:",W),console.error("❌ createConnectionFromPopup - Stack:",W.stack)}finally{console.log("🟢 createConnectionFromPopup - Limpiando estado..."),m(!1),c(),console.log("🟢 createConnectionFromPopup - FIN")}},[i,s,m,c,a,e,D]),J=u.useCallback(async H=>{if(!o||!j){x.toast.warning("No hay newNodePopup o template activo para actualizar el nodo");return}const{nodeId:O}=o;if(!O){x.toast.warning("No se encontró nodeId en newNodePopup");return}try{const S=e.find(k=>k.id===O);if(!S){x.toast.warning(`No se encontró el nodo con ID: ${O}`);return}const B={...S,data:{...S.data,...H,id:S.data.id||S.id,type:S.data.type||S.data.type,updatedAt:new Date().toISOString()}};n(k=>k.map(q=>q.id===O?B:q));try{const k=e.map(q=>q.id===O?B:q);await D(k,a)}catch(k){x.toast.error("Error al actualizar layout después de actualizar nodo:",k)}r()}catch(S){x.toast.error("Error al actualizar el nodo:",S)}},[o,j,e,n,a,D,r]);return{createNodeFromPopup:U,createConnectionFromPopup:K,updateNodeFromPopup:J,updateAfterDeleted:v}},Fr=({data:e,id:a,isConnectable:n,selected:s})=>{const o=Te(v=>v.getViewMode),[i,r]=u.useState(!1),[c,m]=u.useState(e),l=Le(v=>v.activeTemplate),d=Le(v=>v.setActiveTemplate),{get:p,update:h}=Be(),f=l!=null&&l.id?o(l.id):"readonly",{updateTaskInTemplate:g}=Sr(),{setNodes:y,setEdges:w,getNodes:j,getEdges:b}=oe.useReactFlow(),_=me.useQueryClient(),{updateAfterDeleted:M}=hs({nodes:j(),edges:b(),setNodes:y,setEdges:w,newNodePopup:null,connectionPopup:null,closeNewNodePopup:()=>{},closeConnectionPopup:()=>{},setIsConnectingExistingNodes:()=>{}}),F=()=>{r(!0)},R=u.useCallback(async()=>{var O,S,B;const v=j().find(k=>k.id===a);if(!v){console.warn("⚠️ Nodo no encontrado para eliminar");return}const U=[v],K=gs(U),J=U.length>0?(S=(O=U[0])==null?void 0:O.data)==null?void 0:S.id:0;w(k=>k.filter(q=>!K.includes(q.source)&&!K.includes(q.target))),y(k=>k.filter(q=>q.id!==a));let H;for(const k of U)try{const q=k.data;if((B=q==null?void 0:q.plantilla)!=null&&B.id){H=q.plantilla.id;break}}catch{}try{w(k=>((async()=>{await M(K,k,H,J)})().catch(q=>{console.error("❌ Error en updateAfterDeleted:",q)}),k))}catch(k){console.error("❌ Error en handleDeleteNode:",k)}},[a,j,b,y,w,M]),N=u.useCallback(async v=>{var U,K,J,H,O,S,B,k,q,ee;if(!l){console.warn("⚠️ MainNode.updateTemplateLayout - No hay template activo");return}try{const W=await p(l.id);if(!W){console.warn("⚠️ MainNode.updateTemplateLayout - Template no encontrado en IndexedDB");return}const re=(U=W.graph_layout)==null?void 0:U.snapshot;if(!(!re||JSON.stringify(re.nodes)!==JSON.stringify(v))){console.log("🔄 MainNode.updateTemplateLayout - No hay cambios en nodos, omitiendo actualización");return}const E=v.filter(I=>{var A;return!((A=I.data)!=null&&A.isInternal)&&!I.parentId}).map(I=>{const{style:A,measured:G,data:P,selected:C,...$}=I,{expandedDimensions:L,isExpanded:T,needsReExpansion:V,...Y}=P||{},ae=A?{...A,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...$,style:ae,data:Y}}),z=(((J=(K=W.graph_layout)==null?void 0:K.snapshot)==null?void 0:J.edges)||[]).filter(I=>{var A;return!((A=I.data)!=null&&A.isInternal)}),Q={...W,graph_layout:{id:((H=W.graph_layout)==null?void 0:H.id)||0,snapshot:{...(O=W.graph_layout)==null?void 0:O.snapshot,nodes:E,edges:z,viewport:((B=(S=W.graph_layout)==null?void 0:S.snapshot)==null?void 0:B.viewport)||{x:0,y:0,zoom:1}},history:((k=W.graph_layout)==null?void 0:k.history)||[],zoom:((q=W.graph_layout)==null?void 0:q.zoom)||1,position:((ee=W.graph_layout)==null?void 0:ee.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await h(l.id,Q),await _.invalidateQueries({queryKey:["template",l.id]}),await _.invalidateQueries({queryKey:["template"]}),l&&l.id===Q.id&&d(Q)}catch(W){console.error("❌ MainNode.updateTemplateLayout - Error al actualizar template layout:",W)}},[l,p,h,d,_]),D=async v=>{if(r(!1),l){const U={...e,texto_corto:v.title,texto_largo:v.description,prioridad:v.priority?typeof v.priority=="number"?v.priority:parseInt(v.priority.toString()):null,nivel_dificultad:v.difficulty?typeof v.difficulty=="number"?v.difficulty:parseInt(v.difficulty.toString()):1,duracion:v.duration?typeof v.duration=="number"?v.duration:parseInt(v.duration.toString()):null,equipo:{id:Number(v.team)||null},responsable:{id:Number(v.responsible)||null}};await g(e.id,U),y(K=>{const J=K.map(H=>H.id===a?{...H,data:{...H.data,...U,tarea_padre:e.tarea_padre,id_t_requerida:e.id_t_requerida,updatedAt:new Date().toISOString()}}:H);return console.log("🔄 updatedNodes:",J),setTimeout(()=>N(J),0),J})}};return u.useEffect(()=>{m(e)},[e]),t.jsxs("div",{className:`tm-border-[1px] tm-bg-white tm-px-4 tm-py-2 tm-rounded-lg tm-transition-all tm-duration-200 tm-max-w-[423px] ${s?"tm-border-brand tm-shadow-lg tm-ring-2 tm-ring-blue-300 tm-ring-opacity-50":e.main?"tm-border-success tm-shadow-sm":"tm-border-default tm-shadow-sm"}`,children:[t.jsx(oe.Handle,{isConnectable:n,id:"top-target",type:"target",position:oe.Position.Top,className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white"}),t.jsx(oe.Handle,{isConnectable:n,id:"right-target",type:"target",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white",position:oe.Position.Right}),t.jsx(oe.Handle,{isConnectable:n,id:"bottom-target",type:"target",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white",position:oe.Position.Bottom}),t.jsx(oe.Handle,{isConnectable:n,id:"left-target",type:"target",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white",position:oe.Position.Left}),t.jsxs("div",{className:"tm-flex tm-h-full tm-flex-col tm-gap-y-8 tm-p-12 ",children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-gap-x-4 ",children:[t.jsx("p",{className:"tm-text-primary tm-font-bold tm-leading-none tm-text-body-lg-regular tm-truncate",children:c.texto_corto}),!e.isInternal&&l.estatusFromStrapi!==Ee.PUBLISHED&&f!=="readonly"&&t.jsx("div",{children:e.type==="task"?t.jsx(x.Popup,{position:"right",absolute:!0,size:"xxs",pill:"pill",color:"secondary",icon:de.faEllipsis,containerClassName:"nopan nodrag",buttonClassName:"nopan nodrag",children:t.jsxs(x.List,{className:"tm-p-8 tm-gap-4",children:[t.jsx(x.ListItem,{icon:de.faEdit,onClick:F,children:"Editar"}),t.jsx(x.ListItem,{icon:de.faPlus,color:"red",onClick:R,children:"Eliminar"})]})}):t.jsx(x.Button,{size:"xxs",color:"secondary",pill:"pill",icon:de.faMaximize,className:"nopan"})})]}),t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-sm-normal ",children:c.texto_largo}),t.jsxs("div",{className:"tm-flex tm-gap-x-6 tm-justify-between",children:[t.jsx(br,{duration:c.duracion}),t.jsx(xr,{difficulty:c.nivel_dificultad}),t.jsx(jr,{priority:c.prioridad}),t.jsx(_r,{responsible:c.responsable})]})]}),t.jsx(oe.Handle,{isConnectable:n,id:"top-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white",position:oe.Position.Top}),t.jsx(oe.Handle,{isConnectable:n,id:"right-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white",position:oe.Position.Right}),t.jsx(oe.Handle,{isConnectable:n,id:"bottom-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white",position:oe.Position.Bottom}),t.jsx(oe.Handle,{isConnectable:n,id:"left-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white",position:oe.Position.Left}),e.type==="task"&&i&&t.jsx(fs,{isOpen:i,onClose:()=>r(!1),onSuccess:D,editMode:!0,taskToEdit:c})]})},Mr=async({tasks_api:e,page:a=1,pageSize:n=10,search:s="",filters:o={}})=>{const i={clave:{$notNull:!0},estatus:{$ne:Ee.DELETED},...s?{$or:[{nombre_plantilla:{$containsi:s}},{clave:{$containsi:s}}]}:{},...Object.keys(o).reduce((m,l)=>(Array.isArray(o[l])?m[l]={id:{$in:o[l]}}:m[l]=o[l],m),{})},r=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}),c=await e.get(`/api/plantillas/all-plantillas?${r}`);return c.data?{data:be(c.data.data),meta:c.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:n,pageCount:0,total:0}}}},xs=({page:e=1,pageSize:a=10,search:n="",filters:s={}})=>{const{tasks_api:o}=he();return me.useQuery({queryKey:["templates",e,a,n,s],queryFn:()=>Mr({tasks_api:o,page:e,pageSize:a,search:n,filters:s}),staleTime:1e3*60*60*24,placeholderData:me.keepPreviousData,select:i=>({data:(i==null?void 0:i.data)||[],meta:i==null?void 0:i.meta})})},bs=({isOpen:e,onClose:a,onSuccess:n,nodeDataType:s,parentNodeInfo:o})=>{var _,M,F,R;const i=Te(N=>N.addNodeWithType),[r,c]=u.useState(0),m=5,[l,d]=u.useState(1),[p,h]=u.useState("");u.useEffect(()=>{e&&(d(1),h(""),c(0))},[e]),u.useEffect(()=>{d(1)},[p]);const{data:f,isLoading:g}=xs({page:l,pageSize:m,search:p}),y=N=>{h(N.target.value)},w=()=>{var D;if(r===0)return;const N=(D=f==null?void 0:f.data)==null?void 0:D.find(v=>v.id===r);if(!N){console.error("No se encontró el flujo de trabajo seleccionado en los datos");return}n?n({templateId:r,templateData:N}):i&&i(s.id,s.type,s.connectionType)};if(g)return t.jsx("div",{children:"Cargando..."});if(!(f!=null&&f.data))return t.jsx("div",{children:"No hay datos disponibles"});const j=((M=(_=f.meta)==null?void 0:_.pagination)==null?void 0:M.total)||0,b=j===1?"flujo encontrado":"flujos encontrados";return t.jsx(x.Modal,{iconConfig:{icon:Ce.faPencil},isOpen:e,size:"lg",onSuccess:w,onClose:a,title:"Agregar flujo de trabajo",successButtonText:"Agregar",disableSuccessButton:r===0,closeAtSuccess:!0,children:t.jsxs(x.Modal.Body,{withPadding:!1,children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-gap-6 tm-px-12 tm-py-3",children:[t.jsxs("p",{className:"tm-flex-1 tm-text-[14px] tm-text-neutral-500",children:[j," ",b]}),t.jsx(x.Input,{className:"tm-flex-1",leftSlot:Ce.faSearch,fullWidth:!0,placeholder:"Buscar por nombre, parámetros o estado...",value:p,onChange:y})]}),t.jsx(x.Separator,{}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-6 tm-p-12",children:[f.data.map(N=>t.jsx(ps,{mode:"modal",template:N,active:r===N.id,fullWidth:!0,onClick:c,withOptions:!1},N.id)),f.data.length===0&&t.jsx("div",{className:"tm-flex tm-items-center tm-justify-center tm-h-full",children:t.jsx("p",{className:"tm-text-[14px] tm-text-neutral-500",children:"No se encontraron flujos de trabajo con ese criterio de búsqueda"})})]}),t.jsx(x.Separator,{}),t.jsx("div",{className:"tm-mt-6",children:t.jsx(x.Pagination,{className:"tm-pt-0",pageSize:m,pageCount:((R=(F=f==null?void 0:f.meta)==null?void 0:F.pagination)==null?void 0:R.pageCount)||1,currentPage:l,onPageChange:N=>d(N)})})]})})},kr=({data:e,id:a})=>{const n=Te(d=>d.addNodeWithType),[s,o]=u.useState(!1),[i,r]=u.useState(!1),[c,m]=u.useState({id:a,type:"tarea",connectionType:"dependiente"}),l=({type:d,connectionType:p})=>{n&&(m({id:a,type:d,connectionType:p}),d==="tarea"?o(!0):d==="plantilla"&&r(!0))};return console.log({data:e,id:a}),t.jsxs("div",{className:"tm-flex tm-items-center tm-justify-center",children:[c.type==="plantilla"&&t.jsx(bs,{isOpen:i,onClose:()=>r(!1),nodeDataType:c}),t.jsx(oe.Handle,{id:"top-target",type:"target",position:oe.Position.Top}),t.jsx(oe.Handle,{id:"right-target",type:"target",position:oe.Position.Right}),t.jsx(oe.Handle,{id:"bottom-target",type:"target",position:oe.Position.Bottom}),t.jsx(oe.Handle,{id:"left-target",type:"target",position:oe.Position.Left}),t.jsx(oe.Handle,{id:"top-source",type:"source",position:oe.Position.Top}),t.jsx(oe.Handle,{id:"right-source",type:"source",position:oe.Position.Right}),t.jsx(oe.Handle,{id:"bottom-source",type:"source",position:oe.Position.Bottom}),t.jsx(oe.Handle,{id:"left-source",type:"source",position:oe.Position.Left}),t.jsx(x.Popup,{position:"right",absolute:!0,size:"md",rounded:!0,icon:de.faPlus,containerClassName:"nopan",buttonClassName:"nopan",children:t.jsxs(x.List,{className:"nopan nodrag",children:[t.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Tarea"}),t.jsx(x.ListItem,{icon:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>l({type:"tarea",connectionType:"dependiente"}),children:"Dependiente"}),t.jsx(x.ListItem,{icon:de.faArrowDownRight,iconColor:"neutral",onClick:()=>l({type:"tarea",connectionType:"hija"}),children:"Hija"}),t.jsx(x.ListSeparator,{}),t.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Flujo de trabajo"}),t.jsx(x.ListItem,{icon:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>l({type:"plantilla",connectionType:"dependiente"}),children:"Dependiente"}),t.jsx(x.ListItem,{icon:de.faArrowDownRight,iconColor:"neutral",onClick:()=>l({type:"plantilla",connectionType:"hija"}),children:"Hija"})]})})]})},Or=({isOpen:e,position:a,onClose:n,createNodeFromPopup:s,parentNodeInfo:o})=>{const[i,r]=u.useState(!1),[c,m]=u.useState(!1),[l,d]=u.useState(null);if(!e)return null;const p=(w,j)=>{d({type:w,connectionType:j}),w==="tarea"?r(!0):w==="plantilla"&&m(!0)},h=()=>{r(!1),d(null),n()},f=()=>{m(!1),d(null),n()},g=w=>{l&&s(l.type,l.connectionType,w),h()},y=w=>{l&&w&&s(l.type,l.connectionType,w),f()};return t.jsxs(t.Fragment,{children:[!i&&!c&&t.jsx("div",{className:"tm-fixed tm-inset-0 tm-z-50",onClick:n}),!i&&!c&&t.jsx("div",{className:"tm-fixed tm-z-50 tm-bg-white tm-rounded-lg tm-shadow-lg tm-border tm-border-black-light tm-min-w-[200px]",style:{left:a.x+50,top:a.y-100},children:t.jsx("div",{className:"tm-p-2",children:t.jsxs(x.List,{children:[t.jsx("p",{className:"tm-text-sm tm-p-4 tm-gap-4 tm-font-medium tm-text-neutral-300",children:"Tarea"}),t.jsx(x.ListItem,{icon:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>p("tarea","dependiente"),children:"Dependiente"}),t.jsx(x.ListItem,{icon:de.faArrowDownRight,iconColor:"neutral",onClick:()=>p("tarea","hija"),children:"Hija"}),t.jsx(x.ListSeparator,{}),t.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Flujo de trabajo"}),t.jsx(x.ListItem,{icon:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>p("plantilla","dependiente"),children:"Dependiente"})]})})}),i&&l&&t.jsx(fs,{isOpen:i,onClose:h,onSuccess:g,nodeDataType:{id:"",type:l.type,connectionType:l.connectionType},parentNodeInfo:o}),c&&l&&t.jsx(bs,{isOpen:c,onClose:f,onSuccess:y,nodeDataType:{id:"",type:l.type,connectionType:l.connectionType},parentNodeInfo:o})]})};function Lr({reactFlowWrapper:e,nodes:a}){const{setViewport:n,getViewport:s}=oe.useReactFlow(),{zoom:o}=oe.useViewport(),i=Math.round(o*100),[r,c]=u.useState([]),[m,l]=u.useState(-1),[d,p]=u.useState(!1),[h,f]=u.useState(0);u.useLayoutEffect(()=>{const F=e==null?void 0:e.current;if(F){const R=F.getBoundingClientRect();f(R.width)}},[e]);const g=u.useMemo(()=>{var D;if(!a||a.length===0)return{x:0,y:0,zoom:1};const F=a.find(v=>{var U;return(U=v==null?void 0:v.data)==null?void 0:U.main})??a[0];return{x:(h||(typeof window<"u"?window.innerWidth:0))/2-(((D=F==null?void 0:F.position)==null?void 0:D.x)??0),y:20,zoom:1}},[a,h]),y=u.useCallback(F=>{if(!d){const R=[...r.slice(0,m+1),F];c(R),l(R.length-1)}},[r,m,d]),w=u.useCallback(()=>{if(d)return;const F=s(),R=Math.min(F.zoom*1.2,2);y(F),p(!0),n({x:F.x,y:F.y,zoom:R}),setTimeout(()=>p(!1),100)},[s,n,y,d]),j=u.useCallback(()=>{if(d)return;const F=s(),R=Math.max(F.zoom/1.2,.5);y(F),p(!0),n({x:F.x,y:F.y,zoom:R}),setTimeout(()=>p(!1),100)},[s,n,y,d]),b=u.useCallback(()=>{if(d)return;const F=s();Math.abs(F.zoom-1)>.01&&y(F),p(!0),n({x:F.x,y:F.y,zoom:1}),setTimeout(()=>p(!1),100)},[s,n,y,d]),_=u.useCallback(()=>{if(d||m<=0)return;const F=r[m-1];p(!0),n(F),l(m-1),setTimeout(()=>p(!1),100)},[m,r,n,d]);return u.useEffect(()=>{r.length===0&&(c([{zoom:1,x:0,y:0}]),l(0))},[r.length]),{isReady:h!==0&&Array.isArray(a)&&a.length>0,defaultViewport:g,zoomPercentage:i,handleZoomIn:w,handleZoomOut:j,handleZoomTo100:b,handleDoubleClick:_}}const Br=e=>{var i,r;const a=((i=e.data)==null?void 0:i.isInternal)||!1,n=(r=e.data)==null?void 0:r.originalGroupId,s=e.selected||!1,o=c=>{if(c.preventDefault(),c.stopPropagation(),n){const l=Te.getState().collapseGroup;l&&l(n)}};return t.jsxs("div",{className:`tm-flex tm-flex-col tm-border-[1px] tm-gap-y-2 tm-rounded-lg tm-bg-white tm-p-3 tm-transition-all tm-duration-200 ${s?"tm-border-blue-500 tm-shadow-lg tm-ring-2 tm-ring-blue-300 tm-ring-opacity-50":"tm-border-black-light tm-shadow-sm"}`,children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-2",children:[t.jsx(x.Icon,{name:ze.faFlag,size:"sm",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,background:!0,padding:"md"}),t.jsx("p",{className:"tm-text-primary tm-font-body-sm-semibold tm-leading-none tm-text-body-sm-regular tm-truncate tm-tracking-wider",children:e.data.clave}),a&&t.jsx(x.Button,{size:"sm",color:"secondary",onClick:o,className:"tm-p-2 nopan nodrag",icon:de.faMinimize,pill:"pill"})]}),a&&t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-2",children:[t.jsx(x.Tag,{color:e.data.estatus==="published"?"success":"warning",label:e.data.estatus==="published"?"Publicado":"Borrador"}),(e.data.updatedAt||e.data.updated_at)&&t.jsx("p",{className:"tm-text-sm tm-text-neutral-500 tm-font-medium",children:new Date(e.data.updatedAt||e.data.updated_at).toLocaleDateString("es-ES")})]}),t.jsx(oe.Handle,{id:"bottom-source",type:"source",position:oe.Position.Bottom,className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white tm-cursor-crosshair"}),t.jsx(oe.Handle,{id:"top-target",type:"target",position:oe.Position.Top,className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white tm-cursor-crosshair"})]})},Rr=()=>{const e=u.useCallback((o,i,r,c)=>{const m=(p,h)=>{const f=p.position.x,g=p.position.y,y=120,w=60,j=15;switch(h){case"top-source":case"top-target":return{x:f,y:g-w/2-j};case"bottom-source":case"bottom-target":return{x:f,y:g+w/2+j};case"left-source":case"left-target":return{x:f-y/2-j,y:g};case"right-source":case"right-target":return{x:f+y/2+j,y:g};default:return{x:f,y:g}}},l=m(o,r),d=m(i,c);return Math.sqrt(Math.pow(d.x-l.x,2)+Math.pow(d.y-l.y,2))},[]),a=u.useCallback((o,i)=>{if(o.includes("source")===i.includes("source"))return!1;const r=d=>d.includes("top")?"top":d.includes("bottom")?"bottom":d.includes("left")?"left":d.includes("right")?"right":null,c=r(o),m=r(i);return{top:"bottom",bottom:"top",left:"right",right:"left"}[c]===m},[]),n=u.useCallback((o,i)=>{const r=["top-source","bottom-source","left-source","right-source"],c=["top-target","bottom-target","left-target","right-target"];let m=1/0,l={handle1:r[0],handle2:c[0]};for(const d of r)for(const p of c){if(!a(d,p))continue;const h=e(o,i,d,p);h<m&&(m=h,l={handle1:d,handle2:p})}return l},[e,a]),s=u.useCallback((o,i,r=800)=>Math.sqrt(Math.pow(i.position.x-o.position.x,2)+Math.pow(i.position.y-o.position.y,2))<r,[]);return{findClosestHandles:n,calculateHandleDistance:e,areHandlesCompatible:a,shouldApplyMagneticConnection:s}},qr=e=>{const[a,n]=u.useState(null),[s,o]=u.useState(null),[i,r]=u.useState(!1),c=u.useCallback((h,f,g,y)=>{n({isOpen:!0,nodeId:h,position:f,sourceNodeId:g,sourceHandleId:y})},[]),m=u.useCallback(()=>{n(null)},[]),l=u.useCallback((h,f,g,y,w)=>{r(!0),o({isOpen:!0,sourceNodeId:h,sourceHandleId:g,targetNodeId:f,targetHandleId:y,position:w})},[]),d=u.useCallback(()=>{r(!1),o(null)},[]),p=u.useCallback(()=>{var f,g,y;if(!(a!=null&&a.sourceNodeId))return null;const h=e.find(w=>w.id===a.sourceNodeId);return h?{id:h.id,label:(f=h.data)==null?void 0:f.label,nodeType:(g=h.data)==null?void 0:g.nodeType,connectionType:(y=h.data)==null?void 0:y.connectionType,data:h.data}:null},[a,e]);return{newNodePopup:a,connectionPopup:s,isConnectingExistingNodes:i,openNewNodePopup:c,closeNewNodePopup:m,openConnectionPopup:l,closeConnectionPopup:d,getParentNodeInfo:p,setIsConnectingExistingNodes:r}},zr=({initialNodes:e,initialEdges:a})=>{const[n,s,o]=oe.useNodesState(jt(e)),[i,r,c]=oe.useEdgesState(a),[m,l]=u.useState(!1),d=u.useCallback(I=>{r(I)},[r]),{toObject:p}=oe.useReactFlow(),{findClosestHandles:h,shouldApplyMagneticConnection:f}=Rr(),{updateGraphLayout:g,get:y,update:w}=Be(),j=Le(I=>I.activeTemplate),b=Le(I=>I.setActiveTemplate),_=me.useQueryClient(),{removeParentIdFromNodes:M}=nt(),{newNodePopup:F,connectionPopup:R,isConnectingExistingNodes:N,openNewNodePopup:D,closeNewNodePopup:v,openConnectionPopup:U,closeConnectionPopup:K,getParentNodeInfo:J,setIsConnectingExistingNodes:H}=qr(n),{createNodeFromPopup:O,createConnectionFromPopup:S,updateNodeFromPopup:B,updateAfterDeleted:k}=hs({nodes:n,edges:i,setNodes:s,setEdges:d,newNodePopup:F,connectionPopup:R,closeNewNodePopup:v,closeConnectionPopup:K,setIsConnectingExistingNodes:H});u.useEffect(()=>{if(e&&e.length>0){if(!(e.some((L,T)=>{const V=n[T];return V?L.id!==V.id||JSON.stringify(L.position)!==JSON.stringify(V.position)||JSON.stringify(L.data)!==JSON.stringify(V.data):!0})||e.length!==n.filter(L=>{var T;return!((T=L.data)!=null&&T.isInternal)}).length)&&n.length>0)return;const{expandedGroups:A,groupTemplateData:G}=Te.getState(),P=jt(e),C=new Set(P.map(L=>L.id));let $=n.filter(L=>{var T,V;return((T=L.data)==null?void 0:T.isInternal)&&typeof((V=L.data)==null?void 0:V.originalGroupId)=="string"&&A.has(L.data.originalGroupId)&&C.has(L.data.originalGroupId)});if($.length>0){const L=P.map(T=>{var V;if(A.has(T.id)){const Y=n.find(le=>le.id===T.id),ae=(V=Y==null?void 0:Y.data)==null?void 0:V.expandedDimensions;if(ae)return{...T,style:{...T.style,width:ae.width,height:ae.height},data:{...T.data,isExpanded:!0,expandedDimensions:ae}}}return T});s([...L,...$])}else if(A.size>0){const L=P.map(T=>A.has(T.id)&&G[T.id]?{...T,data:{...T.data,isExpanded:!0,needsReExpansion:!0}}:T);s(L)}else s(P)}else s([])},[e,s]),u.useEffect(()=>{if(!m&&a&&a.length>0){const{expandedGroups:I}=Te.getState(),A=jt(e),G=new Set(A.map($=>$.id)),P=i.filter($=>{var L,T;return((L=$.data)==null?void 0:L.isInternal)&&typeof((T=$.data)==null?void 0:T.originalGroupId)=="string"&&I.has($.data.originalGroupId)&&G.has($.data.originalGroupId)}),C=i.filter($=>{var L,T;return((L=$.data)==null?void 0:L.redirectedToInternal)&&typeof((T=$.data)==null?void 0:T.originalTarget)=="string"&&I.has($.data.originalTarget)&&G.has($.data.originalTarget)});if(P.length>0||C.length>0){const $=a.filter(L=>!C.some(T=>{var V;return((V=T.data)==null?void 0:V.originalTarget)===L.target}));d([...$,...P,...C])}else d(a)}},[a,d,m]);const q=u.useCallback((I,A,G=!1)=>{const C=i.filter(T=>T.target===A).length>0;if(i.some(T=>T.source===I&&T.target===A||T.source===A&&T.target===I)&&!G)return x.toast.warning("La tarea destino ya tiene una conexión"),!1;const L=!C;return typeof window<"u"&&(window.validConnectionTypes={dependiente:L,hija:L}),L?!0:(x.toast.warning("La tarea destino ya tiene una conexión de entrada"),!1)},[i]),ee=u.useCallback(I=>{if(!Ar(I.source,I.target))return;Xe(I.source)&&!I.sourceHandle&&(I.sourceHandle=_e.DEFAULT_SOURCE_HANDLE);const A=n.find(P=>P.id===I.source),G=n.find(P=>P.id===I.target);if(A&&G){if(!q(I.source,I.target))return;U(I.source,I.target,I.sourceHandle,I.targetHandle);return}return d(P=>oe.addEdge(I,P))},[n,U,d,q]),W=u.useCallback((I,A)=>{var G;if(!N&&!A.isValid&&A.fromNode){const P=n.find(ae=>ae.id===A.fromNode.id);if((P==null?void 0:P.type)==="group"){x.toast.warning("En una plantilla, no se puede crear una conexión");return}const C=Ir(I),$=document.elementFromPoint(C.x,C.y);if($!=null&&$.closest(".react-flow__node"))return;const L=crypto.randomUUID(),T=((G=A.fromHandle)==null?void 0:G.id)||_e.DEFAULT_SOURCE_HANDLE,Y=Xe(A.fromNode.id)?_e.DEFAULT_SOURCE_HANDLE:T;D(L,C,A.fromNode.id,Y)}},[N,D,n]),re=u.useCallback(async I=>{var C,$,L;const A=gs(I),G=I.length>0?($=(C=I[0])==null?void 0:C.data)==null?void 0:$.id:0;d(T=>T.filter(V=>!A.includes(V.source)&&!A.includes(V.target)));let P;for(const T of I)try{const V=T.data;if((L=V==null?void 0:V.plantilla)!=null&&L.id){P=V.plantilla.id;break}}catch{}try{d(T=>((async()=>{await k(A,T,P,G)})().catch(V=>{console.error("❌ Error en updateAfterDeleted:",V)}),T))}catch(T){console.error("❌ Error en onDeleteNode:",T)}},[d,k]),Z=u.useCallback(async I=>{var G,P,C,$,L,T,V,Y,ae,le,X,se,ce,ie;if(!I||I.length===0)return;let A;if(j!=null&&j.id)A=j.id;else for(const te of I){const ue=n.find(xe=>xe.id===te.source),fe=n.find(xe=>xe.id===te.target);if(ue!=null&&ue.data&&typeof ue.data=="object"&&"plantilla"in ue.data){const xe=ue.data.plantilla;if(xe!=null&&xe.id){A=xe.id;break}}if(fe!=null&&fe.data&&typeof fe.data=="object"&&"plantilla"in fe.data){const xe=fe.data.plantilla;if(xe!=null&&xe.id){A=xe.id;break}}}if(!A){console.warn("⚠️ onEdgesDelete - No se pudo obtener templateId");return}try{const te=await y(A);if(!te){console.warn("⚠️ onEdgesDelete - Template no encontrado en IndexedDB");return}const ue=I.map(je=>je.id),fe=((C=(P=(G=te.graph_layout)==null?void 0:G.snapshot)==null?void 0:P.edges)==null?void 0:C.filter(je=>{var ke;return!ue.includes(je.id)&&!((ke=je.data)!=null&&ke.isInternal)}))||[],pe=(((T=(L=($=te.graph_layout)==null?void 0:$.snapshot)==null?void 0:L.nodes)==null?void 0:T.filter(je=>{var ke;return!((ke=je.data)!=null&&ke.isInternal)&&!je.parentId}))||[]).map(je=>{const{style:ke,measured:pt,data:rt,...it}=je,{expandedDimensions:et,isExpanded:Vt,needsReExpansion:pl,...Wt}=rt||{},Ms=ke?{...ke,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0,ks=je.data.id===I[0].data.childId?{...Wt,tarea_padre:null,id_t_requerida:null}:Wt;return{...it,style:Ms,data:ks}}),ye=((Y=(V=te.graph_layout)==null?void 0:V.snapshot)==null?void 0:Y.edges)||[];if(!(JSON.stringify(ye)!==JSON.stringify(fe)))return;const Ne={...te,graph_layout:{id:((ae=te.graph_layout)==null?void 0:ae.id)||0,snapshot:{nodes:pe,edges:fe,viewport:((X=(le=te.graph_layout)==null?void 0:le.snapshot)==null?void 0:X.viewport)||{x:0,y:0,zoom:1}},history:((se=te.graph_layout)==null?void 0:se.history)||[],zoom:((ce=te.graph_layout)==null?void 0:ce.zoom)||1,position:((ie=te.graph_layout)==null?void 0:ie.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await M({templateId:A,id:I[0].data.childId}),await w(A,Ne),console.log("🗑️ [useFlow] Invalidando caché de la plantilla:",A),await _.invalidateQueries({queryKey:["template",A]}),await _.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlow] Caché invalidado exitosamente"),A===(j==null?void 0:j.id)&&b(Ne)}catch(te){console.error("❌ onEdgesDelete - Error al actualizar template layout:",te)}},[n,j,y,w,b,M]),E=u.useCallback(async I=>!I.nodes.some(G=>G.type==="start"||G.id===_e.START_NODE_ID),[]),z=u.useCallback((I,A,G)=>{var L,T,V;const P=n.find(Y=>Y.id===A.id);if(!P)return;if(P.type==="group"&&((L=P.data)!=null&&L.isExpanded)){d(Y=>Y.map(ae=>{if(ae.hidden&&ae.target===A.id){const{hidden:le,...X}=ae;return X}return ae}));return}let C;if(P.type==="group"?C=j==null?void 0:j.id:(V=(T=A==null?void 0:A.data)==null?void 0:T.plantilla)!=null&&V.id&&(C=A.data.plantilla.id),!C)return;const $=i.map(Y=>{var X,se,ce,ie,te;if(wt(Y))return Y;const ae=n.find(ue=>ue.id===Y.source),le=n.find(ue=>ue.id===Y.target);if(ae&&le){const ue=ae.type==="group"&&((X=ae.data)==null?void 0:X.isExpanded),fe=le.type==="group"&&((se=le.data)==null?void 0:se.isExpanded),xe=(ce=ae.data)==null?void 0:ce.isInternal,pe=(ie=le.data)==null?void 0:ie.isInternal,ye=(te=Y.data)==null?void 0:te.redirectedToInternal;if(ue||fe||xe||pe||ye)return Y;if(ae.id===A.id||le.id===A.id||f(ae,le,_e.MAGNETIC_CONNECTION_DISTANCE)){const Ne=h(ae,le);if(Ne!=null&&Ne.handle1&&(Ne!=null&&Ne.handle2))return{...Y,sourceHandle:Ne.handle1,targetHandle:Ne.handle2}}}return Y});if(JSON.stringify(i)!==JSON.stringify($))d($),setTimeout(()=>{const Y=p();g(C,Y)},100);else{const Y=p();g(C,Y)}},[n,i,j,g,p,d,h,f]),Q=u.useCallback(I=>{o(I);const A=Dr(I);if(A.length>0){const G=A.filter(P=>{var $;const C=n.find(L=>L.id===P);return(C==null?void 0:C.type)==="group"&&(($=C==null?void 0:C.data)==null?void 0:$.isExpanded)});if(G.length>0){d(P=>P.map(C=>{var T;const $=G.includes(C.target),L=!((T=C.data)!=null&&T.redirectedToInternal);return $&&L?{...C,hidden:!0}:C}));return}l(!0),setTimeout(()=>{const P=i.map($=>{var V,Y,ae,le;if(wt($))return{...$};const L=n.find(X=>X.id===$.source),T=n.find(X=>X.id===$.target);if(L&&T){const X=L.type==="group"&&((V=L.data)==null?void 0:V.isExpanded),se=T.type==="group"&&((Y=T.data)==null?void 0:Y.isExpanded),ce=(ae=L.data)==null?void 0:ae.isInternal,ie=(le=T.data)==null?void 0:le.isInternal;if(X||se||ce||ie)return{...$};if(f(L,T,_e.MAGNETIC_CONNECTION_DISTANCE)){const te=h(L,T);if(te!=null&&te.handle1&&(te!=null&&te.handle2)&&($.sourceHandle!==te.handle1||$.targetHandle!==te.handle2))return{...$,sourceHandle:te.handle1,targetHandle:te.handle2}}}return{...$}});if(i.some(($,L)=>{const T=P[L];return $.sourceHandle!==T.sourceHandle||$.targetHandle!==T.targetHandle})){const $=P.map(L=>({...L,id:L.id}));d($)}setTimeout(()=>{l(!1)},200)},0)}},[o,i,n,d,h,f,l]);return{nodes:n,edges:i,newNodePopup:F,connectionPopup:R,setNodes:s,setEdges:d,onEdgesChange:c,onConnect:ee,onConnectEnd:W,onDeleteNode:re,onEdgesDelete:Z,onBeforeDelete:E,handleNodesChange:Q,onDragEnd:z,getParentNodeInfo:J,isProtectedConnection:wt,isStartNode:Xe,createNodeFromPopup:O,updateNodeFromPopup:B,closeNewNodePopup:v,createConnectionFromPopup:S,closeConnectionPopup:K}},$r=({isOpen:e,onClose:a,createConnectionFromPopup:n,availableConnections:s})=>{if(!e)return null;const o=s||{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}},i=(r,c)=>{(r==="tarea"?o.tarea[c]:o.plantilla[c])&&n(r,c)};return t.jsx(t.Fragment,{children:t.jsxs("div",{className:"tm-fixed tm-inset-0 tm-z-50 tm-flex tm-items-center tm-justify-center",children:[t.jsx("div",{className:"tm-bg-black/20 tm-absolute tm-inset-0",onClick:a}),t.jsx("div",{className:"tm-shadow-lg tm-border-default tm-border-1 tm-relative tm-rounded-lg tm-bg-white tm-p-4",children:t.jsx("div",{children:t.jsxs(x.List,{children:[t.jsx("p",{className:"tm-text-sm tm-px-4 tm-font-medium tm-text-neutral-300",children:"Tarea"}),t.jsxs(x.ListItem,{icon:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("tarea","dependiente"),children:["Dependiente ",!o.tarea.dependiente&&"(No disponible)"]}),t.jsxs(x.ListItem,{icon:de.faArrowDownRight,iconColor:"neutral",onClick:()=>i("tarea","hija"),children:["Hija ",!o.tarea.hija&&"(No disponible)"]}),t.jsx(x.ListSeparator,{}),t.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Flujo de trabajo"}),t.jsxs(x.ListItem,{icon:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("plantilla","dependiente"),children:["Dependiente ",!o.plantilla.dependiente&&"(No disponible)"]})]})})})]})})},Ur=({data:e,id:a,selected:n})=>{const{expandedGroups:s}=Te(),[o,i]=u.useState(!1),r=u.useRef(!1);u.useEffect(()=>{const p=(e==null?void 0:e.needsReExpansion)&&s.has(a),h=(e==null?void 0:e.templateId)||(e==null?void 0:e.id);if(p&&h&&!r.current){r.current=!0;const g=Te.getState().expandGroup;g&&g(a,h).catch(y=>{console.error("Error al re-expandir grupo:",y),r.current=!1})}s.has(a)||(r.current=!1)},[e,a,s]);const c=async p=>{p.preventDefault(),p.stopPropagation();const h=(e==null?void 0:e.templateId)||(e==null?void 0:e.id);if(h){i(!0);try{const f=Te.getState(),g=f.expandGroup,y=f.collapseGroup,w=s.has(a);w&&y?y(a):!w&&g&&await g(a,h)}catch{}finally{i(!1)}}},m=s.has(a),l=e==null?void 0:e.expandedDimensions,d=m&&l?{width:l.width,height:l.height,minWidth:l.width,minHeight:l.height}:{minWidth:268,minHeight:80};return t.jsxs("div",{className:`tm-rounded-lg tm-relative tm-transition-all tm-duration-200 ${n?"tm-bg-white tm-border-[1px] tm-border-blue-500 tm-shadow-lg tm-ring-2 tm-ring-blue-300 tm-ring-opacity-50":m?"tm-bg-neutral-50 tm-border-2 tm-border-blue-300 tm-shadow-lg":"tm-bg-white tm-border-2 tm-border-black-light"}`,style:d,children:[t.jsx(ot,{isLoading:o}),t.jsx(oe.Handle,{id:"top-target",type:"target",position:oe.Position.Top,className:`tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white ${m?"tm-opacity-0 tm-pointer-events-none":""}`,isConnectable:!m}),t.jsx(oe.Handle,{id:"right-target",type:"target",className:`tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white ${m?"tm-opacity-0 tm-pointer-events-none":""}`,position:oe.Position.Right,isConnectable:!m}),t.jsx(oe.Handle,{id:"bottom-target",type:"target",className:`tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white ${m?"tm-opacity-0 tm-pointer-events-none":""}`,position:oe.Position.Bottom,isConnectable:!m}),t.jsx(oe.Handle,{id:"left-target",type:"target",className:`tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-white ${m?"tm-opacity-0 tm-pointer-events-none":""}`,position:oe.Position.Left,isConnectable:!m}),!m&&t.jsxs("div",{className:"tm-flex tm-justify-between tm-gap-x-8 tm-p-16",children:[t.jsx(x.Icon,{name:de.faChartDiagram,color:"brand",size:"lg"}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:[t.jsx("p",{className:"tm-text-primary tm-font-bold tm-leading-none tm-text-body-lg-regular tm-truncate tm-tracking-wider",children:e.clave||e.nombre_plantilla||"N/A"}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-4",children:[t.jsx(x.Badge,{size:"sm",theme:"soft",color:e.estatus==="published"?"success":"warning",label:e.estatus==="published"?"Publicado":"Borrador"}),e.updatedAt&&t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-semibold",children:new Date(e.updatedAt).toLocaleDateString("es-ES")})]})]}),t.jsx("div",{children:t.jsx(x.Button,{size:"sm",color:"secondary",pill:"pill",onClick:c,disabled:o,className:`tm-p-2 ${o?"tm-opacity-50":""} nopan nodrag`,icon:m?Ce.faCompress:Ce.faExpand})})]})]})},Hr=(e,a,n,s)=>{const o=u.useRef(e),i=u.useRef(a);u.useEffect(()=>{o.current=e},[e]),u.useEffect(()=>{i.current=a},[a]);const{expandedGroups:r,groupTemplateData:c,toggleGroupExpansion:m,setGroupTemplateData:l,clearGroupTemplateData:d}=Te(),p=me.useQueryClient(),{getTemplateWithTasks:h}=is(),{hydrateTasks:f}=ds(),g=u.useCallback(async(b,_)=>{var M,F,R,N;try{await p.invalidateQueries({queryKey:["template",_]});const D=await h(_),v=(R=(F=(M=D==null?void 0:D.graph_layout)==null?void 0:M.snapshot)==null?void 0:F.nodes)==null?void 0:R.filter(T=>{var V,Y;return((V=T.data)==null?void 0:V.isInternal)||T.parentId||((Y=T.id)==null?void 0:Y.includes("-internal-"))});if(v&&v.length>0&&console.warn("⚠️ [expandGroup] Nodos sospechosos en API para plantilla",_,":",v),!((N=D==null?void 0:D.graph_layout)!=null&&N.snapshot))throw new Error(`No se encontraron datos de graph_layout en la plantilla: ${_}`);const U=D.graph_layout.snapshot.nodes||[],K=U.filter(T=>{var X,se;const V=(X=T.data)==null?void 0:X.isInternal,Y=!!T.parentId,ae=(se=T.id)==null?void 0:se.includes("-internal-"),le=V||Y||ae;return le&&console.warn("🗑️ [expandGroup] Filtrando nodo corrupto:",{id:T.id,type:T.type,esInterno:V,tieneParentId:Y,tieneInternalEnId:ae}),!le}),J={...D,graph_layout:{...D.graph_layout,snapshot:{...D.graph_layout.snapshot,nodes:K,edges:(D.graph_layout.snapshot.edges||[]).filter(T=>{var V,Y;return!((V=T.data)!=null&&V.isInternal)&&!((Y=T.id)!=null&&Y.includes("-internal-"))})}}},H=U.length-K.length;H>0?console.warn(`⚠️ [expandGroup] Se filtraron ${H} nodos internos corruptos de la BD para plantilla ${_}`):console.log(`✅ [expandGroup] No se encontraron nodos corruptos en plantilla ${_}`);const O=await f(J),S={...J,hydratedNodes:O,nodes:O||J.graph_layout.snapshot.nodes||[],edges:J.graph_layout.snapshot.edges||[]},B=S.nodes,k=S.edges;if(!B||!k){console.error("❌ No se encontraron nodos o edges en la plantilla:",_);return}l(b,{nodes:B,edges:k,viewport:S.graph_layout.snapshot.viewport||{x:0,y:0,zoom:1}});const q=o.current.find(T=>T.id===b);if(!q){console.error("❌ No se encontró el nodo grupo:",b);return}const ee=B.filter(T=>T.id!==b);let W=1/0,re=1/0,Z=-1/0,E=-1/0;ee.forEach(T=>{var te,ue,fe,xe,pe,ye;const V=((te=T.position)==null?void 0:te.x)||0,Y=((ue=T.position)==null?void 0:ue.y)||0,ae=typeof((fe=T.style)==null?void 0:fe.width)=="number"?T.style.width:((xe=T.measured)==null?void 0:xe.width)||268,le=typeof((pe=T.style)==null?void 0:pe.height)=="number"?T.style.height:((ye=T.measured)==null?void 0:ye.height)||111,X=V-ae/2,se=V+ae/2,ce=Y,ie=Y+le;W=Math.min(W,X),re=Math.min(re,ce),Z=Math.max(Z,se),E=Math.max(E,ie)});const z=80,Q=60,I=Z-W,A=E-re,G=I+z*2,P=A+z*2+Q,C=B.map((T,V)=>{var te,ue;if(T.id===b)return null;const Y=((te=T.position)==null?void 0:te.x)||0,ae=((ue=T.position)==null?void 0:ue.y)||0,le=Y-W+z,X=ae-re+z+Q,se=T.type==="start"||T.id==="start",ce=se?{...T.data,estatus:q.data.estatus,updatedAt:q.data.updatedAt,createdAt:q.data.createdAt,isInternal:!0,originalGroupId:b,originalNodeId:T.id}:{...T.data,isInternal:!0,originalGroupId:b,originalNodeId:T.id};return{...T,id:`${b}-internal-${T.id}`,parentId:b,extent:"parent",type:T.type==="group"?"main":T.type,position:{x:le,y:X},style:{...T.style},data:ce,draggable:!1,selectable:se,selected:!1,deletable:!1,connectable:!1,focusable:se,zIndex:999}}).filter(Boolean),$=k.map(T=>{const V=C.some(le=>le&&le.id===`${b}-internal-${T.source}`),Y=C.some(le=>le&&le.id===`${b}-internal-${T.target}`);return!V||!Y?null:{...T,id:`${b}-internal-${T.id}`,source:`${b}-internal-${T.source}`,target:`${b}-internal-${T.target}`,style:{...T.style},data:{...T.data,isInternal:!0,originalGroupId:b}}}).filter(Boolean),L=C.find(T=>{var V;return T&&((V=T.data)==null?void 0:V.originalNodeId)==="start"});L&&s(T=>T.map(V=>V.target===b?{...V,target:L.id,targetHandle:"top-target",data:{...V.data,redirectedToInternal:!0,originalTarget:b,originalTargetHandle:V.targetHandle}}:V)),m(b),n(T=>[...T.map(Y=>{if(Y.id===b){const{needsReExpansion:ae,...le}=Y.data||{};return{...Y,style:{...Y.style,width:G,height:P},data:{...le,isExpanded:!0,expandedDimensions:{width:G,height:P}},zIndex:1e3}}return Y}),...C]),s(T=>[...T,...$])}catch(D){console.error("❌ Error al expandir el grupo:",D)}},[p,h,f,l,m,n,s]),y=u.useCallback(b=>{var v,U;const _=o.current,M=i.current,F=_.find(K=>K.id===b),R=((v=F==null?void 0:F.data)==null?void 0:v.templateId)||((U=F==null?void 0:F.data)==null?void 0:U.id),N=_.filter(K=>!K.id.startsWith(`${b}-internal-`)&&K.parentId!==b).map(K=>K.id===b?{...K,style:{...K.style,width:void 0,height:void 0},data:{...K.data,isExpanded:!1,expandedDimensions:void 0},zIndex:void 0}:K),D=M.filter(K=>!K.id.startsWith(`${b}-internal-`)).map(K=>{var J,H;if((J=K.data)!=null&&J.redirectedToInternal&&((H=K.data)==null?void 0:H.originalTarget)===b){const{redirectedToInternal:O,originalTarget:S,originalTargetHandle:B,...k}=K.data;return{...K,target:b,targetHandle:B||K.targetHandle,data:k}}return K});n(N),s(D),m(b),d(b),R&&p.invalidateQueries({queryKey:["template",R]})},[n,s,m,d,p]),w=u.useCallback(async(b,_)=>{r.has(b)?y(b):await g(b,_)},[r,g,y]),j=u.useCallback(b=>r.has(b),[r]);return{expandGroup:g,collapseGroup:y,toggleGroup:w,isGroupExpanded:j,groupTemplateData:c}},Kr=()=>{const{getNodes:e,setNodes:a,screenToFlowPosition:n,setCenter:s}=oe.useReactFlow(),{copiedNodes:o,setCopiedNodes:i,getViewMode:r}=Te(),{activeTemplate:c,setActiveTemplate:m}=Le(),{updateGraphLayout:l,get:d,update:p}=Be(),h=c!=null&&c.id?r(c.id):"readonly",f=u.useCallback(()=>`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,[]),g=u.useCallback(()=>e().filter(N=>N.selected).filter(N=>!(N.type==="start"||N.id==="start"||N.type==="group")),[e]),y=u.useCallback(()=>{if(h==="readonly"){x.toast.error("No puedes copiar tareas en modo solo lectura");return}if(!c){x.toast.error("No hay una plantilla activa");return}const M=g();if(M.length===0){const R=e().filter(N=>N.selected);if(R.length>0){const N=R.some(v=>v.type==="group"),D=R.some(v=>v.type==="start"||v.id==="start");N?x.toast.error("Las plantillas conectadas no pueden ser copiadas"):D&&x.toast.error("El nodo de inicio no puede ser copiado")}else x.toast.error("No hay tareas seleccionadas para copiar");return}const F=M.map(R=>{const{selected:N,...D}=R;return{...D,data:{...D.data,_originalTemplateId:c.id}}});i(F),x.toast.success(`${M.length} ${M.length===1?"tarea copiada":"tareas copiadas"} con éxito`)},[h,c,g,e,i]),w=u.useCallback(async M=>{if(h==="readonly"){x.toast.error("No puedes pegar tareas en modo solo lectura");return}if(!c){x.toast.error("No hay una plantilla activa");return}if(o.length===0){x.toast.error("No hay tareas copiadas para pegar");return}const F=e();let R={x:0,y:0};if(M)R=n({x:M.x,y:M.y});else if(F.length>0){const H=F.reduce((S,B)=>S+B.position.x,0)/F.length,O=F.reduce((S,B)=>S+B.position.y,0)/F.length;R={x:H+50,y:O+100}}const N=o[0],D=R.x-N.position.x,v=R.y-N.position.y,U=o.map((H,O)=>{const S=f(),B=-(Date.now()+O),k=H.data.plantilla&&typeof H.data.plantilla=="object"?{...H.data.plantilla,id:c.id}:{id:c.id},{id:q,...ee}=H.data,W={...ee,id:B,reference_graph:S,plantilla:k,parent:{data:{id:null}},_originalTemplateId:void 0};return{...H,id:S,position:{x:H.position.x+D,y:H.position.y+v},data:W,selected:!0}}),J=[...F.map(H=>({...H,selected:!1})),...U];if(a(J),c.id)try{const H=await d(c.id);if(!H)return;const O=U.filter(B=>B.type!=="start"&&B.type!=="group").map(B=>{const k=B.data;return{id:k.id,reference_graph:B.id,nombre:k.nombre||k.texto_corto||"Tarea sin nombre",texto_corto:k.texto_corto||"",texto_largo:k.texto_largo||"",prioridad:k.prioridad??0,nivel_dificultad:k.nivel_dificultad??0,dias_duracion:k.dias_duracion??0,plantilla:{id:c.id},parent:{data:{id:null}},tareas:[],plantilla_dependents:k.plantilla_dependents||[],start:k.start||!1,es_grupo:k.es_grupo||!1,optional:k.optional||!1,subtask_completadas:k.subtask_completadas||0,subtask_totales:k.subtask_totales||0}}),S={...H,tarea_plantillas:[...H.tarea_plantillas,...O],estatus:"dirty",updatedAt:new Date().toISOString()};await p(c.id,S),m(S),setTimeout(async()=>{await l(c.id,{nodes:J,edges:[]})},50)}catch(H){console.error("Error al actualizar template en IndexedDB:",H)}if(U.length>0){const H=U.reduce((S,B)=>S+B.position.x,0)/U.length,O=U.reduce((S,B)=>S+B.position.y,0)/U.length;s(H,O,{zoom:1,duration:800})}x.toast.success(`${U.length} ${U.length===1?"tarea pegada":"tareas pegadas"} con éxito`)},[h,c,o,e,a,n,s,f,l,d,p,m]),j=u.useCallback(()=>o.length>0,[o]),_=g().length>0;return{handleCopy:y,handlePaste:w,hasCopiedNodes:j,hasSelectableNodes:_,copiedNodesCount:o.length}},Gr={main:Fr,plus:kr,start:Br,group:Ur},Vr=[.5,0],Wr=({initialNodes:e,initialEdges:a,debugEvents:n=!1})=>{const s=u.useRef(null),{nodes:o,edges:i,onEdgesChange:r,onConnect:c,onConnectEnd:m,onBeforeDelete:l,onDeleteNode:d,onEdgesDelete:p,handleNodesChange:h,newNodePopup:f,getParentNodeInfo:g,createNodeFromPopup:y,closeNewNodePopup:w,connectionPopup:j,createConnectionFromPopup:b,closeConnectionPopup:_,onDragEnd:M,setNodes:F,setEdges:R}=zr({initialNodes:e,initialEdges:a}),{expandGroup:N,collapseGroup:D}=Hr(o,i,F,R),{handleCopy:v,handlePaste:U,hasCopiedNodes:K,copiedNodesCount:J}=Kr();u.useEffect(()=>{if(!n)return;const te=pe=>{console.log("🔍 [DEBUG] KeyDown:",{key:pe.key,code:pe.code,shiftKey:pe.shiftKey,ctrlKey:pe.ctrlKey,metaKey:pe.metaKey,altKey:pe.altKey,target:pe.target,defaultPrevented:pe.defaultPrevented,bubbles:pe.bubbles,timestamp:new Date().toISOString()})},ue=pe=>{console.log("🔍 [DEBUG] KeyUp:",{key:pe.key,code:pe.code,shiftKey:pe.shiftKey,timestamp:new Date().toISOString()})},fe=pe=>{var ye,Me;console.log("🔍 [DEBUG] Click:",{button:pe.button,shiftKey:pe.shiftKey,ctrlKey:pe.ctrlKey,metaKey:pe.metaKey,altKey:pe.altKey,target:(ye=pe.target)==null?void 0:ye.tagName,targetClass:(Me=pe.target)==null?void 0:Me.className,defaultPrevented:pe.defaultPrevented,bubbles:pe.bubbles,timestamp:new Date().toISOString()})},xe=pe=>{console.log("🔍 [DEBUG] MouseDown:",{button:pe.button,shiftKey:pe.shiftKey,ctrlKey:pe.ctrlKey,metaKey:pe.metaKey,defaultPrevented:pe.defaultPrevented,timestamp:new Date().toISOString()})};return document.addEventListener("keydown",te,!0),document.addEventListener("keyup",ue,!0),document.addEventListener("click",fe,!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",te,!0),document.removeEventListener("keyup",ue,!0),document.removeEventListener("click",fe,!0),document.removeEventListener("mousedown",xe,!0),console.log("🔍 [DEBUG] Event listeners desactivados.")}},[n]);const O=o.filter(te=>!(!te.selected||te.type==="start"||te.id==="start"||te.type==="group")).length,S=O>0,B=u.useRef(N),k=u.useRef(D);u.useEffect(()=>{B.current=N,k.current=D},[N,D]),u.useEffect(()=>{const te=async(fe,xe)=>{B.current&&await B.current(fe,xe)},ue=fe=>{k.current&&k.current(fe)};Te.setState({expandGroup:te,collapseGroup:ue})},[]);const{zoomPercentage:q,handleZoomIn:ee,handleZoomOut:W,handleZoomTo100:re,handleDoubleClick:Z}=Lr({reactFlowWrapper:s,nodes:o}),{getViewMode:E}=Te(),{activeTemplate:z}=Le(),I=(z!=null&&z.id?E(z.id):"readonly")==="readonly";u.useEffect(()=>{if(I)return;const te=ue=>{const fe=ue.target;fe.tagName==="INPUT"||fe.tagName==="TEXTAREA"||fe.isContentEditable||((ue.ctrlKey||ue.metaKey)&&ue.key==="c"&&(ue.preventDefault(),v()),(ue.ctrlKey||ue.metaKey)&&ue.key==="v"&&(ue.preventDefault(),U()))};return document.addEventListener("keydown",te),()=>{document.removeEventListener("keydown",te)}},[v,U,I]);const A=u.useCallback((te,ue)=>{const fe=te.target;fe.tagName==="BUTTON"||fe.closest("button")||fe.closest('[role="button"]')||fe.classList.contains("nopan")||fe.classList.contains("nodrag")},[]),G=u.useCallback(te=>{const ue=te.filter(fe=>{var xe,pe;if(fe.type==="position"&&fe.dragging===!1){const ye=o.find(Me=>Me.id===fe.id);if(ye&&fe.position){const Me=Math.abs((fe.position.x||0)-(((xe=ye.position)==null?void 0:xe.x)||0)),Ne=Math.abs((fe.position.y||0)-(((pe=ye.position)==null?void 0:pe.y)||0));if(Me<3&&Ne<3)return!1}}return!0});ue.length>0&&h(ue)},[h,o]),P=I?void 0:r,C=I?void 0:G,$=I?void 0:c,L=I?void 0:m,T=I?void 0:l,V=I?void 0:M,Y=I?void 0:d,ae=I?void 0:p,le=I?null:["Backspace","Delete"],ce=I?{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},ie=()=>{if(j)return{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}}};return t.jsxs("div",{className:"wrapper",ref:s,style:{width:"100%",height:"100vh"},children:[t.jsxs(oe.ReactFlow,{nodes:o,edges:i,nodeTypes:Gr,onEdgesChange:P,onNodesChange:C,onConnect:$,onConnectEnd:L,onBeforeDelete:T,onNodeDragStop:V,onNodesDelete:Y,onEdgesDelete:ae,onNodeClick:A,...ce,fitView:!0,fitViewOptions:{padding:2},nodeOrigin:Vr,defaultEdgeOptions:{type:"smoothstep"},connectionLineType:oe.ConnectionLineType.SmoothStep,deleteKeyCode:le,multiSelectionKeyCode:I?null:"Shift",selectionOnDrag:!1,panOnDrag:I?!0:[0],nodeClickDistance:15,selectNodesOnDrag:!1,nodeDragThreshold:10,autoPanOnNodeDrag:!1,autoPanOnConnect:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",children:[t.jsx(oe.Background,{}),!I&&t.jsx(oe.Panel,{position:"bottom-left",className:"tm-m-0",children:t.jsxs("div",{className:"tm-bg-white tm-border tm-border-black-light tm-rounded-lg tm-p-3 tm-shadow-sm tm-text-sm tm-text-neutral-500",children:[t.jsx("div",{className:"tm-font-semibold tm-text-neutral-900 tm-mb-2",children:"Atajos de teclado"}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-1",children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-2",children:[t.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"Shift"}),t.jsx("span",{children:"+ clic para seleccionar múltiples tareas"})]}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-2",children:[t.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"Ctrl"}),t.jsx("span",{children:"+"}),t.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"C"}),t.jsx("span",{children:"Copiar"})]}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-2",children:[t.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"Ctrl"}),t.jsx("span",{children:"+"}),t.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"V"}),t.jsx("span",{children:"Ppegar"})]})]})]})}),t.jsx(oe.Panel,{position:"top-left",className:"tm-m-0",children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-2",children:[t.jsxs("div",{children:[z.estatusFromStrapi===Ee.PUBLISHED&&t.jsx(x.Tag,{color:"success",label:"Publicado"}),z.estatusFromStrapi===Ee.DRAFT&&t.jsx(x.Tag,{color:"warning",label:"Borrador"})]}),!I&&O>0&&t.jsxs("p",{className:"tm-text-blue-dark-500 tm-text-xs tm-font-medium",children:[O," ",O===1?"tarea seleccionada":"tareas seleccionadas"]})]})}),t.jsx(oe.Panel,{position:"top-right",className:"tm-m-0",children:t.jsxs("div",{className:"tm-flex tm-gap-4",children:[!I&&t.jsxs(x.ButtonGroup,{children:[t.jsxs(x.Button,{leftSlot:de.faCopy,onClick:v,disabled:!S,size:"xxs",color:S?"primary":"secondary",title:S?`Copiar ${O} ${O===1?"tarea":"tareas"} (Ctrl+C)`:"Selecciona tareas para copiar (mantén Shift y haz clic)",children:["Copiar ",O>0&&`(${O})`]}),t.jsxs(x.Button,{leftSlot:de.faFile,size:"xxs",onClick:()=>U(),disabled:!K(),color:K()?"primary":"secondary",title:K()?`Pegar ${J} ${J===1?"tarea":"tareas"} (Ctrl+V)`:"No hay tareas copiadas",children:["Pegar ",J>0&&`(${J})`]})]}),t.jsxs(x.ButtonGroup,{color:"secondary",size:"xxs",children:[t.jsx(x.Button,{icon:de.faMinus,onClick:W,color:"secondary"}),t.jsxs(x.Button,{onClick:re,onDoubleClick:Z,color:"secondary",children:[q,"%"]}),t.jsx(x.Button,{icon:de.faPlus,onClick:ee})]})]})})]}),f&&t.jsx(Or,{isOpen:f.isOpen,position:f.position,onClose:w,createNodeFromPopup:y,parentNodeInfo:g()}),j&&t.jsx($r,{isOpen:j.isOpen,onClose:_,createConnectionFromPopup:b,availableConnections:ie()})]})},Qr=({initialNodes:e,initialEdges:a,debugEvents:n})=>t.jsx(oe.ReactFlowProvider,{children:t.jsx(Wr,{initialNodes:e,initialEdges:a,debugEvents:n})}),st=Ue.create(e=>({step:1,setStep:a=>e({step:a}),reset:()=>e({step:1})})),Xr=({limit:e})=>{const a=st(r=>r.step),n=st(r=>r.setStep),s=u.useCallback(()=>{a<e&&n(a+1)},[a,n,e]),o=u.useCallback(()=>{a>1&&a<=e&&n(a-1)},[a,n,e]),i=u.useCallback(r=>{r>0&&r<=e&&n(r)},[n,e]);return u.useMemo(()=>({step:a,nextStep:s,prevStep:o,onStepChange:i}),[a,s,o,i])},ya=["fase_plantilla","tipo_plantilla","categoria","tipo_medio","medio_especifico","pertenencia_medio","ubicacion_medio","responsable_impresion"],ja=["fase_plantilla","modo_configuracion","tipo_medio","formato_salida"],wa=["tipo_medio","formato_salida","medio_especifico"],va={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"]}}},_a={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 Ht(e){const[a,n]=u.useState([]),[s,o]=u.useState({}),{setClaveParams:i,templateFormData:r,setTemplateFormData:c,resetTemplateFormData:m,setDisableField:l,setClave:d,claveParams:p,setParamTipo:h}=Fe(),{tasks_api:f}=he(),g=st(E=>E.step),{data:y,error:w,isSuccess:j,isError:b}=me.useQuery({queryKey:["paramsTipoPlantilla"],queryFn:async()=>{const E=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 f.get(`/api/params-tipos?${E}`);return z.data?{paramsTiposPlantilla:be(z.data.data)}:{paramsTiposPlantilla:[]}},refetchOnWindowFocus:!1});u.useEffect(()=>{w&&b&&console.log(w)},[w,b]),u.useEffect(()=>{if(y&&j){const E=y.paramsTiposPlantilla;n(E)}},[y,j]);const _={fase_plantilla:(E,z)=>{c({fase_plantilla:E}),h({fase_plantilla:z})},tipo_plantilla:(E,z)=>{c({tipo_plantilla:E}),h({tipo_plantilla:z})},modo_configuracion:(E,z)=>{c({modo_configuracion:E}),h({modo_configuracion:z})},categoria:(E,z)=>{c({categoria:E}),h({categoria:z})},formato_salida:(E,z)=>{c({formato_salida:E}),h({formato_salida:z})},tipo_medio:(E,z)=>{c({tipo_medio:E}),h({tipo_medio:z})},medio_especifico:(E,z)=>{c({medio_especifico:E}),h({medio_especifico:z})},responsable_impresion:(E,z)=>{c({responsable_impresion:E}),h({responsable_impresion:z})},pertenencia_medio:(E,z)=>{c({pertenencia_medio:E}),h({pertenencia_medio:z})},ubicacion_medio:(E,z)=>{c({ubicacion_medio:E}),h({ubicacion_medio:z})}},M={fase_plantilla:(E,z)=>i({field:E,value:z}),tipo_plantilla:(E,z)=>i({field:E,value:z}),categoria:(E,z)=>i({field:E,value:z}),tipo_medio:(E,z)=>i({field:E,value:z}),medio_especifico:(E,z)=>i({field:E,value:z}),responsable_impresion:(E,z)=>i({field:E,value:z}),pertenencia_medio:(E,z)=>i({field:E,value:z}),ubicacion_medio:(E,z)=>i({field:E,value:z})},F={Digital:{execute:()=>{const E=a.filter(I=>I.step===3).find(I=>I.key==="responsable_impresion").params_plantillas.find(I=>I.name==="N/A").id,z="step3.responsable_impresion",Q=["responsable_impresion"];c({responsable_impresion:"N/A"}),e(z,E),l({fields:Q,value:!0}),i({field:"responsable_impresion",value:"NA"})}},Impreso:{execute:()=>{const E="step3.responsable_impresion",z=["responsable_impresion"];c({responsable_impresion:""}),e(E,""),l({fields:z,value:!1}),i({field:"responsable_impresion",value:""})}}},R={"Sitios Fijos":{execute:()=>J()},"Vallas Móviles":{execute:()=>H()},Indoors:{execute:()=>J()},Camiones:{execute:()=>O()},"Brand Riders":{execute:()=>O()}},N={"Sitios Fijos":{execute:()=>K()},"Vallas Móviles":{execute:()=>K()},Indoors:{execute:()=>K()},Camiones:{execute:()=>{U(),F.Impreso.execute()}},"Brand Riders":{execute:()=>{U(),F.Impreso.execute()}}},D={"Sitios Fijos":{execute:()=>v()},"Vallas Móviles":{execute:()=>U()},Indoors:{execute:()=>v()},Camiones:{execute:()=>U()},"Brand Riders":{execute:()=>U()}},v=()=>{const E=["medio_especifico"],z=r.modo_configuracion,Q=`step${g}.medio_especifico`,I=`step${g}.formato_salida`;l({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0}),l(z==="Default"?{fields:E,value:!0}:{fields:E,value:!1}),c({medio_especifico:""}),c({formato_salida:""}),e(Q,""),e(I,""),i({field:"medio_especifico",value:""}),i({field:"formato_salida",value:""})},U=()=>{const E=a.filter(G=>G.step===g).find(G=>G.key==="formato_salida").params_plantillas.find(G=>G.name==="Impreso").id;l({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0});const Q=`step${g}.formato_salida`,I=["formato_salida","medio_especifico"],A=`step${g}.medio_especifico`;c({medio_especifico:""}),c({formato_salida:"Impreso"}),e(Q,E),e(A,""),i({field:"medio_especifico",value:""}),i({field:"tipo_medio",value:r.tipo_medio}),l({fields:I,value:!0})},K=()=>{const E=["formato_salida"],z=`step${g}.formato_salida`,Q={};Q.formato_salida="",c(Q),e(z,""),l({fields:E,value:!1})},J=()=>{const E=["formato_salida","medio_especifico"],z=`step${g}.formato_salida`,Q={};Q.formato_salida="",c(Q),e(z,""),l({fields:E,value:!1})},H=()=>{const E=["formato_salida"],z=["medio_especifico"],Q=`step${g}.formato_salida`,I=`step${g}.medio_especifico`,A={};A.formato_salida="",A.medio_especifico="",c(A),e(Q,""),e(I,""),l({fields:E,value:!1}),l({fields:z,value:!0})},O=()=>{const E=a.filter(A=>A.step===g).find(A=>A.key==="formato_salida").params_plantillas.find(A=>A.name==="Impreso").id,z=`step${g}.formato_salida`,Q=`step${g}.medio_especifico`,I=["formato_salida","medio_especifico"];c({formato_salida:"Impreso"}),e(z,E),e(Q,""),l({fields:I,value:!0}),F.Impreso.execute()},S=(E,z)=>{Object.keys(va).includes(E)&&va[E][z].fieldsToClear.forEach(A=>{const G={};G[A]="",c(G),i({field:A,value:""}),e&&[...new Set(a.map(C=>C.step))].forEach(C=>{const $=`step${C}.${A}`;e($,"")})})},B=(E,z,Q)=>E==="modo_configuracion"&&Q?_a[E][Q][z].fieldsToEnableDisable:_a[E][z].fieldsToEnableDisable,k=E=>a.filter(z=>z.step===E),q=E=>{var z;return s[E]||((z=a.find(Q=>Q.key===E))==null?void 0:z.params_plantillas)},ee=(E,z)=>{var I,A,G,P;let Q=[];E==="Sitios Fijos"?z==="Preventa"?Q=(I=a.find(C=>C.key==="medio_especifico"))==null?void 0:I.params_plantillas.filter(C=>C.tipomedio_nombre==="OOH"&&C.name==="PANTALLA DIGITAL"):z==="Venta"&&(Q=(A=a.find(C=>C.key==="medio_especifico"))==null?void 0:A.params_plantillas.filter(C=>C.tipomedio_nombre==="OOH")):E==="Indoors"?Q=(G=a.find(C=>C.key==="medio_especifico"))==null?void 0:G.params_plantillas.filter(C=>C.tipomedio_nombre==="InDoor"):Q=(P=a.find(C=>C.key==="medio_especifico"))==null?void 0:P.params_plantillas,o(C=>({...C,medio_especifico:Q}))},W=(E,z)=>{const Q=E.key;if(wa.includes(Q)&&Q==="tipo_medio"){const I=z.label,A=r.fase_plantilla,G=r.modo_configuracion;if(A==="Preventa"){ee(I,A);return}else if(G==="Especifico"){ee(I,A);return}}},re=(E,z,Q)=>{const I=E.params_plantillas.find(A=>E.key==="categoria"?A.reference_id===z.value:A.id===z.value);if(I){const A=E.key,G=z.label;if(_[A](G,Q),ja.includes(A))if(S(A,G),A==="fase_plantilla"){const P=G,C=B(A,P);l({fields:["categoria","modo_configuracion","tipo_plantilla"],value:!0}),C.length>0&&l({fields:C,value:!1}),P==="Preventa"&&l({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(A==="modo_configuracion"){const P=G,C=r.fase_plantilla,$=B(A,P,C);l({fields:["medio_especifico","formato_salida"],value:!0}),$.length>0&&l({fields:$,value:!1}),C==="Preventa"&&l({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(A==="tipo_medio"){const P=G,C=r.modo_configuracion;r.fase_plantilla==="Venta"?C==="Especifico"?R[P].execute():N[P].execute():D[P].execute()}else if(A==="formato_salida")F[G].execute();else{const P=B(A,G);P.length>0&&l({fields:P,value:!1})}if(ya.includes(A)){let P="",C="";if(A==="formato_salida"){const $=r.modo_configuracion,L=G;C="tipo_medio",P=$==="Default"&&L==="Digital"?P="DDG":P="DRP"}else C=A,P=I.abbreviation;M[C](C,P)}wa.includes(A)&&W(E,z)}},Z=()=>{if(r){const E=r.fase_plantilla;if(E==="Preventa"){const z=r.modo_configuracion,Q=p.fase_plantilla||"XX";let I=null;if(z==="Default")I=p.tipo_medio||"XXX";else{const G=r.tipo_medio;["Vallas Móviles","Camiones","Brand Riders"].includes(G)?I=p.tipo_medio||"XXX":I=p.medio_especifico||"XXX"}const A=`${Q}-${I}`;d(A)}if(E==="Venta"){const z=p.fase_plantilla||"XX",Q=p.tipo_plantilla||"XXX",I=p.categoria||"XX",A=p.medio_especifico||p.tipo_medio||p.modo_configuracion||"XXX",G=p.responsable_impresion||"XX",P=p.pertenencia_medio||"X",C=p.ubicacion_medio||"X",$=`${z}-${Q}-${I}-${A}-${G}-${P}-${C}`;d($)}}};return u.useEffect(()=>{Z()},[p]),{templateFields:a,getFieldsByStep:k,dropdownFunctionsUpdateClave:M,fieldsForUpdateClave:ya,resetTemplateFormData:m,fieldsWithDisableTrigger:ja,getFieldsToDisable:B,handleOptionSelected:re,getFilteredOptions:q,dropdownFunctionsUpdateFormData:_}}const Kt=()=>{const{control:e,setValue:a}=Se.useFormContext(),n=st(l=>l.step),{getFieldsByStep:s,handleOptionSelected:o,getFilteredOptions:i}=Ht(a),{disabledFields:r}=Fe(),c=u.useMemo(()=>s(n),[n,s]),m=l=>`El campo ${l.charAt(0).toLocaleLowerCase()+l.slice(1)} es requerido`;return c.map(l=>{const d=`step${l.step}.${l.key}`,p=l.label,f=i(l.key).map(g=>({label:g.name,value:l.key==="categoria"?g.reference_id:g.id}));return t.jsx(Se.Controller,{name:d,control:e,rules:{required:{value:!r[l.key],message:m(p)},validate:g=>r[l.key]||g?!0:m(p)},render:({field:g,fieldState:{error:y}})=>t.jsx("div",{children:t.jsx(x.Dropdown,{label:p,value:g.value,onValueChange:w=>{g.onChange(w)},error:y==null?void 0:y.message,options:f,onOptionSelect:w=>{o(l,w,l.id)},disabled:r[l.key]||!1})})},l.id)})},Yr=()=>t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:t.jsx(Kt,{})}),Jr=()=>t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:t.jsx(Kt,{})}),Zr=()=>t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:t.jsx(Kt,{})}),ei=({step:e})=>t.jsxs("div",{className:"tm-flex tm-min-h-[270px] tm-flex-col tm-gap-y-4",children:[e===1&&t.jsx(Yr,{}),e===2&&t.jsx(Jr,{}),e===3&&t.jsx(Zr,{})]}),ti=e=>{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 e.reduce((n,s)=>{const o=`step${s.step}`,i=a[o];return i&&i.includes(s.key)&&(n[o]||(n[o]={}),n[o][s.key]=""),n},{})},ai=e=>{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(s=>{n[s]={},a[s].forEach(o=>{var r;const i=(r=e[s])==null?void 0:r[o];n[s][o]=i!==void 0?i:""})}),n},si=e=>e&&e.status===400?{failureLevel:"strapi",errorMessage:"Error al procesar la solicitud",technicalDetails:e.message}:e&&e.status===401?{failureLevel:"authentication",errorMessage:"Error de autenticación",technicalDetails:`Token expirado o inválido: ${e.message}`}:e&&e.status===500?{failureLevel:"strapi",errorMessage:"Error de servidor",technicalDetails:`Error en el servidor de Strapi: ${e.message}`}:{failureLevel:"unknown",errorMessage:"Error inesperado al crear la plantilla",technicalDetails:`Error desconocido: ${e.message}`};function ni(e,a){const{clave:n,paramsTipo:s,currentTemplateForEdit:o,isEditTemplate:i,setDisableField:r,setClaveParams:c,isDuplicateTemplate:m,templateFormData:l}=Fe(),{tasks_api:d}=he(),{getFieldsByStep:p,dropdownFunctionsUpdateFormData:h,templateFields:f}=Ht(),g=()=>{var R;try{const N={},D=e(),v=ai(D),{step1:U}=v,K=[];N.clave=n,U.categoria!=""&&(N.categoria=U.categoria);for(const[J,H]of Object.entries(v))for(const[O,S]of Object.entries(H)){const B={id:null,params_tipo:{id:null}};if(S!=""){const k=s[O];if(O==="categoria"){const q=f.find(W=>W.key==="categoria"),ee=(R=q==null?void 0:q.params_plantillas)==null?void 0:R.find(W=>W.reference_id===S);B.id=ee==null?void 0:ee.id}else B.id=S;B.params_tipo.id=k,K.push(B)}}return Object.keys(K).length>0&&(N.params_plantillas=K),N}catch(N){console.log(N)}},y=async R=>{var N;try{let D=null;return i?D=await d.put(`/api/plantillas/${o.id}`,{data:R}):D=await d.post("/api/plantillas",{data:R}),D.data?be(D.data):null}catch(D){throw console.error("Error en saveTemplateToStrapi:",{error:D.message,status:(N=D.response)==null?void 0:N.status}),D}},w=async R=>{var N;try{const D=Pe.stringify({filters:{plantilla:{id:R}},populate:{graph_layout:!0}},{encodeValuesOnly:!0}),v=await d.get(`/api/plantillas/plantilla-tareas-grafico?${D}`);return v.data?be(v.data.data):null}catch(D){throw console.error("Error en getTemplateWithTasks:",{error:D.message,status:(N=D.response)==null?void 0:N.status}),D}},j=async(R,N,D)=>{var v,U,K,J,H,O,S;try{const B=await w(R),k=await w(N);if(!B||!B.tarea_plantillas)return console.warn("No se encontraron tareas para duplicar en la plantilla original"),null;const q=new Map,ee=new Map;let W=1;B.tarea_plantillas.forEach(Q=>{let I=null;Q.start?I=D:I=-(Date.now()+W++),q.set(Q.id,I)}),(U=(v=B.graph_layout)==null?void 0:v.snapshot)!=null&&U.nodes&&B.graph_layout.snapshot.nodes.forEach(Q=>{const I=`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`;ee.set(Q.id,I)});const re=B.tarea_plantillas.filter(Q=>!Q.start).map(Q=>{var A,G,P,C;return{id:q.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:((A=Q.equipo)==null?void 0:A.id)||null,responsable:((G=Q.responsable)==null?void 0:G.id)||null,plantilla:{id:N,clave:B.clave,categoria:B.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:q.get((P=Q.id_t_requerida)==null?void 0:P.id)||null,ids_t_dependientes:[],tarea_padre:q.get((C=Q.tarea_padre)==null?void 0:C.id)||null,tareas:[]}});let Z=null;if(B.graph_layout){const Q=k.tarea_plantillas.find(I=>I.start===!0);Z={...B.graph_layout,id:(K=k.graph_layout)==null?void 0:K.id,snapshot:{...B.graph_layout.snapshot,edges:B.graph_layout.snapshot.edges.map(I=>{if(I.source==="start")return{...I,data:{...I.data,childId:re.find(A=>A.reference_graph===I.target).id,parentId:Q.id}};{const A=re.find(G=>G.reference_graph===I.target);return{...I,data:{...I.data,childId:A==null?void 0:A.id,parentId:(A==null?void 0:A.id_t_requerida)||(A==null?void 0:A.tarea_padre)}}}}),nodes:((H=(J=B.graph_layout.snapshot)==null?void 0:J.nodes)==null?void 0:H.map(I=>{let A={};return I.type==="start"?A={...I,data:{...I.data,tareaId:Q.id}}:A={...I,data:{tareaId:null}},A}))||[]}}}if(!Z)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 E={graph_layout:Z,tasks:{created:re,updated:[],deleted:[]}},z=await d.post("/api/tareas/save-tareas-grafico",{data:E});if(z.data&&z.status===200){const Q=await w(N),I=new Map;Q.tarea_plantillas.forEach(P=>I.set(P.reference_graph,P.id));let A=Q.graph_layout;return(!((O=A==null?void 0:A.snapshot)!=null&&O.nodes)||A.snapshot.nodes.length===0)&&(console.log("Graph layout vacío, reconstruyendo desde el original..."),A=Z),(S=A==null?void 0:A.snapshot)!=null&&S.nodes&&(A.snapshot.nodes=A.snapshot.nodes.map(P=>{var T;const C={...P,position:P.position||{x:0,y:0}},$=C.id,L=I.get($);if(L)return{...C,data:{...C.data,id:L,tareaId:L}};if((T=C.data)!=null&&T.tareaId){const V=Q.tarea_plantillas.find(Y=>Y.reference_graph===$);if(V)return{...C,data:{...C.data,id:V.id,tareaId:V.id}}}return C})),await d.put(`/api/plantillas/${N}`,{data:{graph_layout:A}}),await w(N)}return null}catch(B){throw console.error("Error al duplicar las tareas de la plantilla:",B),B}},b=async()=>{var R,N;try{let D=g();const v=await y(D);if(!v)return{success:!1,message:"No se pudo guardar el flujo de trabajo en Strapi",error:"templateData es null"};const U=Pe.stringify({filters:{id:{$eq:v.id}},populate:{tarea_plantillas:{filters:{start:{$eq:!0}}}}},{encodeValuesOnly:!0}),{data:K}=await d.get(`/api/plantillas?${U}`),H=be(K.data)[0].tarea_plantillas[0].id;if(m&&(o!=null&&o.id))try{const S=await j(o.id,v.id,H);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 w(v.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 w(v.id)}}const O=await w(v.id);return O?{success:!0,message:"Flujo de trabajo creado y sincronizado completamente",data:O}:{success:!1,message:"No se pudieron obtener los datos completos del flujo de trabajo",error:"completeData es null"}}catch(D){const v=si(((N=(R=D==null?void 0:D.response)==null?void 0:R.data)==null?void 0:N.error)||D);return console.error("Error al guardar el flujo de trabajo: ",{level:v.failureLevel,message:v.errorMessage,technicalDetails:v.technicalDetails}),{success:!1,message:v.errorMessage||"Error al guardar el flujo de trabajo",error:v.technicalDetails||D.message}}},_=()=>{const R=o==null?void 0:o.params_plantillas;if(!(R!=null&&R.length))return;let N={};[1,2,3].forEach(v=>{const U=`step${v}`;N[U]={},p(v).forEach(J=>{var O;const H=R.find(S=>S.params_tipo.key===J.key);if(H){let S=null;if(J.key==="categoria"){const B=(O=J.params_plantillas)==null?void 0:O.find(k=>k.id===H.id);S=(B==null?void 0:B.reference_id)||H.id}else S=H.id;N[U][J.key]=S}})}),a(N)},M=()=>{var N;const R=o==null?void 0:o.params_plantillas;if(R!=null&&R.length)for(const D of R){const{params_tipo:{id:v,key:U},name:K,id:J}=D,H=f.find(S=>S.key===U),O=(N=H==null?void 0:H.params_plantillas)==null?void 0:N.find(S=>S.id===J);h[U]&&h[U](K,v),O&&c({field:U,value:O.abbreviation})}},F=()=>{try{const{fase_plantilla:R,modo_configuracion:N,formato_salida:D,tipo_medio:v}=l;if(R==="Venta")r({fields:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria","tipo_medio"],value:!1}),N==="Default"?(r({fields:["tipo_medio","formato_salida"],value:!1}),r({fields:["medio_especifico"],value:!0}),["Sitios Fijos","Vallas Móviles","Indoors"].includes(v)||r({fields:["formato_salida","medio_especifico"],value:!0}),D==="Digital"?(r({fields:["responsable_impresion"],value:!0}),r({fields:["pertenencia_medio","ubicacion_medio"],value:!1})):r({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!1})):(["Sitios Fijos","Indoors"].includes(v)&&r({fields:["formato_salida","medio_especifico"],value:!1}),["Vallas Móviles"].includes(v)&&(r({fields:["formato_salida"],value:!1}),r({fields:["medio_especifico"],value:!0})),["Camiones","Brand Riders"].includes(v)&&r({fields:["formato_salida","medio_especifico"],value:!0}),D==="Digital"?(r({fields:["responsable_impresion"],value:!0}),r({fields:["pertenencia_medio","ubicacion_medio"],value:!1})):r({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!1}));else if(r({fields:["modo_configuracion"],value:!1}),r({fields:["tipo_plantilla","categoria"],value:!0}),N=="Default"){const U=["formato_salida","medio_especifico","responsable_impresion","pertenencia_medio","ubicacion_medio"];r({fields:["tipo_medio"],value:!1}),r({fields:U,value:!0})}else["Sitios Fijos","Indoors"].includes(v)?(r({fields:["formato_salida"],value:!0}),r({fields:["medio_especifico"],value:!1})):r({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!0})}catch(R){console.error("Error al aplicar reglas de habilitar y deshabilitar campos",R)}};return u.useEffect(()=>{(i||m)&&o&&(_(),M())},[i,m,o]),u.useEffect(()=>{(i||m)&&l&&F()},[i,l,m]),{savePlantilla:b,getTemplateWithTasks:w}}const oi=()=>{const{watch:e,getValues:a}=Se.useFormContext(),{templateFormData:n,isDuplicateTemplate:s,currentTemplateForEdit:o}=Fe(),[i,r]=u.useState(!1),c=u.useRef(null),m=u.useRef(null),l=u.useRef(!1),d=e();return u.useEffect(()=>{if(!l.current&&s&&o){const h=setTimeout(()=>{c.current=a(),m.current={...n},l.current=!0,r(!1)},500);return()=>clearTimeout(h)}},[s,o,a,n]),u.useEffect(()=>{if(c.current&&m.current&&l.current){const h=a(),f=n,g=JSON.stringify(h)!==JSON.stringify(c.current),y=JSON.stringify(f)!==JSON.stringify(m.current);r(g||y)}},[d,n,a]),{hasChanges:i,resetChanges:()=>{c.current=null,m.current=null,l.current=!1,r(!1)}}},ri=({onReset:e})=>{const{hasChanges:a,resetChanges:n}=oi(),{setHasFormChanges:s}=Fe();return u.useEffect(()=>{s(a)},[a,s]),u.useEffect(()=>{e(n)},[e,n]),null},ii=({isOpen:e,onClose:a})=>{const{step:n,nextStep:s,prevStep:o,onStepChange:i}=Xr({limit:3}),r=st(A=>A.reset),{templateFields:c,resetTemplateFormData:m}=Ht(),{clave:l,resetClave:d,resetDisabledFields:p,isEditTemplate:h,setIsEditTemplate:f,refetch:g,isDuplicateTemplate:y,hasFormChanges:w,setIsDuplicateTemplate:j,setCurrentTemplateForEdit:b}=Fe(),{openTemplate:_}=Be(),[M,F]=u.useState(!1),[R,N]=u.useState(""),[D,v]=u.useState(!1),U=u.useRef(null),K=A=>{U.current=A},J=u.useMemo(()=>ti(c),[c]),H=n===1,O=n===3,S=H?"Cancelar":"Atrás",B=Se.useForm({mode:"onChange",defaultValues:J}),{trigger:k,reset:q,clearErrors:ee,getValues:W}=B,{savePlantilla:re}=ni(W,q),Z=u.useRef(!1);u.useEffect(()=>{e&&(r(),Z.current=!1)},[e,r]),u.useEffect(()=>{e&&!h&&!y&&!Z.current&&(q(J),m(),Z.current=!0)},[e,h,y,q,J,m]);const E=async()=>{if(await k()){if(n===3){if(!w&&y){N("Ya existe un proceso con éstos parámetros. Modifica al menos uno para poder duplicarlo."),v(!0);return}try{F(!0);const G=await re();if(G.success){const P=G.data;if(I(),Q(),v(!1),!h)try{await _({template:P,statusTemplate:ve.NEW})}catch(C){console.warn("La plantilla se creó exitosamente pero hubo un problema al abrirla:",C)}g()}else{const{error:P}=G;N(P),v(!0)}}catch(G){console.error("Error inesperado al guardar la plantilla:",G);return}finally{F(!1)}}s()}},z=()=>{N(""),v(!1)},Q=()=>{ee(),q(J),m(),p(),d(),z(),f(!1),j(!1),b(null),U.current&&U.current()},I=()=>{Q(),Z.current=!1,a(),console.log("cerrar modal")};return M?t.jsx(ot,{isLoading:M}):t.jsxs(Se.FormProvider,{...B,children:[t.jsx(ri,{onReset:K}),t.jsx(x.Modal,{isOpen:e,closeAtCancel:!1,onSuccess:E,cancelButtonText:S,successButtonText:O?h?"Guardar":"Crear":"Continuar",onCancel:H?I:o,onClose:I,size:"sm",iconConfig:{icon:ne.faFilePen},title:h?"Editar flujo de trabajo":"Nuevo flujo de trabajo",children:t.jsxs(x.Modal.Body,{children:[t.jsx("div",{className:"tm-flex tm-w-full tm-overflow-x-auto tm-pb-16 tm-pt-12",children:t.jsx("div",{className:"tm-flex tm-w-full",style:{justifyContent:"center",minWidth:"fit-content"},children:t.jsx(x.Stepper,{currentStep:n-1,onStepChange:A=>i(A+1),steps:[{title:"Paso 1",description:"INFORMACIÓN"},{title:"Paso 2",description:"DETALLES"},{title:"Paso 3",description:"PRODUCCIÓN"}]})})}),t.jsx("div",{className:"tm-flex tm-w-full tm-justify-center",children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-gap-0",children:[t.jsx("div",{className:"tm-bg-[#F0F0F0] tm-rounded-[100px] tm-p-2",style:{width:"fit-content",minWidth:"fit-content"},children:t.jsx("div",{className:"tm-font-bold tm-py-1 tm-p-[90px]",children:l})}),t.jsx("div",{className:"tm-bg-blue-500 tm-text-white tm-px-3 tm-py-1.5 tm-font-medium tm--mt-4",style:{borderRadius:"100px",fontSize:"10px"},children:"CLAVE"})]})}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-4 tm-p-16",children:[D&&t.jsx(x.Alert,{open:!0,color:"danger",message:R,className:"tm-mb-6",onClose:z}),t.jsx(ei,{step:n})]})]})})]})},li=({isOpen:e,onClose:a,replaceTemplate:n})=>t.jsx(t.Fragment,{children:t.jsx(x.Modal,{isOpen:e,closeAtCancel:!1,cancelButtonText:"Cancelar",successButtonText:"Abrir",onCancel:a,onClose:a,onSuccess:n,size:"sm",iconConfig:{icon:de.faExclamationTriangle},title:"Límite de flujos de trabajo",children:t.jsx(x.Modal.Body,{children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-overflow-auto tm-w-full tm-p-4 tm-gap-8",children:[t.jsx("div",{className:"tm-flex tm-justify-center tm-w-full",style:{minWidth:"fit-content"},children:t.jsx("div",{className:"tm-flex tm-justify-center tm-items-center tm-gap-[10px] tm-rounded-full tm-p-16",style:{backgroundColor:"#EBEEF9"},children:t.jsx(x.Icon,{name:de.faExclamationTriangle,size:"lg",color:"blue"})})}),t.jsx("div",{className:"tm-text-center tm-mt-6",children:t.jsx("h2",{className:"tm-text-[24px] tm-font-bold tm-text-brand tm-leading-tight",children:"¿Quieres continuar?"})}),t.jsx("div",{className:"tm-text-center tm-mt-2",children:t.jsx("div",{className:"tm-text-[12px] tm-font-normal tm-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."})})]})})})}),ci=Ue.create(e=>({cachedTemplate:null,canCreateTemplate:!1,setCachedTemplate:a=>e({cachedTemplate:a}),clearCachedTemplate:()=>e({cachedTemplate:null}),setCanCreateTemplate:a=>{const n=!(a<5);e({canCreateTemplate:n})}})),di=({isOpen:e,onClose:a,discardChanges:n,saveAndExit:s})=>t.jsx("div",{children:t.jsx(x.Modal,{isOpen:e,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Guardar y salir",onCancel:a,onClose:a,onSuccess:s,size:"sm",iconConfig:{icon:de.faExclamationTriangle},title:"Cambios sin guardar",children:t.jsx(x.Modal.Body,{children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-overflow-auto tm-w-full tm-p-4 tm-gap-8",children:[t.jsx("div",{className:"tm-flex tm-justify-center tm-w-full",style:{minWidth:"fit-content"},children:t.jsx("div",{className:"tm-flex tm-justify-center tm-items-center tm-gap-[10px] tm-rounded-full tm-p-16",style:{backgroundColor:"#EBEEF9"},children:t.jsx(x.Icon,{name:de.faSave,size:"lg",color:"brand"})})}),t.jsx("div",{className:"tm-flex tm-flex-col tm-mx-6",children:t.jsx(x.Alert,{open:!0,variant:"outlined",color:"danger",showCloseButton:!1,message:"Tienes cambios sin guardar en este flujo de trabajo",title:"No has guardado",className:"tm-mt-8"})}),t.jsx("div",{className:"tm-text-center tm-mt-5",children:t.jsx("h2",{className:"tm-text-[24px] tm-font-bold tm-text-brand",children:"¿Qué deseas hacer antes de salir?"})}),t.jsx("div",{className:"tm-text-center tm-mt-1",children:t.jsx("div",{className:"tm-text-[12px] tm-font-normal tm-text-[#6B6B6B]",children:"Si sales ahora sin guardar se perderán los cambios actuales."})}),t.jsx("div",{className:"tm-flex tm-justify-center tm-mt-4",children:t.jsx(x.Button,{size:"xs",color:"secondary",onClick:()=>{n(),a()},children:"Descartar cambios"})})]})})})}),ys=({isOpen:e,onClose:a,publishTemplate:n})=>t.jsx(x.Modal,{isOpen:e,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Confirmar",onCancel:a,onClose:a,onSuccess:n,size:"sm",iconConfig:{icon:de.faArrowUp},title:"Publicar",children:t.jsx(x.Modal.Body,{children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-overflow-auto tm-w-full tm-p-8 tm-gap-16",children:[t.jsx("div",{className:"tm-flex tm-justify-center tm-w-full",style:{minWidth:"fit-content"},children:t.jsx(x.Icon,{name:de.faArrowUp,size:"lg",color:"blue",background:!0,padding:"lg"})}),t.jsx("div",{className:"tm-text-center",children:t.jsx("h2",{className:"tm-text-[24px] tm-font-bold tm-text-[#3658C1] tm-leading-tight",children:"¿Estás seguro de que deseas publicar este proceso?"})}),t.jsx("div",{className:"tm-text-center",children:t.jsx("div",{className:"tm-text-[12px] tm-font-normal tm-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."})})]})})}),mi=()=>{const e="grid",a="create-edit",n=u.useRef(null),{isOpenModalLimit:s,setIsOpenModalLimit:o,setOpenModalCreateTemplate:i,openModalCreateTemplate:r,setOpenModalUnsavedChanges:c,openModalUnsavedChanges:m,openModalPublishTemplate:l,setOpenModalPublishTemplate:d,setCurrentTemplateForEdit:p,setIsDuplicateTemplate:h,setIsEditTemplate:f}=Fe(),{removeTemplateStates:g}=nt(),{mode:y,setMode:w,setViewMode:j,getViewMode:b}=Te(),{setCanCreateTemplate:_,canCreateTemplate:M}=ci(),F=y===e,{screens:R,get:N,delete:D,activeTemplate:v,activateTemplate:U,reorderingTemplates:K,replaceTemplate:J,saveTemplateChanges:H,publishTemplate:O,loadingPublishTemplate:S,loadingSaveChanges:B}=Be(),k=178,[q,ee]=u.useState([]),[W,re]=u.useState([]),[Z,E]=u.useState(null),[z,Q]=u.useState(!1),I=v!=null&&v.id?b(v.id):"readonly";u.useEffect(()=>{const X=()=>{if(!n.current)return;const ce=n.current.offsetWidth;let ie=0;const te=[],ue=[],fe=10,xe=n.current.querySelector("button:not([data-screen])"),pe=n.current.querySelector(".tm-mx-1");let ye=0;xe&&(ye+=xe.getBoundingClientRect().width),pe&&R.length>0&&(ye+=pe.getBoundingClientRect().width,ye+=fe);const Me=(je,ke)=>{const et=ke?54:0,Vt=(je==null?void 0:je.length)*8;return Math.max(80,Vt+40+et)},Ne=ce-k-ye;R.forEach((je,ke)=>{const pt=!!(je.isNew||je.badgeLabel),rt=Me(je.clave,pt),it=ke>0?fe:0,et=rt+it;ie+et<=Ne?(te.push(je),ie+=et):ue.push(je)}),ee(te),re(ue)},se=()=>{const ce=R.length;_(ce)};return R.length>0&&(X(),se(),window.addEventListener("resize",X)),()=>{window.removeEventListener("resize",X)}},[R,y]);const A=X=>X.estatus===ve.DIRTY||X.estatus===ve.NEW,G=async X=>{A(X)?(E(X.id),c(!0)):await D(X.id)},P=()=>d(!0),C=async()=>{await D(Z),await g(Z)},$=async()=>{await H(!1)},L=async()=>{await H()},T=()=>{var se,ce;const X=(ce=(se=v==null?void 0:v.graph_layout)==null?void 0:se.snapshot)==null?void 0:ce.nodes.length;Q(()=>X-1>=1)};u.useEffect(()=>{T()},[v,I]);const V=()=>!((v==null?void 0:v.estatus)==ve.IDLE&&z&&v.estatusFromStrapi!==Ee.PUBLISHED),Y=()=>{var se;const{nodes:X}=(se=v==null?void 0:v.graph_layout)==null?void 0:se.snapshot;return X==null?void 0:X.some(ce=>ce.type!=="start"&&(ce==null?void 0:ce.data.tarea_padre)===null&&(ce==null?void 0:ce.data.id_t_requerida)===null)},ae=()=>(v==null?void 0:v.estatus)===ve.IDLE||Y()?!0:!z,le=async()=>{await O(v.id)};return B||S?t.jsx(ot,{isLoading:B||S}):t.jsxs("div",{className:"tm-flex tm-gap-4 tm-justify-between tm-items-center tm-flex-wrap",children:[r&&t.jsx(ii,{isOpen:r,onClose:()=>i(!1)}),s&&t.jsx(li,{isOpen:s,onClose:()=>o(!1),replaceTemplate:J}),m&&t.jsx(di,{isOpen:m,onClose:()=>c(!1),discardChanges:C,saveAndExit:L}),l&&t.jsx(ys,{isOpen:l,onClose:()=>d(!1),publishTemplate:le}),t.jsxs("div",{className:"tm-flex tm-gap-2.5 tm-items-center tm-justify-between tm-flex-1 tm-flex-wrap",ref:n,children:[t.jsxs("div",{className:"tm-flex tm-gap-2.5 tm-items-center tm-justify-start tm-flex-1 tm-flex-wrap",children:[t.jsx(x.Button,{size:"xs",color:F?"primary":"secondary",onClick:()=>w(e),children:"Listado de flujos"}),R.length>0&&t.jsx(x.Separator,{vertical:!0,className:"tm-mx-1"}),R.filter(X=>q.some(se=>se.clave===X.clave)).map(X=>{const se=(v==null?void 0:v.clave)===X.clave&&y===a;return t.jsxs(x.Button,{"data-screen":X.clave,size:"xs",onClick:async()=>{await U(X),w(a,X.id)},color:se?"primary":"secondary",leftSlot:Ce.faFilePen,badgeColor:A(X)?"warning":void 0,onClickRightSlot:()=>G(X),rightSlot:Ce.faXmark,children:[X.clave," ",X.status]},X.id)})]}),W.length>0&&t.jsx(x.Popup,{absolute:!0,rightSlot:Ce.faAngleDown,label:`${W.length}+`,size:"xs",color:"secondary",children:t.jsx("div",{className:"tm-py-2 tm-gap-4",style:{minWidth:"280px"},children:t.jsx(x.List,{icon:Ce.faFilePen,items:W.map(X=>({id:X.id,label:X.clave})),className:"tm-p-8 tm-gap-4",onClick:async X=>{const se=await N(X.id);await K(se.id),await U(se),w("create-edit",se.id)}})})})]}),y===a?t.jsx("div",{className:"tm-flex tm-gap-4 tm-items-center tm-justify-end tm-flex-wrap",children:v.estatusFromStrapi!==Ee.PUBLISHED&&t.jsxs(t.Fragment,{children:[t.jsx(x.Button,{color:"secondary",size:"xs",leftSlot:Ce.faArrowUp,disabled:V(),onClick:P,children:"Publicar"}),I=="readonly"&&t.jsx(x.Button,{size:"xs",color:"primary",leftSlot:Ce.faEdit,onClick:()=>(v==null?void 0:v.id)&&j(v.id,"edit"),children:"Editar"}),I==="edit"&&t.jsx(x.Button,{size:"xs",color:"primary",leftSlot:Ce.faSave,onClick:$,disabled:ae(),children:"Guardar"})]})}):t.jsx(x.Button,{disabled:M,tooltip:M?"Límite de 5 plantillas con cambios sin guardar. Guarda y cierra alguna para crear una nueva.":"",leftSlot:Ce.faPlus,size:"xs",color:"primary",onClick:()=>{p(null),h(!1),f(!1),i(!0)},children:"Nuevo flujo"})]})},ui=({isOpen:e,onClose:a,deleteTemplate:n})=>t.jsx(x.AlertDialog,{title:"Eliminar Borrador",iconContent:de.faBan,heading:"¿Estás seguro?",subheading:"Si eliminas este borrador, también se borrarán todas sus tareas y conexiones con otros borradores.",icon:de.faBan,label:"Escribe 'Eliminar' para continuar",confirmationText:"Eliminar",isOpen:e,onClose:a,onConfirm:n,placeholder:""}),pi=()=>{const{viewMode:e,setRefetch:a,openModalPublishTemplate:n,setOpenModalPublishTemplate:s,currentTemplateId:o,setOpenModalDeleteTemplate:i,openModalDeleteTemplate:r}=Fe(),{publishTemplate:c,deleteTemplate:m}=Be(),{debouncedSearch:l,filters:d}=rs("templates-container"),p=e==="list",[h,f]=u.useState(1),g=9,{data:y,isLoading:w,isFetching:j,refetch:b}=xs({page:h,pageSize:g,search:l,filters:d});u.useEffect(()=>{a(b)},[]),u.useEffect(()=>{f(1)},[d,l]);const{users:_}=Ze(),{getImageOBP:M}=he(),F=v=>{if(!(v!=null&&v.email))return"";const U=_==null?void 0:_[v==null?void 0:v.email];return U!=null&&U.image?M(U==null?void 0:U.image):""},R=u.useMemo(()=>{try{return!y||!_?[]:y.data.map(v=>{const U=F((v==null?void 0:v.updated_by)||(v==null?void 0:v.created_by));return{...v,updated_by:{...v.updated_by,image:U}}})}catch(v){return console.error("Error al mapear las plantillas:",v),[]}},[y,_]),N=async()=>{await c(o),await b()},D=async()=>{await m(o),await b()};return w||j?t.jsx(ot,{isLoading:w||j}):t.jsxs("div",{className:"tm-flex tm-flex-col tm-justify-between tm-gap-y-4 tm-h-full",children:[t.jsx(ys,{isOpen:n,onClose:()=>s(!1),publishTemplate:N}),t.jsx(ui,{isOpen:r,onClose:()=>i(!1),deleteTemplate:D}),t.jsx("div",{className:`tm-grid tm-gap-4 ${p?"tm-grid-cols-1":"tm-grid-cols-1 md:tm-grid-cols-2 lg:tm-grid-cols-3"}`,children:R.map(v=>t.jsx(ps,{fullWidth:p,template:v},v.id))}),t.jsx("div",{children:t.jsx(x.Pagination,{pageSize:g,pageCount:y==null?void 0:y.meta.pagination.pageCount,currentPage:h,onPageChange:v=>f(v)})})]})},js=()=>{var r,c,m,l;const e="grid",a="create-edit",{mode:n}=Te(),s=n===e,o=n===a,i=Le(d=>d.activeTemplate);return t.jsxs("div",{className:"tm-h-full tm-flex tm-flex-col tm-gap-y-6",children:[t.jsx(mi,{}),s&&t.jsx(pi,{}),o&&t.jsx(Qr,{initialNodes:((c=(r=i==null?void 0:i.graph_layout)==null?void 0:r.snapshot)==null?void 0:c.nodes)||[],initialEdges:((l=(m=i==null?void 0:i.graph_layout)==null?void 0:m.snapshot)==null?void 0:l.edges)||[]})]})},fi=()=>({header:t.jsx(mr,{}),body:t.jsx(js,{})});function gi(e){const{users:a}=uo(),{tasks_api:n,getImageOBP:s}=he(),o=u.useMemo(()=>a.data?a.data.map(c=>{const{image:m,id:l,name:d}=c,p=s(m);return{value:l,label:d,icon:p}}):[],[a.data]),i=async c=>{const m=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:l}=await c.get(`/api/params-tipos?${m}`);return be(l.data).flatMap((p,h)=>{const f={id:`group-${h+1}`,label:p.label,value:`group-${h+1}`,isGroupTitle:!0},g=p.params_plantillas.map(y=>({id:y.id,label:y.name,value:y.id,checked:!1,icon:"CheckCircleOutlined",iconColor:"blue"}));return[f,...g]})},r=me.useQuery({queryKey:["paramsPlantilla"],queryFn:()=>i(n),enabled:e==="templates-container",staleTime:1e3*60*30});return{userOptions:o,paramsPlantillasOptions:r.data||[]}}const hi={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"}},xi={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"}},bi={"templates-container":hi,"teams-container":xi,"kanban-general":null,"lista-campanias":null,"kanban-campania":null},yi=e=>({inputFilters:bi[e]||null}),ji=e=>{const{inputFilters:a}=yi(e),{userOptions:n,paramsPlantillasOptions:s}=gi(e);return{inputFilters:u.useMemo(()=>{if(a&&n.length>0&&s.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:s}]}return null},[e,a,n,s])}};function wi(){const{setFilters:e}=ut(),{refetch:a}=Fe();return{handleApplyFilters:s=>{let o={...s};o=Object.fromEntries(Object.entries(o).filter(([i,r])=>!(r===""||r===null||Array.isArray(r)&&r.length===0))),"publication_date"in o&&o.publication_date!==""&&(o={...o,publication_date:Tt(o.publication_date).format("YYYY-MM-DD")}),e(o,"templates-container"),a&&a()}}}const Ta="templates-container";function vi(){const{mode:e}=Te(),{inputFilters:a}=ji(Ta),{handleApplyFilters:n}=wi(),{viewMode:s,setViewMode:o}=Fe();return e!=="grid"?null:t.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-2.5 md:tm-flex-nowrap",children:[t.jsx(os,{path:Ta}),t.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-x-2.5 md:tm-flex-nowrap",children:[a&&t.jsx(x.Filters,{filters:a,onApply:n}),t.jsx(x.Button,{size:"xs",color:"secondary",colorIcon:"neutral",icon:s==="list"?ne.faGrid2:ne.faList,className:"tm-min-w-fit",onClick:()=>o(s==="list"?"grid":"list")})]})]})}const Ct={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()},Gt="Project Manager",ws=({open:e,handleChange:a,children:n,title:s="¿Estás seguro?",onConfirm:o,contentLabel:i="",confirmLabel:r="Aceptar",cancelLabel:c="Regresar",isLoading:m=!1})=>t.jsx(x.Modal,{isOpen:e,onClose:()=>a(!1),onCancel:()=>a(!1),onSuccess:o,size:"xs",title:s,disableEscapeClose:!0,disableOutsideClick:!0,disableOutsideTab:!0,children:t.jsxs(x.Modal.Body,{children:[t.jsx(x.Text,{children:i}),n&&n]})}),_i=({member:e,level:a,isUpdate:n=!1,addHandler:s,updateHandler:o,removeHandler:i,updateMemberHandler:r})=>{var J,H,O;const{users:c,isLoading:m}=Ut(),{users:l,isLoading:d}=Ze(),{getImageOBP:p}=he(),[h,f]=u.useState(!1),[g,y]=u.useState(n?e:{...Ct,miembro_padre:a>1?e:null}),[w,j]=u.useState(null),[b,_]=u.useState({id:0,nombre:"",email:""}),[M,F]=u.useState(!1);u.useEffect(()=>{var S;j(l==null?void 0:l[(S=g==null?void 0:g.idUser)==null?void 0:S.email])},[g,l]),u.useEffect(()=>{e&&y({...e,miembro_padre:a>1?e.miembro_padre:null})},[e,a]);const R=u.useMemo(()=>(c||[]).map(S=>{var q,ee;const B=l==null?void 0:l[S.email??""],k=B!=null&&B.image?p(B.image):"";return{...S,label:S.name,value:S.id,subtitle:S.email??"",avatar:((ee=(q=S.name)==null?void 0:q.slice(0,2))==null?void 0:ee.toUpperCase())??"",avatarUrl:k}}),[c,l,p]),N=()=>{f(!1),_({id:0,nombre:"",email:""})},D=({id:S,name:B,email:k})=>{const q={...g,idUser:{...g.idUser,id:S,nombre:B,email:k}};y(q),o(q),_({id:S,nombre:B,email:k})},v=async()=>{if(!b.nombre&&!b.email){N();return}try{g.id&&r({user_id:b.id,miembro_id:e.id});const S={...g,idUser:{...g.idUser,id:b.id,nombre:b.nombre,email:b.email}};y(S),o(S),j(l==null?void 0:l[b.email]),N()}catch(S){x.toast.error(S instanceof Error?S.message:"Error al actualizar el colaborador")}},U=()=>{const S={...Ct,uid:new Date().getTime()+Math.floor(Math.random()*1e3),miembro_padre:e,miembros:[]};s(S)},K=()=>{i(e),F(!1)};return d||m?null:t.jsxs("div",{className:"tm-flex tm-items-baseline tm-justify-between",children:[M&&t.jsx(ws,{open:M,handleChange:F,onConfirm:K,contentLabel:"Estás eliminando el colaborador seleccionado"}),t.jsxs("div",{className:"tm-flex tm-flex-1 tm-justify-between tm-gap-y-4 tm-mb-2",children:[t.jsxs("div",{children:[t.jsx("div",{className:"tm-flex tm-items-center tm-gap-x-6 tm-mb-2",children:(J=g==null?void 0:g.idUser)!=null&&J.email&&!h?t.jsxs(t.Fragment,{children:[t.jsx(Ae,{size:"m",alt:((H=g==null?void 0:g.idUser)==null?void 0:H.nombre)??"Avatar",imageUrl:w!=null&&w.image?p(w.image):""}),t.jsx("p",{className:"tm-text-body-sm-regular tm-font-body-sm-regular tm-leading-body-sm-regular tm-tracking-body-sm",children:(O=g==null?void 0:g.idUser)==null?void 0:O.nombre})]}):t.jsx(x.Dropdown,{placeholder:"Seleccionar colaborador",options:R,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})}})}),t.jsx(x.Button,{onClick:U,leftSlot:ne.faPlus,size:"xxs",color:"tertiary",children:"Añadir colaborador"})]}),t.jsxs("div",{className:"tm-flex tm-gap-x-4",children:[h?t.jsxs(t.Fragment,{children:[t.jsx(x.Button,{onClick:N,icon:ne.faXmark,size:"xs",color:"secondary",tooltip:"Cancelar"}),t.jsx(x.Button,{onClick:v,icon:ze.faCheck,size:"xs",color:"primary",tooltip:"Guardar"})]}):t.jsx(x.Button,{onClick:()=>f(!0),icon:ne.faPencil,size:"xs",color:"tertiary",tooltip:"Editar"}),t.jsx(x.Button,{onClick:()=>F(!0),icon:ne.faTrash,size:"xs",color:"destructive",tooltip:"Eliminar"})]})]})]})},vs=({members:e,level:a=1,isUpdate:n=!1,setData:s})=>{const o=()=>{s(i=>({...i,miembros:[...i.miembros,{...Ct,uid:new Date().getTime()+Math.floor(Math.random()*1e3)}]}))};return t.jsxs("div",{children:[(e==null?void 0:e.length)===0&&a===1&&t.jsx("div",{className:"tm-flex tm-justify-end",children:t.jsx(x.Button,{size:"xxs",color:"tertiary",leftSlot:ze.faPlus,onClick:o,children:" Agregar miembro del equipo "})}),(e==null?void 0:e.length)>0&&(e==null?void 0:e.map(i=>t.jsx(Ti,{isUpdate:n,member:i,level:a,setData:s},i.uid)))]})},Ti=({member:e,level:a,isUpdate:n=!1,setData:s})=>{const o=l=>{s(d=>{if(!l.miembro_padre)return{...d,miembros:[...d.miembros,l]};const p=h=>h==null?void 0:h.map(f=>f.uid===l.miembro_padre.uid?{...f,miembros:[...f.miembros||[],l]}:f.miembros&&f.miembros.length>0?{...f,miembros:p(f.miembros)}:f);return{...d,miembros:p(d.miembros)}})},i=l=>{s(d=>{const p=h=>h.map(f=>f.uid===l.uid?(f.miembros&&f.miembros.length>0&&f.miembros.forEach(g=>{g.miembro_padre=l}),{...l,miembros:f.miembros||[]}):f.miembros&&f.miembros.length>0?{...f,miembros:p(f.miembros)}:f);return{...d,miembros:p(d.miembros)}})},r=l=>{var p;const d=[];return l.id&&d.push(l.id),(p=l.miembros)!=null&&p.length&&l.miembros.forEach(h=>{d.push(...r(h))}),d},c=l=>{s(d=>{const p=r(l),h=g=>g.filter(y=>y.uid!==l.uid).map(y=>({...y,miembros:y.miembros?h(y.miembros):[]})),f=d.miembros_actualizar.filter(g=>!p.includes(g.miembro_id));return{...d,miembros:h(d.miembros),miembros_eliminar:[...d.miembros_eliminar,...p],miembros_actualizar:f}})},m=l=>{s(d=>d.miembros_actualizar.some(h=>h.miembro_id===l.miembro_id)?d:{...d,miembros_actualizar:[...d.miembros_actualizar,l]})};return t.jsxs("div",{"data-id":e.uid,style:{paddingLeft:a===1?0:"30px",marginTop:a===1?"15px":"0px",paddingBottom:"5px"},children:[t.jsx(_i,{isUpdate:n,level:a,member:e,addHandler:o,updateHandler:i,removeHandler:c,updateMemberHandler:m}),Array.isArray(e.miembros)&&e.miembros.length>0&&t.jsx(vs,{isUpdate:n,members:e.miembros,level:a+1,setData:s})]},e.uid)},Ci=(e=7)=>{const a=(s,o)=>s>=o?{populate:"*"}:{miembro_padre:{fields:["id"]},idUser:{populate:"*"},miembros:{populate:a(s+1,o),filters:{idUser:{blocked:!1}}}};return{miembros:{populate:a(0,e),filters:{idUser:{blocked:!1}}}}},Ni=()=>"#"+Math.floor(Math.random()*16777215).toString(16),Si=({search:e,filters:a})=>{const n={};return e!=null&&e.trim()&&(n.nombre={$containsi:e.trim()}),a!=null&&a.createdAt&&(n.createdAt={$eq:a.createdAt}),n},Ei=({items:e})=>{if(!e)return{members:[],allMembers:[]};const a={};for(const r of e)a[r.uid]=r;const n=[],s=new Set,o=r=>{const c={...r};if(c.id&&(c.uid=c.id),c.uid&&!s.has(c.uid)&&(n.push(c),s.add(c.uid)),!c.miembros)return c;const m=c.miembros.map(l=>{const d={...l};d.id&&(d.uid=d.id);const p=a[d.uid];return o(p||d)}).filter(Boolean);return{...c,miembros:m}};return{members:e.filter(r=>r.miembro_padre===null).map(o),allMembers:n}},Pi=({items:e})=>e?e.map(a=>{const n=Ei({items:a.miembros});return{...a,integrantes:n.allMembers.length,miembros:n.members,miembros_planos:n.allMembers,miembros_eliminar:[],miembros_actualizar:[]}}):[],Ai=async({tasks_api:e,page:a=1,pageSize:n=10,search:s="",filters:o={}})=>{const i=Pe.stringify({filters:Si({search:s,filters:o}),populate:Ci(),sort:["createdAt:asc"],pagination:{page:a,pageSize:n}},{encodeValuesOnly:!0}),r=await e.get(`/api/equipos?${i}`);return r.data?{data:be(r.data.data),meta:r.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:n,pageCount:0,total:0}}}},Ii=({page:e=1,pageSize:a=10,search:n="",filters:s={}})=>{const{tasks_api:o}=he();return me.useQuery({queryKey:["teams",e,a,n,s],queryFn:()=>Ai({tasks_api:o,page:e,pageSize:a,search:n,filters:s}),staleTime:1e3*60*60*24,placeholderData:me.keepPreviousData,select:i=>({data:Pi({items:(i==null?void 0:i.data)||[]}),meta:i==null?void 0:i.meta})})},Nt=e=>({...e,miembro_padre:e.miembro_padre?{id:e.miembro_padre.id,uid:e.miembro_padre.uid}:null,idUser:e.idUser?{id:e.idUser.id,nombre:e.idUser.nombre,email:e.idUser.email,image:e.idUser.image}:null,miembros:e.miembros?e.miembros.map(Nt):[]}),_s=()=>{const{tasks_api:e}=he(),a=me.useQueryClient(),n=async h=>{const f={...h,id:void 0,miembros:h.miembros.map(Nt)};return(await e.post("/api/registrar-equipo-miembros",{data:f})).data},s=async h=>(await e.delete(`/api/equipos/${h}`)).data,o=async(h,f)=>{const g={...f,id:void 0,miembros:f.miembros.map(Nt)};return(await e.patch(`/api/actualizar-equipo-miembros/${h}`,{data:g})).data},i=async(h,f,g)=>{const y=await e.put(`/api/miembros/${h}`,{data:{[f]:g}});if(!y.data)throw new Error("Error al actualizar el miembro");return y.data},{mutateAsync:r,isPending:c}=me.useMutation({mutationFn:s,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:h=>{throw console.error("Failed to delete the team.",h),h}}),{mutateAsync:m}=me.useMutation({mutationFn:n,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:h=>{throw console.error("Failed to update the team.",h),h},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:l}=me.useMutation({mutationFn:h=>o(h.teamId,h.data),onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:h=>{throw console.error("Failed to update the team.",h),h},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:d}=me.useMutation({mutationFn:h=>i(h.memberId,h.field,h.value),onError:h=>{throw console.error("Failed to update the member.",h),new Error("Error al actualizar el miembro")}});return{addTeamHandler:m,deleteTeamHandler:r,updateTeamHandler:l,updateMemberHandler:d,invalidateTeams:()=>{a.invalidateQueries({queryKey:["teams"]})},isLoadingDeleteTeam:c}},Di=(e,a,n)=>{const s=u.useCallback(o=>{e.current&&!e.current.contains(o.target)&&a(!1)},[e,a]);u.useEffect(()=>(n&&document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)}),[s,n])},Fi=({color:e,onChange:a})=>t.jsxs(t.Fragment,{children:[t.jsx("style",{children:`
13
11
  .react-pick-color div button {
14
12
  border-radius: 50% !important;
15
13
  width: 20px;
@@ -26,4 +24,4 @@
26
24
  .react-pick-color div label > span {
27
25
  display: none !important;
28
26
  }
29
- `}),t.jsx("div",{className:"react-pick-color tw-overflow-hidden tw-rounded-lg tw-shadow-lg",children:t.jsx(Os.ColorPicker,{color:e,theme:{inputBackground:"#FFF"},combinations:["monochromatic"],onChange:n=>a(n)})})]});function Fi({color:e,setColor:a,label:n="Elige el color",className:s=""}){const[o,i]=p.useState(!1),r=p.useRef(null);return Ai(r,i,o),t.jsxs("div",{className:"tw-relative tw-w-full",children:[t.jsx("button",{onClick:c=>{c.stopPropagation(),i(!o)},style:{backgroundColor:e},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 ${s}`,children:n}),o&&t.jsx("div",{ref:r,className:"tw-absolute tw-z-50 tw-mt-2",children:t.jsx(Di,{color:e,onChange:c=>a(c.hex)})})]})}const Nt="Ha ocurrido un error inesperado. Por favor, intente nuevamente.",ki={"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"},Ts=()=>({handleApiError:a=>{var n,s,o,i,r;if(a instanceof Ye.AxiosError&&((n=a.response)==null?void 0:n.status)===400){const c=a.response.data;if(((o=(s=c.details)==null?void 0:s.errors)==null?void 0:o.length)>0){const d=c.details.errors[0];let l=ki[d.message]||Nt;return l=l.replace("{field}",d.path.join(".")),((i=d.params)==null?void 0:i.min)!==void 0&&(l=l.replace("{min}",d.params.min.toString())),((r=d.params)==null?void 0:r.max)!==void 0&&(l=l.replace("{max}",d.params.max.toString())),l}return c.message||Nt}return Nt}});function Cs({open:e,handleChange:a,team:n}){const{addTeamHandler:s,updateTeamHandler:o}=Ns(),{handleApiError:i}=Ts(),[r,c]=p.useState(""),[d,l]=p.useState(n||{id:0,nombre:"",color:Ti(),miembros:[],miembros_planos:[],integrantes:0,miembros_eliminar:[],miembros_actualizar:[]}),u=d.id>0,m=async()=>{if(d.nombre.length===0){c("El nombre del equipo es requerido");return}if(d.miembros.length===0){c("El equipo debe tener al menos un miembro");return}const g=async()=>u?await o({data:d,teamId:d.id}):await s(d);try{await g(),c(""),a(!1);const w=u?"Equipo actualizado correctamente":"Equipo creado correctamente";j.toast.success(w)}catch(w){c(i(w))}};return t.jsx(j.Modal,{onCancel:()=>a(!1),onSuccess:m,title:"Información del equipo",icon:ze.faUser,showCloseButton:!0,showCancelButton:!0,showSuccessButton:!0,closeAtSuccess:!0,closeAtCancel:!0,isOpen:e,onClose:()=>a(!1),size:"lg",children:t.jsxs(j.Modal.Body,{children:[t.jsxs("div",{className:"ui-flex ui-flex-col ui-gap-y-8",children:[t.jsxs("div",{className:"ui-flex ui-w-full ui-items-center ui-gap-8 tw-flex-wrap",children:[t.jsx(rr,{value:d.nombre,onChange:g=>l({...d,nombre:g})}),t.jsxs("div",{className:"ui-flex ui-flex-1 ui-items-center ui-gap-x-8",children:[t.jsx("label",{className:"ui-text-body-sm-bold ui-text-primary ui-flex-1 ui-min-w-fit",children:"Color del equipo"}),t.jsx(Fi,{color:d.color,setColor:g=>l({...d,color:g})})]})]}),r&&t.jsx("p",{className:"tw-mt-4 tw-text-sm tw-text-danger-pastel",children:r})]}),t.jsxs("div",{className:"ui-mt-8",children:[t.jsx(or,{title:"Miembros del equipo",icon:ze.faUsers}),t.jsx(_s,{members:d.miembros,setData:l,isUpdate:u})]})]})})}const Me=384,Mi=80,Li=180,Et=20,Oi=2,Ss=4,Pt=.8;function Bi({data:e}){const{getImageOBP:a}=ge();return t.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:[t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-4",children:[t.jsx("div",{className:"tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-gray-100",children:t.jsx(Le,{size:"xxl",alt:"@shadcn",imageUrl:e!=null&&e.image?a(e==null?void 0:e.image):void 0})}),t.jsxs("div",{className:"tw-text-black-black_dark",children:[t.jsx("div",{className:"tw-text-lg tw-font-bold",children:e.name}),t.jsx("div",{className:"",children:e.job||"Puesto no asignado"})]})]}),t.jsx(ne.Handle,{type:"target",position:ne.Position.Top,className:"tw-bg-transparent",isConnectable:!1}),t.jsx(ne.Handle,{type:"source",position:ne.Position.Bottom,className:"tw-w-16 tw-border-none tw-bg-transparent",isConnectable:!1})]})}const qi={custom:Bi},Ri={style:{stroke:"#6366f1",strokeWidth:2}},Es=(e,a=0)=>e?e.map(n=>{const s=n.miembros?Es(n.miembros,a+1):[];return{width:Me,height:Mi,children:s,x:0,y:a*Li,totalWidth:0,depth:a}}):[],Ps=e=>{if(e.children.length===0)return e.totalWidth=Me,Me;const a=e.children.reduce((o,i)=>o+Ps(i),0),n=e.children.length>Ss?Pt:1,s=(e.children.length-1)*Et*n;return e.totalWidth=Math.max(Me,a+s),e.totalWidth},Is=(e,a=0)=>{let n=a;return e.forEach(s=>{s.totalWidth===0&&Ps(s);const o=s.children.length>Oi,i=s.children.length>Ss;if(s.children.length>0){if(Is(s.children,n),i){const m=(s.totalWidth-Me)/(s.children.length-1)*Pt;s.children.forEach((g,w)=>{g.x=n+w*m})}else if(o){const m=(s.totalWidth-Me)/(s.children.length-1);s.children.forEach((g,w)=>{g.x=n+w*m})}const c=s.children[0].x,d=s.children[s.children.length-1].x+Me,l=i?Me*.1:0;s.x=(c+d-Me)/2+l}else s.x=n;const r=i?Pt:1;n=Math.max(n+Me+Et*r,s.x+Me+Et*r)}),n},As=(e,a,n,s)=>{const o=[],i=[];return e.forEach((r,c)=>{var u,m,g,w,f,h;const d=a[c],l=d.id.toString();if(o.push({id:l,type:"custom",data:{name:(u=d.idUser)==null?void 0:u.nombre,image:(g=n==null?void 0:n[(m=d.idUser)==null?void 0:m.email])==null?void 0:g.image,job:((h=(f=n==null?void 0:n[(w=d.idUser)==null?void 0:w.email])==null?void 0:f.role)==null?void 0:h.name)||""},position:{x:r.x,y:r.y}}),s&&i.push({id:`e-${s}-${l}`,source:s,target:l,style:{stroke:"#6366f1",strokeWidth:2}}),d.miembros&&d.miembros.length>0){const x=As(r.children,d.miembros,n,l);o.push(...x.nodes),i.push(...x.edges)}}),{nodes:o,edges:i}};function zi({members:e}){const[a,n]=p.useState([]),[s,o]=p.useState([]),{users:i,isLoading:r}=Ze();return p.useEffect(()=>{if(e&&!r){const c=Es(e);Is(c);const{nodes:d,edges:l}=As(c,e,i);n(d),o(l)}},[e,i,r]),r?null:t.jsx(ne.ReactFlow,{nodeTypes:qi,nodes:a,edges:s,draggable:!1,fitView:!0,defaultViewport:{x:0,y:0,zoom:1},minZoom:.5,maxZoom:2,defaultEdgeOptions:Ri})}function $i({open:e,handleChange:a,members:n}){return t.jsx(j.Modal,{showCancelButton:!1,showSuccessButton:!1,hideFooter:!0,isOpen:e,onClose:()=>a(!1),size:"xl",title:"Organigrama de equipo",children:t.jsx("div",{className:"tw-mx-auto tw-bg-white",style:{width:"100%",height:"600px"},children:t.jsx(ne.ReactFlowProvider,{children:t.jsx(zi,{members:n})})})})}function Ds(){return t.jsx("div",{className:"tw-flex tw-animate-pulse tw-items-center tw-gap-x-2",children:Array.from({length:3},(e,a)=>t.jsx("div",{className:"tw-h-8 tw-w-8 tw-rounded-full tw-bg-gray-200"},a))})}function Ui(){return t.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:t.jsxs("div",{className:"flex tw-h-full tw-w-full",children:[t.jsx("div",{className:"tw-h-full tw-rounded-bl-xl tw-rounded-tl-xl tw-border-l-[.6rem] tw-bg-gray-200"}),t.jsxs("div",{className:"flex flex-1 tw-p-6",children:[t.jsxs("div",{className:"flex-1 flex flex-col tw-h-full tw-justify-between",children:[t.jsx("div",{className:"tw-h-6 tw-w-32 tw-rounded tw-bg-gray-200"}),t.jsxs("div",{className:"flex tw-items-center tw-gap-x-6",children:[t.jsx("div",{className:"tw-h-5 tw-w-24 tw-rounded tw-bg-gray-200"}),t.jsx("div",{className:"tw-h-5 tw-w-8 tw-rounded tw-bg-gray-200"})]}),t.jsx(Ds,{})]}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-justify-between",children:[t.jsx("div",{className:"tw-h-6 tw-w-6 tw-rounded tw-bg-gray-200"}),t.jsx("div",{className:"tw-h-6 tw-w-6 tw-rounded tw-bg-gray-200"}),t.jsx("div",{className:"tw-h-6 tw-w-6 tw-rounded tw-bg-gray-200"})]})]})]})})}function Hi({length:e}){const n=e?e>12?12:e:12;return t.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},(s,o)=>t.jsx(Ui,{},o))})}function Ki({members:e}){const{getImageOBP:a}=ge(),{users:n,isLoading:s}=Ze();if(s)return t.jsx(Ds,{});const o=e.filter(i=>{var r,c;return(c=n[(r=i.idUser)==null?void 0:r.email])==null?void 0:c.image}).slice(0,3);return t.jsx("div",{className:"tw-flex tw-items-center tw-gap-x-2",children:t.jsx(j.Avatar,{maxVisible:2,stroke:!0,stack:o.map(i=>{var c;const r=n[(c=i.idUser)==null?void 0:c.email];return{src:a(r.image),name:r.name}}),size:"sm"})})}function Wi({team:e}){const[a,n]=p.useState(!1),[s,o]=p.useState(!1),{user:i}=Te(),[r,c]=p.useState(!1),{handleApiError:d}=Ts(),{deleteTeamHandler:l,isLoadingDeleteTeam:u}=Ns(),m=async()=>{try{await l(e.id),j.toast.success("Equipo eliminado correctamente")}catch(g){j.toast.error(d(g))}};return t.jsxs(j.Card,{children:[a&&t.jsx(Cs,{handleChange:n,open:a,team:e}),r&&t.jsx(vs,{isLoading:u,open:r,handleChange:c,onConfirm:m,contentLabel:"Estás eliminando el equipo seleccionado"}),s&&t.jsx($i,{handleChange:o,open:s,members:e.miembros}),t.jsxs(j.Card.Header,{className:"ui-flex ui-items-center justify-between",children:[t.jsx("div",{className:"ui-flex ui-flex-col ui-justify-start ui-items-start ui-gap-y-2",children:t.jsxs("div",{className:"ui-flex ui-items-center ui-gap-x-8",children:[t.jsx(j.Badge,{size:"dot",customColor:e.color,theme:"solid"}),t.jsx(j.Icon,{name:ze.faPeopleGroup,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"md"}),t.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:e.nombre})]})}),t.jsx("div",{children:(i==null?void 0:i.role)==js&&t.jsx(j.Popup,{size:"xs",color:"secondary",pill:"pill",icon:xe.faEllipsis,stopPropagationList:!0,children:t.jsxs(j.List,{className:"ui-gap-4",padding:"sm",children:[t.jsx(j.ListItem,{icon:xe.faPencil,onClick:()=>n(!0),children:"Editar"}),t.jsx(j.ListItem,{icon:xe.faEye,onClick:()=>o(!0),children:"Ver organigrama"}),t.jsx(j.ListItem,{color:"red",icon:xe.faTrash,onClick:()=>c(!0),children:"Eliminar"})]})})})]}),t.jsx(j.Card.Separator,{}),t.jsxs(j.Card.Body,{children:[t.jsx(Ki,{members:e.miembros_planos}),t.jsxs("div",{className:"ui-flex ui-items-center ui-gap-4 ui-mt-2",children:[t.jsx("p",{className:"ui-text-icon-all-colors-blue ui-text-xs tw-text-center tw-leading-none tw-font-semibold",children:e.integrantes||0}),t.jsxs("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:["Integrante",e.integrantes>1?"s":""]})]})]})]})}function Gi({teams:e}){return t.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:e==null?void 0:e.map(a=>t.jsx(Wi,{team:a},a.id))})}const Vi="teams-container";function Qi(){return t.jsx("div",{className:"tw-flex tw-flex-wrap tw-items-center tw-justify-between tw-gap-2.5 md:tw-flex-nowrap",children:t.jsx(os,{path:Vi})})}function Fs(){var b,C,k,F,q;const[e,a]=p.useState(!1),[n,s]=p.useState(1),[o,i]=p.useState(10),{user:r}=Te(),{debouncedSearch:c,filters:d}=rs("teams-container"),l=Array.isArray(d)?d:[];p.useEffect(()=>{s(1)},[c,d]);const{data:u,isLoading:m}=Ii({page:n,pageSize:o,search:c,filters:{nombre:"",createdAt:(b=l.find(T=>T.keyName==="createdAt"))==null?void 0:b.value,integrantes_min:(C=l.find(T=>T.keyName==="integrantes_min"))==null?void 0:C.value,integrantes_max:(k=l.find(T=>T.keyName==="integrantes_max"))==null?void 0:k.value}}),g=(u==null?void 0:u.data)||[],w=u==null?void 0:u.meta,f=((F=w==null?void 0:w.pagination)==null?void 0:F.pageCount)||0,h=((q=w==null?void 0:w.pagination)==null?void 0:q.total)||0,x=T=>{s(T)},y=T=>{i(T),s(1)};return t.jsxs("div",{className:"tw-grid tw-h-full tw-grid-rows-[auto,1fr] tw-gap-y-8",children:[e&&t.jsx(Cs,{handleChange:a,open:e}),(r==null?void 0:r.role)===js&&t.jsx("div",{className:"tw-flex tw-items-center tw-justify-end",children:t.jsx(j.Button,{size:"xs",color:"primary",leftSlot:xe.faPlus,onClick:()=>a(!0),children:" Nuevo equipo "})}),t.jsx("div",{className:"custom-scrollbar",style:{scrollbarGutter:"stable",paddingRight:"4px"},children:g.length===0&&!m?t.jsx("div",{className:"flex tw-h-full tw-items-center tw-justify-center",children:t.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-center tw-gap-y-6",children:[t.jsx("p",{className:"tw-text-3xl tw-font-bold",children:c?"No se encontraron equipos con ese nombre":"¡Parece que aún no has creado un equipo!"}),!c&&t.jsx(j.Button,{color:"primary",onClick:()=>a(!0),children:"¡Empieza ahora!"})]})}):m?t.jsx(Hi,{}):t.jsx("div",{className:`tw-pb-16 ${m?"tw-opacity-0 tw-transition tw-duration-300":"tw-opacity-100 tw-transition tw-duration-300"}`,children:t.jsx(Gi,{teams:g})})}),f>0&&t.jsx(j.Pagination,{currentPage:n,pageCount:f,pageSize:o,total:h,onPageChange:x,handlePageSize:y,showVisiblePages:!0,showPagesSelector:!0})]})}const Xi=()=>({header:t.jsx(tl,{}),body:t.jsx(Fs,{})}),Yi={"templates-container":ji,"teams-container":Qi};function Ji({path:e}){const a=e?Yi[e]:null;return a?t.jsx(a,{}):null}function Zi({path:e}){return e==="templates-container"?mi():e==="teams-container"?Xi():{header:null,body:null}}const el=({startPath:e})=>{const{path:a,setPath:n}=Ae(),{setCurrentPath:s}=mt();p.useEffect(()=>{n(e),s(e)},[e,n,s]);const{header:o,body:i}=Zi({path:a});return t.jsxs(j.Card,{fullWidth:!0,className:"tw-h-full",children:[t.jsxs(j.Card.Header,{className:"tw-flex tw-flex-wrap tw-items-center tw-gap-4",children:[o,t.jsx(Ji,{path:a})]}),t.jsx(j.Card.Separator,{}),t.jsx(j.Card.Body,{fullHeight:!0,className:"tw-flex tw-flex-1 tw-flex-col tw-gap-y-4",children:i})]})},tl=()=>t.jsx(ns,{title:"Equipos"}),al=({path:e,tab:a,setPath:n,project:s,setProject:o})=>{const i={"kanban-general":{kanban:t.jsx(Jo,{})},"teams-container":{teams:t.jsx(Fs,{})},"lista-campanias":{lista:t.jsx($n,{setPath:n,setProject:o}),gantt:t.jsx("div",{children:"gantt-campanias"})},"kanban-campania":{kanban:t.jsx(Ho,{}),lista:t.jsx(nr,{}),gantt:t.jsx("div",{children:"kanban-campania-gantt"})},"templates-container":{templates:t.jsx(ys,{})}};return e==="kanban-campania"?t.jsx(Jn,{project:s==null?void 0:s.id,children:i[e][a]}):i[e][a]},sl=({label:e,active:a,onClick:n,disabled:s})=>s?t.jsx(ce.Tooltip,{dispatch:t.jsx("button",{className:"tw-cursor-help tw-text-xl tw-font-semibold tw-text-texts-placeholder",children:e}),children:t.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:t.jsx("p",{className:"tw-text-lg tw-font-semibold tw-text-texts-placeholder",children:"Espéralo muy pronto..."})})}):t.jsx("button",{disabled:s,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 ${s?"tw-cursor-not-allowed tw-text-lg tw-text-texts-placeholder":"tw-text-texts-subtext"}`,children:e}),nl=({tabs:e,renderItem:a,initialTab:n})=>{const[s,o]=p.useState(n??e[0].toLowerCase());p.useEffect(()=>{n&&o(n)},[n]);const i=r=>{o(r),a(r)};return t.jsx("div",{className:"tw-flex",children:e.map((r,c)=>t.jsx("div",{className:`${c===0?"tw-border-l-2":""} tw-border-r-2 tw-border-gray-200 tw-px-m`,children:t.jsx(sl,{onClick:()=>i(r.toLowerCase()),label:r,active:r.toLowerCase()===s,disabled:["gantt"].includes(r.toLowerCase())},c)}))})};function ol(){const{toast:e}=Bt();return e.message?t.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 ${e.type==="success"?"tw-bg-success-medium":"tw-bg-danger-medium"} tw-flex tw-items-center`,children:t.jsxs("div",{className:"relative tw-flex tw-h-full tw-w-full tw-items-center",children:[t.jsx("div",{className:`tw-h-full tw-w-[5px] ${e.type==="success"?"tw-bg-success-dark":"tw-bg-danger-regular"} tw-absolute tw-left-0 tw-rounded-full`}),t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2 tw-pl-4",children:[t.jsx(ce.Icons,{icon:e.type==="success"?"circle_checked":"circle_x",className:`tw-text-${e.type==="success"?"success-dark":"danger-dark"}`,color:e.type==="success"?"#368156":"#DC2626"}),t.jsx("p",{className:`${e.type==="success"?"tw-text-success-dark":"tw-text-danger-dark"} tw-text-xl tw-font-semibold`,children:e.message})]})]})}):null}const Na="tasksProject",rl=({path:e})=>{const a=()=>{const n=de.useQueryClient(),{selectPath:s,updateFilters:o,applyFilters:i,filters:r,fields:c}=ke(),[d,l]=p.useState("kanban"),[u,m]=p.useState(e),[g,w]=p.useState({id:1704,project:"Kanban de Campania"}),[f,h]=p.useState([{path:"lista-campanias",search:(r==null?void 0:r.search)??""},{path:"kanban-campania",search:(r==null?void 0:r.taskName)??""},{path:"kanban-general",search:(r==null?void 0:r.taskName)??""},{path:"teams-container",search:(r==null?void 0:r.taskName)??""},{path:"templates-container",search:(r==null?void 0:r.taskName)??""}]),[x,y]=p.useState(),b=p.useRef(null);p.useEffect(()=>{var R;l(u==="lista-campanias"?"lista":u==="kanban-campania"?"kanban":u==="teams-container"?"teams":u==="templates-container"?"templates":"kanban"),s(u),y(((R=f.find(K=>K.path===u))==null?void 0:R.search)??"")},[e,u]),p.useEffect(()=>{var R;((R=T())==null?void 0:R.trim())===""&&o({name:u==="lista-campanias"||u==="teams-container"||u==="templates-container"?"search":"taskName",value:null}),i()},[f]);const C=R=>({"kanban-general":"Kanban General","lista-campanias":"Campanias","teams-container":"Equipos","kanban-campania":`Kanban de ${g.project}`,"templates-container":"Flujos de trabajo"})[R],k=R=>{m(R)},F=["lista-campanias","kanban-campania"],q={"lista-campanias":["lista","gantt"],"kanban-campania":["kanban","lista","gantt"],"teams-container":["teams"],"templates-container":["templates"]},T=()=>{var R;return((R=f.find(K=>K.path===u))==null?void 0:R.search)??""},S=()=>{u==="kanban-general"?zo(n):u==="kanban-campania"&&(n.invalidateQueries({queryKey:[Na]}),n.refetchQueries({queryKey:[Na]}))},v=R=>{h(K=>K.map(J=>J.path===u?{...J,search:R}:J))};return p.useEffect(()=>{const R=setTimeout(()=>{o({name:u==="lista-campanias"||u==="teams-container"||u==="templates-container"?"search":"taskName",value:x==null?void 0:x.trim()}),v(x)},500);return()=>{clearTimeout(R)}},[x]),t.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:[t.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:[t.jsxs("div",{className:"tw-flex tw-gap-xl",children:[u==="kanban-campania"&&t.jsx("button",{onClick:()=>k("lista-campanias"),className:"tw-text-primary hover:tw-text-primary/80 tw-flex tw-items-center tw-transition-colors",children:t.jsx(ce.Icons,{icon:"arrow_left",size:"xs",strokeWidth:5,color:"#4464C3",title:"Atrás"})}),t.jsx("h2",{className:"tw-font-sans tw-text-[1.6rem] tw-font-semibold tw-text-texts ",children:C(u)}),F.includes(u)&&t.jsx(nl,{tabs:q[u],renderItem:R=>{l(R)},initialTab:d})]}),t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-s !tw-text-[16px]",children:[t.jsx(j.Input,{leftSlot:pe.faSearch,onChange:R=>{y(R.target.value)},placeholder:`Buscar por ${u==="lista-campanias"?"campaña":"campaña / tarea"}`,value:x,fullWidth:!0,className:"tw-min-w-[280px]"}),c.length>0&&t.jsx(Hn,{filterChildren:b,children:t.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:t.jsx(Vn,{})})}),(u==="kanban-general"||u==="kanban-campania")&&t.jsx(j.Button,{icon:xe.faRotate,onClick:S,color:"secondary",pill:"pill",size:"xs"})]})]}),t.jsx("div",{className:"tw-h-full tw-max-h-[100%] tw-overflow-y-auto tw-scrollbar-none",children:t.jsx(al,{path:u,tab:d,setPath:k,project:g,setProject:w})})]})};return t.jsx(Bs,{children:t.jsxs(eo,{children:[t.jsx(a,{}),t.jsx(ol,{})]})})},il=({path:e})=>["templates-container","teams-container"].includes(e)?t.jsx(el,{startPath:e}):t.jsx(rl,{path:e}),ll=()=>t.jsx("div",{className:"tw-relative tw-h-full tw-min-h-[100%] tw-w-full",children:t.jsx("div",{className:"tw-flex tw-h-full tw-items-center tw-justify-center",children:t.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-text-2xl tw-font-bold",children:[t.jsx("div",{className:"tw-h-10 tw-w-10 tw-animate-pulse tw-rounded-full tw-bg-primary-regular"}),t.jsx("p",{className:"tw-text-l tw-text-texts-enfasis",children:"No encontramos tu acceso"}),t.jsx("p",{className:"tw-text-sm tw-text-texts-placeholder",children:"por favor, contacta al administrador"})]})})}),cl=()=>t.jsx("div",{className:"tw-relative tw-h-full tw-min-h-[100%] tw-w-full",children:t.jsx("div",{className:"tw-flex tw-h-full tw-items-center tw-justify-center",children:t.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-text-2xl tw-font-bold",children:[t.jsx("div",{className:"tw-h-10 tw-w-10 tw-animate-pulse tw-rounded-full tw-bg-primary-regular"}),t.jsx("p",{className:"tw-text-l tw-text-texts-enfasis",children:"un momento..."}),t.jsx("p",{className:"tw-text-sm tw-text-texts-placeholder",children:"estamos buscando tu usuario"})]})})}),dl=({path:e,user:a,url:n,mode:s})=>{const o=new de.QueryClient;if(!a)return t.jsx(cl,{});if(!a.accessToken)return t.jsx(ll,{});let i={user:a,url:n,mode:s};return t.jsxs(pr,{children:[t.jsx(j.Toaster,{}),t.jsx(Rs,{...i,children:t.jsx(qs,{...i,children:t.jsx("div",{className:"tw-relative tw-h-full tw-min-h-[100%] tw-w-full",children:t.jsxs(de.QueryClientProvider,{client:o,children:[t.jsx(il,{path:e})," "]})})})})]})};exports.AppTasks=dl;
27
+ `}),t.jsx("div",{className:"react-pick-color tm-overflow-hidden tm-rounded-lg tm-shadow-lg",children:t.jsx(Ls.ColorPicker,{color:e,theme:{inputBackground:"#FFF"},combinations:["monochromatic"],onChange:n=>a(n)})})]});function Mi({color:e,setColor:a,label:n="Elige el color",className:s=""}){const[o,i]=u.useState(!1),r=u.useRef(null);return Di(r,i,o),t.jsxs("div",{className:"tm-relative tm-w-full",children:[t.jsx("button",{onClick:c=>{c.stopPropagation(),i(!o)},style:{backgroundColor:e},className:`tm-h-control-xs tm-w-full tm-rounded-control-sm tm-border-[1px] tm-border-default tm-px-8 tm-text-body-sm-bold tm-text-primary tm-text-left tm-text-white ${s}`,children:n}),o&&t.jsx("div",{ref:r,className:"tm-absolute tm-z-50 tm-mt-2",children:t.jsx(Fi,{color:e,onChange:c=>a(c.hex)})})]})}const _t="Ha ocurrido un error inesperado. Por favor, intente nuevamente.",ki={"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"},Ts=()=>({handleApiError:a=>{var n,s,o,i,r;if(a instanceof Ye.AxiosError&&((n=a.response)==null?void 0:n.status)===400){const c=a.response.data;if(((o=(s=c.details)==null?void 0:s.errors)==null?void 0:o.length)>0){const m=c.details.errors[0];let l=ki[m.message]||_t;return l=l.replace("{field}",m.path.join(".")),((i=m.params)==null?void 0:i.min)!==void 0&&(l=l.replace("{min}",m.params.min.toString())),((r=m.params)==null?void 0:r.max)!==void 0&&(l=l.replace("{max}",m.params.max.toString())),l}return c.message||_t}return _t}});function Cs({open:e,handleChange:a,team:n}){const{addTeamHandler:s,updateTeamHandler:o}=_s(),{handleApiError:i}=Ts(),[r,c]=u.useState(""),[m,l]=u.useState(n||{id:0,nombre:"",color:Ni(),miembros:[],miembros_planos:[],integrantes:0,miembros_eliminar:[],miembros_actualizar:[]}),d=m.id>0,p=async()=>{if(m.nombre.length===0){c("El nombre del equipo es requerido");return}if(m.miembros.length===0){c("El equipo debe tener al menos un miembro");return}const h=async()=>d?await o({data:m,teamId:m.id}):await s(m);try{await h(),c(""),a(!1);const f=d?"Equipo actualizado correctamente":"Equipo creado correctamente";x.toast.success(f)}catch(f){c(i(f))}};return t.jsx(x.Modal,{onCancel:()=>a(!1),onSuccess:p,title:"Información del equipo",icon:ze.faUser,showCloseButton:!0,showCancelButton:!0,showSuccessButton:!0,closeAtSuccess:!0,closeAtCancel:!0,isOpen:e,onClose:()=>a(!1),size:"lg",children:t.jsxs(x.Modal.Body,{children:[t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-8",children:[t.jsxs("div",{className:"tm-flex tm-w-full tm-items-center tm-gap-8 tm-flex-wrap",children:[t.jsx(ir,{value:m.nombre,onChange:h=>l({...m,nombre:h})}),t.jsxs("div",{className:"tm-flex tm-flex-1 tm-items-center tm-gap-x-8",children:[t.jsx("label",{className:"tm-text-body-sm-bold tm-text-primary tm-flex-1 tm-min-w-fit",children:"Color del equipo"}),t.jsx(Mi,{color:m.color,setColor:h=>l({...m,color:h})})]})]}),r&&t.jsx("p",{className:"tm-mt-4 tm-text-sm tm-text-danger-pastel",children:r})]}),t.jsxs("div",{className:"tm-mt-8",children:[t.jsx(rr,{title:"Miembros del equipo",icon:ze.faUsers}),t.jsx(vs,{members:m.miembros,setData:l,isUpdate:d})]})]})})}const Oe=384,Oi=80,Li=180,St=20,Bi=2,Ns=4,Et=.8;function Ri({data:e}){const{getImageOBP:a}=he();return t.jsxs("div",{className:"tm-w-[290px] tm-rounded-md tm-border-[0.5px] tm-border-silver-silver_regular tm-bg-white tm-px-4 tm-py-2 tm-shadow-xl",children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-4",children:[t.jsx("div",{className:"tm-flex tm-items-center tm-justify-center tm-rounded-full tm-bg-light-gray-50",children:t.jsx(Ae,{size:"xxl",alt:"@shadcn",imageUrl:e!=null&&e.image?a(e==null?void 0:e.image):void 0})}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-2",children:[t.jsx(x.Text,{size:"xs",weight:"bold",children:e.name}),t.jsx(x.Text,{children:e.job||"Puesto no asignado"})]})]}),t.jsx(oe.Handle,{type:"target",position:oe.Position.Top,className:"tm-bg-transparent",isConnectable:!1}),t.jsx(oe.Handle,{type:"source",position:oe.Position.Bottom,className:"tm-w-16 tm-border-none tm-bg-transparent",isConnectable:!1})]})}const qi={custom:Ri},zi={style:{stroke:"#6366f1",strokeWidth:2}},Ss=(e,a=0)=>e?e.map(n=>{const s=n.miembros?Ss(n.miembros,a+1):[];return{width:Oe,height:Oi,children:s,x:0,y:a*Li,totalWidth:0,depth:a}}):[],Es=e=>{if(e.children.length===0)return e.totalWidth=Oe,Oe;const a=e.children.reduce((o,i)=>o+Es(i),0),n=e.children.length>Ns?Et:1,s=(e.children.length-1)*St*n;return e.totalWidth=Math.max(Oe,a+s),e.totalWidth},Ps=(e,a=0)=>{let n=a;return e.forEach(s=>{s.totalWidth===0&&Es(s);const o=s.children.length>Bi,i=s.children.length>Ns;if(s.children.length>0){if(Ps(s.children,n),i){const p=(s.totalWidth-Oe)/(s.children.length-1)*Et;s.children.forEach((h,f)=>{h.x=n+f*p})}else if(o){const p=(s.totalWidth-Oe)/(s.children.length-1);s.children.forEach((h,f)=>{h.x=n+f*p})}const c=s.children[0].x,m=s.children[s.children.length-1].x+Oe,l=i?Oe*.1:0;s.x=(c+m-Oe)/2+l}else s.x=n;const r=i?Et:1;n=Math.max(n+Oe+St*r,s.x+Oe+St*r)}),n},As=(e,a,n,s)=>{const o=[],i=[];return e.forEach((r,c)=>{var d,p,h,f,g,y;const m=a[c],l=m.id.toString();if(o.push({id:l,type:"custom",data:{name:(d=m.idUser)==null?void 0:d.nombre,image:(h=n==null?void 0:n[(p=m.idUser)==null?void 0:p.email])==null?void 0:h.image,job:((y=(g=n==null?void 0:n[(f=m.idUser)==null?void 0:f.email])==null?void 0:g.role)==null?void 0:y.name)||""},position:{x:r.x,y:r.y}}),s&&i.push({id:`e-${s}-${l}`,source:s,target:l,style:{stroke:"#6366f1",strokeWidth:2}}),m.miembros&&m.miembros.length>0){const w=As(r.children,m.miembros,n,l);o.push(...w.nodes),i.push(...w.edges)}}),{nodes:o,edges:i}};function $i({members:e}){const[a,n]=u.useState([]),[s,o]=u.useState([]),{users:i,isLoading:r}=Ze();return u.useEffect(()=>{if(e&&!r){const c=Ss(e);Ps(c);const{nodes:m,edges:l}=As(c,e,i);n(m),o(l)}},[e,i,r]),r?null:t.jsx(oe.ReactFlow,{nodeTypes:qi,nodes:a,edges:s,draggable:!1,fitView:!0,defaultViewport:{x:0,y:0,zoom:1},minZoom:.5,maxZoom:2,defaultEdgeOptions:zi})}function Ui({open:e,handleChange:a,members:n}){return t.jsx(x.Modal,{showCancelButton:!1,showSuccessButton:!1,hideFooter:!0,isOpen:e,onClose:()=>a(!1),size:"xl",title:"Organigrama de equipo",children:t.jsx("div",{className:"tm-mx-auto tm-bg-white",style:{width:"100%",height:"600px"},children:t.jsx(oe.ReactFlowProvider,{children:t.jsx($i,{members:n})})})})}const Is="tm-grid tm-w-full tm-grid-cols-1 tm-items-baseline tm-gap-x-8 tm-gap-y-8 md:tm-grid-cols-2 lg:tm-grid-cols-3 lg:tm-gap-x-8 xl:tm-grid-cols-4",Hi="tm-relative tm-block tm-overflow-hidden tm-rounded-md tm-bg-gray-200 tm-bg-gradient-to-r tm-from-gray-200 tm-via-gray-50 tm-to-gray-200 tm-bg-[length:200%_100%] tm-animate-skeleton-shimmer";function qe({className:e="",rounded:a="md"}){const n=a==="full"?"tm-rounded-full":"tm-rounded-md";return t.jsx("span",{className:`${Hi} ${n} ${e}`.trim(),"aria-hidden":!0})}function Ds(){return t.jsx("div",{className:"tm-flex tm-items-center tm-gap-x-2",children:Array.from({length:2},(e,a)=>t.jsx(qe,{className:"tm-h-8 tm-w-8 tm-shrink-0",rounded:"full"},a))})}function Ki(){const{user:e}=we(),a=(e==null?void 0:e.role)===Gt;return t.jsxs(x.Card,{className:"tm-w-full",children:[t.jsxs(x.Card.Header,{className:"tm-flex tm-items-center justify-between",children:[t.jsx("div",{className:"tm-flex tm-flex-col tm-justify-start tm-items-start tm-gap-y-2",children:t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[t.jsx(qe,{className:"tm-h-2.5 tm-w-2.5 tm-shrink-0",rounded:"full"}),t.jsx(qe,{className:"tm-h-8 tm-w-8 tm-shrink-0"}),t.jsx(qe,{className:"tm-h-5 tm-min-h-[1.25rem] tm-w-40 tm-max-w-[min(100%,10rem)]"})]})}),t.jsx("div",{children:a?t.jsx(qe,{className:"tm-h-8 tm-w-8 tm-shrink-0",rounded:"full"}):null})]}),t.jsx(x.Card.Separator,{}),t.jsxs(x.Card.Body,{scrollable:!1,children:[t.jsx(Ds,{}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-4 tm-mt-2",children:[t.jsx(qe,{className:"tm-h-4 tm-w-6"}),t.jsx(qe,{className:"tm-h-4 tm-w-28"})]})]})]})}function Gi({length:e}){const n=e??10;return t.jsx("div",{"aria-busy":"true","aria-live":"polite",className:Is,children:Array.from({length:n},(s,o)=>t.jsx(Ki,{},o))})}function Vi({members:e}){const{getImageOBP:a}=he(),{users:n,isLoading:s}=Ze();if(s)return t.jsx(Ds,{});const o=e.filter(i=>{var r,c;return(c=n[(r=i.idUser)==null?void 0:r.email])==null?void 0:c.image}).slice(0,3);return t.jsx("div",{className:"tm-flex tm-items-center tm-gap-x-2",children:t.jsx(x.Avatar,{maxVisible:2,stroke:!0,stack:o.map(i=>{var c;const r=n[(c=i.idUser)==null?void 0:c.email];return{src:a(r.image),name:r.name}}),size:"sm"})})}function Wi({team:e}){const[a,n]=u.useState(!1),[s,o]=u.useState(!1),{user:i}=we(),[r,c]=u.useState(!1),{handleApiError:m}=Ts(),{deleteTeamHandler:l,isLoadingDeleteTeam:d}=_s(),p=async()=>{try{await l(e.id),x.toast.success("Equipo eliminado correctamente")}catch(h){x.toast.error(m(h))}};return t.jsxs(x.Card,{children:[a&&t.jsx(Cs,{handleChange:n,open:a,team:e}),r&&t.jsx(ws,{isLoading:d,open:r,handleChange:c,onConfirm:p,contentLabel:"Estás eliminando el equipo seleccionado"}),s&&t.jsx(Ui,{handleChange:o,open:s,members:e.miembros}),t.jsxs(x.Card.Header,{className:"tm-flex tm-items-center tm-justify-between tm-w-full",children:[t.jsx("div",{className:"tm-flex tm-flex-col tm-justify-start tm-items-start tm-gap-y-2",children:t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8 tm-justify-between tm-w-full",children:[t.jsx(x.Badge,{size:"dot",customColor:e.color,theme:"solid"}),t.jsx(x.Icon,{name:ze.faPeopleGroup,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"md"}),t.jsx("h1",{className:"tm-py-0.5 tm-font-body-sm-bold tm-text-body-sm-bold tm-leading-none tm-text-primary",children:e.nombre})]})}),t.jsx("div",{children:(i==null?void 0:i.role)==Gt&&t.jsx(x.Popup,{size:"xs",color:"secondary",pill:"pill",icon:ne.faEllipsis,stopPropagationList:!0,children:t.jsxs(x.List,{className:"tm-gap-4",padding:"sm",children:[t.jsx(x.ListItem,{icon:ne.faPencil,onClick:()=>n(!0),children:"Editar"}),t.jsx(x.ListItem,{icon:ne.faEye,onClick:()=>o(!0),children:"Ver organigrama"}),t.jsx(x.ListItem,{color:"red",icon:ne.faTrash,onClick:()=>c(!0),children:"Eliminar"})]})})})]}),t.jsx(x.Card.Separator,{}),t.jsxs(x.Card.Body,{children:[t.jsx(Vi,{members:e.miembros_planos}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-4 tm-mt-2",children:[t.jsx("p",{className:"tm-text-icon-all-colors-blue tm-text-xs tm-text-center tm-leading-none tm-font-semibold",children:e.integrantes||0}),t.jsxs("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:["Integrante",e.integrantes>1?"s":""]})]})]})]})}function Qi({teams:e}){return t.jsx("div",{className:Is,children:e==null?void 0:e.map(a=>t.jsx(Wi,{team:a},a.id))})}const Xi="teams-container";function Yi(){return t.jsx("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-2.5 md:tm-flex-nowrap",children:t.jsx(os,{path:Xi})})}function Fs(){var b,_,M,F,R;const[e,a]=u.useState(!1),[n,s]=u.useState(1),[o,i]=u.useState(10),{user:r}=we(),{debouncedSearch:c,filters:m}=rs("teams-container"),l=Array.isArray(m)?m:[];u.useEffect(()=>{s(1)},[c,m]);const{data:d,isLoading:p}=Ii({page:n,pageSize:o,search:c,filters:{nombre:"",createdAt:(b=l.find(N=>N.keyName==="createdAt"))==null?void 0:b.value,integrantes_min:(_=l.find(N=>N.keyName==="integrantes_min"))==null?void 0:_.value,integrantes_max:(M=l.find(N=>N.keyName==="integrantes_max"))==null?void 0:M.value}}),h=(d==null?void 0:d.data)||[],f=d==null?void 0:d.meta,g=((F=f==null?void 0:f.pagination)==null?void 0:F.pageCount)||0,y=((R=f==null?void 0:f.pagination)==null?void 0:R.total)||0,w=N=>{s(N)},j=N=>{i(N),s(1)};return t.jsxs("div",{className:"tm-grid tm-h-full tm-grid-rows-[auto,1fr] tm-gap-y-8",children:[e&&t.jsx(Cs,{handleChange:a,open:e}),(r==null?void 0:r.role)===Gt&&t.jsx("div",{className:"tm-flex tm-items-center tm-justify-end",children:t.jsx(x.Button,{size:"xs",color:"primary",leftSlot:ne.faPlus,onClick:()=>a(!0),children:" Nuevo equipo "})}),t.jsx("div",{className:"custom-scrollbar",style:{scrollbarGutter:"stable",paddingRight:"4px"},children:h.length===0&&!p?t.jsx("div",{className:"flex tm-h-full tm-items-center tm-justify-center",children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-center tm-gap-y-6",children:[t.jsx("p",{className:"tm-text-3xl tm-font-bold",children:c?"No se encontraron equipos con ese nombre":"¡Parece que aún no has creado un equipo!"}),!c&&t.jsx(x.Button,{color:"primary",onClick:()=>a(!0),children:"¡Empieza ahora!"})]})}):p?t.jsx("div",{className:"tm-pb-16 tm-opacity-100 tm-transition tm-duration-300",children:t.jsx(Gi,{length:o})}):t.jsx("div",{className:`tm-pb-16 ${p?"tm-opacity-0 tm-transition tm-duration-300":"tm-opacity-100 tm-transition tm-duration-300"}`,children:t.jsx(Qi,{teams:h})})}),g>0&&t.jsx(x.Pagination,{currentPage:n,pageCount:g,pageSize:o,total:y,onPageChange:w,handlePageSize:j,showVisiblePages:!0,showPagesSelector:!0})]})}const Ji=()=>({header:t.jsx(sl,{}),body:t.jsx(Fs,{})}),Zi={"templates-container":vi,"teams-container":Yi};function el({path:e}){const a=e?Zi[e]:null;return a?t.jsx(a,{}):null}function tl({path:e}){return e==="templates-container"?fi():e==="teams-container"?Ji():{header:null,body:null}}const al=({startPath:e})=>{const{path:a,setPath:n}=Fe(),{setCurrentPath:s}=ut();u.useEffect(()=>{n(e),s(e)},[e,n,s]);const{header:o,body:i}=tl({path:a});return t.jsxs(x.Card,{fullWidth:!0,className:"tm-h-full",children:[t.jsxs(x.Card.Header,{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-16 tm-justify-between",children:[o,t.jsx(el,{path:a})]}),t.jsx(x.Card.Separator,{}),t.jsx(x.Card.Body,{fullHeight:!0,className:"tm-flex tm-flex-1 tm-flex-col tm-gap-y-4",children:i})]})},sl=()=>t.jsx(ns,{title:"Equipos"}),nl=({path:e,tab:a,setPath:n,project:s,setProject:o})=>{const i={"kanban-general":{kanban:t.jsx(Zo,{})},"teams-container":{teams:t.jsx(Fs,{})},"lista-campanias":{lista:t.jsx($n,{setPath:n,setProject:o}),gantt:t.jsx("div",{children:"gantt-campanias"})},"kanban-campania":{kanban:t.jsx(Ko,{}),lista:t.jsx(or,{}),gantt:t.jsx("div",{children:"kanban-campania-gantt"})},"templates-container":{templates:t.jsx(js,{})}};return e==="kanban-campania"?t.jsx(Jn,{project:s==null?void 0:s.id,children:i[e][a]}):i[e][a]},ol=({label:e,active:a,onClick:n,disabled:s})=>s?t.jsx(Ie,{position:"bottom",trigger:t.jsx("button",{type:"button",className:"tm-cursor-help tm-text-xs tm-font-semibold tm-text-texts-placeholder",children:e}),children:t.jsx("div",{className:"tm-px-4 tm-py-2",children:t.jsx(x.Text,{children:"Espéralo muy pronto..."})})}):t.jsx("button",{type:"button",disabled:s,onClick:n,className:`${a?" tm-text-black-regular":""} tm-text-xs ${s?"tm-cursor-not-allowed tm-text-lg tm-text-black-regular":"tm-text-black-regular"}`,children:e}),rl=({tabs:e,renderItem:a,initialTab:n})=>{const[s,o]=u.useState(n??e[0].toLowerCase());u.useEffect(()=>{n&&o(n)},[n]);const i=r=>{o(r),a(r)};return t.jsx("div",{className:"tm-flex",children:e.map((r,c)=>t.jsx("div",{className:`${c===0?"tm-border-l-2":""} tm-border-r-2 tm-border-light-gray-100 tm-px-m`,children:t.jsx(ol,{onClick:()=>i(r.toLowerCase()),label:r,active:r.toLowerCase()===s,disabled:["gantt"].includes(r.toLowerCase())},c)}))})};function il(){const{toast:e}=Lt();if(!e.message)return null;const a=e.type==="success";return t.jsx("div",{className:`tm-bg-black tm-fixed tm-right-10 tm-top-[10%] tm-z-[200] tm-h-[30px] tm-w-[300px] tm-rounded-md tm-text-lg tm-shadow-md ${a?"tm-bg-success-medium":"tm-bg-danger-medium"} tm-flex tm-items-center`,children:t.jsxs("div",{className:"relative tm-flex tm-h-full tm-w-full tm-items-center",children:[t.jsx("div",{className:`tm-h-full tm-w-[5px] ${a?"tm-bg-success-dark":"tm-bg-danger-regular"} tm-absolute tm-left-0 tm-rounded-full`}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-2 tm-pl-4",children:[t.jsx(x.Icon,{name:a?de.faCircleCheck:de.faCircleXmark,size:"sm",style:{color:a?"#368156":"#DC2626"},color:"current"}),t.jsx("p",{className:`${a?"tm-text-success-dark":"tm-text-danger-dark"} tm-text-xl tm-font-semibold`,children:e.message})]})]})})}const Ca="tasksProject",ll=({path:e})=>{const a=()=>{const n=me.useQueryClient(),{selectPath:s,updateFilters:o,applyFilters:i,filters:r,fields:c}=De(),[m,l]=u.useState("kanban"),[d,p]=u.useState(e),[h,f]=u.useState({id:1704,project:"Kanban de Campania"}),[g,y]=u.useState([{path:"lista-campanias",search:(r==null?void 0:r.search)??""},{path:"kanban-campania",search:(r==null?void 0:r.taskName)??""},{path:"kanban-general",search:(r==null?void 0:r.taskName)??""},{path:"teams-container",search:(r==null?void 0:r.taskName)??""},{path:"templates-container",search:(r==null?void 0:r.taskName)??""}]),[w,j]=u.useState();u.useEffect(()=>{var v;l(d==="lista-campanias"?"lista":d==="kanban-campania"?"kanban":d==="teams-container"?"teams":d==="templates-container"?"templates":"kanban"),s(d),j(((v=g.find(U=>U.path===d))==null?void 0:v.search)??"")},[e,d]),u.useEffect(()=>{var v;((v=R())==null?void 0:v.trim())===""&&o({name:d==="lista-campanias"||d==="teams-container"||d==="templates-container"?"search":"taskName",value:null}),i()},[g]);const b=v=>({"kanban-general":"Kanban General","lista-campanias":"Campanias","teams-container":"Equipos","kanban-campania":`Kanban de ${h.project}`,"templates-container":"Flujos de trabajo"})[v],_=v=>{p(v)},M=["lista-campanias","kanban-campania"],F={"lista-campanias":["lista","gantt"],"kanban-campania":["kanban","lista","gantt"],"teams-container":["teams"],"templates-container":["templates"]},R=()=>{var v;return((v=g.find(U=>U.path===d))==null?void 0:v.search)??""},N=()=>{d==="kanban-general"?$o(n):d==="kanban-campania"&&(n.invalidateQueries({queryKey:[Ca]}),n.refetchQueries({queryKey:[Ca]}))},D=v=>{y(U=>U.map(K=>K.path===d?{...K,search:v}:K))};return u.useEffect(()=>{const v=setTimeout(()=>{o({name:d==="lista-campanias"||d==="teams-container"||d==="templates-container"?"search":"taskName",value:w==null?void 0:w.trim()}),D(w)},500);return()=>{clearTimeout(v)}},[w]),t.jsxs("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-flex-col tm-gap-m tm-overflow-hidden tm-rounded-lg tm-border tm-border-light-gray-100 tm-bg-bg-card tm-p-m",children:[t.jsxs("div",{className:"tm-flex tm-w-full tm-flex-wrap tm-items-end tm-justify-between tm-gap-l tm-border-b tm-border-light-gray-100 tm-pb-m",children:[t.jsxs("div",{className:"tm-flex tm-gap-xl",children:[d==="kanban-campania"&&t.jsx("button",{onClick:()=>_("lista-campanias"),className:"tm-text-primary hover:tm-text-primary/80 tm-flex tm-items-center tm-transition-colors",children:t.jsx(x.Icon,{name:ne.faArrowLeft,size:"xs",style:{color:"#4464C3"},color:"current",className:"tm-shrink-0"})}),t.jsx("h2",{className:"tm-text-base tm-font-medium tm-text-texts ",children:b(d)}),M.includes(d)&&t.jsx(rl,{tabs:F[d],renderItem:v=>{l(v)},initialTab:m})]}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-s !tm-text-[16px]",children:[t.jsx(x.Input,{leftSlot:de.faSearch,onChange:v=>{j(v.target.value)},placeholder:`Buscar por ${d==="lista-campanias"?"campaña":"campaña / tarea"}`,value:w,fullWidth:!0,className:"tm-min-w-[280px]"}),c.length>0&&t.jsx(Hn,{children:t.jsx(Wn,{})}),(d==="kanban-general"||d==="kanban-campania")&&t.jsx(x.Button,{icon:ne.faRotate,onClick:N,color:"secondary",pill:"pill",size:"xs"})]})]}),t.jsx("div",{className:"tm-h-full tm-max-h-[100%] tm-overflow-y-auto tm-scrollbar-none",children:t.jsx(nl,{path:d,tab:m,setPath:_,project:h,setProject:f})})]})};return t.jsx(Bs,{children:t.jsxs(eo,{children:[t.jsx(a,{}),t.jsx(il,{})]})})},cl=({path:e})=>["templates-container","teams-container"].includes(e)?t.jsx(al,{startPath:e}):t.jsx(ll,{path:e}),dl=()=>t.jsx("div",{className:"tm-relative tm-h-full tm-min-h-[100%] tm-w-full",children:t.jsx("div",{className:"tm-flex tm-h-full tm-items-center tm-justify-center",children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-text-2xl tm-font-bold",children:[t.jsx("div",{className:"tm-h-10 tm-w-10 tm-animate-pulse tm-rounded-full tm-bg-primary-regular"}),t.jsx("p",{className:"tm-text-l tm-text-texts-enfasis",children:"No encontramos tu acceso"}),t.jsx("p",{className:"tm-text-sm tm-text-texts-placeholder",children:"por favor, contacta al administrador"})]})})}),ml=()=>t.jsx("div",{className:"tm-relative tm-h-full tm-min-h-[100%] tm-w-full",children:t.jsx("div",{className:"tm-flex tm-h-full tm-items-center tm-justify-center",children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-text-2xl tm-font-bold",children:[t.jsx("div",{className:"tm-h-10 tm-w-10 tm-animate-pulse tm-rounded-full tm-bg-primary-regular"}),t.jsx("p",{className:"tm-text-l tm-text-texts-enfasis",children:"un momento..."}),t.jsx("p",{className:"tm-text-sm tm-text-texts-placeholder",children:"estamos buscando tu usuario"})]})})}),ul=({path:e,user:a,url:n,mode:s})=>{const o=new me.QueryClient;if(!a)return t.jsx(ml,{});if(!a.accessToken)return t.jsx(dl,{});let i={user:a,url:n,mode:s};return t.jsxs(pr,{children:[t.jsx(x.Toaster,{}),t.jsx(qs,{...i,children:t.jsx(Rs,{...i,children:t.jsx("div",{className:"tm-relative tm-h-full tm-min-h-[100%] tm-w-full",children:t.jsxs(me.QueryClientProvider,{client:o,children:[t.jsx(cl,{path:e})," "]})})})})]})};exports.AppTasks=ul;