@imj_media/tareas 1.5.54 → 1.5.55

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,15 @@
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 ce=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"),ue=require("@fortawesome/pro-solid-svg-icons"),le=require("@imj_media/tasks-modules"),dt=require("react-dom"),Ce=require("@fortawesome/free-solid-svg-icons"),ct=require("date-fns"),At=require("date-fns/locale"),Be=require("@imj_media/imj-ui"),Ae=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})},Me=()=>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})},fe=()=>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}=fe();return ce.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}=fe(),i=n&&Number.isFinite(e)&&Number.isInteger(e)&&e>0;return ce.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})})]})}),It=[{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(It.map(e=>[e.singular,e])),ta=It.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=It.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 Mt(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",Aa="bottom",Ia="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}=Mt(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}=Mt(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:Aa,alignment:Ia,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}=Mt(e,a);return t.jsx(j.Tooltip,{label:n,position:Aa,alignment:Ia,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]})},An={name:ue.faCircleSmall};function In({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:An})},`${n.label}-${s}`))})}const Dn=({listadoProgreso:e,listadoForUi:a,hideClaveColumn:n=!1})=>{var d,l;const{getImageOBP:s}=fe(),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(In,{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"},Mn=({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 kn(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=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=>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]),L=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(Mn,{campaignName:n,phase:r,search:L,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}=Me(),{tasks_api:k,getImageOBP:F}=fe(),{user:q}=Te(),T=p.useCallback(async(M,z)=>{var ee,W,ae;try{i(!0);const se={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},...se}}),$=be(P==null?void 0:P.data);s($),m((ae=(W=P==null?void 0:P.data)==null?void 0:W.meta)==null?void 0:ae.total)}catch(se){console.error("Error fetching data en Lista Campaña:",se)}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(W=>({id:W.nombre,name:W.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]),L=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,W;return((W=(ee=z.campania)==null?void 0:ee.responsable)==null?void 0:W.nombre)??"-"},width:150,sortable:!1,filterable:!1,resizable:!1,render:(z,ee)=>{var Q,D,I,G,A;const W=(Q=ee.campania)==null?void 0:Q.responsable,ae=typeof z=="string"||typeof z=="number"?String(z):(W==null?void 0:W.nombre)??"-",se=(W==null?void 0:W.role)??"-",P=((G=(I=(D=W==null?void 0:W.imagen)==null?void 0:D.formats)==null?void 0:I.thumbnail)==null?void 0:G.url)||((A=W==null?void 0:W.imagen)==null?void 0:A.url)||"",$=P?F(P):W==null?void 0:W.nombre;return{name:ae,...$?{avatar:$}:{},...se?{subtitle:se}:{}}}},{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:L,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)})]})},we={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"}},Ma=()=>{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)}}},ka=p.createContext(null),Un=()=>p.useContext(ka),Hn=({children:e,filterChildren:a})=>{const{position:n,setElementPosition:s,clearPosition:o}=Ma(),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(ka.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(le.Icons,{icon:"filter",size:"xs",strokeWidth:5,color:we.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(le.Icons,{icon:"angle_down_outline",color:e?we.danger.regular:we.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}=Me(),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"})]})},kt=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=kt(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}=fe(),{filters:l}=Me(),{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=ce.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}=fe(),{user:n}=Te(),s=ce.useQueryClient(),{showSuccess:o,showError:i}=Bt(),{filters:r,path:c}=Me(),{data:d,isLoading:l}=ce.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}=ce.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}=ce.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}=ce.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}=fe(),{user:a}=Te(),{filters:n,path:s}=Me(),o=ce.useQueryClient(),{projectID:i}=Je(),{showSuccess:r,showError:c}=Bt(),{finalizarAtraso:d}=$a({enabled:!1}),l=async({id:L})=>(await e.put(`/api/tareas/${L}`,{data:{estatus:1,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,u=async({id:L})=>(await e.put(`/api/tareas/${L}`,{data:{estatus:0,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,m=async({id:L,idAtraso:E})=>{const B=await e.post("/api/terminarTarea",{id_task:L,ended_at:new Date().toISOString(),id_user:a==null?void 0:a.id});return await d(E),B.data},g=async({id:L,repeats:E})=>(await e.put(`/api/tareas/${L}`,{data:{repeticiones_realizadas:E,updated_by:a==null?void 0:a.id}})).data,w=async({id:L,motiveId:E})=>{try{const B=await e.post("/api/pausarTarea",{taskId:L,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:L})=>{try{const E=await e.post("/api/reanudarTarea",{taskId:L});return r("Tarea reanudada correctamente"),E.data}catch(E){c("Error al reanudar la tarea: "+E)}},h=async({id:L,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/${L}`,{data:M})).data},x=async({id:L,data:E,user:B})=>{try{return(await e.put(`/api/tareas/${L}`,{data:{...E,updated_by:B==null?void 0:B.id}})).data}catch(M){console.error("Error updating the element:",M)}},y=async({id:L})=>{await k({id:L})},b=async({id:L,data:E,user:B})=>{await C({id:L,data:E,user:B})},{mutateAsync:C}=ce.useMutation({mutationFn:x,onSuccess:()=>{r("Tarea actualizada correctamente");const L={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[L[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:L=>{console.error("Failed to update the task.",L)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]})}}),{mutateAsync:k}=ce.useMutation({mutationFn:l,onSuccess:()=>{const L={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[L[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:L=>{console.error("Failed to update the task.",L)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:F}=ce.useMutation({mutationFn:m,onSuccess:()=>{const L={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o.setQueryData([L[s],n],E=>{console.log({oldData:E})}),s==="kanban-general"&&(o.invalidateQueries({queryKey:[L[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:L=>{console.error("Failed to update the task.",L)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["done_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:q}=ce.useMutation({mutationFn:g,onSuccess:()=>{const L={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[L[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:L=>{console.error("Failed to update the task.",L)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["done_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:T}=ce.useMutation({mutationFn:h,onSuccess:()=>{const L={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[L[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:L=>{console.error("Failed to reassign the task.",L)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["done_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:S}=ce.useMutation({mutationFn:u,onSuccess:()=>{const L={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[L[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:L=>{console.error("Failed to update the task.",L)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}});return{updatingTask:b,updateTask:x,startTask:async({id:L})=>{await S({id:L})},startWorking:y,completeTask:async({id:L,idAtraso:E})=>{await F({id:L,idAtraso:E})},reasignResponsible:async({id:L,idNewResponsible:E,typeOfSelect:B})=>{await T({id:L,idNewResponsible:E,typeOfSelect:B})},updateUnitys:async({repeats:L,id:E})=>{await q({repeats:L,id:E})},pauseTask:async({id:L,motiveId:E})=>{console.log({taksId:L,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(le.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}=fe();return{teams:ce.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}=fe();return{users:ce.useQuery({queryKey:["users"],queryFn:()=>ro({tasks_api:e}),staleTime:1e3*60*60*24})}},uo=()=>{const{tasks_api:e}=fe();return{users:ce.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}=fe(),r=`button-assign-users-${Math.random().toString(36).substring(2,15)}`,{setElementPosition:c,position:d,clearPosition:l}=Ma(),u=p.useRef(null),m="Project Manager",g=()=>n?null:e.length>3&&t.jsx(le.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(le.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:we.primary.regular},1:{title:"Baja",color:we.success.regular},2:{title:"Media",color:we.warning.regular},3:{title:"Alta",color:we.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(le.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(le.Tooltip,{dispatch:t.jsx(le.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,L]=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 I=P.find(G=>G.id===D);L({id:D,nombre:(I==null?void 0:I.nombre)??""})},onOptionSelect:Q=>{const D=Q.id;D==null||Number.isNaN(Number(D))||L({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&&se()},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"})},W=()=>t.jsx(ca,{copy:go(),onMove:()=>{h.current=!0,f({id:s}),E()}}),ae=()=>{if(k==="first")return M();if(k==="second")return z();if(k==="third")return ee();if(k==="fourth")return W()},se=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:`
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
3
  tw-ease tw-transition-all tw-duration-300
4
4
  ${k==="second"?"":"tw-translate-x-0"}
5
- `,children:ae()})})]})})},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(le.Icons,{icon:m?"check_outline":"circle_checked",color:m?"white":we.texts.placeholder,strokeWidth:4,size:m?"xs":"s"})});return s===2?t.jsx("div",{className:xo,children:t.jsx(le.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(le.Tooltip,{dispatch:t.jsx("label",{className:"tw-cursor-help","aria-hidden":!0,children:t.jsx(le.Icons,{icon:"info_circle",color:we.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(le.Tooltip,{dispatch:t.jsx("label",{className:"tw-cursor-help","aria-hidden":!0,children:t.jsx(le.Icons,{icon:"info_circle",color:we.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}=fe(),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:At.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}=fe(),{register:r,handleSubmit:c,reset:d}=Ae.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:At.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}=fe(),{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:At.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(le.Icons,{icon:"info_circle",color:we.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(le.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(le.Icons,{icon:"exclamation_triangle",color:we.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(le.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}=fe();return{pauseReasons:ce.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=ce.useQueryClient(),{tasks_api:a}=fe(),{user:n}=Te(),{filters:s}=Me(),[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=ce.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=ce.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)})]})},Ao=({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 te,ie,X;const[R,K]=p.useState(!1),{reasignResponsible:J,updateUnitys:H}=He(),{getOBPUrlApi:L}=fe(),[E,B]=p.useState(h??0),M=!!(f&&h===f),z=!f||f===1,ee=w===0,{user:W}=Te(),ae=Ot(),se=!!(ae!=null&&ae.selectedTaskIds.includes(e)),P=qt({status:w,nameRequiredTask:u,statusRequiredTask:g,repeatsToDo:f,repeats:h}),$=!!ae&&!!S&&S!=="Completadas"&&!v,Q=$&&P,D=$&&!P&&!!(ae!=null&&ae.isBulkSessionActive),I=Z=>{!Q||!ae||!S||ae.isBulkLoading||Z.target.closest("[data-prevent-bulk-select]")||ae.toggleTaskSelection(e,S)},G=!!(ae!=null&&ae.isMultiSelectActive&&Q),A=()=>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-w-[calc(100%-32px)] tw-flex-row tw-items-start tw-gap-[8px]",children:[w<2&&(q||M||z||ee)&&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:M})}),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:Z=>{Z.stopPropagation(),K(!0)},children:a})]}),P&&t.jsx("span",{"data-prevent-bulk-select":!0,children:t.jsx(Ka,{id:e,nameRequiredTask:u,status:w,statusRequiredTask:g,projectID:b,atrasoId:C==null?void 0:C.atrasoId,categoria:k,disabled:G})})]}),N={0:{title:"Muy fácil",color:we.primary.regular},1:{title:"Fácil",color:we.success.regular},2:{title:"Media",color:we.warning.regular},3:{title:"Difícil",color:we.danger.regular},4:{title:"Muy difícil",color:we.danger.dark}},U=Z=>{B(re=>Z==="minus"?Math.max(0,re-1):Math.min(f,re+1))},O=Z=>{var re;return((re=Z==null?void 0:Z.charAt(0))==null?void 0:re.toUpperCase())??""},_=Z=>Z==="Venta"?"accent":"danger",V=v||!!(ae!=null&&ae.isBulkLoading),Y=D?"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",{onClick:I,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 ${Y} ${se?"tw-border-blue-500 tw-bg-primary-light":"tw-border-transparent tw-bg-white"} ${V?"tw-pointer-events-none":""}`,children:[t.jsx(A,{}),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:W==null?void 0:W.role,status:w,users:s.filter(Z=>l?Z.id===l:!0).map(Z=>Lt(Z,L())),onClick:async(Z,re)=>{await J({idNewResponsible:Z,id:e,typeOfSelect:re})}}),o&&t.jsx(Qa,{idTask:e,paused:y,popupId:`task-pause-menu-${e}`,children:Z=>t.jsx("button",{ref:Z,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(le.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:O((k==null?void 0:k.tipo)??"P"),color:_((k==null?void 0:k.tipo)??"Preventa"),size:"sm",theme:"solid"}),C&&t.jsx(le.Tooltip,{dispatch:t.jsx(le.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(le.Tooltip,{dispatch:t.jsx(le.Icons,{icon:"difficulty",size:"xs",color:(te=N[d??0])==null?void 0:te.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:(ie=N[d??0])==null?void 0:ie.color},children:`Dificultad ${(X=N[d??0])==null?void 0:X.title}`})}),t.jsx(Ha,{priority:c,id:e}),!f||f&&w===0&&t.jsxs(t.Fragment,{children:[t.jsx(le.Icons,{icon:"calendar",size:"xs",strokeWidth:3,color:we.texts.subtext}),t.jsx("p",{className:"tw-font-regular tw-text-sm tw-text-texts-subtext",children:`${n.getDate()} ${kt(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:()=>U("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(le.Icons,{icon:"circle_minus",size:"xs",strokeWidth:3,color:we.texts.placeholder})}),t.jsx("p",{className:"tw-text-[10px] tw-text-texts-placeholder",children:`${E??0} / ${f??0}`}),t.jsx("button",{onClick:()=>U("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(le.Icons,{icon:"circle_plus",size:"xs",strokeWidth:3,color:we.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:()=>{H({repeats:E,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:Z=>{Z.stopPropagation(),K(!0)},className:"tw-flex tw-items-center tw-gap-2",children:[t.jsx(le.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(le.Icons,{icon:"group_files",size:"xs",strokeWidth:5,color:we.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(Ao,{...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"}]}],Io=()=>{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 Mo(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 ko(){const{tasks_api:e}=fe(),{user:a}=Te();return ce.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(Mo(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=ce.useQueryClient(),{mutate:i}=ko(),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}=Me(),{tasksProject:a}=Je(),{filters:n}=Io();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}=fe(),{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=ce.useQueryClient(),{tasks_api:a}=fe(),{user:n}=Te(),{filters:s}=Me(),[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=ce.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}=fe(),{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=ce.useQueryClient(),{user:a}=Te(),{tasks_api:n}=fe(),{filters:s}=Me(),[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=ce.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}=fe(),{filters:a}=Me(),{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}=Me(),{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(le.Icons,{icon:"calendar",size:"xs",strokeWidth:4,color:we.texts.subtext}),t.jsxs("p",{className:"tw-text-lg",children:[" ",ra(e)]})]}),t.jsx(le.Icons,{icon:"arrow_right",size:"xs",strokeWidth:4,color:we.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(le.Icons,{icon:"calendar",size:"xs",strokeWidth:4,color:we.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:we.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:we.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:we.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:we.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:we.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:we.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:we.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:we.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:we.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(le.Tooltip,{dispatch:t.jsx(le.Icons,{icon:"align_center",size:"xs",strokeWidth:4,color:we.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}
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
6
  ${(u=d[n===0?1:n])==null?void 0:u.borderHover}
7
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(le.Tooltip,{dispatch:t.jsx(le.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(le.Tooltip,{dispatch:t.jsx(le.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(le.Tooltip,{dispatch:t.jsx(le.Icons,{icon:"exclamation_triangle",size:"xs",strokeWidth:4,color:i.atraso?we.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:we.danger.dark},children:o==null?void 0:o.motivo})})}),t.jsx(le.Icons,{icon:"calendar",size:"xs",strokeWidth:3,color:we.texts.subtext}),t.jsx("p",{className:"tw-font-regular tw-text-xl tw-text-texts-subtext",children:`${s.getDate()} ${kt(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(le.Icons,{icon:"check_outline",size:"xs",color:we.primary.regular,strokeWidth:6})})}),t.jsx("input",{className:"tw-hidden",id:e.toString(),type:"checkbox",onChange:()=>n(e)})]})},as=({task:e})=>t.jsx(le.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}=fe(),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(le.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(le.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(le.Icons,{icon:"comment",size:"xs",strokeWidth:5,color:we.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(le.Icons,{icon:"angle_down_outline",color:we.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(le.Icons,{icon:"subtasks",size:"xs",strokeWidth:5,color:we.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},Ie=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}=fe();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}=Ie(),{hydrateTasks:m}=ds(),{addTaskToState:g,removeTemplateStates:w}=nt(),f=ce.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}=fe(),[R,K]=p.useState(!1),[J,H]=p.useState(!1),[L,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(A,N=ve.IDLE)=>{var U;try{const O=await S(A.id),_=await m(O),V={id:crypto.randomUUID(),data:O,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},Y=_||[V],te={...O,graph_layout:{...O==null?void 0:O.graph_layout,snapshot:{...(U=O==null?void 0:O.graph_layout)==null?void 0:U.snapshot,nodes:Y}},estatus:N,estatusFromStrapi:O.estatus};await x(te)}catch(O){console.warn("No se pudieron obtener los datos completos de la plantilla, creando versión básica:",O);const _=A,V={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:[V],edges:[],viewport:{x:0,y:0,zoom:1}},history:null,zoom:1,position:{x:0,y:0}},te={..._,graph_layout:_.graph_layout||Y,estatus:N,tarea_plantillas:_.tarea_plantillas||[]};await x(te)}},z=async({template:A,checkTemplateInIndexedDB:N=!1,statusTemplate:U=ve.IDLE})=>{const O=B;if(!O.find(V=>V.id===A.id)){if(O.length===5){c(!0);return}if(N&&await b(A.id))return;await M({...A,order:O.length+1},U)}await W(A.id),await ee(A),s("create-edit",A==null?void 0:A.id)},ee=async A=>{const N=await b(A.id);a(N)},W=async A=>{try{let N=await C();N.sort((O,_)=>(O.order||0)-(_.order||0));const U=N.findIndex(O=>O.id===A);if(U!==-1){const[O]=N.splice(U,1);N.unshift(O),N.forEach((V,Y)=>{V.order=Y+1});const _=N.map(V=>y(V.id,V));await Promise.all(_)}else return}catch{}},ae=async A=>{try{await k(A),i(A);const N=await C();N.forEach((O,_)=>{O.order=_+1});const U=N.map(O=>y(O.id,O));await Promise.all(U)}catch{}};return{screens:B,isLoading:F,error:q,add:x,data:h,addScreen:M,openTemplate:z,update:y,delete:ae,get:b,activeTemplate:e,activateTemplate:ee,reorderingTemplates:W,replaceTemplate:async()=>{try{const A=[...B],N={...A[A.length-1]};await k(N.id);const U={...r,order:N.order};await M(U);const _=(await C()).sort((Y,te)=>Y.order-te.order);if(_.some((Y,te)=>(Y.order||0)!==te+1)){const Y=_.map((te,ie)=>({...te,order:ie+1}));for(const te of Y)try{await y(te.id,te)}catch{}}}catch{}finally{c(!1)}},addTaskUpdatingTemplate:async(A,N,U="hija")=>{var Y,te,ie,X;const O=await b(N);if(!O)return null;const _={id:A.id,uuid:crypto.randomUUID(),reference_graph:A.reference_graph,texto_corto:A.title,texto_largo:A.description||"",prioridad:A.priority||null,nivel_dificultad:A.difficulty||1,duracion:A.duration||null,start:!1,type:"task",equipo:{id:Number(A.team)||null},responsable:{id:Number(A.responsible)||null},plantilla:{id:O.id,clave:O.clave,categoria:O.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:U==="dependiente"?(te=(Y=A.parent)==null?void 0:Y.data)==null?void 0:te.id:null,ids_t_dependientes:[],tarea_padre:U==="hija"?(X=(ie=A.parent)==null?void 0:ie.data)==null?void 0:X.id:null,tareas:[]},V={...O,estatus:ve.DIRTY};return await y(N,V),e&&e.id===N&&a(V),await g({task:_}),_},addTemplateUpdatingTemplate:async(A,N,U,O="hija")=>{let _=null;if(e&&e.id===N?_=e:_=await b(N),!_)return null;const V=(te,ie,X,Z)=>{for(let re=0;re<te.length;re++){const he=te[re];if(he.id===ie||he.uuid===ie)return Z==="dependiente"?(he.plantilla_dependents||(he.plantilla_dependents=[]),he.plantilla_dependents.push(X)):Z==="hija"&&(he.plantilla_dependents||(he.plantilla_dependents=[]),he.plantilla_dependents.push(X)),!0;if(he.tareas&&he.tareas.length>0){const oe=V(he.tareas,ie,X,Z);if(oe)return oe}}return!1};if(V(_.tarea_plantillas,U,A,O)){const te={..._,estatus:ve.DIRTY,updatedAt:new Date().toISOString()};return await y(N,te),e&&e.id===N&&a(te),!0}else return!1},updateGraphLayout:async(A,N)=>{var U;if(!A){console.warn("⚠️ updateGraphLayout - Template ID no válido");return}try{const O=await b(A);if(!O){console.warn("⚠️ updateGraphLayout - Template no encontrado");return}const _=(N.nodes||[]).filter(Z=>{var re;return!((re=Z.data)!=null&&re.isInternal)&&!Z.parentId}).map(Z=>{const{style:re,measured:he,data:oe,...de}=Z,{expandedDimensions:me,isExpanded:ge,needsReExpansion:pe,...ye}=oe||{},De=re?{...re,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...de,style:De,data:ye,position:Z.position}}),V=(N.edges||[]).filter(Z=>{var re;return!((re=Z.data)!=null&&re.isInternal)}).map(Z=>{var re;if((re=Z.data)!=null&&re.redirectedToInternal){const{redirectedToInternal:he,originalTarget:oe,...de}=Z.data;return{...Z,target:oe||Z.target,data:de}}return Z}),Y={...N,nodes:_,edges:V},te=(U=O.graph_layout)==null?void 0:U.snapshot;if(!(!te||JSON.stringify(te)!==JSON.stringify(Y)))return;const X={...O,graph_layout:{...O.graph_layout,snapshot:Y},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await y(A,X),e&&e.id===A&&a(X)}catch(O){console.error("❌ updateGraphLayout - Error:",O)}},saveTemplateChanges:async(A=!0)=>{try{if(e.estatus===ve.DIRTY){H(!0);const{id:N}=e,U=await b(N),O=await T(N),_=U.graph_layout.snapshot.nodes||[],V=_.filter(X=>{var Z;return!((Z=X.data)!=null&&Z.isInternal)&&!X.parentId}),Y=_.length-V.length;Y>0&&console.warn(`💾 [saveTemplateChanges] Se filtraron ${Y} nodos internos al guardar plantilla ${N}`);const te={graph_layout:{...U.graph_layout,snapshot:{...U.graph_layout.snapshot,nodes:V.map(X=>{const{style:Z,measured:re,selected:he,...oe}=X,de=Z?{...Z,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return X.type==="group"?{...oe,style:de,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}}:{...oe,style:de,data:{tareaId:X.data.id&&X.data.id>0?X.data.id:null}}}),edges:(U.graph_layout.snapshot.edges||[]).filter(X=>{var Z;return!((Z=X.data)!=null&&Z.isInternal)})}},tasks:{created:(O==null?void 0:O.created)||[],updated:(O==null?void 0:O.updated)||[],deleted:(O==null?void 0:O.deleted)||[]}},ie=await v.post("/api/tareas/save-tareas-grafico",{data:te});if(ie.data&&ie.status===200){try{const X=await S(N),Z=await m(X),re={...X,graph_layout:{...X.graph_layout,snapshot:{...X.graph_layout.snapshot,nodes:Z}},estatus:ve.IDLE};await y(N,re),A||a(re)}catch{const Z=await b(N);if(Z&&!A){const re={...Z,estatus:ve.IDLE};await y(N,re),a(re)}}await f.invalidateQueries({queryKey:["template",N]}),await f.invalidateQueries({queryKey:["template"]}),w(N),A&&(ae(N),d(!1)),o(N,"readonly")}}}catch(N){console.log(N)}finally{H(!1)}},publishTemplate:async A=>{try{K(!0);const N={estatus:Ee.PUBLISHED,publication_date:new Date},U=await v.put(`/api/plantillas/plantilla-update-estatus/${A}`,{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 A=>{try{E(!0);const N={estatus:Ee.DELETED,sjdaksd:0},U=await v.put(`/api/plantillas/plantilla-update-estatus/${A}`,{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:L}}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}=fe();return{users:ce.useQuery({queryKey:["usersOBP"],queryFn:()=>mr({tasks_api:e}),staleTime:1e3*60*60*24})}},Ze=()=>{const{users:e}=wr(),a=ce.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}=fe();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:ue.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:ue.faArrowUp,onClick:a,children:"Publicar"}),t.jsx(j.ListItem,{icon:ue.faEdit,onClick:()=>{n(e)},children:"Editar parámetros"}),t.jsx(j.ListItem,{icon:ue.faEdit,onClick:()=>{s&&s(e)},children:"Editar tareas"}),o&&t.jsx(j.ListItem,{icon:ue.faClone,onClick:c=>{c.stopPropagation(),i(e)},children:"Duplicar"}),o&&t.jsx(j.ListItem,{color:"red",icon:ue.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}=Ie(),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),L=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((W,ae)=>t.jsxs("span",{children:[W,ae<ee.length-1&&t.jsx("span",{className:"tw-text-neutral-200",children:"-"})]},ae))})};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 W=x[z.params_tipo.order-1];return t.jsx(j.Badge,{color:W.color,theme:W.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:L,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:ue.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:ue.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}=fe(),a=ce.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:ue.faFlag,iconColor:"red"},{label:"Alta",value:3,icon:ue.faFlag,iconColor:"yellow"},{label:"Media",value:2,icon:ue.faFlag,iconColor:"blue"},{label:"Baja",value:1,icon:ue.faFlag,iconColor:"neutral"}],Nr=[{label:"Muy alta",value:4,icon:ue.faRhombus,iconColor:"red"},{label:"Alta",value:3,icon:ue.faRhombus,iconColor:"yellow"},{label:"Media",value:2,icon:ue.faRhombus,iconColor:"blue"},{label:"Baja",value:1,icon:ue.faRhombus,iconColor:"neutral"}],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}=fe(),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}=Ae.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:ue.faPencil,isOpen:e,onClose:q,onSuccess:()=>{f(T=>{F(T)},T=>{const S=Object.entries(T).map(([v,R])=>`${v}: ${R.message}`).join(`
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(`
11
11
  `);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(Ae.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(Ae.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(Ae.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(Ae.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(Ae.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(Ae.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(Ae.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),Ar=e=>{const{clientX:a,clientY:n}="changedTouches"in e?e.changedTouches[0]:e;return{x:a,y:n}},Ir=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=ce.useQueryClient(),C=Oe(H=>H.setActiveTemplate),{removeTaskFromState:k,updateNodeWithNewEdge:F,updateTaskInState:q}=nt(),T=p.useCallback(async H=>{const L=e.find(B=>B.id===H);if(!(L!=null&&L.data))return null;if(L.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=L.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,L=a)=>{var E,B,M,z,ee,W,ae;if(!y){j.toast.warning("No hay template activo para actualizar layout");return}try{const se=await w(y.id);if(!se){j.toast.warning("Template no encontrado en IndexedDB");return}const P=(E=se.graph_layout)==null?void 0:E.snapshot;if(!(!P||JSON.stringify(P.nodes)!==JSON.stringify(H)||JSON.stringify(P.edges)!==JSON.stringify(L))){console.log("🔄 No hay cambios en el layout, omitiendo actualización");return}const Q=H.filter(G=>{var A;return!((A=G.data)!=null&&A.isInternal)&&!G.parentId}).map(G=>{const{style:A,measured:N,data:U,selected:O,..._}=G,{expandedDimensions:V,isExpanded:Y,needsReExpansion:te,...ie}=U||{},X=A?{...A,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{..._,style:X,data:ie}}),D=L.filter(G=>{var A;return!((A=G.data)!=null&&A.isInternal)}),I={...se,graph_layout:{id:((B=se.graph_layout)==null?void 0:B.id)||0,snapshot:{nodes:Q,edges:D,viewport:((z=(M=se.graph_layout)==null?void 0:M.snapshot)==null?void 0:z.viewport)||{x:0,y:0,zoom:1}},history:((ee=se.graph_layout)==null?void 0:ee.history)||[],zoom:((W=se.graph_layout)==null?void 0:W.zoom)||1,position:((ae=se.graph_layout)==null?void 0:ae.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await f(y.id,I),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(I)}catch(se){console.error("❌ Error al actualizar template layout:",se)}},[y,w,f,e,a,C]),v=p.useCallback(async(H=[],L=[],E,B)=>{var z,ee,W,ae,se,P,$,Q,D,I,G,A;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=(W=(ee=(z=N.graph_layout)==null?void 0:z.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:te,data:ie,...X}=V,{expandedDimensions:Z,...re}=ie||{},he=Y?{...Y,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...X,style:he,data:re}}),O=((P=(se=(ae=N.graph_layout)==null?void 0:ae.snapshot)==null?void 0:se.edges)==null?void 0:P.filter(V=>{var Y;return!H.includes(V.source)&&!H.includes(V.target)&&!((Y=V.data)!=null&&Y.isInternal)}))||[],_={...N,graph_layout:{id:(($=N.graph_layout)==null?void 0:$.id)||0,snapshot:{nodes:U,edges:O,viewport:((D=(Q=N.graph_layout)==null?void 0:Q.snapshot)==null?void 0:D.viewport)||{x:0,y:0,zoom:1}},history:((I=N.graph_layout)==null?void 0:I.history)||[],zoom:((G=N.graph_layout)==null?void 0:G.zoom)||1,position:((A=N.graph_layout)==null?void 0:A.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,L,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 W=E;if(!(W!=null&&W.templateId))return;if(!await x(W.templateId,y.id,ee,L)){j.toast.error("No se pudo agregar la plantilla. Intenta nuevamente."),r();return}try{const G=await w(y.id);if(G){const A=(U,O)=>{for(const _ of U){if(_.id===O||_.uuid===O)return _;if(_.tareas&&_.tareas.length>0){const V=A(_.tareas,O);if(V)return V}}return null},N=A(G.tarea_plantillas,ee);if(N&&N.id){const U=(N.plantilla_dependents||[]).map(_=>typeof _=="object"&&_.id?{id:_.id}:typeof _=="number"?{id:_}:_),O={...N,plantilla_dependents:U,plantilla:{id:y.id,clave:G.clave,categoria:G.categoria||{id:0,nombre:"Sin categoría"}}};await q({task:O}),console.log("✅ Tarea padre agregada a templates_states.updated con plantilla_dependents:",N.id,O.plantilla_dependents)}}}catch(G){console.error("❌ Error al actualizar tarea padre en templates_states:",G)}const se=l({x:o.position.x,y:o.position.y}),P=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},$={id:B,type:"group",position:se,selected:!1,deletable:!0,data:{id:W.templateId,templateId:W.templateId,type:"template",nombre_plantilla:P.nombre_plantilla||`Flujo de trabajo ${W.templateId}`,clave:P.clave||`TPL-${W.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(G=>[...G,$]);const Q=z||_e.DEFAULT_SOURCE_HANDLE,D=Xe(M),I=_t(M,B,Q,L,"plantilla",D,ee);s(G=>[...G,I]);try{const G=[...e,$],A=[...a,I];await S(G,A)}catch(G){console.error("❌ Error al actualizar layout después de agregar plantilla:",G)}}else if(H==="tarea"){const W=E;if(!W)return;const ae=l({x:o.position.x,y:o.position.y}),se=-new Date().getTime(),P={id:se,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}}},$=await h(P,y.id,L),Q=Er(B,ae,$);n(A=>[...A,Q]);const D=z||_e.DEFAULT_SOURCE_HANDLE,I=Xe(M),G=_t(M,B,D,L,H,I,ee,se);s(A=>[...A,G]);try{const A=[...e,Q],N=[...a,G];await S(A,N)}catch(A){console.error("❌ Error al actualizar layout después de agregar tarea:",A)}setTimeout(()=>{try{const A=u(B);if(A){const N=window.innerWidth,U=window.innerHeight,O=N/2,_=U/2;m({x:O-A.position.x-130,y:_-A.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,L)=>{var z,ee;if(console.log("🟢 createConnectionFromPopup - INICIO",{nodeType:H,connectionType:L}),!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})[L]){console.warn("⚠️ createConnectionFromPopup - Tipo de conexión no válido:",L),j.toast.warning("Tipo de conexión no válido"),d(!1),c();return}const ae=e.find(O=>O.id===E),se=e.find(O=>O.id===M);console.log("🟢 createConnectionFromPopup - Nodos encontrados:",{sourceNode:ae==null?void 0:ae.id,targetNode:se==null?void 0:se.id,sourceData:ae==null?void 0:ae.data,targetData:se==null?void 0:se.data});const P=se==null?void 0:se.data,$=((z=ae==null?void 0:ae.data)==null?void 0:z.id)||E,Q=((ee=se==null?void 0:se.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,L,H,Xe(E),$,Q);console.log("🟢 createConnectionFromPopup - Nuevo edge creado:",D),s(O=>[...O,D]);const I=[...a,D],G=P.id||-Date.now(),A=P.reference_graph||M,N={id:G,uuid:P.uuid||crypto.randomUUID(),reference_graph:A,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:L==="hija"?{id:D.data.parentId}:null,id_t_requerida:L==="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(O=>O.id===M?{...O,data:N}:O);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,I),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(W){console.error("❌ createConnectionFromPopup - Error al crear conexión:",W),console.error("❌ createConnectionFromPopup - Stack:",W.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:L}=o;if(!L){j.toast.warning("No se encontró nodeId en newNodePopup");return}try{const E=e.find(M=>M.id===L);if(!E){j.toast.warning(`No se encontró el nodo con ID: ${L}`);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===L?B:z));try{const M=e.map(z=>z.id===L?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=ce.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 L,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=(L=R[0])==null?void 0:L.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,L,E,B,M,z,ee;if(!l){console.warn("⚠️ MainNode.updateTemplateLayout - No hay template activo");return}try{const W=await m(l.id);if(!W){console.warn("⚠️ MainNode.updateTemplateLayout - Template no encontrado en IndexedDB");return}const ae=(R=W.graph_layout)==null?void 0:R.snapshot;if(!(!ae||JSON.stringify(ae.nodes)!==JSON.stringify(v))){console.log("🔄 MainNode.updateTemplateLayout - No hay cambios en nodos, omitiendo actualización");return}const P=v.filter(D=>{var I;return!((I=D.data)!=null&&I.isInternal)&&!D.parentId}).map(D=>{const{style:I,measured:G,data:A,selected:N,...U}=D,{expandedDimensions:O,isExpanded:_,needsReExpansion:V,...Y}=A||{},te=I?{...I,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...U,style:te,data:Y}}),$=(((J=(K=W.graph_layout)==null?void 0:K.snapshot)==null?void 0:J.edges)||[]).filter(D=>{var I;return!((I=D.data)!=null&&I.isInternal)}),Q={...W,graph_layout:{id:((H=W.graph_layout)==null?void 0:H.id)||0,snapshot:{...(L=W.graph_layout)==null?void 0:L.snapshot,nodes:P,edges:$,viewport:((B=(E=W.graph_layout)==null?void 0:E.snapshot)==null?void 0:B.viewport)||{x:0,y:0,zoom:1}},history:((M=W.graph_layout)==null?void 0:M.history)||[],zoom:((z=W.graph_layout)==null?void 0:z.zoom)||1,position:((ee=W.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(W){console.error("❌ MainNode.updateTemplateLayout - Error al actualizar template layout:",W)}},[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:ue.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:ue.faEdit,onClick:F,children:"Editar"}),t.jsx(j.ListItem,{icon:ue.faPlus,color:"red",onClick:q,children:"Eliminar"})]})}):t.jsx(j.Button,{size:"xxs",color:"secondary",pill:"pill",icon:ue.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}=fe();return ce.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:ce.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)})})]})})},Mr=({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:ue.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:ue.faArrowUpLeft,iconColor:"neutral",onClick:()=>l({type:"tarea",connectionType:"dependiente"}),children:"Dependiente"}),t.jsx(j.ListItem,{icon:ue.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:ue.faArrowUpLeft,iconColor:"neutral",onClick:()=>l({type:"plantilla",connectionType:"dependiente"}),children:"Dependiente"}),t.jsx(j.ListItem,{icon:ue.faArrowDownRight,iconColor:"neutral",onClick:()=>l({type:"plantilla",connectionType:"hija"}),children:"Hija"})]})})]})},kr=({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:ue.faArrowUpLeft,iconColor:"neutral",onClick:()=>m("tarea","dependiente"),children:"Dependiente"}),t.jsx(j.ListItem,{icon:ue.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:ue.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:ue.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=ce.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:L,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((O,_)=>{const V=n[_];return V?O.id!==V.id||JSON.stringify(O.position)!==JSON.stringify(V.position)||JSON.stringify(O.data)!==JSON.stringify(V.data):!0})||e.length!==n.filter(O=>{var _;return!((_=O.data)!=null&&_.isInternal)}).length)&&n.length>0)return;const{expandedGroups:I,groupTemplateData:G}=Ne.getState(),A=jt(e),N=new Set(A.map(O=>O.id));let U=n.filter(O=>{var _,V;return((_=O.data)==null?void 0:_.isInternal)&&typeof((V=O.data)==null?void 0:V.originalGroupId)=="string"&&I.has(O.data.originalGroupId)&&N.has(O.data.originalGroupId)});if(U.length>0){const O=A.map(_=>{var V;if(I.has(_.id)){const Y=n.find(ie=>ie.id===_.id),te=(V=Y==null?void 0:Y.data)==null?void 0:V.expandedDimensions;if(te)return{..._,style:{..._.style,width:te.width,height:te.height},data:{..._.data,isExpanded:!0,expandedDimensions:te}}}return _});s([...O,...U])}else if(I.size>0){const O=A.map(_=>I.has(_.id)&&G[_.id]?{..._,data:{..._.data,isExpanded:!0,needsReExpansion:!0}}:_);s(O)}else s(A)}else s([])},[e,s]),p.useEffect(()=>{if(!d&&a&&a.length>0){const{expandedGroups:D}=Ne.getState(),I=jt(e),G=new Set(I.map(U=>U.id)),A=i.filter(U=>{var O,_;return((O=U.data)==null?void 0:O.isInternal)&&typeof((_=U.data)==null?void 0:_.originalGroupId)=="string"&&D.has(U.data.originalGroupId)&&G.has(U.data.originalGroupId)}),N=i.filter(U=>{var O,_;return((O=U.data)==null?void 0:O.redirectedToInternal)&&typeof((_=U.data)==null?void 0:_.originalTarget)=="string"&&D.has(U.data.originalTarget)&&G.has(U.data.originalTarget)});if(A.length>0||N.length>0){const U=a.filter(O=>!N.some(_=>{var V;return((V=_.data)==null?void 0:V.originalTarget)===O.target}));u([...U,...A,...N])}else u(a)}},[a,u,d]);const z=p.useCallback((D,I,G=!1)=>{const N=i.filter(_=>_.target===I).length>0;if(i.some(_=>_.source===D&&_.target===I||_.source===I&&_.target===D)&&!G)return j.toast.warning("La tarea destino ya tiene una conexión"),!1;const O=!N;return typeof window<"u"&&(window.validConnectionTypes={dependiente:O,hija:O}),O?!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 I=n.find(A=>A.id===D.source),G=n.find(A=>A.id===D.target);if(I&&G){if(!z(D.source,D.target))return;R(D.source,D.target,D.sourceHandle,D.targetHandle);return}return u(A=>ne.addEdge(D,A))},[n,R,u,z]),W=p.useCallback((D,I)=>{var G;if(!T&&!I.isValid&&I.fromNode){const A=n.find(te=>te.id===I.fromNode.id);if((A==null?void 0:A.type)==="group"){j.toast.warning("En una plantilla, no se puede crear una conexión");return}const N=Ar(D),U=document.elementFromPoint(N.x,N.y);if(U!=null&&U.closest(".react-flow__node"))return;const O=crypto.randomUUID(),_=((G=I.fromHandle)==null?void 0:G.id)||_e.DEFAULT_SOURCE_HANDLE,Y=Xe(I.fromNode.id)?_e.DEFAULT_SOURCE_HANDLE:_;S(O,N,I.fromNode.id,Y)}},[T,S,n]),ae=p.useCallback(async D=>{var N,U,O;const I=fs(D),G=D.length>0?(U=(N=D[0])==null?void 0:N.data)==null?void 0:U.id:0;u(_=>_.filter(V=>!I.includes(V.source)&&!I.includes(V.target)));let A;for(const _ of D)try{const V=_.data;if((O=V==null?void 0:V.plantilla)!=null&&O.id){A=V.plantilla.id;break}}catch{}try{u(_=>((async()=>{await M(I,_,A,G)})().catch(V=>{console.error("❌ Error en updateAfterDeleted:",V)}),_))}catch(_){console.error("❌ Error en onDeleteNode:",_)}},[u,M]),se=p.useCallback(async D=>{var G,A,N,U,O,_,V,Y,te,ie,X,Z,re,he;if(!D||D.length===0)return;let I;if(y!=null&&y.id)I=y.id;else for(const oe of D){const de=n.find(ge=>ge.id===oe.source),me=n.find(ge=>ge.id===oe.target);if(de!=null&&de.data&&typeof de.data=="object"&&"plantilla"in de.data){const ge=de.data.plantilla;if(ge!=null&&ge.id){I=ge.id;break}}if(me!=null&&me.data&&typeof me.data=="object"&&"plantilla"in me.data){const ge=me.data.plantilla;if(ge!=null&&ge.id){I=ge.id;break}}}if(!I){console.warn("⚠️ onEdgesDelete - No se pudo obtener templateId");return}try{const oe=await h(I);if(!oe){console.warn("⚠️ onEdgesDelete - Template no encontrado en IndexedDB");return}const de=D.map(je=>je.id),me=((N=(A=(G=oe.graph_layout)==null?void 0:G.snapshot)==null?void 0:A.edges)==null?void 0:N.filter(je=>{var Fe;return!de.includes(je.id)&&!((Fe=je.data)!=null&&Fe.isInternal)}))||[],pe=(((_=(O=(U=oe.graph_layout)==null?void 0:U.snapshot)==null?void 0:O.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||{},Ms=Fe?{...Fe,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0,ks=je.data.id===D[0].data.childId?{...Vt,tarea_padre:null,id_t_requerida:null}:Vt;return{...it,style:Ms,data:ks}}),ye=((Y=(V=oe.graph_layout)==null?void 0:V.snapshot)==null?void 0:Y.edges)||[];if(!(JSON.stringify(ye)!==JSON.stringify(me)))return;const Se={...oe,graph_layout:{id:((te=oe.graph_layout)==null?void 0:te.id)||0,snapshot:{nodes:pe,edges:me,viewport:((X=(ie=oe.graph_layout)==null?void 0:ie.snapshot)==null?void 0:X.viewport)||{x:0,y:0,zoom:1}},history:((Z=oe.graph_layout)==null?void 0:Z.history)||[],zoom:((re=oe.graph_layout)==null?void 0:re.zoom)||1,position:((he=oe.graph_layout)==null?void 0:he.position)||{x:0,y:0}},estatus:ve.DIRTY,updatedAt:new Date().toISOString()};await k({templateId:I,id:D[0].data.childId}),await x(I,Se),console.log("🗑️ [useFlow] Invalidando caché de la plantilla:",I),await C.invalidateQueries({queryKey:["template",I]}),await C.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlow] Caché invalidado exitosamente"),I===(y==null?void 0:y.id)&&b(Se)}catch(oe){console.error("❌ onEdgesDelete - Error al actualizar template layout:",oe)}},[n,y,h,x,b,k]),P=p.useCallback(async D=>!D.nodes.some(G=>G.type==="start"||G.id===_e.START_NODE_ID),[]),$=p.useCallback((D,I,G)=>{var O,_,V;const A=n.find(Y=>Y.id===I.id);if(!A)return;if(A.type==="group"&&((O=A.data)!=null&&O.isExpanded)){u(Y=>Y.map(te=>{if(te.hidden&&te.target===I.id){const{hidden:ie,...X}=te;return X}return te}));return}let N;if(A.type==="group"?N=y==null?void 0:y.id:(V=(_=I==null?void 0:I.data)==null?void 0:_.plantilla)!=null&&V.id&&(N=I.data.plantilla.id),!N)return;const U=i.map(Y=>{var X,Z,re,he,oe;if(vt(Y))return Y;const te=n.find(de=>de.id===Y.source),ie=n.find(de=>de.id===Y.target);if(te&&ie){const de=te.type==="group"&&((X=te.data)==null?void 0:X.isExpanded),me=ie.type==="group"&&((Z=ie.data)==null?void 0:Z.isExpanded),ge=(re=te.data)==null?void 0:re.isInternal,pe=(he=ie.data)==null?void 0:he.isInternal,ye=(oe=Y.data)==null?void 0:oe.redirectedToInternal;if(de||me||ge||pe||ye)return Y;if(te.id===I.id||ie.id===I.id||w(te,ie,_e.MAGNETIC_CONNECTION_DISTANCE)){const Se=g(te,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 I=Ir(D);if(I.length>0){const G=I.filter(A=>{var U;const N=n.find(O=>O.id===A);return(N==null?void 0:N.type)==="group"&&((U=N==null?void 0:N.data)==null?void 0:U.isExpanded)});if(G.length>0){u(A=>A.map(N=>{var _;const U=G.includes(N.target),O=!((_=N.data)!=null&&_.redirectedToInternal);return U&&O?{...N,hidden:!0}:N}));return}l(!0),setTimeout(()=>{const A=i.map(U=>{var V,Y,te,ie;if(vt(U))return{...U};const O=n.find(X=>X.id===U.source),_=n.find(X=>X.id===U.target);if(O&&_){const X=O.type==="group"&&((V=O.data)==null?void 0:V.isExpanded),Z=_.type==="group"&&((Y=_.data)==null?void 0:Y.isExpanded),re=(te=O.data)==null?void 0:te.isInternal,he=(ie=_.data)==null?void 0:ie.isInternal;if(X||Z||re||he)return{...U};if(w(O,_,_e.MAGNETIC_CONNECTION_DISTANCE)){const oe=g(O,_);if(oe!=null&&oe.handle1&&(oe!=null&&oe.handle2)&&(U.sourceHandle!==oe.handle1||U.targetHandle!==oe.handle2))return{...U,sourceHandle:oe.handle1,targetHandle:oe.handle2}}}return{...U}});if(i.some((U,O)=>{const _=A[O];return U.sourceHandle!==_.sourceHandle||U.targetHandle!==_.targetHandle})){const U=A.map(O=>({...O,id:O.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:W,onDeleteNode:ae,onEdgesDelete:se,onBeforeDelete:P,handleNodesChange:Q,onDragEnd:$,getParentNodeInfo:J,isProtectedConnection:vt,isStartNode:Xe,createNodeFromPopup:L,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:ue.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("tarea","dependiente"),children:["Dependiente ",!o.tarea.dependiente&&"(No disponible)"]}),t.jsxs(j.ListItem,{icon:ue.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:ue.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:ue.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=ce.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 V,Y;return((V=_.data)==null?void 0:V.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,Z;const V=(X=_.data)==null?void 0:X.isInternal,Y=!!_.parentId,te=(Z=_.id)==null?void 0:Z.includes("-internal-"),ie=V||Y||te;return ie&&console.warn("🗑️ [expandGroup] Filtrando nodo corrupto:",{id:_.id,type:_.type,esInterno:V,tieneParentId:Y,tieneInternalEnId:te}),!ie}),J={...S,graph_layout:{...S.graph_layout,snapshot:{...S.graph_layout.snapshot,nodes:K,edges:(S.graph_layout.snapshot.edges||[]).filter(_=>{var V,Y;return!((V=_.data)!=null&&V.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 L=await w(J),E={...J,hydratedNodes:L,nodes:L||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 W=1/0,ae=1/0,se=-1/0,P=-1/0;ee.forEach(_=>{var oe,de,me,ge,pe,ye;const V=((oe=_.position)==null?void 0:oe.x)||0,Y=((de=_.position)==null?void 0:de.y)||0,te=typeof((me=_.style)==null?void 0:me.width)=="number"?_.style.width:((ge=_.measured)==null?void 0:ge.width)||268,ie=typeof((pe=_.style)==null?void 0:pe.height)=="number"?_.style.height:((ye=_.measured)==null?void 0:ye.height)||111,X=V-te/2,Z=V+te/2,re=Y,he=Y+ie;W=Math.min(W,X),ae=Math.min(ae,re),se=Math.max(se,Z),P=Math.max(P,he)});const $=80,Q=60,D=se-W,I=P-ae,G=D+$*2,A=I+$*2+Q,N=B.map((_,V)=>{var oe,de;if(_.id===b)return null;const Y=((oe=_.position)==null?void 0:oe.x)||0,te=((de=_.position)==null?void 0:de.y)||0,ie=Y-W+$,X=te-ae+$+Q,Z=_.type==="start"||_.id==="start",re=Z?{..._.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:Z,selected:!1,deletable:!1,connectable:!1,focusable:Z,zIndex:999}}).filter(Boolean),U=M.map(_=>{const V=N.some(ie=>ie&&ie.id===`${b}-internal-${_.source}`),Y=N.some(ie=>ie&&ie.id===`${b}-internal-${_.target}`);return!V||!Y?null:{..._,id:`${b}-internal-${_.id}`,source:`${b}-internal-${_.source}`,target:`${b}-internal-${_.target}`,style:{..._.style},data:{..._.data,isInternal:!0,originalGroupId:b}}}).filter(Boolean),O=N.find(_=>{var V;return _&&((V=_.data)==null?void 0:V.originalNodeId)==="start"});O&&s(_=>_.map(V=>V.target===b?{...V,target:O.id,targetHandle:"top-target",data:{...V.data,redirectedToInternal:!0,originalTarget:b,originalTargetHandle:V.targetHandle}}:V)),d(b),n(_=>[..._.map(Y=>{if(Y.id===b){const{needsReExpansion:te,...ie}=Y.data||{};return{...Y,style:{...Y.style,width:G,height:A},data:{...ie,isExpanded:!0,expandedDimensions:{width:G,height:A}},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:L,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,L=F.reduce((E,B)=>E+B.position.y,0)/F.length;q={x:H+50,y:L+100}}const T=o[0],S=q.x-T.position.x,v=q.y-T.position.y,R=o.map((H,L)=>{const E=w(),B=-(Date.now()+L),M=H.data.plantilla&&typeof H.data.plantilla=="object"?{...H.data.plantilla,id:c.id}:{id:c.id},{id:z,...ee}=H.data,W={...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:W,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 L=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,...L],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,L=R.reduce((E,B)=>E+B.position.y,0)/R.length;s(H,L,{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:Mr,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 oe=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()})},de=pe=>{console.log("🔍 [DEBUG] KeyUp:",{key:pe.key,code:pe.code,shiftKey:pe.shiftKey,timestamp:new Date().toISOString()})},me=pe=>{var ye,De;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:(De=pe.target)==null?void 0:De.className,defaultPrevented:pe.defaultPrevented,bubbles:pe.bubbles,timestamp:new Date().toISOString()})},ge=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",oe,!0),document.addEventListener("keyup",de,!0),document.addEventListener("click",me,!0),document.addEventListener("mousedown",ge,!0),console.log("🔍 [DEBUG] Event listeners activados. Presiona Shift + Click en un nodo para ver los eventos."),()=>{document.removeEventListener("keydown",oe,!0),document.removeEventListener("keyup",de,!0),document.removeEventListener("click",me,!0),document.removeEventListener("mousedown",ge,!0),console.log("🔍 [DEBUG] Event listeners desactivados.")}},[n]);const L=o.filter(oe=>!(!oe.selected||oe.type==="start"||oe.id==="start"||oe.type==="group")).length,E=L>0,B=p.useRef(T),M=p.useRef(S);p.useEffect(()=>{B.current=T,M.current=S},[T,S]),p.useEffect(()=>{const oe=async(me,ge)=>{B.current&&await B.current(me,ge)},de=me=>{M.current&&M.current(me)};Ne.setState({expandGroup:oe,collapseGroup:de})},[]);const{zoomPercentage:z,handleZoomIn:ee,handleZoomOut:W,handleZoomTo100:ae,handleDoubleClick:se}=Lr({reactFlowWrapper:s,nodes:o}),{getViewMode:P}=Ne(),{activeTemplate:$}=Oe(),D=($!=null&&$.id?P($.id):"readonly")==="readonly";p.useEffect(()=>{if(D)return;const oe=de=>{const me=de.target;me.tagName==="INPUT"||me.tagName==="TEXTAREA"||me.isContentEditable||((de.ctrlKey||de.metaKey)&&de.key==="c"&&(de.preventDefault(),v()),(de.ctrlKey||de.metaKey)&&de.key==="v"&&(de.preventDefault(),R()))};return document.addEventListener("keydown",oe),()=>{document.removeEventListener("keydown",oe)}},[v,R,D]);const I=p.useCallback((oe,de)=>{const me=oe.target;me.tagName==="BUTTON"||me.closest("button")||me.closest('[role="button"]')||me.classList.contains("nopan")||me.classList.contains("nodrag")},[]),G=p.useCallback(oe=>{const de=oe.filter(me=>{var ge,pe;if(me.type==="position"&&me.dragging===!1){const ye=o.find(De=>De.id===me.id);if(ye&&me.position){const De=Math.abs((me.position.x||0)-(((ge=ye.position)==null?void 0:ge.x)||0)),Se=Math.abs((me.position.y||0)-(((pe=ye.position)==null?void 0:pe.y)||0));if(De<3&&Se<3)return!1}}return!0});de.length>0&&g(de)},[g,o]),A=D?void 0:r,N=D?void 0:G,U=D?void 0:c,O=D?void 0:d,_=D?void 0:l,V=D?void 0:k,Y=D?void 0:u,te=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},he=()=>{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:A,onNodesChange:N,onConnect:U,onConnectEnd:O,onBeforeDelete:_,onNodeDragStop:V,onNodesDelete:Y,onEdgesDelete:te,onNodeClick:I,...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&&L>0&&t.jsxs("p",{className:"tw-text-blue-dark-500 ui-text-xs tw-font-medium",children:[L," ",L===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:ue.faCopy,onClick:v,disabled:!E,size:"xxs",color:E?"primary":"secondary",title:E?`Copiar ${L} ${L===1?"tarea":"tareas"} (Ctrl+C)`:"Selecciona tareas para copiar (mantén Shift y haz clic)",children:["Copiar ",L>0&&`(${L})`]}),t.jsxs(j.Button,{leftSlot:ue.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:ue.faMinus,onClick:W,color:"secondary"}),t.jsxs(j.Button,{onClick:ae,onDoubleClick:se,color:"secondary",children:[z,"%"]}),t.jsx(j.Button,{icon:ue.faPlus,onClick:ee})]})]})})]}),w&&t.jsx(kr,{isOpen:w.isOpen,position:w.position,onClose:x,createNodeFromPopup:h,parentNodeInfo:f()}),y&&t.jsx(zr,{isOpen:y.isOpen,onClose:C,createConnectionFromPopup:b,availableConnections:he()})]})},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}=Ie(),{tasks_api:w}=fe(),f=st(P=>P.step),{data:h,error:x,isSuccess:y,isError:b}=ce.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:()=>L()},"Brand Riders":{execute:()=>L()}},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(G=>G.step===f).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${f}.formato_salida`,D=["formato_salida","medio_especifico"],I=`step${f}.medio_especifico`;c({medio_especifico:""}),c({formato_salida:"Impreso"}),e(Q,P),e(I,""),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`,I={};I.formato_salida="",I.medio_especifico="",c(I),e(Q,""),e(D,""),l({fields:P,value:!1}),l({fields:$,value:!0})},L=()=>{const P=a.filter(I=>I.step===f).find(I=>I.key==="formato_salida").params_plantillas.find(I=>I.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(I=>{const G={};G[I]="",c(G),i({field:I,value:""}),e&&[...new Set(a.map(N=>N.step))].forEach(N=>{const U=`step${N}.${I}`;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,I,G,A;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=(I=a.find(N=>N.key==="medio_especifico"))==null?void 0:I.params_plantillas.filter(N=>N.tipomedio_nombre==="OOH")):P==="Indoors"?Q=(G=a.find(N=>N.key==="medio_especifico"))==null?void 0:G.params_plantillas.filter(N=>N.tipomedio_nombre==="InDoor"):Q=(A=a.find(N=>N.key==="medio_especifico"))==null?void 0:A.params_plantillas,o(N=>({...N,medio_especifico:Q}))},W=(P,$)=>{const Q=P.key;if(ya.includes(Q)&&Q==="tipo_medio"){const D=$.label,I=r.fase_plantilla,G=r.modo_configuracion;if(I==="Preventa"){ee(D,I);return}else if(G==="Especifico"){ee(D,I);return}}},ae=(P,$,Q)=>{const D=P.params_plantillas.find(I=>P.key==="categoria"?I.reference_id===$.value:I.id===$.value);if(D){const I=P.key,G=$.label;if(C[I](G,Q),ba.includes(I))if(E(I,G),I==="fase_plantilla"){const A=G,N=B(I,A);l({fields:["categoria","modo_configuracion","tipo_plantilla"],value:!0}),N.length>0&&l({fields:N,value:!1}),A==="Preventa"&&l({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(I==="modo_configuracion"){const A=G,N=r.fase_plantilla,U=B(I,A,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(I==="tipo_medio"){const A=G,N=r.modo_configuracion;r.fase_plantilla==="Venta"?N==="Especifico"?q[A].execute():T[A].execute():S[A].execute()}else if(I==="formato_salida")F[G].execute();else{const A=B(I,G);A.length>0&&l({fields:A,value:!1})}if(xa.includes(I)){let A="",N="";if(I==="formato_salida"){const U=r.modo_configuracion,O=G;N="tipo_medio",A=U==="Default"&&O==="Digital"?A="DDG":A="DRP"}else N=I,A=D.abbreviation;k[N](N,A)}ya.includes(I)&&W(P,$)}},se=()=>{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 G=r.tipo_medio;["Vallas Móviles","Camiones","Brand Riders"].includes(G)?D=m.tipo_medio||"XXX":D=m.medio_especifico||"XXX"}const I=`${Q}-${D}`;u(I)}if(P==="Venta"){const $=m.fase_plantilla||"XX",Q=m.tipo_plantilla||"XXX",D=m.categoria||"XX",I=m.medio_especifico||m.tipo_medio||m.modo_configuracion||"XXX",G=m.responsable_impresion||"XX",A=m.pertenencia_medio||"X",N=m.ubicacion_medio||"X",U=`${$}-${Q}-${D}-${I}-${G}-${A}-${N}`;u(U)}}};return p.useEffect(()=>{se()},[m]),{templateFields:a,getFieldsByStep:M,dropdownFunctionsUpdateClave:k,fieldsForUpdateClave:xa,resetTemplateFormData:d,fieldsWithDisableTrigger:ba,getFieldsToDisable:B,handleOptionSelected:ae,getFilteredOptions:z,dropdownFunctionsUpdateFormData:C}}const Wt=()=>{const{control:e,setValue:a}=Ae.useFormContext(),n=st(l=>l.step),{getFieldsByStep:s,handleOptionSelected:o,getFilteredOptions:i}=Kt(a),{disabledFields:r}=Ie(),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(Ae.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}=Ie(),{tasks_api:u}=fe(),{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[L,E]of Object.entries(H)){const B={id:null,params_tipo:{id:null}};if(E!=""){const M=s[L];if(L==="categoria"){const z=w.find(W=>W.key==="categoria"),ee=(q=z==null?void 0:z.params_plantillas)==null?void 0:q.find(W=>W.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,L,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 W=1;B.tarea_plantillas.forEach(Q=>{let D=null;Q.start?D=S:D=-(Date.now()+W++),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 ae=B.tarea_plantillas.filter(Q=>!Q.start).map(Q=>{var I,G,A,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:((I=Q.equipo)==null?void 0:I.id)||null,responsable:((G=Q.responsable)==null?void 0:G.id)||null,plantilla:{id:T,clave:B.clave,categoria:B.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:z.get((A=Q.id_t_requerida)==null?void 0:A.id)||null,ids_t_dependientes:[],tarea_padre:z.get((N=Q.tarea_padre)==null?void 0:N.id)||null,tareas:[]}});let se=null;if(B.graph_layout){const Q=M.tarea_plantillas.find(D=>D.start===!0);se={...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:ae.find(I=>I.reference_graph===D.target).id,parentId:Q.id}};{const I=ae.find(G=>G.reference_graph===D.target);return{...D,data:{...D.data,childId:I==null?void 0:I.id,parentId:(I==null?void 0:I.id_t_requerida)||(I==null?void 0:I.tarea_padre)}}}}),nodes:((H=(J=B.graph_layout.snapshot)==null?void 0:J.nodes)==null?void 0:H.map(D=>{let I={};return D.type==="start"?I={...D,data:{...D.data,tareaId:Q.id}}:I={...D,data:{tareaId:null}},I}))||[]}}}if(!se)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:se,tasks:{created:ae,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(A=>D.set(A.reference_graph,A.id));let I=Q.graph_layout;return(!((L=I==null?void 0:I.snapshot)!=null&&L.nodes)||I.snapshot.nodes.length===0)&&(console.log("Graph layout vacío, reconstruyendo desde el original..."),I=se),(E=I==null?void 0:I.snapshot)!=null&&E.nodes&&(I.snapshot.nodes=I.snapshot.nodes.map(A=>{var _;const N={...A,position:A.position||{x:0,y:0}},U=N.id,O=D.get(U);if(O)return{...N,data:{...N.data,id:O,tareaId:O}};if((_=N.data)!=null&&_.tareaId){const V=Q.tarea_plantillas.find(Y=>Y.reference_graph===U);if(V)return{...N,data:{...N.data,id:V.id,tareaId:V.id}}}return N})),await u.put(`/api/plantillas/${T}`,{data:{graph_layout:I}}),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 L=await x(v.id);return L?{success:!0,message:"Flujo de trabajo creado y sincronizado completamente",data:L}:{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 L;const H=q.find(E=>E.params_tipo.key===J.key);if(H){let E=null;if(J.key==="categoria"){const B=(L=J.params_plantillas)==null?void 0:L.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),L=(T=H==null?void 0:H.params_plantillas)==null?void 0:T.find(E=>E.id===J);g[R]&&g[R](K,v),L&&c({field:R,value:L.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}=Ae.useFormContext(),{templateFormData:n,isDuplicateTemplate:s,currentTemplateForEdit:o}=Ie(),[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}=Ie();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(I=>I.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}=Ie(),{openTemplate:C}=qe(),[k,F]=p.useState(!1),[q,T]=p.useState(""),[S,v]=p.useState(!1),R=p.useRef(null),K=I=>{R.current=I},J=p.useMemo(()=>ei(c),[c]),H=n===1,L=n===3,E=H?"Cancelar":"Atrás",B=Ae.useForm({mode:"onChange",defaultValues:J}),{trigger:M,reset:z,clearErrors:ee,getValues:W}=B,{savePlantilla:ae}=si(W,z),se=p.useRef(!1);p.useEffect(()=>{e&&(r(),se.current=!1)},[e,r]),p.useEffect(()=>{e&&!g&&!h&&!se.current&&(z(J),d(),se.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 G=await ae();if(G.success){const A=G.data;if(D(),Q(),v(!1),!g)try{await C({template:A,statusTemplate:ve.NEW})}catch(N){console.warn("La plantilla se creó exitosamente pero hubo un problema al abrirla:",N)}f()}else{const{error:A}=G;T(A),v(!0)}}catch(G){console.error("Error inesperado al guardar la plantilla:",G);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(),se.current=!1,a(),console.log("cerrar modal")};return k?t.jsx(ot,{isLoading:k}):t.jsxs(Ae.FormProvider,{...B,children:[t.jsx(oi,{onReset:K}),t.jsx(j.Modal,{isOpen:e,closeAtCancel:!1,onSuccess:P,cancelButtonText:E,successButtonText:L?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:I=>i(I+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:ue.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:ue.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:ue.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:ue.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:ue.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:ue.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}=Ie(),{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:L,loadingPublishTemplate:E,loadingSaveChanges:B}=qe(),M=178,[z,ee]=p.useState([]),[W,ae]=p.useState([]),[se,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 he=0;const oe=[],de=[],me=10,ge=n.current.querySelector("button:not([data-screen])"),pe=n.current.querySelector(".tw-mx-1");let ye=0;ge&&(ye+=ge.getBoundingClientRect().width),pe&&q.length>0&&(ye+=pe.getBoundingClientRect().width,ye+=me);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?me:0,et=rt+it;he+et<=Se?(oe.push(je),he+=et):de.push(je)}),ee(oe),ae(de)},Z=()=>{const re=q.length;C(re)};return q.length>0&&(X(),Z(),window.addEventListener("resize",X)),()=>{window.removeEventListener("resize",X)}},[q,h]);const I=X=>X.estatus===ve.DIRTY||X.estatus===ve.NEW,G=async X=>{I(X)?(P(X.id),c(!0)):await S(X.id)},A=()=>u(!0),N=async()=>{await S(se),await f(se)},U=async()=>{await H(!1)},O=async()=>{await H()},_=()=>{var Z,re;const X=(re=(Z=v==null?void 0:v.graph_layout)==null?void 0:Z.snapshot)==null?void 0:re.nodes.length;Q(()=>X-1>=1)};p.useEffect(()=>{_()},[v,D]);const V=()=>!((v==null?void 0:v.estatus)==ve.IDLE&&$&&v.estatusFromStrapi!==Ee.PUBLISHED),Y=()=>{var Z;const{nodes:X}=(Z=v==null?void 0:v.graph_layout)==null?void 0:Z.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)},te=()=>(v==null?void 0:v.estatus)===ve.IDLE||Y()?!0:!$,ie=async()=>{await L(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:O}),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(Z=>Z.clave===X.clave)).map(X=>{const Z=(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:Z?"primary":"secondary",leftSlot:Ce.faFilePen,badgeColor:I(X)?"warning":void 0,onClickRightSlot:()=>G(X),rightSlot:Ce.faXmark,children:[X.clave," ",X.status]},X.id)})]}),W.length>0&&t.jsx(j.Popup,{absolute:!0,rightSlot:Ce.faAngleDown,label:`${W.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:W.map(X=>({id:X.id,label:X.clave})),className:"ui-p-8 ui-gap-4",onClick:async X=>{const Z=await T(X.id);await K(Z.id),await R(Z),x("create-edit",Z.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:V(),onClick:A,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:te(),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:ue.faBan,heading:"¿Estás seguro?",subheading:"Si eliminas este borrador, también se borrarán todas sus tareas y conexiones con otros borradores.",icon:ue.faBan,label:"Escribe 'Eliminar' para continuar",confirmationText:"Eliminar",isOpen:e,onClose:a,onConfirm:n,placeholder:""}),pi=()=>{const{viewMode:e,setRefetch:a,openModalPublishTemplate:n,setOpenModalPublishTemplate:s,currentTemplateId:o,setOpenModalDeleteTemplate:i,openModalDeleteTemplate:r}=Ie(),{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}=fe(),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}=fe(),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=ce.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}=Ie();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}=Ie();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,L;const{users:c,isLoading:d}=Ht(),{users:l,isLoading:u}=Ze(),{getImageOBP:m}=fe(),[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:(L=f==null?void 0:f.idUser)==null?void 0:L.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}}}},Ai=({page:e=1,pageSize:a=10,search:n="",filters:s={}})=>{const{tasks_api:o}=fe();return ce.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:ce.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}=fe(),a=ce.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}=ce.useMutation({mutationFn:s,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:g=>{throw console.error("Failed to delete the team.",g),g}}),{mutateAsync:d}=ce.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}=ce.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}=ce.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}},Ii=(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:`
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:`
13
13
  .react-pick-color div button {
14
14
  border-radius: 50% !important;
15
15
  width: 20px;
@@ -26,4 +26,4 @@
26
26
  .react-pick-color div label > span {
27
27
  display: none !important;
28
28
  }
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 Ii(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.",Mi={"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=Mi[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 ke=384,ki=80,Li=180,Et=20,Oi=2,Ss=4,Pt=.8;function Bi({data:e}){const{getImageOBP:a}=fe();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:ke,height:ki,children:s,x:0,y:a*Li,totalWidth:0,depth:a}}):[],Ps=e=>{if(e.children.length===0)return e.totalWidth=ke,ke;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(ke,a+s),e.totalWidth},As=(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(As(s.children,n),i){const m=(s.totalWidth-ke)/(s.children.length-1)*Pt;s.children.forEach((g,w)=>{g.x=n+w*m})}else if(o){const m=(s.totalWidth-ke)/(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+ke,l=i?ke*.1:0;s.x=(c+d-ke)/2+l}else s.x=n;const r=i?Pt:1;n=Math.max(n+ke+Et*r,s.x+ke+Et*r)}),n},Is=(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=Is(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);As(c);const{nodes:d,edges:l}=Is(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}=fe(),{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}=Ai({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}=Ie(),{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(le.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(le.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=ce.useQueryClient(),{selectPath:s,updateFilters:o,applyFilters:i,filters:r,fields:c}=Me(),[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(le.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:ue.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 ce.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(ce.QueryClientProvider,{client:o,children:[t.jsx(il,{path:e})," "]})})})})]})};exports.AppTasks=dl;
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;