@imj_media/tareas 1.6.5 → 1.6.6

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,13 +1,13 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),de=require("@tanstack/react-query"),p=require("@imj_media/ui"),u=require("react"),at=require("axios"),De=require("qs"),ne=require("@fortawesome/pro-regular-svg-icons"),en=require("echarts-for-react"),le=require("@fortawesome/pro-solid-svg-icons"),ot=require("date-fns"),Lt=require("react-dom"),Ee=require("@fortawesome/free-solid-svg-icons"),Ot=require("date-fns/locale"),Ce=require("react-hook-form"),oe=require("@xyflow/react"),We=require("zustand"),It=require("moment"),Ge=require("@fortawesome/pro-duotone-svg-icons");require("@xyflow/react/dist/style.css");const tn=require("react-pick-color"),ra=e=>{const t={...e};return delete t.project,delete t["project.id"],t},ia=e=>{const t={};return Object.entries(e).forEach(([s,o])=>{if(s.includes(".")){const[n,i]=s.split("."),r=t[n]??{};t[n]=r,r[i]=o}else t[s]=o}),t},Ra=u.createContext({}),an=({children:e})=>{const[t,s]=u.useState({}),[o,n]=u.useState({}),[i,r]=u.useState([]),[l,d]=u.useState(""),c=u.useRef(0),m=({name:y,value:j})=>{function b(v){return!isNaN(v)&&v!==null&&v!==""?parseFloat(v):null}const w=b(j);n(v=>{const N={...v},L=i==null?void 0:i.find(O=>O.label.toLowerCase().replace(/ /g,"_")===y);return L?N[L.id]=w??j:N[y]=w??j,((L==null?void 0:L.id)??y)==="owner.config"&&(N["project.id"]=null),N})},f=y=>({1:"Muy facil",2:"Facil",3:"Media",4:"Dificil",5:"Muy dificil"})[y],g=y=>{const j=ia(y);return j.difficulty!=null&&j.difficulty!==""&&(j.difficulty=f(Number(j.difficulty))),j};u.useEffect(()=>{if(i.length===0){c.current=0;return}const y=i.map(b=>b.id==="owner.config"?[b.id,"yo_y_mis_equipos"]:b.id==="dependency"?[b.id,"ambas"]:[b.id,null]),j=c.current===0;j&&(c.current=i.length),n(b=>{const w={search:b==null?void 0:b.search,taskName:b==null?void 0:b.taskName};return y.forEach(([v,N])=>{w[v]=(b==null?void 0:b[v])!==void 0?b==null?void 0:b[v]:N}),j&&s(g(w)),w})},[i]);const h=()=>{const y=i.map(j=>j.id==="owner.config"?[j.id,"yo_y_mis_equipos"]:j.id==="dependency"?[j.id,"ambas"]:[j.id,null]);n(Object.fromEntries(y)),s(ia(Object.fromEntries(y)))},x=()=>{s(g(o))};return a.jsx(Ra.Provider,{value:{fields:i,filters:t,path:l,defineFields:r,updateFilters:m,cleanFilters:h,applyFilters:x,initialFilters:o,selectPath:d},children:e})},ke=()=>u.useContext(Ra),za=u.createContext({}),sn=({children:e,user:t,url:s,mode:o})=>{const n=o==="prod"?"https://services.imjmedia.com.mx":"https://devobp.imjmedia.com.mx",i=at.create({baseURL:s,headers:{Authorization:`Bearer ${t.accessToken}`},paramsSerializer:d=>De.stringify(d,{encodeValuesOnly:!0})}),r=()=>n,l=d=>d==="undefined"||d===void 0?"":`${n}${d}`;return a.jsx(za.Provider,{value:{tasks_api:i,getOBPUrlApi:r,getImageOBP:l},children:e})},fe=()=>u.useContext(za),qa=u.createContext({}),nn=({children:e,user:t,url:s})=>{const o=at.create({baseURL:s,headers:{Authorization:`Bearer ${t.accessToken}`},paramsSerializer:n=>De.stringify(n,{encodeValuesOnly:!0})});return a.jsx(qa.Provider,{value:{user:t,tasks_api:o},children:e})},ve=()=>u.useContext(qa),je=e=>{const t=i=>Object.prototype.toString.call(i)==="[object Object]",s=i=>i&&typeof i=="object"&&("source"in i||"target"in i)&&!("attributes"in i),o=i=>i&&typeof i=="object"&&"position"in i&&typeof i.position=="object"&&("x"in i.position||"y"in i.position)&&!("attributes"in i),n=i=>i.attributes?{id:i.id,...i.attributes}:i;if(Array.isArray(e))return e.map(i=>je(i));if(t(e)){if(s(e)){const i={};for(const r in e)i[r]=je(e[r]);return i}if(o(e)){const i={};for(const r in e)i[r]=je(e[r]);return i}Array.isArray(e.data)?e=[...e.data]:t(e.data)?e=n({...e.data}):e.data===null?e=null:e=n(e);for(const i in e)e[i]=je(e[i]);return e}return e},la=[{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"}]}],ca=[{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:[]}],wt=(e,t,s)=>`${e} ${e===1?t:s}`;function on(e){const t=e??{pausas:0,atrasos:0,vencidos:0};if((t.pausas??0)===0&&(t.atrasos??0)===0&&(t.vencidos??0)===0)return[{label:"Sin alertas",color:"gray",variant:"sin-alertas"}];const s=[];return(t.atrasos??0)>0&&s.push({label:wt(t.atrasos,"atrasada","atrasadas"),color:"danger",variant:"atrasos"}),(t.pausas??0)>0&&s.push({label:wt(t.pausas,"pausada","pausadas"),color:"warning",variant:"pausas"}),(t.vencidos??0)>0&&s.push({label:wt(t.vencidos,"vencida","vencidas"),color:"info",variant:"vencidos"}),s.slice(0,2)}const rn=ne.faLightEmergencyOn,ln={name:rn},cn=({tags:e})=>{const t=Array.isArray(e)?e:[];return a.jsx("div",{className:"tm-inline-flex tm-min-w-0 tm-max-w-full tm-flex-wrap tm-content-center tm-items-center tm-gap-1 tm-justify-center",children:t.map((s,o)=>a.jsx("div",{className:"tm-min-w-0 tm-max-w-full tm-flex-shrink-0",children:a.jsx(p.Tag,{label:s.label,color:s.color,stroke:!1,truncateLabel:!0,truncateTooltip:!0,infoIcon:s.variant==="atrasos"?ln:void 0})},`${s.variant}-${s.label}-${o}`))})},dn=(e,t=500)=>{const[s,o]=u.useState(e);return u.useEffect(()=>{const n=setTimeout(()=>{o(e)},t);return()=>{clearTimeout(n)}},[e,t]),s},mn=async e=>{const t=De.stringify({fields:["id","nombre"],sort:["nombre:asc"]},{encodeValuesOnly:!0}),s=await e.get(`/api/equipos?${t}`);return s.data?{data:je(s.data.data)}:{data:[]}},$a=()=>{const{tasks_api:e}=fe();return de.useQuery({queryKey:["teams"],queryFn:()=>mn(e),staleTime:1e3*60*60*24,select:s=>s.data.map(n=>({label:n.nombre,value:n.id}))})},un="/api/listado-progreso",pn="/api/proyectos/listado-progreso";function fn(e){return De.stringify(e,{encodeValuesOnly:!0,arrayFormat:"repeat"})}function gn(e){var i,r,l;const t=Number(e.proyecto_id);if(!Number.isFinite(t)||t<=0||!Number.isInteger(t))throw new Error("listado-progreso: proyecto_id debe ser un entero positivo");const s=String(e.fase).trim().toLowerCase();if(s!=="preventa"&&s!=="venta")throw new Error('listado-progreso: fase debe ser "preventa" o "venta"');const o={proyecto_id:t,fase:s};(i=e.status)!=null&&i.length&&(o.status=e.status.map(d=>String(d).trim()).filter(Boolean)),(r=e.types_media)!=null&&r.length&&(o.types_media=e.types_media.map(d=>String(d).trim()).filter(Boolean)),(l=e.locations)!=null&&l.length&&(o.locations=e.locations.map(d=>String(d).trim()));const n=e.search!=null?String(e.search).trim():"";return n&&(o.search=n),e.blocked_only!==void 0&&(o.blocked_only=e.blocked_only===!0||e.blocked_only==="true"?"true":"false"),o}function da(e){const t=Array.isArray(e.data)?e.data:[],s=e.grafico,o=e.graficos,n=Array.isArray(s)&&s.length>0?s:Array.isArray(o)?o:[];return{data:t,grafico:n}}async function ma(e,t,s){const{data:o}=await e.get(t,{params:s,paramsSerializer:fn});return o??{}}async function hn(e,t){var o;const s=gn(t);try{const n=await ma(e,un,s);return da(n)}catch(n){if(at.isAxiosError(n)&&((o=n.response)==null?void 0:o.status)===404){const i=await ma(e,pn,s);return da(i)}throw n}}function xn({proyectoId:e,fase:t,enabled:s,filters:o}){const{tasks_api:n}=fe(),i=s&&Number.isFinite(e)&&Number.isInteger(e)&&e>0;return de.useQuery({queryKey:["listado-progreso",e,t,o],queryFn:()=>hn(n,{proyecto_id:e,fase:t,...o}),enabled:i,staleTime:3e4})}const bn=({campaignName:e,searchValue:t,onSearchChange:s})=>a.jsx("div",{className:"tm-border-b tm-border-default tm-pb-6 tm-pt-6",children:a.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-3",children:[a.jsx("h3",{className:"tm-text-[21px] tm-font-semibold tm-leading-tight tm-text-gray-800",children:e||"-"}),a.jsx("div",{className:"tm-w-full sm:tm-w-[260px] md:tm-w-[300px]",children:a.jsx(p.Input,{size:"sm",fullWidth:!0,leftSlot:ne.faSearch,placeholder:"Buscar...",value:t,onValueChange:s,clearable:!0,onClear:()=>s("")})})]})});function yn(e,t){Array.isArray(e)&&t(e.map(String))}function vt({options:e,selected:t,onChange:s,emptyPlaceholder:o,header:n,tagsOverflowPopoverTitle:i,panelSearch:r,panelSearchPlaceholder:l="Buscar…"}){return a.jsx(p.Dropdown,{field:{placeholder:o},items:{options:e},values:{value:t},events:{onValueChange:d=>yn(d,s)},multi:{multiple:!0,selectionSummary:"tags",tagsOverflow:"single-line",tagsOverflowPopoverTitle:i},popover:{fullWidth:!0},list:{listVariant:"search-multi-checkbox",searchMultiCheckbox:{header:n,search:{show:r,placeholder:l},showClearSelection:!1}},menuSearch:{searchable:!1}})}const jn=({mediosOptions:e,plazasOptions:t,estadosOptions:s,selectedMedios:o,selectedPlazas:n,selectedEstados:i,onlyDelayed:r,onChangeMedios:l,onChangePlazas:d,onChangeEstados:c,onChangeOnlyDelayed:m})=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-2 tm-mt-5 tm-mb-5",children:a.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-3",children:[a.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-4 tm-flex-1",children:[a.jsx("div",{className:"tm-w-full sm:tm-w-[250px]",children:a.jsx(vt,{options:e,selected:o,onChange:l,emptyPlaceholder:"Todos los medios",header:{id:"listado-progreso-medios-all",label:"Todos los medios"},tagsOverflowPopoverTitle:"Medios seleccionados",panelSearch:!1})}),a.jsx("div",{className:"tm-w-full sm:tm-w-[250px]",children:a.jsx(vt,{options:t,selected:n,onChange:d,emptyPlaceholder:"Todas las plazas",header:{id:"listado-progreso-plazas-all",label:"Todas las plazas"},tagsOverflowPopoverTitle:"Plazas seleccionadas",panelSearch:!0,panelSearchPlaceholder:"Buscar…"})}),a.jsx("div",{className:"tm-w-full sm:tm-w-[250px]",children:a.jsx(vt,{options:s,selected:i,onChange:c,emptyPlaceholder:"Todos los estados",header:{id:"listado-progreso-estados-all",label:"Todos los estados"},tagsOverflowPopoverTitle:"Estados seleccionados",panelSearch:!1})})]}),a.jsx("div",{className:"tm-flex tm-items-center",children:a.jsx(p.Toggle,{label:"Solo atrasadas y vencidas",checked:r,onChange:m})})]})}),Bt=[{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"}],wn=Object.fromEntries(Bt.map(e=>[e.singular,e])),ua=Bt.map(e=>e.serieApiName),vn=new Set(["atrasada","vencida"]);function Rt(e){return wn[e]}function _n(e){var t;return(t=Rt(e.trim().toLowerCase()))==null?void 0:t.serieApiName}function Ua(e){return e?e.charAt(0).toUpperCase()+e.slice(1):""}function Tn(e){const t=Rt(e);return t?t.uiLabel:Ua(e)}function Nn(e,t){const s=(e??"").trim().toLowerCase();if(!s)return[{label:t,color:"gray"}];const o=Rt(s);return o?[{label:o.uiLabel,color:o.tagColor}]:[{label:Ua(s),color:"gray"}]}function Cn(e){var t,s;if(at.isAxiosError(e)){const o=(t=e.response)==null?void 0:t.data;if(typeof o=="string"&&o.trim())return o;if(o&&typeof o=="object"&&"message"in o){const i=o.message;if(typeof i=="string")return i}const n=(s=e.response)==null?void 0:s.status;if(n)return`Error del servidor (${n}). Revisa logs del backend o el body de la respuesta.`}return e.message||"No se pudieron cargar los datos de progreso."}function Sn(e){if(!e||typeof e!="object")return null;const s=e.event;if(s&&typeof s=="object"){const o=s;if(typeof o.offsetX=="number"&&typeof o.offsetY=="number")return{x:o.offsetX,y:o.offsetY};const n=o.event;if(n&&typeof n.offsetX=="number"&&typeof n.offsetY=="number")return{x:n.offsetX,y:n.offsetY}}return null}function En(e){if(!e||typeof e!="object")return 0;const t=e.value;return typeof t=="number"?t:Array.isArray(t)&&typeof t[0]=="number"?t[0]:0}function An(e){return(Number.isFinite(e)?e:0).toFixed(0)}const Pn=({id:e,listadoProgreso:t,phaseLabel:s,listadoForUi:o})=>{const{isPending:n,isError:i,error:r,isSuccess:l,data:d}=t,[c,m]=u.useState(null),f=o??d,g=u.useMemo(()=>{const j=(f==null?void 0:f.grafico)??[],b=L=>{var O,C;return((C=(O=j.find(F=>F.name===L))==null?void 0:O.data)==null?void 0:C[0])??0},w=Bt.map(L=>({key:L.serieApiName,label:L.chartLegendLabel,color:L.chartColorHex})),v=w.map(L=>L.label),N={legendLabel:{color:"#6C6E73",fontSize:12,fontWeight:"bold",padding:[0,0,0,20]}};return w.forEach((L,O)=>{N[`legendDot${O}`]={color:L.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:[s],axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6C6E73",fontWeight:"bold",fontSize:12}},legend:{data:v,orient:"horizontal",top:"0%",left:"center",itemGap:30,icon:"none",itemWidth:0,itemHeight:0,formatter:L=>{const O=w.findIndex(C=>C.label===L);return O===-1?L:`{legendLabel|${L}}{legendDot${O}|●}`},textStyle:{rich:N}},series:w.map(L=>({name:L.label,type:"bar",stack:"total",itemStyle:{color:L.color},barWidth:"50%",data:[b(L.key)]}))}},[f==null?void 0:f.grafico,s]),h=u.useCallback(j=>{const b=j;if(b.componentType!=="series")return;const w=Sn(j);if(!w)return;const v=En(j),N=typeof b.seriesName=="string"?b.seriesName:"";m({x:w.x,y:w.y,label:`${An(v)}% ${N}`})},[]),x=u.useCallback(()=>{m(null)},[]),y=u.useMemo(()=>({mouseover:h,mousemove:h,globalout:x}),[h,x]);return a.jsx(p.Accordion,{id:e,title:"Grafico de Tareas",subtitle:"Distribución de tareas por estatus",defaultOpen:!0,children:a.jsxs("div",{className:"tm-min-h-[140px] tm-w-full tm-border tm-rounded-3xl tm-border-default tm-px-2 tm-py-2 tm-bg-surface-default",children:[n&&a.jsx("h3",{className:"tm-flex tm-h-[140px] tm-items-center tm-justify-center tm-text-xl tm-font-medium tm-text-gray-500",children:"Cargando datos de progreso…"}),i&&r&&a.jsx("div",{className:"tm-flex tm-h-[140px] tm-items-center tm-justify-center tm-px-4 tm-text-center",children:a.jsx("span",{className:"tm-text-sm tm-font-medium tm-text-red-600",children:Cn(r)})}),l&&d&&a.jsxs("div",{className:"tm-relative tm-h-[140px] tm-w-full",children:[a.jsx(en,{option:g,style:{height:"100%",width:"100%"},onEvents:y}),c&&a.jsx("div",{className:"tm-pointer-events-none tm-absolute tm-z-[10]",style:{left:c.x,top:c.y,width:1,height:1,transform:"translate(-50%, -50%)"},"aria-hidden":!0,children:a.jsx(p.InlineTooltip,{isVisible:!0,label:c.label,position:"top"})})]})]})})},zt="-";function Ze(e){const t=String(e??"").trim();return t.length>0?t:null}function Qe(e){const t=String(e??"").trim();return t.length>0?t:zt}function Dn(e){var i,r,l,d,c,m,f,g,h,x;if(!e)return;const t=(l=(r=(i=e.formats)==null?void 0:i.thumbnail)==null?void 0:r.url)==null?void 0:l.trim(),s=(m=(c=(d=e.formats)==null?void 0:d.small)==null?void 0:c.url)==null?void 0:m.trim(),o=(h=(g=(f=e.formats)==null?void 0:f.medium)==null?void 0:g.url)==null?void 0:h.trim(),n=(x=e.url)==null?void 0:x.trim();return t||s||o||n||void 0}function In(e){if(!e)return!1;if(e.startsWith("data:")||e.startsWith("blob:"))return!0;try{const t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}function qt(e,t){const s=(e.nombre??"").trim()||zt,o=Dn(e.imagen??null);let n;if(o){const r=o.startsWith("http")||o.startsWith("data:")||o.startsWith("blob:")?o:t(o);In(r)&&(n=r)}const i=s.slice(0,1);return{name:s,src:n,letter:i}}function Fn(e){return{tarea:Qe(e.tarea),categoria:Qe(e.categoria),nota:Qe(e.nota),clave:Qe(e.clave),tipo_medio:Qe(e.tipo_medio),ubicacion:Qe(e.ubicacion)}}function Mn(e){return Nn(e,zt)}const Ha=4,pa=Ha-1,kn=120,Ln=-8,fa=8;function On(e){return e.length<=Ha?{visible:e,overflow:[]}:{visible:e.slice(0,pa),overflow:e.slice(pa)}}const rt="tm-h-8 tm-w-8 tm-min-h-[32px] tm-min-w-[32px] tm-max-h-[32px] tm-max-w-[32px] tm-shrink-0 tm-border tm-border-default",ga="Sin responsable",Ka="bottom",Va="center",Bn="tm-flex tm-max-w-xs tm-items-start tm-gap-2 tm-py-1",Rn="tm-text-sm tm-font-semibold tm-leading-snug tm-text-gray-900";function ha(e,t){return e<t-1?{marginRight:`${Ln}px`}:void 0}function zn({person:e,getImageOBP:t}){const{src:s,letter:o}=qt(e,t);return s?a.jsx(p.Avatar,{type:"people",src:s,size:"xxs",className:rt}):a.jsx(p.Avatar,{type:"letter",text:o,size:"xxs",className:rt})}function qn({person:e,getImageOBP:t}){const{name:s,src:o,letter:n}=qt(e,t);return a.jsxs("div",{className:Bn,children:[o?a.jsx(p.Avatar,{type:"people",src:o,size:"xxs",className:`tm-mt-0.5 ${rt}`}):a.jsx(p.Avatar,{type:"letter",text:n,size:"xxs",className:`tm-mt-0.5 ${rt}`}),a.jsx("span",{className:Rn,children:s})]})}function $n({popupId:e,trigger:t,children:s,popupBodyClassName:o="tm-p-3"}){const n=u.useRef(null),i=u.useRef(null),r=u.useRef(null),l=u.useCallback(()=>{r.current!==null&&(window.clearTimeout(r.current),r.current=null)},[]),d=u.useCallback(()=>{var m;l(),(m=i.current)==null||m.open()},[l]),c=u.useCallback(()=>{l(),r.current=window.setTimeout(()=>{var m;(m=i.current)==null||m.close(),r.current=null},kn)},[l]);return u.useEffect(()=>()=>l(),[l]),a.jsxs("div",{className:"tm-relative tm-inline-flex tm-shrink-0",children:[a.jsx("span",{ref:n,className:"tm-inline-flex tm-cursor-default",onMouseEnter:d,onMouseLeave:c,children:t}),a.jsx(p.Popup,{ref:i,popupId:e,triggerRef:n,closeOnClick:!1,position:"bottom-center",children:a.jsx("div",{className:o,onMouseEnter:d,onMouseLeave:c,children:s})})]})}function Un(){return a.jsx(p.Tooltip,{label:ga,position:Ka,alignment:Va,preserveLayout:!0,children:a.jsx("span",{className:"tm-inline-flex tm-shrink-0",role:"img","aria-label":ga,children:a.jsx(p.Avatar,{type:"people",size:"xxs",className:rt,alt:""})})})}function Hn({person:e,getImageOBP:t}){const{name:s}=qt(e,t);return a.jsx(p.Tooltip,{label:s,position:Ka,alignment:Va,preserveLayout:!0,children:a.jsx("span",{className:"tm-inline-flex tm-shrink-0",children:a.jsx(zn,{person:e,getImageOBP:t})})})}function Kn({overflow:e,getImageOBP:t,popupId:s}){return a.jsx($n,{popupId:s,popupBodyClassName:"tm-max-h-64 tm-overflow-y-auto tm-p-3",trigger:a.jsxs("span",{className:"tm-inline-flex tm-h-8 tm-w-8 tm-min-h-[32px] tm-min-w-[32px] tm-max-h-[32px] tm-max-w-[32px] tm-cursor-default tm-items-center tm-justify-center tm-rounded-control-pill tm-border tm-border-default tm-bg-fill-brand tm-text-xs tm-font-normal tm-leading-none tm-tracking-[0.5px] tm-text-on-color",children:["+",e.length]}),children:e.map((o,n)=>a.jsx(qn,{person:o,getImageOBP:t},o.id!=null?`${o.id}-${n}`:n))})}const Vn=({responsables:e,getImageOBP:t,rowId:s})=>{const o=Array.isArray(e)?e:[];if(o.length===0)return a.jsx("div",{className:"tm-flex tm-min-w-0 tm-items-center",style:{paddingRight:`${fa}px`},children:a.jsx(Un,{})});const{visible:n,overflow:i}=On(o),r=n.length+(i.length>0?1:0);return a.jsxs("div",{className:"tm-flex tm-min-w-0 tm-items-center",style:{paddingRight:`${fa}px`},children:[n.map((l,d)=>{const c=l.id!=null?`r-${l.id}-${d}`:`r-${s}-${d}`;return a.jsx("div",{className:"tm-shrink-0",style:ha(d,r),children:a.jsx(Hn,{person:l,getImageOBP:t})},c)}),i.length>0?a.jsx("div",{className:"tm-shrink-0",style:ha(r-1,r),children:a.jsx(Kn,{overflow:i,getImageOBP:t,popupId:`listado-progreso-${s}-more`})}):null]})},Gn={name:le.faCircleSmall};function Wn({tags:e}){const t=Array.isArray(e)?e:[];return a.jsx("div",{className:"tm-inline-flex tm-min-w-0 tm-max-w-full tm-flex-wrap tm-content-start tm-items-center tm-gap-1",children:t.map((s,o)=>a.jsx("div",{className:"tm-min-w-0 tm-max-w-full tm-flex-shrink-0",children:a.jsx(p.Tag,{label:s.label,color:s.color,stroke:!1,truncateLabel:!0,truncateTooltip:!0,infoIcon:Gn})},`${s.label}-${o}`))})}const Qn=({listadoProgreso:e,listadoForUi:t,hideClaveColumn:s=!1})=>{var d,c;const{getImageOBP:o}=fe(),n=u.useMemo(()=>{const m=[{id:"responsables",header:"Responsable",accessor:f=>f.responsables,width:140,minWidth:100,sortable:!1,filterable:!1,resizable:!1,render:(f,g)=>a.jsx(Vn,{responsables:g.responsables,getImageOBP:o,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:f=>Mn(f.estado),contentAlign:"center",width:110,minWidth:90,sortable:!1,filterable:!1,resizable:!1,render:f=>a.jsx(Wn,{tags:Array.isArray(f)?f:[]})},{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 s||m.splice(5,0,{id:"clave",header:"Código / Ruta",accessor:"clave",width:130,minWidth:100,sortable:!1,filterable:!1,resizable:!1,contentAlign:"center"}),m},[o,s]),i=u.useMemo(()=>{var f;const m=(t==null?void 0:t.data)??((f=e.data)==null?void 0:f.data);return Array.isArray(m)?m.map(g=>({...g,id:g.id,...Fn(g)})):[]},[t==null?void 0:t.data,(d=e.data)==null?void 0:d.data]),r=e.isPending||e.isFetching&&i.length===0&&!e.isError,l=u.useMemo(()=>{var g,h;const m=(g=e.data)==null?void 0:g.data,f=Array.isArray(m)?m.length:0;if(e.isError)return{type:"empty",icon:ne.faBan,title:"No se pudo cargar el listado",description:((h=e.error)==null?void 0:h.message)??"Revisa la conexión o vuelve a intentar."};if(e.isSuccess){if(f===0&&i.length===0)return{type:"empty",icon:ne.faBan,title:"Esta campaña aún no tiene tareas",description:"Cuando asignes tareas a medios, aparecerán aquí con su estado y responsables."};if(f>0&&i.length===0)return{type:"no-filters",icon:ne.faBan,title:"No hay nada aquí...",description:"No hay tareas que coincidan con los filtros seleccionados."}}return{type:"empty",icon:ne.faBan,title:"No hay nada aquí..."}},[e.isError,e.isSuccess,e.error,(c=e.data)==null?void 0:c.data,i.length]);return a.jsx(a.Fragment,{children:a.jsx("div",{className:"tm-flex tm-min-h-0 tm-flex-col tm-mt-2 tm-h-[455px] tm-border tm-rounded-3xl tm-border-default",children:a.jsx(p.Table,{columns:n,columnsLockable:!1,rows:i,loading:r,hoverable:!1,bordered:!1,borderable:!1,stickyHeader:!0,empty:l,resizable:!1,expandable:!1,striped:!1,stickyCheckbox:!1})})})},Xn={preventa:"Preventa",venta:"Venta"},Yn=({campaignName:e,phase:t,search:s,listado:o,filters:n})=>{const i=Xn[t],r=t==="preventa";return a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-4",children:[a.jsx(bn,{campaignName:e,searchValue:s.value,onSearchChange:s.onChange}),a.jsx(jn,{mediosOptions:n.mediosOptions,plazasOptions:n.plazasOptions,estadosOptions:n.estadosOptions,selectedMedios:n.selectedMedios,selectedPlazas:n.selectedPlazas,selectedEstados:n.selectedEstados,onlyDelayed:n.onlyDelayed,onChangeMedios:n.onChangeMedios,onChangePlazas:n.onChangePlazas,onChangeEstados:n.onChangeEstados,onChangeOnlyDelayed:n.onChangeOnlyDelayed}),a.jsx(Pn,{id:`progress-chart-${i}`,listadoProgreso:o.query,phaseLabel:i,listadoForUi:o.dataForUi}),a.jsx(Qn,{listadoProgreso:o.query,listadoForUi:o.dataForUi,hideClaveColumn:r})]})};function Jn(e){var i,r,l,d;const t=(i=e.types_media)==null?void 0:i.map(c=>c.trim()).filter(Boolean),s=(r=e.locations)==null?void 0:r.map(c=>c.trim()),o=(l=e.status)==null?void 0:l.map(c=>c.trim().toLowerCase()).filter(Boolean),n=((d=e.search)==null?void 0:d.trim().toLowerCase())||void 0;return{mediosSet:t&&t.length>0?new Set(t):void 0,locationsSet:s&&s.length>0?new Set(s):void 0,statusSet:o&&o.length>0?new Set(o):void 0,searchLower:n,onlyDelayed:e.onlyDelayed===!0}}function Zn(e,t){const{mediosSet:s,locationsSet:o,statusSet:n,searchLower:i,onlyDelayed:r}=t;if(s){const l=Ze(e.tipo_medio)??"";if(!s.has(l))return!1}if(o){const l=Ze(e.ubicacion)??"";if(!o.has(l))return!1}if(n){const l=(e.estado??"").trim().toLowerCase();if(!n.has(l))return!1}if(r){const l=(e.estado??"").trim().toLowerCase();if(!vn.has(l))return!1}return!(i&&![(e.responsables??[]).flatMap(c=>[c.nombre??"",c.role??"",c.email??""]).join(" ").toLowerCase(),e.tarea??"",e.categoria??"",e.estado??"",e.nota??"",e.clave??"",e.tipo_medio??"",e.ubicacion??""].join(" ").toLowerCase().includes(i))}function eo(e){const t=Object.fromEntries(ua.map(o=>[o,0]));for(const o of e){const n=_n(o.estado??"");n&&(t[n]+=1)}const s=e.length;return ua.map(o=>({name:o,data:[s>0?t[o]/s*100:0]}))}function to(e,t){const s=Jn(t);if(!(s.mediosSet!==void 0||s.locationsSet!==void 0||s.statusSet!==void 0||s.searchLower!==void 0||s.onlyDelayed))return e;const n=e.data.filter(i=>Zn(i,s));return{data:n,grafico:eo(n)}}const Ga="__sin_ubicacion__";function Wa(e,t){return String(e.label).localeCompare(String(t.label),"es",{sensitivity:"base"})}function _t(e,t,s){const o=new Map;return e.forEach(n=>{const i=t(n);!i||o.has(i)||o.set(i,{label:s?s(i):i,value:i})}),Array.from(o.values()).sort(Wa)}function ao(e){return e.map(t=>t===Ga?"":t)}function so(e){const t=_t(e,r=>Ze(r.tipo_medio)),s=e.some(r=>Ze(r.ubicacion)===null),o=_t(e,r=>Ze(r.ubicacion)),n=[...s?[{label:"Sin ubicación",value:Ga}]:[],...o].sort(Wa),i=_t(e,r=>{var l;return((l=Ze(r.estado))==null?void 0:l.toLowerCase())??null},r=>Tn(r));return{medios:t,plazas:n,estados:i}}const no=({isOpen:e,proyectoId:t,campaignName:s,onClose:o})=>{var R;const[r,l]=u.useState("preventa"),[d,c]=u.useState([]),[m,f]=u.useState([]),[g,h]=u.useState([]),[x,y]=u.useState(!1),[j,b]=u.useState(""),w=dn(j,400),v=u.useMemo(()=>[{label:"Fase 1 (Preventa)",value:"preventa",leftSlot:ne.faHandHoldingHand},{label:"Fase 2 (Venta)",value:"venta",leftSlot:ne.faHandHoldingCircleDollar}],[]),N=()=>{c([]),f([]),h([]),y(!1)},L=()=>{l("preventa"),N(),b(""),o()},O=V=>{(V==="preventa"||V==="venta")&&(l(V),N(),b(""))},C=u.useMemo(()=>{const V=w.trim();if(V)return V.length>=2?V:void 0},[w,2]),F=xn({proyectoId:t,fase:r,enabled:e,filters:{}}),E=u.useMemo(()=>({types_media:d.length>0?d:void 0,locations:m.length>0?ao(m):void 0,status:g.length>0?g:void 0,search:C,onlyDelayed:x}),[d,m,g,C,x]),{medios:X,plazas:U,estados:z}=u.useMemo(()=>{var G;const V=((G=F.data)==null?void 0:G.data)??[];return so(V)},[(R=F.data)==null?void 0:R.data]),M=u.useMemo(()=>{const V=F.data;return V?to(V,E):null},[F.data,E]),K=u.useMemo(()=>({value:j,onChange:b}),[j]),I=u.useMemo(()=>({query:F,dataForUi:M}),[F,M]),$=u.useMemo(()=>({mediosOptions:X,plazasOptions:U,estadosOptions:z,selectedMedios:d,selectedPlazas:m,selectedEstados:g,onlyDelayed:x,onChangeMedios:c,onChangePlazas:f,onChangeEstados:h,onChangeOnlyDelayed:y}),[X,U,z,d,m,g,x]);return a.jsx(p.Modal,{isOpen:e,onClose:L,size:"xl",title:"Progreso",tabs:v,defaultValueTab:"preventa",onChangeTab:O,iconConfig:{icon:ne.faBullhorn},cancelButtonText:"Cerrar",showCancelButton:!0,closeAtCancel:!0,onCancel:L,showSuccessButton:!1,children:a.jsx("div",{className:"tm-bg-surface-default tm-p-16",children:a.jsx(p.Modal.Body,{children:a.jsx(Yn,{campaignName:s,phase:r,search:K,listado:I,filters:$})})})})},oo=({setPath:e,setProject:t})=>{var $;const[s,o]=u.useState([]),[n,i]=u.useState(!0),[r,l]=u.useState(0),[d,c]=u.useState(10),[m,f]=u.useState(0),[g,h]=u.useState(!1),[x,y]=u.useState(""),[j,b]=u.useState(0),{filters:w,defineFields:v}=ke(),{tasks_api:N,getImageOBP:L}=fe(),{user:O}=ve(),C=u.useCallback(async(R,V)=>{var G,D,te;try{i(!0);const ee={filters:{search:(w==null?void 0:w.search)??"",responsable:{idUser:O.id,responsableType:(G=w==null?void 0:w.responsable)==null?void 0:G.responsableType},ejecutivo:(w==null?void 0:w.ejecutivo)??"",cancelada:{$eq:!1}}},A=await N.get("/api/listado_campanias",{params:{pagination:{page:R,pageSize:V},...ee}}),H=je(A==null?void 0:A.data);o(H),f((te=(D=A==null?void 0:A.data)==null?void 0:D.meta)==null?void 0:te.total)}catch(ee){console.error("Error fetching data en Lista Campaña:",ee)}finally{i(!1)}},[w==null?void 0:w.ejecutivo,($=w==null?void 0:w.responsable)==null?void 0:$.responsableType,w==null?void 0:w.search,N,O.id]),F=u.useCallback(async()=>{try{const R=await N.get("/api/obtener-comerciales");return[...ca].map(G=>(G.id==="ejecutivo"&&(G.options=R.data.map(D=>({id:D.nombre,name:D.nombre}))),G))}catch(R){return console.error("Error fetching salesman data:",R),[...ca]}},[N]);u.useEffect(()=>{(async()=>{const V=await F();v(V)})()},[v,F]),u.useEffect(()=>{const R=Math.floor(r/d)+1;C(R,d)},[r,d,w,C]);const E=R=>{l(R.first),c(R.rows)},X=Math.floor(r/d)+1,U=u.useMemo(()=>(O.role??"").trim().toLowerCase()==="project manager",[O.role]),z=u.useCallback(R=>{var V;y(((V=R.campania)==null?void 0:V.nombre)??R.nombre??""),b(Number(R.id)),h(!0)},[]),M=u.useMemo(()=>({label:"Ver progreso",leftSlot:ne.faEye,theme:"solid",color:"secondary",tooltip:"Ver progreso",onClick:R=>z(R)}),[z]),K=u.useMemo(()=>{const R=[{id:"nombre",header:"CAMPAÑA",accessor:V=>{var G;return((G=V.campania)==null?void 0:G.nombre)??V.nombre??"-"},width:200,sortable:!1,filterable:!1,resizable:!1},{id:"inicia",header:"FECHA INICIO",accessor:V=>{var G;return((G=V.campania)==null?void 0:G.inicia)??"-"},width:100,sortable:!1,filterable:!1,resizable:!1},{id:"termina",header:"FECHA FIN",accessor:V=>{var G;return((G=V.campania)==null?void 0:G.termina)??"-"},width:100,sortable:!1,filterable:!1,resizable:!1},{id:"responsable",header:"RESPONSABLE",type:"primary",accessor:V=>{var G,D;return((D=(G=V.campania)==null?void 0:G.responsable)==null?void 0:D.nombre)??"-"},width:150,sortable:!1,filterable:!1,resizable:!1,render:(V,G)=>{var Y,B,P,W,_;const D=(Y=G.campania)==null?void 0:Y.responsable,te=typeof V=="string"||typeof V=="number"?String(V):(D==null?void 0:D.nombre)??"-",ee=(D==null?void 0:D.role)??"-",A=((W=(P=(B=D==null?void 0:D.imagen)==null?void 0:B.formats)==null?void 0:P.thumbnail)==null?void 0:W.url)||((_=D==null?void 0:D.imagen)==null?void 0:_.url)||"",H=A?L(A):D==null?void 0:D.nombre;return{name:te,...H?{avatar:H}:{},...ee?{subtitle:ee}:{}}}},{id:"alertas",header:"ALERTAS",accessor:V=>on(V.alertas),width:200,minWidth:100,filterable:!1,sortable:!1,resizable:!1,contentAlign:"center",render:V=>a.jsx(cn,{tags:Array.isArray(V)?V:[]})}];return U&&R.push({id:"acciones",header:"ACCIONES",type:"button",sortable:!1,filterable:!1,resizable:!1,accessor:()=>M,width:190,minWidth:160}),R},[L,U,M]),I=u.useMemo(()=>(s??[]).map(R=>({...R,id:R.id})),[s]);return a.jsxs("div",{className:"tm-h-full tm-max-h-[100%] tm-overflow-y-auto tm-scrollbar-none",children:[a.jsx(p.Table,{columns:K,columnsLockable:!1,rows:I,loading:n,hoverable:!0,resizable:!1,pagination:{enabled:!0,currentPage:X,pageSize:d,total:m,pageSizes:[5,10,15,20,25,50],onPageChange:R=>l((R-1)*d),onPageSizeChange:R=>E({first:0,rows:R})},onRowClick:R=>{t({id:R.id,project:R.nombre}),e("kanban-campania")},empty:{type:"empty",title:"No hay campañas disponibles"}}),a.jsx(no,{isOpen:g,proyectoId:j,campaignName:x,onClose:()=>h(!1)})]})},Qa=u.createContext(null),ro=()=>u.useContext(Qa),io=({children:e})=>{const t=u.useRef(null),s=u.useRef(null),o=()=>{var n;(n=s.current)==null||n.close()};return a.jsxs(a.Fragment,{children:[a.jsx(p.Button,{ref:t,leftSlot:ne.faFilter,color:"primary",theme:"solid",size:"sm",type:"button",children:"Filtrar"}),a.jsx(p.Popup,{ref:s,triggerRef:t,position:"bottom-right",offset:8,closeOnClickOutside:!0,closeOnEscape:!0,closeOnClick:!1,popoverArrow:!1,allowOverflow:!0,popupId:"tareas-filters-layout-popup",children:a.jsx(Qa.Provider,{value:o,children:e})})]})};function lo(e,t=300,s={leading:!1,trailing:!0}){let o,n=null;return function(...i){const r=Date.now(),l=s.leading&&!n;clearTimeout(o),l&&e(...i),n=r,o=setTimeout(()=>{s.trailing&&(!s.leading||r-n>=t)&&(e(...i),n=null)},t)}}function co(e){return e!=null&&e.length?e.map(t=>({id:t.id,label:t.name,value:t.id})):[]}function mo({field:e}){const{updateFilters:t,initialFilters:s}=ke(),o=u.useMemo(()=>co(e.options),[e.options]),n=s==null?void 0:s[e.id],i=n??"";return a.jsx(p.Dropdown,{field:{label:e.label,placeholder:"Selecciona una opción",size:"xs"},items:{options:o,idName:"id"},values:{value:i},menuSearch:{searchable:!0,searchPlaceholder:"Buscar…"},popover:{fullWidth:!0,absolute:!1,closeOnClickOutside:!0,dropdownId:`filter-layout-${e.id}`,popoverZIndex:1300},events:{onValueChange:r=>{t({name:e.id,value:String(r)})}}})}const uo=()=>{const{fields:e,updateFilters:t,cleanFilters:s,applyFilters:o,initialFilters:n}=ke(),i=ro();return a.jsxs("div",{className:"tm-flex tm-min-w-[280px] tm-max-w-[400px] tm-flex-col tm-gap-8 tm-p-8",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-gap-2",children:[a.jsx("p",{className:"tm-m-0 tm-text-heading-h6 tm-font-heading-h6 tm-leading-heading-h6 tm-tracking-heading-h6 tm-text-primary",children:"Filtros"}),a.jsx(p.Button,{color:"secondary",size:"xxs",icon:ne.faXmark,type:"button",onClick:()=>{s(),i==null||i()},children:"Limpiar"})]}),a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-3",children:e==null?void 0:e.map((r,l)=>a.jsx("div",{className:"tm-relative",style:{zIndex:10-l},children:(r==null?void 0:r.type)==="select"?a.jsx("div",{className:"tm-relative tm-z-[10] tm-w-full",children:a.jsx(mo,{field:r})}):a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"z-[1] tm-text-xl",children:r.label}),a.jsx("input",{className:"tm-h-[30px] tm-w-full tm-rounded-lg tm-p-s tm-shadow-input",type:r.type,value:n==null?void 0:n[r==null?void 0:r.id],name:r.label.toLowerCase().replace(/ /g,"_"),onChange:lo(d=>{var c,m;return t({name:(c=d==null?void 0:d.target)==null?void 0:c.name,value:(m=d==null?void 0:d.target)==null?void 0:m.value})},1e3)})]})},l))}),a.jsx(p.Button,{color:"primary",size:"xs",type:"button",fullWidth:!0,onClick:()=>{o(),i==null||i()},children:"Filtrar"})]})},$t=e=>new Intl.DateTimeFormat("es-MX",{month:"long"}).format(e);function po(e){const t=["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],s=new Date(e).getDay();return t[s]}const xa=e=>{const t=e?typeof e=="string"?ot.parseISO(e):e:new Date,s=t.getDate(),o=$t(t.getMonth()).slice(0,3),n=t.getFullYear().toString().slice(-2),i=po(t).slice(0,3);return`${i.charAt(0).toUpperCase()+i.slice(1)} ${s} ${o.charAt(0).toUpperCase()+o.slice(1)} ${n}`},Ut=(e,t)=>({...e,image:e.image?`${t}${e.image}`:""}),it=e=>{var o,n,i,r;if(!e)return null;const t=(n=(o=e.responsable)==null?void 0:o.nombre)==null?void 0:n.trim();if(t)return t;const s=(r=(i=e.equipo)==null?void 0:i.nombre)==null?void 0:r.trim();return s||null};function Ht(e,t){var s;if(e!=null&&e.length)for(const o of e)o!=null&&o.idUser&&t({idUser:o.idUser,node:o}),(s=o==null?void 0:o.miembros)!=null&&s.length&&Ht(o.miembros,t)}function Xa({idUser:e,node:t}){var o,n,i,r,l,d,c,m;const s=((r=(i=(n=(o=e.userOBP)==null?void 0:o.imagen)==null?void 0:n.formats)==null?void 0:i.thumbnail)==null?void 0:r.url)??((m=(c=(d=(l=t.userOBP)==null?void 0:l.imagen)==null?void 0:d.formats)==null?void 0:c.thumbnail)==null?void 0:m.url);if(!(s==null||s===""))return s}function Ya({idUser:e,node:t}){var s,o;return((s=e.userOBP)==null?void 0:s.role)??((o=t.userOBP)==null?void 0:o.role)??{id:0,name:""}}const fo=()=>({large:{url:""},medium:{url:""},small:{url:""},thumbnail:{url:""}});function Ke(e){if(e==null||e==="")return null;if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;const t=new Date(e);return Number.isNaN(t.getTime())?null:t}function ba(e){if(e==null||typeof e!="object")return null;const t=e,s=t.id!=null?Number(t.id):NaN,o=t.nombre??"",n=t.email??"";return Number.isNaN(s)&&!o.trim()&&!n.trim()?null:{id:Number.isNaN(s)?0:s,nombre:o.trim()||"—",...n.trim()?{email:n.trim()}:{}}}function go(e){if((e==null?void 0:e.id)==null)return{id:0,texto_corto:""};const t=e.responsable;let s;if(t===null)s=null;else if(t!=null&&typeof t=="object"){const l=t,d=(l.nombre??"").trim();s=d?{id:l.id!=null?Number(l.id):void 0,nombre:d}:null}let o;const n=e.equipo;if(n===null)o=null;else if(n!=null&&typeof n=="object"){const l=n,d=(l.nombre??"").trim();o=d?{id:l.id!=null?Number(l.id):void 0,nombre:d}:null}const i=e.estatus,r=i!=null&&i!==""&&Number.isFinite(Number(i))?Number(i):void 0;return{id:e.id,texto_corto:e.texto_corto??"",...r!==void 0?{estatus:r}:{},...s!==void 0?{responsable:s}:{},...o!==void 0?{equipo:o}:{}}}function Ja(e){var y;const t=e.responsable,s=t==null?void 0:t.userOBP,o=(t==null?void 0:t.imagen)??(s==null?void 0:s.imagen),n=t?{id:t.id,email:t.email??"",nombre:t.nombre??"",imagen:o??{formats:fo()}}:null,i=e.equipo,r=i?{id:i.id,nombre:i.nombre??"",miembros:[]}:{id:0,nombre:"",miembros:[]},l=e.id_t_requerida,d=go(l),c=e.ids_t_dependientes,f=(Array.isArray(c)?c:c!=null&&typeof c=="object"&&Array.isArray(c.data)?c.data??[]:[]).map(j=>{const b=j==null?void 0:j.responsable,w=b==null?void 0:b.userOBP,N=(b==null?void 0:b.imagen)??(w==null?void 0:w.imagen)??(b==null?void 0:b.image);return b?{...j,responsable:{...b,image:N??b.image,imagen:N??b.imagen}}:j}),g=Array.isArray(e.comentarios)?e.comentarios:[],h=ba(e.created_by),x=ba(e.updated_by);return{descripcion:"",estatus:e.estatus!=null?String(e.estatus):"",comentarios:g,equipo:r,campania:((y=e.proyecto)==null?void 0:y.nombre)??"",nombre_medio:e.nombre_medio??"",ffin:Ke(e.ffin),finicio:Ke(e.finicio),f_inicio_estimada:Ke(e.f_inicio_estimada),f_fin_estimada:Ke(e.f_fin_estimada),fterminada:Ke(e.fterminada),createdAt:Ke(e.createdAt??e.created_at),updatedAt:Ke(e.updatedAt??e.updated_at),responsable:n,prioridad:e.prioridad!=null?String(e.prioridad):null,nivel_dificultad:e.nivel_dificultad,lista:e.lista??null,texto_corto:e.texto_corto??null,texto_largo:e.texto_largo??null,id_t_requerida:d,ids_t_dependientes:f,atraso:e.atraso??null,categoria:e.categoria??null,...h?{createdBy:h}:{},...x?{updatedBy:x}:{}}}class ho{static toCampaignTasks(t){var i,r,l,d,c,m,f,g,h,x,y,j,b,w,v;const s=it(t==null?void 0:t.id_t_requerida),o=it(t==null?void 0:t.tarea_padre),n=[];return t!=null&&t.responsable&&n.push({id:t.responsable.id,name:t.responsable.nombre,image:(c=(d=(l=(r=(i=t.responsable)==null?void 0:i.userOBP)==null?void 0:r.imagen)==null?void 0:l.formats)==null?void 0:d.thumbnail)==null?void 0:c.url,role:((m=t.responsable.userOBP)==null?void 0:m.role)||{id:0,name:""}}),(f=t==null?void 0:t.equipo)!=null&&f.miembros&&Ht(t.equipo.miembros,N=>{n!=null&&n.find(L=>L.id===N.idUser.id)||n.push({id:N.idUser.id,name:N.idUser.nombre,image:Xa(N),role:Ya(N)})}),{paused:t==null?void 0:t.pausada,isPrincipalTask:(t==null?void 0:t.tarea_principal)??!1,orden:(t==null?void 0:t.orden)??null,id:(t==null?void 0:t.id)??null,task:(t==null?void 0:t.texto_corto)??null,status:(t==null?void 0:t.estatus)??null,difficulty:(t==null?void 0:t.nivel_dificultad)??null,priority:(t==null?void 0:t.prioridad)??0,endDate:new Date((t==null?void 0:t.ffin)??null),startDate:new Date((t==null?void 0:t.finicio)??null),users:n,repeatsToDo:(t==null?void 0:t.repeticiones)??null,repeats:(t==null?void 0:t.repeticiones_realizadas)??null,comments:((g=t==null?void 0:t.comentarios)==null?void 0:g.length)??null,willBePaused:t==null?void 0:t.es_pausable,nameProject:((h=t==null?void 0:t.proyecto)==null?void 0:h.nombre)??null,idProject:((x=t==null?void 0:t.proyecto)==null?void 0:x.id)??null,medioName:(t==null?void 0:t.nombre_medio)??null,statusRequiredTask:((y=t==null?void 0:t.id_t_requerida)==null?void 0:y.estatus)??null,nameRequiredTask:((j=t==null?void 0:t.id_t_requerida)==null?void 0:j.texto_corto)??null,nameRequiredTaskResponsible:s,name_father_required_task:((b=t==null?void 0:t.tarea_padre)==null?void 0:b.texto_corto)??null,name_father_required_task_responsible:o,responsible:((w=t==null?void 0:t.responsable)==null?void 0:w.id)??null,tasks:((v=t==null?void 0:t.tareas)==null?void 0:v.map(N=>({id:N.id,name:N.texto_corto,status:N.estatus})))??[],atraso:(t==null?void 0:t.atraso)??null,categoria:(t==null?void 0:t.categoria)??null,...(t==null?void 0:t.cambio_arte)&&{cambio_arte:t==null?void 0:t.cambio_arte},panelDataFromList:Ja(t)}}}class xo{static toKanbanTasks(t){var i,r,l,d,c,m,f,g,h,x,y,j,b;const s=it(t==null?void 0:t.id_t_requerida),o=it(t==null?void 0:t.tarea_padre),n=[];return t!=null&&t.responsable&&n.push({id:t.responsable.id,name:t.responsable.nombre,image:(c=(d=(l=(r=(i=t.responsable)==null?void 0:i.userOBP)==null?void 0:r.imagen)==null?void 0:l.formats)==null?void 0:d.thumbnail)==null?void 0:c.url,role:((m=t.responsable.userOBP)==null?void 0:m.role)||{id:0,name:""}}),(f=t==null?void 0:t.equipo)!=null&&f.miembros&&Ht(t.equipo.miembros,w=>{n!=null&&n.find(v=>v.id===w.idUser.id)||n.push({id:w.idUser.id,name:w.idUser.nombre,image:Xa(w),role:Ya(w)})}),{paused:t==null?void 0:t.pausada,repeats:t==null?void 0:t.repeticiones_realizadas,repeatsToDo:t==null?void 0:t.repeticiones,comments:0,nameProject:(g=t==null?void 0:t.proyecto)==null?void 0:g.nombre,idProject:(h=t==null?void 0:t.proyecto)==null?void 0:h.id,willBePaused:t.es_pausable,difficulty:t.nivel_dificultad,endDate:new Date(t.ffin),id:t.id,priority:t.prioridad??0,status:t.estatus,task:t.texto_corto,users:n,responsible:((x=t==null?void 0:t.responsable)==null?void 0:x.id)??null,name_father_required_task:((y=t==null?void 0:t.tarea_padre)==null?void 0:y.texto_corto)??null,name_father_required_task_responsible:o,statusRequiredTask:((j=t.id_t_requerida)==null?void 0:j.estatus)??null,nameRequiredTask:((b=t.id_t_requerida)==null?void 0:b.texto_corto)??null,nameRequiredTaskResponsible:s,medioName:(t==null?void 0:t.nombre_medio)??null,atraso:(t==null?void 0:t.atraso)??null,categoria:(t==null?void 0:t.categoria)??null,...(t==null?void 0:t.cambio_arte)&&{cambio_arte:t==null?void 0:t.cambio_arte},panelDataFromList:Ja(t)}}}function bo(e){const t=(e??"").replace(/\/+$/,"");return/\/api\/tareas$/i.test(t)||/\/tareas$/i.test(t)?"listado-kanban-general":"/api/tareas/listado-kanban-general"}function yo(e){var o,n,i,r;const t=e.owner,s={owner:{user:t.user,config:t.config,...t.role!=null&&t.role!==""?{role:t.role}:{},...Array.isArray(t.teamIds)&&t.teamIds.length>0?{teamIds:t.teamIds}:{}},cancelada:e.cancelada??!1};return e.taskName&&(s.taskName=e.taskName),e.difficulty&&(s.difficulty=e.difficulty),e.priority&&(s.priority=e.priority),e.dependency&&(s.dependency=e.dependency),e.status&&(s.status=e.status),e.taskType&&(s.taskType=e.taskType),((o=e.project)==null?void 0:o.id)!=null&&`${e.project.id}`.trim()!==""?s.project={id:e.project.id}:(n=e.project)!=null&&n.name&&(s.project={name:e.project.name}),((i=e.salesman)==null?void 0:i.id)!=null&&`${e.salesman.id}`.trim()!==""?s.salesman={id:e.salesman.id}:(r=e.salesman)!=null&&r.name&&(s.salesman={name:e.salesman.name}),e.pagination&&(s.pagination={page:e.pagination.page??1,pageSize:e.pagination.pageSize??30,...e.pagination.withCount!==void 0?{withCount:e.pagination.withCount}:{}}),e.includeAllTasks===!0&&(s.includeAllTasks=!0),s}async function Za({filters:e,tasks_api:t}){var f;const s={...e,cancelada:e.cancelada??!1},o=yo(s),n=bo(t.defaults.baseURL),r=(await t.post(n,{data:o})).data;if(!r||typeof r!="object")throw new Error("Respuesta inválida del listado kanban");const l=r.data;if(!Array.isArray(l))throw new Error("Se esperaba response.data como array (modo lista). Para splitByStatus el cliente debe usar otro consumidor.");const d=(f=r.meta)==null?void 0:f.pagination,c=typeof(d==null?void 0:d.total)=="number"?d.total:l.length;return{rows:l.map(g=>je(g)),total:c}}const pt=async({filters:e,tasks_api:t})=>{try{const{rows:s,total:o}=await Za({filters:e,tasks_api:t});return{tasks:s.map(i=>xo.toKanbanTasks(i)),total:o}}catch(s){throw console.log({error:s}),`Error al obtener las tareas: ${s}`}},jo=500,wo=100,vo=async({filters:e,tasks_api:t,project:s})=>{const{status:o,pagination:n,...i}=e,r={...i,owner:e.owner,project:{id:s},cancelada:!1,includeAllTasks:!0},l=[];let d=0,c=1;const m=(n==null?void 0:n.pageSize)??jo;for(;;){const{rows:f,total:g}=await Za({filters:{...r,pagination:{page:c,pageSize:m,withCount:!0}},tasks_api:t});if(d=g,l.push(...f),f.length===0||l.length>=d||f.length<m||(c+=1,c>wo))break}return l.map(f=>ho.toCampaignTasks(f))},Kt=["Project Manager","Administrador"];function _o(e){return e==null||e===""?!1:Kt.includes(e)}function et(e,t){return e==="todas"&&!_o(t)?"yo_y_mis_equipos":e!=null&&e!==""?e:"yo_y_mis_equipos"}const es=u.createContext({}),To=({children:e,project:t})=>{var b;const[s,o]=u.useState([]),[n,i]=u.useState(!1),[r,l]=u.useState([]),{tasks_api:d}=fe(),{filters:c}=ke(),{user:m}=ve(),[f,g]=u.useState({owner:{user:m.id,config:et((b=c==null?void 0:c.owner)==null?void 0:b.config,m.role)},project:{id:t}});u.useEffect(()=>{var w;if(Object.keys(c).length>0){const v={...c,owner:{user:m.id,config:et((w=c==null?void 0:c.owner)==null?void 0:w.config,m.role)},project:{id:t}};g(v)}},[c,m.id,m.role,t]);const h=de.useQuery({queryKey:["tasksProject",f,t],queryFn:()=>{var v;const w={...f,taskName:c==null?void 0:c.taskName,owner:{...f.owner,config:et(f.owner.config||((v=c==null?void 0:c.owner)==null?void 0:v.config),m.role)}};return vo({filters:w,project:t,tasks_api:d})},refetchOnWindowFocus:!1}),x=w=>{o(v=>[...v,w])},y=w=>{l(v=>v.includes(w)?v.filter(N=>N!==w):[...v,w])},j=t??null;return a.jsx(es.Provider,{value:{tasksProject:h,selectedTasks:s,projectID:j,openTasks:r,selectTask:x,filtersToSend:f,openTask:y,isRefetching:n,project:t,filters:c,setIsRefetching:i},children:e})},st=()=>u.useContext(es),ts=u.createContext(void 0),ya=()=>({selectedTaskIds:[],baseColumn:null,isFullColumnSelected:!1});function as({children:e,invalidateAfterBulkSuccess:t}){const[s,o]=u.useState(ya),[n,i]=u.useState(null),[r,l]=u.useState(!1),{selectedTaskIds:d,baseColumn:c,isFullColumnSelected:m}=s,f=d.length>0,g=c!==null,h=u.useCallback(()=>{o(ya()),i(null),l(!1)},[]),x=u.useCallback(()=>{o(w=>({...w,selectedTaskIds:[],isFullColumnSelected:!1}))},[]),y=u.useCallback((w,v)=>{v!=="Completadas"&&o(N=>{if(N.baseColumn&&N.baseColumn!==v)return N;const L=new Set(N.selectedTaskIds);return L.has(w)?(L.delete(w),{selectedTaskIds:[...L],baseColumn:N.baseColumn,isFullColumnSelected:!1}):(L.add(w),{selectedTaskIds:[...L],baseColumn:N.baseColumn??v,isFullColumnSelected:!1})})},[]),j=u.useCallback(async(w,v)=>{if(w!=="Completadas"){l(!0);try{const N=await v(),L=[...new Set(N)];o(O=>O.baseColumn&&O.baseColumn!==w?O:{selectedTaskIds:L,baseColumn:O.baseColumn??w,isFullColumnSelected:L.length>0})}finally{l(!1)}}},[]);u.useEffect(()=>{d.length===0&&c!==null&&h()},[d.length,c,h]);const b=u.useMemo(()=>({selectedTaskIds:d,baseColumn:c,isMultiSelectActive:f,isBulkSessionActive:g,isFullColumnSelected:m,pendingTargetStatus:n,isBulkLoading:r,invalidateAfterBulkSuccess:t,toggleTaskSelection:y,deselectAllSelectedTasks:x,exitBulkSelectionMode:h,selectEntireColumn:j,setPendingTargetStatus:i,setIsBulkLoading:l}),[d,c,f,g,m,n,r,t,y,x,h,j,i,l]);return a.jsx(ts.Provider,{value:b,children:e})}function Vt(){return u.useContext(ts)}const No=()=>a.jsxs("div",{className:"tm-flex tm-h-[150px] tm-w-full tm-animate-pulse tm-flex-col tm-gap-[50px] tm-rounded-md tm-bg-gray-200 tm-p-4",children:[a.jsxs("div",{className:"tm-flex tm-h-[30px] tm-gap-3",children:[a.jsx("div",{className:"tm-h-full tm-w-[30px] tm-min-w-[30px] tm-rounded-full tm-bg-gray-300"}),a.jsx("div",{className:"tm-h-full tm-w-full tm-bg-gray-300"}),a.jsx("div",{className:"tm-h-full tm-w-[30px] tm-min-w-[30px] tm-rounded-full tm-bg-gray-300"})]}),a.jsxs("div",{className:"tm-flex tm-h-[30px] tm-w-full tm-justify-between tm-gap-[50px]",children:[a.jsx("div",{className:"tm-h-[30px] tm-w-full tm-bg-gray-300"}),a.jsx("div",{className:"tm-h-[30px] tm-w-full tm-bg-gray-300"})]})]});class ss{static toAtrasoReasons(t){return{id:t.id,motivo_imj:t.motivo_imj,categoria:t.categoria??null}}}const Co=async({tasks_api:e})=>{try{const t=await e.get("/api/motivos",{params:{populate:{categoria:{fields:["id","nombre","tipo"]}},filters:{tipo:{$eq:"atraso"}}}});return je(t.data).map(ss.toAtrasoReasons)}catch(t){throw console.log("Error al obtener los motivos de atraso",t),`Error al obtener los motivos de atraso: ${t}`}},ns=({enabled:e=!1}={})=>{const{tasks_api:t}=fe(),{user:s}=ve(),o=de.useQueryClient(),{filters:n,path:i}=ke(),{data:r,isLoading:l}=de.useQuery({queryKey:["atraso_reasons"],queryFn:()=>Co({tasks_api:t}),staleTime:1e3*60*60*24,enabled:e}),d=async()=>{const w=await t.get("/api/motivos",{params:{filters:{tipo:{$eq:"atraso"}}}});return je(w.data).map(ss.toAtrasoReasons)},c=async({taskId:w,motivoId:v,projectID:N})=>{try{return(await t.post("/api/atrasos",{data:{inicio:new Date,fin:null,motivo:v,proyecto:N,tarea:w,creada_por:s==null?void 0:s.id}})).data}catch(L){console.log("error",L)}},m=async w=>{try{return(await t.delete(`/api/atrasos/${w}`)).data}catch(v){console.log("error",v)}},f=async w=>{try{return(await t.put(`/api/atrasos/${w}`,{data:{fin:new Date}})).data}catch(v){console.log("error",v)}},g=async({taskId:w,projectID:v,motivo:N})=>{await y({taskId:w,motivoId:N,projectID:v})},h=async w=>{await j(w)},x=async w=>{await b(w)},{mutateAsync:y}=de.useMutation({mutationFn:c,onSuccess:()=>{p.messageService.success("Atraso registrado correctamente"),i==="kanban-general"&&(o.invalidateQueries({queryKey:["to_do_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),i==="kanban-campania"&&o.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{p.messageService.error("Error al registrar el atraso")}}),{mutateAsync:j}=de.useMutation({mutationFn:m,onSuccess:()=>{p.messageService.success("Atraso eliminado correctamente"),i==="kanban-general"&&(o.invalidateQueries({queryKey:["to_do_tasks"]}),o.invalidateQueries({queryKey:["working_tasks"]}),o.invalidateQueries({queryKey:["done_tasks"]})),i==="kanban-campania"&&o.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{p.messageService.error("Error al eliminar el atraso")}}),{mutateAsync:b}=de.useMutation({mutationFn:f,onSuccess:()=>{p.messageService.success("Atraso finalizado correctamente")},onError:()=>{p.messageService.error("Error al finalizar el atraso")}});return{atrasoReasons:r,isLoading:l,createAtraso:g,getAtrasoReasons:d,deleteAtraso:h,finalizarAtraso:x}},He=()=>{const{tasks_api:e}=fe(),{user:t}=ve(),{filters:s,path:o}=ke(),n=de.useQueryClient(),{projectID:i}=st(),{finalizarAtraso:r}=ns({enabled:!1}),l=async({id:z})=>(await e.put(`/api/tareas/${z}`,{data:{estatus:1,responsable:t==null?void 0:t.id,updated_by:t==null?void 0:t.id}})).data,d=async({id:z})=>(await e.put(`/api/tareas/${z}`,{data:{estatus:0,responsable:t==null?void 0:t.id,updated_by:t==null?void 0:t.id}})).data,c=async({id:z,idAtraso:M})=>{const K=await e.post("/api/terminarTarea",{id_task:z,ended_at:new Date().toISOString(),id_user:t==null?void 0:t.id});return await r(M),K.data},m=async({id:z,repeats:M})=>(await e.put(`/api/tareas/${z}`,{data:{repeticiones_realizadas:M,updated_by:t==null?void 0:t.id}})).data,f=async({id:z,motiveId:M})=>{try{const K=await e.post("/api/pausarTarea",{taskId:z,userId:t==null?void 0:t.id,motivoId:M});return p.messageService.success("Tarea pausada correctamente"),K.data}catch(K){p.messageService.error(`Error al pausar la tarea: ${K}`)}},g=async({id:z})=>{try{const M=await e.post("/api/reanudarTarea",{taskId:z});return p.messageService.success("Tarea reanudada correctamente"),M.data}catch(M){p.messageService.error(`Error al reanudar la tarea: ${M}`)}},h=async({id:z,idNewResponsible:M,typeOfSelect:K})=>{let I={updated_by:t==null?void 0:t.id};return K==="responsible"&&(I={...I,responsable:M}),K==="team"&&(I={...I,responsable:null,equipo:M}),(await e.put(`/api/tareas/${z}`,{data:I})).data},x=async({id:z,data:M,user:K})=>{try{return(await e.put(`/api/tareas/${z}`,{data:{...M,updated_by:K==null?void 0:K.id}})).data}catch(I){console.error("Error updating the element:",I)}},y=async({id:z})=>{await w({id:z})},j=async({id:z,data:M,user:K})=>{await b({id:z,data:M,user:K})},{mutateAsync:b}=de.useMutation({mutationFn:x,onSuccess:()=>{p.messageService.success("Tarea actualizada correctamente");const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(n.invalidateQueries({queryKey:[z[o],s]}),n.invalidateQueries({queryKey:["done_tasks",s]}),n.invalidateQueries({queryKey:["working_tasks",s]})),o==="kanban-campania"&&(n.invalidateQueries({queryKey:["tasksProject"]}),n.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(M){console.error("Error invalidating queries:",M)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await n.cancelQueries({queryKey:["working_tasks"]})}}),{mutateAsync:w}=de.useMutation({mutationFn:l,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(n.invalidateQueries({queryKey:[z[o],s]}),n.invalidateQueries({queryKey:["working_tasks",s]})),o==="kanban-campania"&&(n.invalidateQueries({queryKey:["tasksProject"]}),n.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(M){console.error("Error updating the element:",M)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await n.cancelQueries({queryKey:["working_tasks"]}),await n.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:v}=de.useMutation({mutationFn:c,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n.setQueryData([z[o],s],M=>{console.log({oldData:M})}),o==="kanban-general"&&(n.invalidateQueries({queryKey:[z[o],s]}),n.invalidateQueries({queryKey:["done_tasks",s]}),n.invalidateQueries({queryKey:["working_tasks",s]})),o==="kanban-campania"&&(n.invalidateQueries({queryKey:["tasksProject"]}),n.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(M){console.error("Error invalidating queries:",M)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await n.cancelQueries({queryKey:["working_tasks"]}),await n.cancelQueries({queryKey:["done_tasks"]}),await n.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:N}=de.useMutation({mutationFn:m,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(n.invalidateQueries({queryKey:[z[o],s]}),n.invalidateQueries({queryKey:["done_tasks",s]}),n.invalidateQueries({queryKey:["working_tasks",s]})),o==="kanban-campania"&&(n.invalidateQueries({queryKey:["tasksProject"]}),n.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(M){console.error("Error invalidating queries:",M)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await n.cancelQueries({queryKey:["working_tasks"]}),await n.cancelQueries({queryKey:["done_tasks"]}),await n.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:L}=de.useMutation({mutationFn:h,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(n.invalidateQueries({queryKey:[z[o],s]}),n.invalidateQueries({queryKey:["done_tasks",s]}),n.invalidateQueries({queryKey:["working_tasks",s]})),o==="kanban-campania"&&(n.invalidateQueries({queryKey:["tasksProject"]}),n.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(M){console.error("Error invalidating queries:",M)}},onError:z=>{console.error("Failed to reassign the task.",z)},onMutate:async()=>{await n.cancelQueries({queryKey:["working_tasks"]}),await n.cancelQueries({queryKey:["done_tasks"]}),await n.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:O}=de.useMutation({mutationFn:d,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(n.invalidateQueries({queryKey:[z[o],s]}),n.invalidateQueries({queryKey:["working_tasks",s]})),o==="kanban-campania"&&(n.invalidateQueries({queryKey:["tasksProject"]}),n.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(M){console.error("Error updating the element:",M)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await n.cancelQueries({queryKey:["working_tasks"]}),await n.cancelQueries({queryKey:["to_do_tasks"]})}});return{updatingTask:j,updateTask:x,startTask:async({id:z})=>{await O({id:z})},startWorking:y,completeTask:async({id:z,idAtraso:M})=>{await v({id:z,idAtraso:M})},reasignResponsible:async({id:z,idNewResponsible:M,typeOfSelect:K})=>{await L({id:z,idNewResponsible:M,typeOfSelect:K})},updateUnitys:async({repeats:z,id:M})=>{await N({repeats:z,id:M})},pauseTask:async({id:z,motiveId:M})=>{console.log({taksId:z,motivoId:M,user:t==null?void 0:t.id})},postPauseTask:f,postReanudeTask:g}},So="Project Manager";function ft(e,t){return e===So?!0:Number.isFinite(t)?t===0:!1}function Me({trigger:e,children:t,enabled:s=!0,position:o="top",offset:n=8,closeOnClick:i=!1,popoverArrow:r="auto",className:l="tm-inline-flex tm-max-w-full",triggerWrapperClassName:d="tm-inline-flex tm-max-w-full"}){const c=u.useRef(null);return s?a.jsxs("span",{className:l,children:[a.jsx("span",{ref:c,className:d,children:e}),a.jsx(p.Popover,{triggerRef:c,openOnHover:!0,position:o,offset:n,closeOnClick:i,popoverArrow:r,children:t})]}):a.jsx(a.Fragment,{children:e})}const Fe=({imageUrl:e="https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png",alt:t="avatar",size:s="s"})=>{const o={xs:"tm-w-[24px] tm-h-[24px] tm-min-w-[24px] tm-min-h-[24px]",s:"tm-w-[28px] tm-h-[28px] tm-min-w-[28px] tm-min-h-[28px]",m:"tm-w-[32px] tm-h-[32px] tm-min-w-[32px] tm-min-h-[32px]",l:"tm-w-[36px] tm-h-[36px] tm-min-w-[36px] tm-min-h-[36px]",xl:"tm-w-[40px] tm-h-[40px] tm-min-w-[40px] tm-min-h-[40px]",xxl:"tm-w-[44px] tm-h-[44px] tm-min-w-[44px] tm-min-h-[44px]"}[s];return a.jsx("img",{src:e===""?"https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png":e,alt:t??"avatar",className:`${o} tm-bg-surface-default tm-rounded-full tm-border-2 tm-border-default`})},ja=({trigger:e,user:t,showUser:s=!0})=>a.jsx(Me,{trigger:e,enabled:s,children:a.jsxs("div",{className:"tm-flex tm-h-fit tm-w-fit tm-items-center tm-gap-2 tm-bg-bg-card tm-p-2",children:[a.jsx(Fe,{imageUrl:t.image??"",alt:t.name}),a.jsx("p",{className:"tm-text-sm tm-font-bold tm-text-texts-subtext",children:t.name})]})}),Eo=({options:e,onselect:t})=>{const[s,o]=u.useState(""),n=[...e].filter(i=>i.name.toLowerCase().includes(s.toLowerCase()));return a.jsxs("div",{className:"tm-h-fit tm-w-full tm-min-w-max",children:[a.jsx(p.Input,{size:"sm",fullWidth:!0,leftSlot:ne.faSearch,placeholder:"Buscar",value:s,onValueChange:o}),a.jsx("div",{className:"tm-border-cards tm-flex tm-max-h-[120px] tm-min-w-max tm-flex-col tm-gap-s tm-overflow-y-auto tm-rounded-lg tm-bg-bg-card tm-p-2 tm-mt-2",children:n.map(i=>a.jsxs("button",{type:"button",onClick:()=>{t(i)},className:"tm-flex tm-min-w-full tm-max-w-[200px] tm-cursor-pointer tm-items-center tm-gap-s hover:tm-bg-primary-light",children:[i.image&&a.jsx(Fe,{imageUrl:i.image,alt:i.name}),a.jsx("p",{className:"tm-min-w-0 tm-text-left tm-text-[14px] tm-truncate tm-py-m tm-font-normal tm-text-texts-subtext",children:i.name})]},i.id??i.name))})]})};class Ao{static toDomain(t){return{id:t.id,name:t.nombre,color:t.color}}}const Po=()=>{const{tasks_api:e}=fe();return{teams:de.useQuery({queryKey:["teams","all"],queryFn:async()=>{const s=await e.get("/api/equipos");return je(s.data).map(Ao.toDomain)},refetchOnWindowFocus:!1})}};class Gt{static toUsers(t){var s,o,n;return{id:t.id,name:t.nombre,image:(n=(o=(s=t.imagen)==null?void 0:s.formats)==null?void 0:o.thumbnail)==null?void 0:n.url,tasksUser:{email:t.tasksUser.email,id:t.tasksUser.id,nombre:t.tasksUser.nombre},role:t.role}}static toUsersV2(t){var s,o,n;return{id:t.id,name:t.nombre,image:(n=(o=(s=t.imagen)==null?void 0:s.formats)==null?void 0:o.thumbnail)==null?void 0:n.url,role:t.role}}static toUsersWithIndex(t){var o,n,i;const s={};for(const r of t)s[r.email]={...r,image:(i=(n=(o=r.imagen)==null?void 0:o.formats)==null?void 0:n.thumbnail)==null?void 0:i.url};return s}}const Do=async({tasks_api:e})=>{try{const t=await e.get("/api/getAllOBPusersMembers");return je(t.data).map(Gt.toUsers)}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},Io=async({tasks_api:e})=>{try{const t={filters:{$and:[{role:{name:{$in:["Project Manager","Operation Manager","Administrador"]}}},{blocked:{$eq:!1}}]}},s=De.stringify(t,{encodeValuesOnly:!0}),o=await e.get(`/api/users?${s}`),i=je(o.data).map(d=>d.email),r=await e.get(`/api/getAllOBPusers?filters[name][$in]=${i}`);return je(r.data).map(Gt.toUsersV2)}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},Fo=async({users:e})=>{try{const t=je(e);return Gt.toUsersWithIndex(t)}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},Mo=()=>{const{tasks_api:e}=fe();return{users:de.useQuery({queryKey:["users"],queryFn:()=>Do({tasks_api:e}),staleTime:1e3*60*60*24})}},ko=()=>{const{tasks_api:e}=fe();return{users:de.useQuery({queryKey:["allUsers"],queryFn:()=>Io({tasks_api:e}),staleTime:1e3*60*60*24})}};function Lo(e,t){if(!(t!=null&&t.length))return e;const s=new Set(t),o=e.filter(n=>{var i;return((i=n.tasksUser)==null?void 0:i.id)!=null&&s.has(n.tasksUser.id)||n.id!=null&&s.has(n.id)});return o.length>0?o:e}const os=({users:e,responsibleCandidateIds:t,onClick:s,responsible:o,role:n,status:i})=>{const{getOBPUrlApi:r}=fe(),l=u.useRef(null),d=u.useRef(null),c=u.useId(),[m,f]=u.useState("team"),{teams:g}=Po(),{users:h}=Mo(),x=u.useMemo(()=>{const N=((h==null?void 0:h.data)??[]).map(L=>Ut(L,r()));return Lo(N,t)},[h==null?void 0:h.data,r,t]),y=ft(n,i),j=()=>o?null:e.length>3&&a.jsx(Me,{position:"top",popoverArrow:!1,triggerWrapperClassName:"tm-inline-flex tm-items-center",trigger:a.jsx("div",{className:"tm-ml-[-8px] tm-flex tm-h-[32px] tm-w-[32px] tm-items-center tm-justify-center tm-rounded-full tm-border-2 tm-border-default tm-bg-surface-default",children:a.jsx(p.Text,{children:`+${e.length-3}`})}),children:a.jsx("div",{className:"tm-border-default tm-h-fit tm-w-fit tm-rounded-lg tm-bg-surface-default tm-p-8 tm-gap-8 tm-flex tm-flex-col",children:e==null?void 0:e.slice(3).map((N,L)=>a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8 ",children:[a.jsx(Fe,{imageUrl:N.image??"",alt:N.name},L),a.jsx(p.Text,{children:N.name})]},L))})}),b=()=>{if(o){const N=e.find(L=>L.id===o);return a.jsx("div",{children:y?a.jsx(p.Tooltip,{label:(N==null?void 0:N.name)??"",position:"top",children:a.jsx(Fe,{imageUrl:N==null?void 0:N.image,alt:N==null?void 0:N.name},o)}):a.jsx(ja,{trigger:a.jsx(Fe,{imageUrl:N==null?void 0:N.image,alt:N==null?void 0:N.name},o),user:N,showUser:!0})})}return(e==null?void 0:e.length)>0&&e.slice(0,3).map((N,L)=>a.jsx("div",{className:`${L===0?"":"tm-ml-[-8px]"}`,children:y?a.jsx(p.Tooltip,{label:N.name,position:"top",children:a.jsx(Fe,{imageUrl:N.image,alt:N.name})}):a.jsx(ja,{trigger:a.jsx(Fe,{imageUrl:N.image,alt:N.name}),user:N,showUser:!0})},N.id||L))},w=()=>{const N=[{id:"team",label:"Equipo"},{id:"responsible",label:"Responsable"}];return a.jsx("div",{className:"tm-flex tm-w-full tm-justify-center tm-gap-l tm-font-bold tm-text-texts-placeholder",children:N.map((L,O)=>a.jsx("button",{type:"button",className:`tm-w-full tm-border-texts-placeholder tm-text-center tm-text-[10px] ${m===L.id?"tm-text-primary-pastel":""} ${O===N.length-1?"tm-border-r-0":" tm-border-r-2"}`,onClick:()=>f(L.id),children:L.label},L.id))})},v=()=>a.jsxs("div",{className:"tm-border-cards tm-flex tm-max-h-[200px] tm-flex-col tm-gap-m tm-overflow-y-hidden tm-rounded-lg tm-bg-bg-card tm-p-2",style:{boxShadow:"0px 2px 16px 0px rgba(0, 0, 0, 0.25)"},children:[w(),a.jsx(Eo,{options:m==="team"?((g==null?void 0:g.data)??[]).map(N=>({id:N.id,name:N.name,image:""})):x,onselect:N=>{var C,F;(C=d.current)==null||C.close();const L=N,O=m==="team"?L.id:((F=L.tasksUser)==null?void 0:F.id)??L.id;s(O,m)}})]});return e.length===0?y?a.jsxs(a.Fragment,{children:[a.jsx("span",{ref:l,className:"tm-inline-flex tm-cursor-pointer tm-items-center",children:a.jsx(p.Icon,{name:ne.faUser,size:"xs",color:"current"})}),a.jsx(p.Popover,{ref:d,triggerRef:l,position:"bottom-left",offset:8,closeOnClick:!1,closeOnClickOutside:!0,closeOnEscape:!0,popoverArrow:!1,popupId:`assign-users-${c}`,children:v()})]}):a.jsx("span",{className:"tm-inline-flex tm-items-center",children:a.jsx(p.Icon,{name:ne.faUser,size:"xs",color:"current"})}):a.jsxs(a.Fragment,{children:[a.jsxs("span",{ref:l,className:"tm-flex tm-cursor-pointer tm-items-center",children:[b(),j()]}),y&&a.jsx(p.Popover,{ref:d,triggerRef:l,position:"bottom-left",offset:8,closeOnClick:!1,closeOnClickOutside:!0,closeOnEscape:!0,popoverArrow:!1,popupId:`assign-users-avatars-${c}`,children:v()})]})},Oo=[1,2,3,4,5],Tt={1:{title:"Muy fácil",color:"brand"},2:{title:"Fácil",color:"success"},3:{title:"Media",color:"warning"},4:{title:"Difícil",color:"danger"},5:{title:"Muy difícil",color:"danger"}};function wa(e){const t=Number(e);if(e==null||Number.isNaN(t)||!Number.isFinite(t))return 1;let s=Math.trunc(t);return s===0&&(s=1),s<1||s>5?1:s}const Wt=({difficulty:e,id:t,withLabel:s=!1,canEdit:o=!0})=>{const{updatingTask:n}=He(),i=u.useId().replace(/:/g,""),[r,l]=u.useState(null),{user:d}=ve(),[c,m]=u.useState(()=>wa(e));u.useEffect(()=>{m(wa(e))},[e]);const f={title:"Sin dato",color:"primary"},g=Tt[c]??f,h=g.title??"Sin dato",x=()=>{if(!r)return null;const j=({level:b,text:w,itemColor:v})=>a.jsxs("button",{type:"button",onClick:async()=>{l(null),await n({id:t,data:{nivel_dificultad:b},user:d==null?void 0:d.id}),m(b)},className:"tm-flex tm-items-center tm-gap-m tm-px-l tm-py-s hover:tm-bg-primary-light",children:[a.jsx(p.Icon,{name:ne.faRhombus,size:"xs",color:v}),a.jsx(p.Text,{type:"body",size:"sm",color:v,children:w})]});return Lt.createPortal(a.jsx("div",{onBlur:()=>{l(null)},id:`${i}-difficulty-options`,style:{top:`${r.y+5}px`,left:`${r.x+5}px`,zIndex:200},className:"tm-absolute tm-flex tm-h-fit tm-w-max tm-flex-col tm-gap-2 tm-rounded-xl tm-bg-bg-card tm-p-m tm-shadow-02","data-portal-host":!0,children:Oo.map(b=>a.jsx(j,{level:b,text:Tt[b].title,itemColor:Tt[b].color},b))}),document.body)},y=j=>{j.stopPropagation()};return o?a.jsxs("div",{className:"tm-relative",onClick:y,onPointerDown:y,children:[a.jsxs("label",{htmlFor:i,onBlur:()=>{l(null)},className:"tm-flex tm-cursor-pointer tm-items-center tm-gap-2 active:tm-opacity-50",children:[a.jsx(Me,{trigger:a.jsx(p.Icon,{name:ne.faRhombus,size:"sm",color:g.color}),children:a.jsx("div",{className:"tm-px-8 tm-py-4",children:a.jsx(p.Text,{color:g.color,children:`Dificultad: ${h}`})})}),s&&a.jsx(p.Text,{as:"span",color:g.color,children:h})]}),a.jsx("button",{id:i,type:"button",onClick:j=>{j.stopPropagation(),l(r?null:{x:j.clientX,y:j.clientY})},className:"tm-hidden"}),a.jsx(x,{})]}):a.jsxs("div",{className:"tm-relative tm-flex tm-items-center tm-gap-2",onClick:y,onPointerDown:y,children:[a.jsx(Me,{trigger:a.jsx(p.Icon,{name:ne.faRhombus,size:"sm",color:g.color}),children:a.jsx("div",{className:"tm-px-8 tm-py-4",children:a.jsx(p.Text,{color:g.color,children:`Dificultad: ${h}`})})}),s&&a.jsx(p.Text,{as:"span",color:g.color,className:"tm-text-lg tm-font-normal",children:h})]})},Qt=({priority:e,id:t,withLabel:s=!1,canEdit:o=!0})=>{const{updatingTask:n}=He(),i=u.useId().replace(/:/g,""),[r,l]=u.useState(null),{user:d}=ve(),[c,m]=u.useState(e);u.useEffect(()=>{m(e)},[e]);const f={0:{title:"Normal",color:"brand"},1:{title:"Baja",color:"success"},2:{title:"Media",color:"warning"},3:{title:"Alta",color:"danger"}},g={title:"Sin prioridad",color:"primary"},x=(()=>{const w=c;if(typeof w!="number"||!Number.isFinite(w))return g;const v=Math.trunc(w);return v<0||v>3?g:f[v]??g})(),y=x.title??"Sin prioridad",j=()=>{if(!r)return null;const w=({priorityTask:v,text:N,itemColor:L})=>a.jsxs("button",{type:"button",onClick:async()=>{l(null),await n({id:t,data:{prioridad:v},user:d==null?void 0:d.id}),m(v)},className:"tm-flex tm-items-center tm-gap-m tm-px-l tm-py-s hover:tm-bg-primary-light",children:[a.jsx(p.Icon,{name:ne.faFlag,size:"xs",color:L}),a.jsx(p.Text,{type:"body",size:"sm",color:L,children:N})]});return Lt.createPortal(a.jsx("div",{onBlur:()=>{l(null)},id:`${i}-options`,style:{top:`${r.y+5}px`,left:`${r.x+5}px`,zIndex:200},className:`tm-absolute tm-flex tm-h-fit tm-w-max tm-flex-col tm-gap-2 tm-rounded-xl tm-bg-bg-card tm-p-m
2
- tm-shadow-02`,"data-portal-host":!0,children:Object.values(f).map((v,N)=>a.jsx(w,{priorityTask:N,text:v.title,itemColor:v.color},N))}),document.body)},b=w=>{w.stopPropagation()};return o?a.jsxs("div",{className:"tm-relative",onClick:b,onPointerDown:b,children:[a.jsxs("label",{onBlur:()=>{l(null)},htmlFor:i,className:"tm-flex tm-cursor-pointer tm-items-center tm-gap-2 active:tm-opacity-50",children:[a.jsx(Me,{trigger:a.jsx(p.Icon,{name:ne.faFlag,size:"sm",color:x.color}),children:a.jsx("div",{className:"tm-px-8 tm-py-4",children:a.jsx(p.Text,{color:x.color,children:`Prioridad: ${y}`})})}),s&&a.jsx(p.Text,{as:"span",color:x.color,className:" tm-font-normal",children:y})]}),a.jsx("button",{id:i,type:"button",onClick:w=>{w.stopPropagation(),l(r?null:{x:w.clientX,y:w.clientY})},className:"tm-hidden"}),a.jsx(j,{})]}):a.jsxs("div",{className:"tm-relative tm-flex tm-items-center tm-gap-2",onClick:b,onPointerDown:b,children:[a.jsx(Me,{trigger:a.jsx(p.Icon,{name:ne.faFlag,size:"sm",color:x.color}),children:a.jsx("div",{className:"tm-px-8 tm-py-4",children:a.jsx(p.Text,{color:x.color,children:`Prioridad: ${y}`})})}),s&&a.jsx(p.Text,{as:"span",color:x.color,className:"tm-text-lg tm-font-normal",children:y})]})};function Bo(e,t){return((e==null?void 0:e.map(o=>{var n;return{id:o.id,nombre:o.motivo_imj??"",categoria:(n=o.categoria)==null?void 0:n.nombre}}).filter(o=>o.categoria===t))??[]).filter(o=>typeof o.id=="number"&&!Number.isNaN(o.id)&&o.nombre.length>0).map(o=>({id:o.id,nombre:o.nombre}))}function Ro(e){return e.map(t=>({id:t.id,label:t.nombre}))}const Ue={TO_SECOND:"task-move-first-to-second",TO_THIRD:"task-move-first-to-third",TO_FOURTH:"task-move-first-to-fourth"};function zo(e,t){const s=[];return e===0&&s.push({id:Ue.TO_SECOND,label:"Mover a trabajando",icon:Ee.faArrowRight}),e===1&&s.push({id:Ue.TO_SECOND,label:"Mover a completada",icon:Ee.faArrowRight},{id:Ue.TO_FOURTH,label:"Mover por hacer",icon:Ee.faArrowLeft}),t?s.push({id:Ue.TO_THIRD,label:"Eliminar atraso"}):s.push({id:Ue.TO_THIRD,label:"Agregar atraso"}),s}function qo(e){return e===0?{title:"Mover a trabajando"}:{title:"Mover a completada"}}function $o(){return{title:"Mover a por hacer"}}function va({copy:e,onMove:t}){return a.jsxs("div",{className:"tm-flex tm-h-fit tm-w-max tm-max-w-[280px] tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:[a.jsx("p",{className:"tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_medium",children:e.title}),a.jsx(p.Button,{type:"button",fullWidth:!0,size:"xs",color:"primary",onClick:t,children:"Mover"})]})}const Uo=({status:e,nameRequiredTask:t,statusRequiredTask:s,id:o,statusLateTask:n=null,projectID:i,atrasoId:r,categoria:l,disabled:d=!1})=>{const c=u.useRef(null),m=u.useRef(null),f=u.useRef(null),{startWorking:g,completeTask:h,startTask:x}=He(),y=u.useRef(!1),[j,b]=u.useState(!1),[w,v]=u.useState(null),[N,L]=u.useState("first"),O=t!==""&&s===2,[C,F]=u.useState(null),{atrasoReasons:E,isLoading:X,createAtraso:U,deleteAtraso:z}=ns({enabled:!0}),[M,K]=u.useState(null),I=u.useCallback(()=>{var A;(A=c.current)==null||A.close()},[]);u.useEffect(()=>{n&&L("third")},[n]),u.useEffect(()=>{if(!j)return;const A=()=>{I()};return window.addEventListener("scroll",A,!0),document.addEventListener("scroll",A,!0),()=>{window.removeEventListener("scroll",A,!0),document.removeEventListener("scroll",A,!0)}},[j,I]);const $=A=>{L(A),A==="second"?v(e===0?"Trabajando":"Completadas"):A==="fourth"&&v("Por hacer")},R=()=>{if(y!=null&&y.current)return a.jsx("div",{className:"tm-hover:bg-primary-light tm-flex tm-h-fit tm-w-max tm-translate-x-0 tm-items-center tm-gap-2 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:a.jsx("p",{className:"tm-font-regular tm-text-sm tm-font-normal tm-text-primary-pastel",children:"Moviendo..."})});const A=zo(e,r);return a.jsx("div",{className:"tm-flex tm-h-fit tm-w-max tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:a.jsx(p.ListBase,{variant:"default",list:{items:A},events:{onItemClick:H=>{switch(H.id){case Ue.TO_SECOND:$("second");break;case Ue.TO_THIRD:$("third");break;case Ue.TO_FOURTH:$("fourth");break}}}})})},V=()=>a.jsx(va,{copy:qo(e),onMove:()=>{y.current=!0,w==="Trabajando"?g({id:o}):w==="Por hacer"?x({id:o}):h({id:o,idAtraso:r}),I()}}),G=()=>{if(X)return a.jsx("div",{children:"Cargando motivos..."});const A=Bo(E,l==null?void 0:l.nombre),H=Ro(A);return A.length>0?a.jsxs("div",{className:"tm-flex tm-h-fit tm-w-[288px] tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:[!C&&!r?a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"tm-mb-[11px] tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_regular",children:"Atraso de tarea"}),a.jsx(p.Dropdown,{field:{placeholder:"Seleccione una opción"},items:{options:H,idName:"id"},values:{value:(M==null?void 0:M.id)??""},menuSearch:{searchable:!0,searchPlaceholder:"Buscar"},popover:{absolute:!1,closeOnClickOutside:!0,dropdownId:`task-atraso-motivo-${o}`,popoverZIndex:1200},events:{onValueChange:Y=>{const B=Number(Y);if(Number.isNaN(B))return;const P=A.find(W=>W.id===B);K({id:B,nombre:(P==null?void 0:P.nombre)??""})},onOptionSelect:Y=>{const B=Y.id;B==null||Number.isNaN(Number(B))||K({id:Number(B),nombre:String(Y.label??"")})}}})]}):a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_medium",children:"¿Estas seguro?"}),a.jsx("p",{className:"tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_medium",children:r?"Estás eliminando el atraso de la tarea seleccionada":`Esta tarea está atrasada debido a ${(C==null?void 0:C.nombre)??""}`})]}),a.jsxs("div",{className:"tm-my-[11px] tm-flex tm-justify-end tm-gap-3",children:[a.jsx(p.Button,{type:"button",size:"xs",color:"secondary",onClick:()=>{C?F(null):I()},children:C?"Regresar":"Cancelar"}),a.jsx(p.Button,{type:"button",size:"xs",color:"primary",onClick:()=>{F(M),r&&!C?z(r):C&&ee()},children:"Aceptar"})]})]}):a.jsx("div",{className:"tm-flex tm-h-fit tm-w-[288px] tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:"No hay motivos de atraso para ésta tarea"})},D=()=>a.jsx(va,{copy:$o(),onMove:()=>{y.current=!0,x({id:o}),I()}}),te=()=>{if(N==="first")return R();if(N==="second")return V();if(N==="third")return G();if(N==="fourth")return D()},ee=async()=>{if(M)try{await U({taskId:o,projectID:i,motivo:(M==null?void 0:M.id)??null}),I()}catch(A){console.error("Error al crear atraso:",A)}};return a.jsx(a.Fragment,{children:(O&&s===2||!t)&&a.jsxs(a.Fragment,{children:[a.jsx(p.Button,{ref:m,type:"button","aria-label":"Más opciones para mover la tarea",color:"secondary",pill:"pill",size:"xxs",icon:Ee.faEllipsis,disabled:d}),a.jsx(p.Popup,{ref:c,triggerRef:m,popupId:`task-move-menu-${o}`,position:"bottom-right",offset:1,closeOnClick:!1,closeOnClickOutside:!1,popoverArrow:!1,onOpen:()=>{b(!0),L("first")},onClose:()=>b(!1),children:a.jsx("div",{ref:f,className:`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),de=require("@tanstack/react-query"),p=require("@imj_media/ui"),u=require("react"),nt=require("axios"),Pe=require("qs"),ne=require("@fortawesome/pro-regular-svg-icons"),bn=require("echarts-for-react"),le=require("@fortawesome/pro-solid-svg-icons"),it=require("date-fns"),Rt=require("react-dom"),Ee=require("@fortawesome/free-solid-svg-icons"),zt=require("date-fns/locale"),Ce=require("react-hook-form"),oe=require("@xyflow/react"),Qe=require("zustand"),kt=require("moment"),We=require("@fortawesome/pro-duotone-svg-icons");require("@xyflow/react/dist/style.css");const yn=require("react-pick-color"),ua=e=>{const t={...e};return delete t.project,delete t["project.id"],t},jn=e=>{const t={};return Object.entries(e).forEach(([s,o])=>{if(s.includes(".")){const[n,i]=s.split("."),r=t[n]??{};t[n]=r,r[i]=o}else t[s]=o}),t},tt="assignment",qe="teamMemberIds",pa="todas",wn={label:"Asignación de tarea",type:"select",id:tt,options:[{id:"todas",name:"Todas"},{id:"asignadas",name:"Asignadas"},{id:"sin_asignar",name:"Sin asignar"}]};function vn(e){return{label:"Por integrante de equipo",type:"integrantes-multiselect",id:qe,options:e.map(t=>({id:t.id,name:t.name}))}}function qt(e){return e==="asignadas"||e==="sin_asignar"}function Ga(e){return Array.isArray(e)?e.map(t=>typeof t=="number"?t:Number(t)).filter(t=>Number.isFinite(t)&&t>0):[]}function $t(e){return e.length>0}function _n(e,t){if(!qt(t))return!0;const s=e!=null;return t==="asignadas"?s:!s}function Tn(e,t){return $t(t)?e==null?!1:t.includes(e):!0}function Nn(e,t){return qt(t)?e.filter(s=>_n(s.responsible,t)):e}function Cn(e,t){return $t(t)?e.filter(s=>Tn(s.responsible,t)):e}function fa(e,t,s){const o=e.filter(d=>d.id!==t);if(!s)return o;const n=[...o],i=t===qe?"owner.config":"dependency",r=n.findIndex(d=>d.id===i),l=r>=0?r+1:n.length;return n.splice(l,0,s),n}function Va(e,t,s=[]){if(!t)return e.filter(i=>i.id!==tt&&i.id!==qe);let o=fa(e,tt,wn);const n=s.length>0?vn(s):null;return o=fa(o,qe,n),o}function Wa(e){return qt(e.assignment)||$t(Ga(e.teamMemberIds))}function Qa(e,t){const s=Nn(e,t.assignment);return Cn(s,Ga(t.teamMemberIds))}function Ut(e){return{assignment:e==null?void 0:e.assignment,teamMemberIds:e==null?void 0:e.teamMemberIds}}function Ht(e,t){var s;return e!=null&&e.length?Wa(t)?e.flatMap(o=>o.tasks).length:((s=e[0])==null?void 0:s.total)??0:0}const Xa=u.createContext({}),Sn=({children:e})=>{const[t,s]=u.useState({}),[o,n]=u.useState({}),[i,r]=u.useState([]),[l,d]=u.useState(""),c=u.useRef(0),m=({name:w,value:j})=>{function x(y){return!isNaN(y)&&y!==null&&y!==""?parseFloat(y):null}n(y=>{const v={...y},N=i==null?void 0:i.find(D=>D.label.toLowerCase().replace(/ /g,"_")===w),B=(N==null?void 0:N.id)??w;if(Array.isArray(j))v[B]=j.map(D=>typeof D=="number"?D:Number(D)).filter(D=>Number.isFinite(D)&&D>0);else{const D=x(j);v[B]=D??j}return B==="owner.config"&&(v["project.id"]=null),v})},f=w=>({1:"Muy facil",2:"Facil",3:"Media",4:"Dificil",5:"Muy dificil"})[w],h=w=>{const j=jn(w);return j.difficulty!=null&&j.difficulty!==""&&(j.difficulty=f(Number(j.difficulty))),i.some(v=>v.id===tt)||delete j.assignment,i.some(v=>v.id===qe)||delete j[qe],j};u.useEffect(()=>{if(i.length===0){c.current=0;return}const w=i.map(x=>x.id==="owner.config"?[x.id,"yo_y_mis_equipos"]:x.id==="dependency"?[x.id,"ambas"]:x.id===tt?[x.id,pa]:x.id===qe?[x.id,[]]:[x.id,null]),j=c.current===0;j&&(c.current=i.length),n(x=>{const y={search:x==null?void 0:x.search,taskName:x==null?void 0:x.taskName};return w.forEach(([v,N])=>{y[v]=(x==null?void 0:x[v])!==void 0?x==null?void 0:x[v]:N}),j&&s(h(y)),y})},[i]);const g=()=>{const w=i.map(x=>x.id==="owner.config"?[x.id,"yo_y_mis_equipos"]:x.id==="dependency"?[x.id,"ambas"]:x.id===tt?[x.id,pa]:x.id===qe?[x.id,[]]:[x.id,null]),j=Object.fromEntries(w);n(j),s(h(j))},b=()=>{s(h(o))};return a.jsx(Xa.Provider,{value:{fields:i,filters:t,path:l,defineFields:r,updateFilters:m,cleanFilters:g,applyFilters:b,initialFilters:o,selectPath:d},children:e})},De=()=>u.useContext(Xa),Ya=u.createContext({}),En=({children:e,user:t,url:s,mode:o})=>{const n=o==="prod"?"https://services.imjmedia.com.mx":"https://devobp.imjmedia.com.mx",i=nt.create({baseURL:s,headers:{Authorization:`Bearer ${t.accessToken}`},paramsSerializer:d=>Pe.stringify(d,{encodeValuesOnly:!0})}),r=()=>n,l=d=>d==="undefined"||d===void 0?"":`${n}${d}`;return a.jsx(Ya.Provider,{value:{tasks_api:i,getOBPUrlApi:r,getImageOBP:l},children:e})},pe=()=>u.useContext(Ya),Ja=u.createContext({}),An=({children:e,user:t,url:s})=>{const o=nt.create({baseURL:s,headers:{Authorization:`Bearer ${t.accessToken}`},paramsSerializer:n=>Pe.stringify(n,{encodeValuesOnly:!0})});return a.jsx(Ja.Provider,{value:{user:t,tasks_api:o},children:e})},we=()=>u.useContext(Ja),je=e=>{const t=i=>Object.prototype.toString.call(i)==="[object Object]",s=i=>i&&typeof i=="object"&&("source"in i||"target"in i)&&!("attributes"in i),o=i=>i&&typeof i=="object"&&"position"in i&&typeof i.position=="object"&&("x"in i.position||"y"in i.position)&&!("attributes"in i),n=i=>i.attributes?{id:i.id,...i.attributes}:i;if(Array.isArray(e))return e.map(i=>je(i));if(t(e)){if(s(e)){const i={};for(const r in e)i[r]=je(e[r]);return i}if(o(e)){const i={};for(const r in e)i[r]=je(e[r]);return i}Array.isArray(e.data)?e=[...e.data]:t(e.data)?e=n({...e.data}):e.data===null?e=null:e=n(e);for(const i in e)e[i]=je(e[i]);return e}return e},ga=[{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"}]}],ha=[{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:[]}],Nt=(e,t,s)=>`${e} ${e===1?t:s}`;function In(e){const t=e??{pausas:0,atrasos:0,vencidos:0};if((t.pausas??0)===0&&(t.atrasos??0)===0&&(t.vencidos??0)===0)return[{label:"Sin alertas",color:"gray",variant:"sin-alertas"}];const s=[];return(t.atrasos??0)>0&&s.push({label:Nt(t.atrasos,"atrasada","atrasadas"),color:"danger",variant:"atrasos"}),(t.pausas??0)>0&&s.push({label:Nt(t.pausas,"pausada","pausadas"),color:"warning",variant:"pausas"}),(t.vencidos??0)>0&&s.push({label:Nt(t.vencidos,"vencida","vencidas"),color:"info",variant:"vencidos"}),s.slice(0,2)}const Pn=ne.faLightEmergencyOn,Dn={name:Pn},Fn=({tags:e})=>{const t=Array.isArray(e)?e:[];return a.jsx("div",{className:"tm-inline-flex tm-min-w-0 tm-max-w-full tm-flex-wrap tm-content-center tm-items-center tm-gap-1 tm-justify-center",children:t.map((s,o)=>a.jsx("div",{className:"tm-min-w-0 tm-max-w-full tm-flex-shrink-0",children:a.jsx(p.Tag,{label:s.label,color:s.color,stroke:!1,truncateLabel:!0,truncateTooltip:!0,infoIcon:s.variant==="atrasos"?Dn:void 0})},`${s.variant}-${s.label}-${o}`))})},Mn=(e,t=500)=>{const[s,o]=u.useState(e);return u.useEffect(()=>{const n=setTimeout(()=>{o(e)},t);return()=>{clearTimeout(n)}},[e,t]),s},kn=async e=>{const t=Pe.stringify({fields:["id","nombre"],sort:["nombre:asc"]},{encodeValuesOnly:!0}),s=await e.get(`/api/equipos?${t}`);return s.data?{data:je(s.data.data)}:{data:[]}},Za=()=>{const{tasks_api:e}=pe();return de.useQuery({queryKey:["teams"],queryFn:()=>kn(e),staleTime:1e3*60*60*24,select:s=>s.data.map(n=>({label:n.nombre,value:n.id}))})},Ln="/api/listado-progreso",On="/api/proyectos/listado-progreso";function Bn(e){return Pe.stringify(e,{encodeValuesOnly:!0,arrayFormat:"repeat"})}function Rn(e){var i,r,l;const t=Number(e.proyecto_id);if(!Number.isFinite(t)||t<=0||!Number.isInteger(t))throw new Error("listado-progreso: proyecto_id debe ser un entero positivo");const s=String(e.fase).trim().toLowerCase();if(s!=="preventa"&&s!=="venta")throw new Error('listado-progreso: fase debe ser "preventa" o "venta"');const o={proyecto_id:t,fase:s};(i=e.status)!=null&&i.length&&(o.status=e.status.map(d=>String(d).trim()).filter(Boolean)),(r=e.types_media)!=null&&r.length&&(o.types_media=e.types_media.map(d=>String(d).trim()).filter(Boolean)),(l=e.locations)!=null&&l.length&&(o.locations=e.locations.map(d=>String(d).trim()));const n=e.search!=null?String(e.search).trim():"";return n&&(o.search=n),e.blocked_only!==void 0&&(o.blocked_only=e.blocked_only===!0||e.blocked_only==="true"?"true":"false"),o}function xa(e){const t=Array.isArray(e.data)?e.data:[],s=e.grafico,o=e.graficos,n=Array.isArray(s)&&s.length>0?s:Array.isArray(o)?o:[];return{data:t,grafico:n}}async function ba(e,t,s){const{data:o}=await e.get(t,{params:s,paramsSerializer:Bn});return o??{}}async function zn(e,t){var o;const s=Rn(t);try{const n=await ba(e,Ln,s);return xa(n)}catch(n){if(nt.isAxiosError(n)&&((o=n.response)==null?void 0:o.status)===404){const i=await ba(e,On,s);return xa(i)}throw n}}function qn({proyectoId:e,fase:t,enabled:s,filters:o}){const{tasks_api:n}=pe(),i=s&&Number.isFinite(e)&&Number.isInteger(e)&&e>0;return de.useQuery({queryKey:["listado-progreso",e,t,o],queryFn:()=>zn(n,{proyecto_id:e,fase:t,...o}),enabled:i,staleTime:3e4})}const $n=({campaignName:e,searchValue:t,onSearchChange:s})=>a.jsx("div",{className:"tm-border-b tm-border-default tm-pb-6 tm-pt-6",children:a.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-3",children:[a.jsx("h3",{className:"tm-text-[21px] tm-font-semibold tm-leading-tight tm-text-gray-800",children:e||"-"}),a.jsx("div",{className:"tm-w-full sm:tm-w-[260px] md:tm-w-[300px]",children:a.jsx(p.Input,{size:"sm",fullWidth:!0,leftSlot:ne.faSearch,placeholder:"Buscar...",value:t,onValueChange:s,clearable:!0,onClear:()=>s("")})})]})});function Un(e,t){Array.isArray(e)&&t(e.map(String))}function ht({options:e,selected:t,onChange:s,emptyPlaceholder:o,header:n,tagsOverflowPopoverTitle:i,panelSearch:r,panelSearchPlaceholder:l="Buscar…",field:d,popover:c,showClearSelection:m=!1}){return a.jsx(p.Dropdown,{field:{placeholder:o,...d},items:{options:e},values:{value:t},events:{onValueChange:f=>Un(f,s)},multi:{multiple:!0,selectionSummary:"tags",tagsOverflow:"single-line",tagsOverflowPopoverTitle:i},popover:{fullWidth:!0,...c},list:{listVariant:"search-multi-checkbox",searchMultiCheckbox:{header:n,search:{show:r,placeholder:l},showClearSelection:m}},menuSearch:{searchable:!1}})}const Hn=({mediosOptions:e,plazasOptions:t,estadosOptions:s,selectedMedios:o,selectedPlazas:n,selectedEstados:i,onlyDelayed:r,onChangeMedios:l,onChangePlazas:d,onChangeEstados:c,onChangeOnlyDelayed:m})=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-2 tm-mt-5 tm-mb-5",children:a.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-3",children:[a.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-4 tm-flex-1",children:[a.jsx("div",{className:"tm-w-full sm:tm-w-[250px]",children:a.jsx(ht,{options:e,selected:o,onChange:l,emptyPlaceholder:"Todos los medios",header:{id:"listado-progreso-medios-all",label:"Todos los medios"},tagsOverflowPopoverTitle:"Medios seleccionados",panelSearch:!1})}),a.jsx("div",{className:"tm-w-full sm:tm-w-[250px]",children:a.jsx(ht,{options:t,selected:n,onChange:d,emptyPlaceholder:"Todas las plazas",header:{id:"listado-progreso-plazas-all",label:"Todas las plazas"},tagsOverflowPopoverTitle:"Plazas seleccionadas",panelSearch:!0,panelSearchPlaceholder:"Buscar…"})}),a.jsx("div",{className:"tm-w-full sm:tm-w-[250px]",children:a.jsx(ht,{options:s,selected:i,onChange:c,emptyPlaceholder:"Todos los estados",header:{id:"listado-progreso-estados-all",label:"Todos los estados"},tagsOverflowPopoverTitle:"Estados seleccionados",panelSearch:!1})})]}),a.jsx("div",{className:"tm-flex tm-items-center",children:a.jsx(p.Toggle,{label:"Solo atrasadas y vencidas",checked:r,onChange:m})})]})}),Kt=[{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"}],Kn=Object.fromEntries(Kt.map(e=>[e.singular,e])),ya=Kt.map(e=>e.serieApiName),Gn=new Set(["atrasada","vencida"]);function Gt(e){return Kn[e]}function Vn(e){var t;return(t=Gt(e.trim().toLowerCase()))==null?void 0:t.serieApiName}function es(e){return e?e.charAt(0).toUpperCase()+e.slice(1):""}function Wn(e){const t=Gt(e);return t?t.uiLabel:es(e)}function Qn(e,t){const s=(e??"").trim().toLowerCase();if(!s)return[{label:t,color:"gray"}];const o=Gt(s);return o?[{label:o.uiLabel,color:o.tagColor}]:[{label:es(s),color:"gray"}]}function Xn(e){var t,s;if(nt.isAxiosError(e)){const o=(t=e.response)==null?void 0:t.data;if(typeof o=="string"&&o.trim())return o;if(o&&typeof o=="object"&&"message"in o){const i=o.message;if(typeof i=="string")return i}const n=(s=e.response)==null?void 0:s.status;if(n)return`Error del servidor (${n}). Revisa logs del backend o el body de la respuesta.`}return e.message||"No se pudieron cargar los datos de progreso."}function Yn(e){if(!e||typeof e!="object")return null;const s=e.event;if(s&&typeof s=="object"){const o=s;if(typeof o.offsetX=="number"&&typeof o.offsetY=="number")return{x:o.offsetX,y:o.offsetY};const n=o.event;if(n&&typeof n.offsetX=="number"&&typeof n.offsetY=="number")return{x:n.offsetX,y:n.offsetY}}return null}function Jn(e){if(!e||typeof e!="object")return 0;const t=e.value;return typeof t=="number"?t:Array.isArray(t)&&typeof t[0]=="number"?t[0]:0}function Zn(e){return(Number.isFinite(e)?e:0).toFixed(0)}const eo=({id:e,listadoProgreso:t,phaseLabel:s,listadoForUi:o})=>{const{isPending:n,isError:i,error:r,isSuccess:l,data:d}=t,[c,m]=u.useState(null),f=o??d,h=u.useMemo(()=>{const j=(f==null?void 0:f.grafico)??[],x=B=>{var D,C;return((C=(D=j.find(M=>M.name===B))==null?void 0:D.data)==null?void 0:C[0])??0},y=Kt.map(B=>({key:B.serieApiName,label:B.chartLegendLabel,color:B.chartColorHex})),v=y.map(B=>B.label),N={legendLabel:{color:"#6C6E73",fontSize:12,fontWeight:"bold",padding:[0,0,0,20]}};return y.forEach((B,D)=>{N[`legendDot${D}`]={color:B.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:[s],axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6C6E73",fontWeight:"bold",fontSize:12}},legend:{data:v,orient:"horizontal",top:"0%",left:"center",itemGap:30,icon:"none",itemWidth:0,itemHeight:0,formatter:B=>{const D=y.findIndex(C=>C.label===B);return D===-1?B:`{legendLabel|${B}}{legendDot${D}|●}`},textStyle:{rich:N}},series:y.map(B=>({name:B.label,type:"bar",stack:"total",itemStyle:{color:B.color},barWidth:"50%",data:[x(B.key)]}))}},[f==null?void 0:f.grafico,s]),g=u.useCallback(j=>{const x=j;if(x.componentType!=="series")return;const y=Yn(j);if(!y)return;const v=Jn(j),N=typeof x.seriesName=="string"?x.seriesName:"";m({x:y.x,y:y.y,label:`${Zn(v)}% ${N}`})},[]),b=u.useCallback(()=>{m(null)},[]),w=u.useMemo(()=>({mouseover:g,mousemove:g,globalout:b}),[g,b]);return a.jsx(p.Accordion,{id:e,title:"Grafico de Tareas",subtitle:"Distribución de tareas por estatus",defaultOpen:!0,children:a.jsxs("div",{className:"tm-min-h-[140px] tm-w-full tm-border tm-rounded-3xl tm-border-default tm-px-2 tm-py-2 tm-bg-surface-default",children:[n&&a.jsx("h3",{className:"tm-flex tm-h-[140px] tm-items-center tm-justify-center tm-text-xl tm-font-medium tm-text-gray-500",children:"Cargando datos de progreso…"}),i&&r&&a.jsx("div",{className:"tm-flex tm-h-[140px] tm-items-center tm-justify-center tm-px-4 tm-text-center",children:a.jsx("span",{className:"tm-text-sm tm-font-medium tm-text-red-600",children:Xn(r)})}),l&&d&&a.jsxs("div",{className:"tm-relative tm-h-[140px] tm-w-full",children:[a.jsx(bn,{option:h,style:{height:"100%",width:"100%"},onEvents:w}),c&&a.jsx("div",{className:"tm-pointer-events-none tm-absolute tm-z-[10]",style:{left:c.x,top:c.y,width:1,height:1,transform:"translate(-50%, -50%)"},"aria-hidden":!0,children:a.jsx(p.InlineTooltip,{isVisible:!0,label:c.label,position:"top"})})]})]})})},Vt="-";function et(e){const t=String(e??"").trim();return t.length>0?t:null}function Xe(e){const t=String(e??"").trim();return t.length>0?t:Vt}function to(e){var i,r,l,d,c,m,f,h,g,b;if(!e)return;const t=(l=(r=(i=e.formats)==null?void 0:i.thumbnail)==null?void 0:r.url)==null?void 0:l.trim(),s=(m=(c=(d=e.formats)==null?void 0:d.small)==null?void 0:c.url)==null?void 0:m.trim(),o=(g=(h=(f=e.formats)==null?void 0:f.medium)==null?void 0:h.url)==null?void 0:g.trim(),n=(b=e.url)==null?void 0:b.trim();return t||s||o||n||void 0}function ao(e){if(!e)return!1;if(e.startsWith("data:")||e.startsWith("blob:"))return!0;try{const t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}function Wt(e,t){const s=(e.nombre??"").trim()||Vt,o=to(e.imagen??null);let n;if(o){const r=o.startsWith("http")||o.startsWith("data:")||o.startsWith("blob:")?o:t(o);ao(r)&&(n=r)}const i=s.slice(0,1);return{name:s,src:n,letter:i}}function so(e){return{tarea:Xe(e.tarea),categoria:Xe(e.categoria),nota:Xe(e.nota),clave:Xe(e.clave),tipo_medio:Xe(e.tipo_medio),ubicacion:Xe(e.ubicacion)}}function no(e){return Qn(e,Vt)}const ts=4,ja=ts-1,oo=120,ro=-8,wa=8;function io(e){return e.length<=ts?{visible:e,overflow:[]}:{visible:e.slice(0,ja),overflow:e.slice(ja)}}const lt="tm-h-8 tm-w-8 tm-min-h-[32px] tm-min-w-[32px] tm-max-h-[32px] tm-max-w-[32px] tm-shrink-0 tm-border tm-border-default",va="Sin responsable",as="bottom",ss="center",lo="tm-flex tm-max-w-xs tm-items-start tm-gap-2 tm-py-1",co="tm-text-sm tm-font-semibold tm-leading-snug tm-text-gray-900";function _a(e,t){return e<t-1?{marginRight:`${ro}px`}:void 0}function mo({person:e,getImageOBP:t}){const{src:s,letter:o}=Wt(e,t);return s?a.jsx(p.Avatar,{type:"people",src:s,size:"xxs",className:lt}):a.jsx(p.Avatar,{type:"letter",text:o,size:"xxs",className:lt})}function uo({person:e,getImageOBP:t}){const{name:s,src:o,letter:n}=Wt(e,t);return a.jsxs("div",{className:lo,children:[o?a.jsx(p.Avatar,{type:"people",src:o,size:"xxs",className:`tm-mt-0.5 ${lt}`}):a.jsx(p.Avatar,{type:"letter",text:n,size:"xxs",className:`tm-mt-0.5 ${lt}`}),a.jsx("span",{className:co,children:s})]})}function po({popupId:e,trigger:t,children:s,popupBodyClassName:o="tm-p-3"}){const n=u.useRef(null),i=u.useRef(null),r=u.useRef(null),l=u.useCallback(()=>{r.current!==null&&(window.clearTimeout(r.current),r.current=null)},[]),d=u.useCallback(()=>{var m;l(),(m=i.current)==null||m.open()},[l]),c=u.useCallback(()=>{l(),r.current=window.setTimeout(()=>{var m;(m=i.current)==null||m.close(),r.current=null},oo)},[l]);return u.useEffect(()=>()=>l(),[l]),a.jsxs("div",{className:"tm-relative tm-inline-flex tm-shrink-0",children:[a.jsx("span",{ref:n,className:"tm-inline-flex tm-cursor-default",onMouseEnter:d,onMouseLeave:c,children:t}),a.jsx(p.Popup,{ref:i,popupId:e,triggerRef:n,closeOnClick:!1,position:"bottom-center",children:a.jsx("div",{className:o,onMouseEnter:d,onMouseLeave:c,children:s})})]})}function fo(){return a.jsx(p.Tooltip,{label:va,position:as,alignment:ss,preserveLayout:!0,children:a.jsx("span",{className:"tm-inline-flex tm-shrink-0",role:"img","aria-label":va,children:a.jsx(p.Avatar,{type:"people",size:"xxs",className:lt,alt:""})})})}function go({person:e,getImageOBP:t}){const{name:s}=Wt(e,t);return a.jsx(p.Tooltip,{label:s,position:as,alignment:ss,preserveLayout:!0,children:a.jsx("span",{className:"tm-inline-flex tm-shrink-0",children:a.jsx(mo,{person:e,getImageOBP:t})})})}function ho({overflow:e,getImageOBP:t,popupId:s}){return a.jsx(po,{popupId:s,popupBodyClassName:"tm-max-h-64 tm-overflow-y-auto tm-p-3",trigger:a.jsxs("span",{className:"tm-inline-flex tm-h-8 tm-w-8 tm-min-h-[32px] tm-min-w-[32px] tm-max-h-[32px] tm-max-w-[32px] tm-cursor-default tm-items-center tm-justify-center tm-rounded-control-pill tm-border tm-border-default tm-bg-fill-brand tm-text-xs tm-font-normal tm-leading-none tm-tracking-[0.5px] tm-text-on-color",children:["+",e.length]}),children:e.map((o,n)=>a.jsx(uo,{person:o,getImageOBP:t},o.id!=null?`${o.id}-${n}`:n))})}const xo=({responsables:e,getImageOBP:t,rowId:s})=>{const o=Array.isArray(e)?e:[];if(o.length===0)return a.jsx("div",{className:"tm-flex tm-min-w-0 tm-items-center",style:{paddingRight:`${wa}px`},children:a.jsx(fo,{})});const{visible:n,overflow:i}=io(o),r=n.length+(i.length>0?1:0);return a.jsxs("div",{className:"tm-flex tm-min-w-0 tm-items-center",style:{paddingRight:`${wa}px`},children:[n.map((l,d)=>{const c=l.id!=null?`r-${l.id}-${d}`:`r-${s}-${d}`;return a.jsx("div",{className:"tm-shrink-0",style:_a(d,r),children:a.jsx(go,{person:l,getImageOBP:t})},c)}),i.length>0?a.jsx("div",{className:"tm-shrink-0",style:_a(r-1,r),children:a.jsx(ho,{overflow:i,getImageOBP:t,popupId:`listado-progreso-${s}-more`})}):null]})},bo={name:le.faCircleSmall};function yo({tags:e}){const t=Array.isArray(e)?e:[];return a.jsx("div",{className:"tm-inline-flex tm-min-w-0 tm-max-w-full tm-flex-wrap tm-content-start tm-items-center tm-gap-1",children:t.map((s,o)=>a.jsx("div",{className:"tm-min-w-0 tm-max-w-full tm-flex-shrink-0",children:a.jsx(p.Tag,{label:s.label,color:s.color,stroke:!1,truncateLabel:!0,truncateTooltip:!0,infoIcon:bo})},`${s.label}-${o}`))})}const jo=({listadoProgreso:e,listadoForUi:t,hideClaveColumn:s=!1})=>{var d,c;const{getImageOBP:o}=pe(),n=u.useMemo(()=>{const m=[{id:"responsables",header:"Responsable",accessor:f=>f.responsables,width:140,minWidth:100,sortable:!1,filterable:!1,resizable:!1,render:(f,h)=>a.jsx(xo,{responsables:h.responsables,getImageOBP:o,rowId:h.id})},{id:"tarea",header:"Tarea",accessor:"tarea",width:100,minWidth:90,sortable:!1,filterable:!1,resizable:!1},{id:"categoria",header:"Categoría",accessor:"categoria",width:110,minWidth:90,sortable:!1,filterable:!1,resizable:!1,contentAlign:"center"},{id:"estado",header:"Estado",accessor:f=>no(f.estado),contentAlign:"center",width:110,minWidth:90,sortable:!1,filterable:!1,resizable:!1,render:f=>a.jsx(yo,{tags:Array.isArray(f)?f:[]})},{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 s||m.splice(5,0,{id:"clave",header:"Código / Ruta",accessor:"clave",width:130,minWidth:100,sortable:!1,filterable:!1,resizable:!1,contentAlign:"center"}),m},[o,s]),i=u.useMemo(()=>{var f;const m=(t==null?void 0:t.data)??((f=e.data)==null?void 0:f.data);return Array.isArray(m)?m.map(h=>({...h,id:h.id,...so(h)})):[]},[t==null?void 0:t.data,(d=e.data)==null?void 0:d.data]),r=e.isPending||e.isFetching&&i.length===0&&!e.isError,l=u.useMemo(()=>{var h,g;const m=(h=e.data)==null?void 0:h.data,f=Array.isArray(m)?m.length:0;if(e.isError)return{type:"empty",icon:ne.faBan,title:"No se pudo cargar el listado",description:((g=e.error)==null?void 0:g.message)??"Revisa la conexión o vuelve a intentar."};if(e.isSuccess){if(f===0&&i.length===0)return{type:"empty",icon:ne.faBan,title:"Esta campaña aún no tiene tareas",description:"Cuando asignes tareas a medios, aparecerán aquí con su estado y responsables."};if(f>0&&i.length===0)return{type:"no-filters",icon:ne.faBan,title:"No hay nada aquí...",description:"No hay tareas que coincidan con los filtros seleccionados."}}return{type:"empty",icon:ne.faBan,title:"No hay nada aquí..."}},[e.isError,e.isSuccess,e.error,(c=e.data)==null?void 0:c.data,i.length]);return a.jsx(a.Fragment,{children:a.jsx("div",{className:"tm-flex tm-min-h-0 tm-flex-col tm-mt-2 tm-h-[455px] tm-border tm-rounded-3xl tm-border-default",children:a.jsx(p.Table,{columns:n,columnsLockable:!1,rows:i,loading:r,hoverable:!1,bordered:!1,borderable:!1,stickyHeader:!0,empty:l,resizable:!1,expandable:!1,striped:!1,stickyCheckbox:!1})})})},wo={preventa:"Preventa",venta:"Venta"},vo=({campaignName:e,phase:t,search:s,listado:o,filters:n})=>{const i=wo[t],r=t==="preventa";return a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-4",children:[a.jsx($n,{campaignName:e,searchValue:s.value,onSearchChange:s.onChange}),a.jsx(Hn,{mediosOptions:n.mediosOptions,plazasOptions:n.plazasOptions,estadosOptions:n.estadosOptions,selectedMedios:n.selectedMedios,selectedPlazas:n.selectedPlazas,selectedEstados:n.selectedEstados,onlyDelayed:n.onlyDelayed,onChangeMedios:n.onChangeMedios,onChangePlazas:n.onChangePlazas,onChangeEstados:n.onChangeEstados,onChangeOnlyDelayed:n.onChangeOnlyDelayed}),a.jsx(eo,{id:`progress-chart-${i}`,listadoProgreso:o.query,phaseLabel:i,listadoForUi:o.dataForUi}),a.jsx(jo,{listadoProgreso:o.query,listadoForUi:o.dataForUi,hideClaveColumn:r})]})};function _o(e){var i,r,l,d;const t=(i=e.types_media)==null?void 0:i.map(c=>c.trim()).filter(Boolean),s=(r=e.locations)==null?void 0:r.map(c=>c.trim()),o=(l=e.status)==null?void 0:l.map(c=>c.trim().toLowerCase()).filter(Boolean),n=((d=e.search)==null?void 0:d.trim().toLowerCase())||void 0;return{mediosSet:t&&t.length>0?new Set(t):void 0,locationsSet:s&&s.length>0?new Set(s):void 0,statusSet:o&&o.length>0?new Set(o):void 0,searchLower:n,onlyDelayed:e.onlyDelayed===!0}}function To(e,t){const{mediosSet:s,locationsSet:o,statusSet:n,searchLower:i,onlyDelayed:r}=t;if(s){const l=et(e.tipo_medio)??"";if(!s.has(l))return!1}if(o){const l=et(e.ubicacion)??"";if(!o.has(l))return!1}if(n){const l=(e.estado??"").trim().toLowerCase();if(!n.has(l))return!1}if(r){const l=(e.estado??"").trim().toLowerCase();if(!Gn.has(l))return!1}return!(i&&![(e.responsables??[]).flatMap(c=>[c.nombre??"",c.role??"",c.email??""]).join(" ").toLowerCase(),e.tarea??"",e.categoria??"",e.estado??"",e.nota??"",e.clave??"",e.tipo_medio??"",e.ubicacion??""].join(" ").toLowerCase().includes(i))}function No(e){const t=Object.fromEntries(ya.map(o=>[o,0]));for(const o of e){const n=Vn(o.estado??"");n&&(t[n]+=1)}const s=e.length;return ya.map(o=>({name:o,data:[s>0?t[o]/s*100:0]}))}function Co(e,t){const s=_o(t);if(!(s.mediosSet!==void 0||s.locationsSet!==void 0||s.statusSet!==void 0||s.searchLower!==void 0||s.onlyDelayed))return e;const n=e.data.filter(i=>To(i,s));return{data:n,grafico:No(n)}}const ns="__sin_ubicacion__";function os(e,t){return String(e.label).localeCompare(String(t.label),"es",{sensitivity:"base"})}function Ct(e,t,s){const o=new Map;return e.forEach(n=>{const i=t(n);!i||o.has(i)||o.set(i,{label:s?s(i):i,value:i})}),Array.from(o.values()).sort(os)}function So(e){return e.map(t=>t===ns?"":t)}function Eo(e){const t=Ct(e,r=>et(r.tipo_medio)),s=e.some(r=>et(r.ubicacion)===null),o=Ct(e,r=>et(r.ubicacion)),n=[...s?[{label:"Sin ubicación",value:ns}]:[],...o].sort(os),i=Ct(e,r=>{var l;return((l=et(r.estado))==null?void 0:l.toLowerCase())??null},r=>Wn(r));return{medios:t,plazas:n,estados:i}}const Ao=({isOpen:e,proyectoId:t,campaignName:s,onClose:o})=>{var R;const[r,l]=u.useState("preventa"),[d,c]=u.useState([]),[m,f]=u.useState([]),[h,g]=u.useState([]),[b,w]=u.useState(!1),[j,x]=u.useState(""),y=Mn(j,400),v=u.useMemo(()=>[{label:"Fase 1 (Preventa)",value:"preventa",leftSlot:ne.faHandHoldingHand},{label:"Fase 2 (Venta)",value:"venta",leftSlot:ne.faHandHoldingCircleDollar}],[]),N=()=>{c([]),f([]),g([]),w(!1)},B=()=>{l("preventa"),N(),x(""),o()},D=G=>{(G==="preventa"||G==="venta")&&(l(G),N(),x(""))},C=u.useMemo(()=>{const G=y.trim();if(G)return G.length>=2?G:void 0},[y,2]),M=qn({proyectoId:t,fase:r,enabled:e,filters:{}}),E=u.useMemo(()=>({types_media:d.length>0?d:void 0,locations:m.length>0?So(m):void 0,status:h.length>0?h:void 0,search:C,onlyDelayed:b}),[d,m,h,C,b]),{medios:X,plazas:U,estados:z}=u.useMemo(()=>{var V;const G=((V=M.data)==null?void 0:V.data)??[];return Eo(G)},[(R=M.data)==null?void 0:R.data]),k=u.useMemo(()=>{const G=M.data;return G?Co(G,E):null},[M.data,E]),K=u.useMemo(()=>({value:j,onChange:x}),[j]),F=u.useMemo(()=>({query:M,dataForUi:k}),[M,k]),$=u.useMemo(()=>({mediosOptions:X,plazasOptions:U,estadosOptions:z,selectedMedios:d,selectedPlazas:m,selectedEstados:h,onlyDelayed:b,onChangeMedios:c,onChangePlazas:f,onChangeEstados:g,onChangeOnlyDelayed:w}),[X,U,z,d,m,h,b]);return a.jsx(p.Modal,{isOpen:e,onClose:B,size:"xl",title:"Progreso",tabs:v,defaultValueTab:"preventa",onChangeTab:D,iconConfig:{icon:ne.faBullhorn},cancelButtonText:"Cerrar",showCancelButton:!0,closeAtCancel:!0,onCancel:B,showSuccessButton:!1,children:a.jsx("div",{className:"tm-bg-surface-default tm-p-16",children:a.jsx(p.Modal.Body,{children:a.jsx(vo,{campaignName:s,phase:r,search:K,listado:F,filters:$})})})})},Io=({setPath:e,setProject:t})=>{var $;const[s,o]=u.useState([]),[n,i]=u.useState(!0),[r,l]=u.useState(0),[d,c]=u.useState(10),[m,f]=u.useState(0),[h,g]=u.useState(!1),[b,w]=u.useState(""),[j,x]=u.useState(0),{filters:y,defineFields:v}=De(),{tasks_api:N,getImageOBP:B}=pe(),{user:D}=we(),C=u.useCallback(async(R,G)=>{var V,P,te;try{i(!0);const ee={filters:{search:(y==null?void 0:y.search)??"",responsable:{idUser:D.id,responsableType:(V=y==null?void 0:y.responsable)==null?void 0:V.responsableType},ejecutivo:(y==null?void 0:y.ejecutivo)??"",cancelada:{$eq:!1}}},A=await N.get("/api/listado_campanias",{params:{pagination:{page:R,pageSize:G},...ee}}),H=je(A==null?void 0:A.data);o(H),f((te=(P=A==null?void 0:A.data)==null?void 0:P.meta)==null?void 0:te.total)}catch(ee){console.error("Error fetching data en Lista Campaña:",ee)}finally{i(!1)}},[y==null?void 0:y.ejecutivo,($=y==null?void 0:y.responsable)==null?void 0:$.responsableType,y==null?void 0:y.search,N,D.id]),M=u.useCallback(async()=>{try{const R=await N.get("/api/obtener-comerciales");return[...ha].map(V=>(V.id==="ejecutivo"&&(V.options=R.data.map(P=>({id:P.nombre,name:P.nombre}))),V))}catch(R){return console.error("Error fetching salesman data:",R),[...ha]}},[N]);u.useEffect(()=>{(async()=>{const G=await M();v(G)})()},[v,M]),u.useEffect(()=>{const R=Math.floor(r/d)+1;C(R,d)},[r,d,y,C]);const E=R=>{l(R.first),c(R.rows)},X=Math.floor(r/d)+1,U=u.useMemo(()=>(D.role??"").trim().toLowerCase()==="project manager",[D.role]),z=u.useCallback(R=>{var G;w(((G=R.campania)==null?void 0:G.nombre)??R.nombre??""),x(Number(R.id)),g(!0)},[]),k=u.useMemo(()=>({label:"Ver progreso",leftSlot:ne.faEye,theme:"solid",color:"secondary",tooltip:"Ver progreso",onClick:R=>z(R)}),[z]),K=u.useMemo(()=>{const R=[{id:"nombre",header:"CAMPAÑA",accessor:G=>{var V;return((V=G.campania)==null?void 0:V.nombre)??G.nombre??"-"},width:200,sortable:!1,filterable:!1,resizable:!1},{id:"inicia",header:"FECHA INICIO",accessor:G=>{var V;return((V=G.campania)==null?void 0:V.inicia)??"-"},width:100,sortable:!1,filterable:!1,resizable:!1},{id:"termina",header:"FECHA FIN",accessor:G=>{var V;return((V=G.campania)==null?void 0:V.termina)??"-"},width:100,sortable:!1,filterable:!1,resizable:!1},{id:"responsable",header:"RESPONSABLE",type:"primary",accessor:G=>{var V,P;return((P=(V=G.campania)==null?void 0:V.responsable)==null?void 0:P.nombre)??"-"},width:150,sortable:!1,filterable:!1,resizable:!1,render:(G,V)=>{var Y,O,I,W,_;const P=(Y=V.campania)==null?void 0:Y.responsable,te=typeof G=="string"||typeof G=="number"?String(G):(P==null?void 0:P.nombre)??"-",ee=(P==null?void 0:P.role)??"-",A=((W=(I=(O=P==null?void 0:P.imagen)==null?void 0:O.formats)==null?void 0:I.thumbnail)==null?void 0:W.url)||((_=P==null?void 0:P.imagen)==null?void 0:_.url)||"",H=A?B(A):P==null?void 0:P.nombre;return{name:te,...H?{avatar:H}:{},...ee?{subtitle:ee}:{}}}},{id:"alertas",header:"ALERTAS",accessor:G=>In(G.alertas),width:200,minWidth:100,filterable:!1,sortable:!1,resizable:!1,contentAlign:"center",render:G=>a.jsx(Fn,{tags:Array.isArray(G)?G:[]})}];return U&&R.push({id:"acciones",header:"ACCIONES",type:"button",sortable:!1,filterable:!1,resizable:!1,accessor:()=>k,width:190,minWidth:160}),R},[B,U,k]),F=u.useMemo(()=>(s??[]).map(R=>({...R,id:R.id})),[s]);return a.jsxs("div",{className:"tm-h-full tm-max-h-[100%] tm-overflow-y-auto tm-scrollbar-none",children:[a.jsx(p.Table,{columns:K,columnsLockable:!1,rows:F,loading:n,hoverable:!0,resizable:!1,pagination:{enabled:!0,currentPage:X,pageSize:d,total:m,pageSizes:[5,10,15,20,25,50],onPageChange:R=>l((R-1)*d),onPageSizeChange:R=>E({first:0,rows:R})},onRowClick:R=>{t({id:R.id,project:R.nombre}),e("kanban-campania")},empty:{type:"empty",title:"No hay campañas disponibles"}}),a.jsx(Ao,{isOpen:h,proyectoId:j,campaignName:b,onClose:()=>g(!1)})]})},rs=u.createContext(null),Po=()=>u.useContext(rs);function Do(){document.dispatchEvent(new CustomEvent("close-all-dropdowns"))}const Fo=({children:e})=>{const t=u.useRef(null),s=u.useRef(null),o=()=>{var n;(n=s.current)==null||n.close()};return a.jsxs(a.Fragment,{children:[a.jsx(p.Button,{ref:t,leftSlot:ne.faFilter,color:"primary",theme:"solid",size:"sm",type:"button",children:"Filtrar"}),a.jsx(p.Popup,{ref:s,triggerRef:t,position:"bottom-right",offset:8,closeOnClickOutside:!0,closeOnEscape:!0,closeOnClick:!1,popoverArrow:!1,allowOverflow:!0,popupId:"tareas-filters-layout-popup",onClose:Do,children:a.jsx(rs.Provider,{value:o,children:e})})]})};function Mo(e,t=300,s={leading:!1,trailing:!0}){let o,n=null;return function(...i){const r=Date.now(),l=s.leading&&!n;clearTimeout(o),l&&e(...i),n=r,o=setTimeout(()=>{s.trailing&&(!s.leading||r-n>=t)&&(e(...i),n=null)},t)}}const is={fullWidth:!0,absolute:!1,closeOnClickOutside:!1,popoverZIndex:1300};function ls(e){return`filter-layout-${e}`}function cs(e){return e!=null&&e.length?e.map(t=>({id:String(t.id),label:t.name,value:String(t.id)})):[]}function ko(e){return Array.isArray(e)?e.map(String):[]}function Lo({field:e}){const{updateFilters:t,initialFilters:s}=De(),o=u.useMemo(()=>cs(e.options),[e.options]),n=s==null?void 0:s[e.id],i=n==null?"":String(n);return a.jsx(p.Dropdown,{field:{label:e.label,placeholder:"Selecciona una opción",size:"xs"},items:{options:o,idName:"id"},values:{value:i},menuSearch:{searchable:!0,searchPlaceholder:"Buscar…"},popover:{...is,dropdownId:ls(e.id)},events:{onValueChange:r=>{t({name:e.id,value:String(r)})}}})}function Oo({field:e}){const{updateFilters:t,initialFilters:s}=De(),o=u.useMemo(()=>cs(e.options),[e.options]),n=ko(s==null?void 0:s[e.id]);return a.jsx(ht,{options:o,selected:n,onChange:i=>t({name:e.id,value:i}),emptyPlaceholder:"Seleccionar…",header:{id:"kanban-integrantes-all",label:"Todos los integrantes"},tagsOverflowPopoverTitle:"Integrantes seleccionados",panelSearch:!1,panelSearchPlaceholder:"Buscar integrante…",field:{label:e.label,size:"xs"},showClearSelection:!0,popover:{...is,dropdownId:ls(qe)}})}const Bo=()=>{const{fields:e,updateFilters:t,cleanFilters:s,applyFilters:o,initialFilters:n}=De(),i=Po();return a.jsxs("div",{className:"tm-flex tm-min-w-[280px] tm-max-w-[400px] tm-flex-col tm-gap-8 tm-p-8",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-gap-2",children:[a.jsx("p",{className:"tm-m-0 tm-text-heading-h6 tm-font-heading-h6 tm-leading-heading-h6 tm-tracking-heading-h6 tm-text-primary",children:"Filtros"}),a.jsx(p.Button,{color:"secondary",size:"xxs",icon:ne.faXmark,type:"button",onClick:()=>{s(),i==null||i()},children:"Limpiar"})]}),a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-3",children:e==null?void 0:e.map(r=>a.jsx("div",{className:"tm-relative",style:{zIndex:10},children:r.type==="select"?a.jsx("div",{className:"tm-relative tm-z-[10] tm-w-full",children:a.jsx(Lo,{field:r})}):r.type==="integrantes-multiselect"?a.jsx("div",{className:"tm-relative tm-z-[10] tm-w-full",children:a.jsx(Oo,{field:r})}):a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"z-[1] tm-text-xl",children:r.label}),a.jsx("input",{className:"tm-h-[30px] tm-w-full tm-rounded-lg tm-p-s tm-shadow-input",type:r.type,value:(n==null?void 0:n[r==null?void 0:r.id])===null||(n==null?void 0:n[r==null?void 0:r.id])===void 0?"":String(n[r.id]),name:r.label.toLowerCase().replace(/ /g,"_"),onChange:Mo(l=>{var d,c;return t({name:(d=l==null?void 0:l.target)==null?void 0:d.name,value:(c=l==null?void 0:l.target)==null?void 0:c.value})},1e3)})]})},r.id))}),a.jsx(p.Button,{color:"primary",size:"xs",type:"button",fullWidth:!0,onClick:()=>{o(),i==null||i()},children:"Filtrar"})]})},Qt=e=>new Intl.DateTimeFormat("es-MX",{month:"long"}).format(e);function Ro(e){const t=["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],s=new Date(e).getDay();return t[s]}const Ta=e=>{const t=e?typeof e=="string"?it.parseISO(e):e:new Date,s=t.getDate(),o=Qt(t.getMonth()).slice(0,3),n=t.getFullYear().toString().slice(-2),i=Ro(t).slice(0,3);return`${i.charAt(0).toUpperCase()+i.slice(1)} ${s} ${o.charAt(0).toUpperCase()+o.slice(1)} ${n}`},Xt=(e,t)=>({...e,image:e.image?`${t}${e.image}`:""}),ct=e=>{var o,n,i,r;if(!e)return null;const t=(n=(o=e.responsable)==null?void 0:o.nombre)==null?void 0:n.trim();if(t)return t;const s=(r=(i=e.equipo)==null?void 0:i.nombre)==null?void 0:r.trim();return s||null};function xt(e,t){var s;if(e!=null&&e.length)for(const o of e)o!=null&&o.idUser&&t({idUser:o.idUser,node:o}),(s=o==null?void 0:o.miembros)!=null&&s.length&&xt(o.miembros,t)}function ds({idUser:e,node:t}){var o,n,i,r,l,d,c,m;const s=((r=(i=(n=(o=e.userOBP)==null?void 0:o.imagen)==null?void 0:n.formats)==null?void 0:i.thumbnail)==null?void 0:r.url)??((m=(c=(d=(l=t.userOBP)==null?void 0:l.imagen)==null?void 0:d.formats)==null?void 0:c.thumbnail)==null?void 0:m.url);if(!(s==null||s===""))return s}function ms({idUser:e,node:t}){var s,o;return((s=e.userOBP)==null?void 0:s.role)??((o=t.userOBP)==null?void 0:o.role)??{id:0,name:""}}const zo=()=>({large:{url:""},medium:{url:""},small:{url:""},thumbnail:{url:""}});function Ge(e){if(e==null||e==="")return null;if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;const t=new Date(e);return Number.isNaN(t.getTime())?null:t}function Na(e){if(e==null||typeof e!="object")return null;const t=e,s=t.id!=null?Number(t.id):NaN,o=t.nombre??"",n=t.email??"";return Number.isNaN(s)&&!o.trim()&&!n.trim()?null:{id:Number.isNaN(s)?0:s,nombre:o.trim()||"—",...n.trim()?{email:n.trim()}:{}}}function qo(e){if((e==null?void 0:e.id)==null)return{id:0,texto_corto:""};const t=e.responsable;let s;if(t===null)s=null;else if(t!=null&&typeof t=="object"){const l=t,d=(l.nombre??"").trim();s=d?{id:l.id!=null?Number(l.id):void 0,nombre:d}:null}let o;const n=e.equipo;if(n===null)o=null;else if(n!=null&&typeof n=="object"){const l=n,d=(l.nombre??"").trim();o=d?{id:l.id!=null?Number(l.id):void 0,nombre:d}:null}const i=e.estatus,r=i!=null&&i!==""&&Number.isFinite(Number(i))?Number(i):void 0;return{id:e.id,texto_corto:e.texto_corto??"",...r!==void 0?{estatus:r}:{},...s!==void 0?{responsable:s}:{},...o!==void 0?{equipo:o}:{}}}function us(e){var w;const t=e.responsable,s=t==null?void 0:t.userOBP,o=(t==null?void 0:t.imagen)??(s==null?void 0:s.imagen),n=t?{id:t.id,email:t.email??"",nombre:t.nombre??"",imagen:o??{formats:zo()}}:null,i=e.equipo,r=i?{id:i.id,nombre:i.nombre??"",miembros:[]}:{id:0,nombre:"",miembros:[]},l=e.id_t_requerida,d=qo(l),c=e.ids_t_dependientes,f=(Array.isArray(c)?c:c!=null&&typeof c=="object"&&Array.isArray(c.data)?c.data??[]:[]).map(j=>{const x=j==null?void 0:j.responsable,y=x==null?void 0:x.userOBP,N=(x==null?void 0:x.imagen)??(y==null?void 0:y.imagen)??(x==null?void 0:x.image);return x?{...j,responsable:{...x,image:N??x.image,imagen:N??x.imagen}}:j}),h=Array.isArray(e.comentarios)?e.comentarios:[],g=Na(e.created_by),b=Na(e.updated_by);return{descripcion:"",estatus:e.estatus!=null?String(e.estatus):"",comentarios:h,equipo:r,campania:((w=e.proyecto)==null?void 0:w.nombre)??"",nombre_medio:e.nombre_medio??"",ffin:Ge(e.ffin),finicio:Ge(e.finicio),f_inicio_estimada:Ge(e.f_inicio_estimada),f_fin_estimada:Ge(e.f_fin_estimada),fterminada:Ge(e.fterminada),createdAt:Ge(e.createdAt??e.created_at),updatedAt:Ge(e.updatedAt??e.updated_at),responsable:n,prioridad:e.prioridad!=null?String(e.prioridad):null,nivel_dificultad:e.nivel_dificultad,lista:e.lista??null,texto_corto:e.texto_corto??null,texto_largo:e.texto_largo??null,id_t_requerida:d,ids_t_dependientes:f,atraso:e.atraso??null,categoria:e.categoria??null,...g?{createdBy:g}:{},...b?{updatedBy:b}:{}}}class $o{static toCampaignTasks(t){var i,r,l,d,c,m,f,h,g,b,w,j,x,y,v;const s=ct(t==null?void 0:t.id_t_requerida),o=ct(t==null?void 0:t.tarea_padre),n=[];return t!=null&&t.responsable&&n.push({id:t.responsable.id,name:t.responsable.nombre,image:(c=(d=(l=(r=(i=t.responsable)==null?void 0:i.userOBP)==null?void 0:r.imagen)==null?void 0:l.formats)==null?void 0:d.thumbnail)==null?void 0:c.url,role:((m=t.responsable.userOBP)==null?void 0:m.role)||{id:0,name:""}}),(f=t==null?void 0:t.equipo)!=null&&f.miembros&&xt(t.equipo.miembros,N=>{n!=null&&n.find(B=>B.id===N.idUser.id)||n.push({id:N.idUser.id,name:N.idUser.nombre,image:ds(N),role:ms(N)})}),{paused:t==null?void 0:t.pausada,isPrincipalTask:(t==null?void 0:t.tarea_principal)??!1,orden:(t==null?void 0:t.orden)??null,id:(t==null?void 0:t.id)??null,task:(t==null?void 0:t.texto_corto)??null,status:(t==null?void 0:t.estatus)??null,difficulty:(t==null?void 0:t.nivel_dificultad)??null,priority:(t==null?void 0:t.prioridad)??0,endDate:new Date((t==null?void 0:t.ffin)??null),startDate:new Date((t==null?void 0:t.finicio)??null),users:n,repeatsToDo:(t==null?void 0:t.repeticiones)??null,repeats:(t==null?void 0:t.repeticiones_realizadas)??null,comments:((h=t==null?void 0:t.comentarios)==null?void 0:h.length)??null,willBePaused:t==null?void 0:t.es_pausable,nameProject:((g=t==null?void 0:t.proyecto)==null?void 0:g.nombre)??null,idProject:((b=t==null?void 0:t.proyecto)==null?void 0:b.id)??null,medioName:(t==null?void 0:t.nombre_medio)??null,statusRequiredTask:((w=t==null?void 0:t.id_t_requerida)==null?void 0:w.estatus)??null,nameRequiredTask:((j=t==null?void 0:t.id_t_requerida)==null?void 0:j.texto_corto)??null,nameRequiredTaskResponsible:s,name_father_required_task:((x=t==null?void 0:t.tarea_padre)==null?void 0:x.texto_corto)??null,name_father_required_task_responsible:o,responsible:((y=t==null?void 0:t.responsable)==null?void 0:y.id)??null,tasks:((v=t==null?void 0:t.tareas)==null?void 0:v.map(N=>({id:N.id,name:N.texto_corto,status:N.estatus})))??[],atraso:(t==null?void 0:t.atraso)??null,categoria:(t==null?void 0:t.categoria)??null,...(t==null?void 0:t.cambio_arte)&&{cambio_arte:t==null?void 0:t.cambio_arte},panelDataFromList:us(t)}}}class Uo{static toKanbanTasks(t){var i,r,l,d,c,m,f,h,g,b,w,j,x;const s=ct(t==null?void 0:t.id_t_requerida),o=ct(t==null?void 0:t.tarea_padre),n=[];return t!=null&&t.responsable&&n.push({id:t.responsable.id,name:t.responsable.nombre,image:(c=(d=(l=(r=(i=t.responsable)==null?void 0:i.userOBP)==null?void 0:r.imagen)==null?void 0:l.formats)==null?void 0:d.thumbnail)==null?void 0:c.url,role:((m=t.responsable.userOBP)==null?void 0:m.role)||{id:0,name:""}}),(f=t==null?void 0:t.equipo)!=null&&f.miembros&&xt(t.equipo.miembros,y=>{n!=null&&n.find(v=>v.id===y.idUser.id)||n.push({id:y.idUser.id,name:y.idUser.nombre,image:ds(y),role:ms(y)})}),{paused:t==null?void 0:t.pausada,repeats:t==null?void 0:t.repeticiones_realizadas,repeatsToDo:t==null?void 0:t.repeticiones,comments:0,nameProject:(h=t==null?void 0:t.proyecto)==null?void 0:h.nombre,idProject:(g=t==null?void 0:t.proyecto)==null?void 0:g.id,willBePaused:t.es_pausable,difficulty:t.nivel_dificultad,endDate:new Date(t.ffin),id:t.id,priority:t.prioridad??0,status:t.estatus,task:t.texto_corto,users:n,responsible:((b=t==null?void 0:t.responsable)==null?void 0:b.id)??null,name_father_required_task:((w=t==null?void 0:t.tarea_padre)==null?void 0:w.texto_corto)??null,name_father_required_task_responsible:o,statusRequiredTask:((j=t.id_t_requerida)==null?void 0:j.estatus)??null,nameRequiredTask:((x=t.id_t_requerida)==null?void 0:x.texto_corto)??null,nameRequiredTaskResponsible:s,medioName:(t==null?void 0:t.nombre_medio)??null,atraso:(t==null?void 0:t.atraso)??null,categoria:(t==null?void 0:t.categoria)??null,...(t==null?void 0:t.cambio_arte)&&{cambio_arte:t==null?void 0:t.cambio_arte},panelDataFromList:us(t)}}}function Ho(e){const t=(e??"").replace(/\/+$/,"");return/\/api\/tareas$/i.test(t)||/\/tareas$/i.test(t)?"listado-kanban-general":"/api/tareas/listado-kanban-general"}function Ko(e){var o,n,i,r;const t=e.owner,s={owner:{user:t.user,config:t.config,...t.role!=null&&t.role!==""?{role:t.role}:{},...Array.isArray(t.teamIds)&&t.teamIds.length>0?{teamIds:t.teamIds}:{}},cancelada:e.cancelada??!1};return e.taskName&&(s.taskName=e.taskName),e.difficulty&&(s.difficulty=e.difficulty),e.priority&&(s.priority=e.priority),e.dependency&&(s.dependency=e.dependency),e.status&&(s.status=e.status),e.taskType&&(s.taskType=e.taskType),((o=e.project)==null?void 0:o.id)!=null&&`${e.project.id}`.trim()!==""?s.project={id:e.project.id}:(n=e.project)!=null&&n.name&&(s.project={name:e.project.name}),((i=e.salesman)==null?void 0:i.id)!=null&&`${e.salesman.id}`.trim()!==""?s.salesman={id:e.salesman.id}:(r=e.salesman)!=null&&r.name&&(s.salesman={name:e.salesman.name}),e.pagination&&(s.pagination={page:e.pagination.page??1,pageSize:e.pagination.pageSize??30,...e.pagination.withCount!==void 0?{withCount:e.pagination.withCount}:{}}),e.includeAllTasks===!0&&(s.includeAllTasks=!0),s}async function ps({filters:e,tasks_api:t}){var f;const s={...e,cancelada:e.cancelada??!1},o=Ko(s),n=Ho(t.defaults.baseURL),r=(await t.post(n,{data:o})).data;if(!r||typeof r!="object")throw new Error("Respuesta inválida del listado kanban");const l=r.data;if(!Array.isArray(l))throw new Error("Se esperaba response.data como array (modo lista). Para splitByStatus el cliente debe usar otro consumidor.");const d=(f=r.meta)==null?void 0:f.pagination,c=typeof(d==null?void 0:d.total)=="number"?d.total:l.length;return{rows:l.map(h=>je(h)),total:c}}const bt=async({filters:e,tasks_api:t})=>{try{const s={assignment:e.assignment,teamMemberIds:e.teamMemberIds},{rows:o,total:n}=await ps({filters:e,tasks_api:t}),i=o.length,r=o.map(d=>Uo.toKanbanTasks(d));return{tasks:Qa(r,s),total:n,rawPageCount:i,clientSideFilterActive:Wa(s)}}catch(s){throw console.log({error:s}),`Error al obtener las tareas: ${s}`}},Go=500,Vo=100,Wo=async({filters:e,tasks_api:t,project:s})=>{const{status:o,pagination:n,...i}=e,r={...i,owner:e.owner,project:{id:s},cancelada:!1,includeAllTasks:!0},l=[];let d=0,c=1;const m=(n==null?void 0:n.pageSize)??Go;for(;;){const{rows:g,total:b}=await ps({filters:{...r,pagination:{page:c,pageSize:m,withCount:!0}},tasks_api:t});if(d=b,l.push(...g),g.length===0||l.length>=d||g.length<m||(c+=1,c>Vo))break}const f=l.map(g=>$o.toCampaignTasks(g)),h={assignment:e.assignment,teamMemberIds:e.teamMemberIds};return Qa(f,h)},Qo=["Project Manager","Administrador"];function fs(e){return e==null||e===""?!1:Qo.includes(e)}function at(e,t){return e==="todas"&&!fs(t)?"yo_y_mis_equipos":e!=null&&e!==""?e:"yo_y_mis_equipos"}function gs(e,t){return fs(t)?e.map(s=>s.id!=="owner.config"||s.options.some(n=>n.id==="todas")?s:{...s,options:[{id:"todas",name:"Todas las tareas"},...s.options]}):e}const hs=u.createContext({}),Xo=({children:e,project:t})=>{var x;const[s,o]=u.useState([]),[n,i]=u.useState(!1),[r,l]=u.useState([]),{tasks_api:d}=pe(),{filters:c}=De(),{user:m}=we(),[f,h]=u.useState({owner:{user:m.id,config:at((x=c==null?void 0:c.owner)==null?void 0:x.config,m.role)},project:{id:t}});u.useEffect(()=>{var y;if(Object.keys(c).length>0){const v={...c,owner:{user:m.id,config:at((y=c==null?void 0:c.owner)==null?void 0:y.config,m.role)},project:{id:t}};h(v)}},[c,m.id,m.role,t]);const g=de.useQuery({queryKey:["tasksProject",f,t],queryFn:()=>{var v;const y={...f,taskName:c==null?void 0:c.taskName,owner:{...f.owner,config:at(f.owner.config||((v=c==null?void 0:c.owner)==null?void 0:v.config),m.role)}};return Wo({filters:y,project:t,tasks_api:d})},refetchOnWindowFocus:!1}),b=y=>{o(v=>[...v,y])},w=y=>{l(v=>v.includes(y)?v.filter(N=>N!==y):[...v,y])},j=t??null;return a.jsx(hs.Provider,{value:{tasksProject:g,selectedTasks:s,projectID:j,openTasks:r,selectTask:b,filtersToSend:f,openTask:w,isRefetching:n,project:t,filters:c,setIsRefetching:i},children:e})},ot=()=>u.useContext(hs),xs=u.createContext(void 0),Ca=()=>({selectedTaskIds:[],baseColumn:null,isFullColumnSelected:!1});function bs({children:e,invalidateAfterBulkSuccess:t}){const[s,o]=u.useState(Ca),[n,i]=u.useState(null),[r,l]=u.useState(!1),{selectedTaskIds:d,baseColumn:c,isFullColumnSelected:m}=s,f=d.length>0,h=c!==null,g=u.useCallback(()=>{o(Ca()),i(null),l(!1)},[]),b=u.useCallback(()=>{o(y=>({...y,selectedTaskIds:[],isFullColumnSelected:!1}))},[]),w=u.useCallback((y,v)=>{v!=="Completadas"&&o(N=>{if(N.baseColumn&&N.baseColumn!==v)return N;const B=new Set(N.selectedTaskIds);return B.has(y)?(B.delete(y),{selectedTaskIds:[...B],baseColumn:N.baseColumn,isFullColumnSelected:!1}):(B.add(y),{selectedTaskIds:[...B],baseColumn:N.baseColumn??v,isFullColumnSelected:!1})})},[]),j=u.useCallback(async(y,v)=>{if(y!=="Completadas"){l(!0);try{const N=await v(),B=[...new Set(N)];o(D=>D.baseColumn&&D.baseColumn!==y?D:{selectedTaskIds:B,baseColumn:D.baseColumn??y,isFullColumnSelected:B.length>0})}finally{l(!1)}}},[]);u.useEffect(()=>{d.length===0&&c!==null&&g()},[d.length,c,g]);const x=u.useMemo(()=>({selectedTaskIds:d,baseColumn:c,isMultiSelectActive:f,isBulkSessionActive:h,isFullColumnSelected:m,pendingTargetStatus:n,isBulkLoading:r,invalidateAfterBulkSuccess:t,toggleTaskSelection:w,deselectAllSelectedTasks:b,exitBulkSelectionMode:g,selectEntireColumn:j,setPendingTargetStatus:i,setIsBulkLoading:l}),[d,c,f,h,m,n,r,t,w,b,g,j,i,l]);return a.jsx(xs.Provider,{value:x,children:e})}function Yt(){return u.useContext(xs)}const Yo=()=>a.jsxs("div",{className:"tm-flex tm-h-[150px] tm-w-full tm-animate-pulse tm-flex-col tm-gap-[50px] tm-rounded-md tm-bg-gray-200 tm-p-4",children:[a.jsxs("div",{className:"tm-flex tm-h-[30px] tm-gap-3",children:[a.jsx("div",{className:"tm-h-full tm-w-[30px] tm-min-w-[30px] tm-rounded-full tm-bg-gray-300"}),a.jsx("div",{className:"tm-h-full tm-w-full tm-bg-gray-300"}),a.jsx("div",{className:"tm-h-full tm-w-[30px] tm-min-w-[30px] tm-rounded-full tm-bg-gray-300"})]}),a.jsxs("div",{className:"tm-flex tm-h-[30px] tm-w-full tm-justify-between tm-gap-[50px]",children:[a.jsx("div",{className:"tm-h-[30px] tm-w-full tm-bg-gray-300"}),a.jsx("div",{className:"tm-h-[30px] tm-w-full tm-bg-gray-300"})]})]});class ys{static toAtrasoReasons(t){return{id:t.id,motivo_imj:t.motivo_imj,categoria:t.categoria??null}}}const Jo=async({tasks_api:e})=>{try{const t=await e.get("/api/motivos",{params:{populate:{categoria:{fields:["id","nombre","tipo"]}},filters:{tipo:{$eq:"atraso"}}}});return je(t.data).map(ys.toAtrasoReasons)}catch(t){throw console.log("Error al obtener los motivos de atraso",t),`Error al obtener los motivos de atraso: ${t}`}},js=({enabled:e=!1}={})=>{const{tasks_api:t}=pe(),{user:s}=we(),o=de.useQueryClient(),{filters:n,path:i}=De(),{data:r,isLoading:l}=de.useQuery({queryKey:["atraso_reasons"],queryFn:()=>Jo({tasks_api:t}),staleTime:1e3*60*60*24,enabled:e}),d=async()=>{const y=await t.get("/api/motivos",{params:{filters:{tipo:{$eq:"atraso"}}}});return je(y.data).map(ys.toAtrasoReasons)},c=async({taskId:y,motivoId:v,projectID:N})=>{try{return(await t.post("/api/atrasos",{data:{inicio:new Date,fin:null,motivo:v,proyecto:N,tarea:y,creada_por:s==null?void 0:s.id}})).data}catch(B){console.log("error",B)}},m=async y=>{try{return(await t.delete(`/api/atrasos/${y}`)).data}catch(v){console.log("error",v)}},f=async y=>{try{return(await t.put(`/api/atrasos/${y}`,{data:{fin:new Date}})).data}catch(v){console.log("error",v)}},h=async({taskId:y,projectID:v,motivo:N})=>{await w({taskId:y,motivoId:N,projectID:v})},g=async y=>{await j(y)},b=async y=>{await x(y)},{mutateAsync:w}=de.useMutation({mutationFn:c,onSuccess:()=>{p.messageService.success("Atraso registrado correctamente"),i==="kanban-general"&&(o.invalidateQueries({queryKey:["to_do_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),i==="kanban-campania"&&o.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{p.messageService.error("Error al registrar el atraso")}}),{mutateAsync:j}=de.useMutation({mutationFn:m,onSuccess:()=>{p.messageService.success("Atraso eliminado correctamente"),i==="kanban-general"&&(o.invalidateQueries({queryKey:["to_do_tasks"]}),o.invalidateQueries({queryKey:["working_tasks"]}),o.invalidateQueries({queryKey:["done_tasks"]})),i==="kanban-campania"&&o.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{p.messageService.error("Error al eliminar el atraso")}}),{mutateAsync:x}=de.useMutation({mutationFn:f,onSuccess:()=>{p.messageService.success("Atraso finalizado correctamente")},onError:()=>{p.messageService.error("Error al finalizar el atraso")}});return{atrasoReasons:r,isLoading:l,createAtraso:h,getAtrasoReasons:d,deleteAtraso:g,finalizarAtraso:b}},Ke=()=>{const{tasks_api:e}=pe(),{user:t}=we(),{filters:s,path:o}=De(),n=de.useQueryClient(),{projectID:i}=ot(),{finalizarAtraso:r}=js({enabled:!1}),l=async({id:z})=>(await e.put(`/api/tareas/${z}`,{data:{estatus:1,responsable:t==null?void 0:t.id,updated_by:t==null?void 0:t.id}})).data,d=async({id:z})=>(await e.put(`/api/tareas/${z}`,{data:{estatus:0,responsable:t==null?void 0:t.id,updated_by:t==null?void 0:t.id}})).data,c=async({id:z,idAtraso:k})=>{const K=await e.post("/api/terminarTarea",{id_task:z,ended_at:new Date().toISOString(),id_user:t==null?void 0:t.id});return await r(k),K.data},m=async({id:z,repeats:k})=>(await e.put(`/api/tareas/${z}`,{data:{repeticiones_realizadas:k,updated_by:t==null?void 0:t.id}})).data,f=async({id:z,motiveId:k})=>{try{const K=await e.post("/api/pausarTarea",{taskId:z,userId:t==null?void 0:t.id,motivoId:k});return p.messageService.success("Tarea pausada correctamente"),K.data}catch(K){p.messageService.error(`Error al pausar la tarea: ${K}`)}},h=async({id:z})=>{try{const k=await e.post("/api/reanudarTarea",{taskId:z});return p.messageService.success("Tarea reanudada correctamente"),k.data}catch(k){p.messageService.error(`Error al reanudar la tarea: ${k}`)}},g=async({id:z,idNewResponsible:k,typeOfSelect:K})=>{let F={updated_by:t==null?void 0:t.id};return K==="responsible"&&(F={...F,responsable:k}),K==="team"&&(F={...F,responsable:null,equipo:k}),(await e.put(`/api/tareas/${z}`,{data:F})).data},b=async({id:z,data:k,user:K})=>{try{return(await e.put(`/api/tareas/${z}`,{data:{...k,updated_by:K==null?void 0:K.id}})).data}catch(F){console.error("Error updating the element:",F)}},w=async({id:z})=>{await y({id:z})},j=async({id:z,data:k,user:K})=>{await x({id:z,data:k,user:K})},{mutateAsync:x}=de.useMutation({mutationFn:b,onSuccess:()=>{p.messageService.success("Tarea actualizada correctamente");const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(n.invalidateQueries({queryKey:[z[o],s]}),n.invalidateQueries({queryKey:["done_tasks",s]}),n.invalidateQueries({queryKey:["working_tasks",s]})),o==="kanban-campania"&&(n.invalidateQueries({queryKey:["tasksProject"]}),n.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(k){console.error("Error invalidating queries:",k)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await n.cancelQueries({queryKey:["working_tasks"]})}}),{mutateAsync:y}=de.useMutation({mutationFn:l,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(n.invalidateQueries({queryKey:[z[o],s]}),n.invalidateQueries({queryKey:["working_tasks",s]})),o==="kanban-campania"&&(n.invalidateQueries({queryKey:["tasksProject"]}),n.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(k){console.error("Error updating the element:",k)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await n.cancelQueries({queryKey:["working_tasks"]}),await n.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:v}=de.useMutation({mutationFn:c,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{n.setQueryData([z[o],s],k=>{console.log({oldData:k})}),o==="kanban-general"&&(n.invalidateQueries({queryKey:[z[o],s]}),n.invalidateQueries({queryKey:["done_tasks",s]}),n.invalidateQueries({queryKey:["working_tasks",s]})),o==="kanban-campania"&&(n.invalidateQueries({queryKey:["tasksProject"]}),n.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(k){console.error("Error invalidating queries:",k)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await n.cancelQueries({queryKey:["working_tasks"]}),await n.cancelQueries({queryKey:["done_tasks"]}),await n.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:N}=de.useMutation({mutationFn:m,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(n.invalidateQueries({queryKey:[z[o],s]}),n.invalidateQueries({queryKey:["done_tasks",s]}),n.invalidateQueries({queryKey:["working_tasks",s]})),o==="kanban-campania"&&(n.invalidateQueries({queryKey:["tasksProject"]}),n.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(k){console.error("Error invalidating queries:",k)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await n.cancelQueries({queryKey:["working_tasks"]}),await n.cancelQueries({queryKey:["done_tasks"]}),await n.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:B}=de.useMutation({mutationFn:g,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(n.invalidateQueries({queryKey:[z[o],s]}),n.invalidateQueries({queryKey:["done_tasks",s]}),n.invalidateQueries({queryKey:["working_tasks",s]})),o==="kanban-campania"&&(n.invalidateQueries({queryKey:["tasksProject"]}),n.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(k){console.error("Error invalidating queries:",k)}},onError:z=>{console.error("Failed to reassign the task.",z)},onMutate:async()=>{await n.cancelQueries({queryKey:["working_tasks"]}),await n.cancelQueries({queryKey:["done_tasks"]}),await n.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:D}=de.useMutation({mutationFn:d,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(n.invalidateQueries({queryKey:[z[o],s]}),n.invalidateQueries({queryKey:["working_tasks",s]})),o==="kanban-campania"&&(n.invalidateQueries({queryKey:["tasksProject"]}),n.invalidateQueries({queryKey:["tasksProject",s,i]}))}catch(k){console.error("Error updating the element:",k)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await n.cancelQueries({queryKey:["working_tasks"]}),await n.cancelQueries({queryKey:["to_do_tasks"]})}});return{updatingTask:j,updateTask:b,startTask:async({id:z})=>{await D({id:z})},startWorking:w,completeTask:async({id:z,idAtraso:k})=>{await v({id:z,idAtraso:k})},reasignResponsible:async({id:z,idNewResponsible:k,typeOfSelect:K})=>{await B({id:z,idNewResponsible:k,typeOfSelect:K})},updateUnitys:async({repeats:z,id:k})=>{await N({repeats:z,id:k})},pauseTask:async({id:z,motiveId:k})=>{console.log({taksId:z,motivoId:k,user:t==null?void 0:t.id})},postPauseTask:f,postReanudeTask:h}},Zo="Project Manager";function yt(e,t){return e===Zo?!0:Number.isFinite(t)?t===0:!1}function ke({trigger:e,children:t,enabled:s=!0,position:o="top",offset:n=8,closeOnClick:i=!1,popoverArrow:r="auto",className:l="tm-inline-flex tm-max-w-full",triggerWrapperClassName:d="tm-inline-flex tm-max-w-full"}){const c=u.useRef(null);return s?a.jsxs("span",{className:l,children:[a.jsx("span",{ref:c,className:d,children:e}),a.jsx(p.Popover,{triggerRef:c,openOnHover:!0,position:o,offset:n,closeOnClick:i,popoverArrow:r,children:t})]}):a.jsx(a.Fragment,{children:e})}const Me=({imageUrl:e="https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png",alt:t="avatar",size:s="s"})=>{const o={xs:"tm-w-[24px] tm-h-[24px] tm-min-w-[24px] tm-min-h-[24px]",s:"tm-w-[28px] tm-h-[28px] tm-min-w-[28px] tm-min-h-[28px]",m:"tm-w-[32px] tm-h-[32px] tm-min-w-[32px] tm-min-h-[32px]",l:"tm-w-[36px] tm-h-[36px] tm-min-w-[36px] tm-min-h-[36px]",xl:"tm-w-[40px] tm-h-[40px] tm-min-w-[40px] tm-min-h-[40px]",xxl:"tm-w-[44px] tm-h-[44px] tm-min-w-[44px] tm-min-h-[44px]"}[s];return a.jsx("img",{src:e===""?"https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png":e,alt:t??"avatar",className:`${o} tm-bg-surface-default tm-rounded-full tm-border-2 tm-border-default`})},Sa=({trigger:e,user:t,showUser:s=!0})=>a.jsx(ke,{trigger:e,enabled:s,children:a.jsxs("div",{className:"tm-flex tm-h-fit tm-w-fit tm-items-center tm-gap-2 tm-bg-bg-card tm-p-2",children:[a.jsx(Me,{imageUrl:t.image??"",alt:t.name}),a.jsx("p",{className:"tm-text-sm tm-font-bold tm-text-texts-subtext",children:t.name})]})}),er=({options:e,onselect:t})=>{const[s,o]=u.useState(""),n=[...e].filter(i=>i.name.toLowerCase().includes(s.toLowerCase()));return a.jsxs("div",{className:"tm-h-fit tm-w-full tm-min-w-max",children:[a.jsx(p.Input,{size:"sm",fullWidth:!0,leftSlot:ne.faSearch,placeholder:"Buscar",value:s,onValueChange:o}),a.jsx("div",{className:"tm-border-cards tm-flex tm-max-h-[120px] tm-min-w-max tm-flex-col tm-gap-s tm-overflow-y-auto tm-rounded-lg tm-bg-bg-card tm-p-2 tm-mt-2",children:n.map(i=>a.jsxs("button",{type:"button",onClick:()=>{t(i)},className:"tm-flex tm-min-w-full tm-max-w-[200px] tm-cursor-pointer tm-items-center tm-gap-s hover:tm-bg-primary-light",children:[i.image&&a.jsx(Me,{imageUrl:i.image,alt:i.name}),a.jsx("p",{className:"tm-min-w-0 tm-text-left tm-text-[14px] tm-truncate tm-py-m tm-font-normal tm-text-texts-subtext",children:i.name})]},i.id??i.name))})]})};class tr{static toDomain(t){return{id:t.id,name:t.nombre,color:t.color}}}const ar=()=>{const{tasks_api:e}=pe();return{teams:de.useQuery({queryKey:["teams","all"],queryFn:async()=>{const s=await e.get("/api/equipos");return je(s.data).map(tr.toDomain)},refetchOnWindowFocus:!1})}};class Jt{static toUsers(t){var s,o,n;return{id:t.id,name:t.nombre,image:(n=(o=(s=t.imagen)==null?void 0:s.formats)==null?void 0:o.thumbnail)==null?void 0:n.url,tasksUser:{email:t.tasksUser.email,id:t.tasksUser.id,nombre:t.tasksUser.nombre},role:t.role}}static toUsersV2(t){var s,o,n;return{id:t.id,name:t.nombre,image:(n=(o=(s=t.imagen)==null?void 0:s.formats)==null?void 0:o.thumbnail)==null?void 0:n.url,role:t.role}}static toUsersWithIndex(t){var o,n,i;const s={};for(const r of t)s[r.email]={...r,image:(i=(n=(o=r.imagen)==null?void 0:o.formats)==null?void 0:n.thumbnail)==null?void 0:i.url};return s}}const sr=async({tasks_api:e})=>{try{const t=await e.get("/api/getAllOBPusersMembers");return je(t.data).map(Jt.toUsers)}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},nr=async({tasks_api:e})=>{try{const t={filters:{$and:[{role:{name:{$in:["Project Manager","Operation Manager","Administrador"]}}},{blocked:{$eq:!1}}]}},s=Pe.stringify(t,{encodeValuesOnly:!0}),o=await e.get(`/api/users?${s}`),i=je(o.data).map(d=>d.email),r=await e.get(`/api/getAllOBPusers?filters[name][$in]=${i}`);return je(r.data).map(Jt.toUsersV2)}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},or=async({users:e})=>{try{const t=je(e);return Jt.toUsersWithIndex(t)}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},rr=()=>{const{tasks_api:e}=pe();return{users:de.useQuery({queryKey:["users"],queryFn:()=>sr({tasks_api:e}),staleTime:1e3*60*60*24})}},ir=()=>{const{tasks_api:e}=pe();return{users:de.useQuery({queryKey:["allUsers"],queryFn:()=>nr({tasks_api:e}),staleTime:1e3*60*60*24})}};function lr(e,t){if(!(t!=null&&t.length))return e;const s=new Set(t),o=e.filter(n=>{var i;return((i=n.tasksUser)==null?void 0:i.id)!=null&&s.has(n.tasksUser.id)||n.id!=null&&s.has(n.id)});return o.length>0?o:e}const ws=({users:e,responsibleCandidateIds:t,onClick:s,responsible:o,role:n,status:i})=>{const{getOBPUrlApi:r}=pe(),l=u.useRef(null),d=u.useRef(null),c=u.useId(),[m,f]=u.useState("team"),{teams:h}=ar(),{users:g}=rr(),b=u.useMemo(()=>{const N=((g==null?void 0:g.data)??[]).map(B=>Xt(B,r()));return lr(N,t)},[g==null?void 0:g.data,r,t]),w=yt(n,i),j=()=>o?null:e.length>3&&a.jsx(ke,{position:"top",popoverArrow:!1,triggerWrapperClassName:"tm-inline-flex tm-items-center",trigger:a.jsx("div",{className:"tm-ml-[-8px] tm-flex tm-h-[32px] tm-w-[32px] tm-items-center tm-justify-center tm-rounded-full tm-border-2 tm-border-default tm-bg-surface-default",children:a.jsx(p.Text,{children:`+${e.length-3}`})}),children:a.jsx("div",{className:"tm-border-default tm-h-fit tm-w-fit tm-rounded-lg tm-bg-surface-default tm-p-8 tm-gap-8 tm-flex tm-flex-col",children:e==null?void 0:e.slice(3).map((N,B)=>a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8 ",children:[a.jsx(Me,{imageUrl:N.image??"",alt:N.name},B),a.jsx(p.Text,{children:N.name})]},B))})}),x=()=>{if(o){const N=e.find(B=>B.id===o);return a.jsx("div",{children:w?a.jsx(p.Tooltip,{label:(N==null?void 0:N.name)??"",position:"top",children:a.jsx(Me,{imageUrl:N==null?void 0:N.image,alt:N==null?void 0:N.name},o)}):a.jsx(Sa,{trigger:a.jsx(Me,{imageUrl:N==null?void 0:N.image,alt:N==null?void 0:N.name},o),user:N,showUser:!0})})}return(e==null?void 0:e.length)>0&&e.slice(0,3).map((N,B)=>a.jsx("div",{className:`${B===0?"":"tm-ml-[-8px]"}`,children:w?a.jsx(p.Tooltip,{label:N.name,position:"top",children:a.jsx(Me,{imageUrl:N.image,alt:N.name})}):a.jsx(Sa,{trigger:a.jsx(Me,{imageUrl:N.image,alt:N.name}),user:N,showUser:!0})},N.id||B))},y=()=>{const N=[{id:"team",label:"Equipo"},{id:"responsible",label:"Responsable"}];return a.jsx("div",{className:"tm-flex tm-w-full tm-justify-center tm-gap-l tm-font-bold tm-text-texts-placeholder",children:N.map((B,D)=>a.jsx("button",{type:"button",className:`tm-w-full tm-border-texts-placeholder tm-text-center tm-text-[10px] ${m===B.id?"tm-text-primary-pastel":""} ${D===N.length-1?"tm-border-r-0":" tm-border-r-2"}`,onClick:()=>f(B.id),children:B.label},B.id))})},v=()=>a.jsxs("div",{className:"tm-border-cards tm-flex tm-max-h-[200px] tm-flex-col tm-gap-m tm-overflow-y-hidden tm-rounded-lg tm-bg-bg-card tm-p-2",style:{boxShadow:"0px 2px 16px 0px rgba(0, 0, 0, 0.25)"},children:[y(),a.jsx(er,{options:m==="team"?((h==null?void 0:h.data)??[]).map(N=>({id:N.id,name:N.name,image:""})):b,onselect:N=>{var C,M;(C=d.current)==null||C.close();const B=N,D=m==="team"?B.id:((M=B.tasksUser)==null?void 0:M.id)??B.id;s(D,m)}})]});return e.length===0?w?a.jsxs(a.Fragment,{children:[a.jsx("span",{ref:l,className:"tm-inline-flex tm-cursor-pointer tm-items-center",children:a.jsx(p.Icon,{name:ne.faUser,size:"xs",color:"current"})}),a.jsx(p.Popover,{ref:d,triggerRef:l,position:"bottom-left",offset:8,closeOnClick:!1,closeOnClickOutside:!0,closeOnEscape:!0,popoverArrow:!1,popupId:`assign-users-${c}`,children:v()})]}):a.jsx("span",{className:"tm-inline-flex tm-items-center",children:a.jsx(p.Icon,{name:ne.faUser,size:"xs",color:"current"})}):a.jsxs(a.Fragment,{children:[a.jsxs("span",{ref:l,className:"tm-flex tm-cursor-pointer tm-items-center",children:[x(),j()]}),w&&a.jsx(p.Popover,{ref:d,triggerRef:l,position:"bottom-left",offset:8,closeOnClick:!1,closeOnClickOutside:!0,closeOnEscape:!0,popoverArrow:!1,popupId:`assign-users-avatars-${c}`,children:v()})]})},cr=[1,2,3,4,5],St={1:{title:"Muy fácil",color:"brand"},2:{title:"Fácil",color:"success"},3:{title:"Media",color:"warning"},4:{title:"Difícil",color:"danger"},5:{title:"Muy difícil",color:"danger"}};function Ea(e){const t=Number(e);if(e==null||Number.isNaN(t)||!Number.isFinite(t))return 1;let s=Math.trunc(t);return s===0&&(s=1),s<1||s>5?1:s}const Zt=({difficulty:e,id:t,withLabel:s=!1,canEdit:o=!0})=>{const{updatingTask:n}=Ke(),i=u.useId().replace(/:/g,""),[r,l]=u.useState(null),{user:d}=we(),[c,m]=u.useState(()=>Ea(e));u.useEffect(()=>{m(Ea(e))},[e]);const f={title:"Sin dato",color:"primary"},h=St[c]??f,g=h.title??"Sin dato",b=()=>{if(!r)return null;const j=({level:x,text:y,itemColor:v})=>a.jsxs("button",{type:"button",onClick:async()=>{l(null),await n({id:t,data:{nivel_dificultad:x},user:d==null?void 0:d.id}),m(x)},className:"tm-flex tm-items-center tm-gap-m tm-px-l tm-py-s hover:tm-bg-primary-light",children:[a.jsx(p.Icon,{name:ne.faRhombus,size:"xs",color:v}),a.jsx(p.Text,{type:"body",size:"sm",color:v,children:y})]});return Rt.createPortal(a.jsx("div",{onBlur:()=>{l(null)},id:`${i}-difficulty-options`,style:{top:`${r.y+5}px`,left:`${r.x+5}px`,zIndex:200},className:"tm-absolute tm-flex tm-h-fit tm-w-max tm-flex-col tm-gap-2 tm-rounded-xl tm-bg-bg-card tm-p-m tm-shadow-02","data-portal-host":!0,children:cr.map(x=>a.jsx(j,{level:x,text:St[x].title,itemColor:St[x].color},x))}),document.body)},w=j=>{j.stopPropagation()};return o?a.jsxs("div",{className:"tm-relative",onClick:w,onPointerDown:w,children:[a.jsxs("label",{htmlFor:i,onBlur:()=>{l(null)},className:"tm-flex tm-cursor-pointer tm-items-center tm-gap-2 active:tm-opacity-50",children:[a.jsx(ke,{trigger:a.jsx(p.Icon,{name:ne.faRhombus,size:"sm",color:h.color}),children:a.jsx("div",{className:"tm-px-8 tm-py-4",children:a.jsx(p.Text,{color:h.color,children:`Dificultad: ${g}`})})}),s&&a.jsx(p.Text,{as:"span",color:h.color,children:g})]}),a.jsx("button",{id:i,type:"button",onClick:j=>{j.stopPropagation(),l(r?null:{x:j.clientX,y:j.clientY})},className:"tm-hidden"}),a.jsx(b,{})]}):a.jsxs("div",{className:"tm-relative tm-flex tm-items-center tm-gap-2",onClick:w,onPointerDown:w,children:[a.jsx(ke,{trigger:a.jsx(p.Icon,{name:ne.faRhombus,size:"sm",color:h.color}),children:a.jsx("div",{className:"tm-px-8 tm-py-4",children:a.jsx(p.Text,{color:h.color,children:`Dificultad: ${g}`})})}),s&&a.jsx(p.Text,{as:"span",color:h.color,className:"tm-text-lg tm-font-normal",children:g})]})},ea=({priority:e,id:t,withLabel:s=!1,canEdit:o=!0})=>{const{updatingTask:n}=Ke(),i=u.useId().replace(/:/g,""),[r,l]=u.useState(null),{user:d}=we(),[c,m]=u.useState(e);u.useEffect(()=>{m(e)},[e]);const f={0:{title:"Normal",color:"brand"},1:{title:"Baja",color:"success"},2:{title:"Media",color:"warning"},3:{title:"Alta",color:"danger"}},h={title:"Sin prioridad",color:"primary"},b=(()=>{const y=c;if(typeof y!="number"||!Number.isFinite(y))return h;const v=Math.trunc(y);return v<0||v>3?h:f[v]??h})(),w=b.title??"Sin prioridad",j=()=>{if(!r)return null;const y=({priorityTask:v,text:N,itemColor:B})=>a.jsxs("button",{type:"button",onClick:async()=>{l(null),await n({id:t,data:{prioridad:v},user:d==null?void 0:d.id}),m(v)},className:"tm-flex tm-items-center tm-gap-m tm-px-l tm-py-s hover:tm-bg-primary-light",children:[a.jsx(p.Icon,{name:ne.faFlag,size:"xs",color:B}),a.jsx(p.Text,{type:"body",size:"sm",color:B,children:N})]});return Rt.createPortal(a.jsx("div",{onBlur:()=>{l(null)},id:`${i}-options`,style:{top:`${r.y+5}px`,left:`${r.x+5}px`,zIndex:200},className:`tm-absolute tm-flex tm-h-fit tm-w-max tm-flex-col tm-gap-2 tm-rounded-xl tm-bg-bg-card tm-p-m
2
+ tm-shadow-02`,"data-portal-host":!0,children:Object.values(f).map((v,N)=>a.jsx(y,{priorityTask:N,text:v.title,itemColor:v.color},N))}),document.body)},x=y=>{y.stopPropagation()};return o?a.jsxs("div",{className:"tm-relative",onClick:x,onPointerDown:x,children:[a.jsxs("label",{onBlur:()=>{l(null)},htmlFor:i,className:"tm-flex tm-cursor-pointer tm-items-center tm-gap-2 active:tm-opacity-50",children:[a.jsx(ke,{trigger:a.jsx(p.Icon,{name:ne.faFlag,size:"sm",color:b.color}),children:a.jsx("div",{className:"tm-px-8 tm-py-4",children:a.jsx(p.Text,{color:b.color,children:`Prioridad: ${w}`})})}),s&&a.jsx(p.Text,{as:"span",color:b.color,className:" tm-font-normal",children:w})]}),a.jsx("button",{id:i,type:"button",onClick:y=>{y.stopPropagation(),l(r?null:{x:y.clientX,y:y.clientY})},className:"tm-hidden"}),a.jsx(j,{})]}):a.jsxs("div",{className:"tm-relative tm-flex tm-items-center tm-gap-2",onClick:x,onPointerDown:x,children:[a.jsx(ke,{trigger:a.jsx(p.Icon,{name:ne.faFlag,size:"sm",color:b.color}),children:a.jsx("div",{className:"tm-px-8 tm-py-4",children:a.jsx(p.Text,{color:b.color,children:`Prioridad: ${w}`})})}),s&&a.jsx(p.Text,{as:"span",color:b.color,className:"tm-text-lg tm-font-normal",children:w})]})};function dr(e,t){return((e==null?void 0:e.map(o=>{var n;return{id:o.id,nombre:o.motivo_imj??"",categoria:(n=o.categoria)==null?void 0:n.nombre}}).filter(o=>o.categoria===t))??[]).filter(o=>typeof o.id=="number"&&!Number.isNaN(o.id)&&o.nombre.length>0).map(o=>({id:o.id,nombre:o.nombre}))}function mr(e){return e.map(t=>({id:t.id,label:t.nombre}))}const He={TO_SECOND:"task-move-first-to-second",TO_THIRD:"task-move-first-to-third",TO_FOURTH:"task-move-first-to-fourth"};function ur(e,t){const s=[];return e===0&&s.push({id:He.TO_SECOND,label:"Mover a trabajando",icon:Ee.faArrowRight}),e===1&&s.push({id:He.TO_SECOND,label:"Mover a completada",icon:Ee.faArrowRight},{id:He.TO_FOURTH,label:"Mover por hacer",icon:Ee.faArrowLeft}),t?s.push({id:He.TO_THIRD,label:"Eliminar atraso"}):s.push({id:He.TO_THIRD,label:"Agregar atraso"}),s}function pr(e){return e===0?{title:"Mover a trabajando"}:{title:"Mover a completada"}}function fr(){return{title:"Mover a por hacer"}}function Aa({copy:e,onMove:t}){return a.jsxs("div",{className:"tm-flex tm-h-fit tm-w-max tm-max-w-[280px] tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:[a.jsx("p",{className:"tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_medium",children:e.title}),a.jsx(p.Button,{type:"button",fullWidth:!0,size:"xs",color:"primary",onClick:t,children:"Mover"})]})}const gr=({status:e,nameRequiredTask:t,statusRequiredTask:s,id:o,statusLateTask:n=null,projectID:i,atrasoId:r,categoria:l,disabled:d=!1})=>{const c=u.useRef(null),m=u.useRef(null),f=u.useRef(null),{startWorking:h,completeTask:g,startTask:b}=Ke(),w=u.useRef(!1),[j,x]=u.useState(!1),[y,v]=u.useState(null),[N,B]=u.useState("first"),D=t!==""&&s===2,[C,M]=u.useState(null),{atrasoReasons:E,isLoading:X,createAtraso:U,deleteAtraso:z}=js({enabled:!0}),[k,K]=u.useState(null),F=u.useCallback(()=>{var A;(A=c.current)==null||A.close()},[]);u.useEffect(()=>{n&&B("third")},[n]),u.useEffect(()=>{if(!j)return;const A=()=>{F()};return window.addEventListener("scroll",A,!0),document.addEventListener("scroll",A,!0),()=>{window.removeEventListener("scroll",A,!0),document.removeEventListener("scroll",A,!0)}},[j,F]);const $=A=>{B(A),A==="second"?v(e===0?"Trabajando":"Completadas"):A==="fourth"&&v("Por hacer")},R=()=>{if(w!=null&&w.current)return a.jsx("div",{className:"tm-hover:bg-primary-light tm-flex tm-h-fit tm-w-max tm-translate-x-0 tm-items-center tm-gap-2 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:a.jsx("p",{className:"tm-font-regular tm-text-sm tm-font-normal tm-text-primary-pastel",children:"Moviendo..."})});const A=ur(e,r);return a.jsx("div",{className:"tm-flex tm-h-fit tm-w-max tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:a.jsx(p.ListBase,{variant:"default",list:{items:A},events:{onItemClick:H=>{switch(H.id){case He.TO_SECOND:$("second");break;case He.TO_THIRD:$("third");break;case He.TO_FOURTH:$("fourth");break}}}})})},G=()=>a.jsx(Aa,{copy:pr(e),onMove:()=>{w.current=!0,y==="Trabajando"?h({id:o}):y==="Por hacer"?b({id:o}):g({id:o,idAtraso:r}),F()}}),V=()=>{if(X)return a.jsx("div",{children:"Cargando motivos..."});const A=dr(E,l==null?void 0:l.nombre),H=mr(A);return A.length>0?a.jsxs("div",{className:"tm-flex tm-h-fit tm-w-[288px] tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:[!C&&!r?a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"tm-mb-[11px] tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_regular",children:"Atraso de tarea"}),a.jsx(p.Dropdown,{field:{placeholder:"Seleccione una opción"},items:{options:H,idName:"id"},values:{value:(k==null?void 0:k.id)??""},menuSearch:{searchable:!0,searchPlaceholder:"Buscar"},popover:{absolute:!1,closeOnClickOutside:!0,dropdownId:`task-atraso-motivo-${o}`,popoverZIndex:1200},events:{onValueChange:Y=>{const O=Number(Y);if(Number.isNaN(O))return;const I=A.find(W=>W.id===O);K({id:O,nombre:(I==null?void 0:I.nombre)??""})},onOptionSelect:Y=>{const O=Y.id;O==null||Number.isNaN(Number(O))||K({id:Number(O),nombre:String(Y.label??"")})}}})]}):a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_medium",children:"¿Estas seguro?"}),a.jsx("p",{className:"tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_medium",children:r?"Estás eliminando el atraso de la tarea seleccionada":`Esta tarea está atrasada debido a ${(C==null?void 0:C.nombre)??""}`})]}),a.jsxs("div",{className:"tm-my-[11px] tm-flex tm-justify-end tm-gap-3",children:[a.jsx(p.Button,{type:"button",size:"xs",color:"secondary",onClick:()=>{C?M(null):F()},children:C?"Regresar":"Cancelar"}),a.jsx(p.Button,{type:"button",size:"xs",color:"primary",onClick:()=>{M(k),r&&!C?z(r):C&&ee()},children:"Aceptar"})]})]}):a.jsx("div",{className:"tm-flex tm-h-fit tm-w-[288px] tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:"No hay motivos de atraso para ésta tarea"})},P=()=>a.jsx(Aa,{copy:fr(),onMove:()=>{w.current=!0,b({id:o}),F()}}),te=()=>{if(N==="first")return R();if(N==="second")return G();if(N==="third")return V();if(N==="fourth")return P()},ee=async()=>{if(k)try{await U({taskId:o,projectID:i,motivo:(k==null?void 0:k.id)??null}),F()}catch(A){console.error("Error al crear atraso:",A)}};return a.jsx(a.Fragment,{children:(D&&s===2||!t)&&a.jsxs(a.Fragment,{children:[a.jsx(p.Button,{ref:m,type:"button","aria-label":"Más opciones para mover la tarea",color:"secondary",pill:"pill",size:"xxs",icon:Ee.faEllipsis,disabled:d}),a.jsx(p.Popup,{ref:c,triggerRef:m,popupId:`task-move-menu-${o}`,position:"bottom-right",offset:1,closeOnClick:!1,closeOnClickOutside:!1,popoverArrow:!1,onOpen:()=>{x(!0),B("first")},onClose:()=>x(!1),children:a.jsx("div",{ref:f,className:`
3
3
  tm-ease tm-transition-all tm-duration-300
4
4
  ${N==="second"?"":"tm-translate-x-0"}
5
- `,children:te()})})]})})},Se={texts:{subtext:"#4f4f4f",placeholder:"#929292"},primary:{regular:"#425CAC"},success:{dark:"#368156",regular:"#43B071"},danger:{dark:"#8C352C",regular:"#C34335"},warning:{dark:"#B4782F",regular:"#D38A31"}},Ho=({id:e,idAtraso:t})=>{const[s,o]=u.useState(!1),{completeTask:n}=He();return{checked:s,checkTask:()=>{o(!s),n({id:e,idAtraso:t})}}},_a={checked:"tm-mx-[2px] tm-flex tm-h-[20px] tm-w-[20px] tm-items-center tm-justify-center tm-rounded-full tm-bg-success-regular tm-transition-all",unchecked:"tm-transition-colors"},Ko="tm-mx-[2px] tm-flex tm-items-center tm-justify-center tm-rounded-full tm-bg-success-regular tm-transition-all",Ta="tm-text-sm tm-flex tm-w-fit tm-max-w-[400px] tm-flex-col tm-gap-m tm-rounded-lg tm-bg-surface-warning-default tm-p-l tm-text-primary",rs=({id:e,nameRequiredTask:t,statusRequiredTask:s,status:o,idAtraso:n,nameRequiredTaskResponsible:i,name_father_required_task:r,name_father_required_task_responsible:l,repeatsAreCompleted:d=!1})=>{const c=u.useId(),m=`checkbox-${e}-${c}`,{checked:f,checkTask:g}=Ho({id:e,idAtraso:n}),x=!!(t&&t!==""&&s===2)||!t,y=!!r,j=o===1&&d,b=()=>a.jsx("label",{htmlFor:m,className:f?_a.checked:_a.unchecked,children:f?a.jsx(p.Icon,{name:ne.faCheck,size:"xs",style:{color:"white"},color:"current"}):a.jsx(p.Icon,{name:ne.faCircle,size:"sm",style:{color:Se.texts.placeholder},color:"current"})});return o===2?a.jsx("div",{className:Ko,children:a.jsx(p.Icon,{name:le.faCircleCheck,size:"xs",style:{color:"white"},color:"current"})}):y?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"tm-flex tm-w-fit tm-shrink-0 tm-flex-row tm-flex-nowrap tm-items-center tm-gap-1",children:[a.jsx(Me,{position:"bottom",popoverArrow:!1,triggerWrapperClassName:"tm-inline-flex tm-items-center",trigger:a.jsx("span",{className:"tm-cursor-help tm-inline-flex","aria-hidden":!0,children:a.jsx(p.Icon,{name:ne.faCircleInfo,size:"sm",style:{color:Se.warning.regular},color:"current"})}),children:a.jsxs("div",{className:Ta,children:[a.jsx("p",{className:"tm-w-[210px] tm-font-bold",children:"Tarea padre:"}),a.jsx("p",{children:r}),l&&a.jsxs("p",{className:"tm-font-bold",children:["Responsable:"," ",a.jsx("span",{className:"tm-font-normal",children:l})]}),a.jsx(p.Text,{children:"Esta tarea completa automáticamente la tarea padre."})]})}),j&&b()]}),a.jsx("input",{id:m,checked:f,onChange:g,type:"checkbox",className:"tm-hidden","aria-hidden":!0})]}):x?a.jsxs(a.Fragment,{children:[o===1&&b(),a.jsx("input",{id:m,checked:f,onChange:g,type:"checkbox",className:"tm-hidden","aria-hidden":!0})]}):a.jsxs(a.Fragment,{children:[a.jsx(Me,{position:"bottom",popoverArrow:!1,triggerWrapperClassName:"tm-inline-flex tm-items-center",trigger:a.jsx("span",{className:"tm-cursor-help tm-inline-flex","aria-hidden":!0,children:a.jsx(p.Icon,{name:ne.faCircleInfo,size:"sm",style:{color:Se.warning.regular},color:"current"})}),children:a.jsxs("div",{className:Ta,children:[a.jsx("p",{className:"tm-w-[210px] tm-font-bold",children:"Requiere completar su tarea:"}),a.jsx("p",{children:t}),i&&a.jsxs("p",{className:"tm-font-bold",children:["Responsable: ",a.jsx("span",{className:"tm-font-normal",children:i})]})]})}),a.jsx("input",{id:m,checked:f,onChange:g,type:"checkbox",className:"tm-hidden","aria-hidden":!0})]})};function Vo({items:e}){var o;const[t,s]=u.useState(1);return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"tm-mb-2 tm-mt-4 tm-flex tm-flex-row tm-border-b tm-border-black-light tm-bg-surface-default",children:e.map(n=>a.jsx("div",{className:"tm-border-r tm-border-black-light",children:a.jsx(p.Button,{color:"tertiary",pill:"none",size:"xs",active:t===n.id,onClick:()=>s(n.id),children:n.label},n.id)},n.id))}),a.jsx("div",{className:"tm-flex-1 tm-overflow-y-auto tm-bg-surface-default tm-pt-4",children:(o=e.find(n=>n.id===t))==null?void 0:o.component})]})}function Go({comment:e}){var n,i,r,l,d;const{getImageOBP:t}=fe(),s=(l=(r=(i=(n=e==null?void 0:e.autor)==null?void 0:n.imagen)==null?void 0:i.formats)==null?void 0:r.thumbnail)==null?void 0:l.url;function o(c){const m=c==null?new Date:typeof c=="string"?ot.parseISO(c):c;return ot.formatDistanceToNow(m,{locale:Ot.es,addSuffix:!0})}return a.jsx("div",{children:a.jsxs("div",{className:"tm-flex tm-flex-row tm-items-start tm-gap-3",children:[a.jsx(Fe,{size:"xxl",imageUrl:s?t(s):"",alt:"@shadcn"}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-4",children:[a.jsxs("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-4",children:[a.jsx(p.Text,{type:"title",size:"sm",weight:"medium",color:"secondary",children:(d=e==null?void 0:e.autor)==null?void 0:d.nombre}),a.jsx(p.Text,{children:o(e==null?void 0:e.createdAt)})]}),a.jsx(p.Text,{children:e==null?void 0:e.comentario})]})]})})}function Wo({currentUser:e,data:t,taskId:s,onNewComment:o}){var h,x,y;const{tasks_api:n,getImageOBP:i}=fe(),{control:r,handleSubmit:l,reset:d}=Ce.useForm({defaultValues:{comment:""}}),[c,m]=u.useState([]),f=(y=(x=(h=e==null?void 0:e.imagen)==null?void 0:h.formats)==null?void 0:x.thumbnail)==null?void 0:y.url;u.useEffect(()=>{if(t!=null&&t.comentarios){const j=[...t.comentarios].sort((b,w)=>new Date(w.createdAt).getTime()-new Date(b.createdAt).getTime());m(j)}},[t]);const g=async j=>{try{const b={id:Date.now(),autor:{id:e==null?void 0:e.id,email:e==null?void 0:e.email,nombre:e==null?void 0:e.nombre,imagen:e==null?void 0:e.imagen},comentario:j.comment,createdAt:new Date().toISOString(),updatedAt:null};await n.post("/api/comentarios",{data:{autor:e==null?void 0:e.id,comentario:j.comment,tarea:s}}),o(!0),m(w=>[b,...w]),d()}catch(b){console.error("Error al agregar comentario:",b)}};return a.jsxs("div",{className:"tm-flex tm-h-full tm-flex-col tm-gap-4",children:[a.jsxs("form",{onSubmit:l(g),className:"tm-flex tm-flex-row tm-items-center tm-gap-3",children:[a.jsx(Fe,{size:"xxl",imageUrl:f?i(f):"",alt:"@shadcn"}),a.jsx("div",{className:"tm-min-w-0 tm-flex-1",children:a.jsx(Ce.Controller,{name:"comment",control:r,rules:{required:"Escribe un comentario"},render:({field:j,fieldState:{error:b}})=>a.jsx(p.Input,{fullWidth:!0,placeholder:"Escribe un comentario",autoComplete:"off",size:"xs",error:b==null?void 0:b.message,...j,value:j.value??""})})})]}),c&&c.map((j,b)=>a.jsx(Go,{comment:j},b))]})}function Qo(e,t){const s=(e==null?void 0:e.trim())??"";return s?/^https?:\/\//i.test(s)?s:t(s):""}function Xo({data:e}){const{getImageOBP:t}=fe(),s={0:{color:"tm-bg-gray-400",label:"Sin estado"},1:{color:"tm-bg-primary-regular",label:"En curso"},2:{color:"tm-bg-success-regular",label:"Finalizada"},3:{color:"tm-bg-success-regular",label:"Finalizada"}},o=n=>n?ot.format(new Date(n),"d MMM",{locale:Ot.es}):"";return a.jsxs("div",{children:[a.jsxs("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-4",children:[a.jsx(p.Text,{children:"Tareas dependientes"}),a.jsx(p.Text,{className:"tm-flex tm-h-24 tm-w-24 tm-items-center tm-justify-center tm-rounded-full tm-bg-[#E1EBF9] tm-text-xs tm-font-normal tm-text-primary",children:(e==null?void 0:e.length)??0})]}),a.jsx("div",{className:"tm-mt-3 tm-flex tm-flex-col tm-gap-2 tm-rounded-lg tm-border tm-border-default",children:e==null?void 0:e.map((n,i)=>{var m,f,g,h,x,y,j,b,w,v,N,L;const r=n==null?void 0:n.responsable,l=((g=(f=(m=r==null?void 0:r.image)==null?void 0:m.formats)==null?void 0:f.thumbnail)==null?void 0:g.url)??((y=(x=(h=r==null?void 0:r.imagen)==null?void 0:h.formats)==null?void 0:x.thumbnail)==null?void 0:y.url)??((v=(w=(b=(j=r==null?void 0:r.userOBP)==null?void 0:j.imagen)==null?void 0:b.formats)==null?void 0:w.thumbnail)==null?void 0:v.url),d=(n==null?void 0:n.createdAt)??(n==null?void 0:n.created_at),c=Qo(l,t);return a.jsxs("div",{className:"tm-flex tm-w-full tm-flex-row tm-items-center tm-justify-between tm-gap-s tm-px-2 tm-py-1",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx(Fe,{imageUrl:c}),a.jsx(p.Text,{children:((N=n==null?void 0:n.texto_corto)==null?void 0:N.trim())||"—"})]}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-1",children:[a.jsx(p.Text,{children:o(d)}),a.jsx("div",{className:`tm-block tm-h-4 tm-w-4 tm-rounded-full tm-bg-gray-400 ${((L=s[n==null?void 0:n.estatus])==null?void 0:L.color)??"tm-bg-gray-400"}`})]})]},n.id!=null?String(n.id):`dep-${i}`)})})]})}function Yo({id:e,texto_largo:t,user_id:s}){const[o,n]=u.useState(t),{updatingTask:i}=He(),r=async()=>{await i({id:e,data:{texto_largo:o},user:s})};return u.useEffect(()=>{n(t)},[t]),a.jsx("div",{className:"tm-mt-16 tm-flex tm-w-full tm-flex-col tm-gap-3",children:a.jsx(p.Textarea,{fullWidth:!0,label:"Descripción",value:o,onChange:n,onBlur:r,placeholder:"Agregar descripción",className:"tm-resize-none"})})}function Na(e,t,s){var n;if(e!=null){const i=e instanceof Date?e:new Date(e);if(!Number.isNaN(i.getTime()))return s(i)}const o=(n=t==null?void 0:t.nombre)==null?void 0:n.trim();return o||s(null)}function is({isOpen:e,setIsOpen:t,taskId:s,initialFromList:o}){var O,C,F,E,X,U,z,M,K;const[n,i]=u.useState(null),[r,l]=u.useState(!1),[d,c]=u.useState(!1),[m,f]=u.useState(null),g=(E=(F=(C=(O=n==null?void 0:n.responsable)==null?void 0:O.imagen)==null?void 0:C.formats)==null?void 0:F.thumbnail)==null?void 0:E.url,{tasks_api:h,getImageOBP:x}=fe(),{user:y}=ve(),j=u.useRef({taskId:null,source:"none"}),b=Number(n==null?void 0:n.estatus),w=Number.isFinite(b)?b:-1,v=ft(y==null?void 0:y.role,w);u.useEffect(()=>{const I=async()=>{const G=await h.get(`/api/users/${y.id}`);f(G==null?void 0:G.data)};if(r){(async()=>{const D=await h.get(`/api/detalleTarea/${s}`);i(D==null?void 0:D.data),j.current={taskId:s,source:"api"}})(),I();return}if(!e){i(null),j.current={taskId:null,source:"none"};return}if(!s)return;const{taskId:$,source:R}=j.current;if($===s&&(R==="api"||R==="list")){R==="list"&&o&&i(G=>{if(!G)return o;const D=o.ids_t_dependientes;if(!Array.isArray(D))return G;const te=Array.isArray(G.ids_t_dependientes)?G.ids_t_dependientes.length:0,ee=D.length;return ee>te||te===0&&ee>0?{...G,ids_t_dependientes:D}:G}),I();return}if(j.current.taskId!=null&&j.current.taskId!==s&&(j.current={taskId:null,source:"none"}),o){i(o),j.current={taskId:s,source:"list"},I();return}(async()=>{const G=await h.get(`/api/detalleTarea/${s}`);i(G==null?void 0:G.data),j.current={taskId:s,source:"api"}})(),I()},[e,s,r,y.id,h,o]);const N=I=>I?ot.format(I,"d MMM yyyy, h:mmaaa",{locale:Ot.es}):"Fecha no disponible",L=u.useMemo(()=>[{id:1,label:"Todo",component:a.jsx(Wo,{taskId:s,currentUser:m,data:n,onNewComment:l})},{id:2,label:"Dependencias",component:a.jsx(Xo,{data:n==null?void 0:n.ids_t_dependientes})}],[n,s,m]);return e&&Lt.createPortal(a.jsxs(a.Fragment,{children:[a.jsx("div",{className:`tm-fixed tm-inset-0 tm-z-20 tm-flex tm-items-center tm-justify-center tm-bg-transparent tm-bg-opacity-50 ${e?"tm-pointer-events-auto tm-block":"tm-pointer-events-none tm-hidden"}`,onClick:()=>t(!1)}),a.jsx("section",{className:`tm-fixed tm-bottom-0 tm-top-0 tm-z-50 tm-flex tm-h-screen tm-w-[550px] tm-items-center tm-justify-center tm-overflow-hidden tm-bg-surface-default tm-bg-opacity-50 tm-shadow-2xl tm-transition-all tm-duration-500 tm-ease-in-out ${e?"tm-pointer-events-auto tm-right-0 tm-block":"tm-pointer-events-none tm-right-[-100%] tm-hidden"}`,children:a.jsxs("div",{className:"tm-flex tm-h-full tm-w-full tm-flex-col tm-overflow-y-scroll tm-border-none tm-bg-surface-default tm-p-16 tm-shadow-04",children:[a.jsxs("div",{className:"tm-flex tm-w-full tm-flex-row tm-items-center tm-justify-between tm-gap-10 tm-border-none tm-pb-4",children:[a.jsxs("div",{className:"tm-relative tm-flex tm-flex-row tm-items-start tm-gap-8",children:[(((X=n==null?void 0:n.id_t_requerida)==null?void 0:X.id)??0)>0?a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"tm-cursor-help",onMouseOver:()=>c(!0),onMouseLeave:()=>c(!1),children:a.jsx(p.Icon,{name:ne.faCircleInfo,size:"sm",style:{color:Se.warning.regular},color:"current"})}),d&&(()=>{var $;const I=it(n==null?void 0:n.id_t_requerida);return a.jsxs("div",{style:{top:"25px"},className:"tm-absolute tm-z-50 tm-flex tm-w-fit tm-max-w-[400px] tm-flex-col tm-gap-m tm-rounded-lg tm-bg-surface-warning-default tm-p-l tm-text-xs tm-text-primary",children:[a.jsx(p.Text,{type:"body",size:"sm",weight:"bold",children:"Requiere completar su tarea:"}),a.jsx(p.Text,{type:"body",size:"xs",weight:"medium",children:($=n==null?void 0:n.id_t_requerida)==null?void 0:$.texto_corto}),I&&a.jsxs(p.Text,{type:"body",size:"xs",weight:"medium",children:["Responsable: ",a.jsx("span",{className:"tm-font-normal",children:I})]})]})})()]}):null,a.jsx("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-8",children:a.jsxs("h3",{className:"tm-text-base tm-font-semibold tm-text-neutral-900",children:[n==null?void 0:n.texto_corto,(n==null?void 0:n.atraso)&&a.jsx(p.Tooltip,{label:(U=n==null?void 0:n.atraso)==null?void 0:U.motivo,position:"bottom",children:a.jsx("button",{className:"tm-ml-2 tm-inline-block tm-h-fit tm-align-middle",children:a.jsx(p.Icon,{name:ne.faTriangleExclamation,size:"md",style:{color:Se.warning.dark},color:"current"})})})]})})]}),a.jsx(p.Button,{color:"secondary",pill:"pill",size:"xs",onClick:()=>t(!1),icon:ne.faXmark})]}),a.jsx("div",{className:"tm-mt-6 tm-flex tm-w-full tm-flex-row tm-justify-between",children:a.jsxs("span",{className:"tm-text-xs tm-text-light-gray-700",children:[n==null?void 0:n.campania," / ",n==null?void 0:n.nombre_medio]})}),a.jsx(Yo,{id:s,texto_largo:n==null?void 0:n.texto_largo,user_id:y.id}),a.jsx(p.Accordion,{id:`details-task-detalles-${s}`,title:"Detalles",defaultOpen:!0,className:"tm-mt-6 tm-w-full",headerClassName:"tm-border-b tm-border-black-light tm-pb-4",children:a.jsxs("div",{className:"tm-gap-8 tm-grid tm-w-full tm-grid-cols-3 tm-p-4",children:[a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Responsable"}),(z=n==null?void 0:n.responsable)!=null&&z.nombre?a.jsxs("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-8",children:[a.jsx(Fe,{size:"xxl",imageUrl:g?x(g):"",alt:"@shadcn"}),a.jsx(p.Text,{children:(M=n==null?void 0:n.responsable)==null?void 0:M.nombre})]}):a.jsx(p.Text,{children:"Sin responsable"})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Equipo asignado"}),a.jsx("div",{className:"tm-flex tm-flex-row tm-gap-8",children:a.jsx(p.Text,{children:((K=n==null?void 0:n.equipo)==null?void 0:K.nombre)??"Sin equipo"})})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Prioridad"}),a.jsx(Qt,{priority:parseInt(String(n==null?void 0:n.prioridad),10)||0,id:s,withLabel:!0,canEdit:v})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Dificultad"}),a.jsx(Wt,{difficulty:(n==null?void 0:n.nivel_dificultad)!=null&&(n==null?void 0:n.nivel_dificultad)!==""?Number(n.nivel_dificultad):void 0,id:s,withLabel:!0,canEdit:v})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Lista"}),a.jsx("div",{className:"tm-flex tm-flex-row tm-gap-8",children:a.jsx(p.Text,{children:(n==null?void 0:n.lista)??"Sin lista"})})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Fecha estimada de inicio"}),a.jsx(p.Text,{children:N(n==null?void 0:n.f_inicio_estimada)})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Fecha estimada de fin"}),a.jsx(p.Text,{children:N(n==null?void 0:n.f_fin_estimada)})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Fecha de fin"}),a.jsx(p.Text,{children:N(n==null?void 0:n.ffin)})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Creado"}),a.jsx(p.Text,{children:Na(n==null?void 0:n.createdAt,n==null?void 0:n.createdBy,N)})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Última modificación"}),a.jsx(p.Text,{children:Na(n==null?void 0:n.updatedAt,n==null?void 0:n.updatedBy,N)})]})]})}),a.jsx(Vo,{items:L})]})})]}),document.body)}class Jo{static toPauseReasons(t){return{id:t.id,motivo_imj:t.motivo_imj}}}const Zo=async({tasks_api:e})=>{try{const t=await e.get("/api/motivos");return je(t.data).map(Jo.toPauseReasons)}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},er=()=>{const{tasks_api:e}=fe();return{pauseReasons:de.useQuery({queryKey:["pause_task_reasons"],queryFn:()=>Zo({tasks_api:e}),staleTime:1e3*60*60*24})}},gt=30;function Xt(e,t){var o;if(!(!e||t.reduce((n,i)=>{var r;return n+(((r=i.tasks)==null?void 0:r.length)??0)},0)>=e.total)&&!((((o=e.tasks)==null?void 0:o.length)??0)<gt))return t.length+1}const Yt=e=>{var t;if(e!=null&&e.hasNextPage){const s=(t=e==null?void 0:e.data)==null?void 0:t.pages[e.data.pages.length-1],o=s!=null&&typeof s=="object"&&!Array.isArray(s)&&"tasks"in s&&Array.isArray(s.tasks)?s.tasks:Array.isArray(s)?s:null;((o==null?void 0:o.length)??0)===gt&&(e==null||e.fetchNextPage())}},ht=e=>({pagination:{page:e,pageSize:gt,withCount:!0}});function Jt(e,t,s){var o;return{...e,owner:{user:t.id,config:et((o=e==null?void 0:e.owner)==null?void 0:o.config,t.role),role:t.role},status:s}}function Zt(e){var s;const t=(s=e==null?void 0:e.owner)==null?void 0:s.config;return t!=null&&`${t}`.trim()!==""}const ls=()=>{const{tasks_api:e}=fe(),{user:t}=ve(),{filters:s}=ke(),o=u.useMemo(()=>Jt(s,t,"por_hacer"),[s,t.id,t.role]),n=Zt(s),i=de.useInfiniteQuery({initialPageParam:1,queryKey:["to_do_tasks",o],enabled:n&&!!(t!=null&&t.id),queryFn:({pageParam:l})=>pt({filters:{...o,status:"por_hacer",...ht(l)},tasks_api:e}),staleTime:1e3*60*60*24,getNextPageParam:Xt}),r=u.useMemo(()=>{var l,d,c;return((c=(d=(l=i.data)==null?void 0:l.pages)==null?void 0:d[0])==null?void 0:c.total)??0},[i.data]);return{toDoTasks:i,total:r,filtersToSend:o}};function tr(e){return(e??[]).map(t=>({id:t.id,label:t.motivo_imj}))}const ar=({idTask:e,setOpen:t,paused:s})=>{const o=de.useQueryClient(),{toDoTasks:n,filtersToSend:i}=ls(),[r,l]=u.useState(!1),[d,c]=u.useState(null),{tasksProject:m}=st(),{postPauseTask:f,postReanudeTask:g}=He(),{pauseReasons:h}=er(),x=tr(h==null?void 0:h.data),y=async()=>{try{if(d==null)return;if(t(!1),await f({id:e,motiveId:d}),await o.invalidateQueries({queryKey:["to_do_tasks",i]}),await o.invalidateQueries({queryKey:["tasksProject"]}),n&&typeof n.refetch=="function"||m&&typeof m.refetch=="function"){const b=await n.refetch(),w=await m.refetch();return[b,w]}}catch(b){console.error("Error al pausar la tarea:",b)}},j=async()=>{try{if(t(!1),await g({id:e}),await o.invalidateQueries({queryKey:["to_do_tasks",i]}),await o.invalidateQueries({queryKey:["tasksProject"]}),n&&typeof n.refetch=="function"||m&&typeof m.refetch=="function"){const b=await n.refetch(),w=await m.refetch();return[b,w]}}catch(b){console.error("Error al reanudar la tarea:",b)}};return a.jsx("div",{className:"tm-flex tm-w-[300px] tm-max-w-[300px] tm-items-center !tm-p-4",children:a.jsxs("div",{className:"tm-flex tm-w-full tm-flex-col tm-gap-s ",children:[a.jsx("h6",{className:"tm-font-regular tm-text-texts-subtext tm-truncate tm-text-xl",children:"Pausar tarea:"}),r?a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-s",children:[a.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"Esta acción detendrá la campaña en curso."}),a.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):s?a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-s",children:[a.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"Esta acción reanudará la campaña en curso."}),a.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):a.jsx(p.Dropdown,{field:{placeholder:"Selecciona una razón"},items:{options:x,idName:"id"},values:{value:d??""},menuSearch:{searchable:!0,searchPlaceholder:"Buscar"},popover:{absolute:!1,closeOnClickOutside:!0,dropdownId:`task-pause-motivo-${e}`,popoverZIndex:1200},events:{onValueChange:b=>{const w=Number(b);Number.isNaN(w)||c(w)},onOptionSelect:b=>{const w=Number(b.id);Number.isNaN(w)||c(w)}}}),a.jsxs("div",{className:"tm-mt-5 tm-flex tm-w-full tm-justify-end tm-gap-m",children:[a.jsx(p.Button,{type:"button",onClick:()=>t(!1),size:"xs",color:"secondary",children:"Cancelar"}),s?a.jsx(p.Button,{type:"button",onClick:()=>j(),size:"xs",color:"primary",children:"Si, reanudar"}):a.jsx(p.Button,{type:"button",disabled:!d,onClick:()=>r?y():l(!0),size:"xs",color:"primary",children:"Aceptar"})]})]})})},cs=({idTask:e,paused:t,popupId:s,children:o})=>{const n=u.useRef(null),i=u.useRef(null),[r,l]=u.useState(!1),[d,c]=u.useState(0),m=`task-pause-motivo-${e}`,f=u.useCallback(()=>{var g;(g=n.current)==null||g.close()},[]);return u.useEffect(()=>{if(!r)return;const g=h=>{const x=h.target;x instanceof Element&&(x.closest(`[data-popup-id="${s}"]`)||x.closest(`[data-dropdown-id="${m}"]`))||f()};return window.addEventListener("scroll",g,!0),document.addEventListener("scroll",g,!0),()=>{window.removeEventListener("scroll",g,!0),document.removeEventListener("scroll",g,!0)}},[r,f,s,m]),a.jsxs(a.Fragment,{children:[o(i),a.jsx(p.Popup,{ref:n,triggerRef:i,popupId:s,position:"bottom-left",offset:5,closeOnClick:!1,closeOnClickOutside:!1,popoverArrow:!1,onOpen:()=>{l(!0),c(g=>g+1)},onClose:()=>l(!1),children:a.jsx(ar,{idTask:e,paused:t,setOpen:g=>{g||f()}},d)})]})},sr=({id:e,task:t,endDate:s,users:o,willBePaused:n,nameProject:i,comments:r,priority:l,difficulty:d,responsible:c,nameRequiredTask:m,nameRequiredTaskResponsible:f,statusRequiredTask:g,status:h,repeatsToDo:x,repeats:y,medioName:j,paused:b,idProject:w,atraso:v,categoria:N,cambio_arte:L,name_father_required_task:O,name_father_required_task_responsible:C,panelDataFromList:F,boardColumnTitle:E,isBulkColumnLocked:X=!1})=>{const[U,z]=u.useState(!1),M=u.useId(),{reasignResponsible:K,updateUnitys:I}=He(),{getOBPUrlApi:$}=fe(),[R,V]=u.useState(y??0);u.useEffect(()=>{V(y??0)},[y]);const G=Number(y??0),D=Number(x??0),te=D>0&&G===D,ee=D>=1&&!te&&h===1,A=D<=1,H=h===0,Y=!ee&&(te||A||H)&&h!==2,B=(m??"")!==""&&g===2,{user:P}=ve(),W=ft(P==null?void 0:P.role,h),_=Vt(),S=!!(_!=null&&_.selectedTaskIds.includes(e)),q=Y&&(B||!m),k=!!_&&!!E&&E!=="Completadas"&&!X,T=k&&q,Q=k&&!q&&!!(_!=null&&_.isBulkSessionActive),Z=!!(_!=null&&_.isMultiSelectActive&&T&&B),ae=!T||!!(_!=null&&_.isBulkLoading),re=pe=>{!_||!E||ae||_.toggleTaskSelection(e,E)},J=()=>a.jsxs("div",{className:"tm-relative tm-flex tm-h-fit tm-w-full tm-items-center tm-justify-between",children:[a.jsxs("div",{className:"tm-flex tm-min-w-0 tm-flex-1 tm-flex-row tm-items-start tm-gap-[8px]",children:[h<2&&!ee&&(O||te||A||H)&&a.jsx("span",{"data-prevent-bulk-select":!0,children:a.jsx(rs,{id:e,nameRequiredTask:m??"",statusRequiredTask:g??0,status:h,idAtraso:v==null?void 0:v.atrasoId,nameRequiredTaskResponsible:f,name_father_required_task:O,name_father_required_task_responsible:C,repeatsAreCompleted:te})}),a.jsx("p",{className:"tm-w-full tm-overflow-hidden tm-text-ellipsis tm-text-nowrap tm-text-base tm-text-neutral-900","data-prevent-bulk-select":!0,onClick:pe=>{pe.stopPropagation(),z(!0)},children:t})]}),q&&a.jsxs("div",{className:"tm-flex tm-shrink-0 tm-items-center tm-gap-2","data-prevent-bulk-select":!0,children:[_?a.jsx("div",{className:"tm-flex tm-items-center tm-pt-0.5 tm-pr-2",children:a.jsx(p.Checkbox,{id:`kanban-bulk-select-${e}-${M}`,size:"sm",checked:S,disabled:ae,onChange:re})}):null,a.jsx(Uo,{id:e,nameRequiredTask:m,status:h,statusRequiredTask:g,projectID:w,atrasoId:v==null?void 0:v.atrasoId,categoria:N,disabled:Z})]})]}),se=pe=>{const be=D>0?D:Number(x??0);V(Ae=>{const we=Number.isFinite(Number(Ae))?Number(Ae):G;return pe==="minus"?Math.max(0,we-1):!Number.isFinite(be)||be<=0?we:Math.min(be,we+1)})},ce=pe=>{var be;return((be=pe==null?void 0:pe.charAt(0))==null?void 0:be.toUpperCase())??""},me=pe=>pe==="Venta"?"accent":"danger",ie=X||!!(_!=null&&_.isBulkLoading),ye=Q?"tm-cursor-not-allowed tm-opacity-60 hover:tm-border-cards hover:tm-bg-surface-default":"tm-cursor-pointer hover:tm-border-default hover:tm-border-primary-regular hover:tm-bg-primary-light";return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:`tm-relative tm-h-fit tm-max-w-[350px] tm-rounded-lg tm-border tm-p-[12px_12px] tm-transition-all tm-duration-300 ${ye} ${S?"tm-border-blue-500 tm-bg-primary-light":"tm-border-transparent tm-bg-surface-default"} ${ie?"tm-pointer-events-none":""}`,children:[a.jsx(J,{}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-[4px] tm-py-2",children:[a.jsx("p",{className:"tm-font-regular tm-max-w-[250px] tm-truncate tm-text-xs tm-text-texts-subtext",children:i}),j&&a.jsx(p.Text,{type:"body",size:"sm",weight:"medium",children:j})]}),L&&a.jsx(p.Badge,{label:L.nombre,color:"gray",icon:ne.faImage,size:"md",theme:"solid"}),a.jsxs("div",{"data-prevent-bulk-select":!0,className:"tm-relative tm-flex tm-h-fit tm-w-full tm-items-center tm-justify-between tm-pb-1 tm-pt-5",children:[a.jsxs("div",{className:"tm-relative tm-flex tm-items-center",children:[a.jsx(os,{responsible:c,responsibleCandidateIds:o.map(pe=>pe.id),role:P==null?void 0:P.role,status:h,users:o.filter(pe=>c?pe.id===c:!0).map(pe=>Ut(pe,$())),onClick:async(pe,be)=>{await K({idNewResponsible:pe,id:e,typeOfSelect:be})}}),n&&a.jsx(cs,{idTask:e,paused:b,popupId:`task-pause-menu-${e}`,children:pe=>a.jsx("button",{ref:pe,type:"button",className:"tm-font-regular tm-flex !tm-h-[32px] !tm-w-[32px] tm-items-center tm-justify-center tm-gap-2 tm-text-sm tm-text-gray-400",children:a.jsx(p.Icon,{name:b?ne.faPlay:ne.faPause,size:"xs",color:"current"})})})]}),a.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-8",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx(p.Badge,{label:ce((N==null?void 0:N.tipo)??"P"),color:me((N==null?void 0:N.tipo)??"Preventa"),size:"sm",theme:"solid"}),v&&a.jsx(Me,{trigger:a.jsx(p.Icon,{name:ne.faTriangleExclamation,size:"sm",color:"warning"}),children:a.jsx(p.Text,{color:"warning",children:`Tarea atrasada debido a: ${v==null?void 0:v.motivo}`})}),a.jsx(Wt,{difficulty:d,id:e,canEdit:W}),a.jsx(Qt,{priority:l,id:e,canEdit:W}),!x||x&&h===0&&a.jsxs(a.Fragment,{children:[a.jsx(p.Icon,{name:ne.faCalendar,size:"xs",color:"primary"}),a.jsx(p.Text,{color:"primary",children:`${s.getDate()} ${$t(s.getMonth()).slice(0,3)}`})]})]}),h===1&&D>0&&a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-m",children:[a.jsx(p.Text,{color:"primary",children:"unidades"}),a.jsx("button",{type:"button",onClick:()=>se("minus"),className:"tm-mr-[4px] tm-flex tm-h-8 tm-w-8 tm-shrink-0 tm-items-center tm-justify-center tm-rounded-full tm-bg-surface-default hover:tm-bg-surface-hover",children:a.jsx(p.Icon,{name:ne.faCircleMinus,size:"xs",color:"primary"})}),a.jsx(p.Text,{color:"primary",children:`${R??0} / ${D}`}),a.jsx("button",{type:"button",onClick:()=>se("plus"),className:"tm-ml-[4px] tm-flex tm-h-8 tm-w-8 tm-shrink-0 tm-items-center tm-justify-center tm-rounded-full tm-bg-surface-default hover:tm-bg-surface-hover",children:a.jsx(p.Icon,{name:ne.faCirclePlus,size:"xs",color:"primary"})}),a.jsx(p.Button,{type:"button",color:"primary",size:"xs",pill:"none",className:"tm-ml-[4px]",disabled:R===G,onClick:()=>{I({repeats:R,id:e})},children:"Agregar Unidad"})]})]})]}),r>0&&a.jsx("div",{className:"tm-mt-4 tm-border-t tm-border-default tm-pt-2",children:a.jsxs("button",{type:"button","data-prevent-bulk-select":!0,onClick:pe=>{pe.stopPropagation(),z(!0)},className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx(p.Icon,{name:ne.faComment,size:"xs",color:"current"}),a.jsx("span",{className:"tm-font-regular tm-text-xl tm-text-gray-400",children:r})]})})]}),a.jsx(is,{taskId:e,isOpen:U,setIsOpen:z,initialFromList:F??void 0})]})},xt=({title:e,tasks:t,loadNextPage:s,isFetching:o,total:n,bulkSelectAllIds:i})=>{const r=u.useRef(null),l=u.useRef(null),d=u.useRef(!1);u.useEffect(()=>{const j=r.current,b=l.current;j&&b&&(b.style.minHeight=`${j.clientHeight-300}px`)},[]);const c=j=>{if(d.current)return;const{scrollTop:b,clientHeight:w,scrollHeight:v}=j.currentTarget,N=v-w,L=N===0?0:b/N*100;L<=95||L>=95&&(d.current=!0,s&&s(),setTimeout(()=>{d.current=!1},200))},m={"Por hacer":"tm-border-texts-placeholder",Trabajando:"tm-border-primary-regular",Completadas:"tm-border-success-regular"},f=Vt(),g=e,h=!!(f!=null&&f.baseColumn&&f.baseColumn!==e),x=!!f&&e!=="Completadas"&&(f==null?void 0:f.isBulkSessionActive)&&f.baseColumn===e&&typeof i=="function",y=()=>{if(!(!f||!i)){if(f.isFullColumnSelected){f.deselectAllSelectedTasks();return}f.selectEntireColumn(g,i)}};return a.jsxs("div",{ref:r,className:`tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-fit tm-min-w-[400px] tm-max-w-[400px] tm-flex-col tm-overflow-hidden tm-rounded-lg tm-border-t-4 tm-bg-canvas tm-p-[16px] ${m[e]} ${h?"tm-opacity-40":""}`,children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-w-full",children:[a.jsx("p",{className:"tm-text-sm",children:e}),x&&a.jsx("button",{type:"button",className:"tm-text-base tm-text-brand disabled:tm-cursor-not-allowed disabled:tm-opacity-50 tm-mx-3",disabled:f==null?void 0:f.isBulkLoading,onClick:y,children:f!=null&&f.isBulkLoading?"Cargando…":f!=null&&f.isFullColumnSelected?"Quitar Selección":"Seleccionar todas"})]}),a.jsx("div",{className:"tm-flex tm-items-center tm-gap-[8px]",children:a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-[4px]",children:[a.jsx(p.Icon,{name:ne.faFiles,size:"sm",color:"secondary"}),a.jsx("p",{className:"tm-text-base tm-text-texts-placeholder",children:n??0})]})})]}),a.jsxs("div",{ref:l,className:"tm-flex tm-h-full tm-max-w-[350px] tm-flex-col tm-gap-[12px] tm-overflow-y-auto tm-pb-[200px] tm-pt-4 tm-scrollbar-none hover:tm-border-default hover:tm-bg-surface-hover focus:tm-border-default focus:tm-bg-light-gray-50 focus:tm-outline-none",onScroll:c,children:[t==null?void 0:t.map(j=>a.jsx(sr,{...j,boardColumnTitle:f?g:void 0,isBulkColumnLocked:!!(f&&h)},j.id)),o?a.jsx(No,{}):a.jsx("p",{className:"tm-text-center tm-text-sm tm-text-light-gray-900",children:"No hay más tareas por mostrar..."})]})]})},Ca=[{label:"Tipo de dependencia 2",type:"select",id:"dependency",options:[{id:"con",name:"Con dependencia"},{id:"sin",name:"Sin dependencia"},{id:"ambas",name:"Ambas"}]},{label:"Por responsable",type:"select",id:"owner.config",options:[{id:"yo",name:"Mis tareas"},{id:"yo_y_mis_equipos",name:"Tareas mías y de mis equipos"},{id:"mis_equipos",name:"Tareas de mis equipos"}]},{label:"Por dificultad",type:"select",id:"difficulty",options:[{id:1,name:"Muy facil"},{id:2,name:"Facil"},{id:3,name:"Media"},{id:4,name:"Dificil"},{id:5,name:"Muy dificil"}]}],nr=()=>{const{user:e}=ve(),[t,s]=u.useState([...Ca]),o=[{roles:[...Kt],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return u.useEffect(()=>{const n=[...Ca];o.forEach(l=>{if(l.roles.includes(e.role)){const d=n.find(c=>c.id===l.id);d&&(d.options.some(m=>m.id==="todas")||(d.options=[{id:"todas",name:"Todas las tareas"},...d.options]))}});const i=JSON.stringify(t),r=JSON.stringify(n);i!==r&&s(n)},[e.role]),{filters:t}},or="/api/tareas/bulk-update-status";async function rr(e,t){const{data:s}=await e.post(or,t);return s}function ir(e){var t,s,o,n;if(at.isAxiosError(e)){const i=(t=e.response)==null?void 0:t.status,r=(s=e.response)==null?void 0:s.data;if(i===400){if(typeof r=="string"&&r.trim().length>0)return r.trim();if(r&&typeof r=="object"){const l=r.message;if(typeof l=="string"&&l.trim())return l.trim();const d=(o=r.details)==null?void 0:o.errors,c=(n=d==null?void 0:d[0])==null?void 0:n.message;if(typeof c=="string"&&c.trim())return c.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 lr(){const{tasks_api:e}=fe(),{user:t}=ve();return de.useMutation({mutationKey:["tareas","bulk-update-status"],mutationFn:async s=>{const o=s.user_id??(t==null?void 0:t.id);if(o==null||o<1)throw new Error("No hay usuario válido para la actualización masiva.");try{return await rr(e,{...s,user_id:o})}catch(n){throw new Error(ir(n))}}})}const Nt={MOVE_TO_TRABAJANDO:"kanban-bulk-move-trabajando",MOVE_TO_POR_HACER:"kanban-bulk-move-por-hacer",MOVE_TO_COMPLETADAS:"kanban-bulk-move-completadas"};function cr(e){const{isBulkLoading:t}=e;return[{type:"button",label:"Cancelar",icon:ne.faXmark,color:"secondary",pill:"pill",disabled:t,onClick:()=>{t||(e.setPendingTargetStatus(null),e.setActiveButtonId(null))}},{type:"button",label:"Confirmar",icon:ne.faCheck,color:"secondary",pill:"pill",disabled:t,onClick:()=>{t||e.onConfirmBulkMove()}}]}const Ct="secondary";function dr(e){const t=cr({setActiveButtonId:e.setActiveButtonId,setPendingTargetStatus:e.setPendingTargetStatus,onConfirmBulkMove:e.onConfirmBulkMove,isBulkLoading:e.isBulkLoading});return e.baseColumn==="Por hacer"?[{id:Nt.MOVE_TO_TRABAJANDO,label:"Mover a trabajando",icon:ne.faArrowRight,color:Ct,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(1)},addons:t}]:e.baseColumn==="Trabajando"?[{id:Nt.MOVE_TO_POR_HACER,label:"Mover a por hacer",icon:ne.faArrowLeft,color:Ct,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(0)},addons:t},{id:Nt.MOVE_TO_COMPLETADAS,label:"Mover a completadas",icon:ne.faArrowRight,color:Ct,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(2)},addons:t}]:[]}const mr="Seleccionados";function ds(){const e=Vt(),[t,s]=u.useState(null),o=t!==null,n=de.useQueryClient(),{mutate:i}=lr(),r=(e==null?void 0:e.selectedTaskIds.length)??0;u.useEffect(()=>{r===0&&s(null)},[r]);const l=u.useCallback(()=>{e!=null&&e.isBulkLoading||e==null||e.setPendingTargetStatus(null)},[e]),d=u.useCallback(()=>{s(null),e==null||e.exitBulkSelectionMode()},[e]),c=u.useCallback(()=>{if(!e)return;const f=e.pendingTargetStatus,g=e.selectedTaskIds;if(f==null||g.length===0)return;const h={tasks_ids:[...g],estatus:f,...f===2?{ended_at:new Date().toISOString()}:{}};e.setIsBulkLoading(!0),i(h,{onSettled:()=>{e.setIsBulkLoading(!1)},onSuccess:async()=>{await e.invalidateAfterBulkSuccess(n),s(null),e.exitBulkSelectionMode()},onError:()=>{s(null),e.setPendingTargetStatus(null)}})},[e,i,n]),m=u.useMemo(()=>e?dr({baseColumn:e.baseColumn,setPendingTargetStatus:e.setPendingTargetStatus,setActiveButtonId:s,onConfirmBulkMove:c,isBulkLoading:e.isBulkLoading}):[],[e,c]);return!e||r===0||e.baseColumn!=="Por hacer"&&e.baseColumn!=="Trabajando"?null:a.jsx(p.Toolbar,{visible:!0,count:r,text:mr,activeButtonId:t,onActiveButtonIdChange:s,onBackClick:l,buttons:m,onClose:d,showCounterInButtonsView:!o,showBackButton:!o,showCloseButton:!o})}const ms=["to_do_tasks","working_tasks","done_tasks"],us="tasksProject";function ur(e){return Promise.all(ms.map(t=>e.invalidateQueries({queryKey:[t]}))).then(()=>{})}function pr(e){return Promise.all(ms.map(t=>e.resetQueries({queryKey:[t]}))).then(()=>{})}function fr(e){return e.refetchQueries({queryKey:[us],type:"active"}).then(()=>{})}function gr(e){return e.invalidateQueries({queryKey:[us]}).then(()=>{})}function hr(e){const t=!!(e.repeatsToDo&&e.repeats===e.repeatsToDo),s=!e.repeatsToDo||e.repeatsToDo===1,o=e.status===0;return t||s||o}function xr(e,t){return(e??"")!==""&&(t??0)===2||!(e??"")}function ps(e){return e.status===2||!hr(e)?!1:xr(e.nameRequiredTask,e.statusRequiredTask)}const br=["Por hacer","Trabajando","Completadas"],yr=()=>{const{defineFields:e}=ke(),{tasksProject:t}=st(),{filters:s}=nr();u.useEffect(()=>{e([...s])},[e,s]);const o=u.useMemo(()=>{var i;return(((i=t==null?void 0:t.data)==null?void 0:i.filter(r=>{var l;return(((l=r==null?void 0:r.tasks)==null?void 0:l.length)??0)===0}))??[]).reduce((r,l)=>(r[l.status]=r[l.status]||[],r[l.status].push(l),r),{})},[t==null?void 0:t.data]);return a.jsxs(as,{invalidateAfterBulkSuccess:gr,children:[a.jsx(ds,{}),a.jsx("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-gap-8",children:br.map((n,i)=>{const r=(o==null?void 0:o[i])??[];return a.jsx(xt,{total:r.length,title:n,tasks:r,isFetching:t==null?void 0:t.isFetching,isLoadingData:t==null?void 0:t.isLoading,bulkSelectAllIds:()=>Promise.resolve(r.filter(l=>ps({status:l.status,nameRequiredTask:l.nameRequiredTask,statusRequiredTask:l.statusRequiredTask,repeatsToDo:l.repeatsToDo,repeats:l.repeats})).map(l=>l.id))},n)})})]})};function jr(e,t){return!e||e.length!==t.length?!1:JSON.stringify(e)===JSON.stringify(t)}async function fs(e){const t=[];let s=1;for(;;){const{tasks:o}=await pt({filters:{...e.filters,status:e.status,...ht(s)},tasks_api:e.tasks_api});for(const n of o)ps({status:n.status,nameRequiredTask:n.nameRequiredTask,statusRequiredTask:n.statusRequiredTask,repeatsToDo:n.repeatsToDo,repeats:n.repeats})&&t.push(n.id);if(o.length<gt)break;s+=1}return t}const wr=()=>{var i,r;const{tasks_api:e}=fe(),{toDoTasks:t,total:s,filtersToSend:o}=ls(),n=[...((r=(i=t==null?void 0:t.data)==null?void 0:i.pages)==null?void 0:r.flatMap(l=>l.tasks))??[]];return a.jsx(xt,{total:s,title:"Por hacer",tasks:n,loadNextPage:()=>Yt(t),isFetching:t==null?void 0:t.isFetching,isLoadingData:t==null?void 0:t.isLoading,bulkSelectAllIds:()=>fs({tasks_api:e,filters:o,status:"por_hacer"})})},vr=()=>{const{tasks_api:e}=fe(),{user:t}=ve(),{filters:s}=ke(),o=u.useMemo(()=>Jt(s,t,"trabajando"),[s,t.id,t.role]),n=Zt(s),i=de.useInfiniteQuery({initialPageParam:1,queryKey:["working_tasks",o],enabled:n&&!!(t!=null&&t.id),queryFn:({pageParam:l})=>pt({filters:{...o,status:"trabajando",...ht(l)},tasks_api:e}),staleTime:1e3*60*60*24,getNextPageParam:Xt}),r=u.useMemo(()=>{var l,d,c;return((c=(d=(l=i.data)==null?void 0:l.pages)==null?void 0:d[0])==null?void 0:c.total)??0},[i.data]);return{workingTasks:i,total:r,filtersToSend:o}},_r=()=>{var i,r;const{tasks_api:e}=fe(),{workingTasks:t,total:s,filtersToSend:o}=vr(),n=[...((r=(i=t==null?void 0:t.data)==null?void 0:i.pages)==null?void 0:r.flatMap(l=>l.tasks))??[]];return a.jsx(xt,{total:s,title:"Trabajando",tasks:n,loadNextPage:()=>Yt(t),isFetching:t==null?void 0:t.isFetching,bulkSelectAllIds:()=>fs({tasks_api:e,filters:o,status:"trabajando"})})},Tr=()=>{const{user:e}=ve(),{tasks_api:t}=fe(),{filters:s}=ke(),o=u.useMemo(()=>Jt(s,e,"completadas"),[s,e.id,e.role]),n=Zt(s),i=de.useInfiniteQuery({initialPageParam:1,queryKey:["done_tasks",o],enabled:n&&!!(e!=null&&e.id),queryFn:({pageParam:l})=>pt({filters:{...o,status:"completadas",...ht(l)},tasks_api:t}),staleTime:1e3*60*60*24,getNextPageParam:Xt}),r=u.useMemo(()=>{var l,d,c;return((c=(d=(l=i.data)==null?void 0:l.pages)==null?void 0:d[0])==null?void 0:c.total)??0},[i.data]);return{doneTasks:i,total:r,filtersToSend:o}},Nr=()=>{var o,n;const{doneTasks:e,total:t}=Tr(),s=[...((n=(o=e==null?void 0:e.data)==null?void 0:o.pages)==null?void 0:n.flatMap(i=>i.tasks))??[]];return a.jsx(xt,{title:"Completadas",tasks:s,loadNextPage:()=>Yt(e),isFetching:e==null?void 0:e.isFetching,total:t})};class ut{static toSalesmanUsers(t){return{id:t.id,name:t.nombre}}}const Cr=()=>{const{tasks_api:e}=fe(),{filters:t}=ke(),{user:s}=ve(),o=async()=>(await e.get("/api/obtener-comerciales")).data.map(ut.toSalesmanUsers),n=async()=>{var l;return(await e.get("/api/listado_tareas",{params:{...ra(t),owner:{user:s.id,config:et((l=t==null?void 0:t.owner)==null?void 0:l.config,s.role),role:s.role},justProjects:!0,cancelada:!1}})).data.map(ut.toSalesmanUsers)};return{getSalesmanAndProjects:u.useCallback(async(r={})=>{var h;const l={...t,...r},d=et((r==null?void 0:r["owner.config"])??((h=t==null?void 0:t.owner)==null?void 0:h.config),s==null?void 0:s.role),c={...l};delete c["owner.config"];const m=ra(c),[f,g]=await Promise.all([e.get("/api/obtener-comerciales"),e.get("/api/listado_tareas",{params:{...m,owner:{user:s==null?void 0:s.id,config:d,role:s.role},justProjects:!0,cancelada:!1}})]);return{salesmanUsers:f.data.map(ut.toSalesmanUsers),projects:g.data.map(ut.toSalesmanUsers)}},[e,t,s==null?void 0:s.id,s==null?void 0:s.role]),getProjects:n,getSalesmans:o}},Sr=()=>{const{user:e}=ve(),[t,s]=u.useState([...la]),o=[{roles:[...Kt],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return u.useEffect(()=>{const n=[...la];o.forEach(l=>{if(l.roles.includes(e.role)){const d=n.find(c=>c.id===l.id);d&&(d.options.some(m=>m.id==="todas")||(d.options=[{id:"todas",name:"Todas las tareas"},...d.options]))}});const i=JSON.stringify(t),r=JSON.stringify(n);i!==r&&s(n)},[e.role]),{filters:t}},Er=()=>{const{defineFields:e,initialFilters:t,fields:s}=ke(),{getSalesmanAndProjects:o}=Cr(),{filters:n}=Sr(),i=u.useRef(s);i.current=s;const r=(t==null?void 0:t["owner.config"])??"yo_y_mis_equipos";return u.useEffect(()=>{let l=!1;return(async()=>{const{salesmanUsers:c,projects:m}=await o({"owner.config":r});if(l)return;const f=n.map(g=>g.id==="project.id"?{...g,options:m}:g.id==="salesman.id"?{...g,options:c}:g);jr(i.current,f)||e(f)})(),()=>{l=!0}},[e,n,o,r]),a.jsxs(as,{invalidateAfterBulkSuccess:ur,children:[a.jsx(ds,{}),a.jsxs("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-gap-8",children:[a.jsx(wr,{}),a.jsx(_r,{}),a.jsx(Nr,{})]})]})},gs=u.createContext({}),Ar=({children:e})=>{const[t,s]=u.useState([]),o=n=>{s(i=>i.includes(n)?i.filter(r=>r!==n):[...i,n])};return a.jsx(gs.Provider,{value:{selectedTasks:t,selectTask:o},children:e})},Pr=()=>u.useContext(gs),Dr=()=>{const e=()=>a.jsxs("div",{className:"tm-flex tm-w-full tm-gap-m",children:[a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-full tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-w-[30%] tm-animate-pulse tm-rounded-md tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-w-[10%] tm-animate-pulse tm-rounded-md tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-w-[10%] tm-animate-pulse tm-rounded-md tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"})]});return a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-m",children:[a.jsx(e,{}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-m tm-pl-5",children:[a.jsx(e,{}),a.jsx("div",{className:"tm-pl-5",children:a.jsx(e,{})})]}),a.jsx(e,{}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-m tm-pl-5",children:[a.jsx(e,{}),a.jsx("div",{className:"tm-pl-5",children:a.jsx(e,{})})]})]})},hs=({startDate:e,endDate:t})=>a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"tm-flex tm-h-[30px] tm-w-fit tm-items-center tm-justify-center tm-gap-s tm-rounded-md tm-bg-surface-default tm-px-xl",children:[a.jsx(p.Icon,{name:ne.faCalendar,size:"xs",color:"current"}),a.jsxs(p.Text,{children:[" ",xa(e)]})]}),a.jsx(p.Icon,{name:ne.faArrowRight,size:"xs",color:"current"}),a.jsxs("div",{className:"tm-flex tm-h-[30px] tm-w-fit tm-items-center tm-justify-center tm-gap-s tm-rounded-md tm-bg-surface-default tm-px-xxxl",children:[a.jsx(p.Icon,{name:ne.faCalendar,size:"xs",color:"current"}),a.jsxs(p.Text,{children:[" ",xa(t)]})]})]}),xs=({id:e,priority:t,difficulty:s,endDate:o,atraso:n,role:i,status:r})=>{const[l,d]=u.useState(!1),c=ft(i,r),m={0:{title:"N/A",color:Se.success.regular,bg:"tm-bg-texts-placeholder tm-border-texts-placeholder",border:"tm-border-success-medium",borderHover:"hover:tm-border-success-dark"},1:{title:"Baja",color:Se.success.regular,bg:"tm-bg-success-medium tm-border-success-pastel",border:"tm-border-success-pastel",borderHover:"hover:tm-border-success-dark"},2:{title:"Media",color:Se.warning.regular,bg:"tm-bg-warning-light tm-border-warning-regular",border:"tm-border-warning-regular",borderHover:"hover:tm-border-warning-dark"},3:{title:"Alta",color:Se.danger.regular,bg:"tm-bg-danger-light tm-border-danger-regular",border:"tm-border-danger-regular",borderHover:"hover:tm-border-danger-dark"}},f={1:{title:"Muy fácil",color:Se.success.dark,iconColor:"brand",bg:"tm-bg-success-medium tm-border-success-regular",border:"tm-border-success-medium",borderHover:"hover:tm-border-success-dark"},2:{title:"Fácil",color:Se.success.regular,iconColor:"success",bg:"tm-bg-success-medium tm-border-success-pastel",border:"tm-border-success-medium",borderHover:"hover:tm-border-success-dark"},3:{title:"Media",color:Se.warning.regular,iconColor:"warning",bg:"tm-bg-warning-light tm-border-warning-regular",border:"tm-border-warning-medium",borderHover:"hover:tm-border-warning-dark"},4:{title:"Difícil",color:Se.danger.regular,iconColor:"danger",bg:"tm-bg-danger-light tm-border-danger-regular",border:"tm-border-danger-medium",borderHover:"hover:tm-border-danger-dark"},5:{title:"Muy difícil",color:Se.danger.dark,iconColor:"danger",bg:"tm-bg-danger-light tm-border-danger-regular",border:"tm-border-danger-medium",borderHover:"hover:tm-border-danger-dark"}},g=()=>{if(s==null||Number.isNaN(Number(s)))return 1;const b=Math.trunc(Number(s));return b===0?1:b>=1&&b<=5?b:1},h=()=>{if(t==null||Number.isNaN(Number(t)))return 0;const b=Math.trunc(Number(t));return b>=0&&b<=3?b:0},x=f[g()]??f[1],y=m[h()]??m[0],j=o instanceof Date&&!Number.isNaN(o.getTime())?`${o.getDate()} ${$t(o.getMonth()).slice(0,3)}`:"—";return a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",className:"tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center tm-gap-8 tm-rounded-[8px] tm-bg-surface-default hover:tm-bg-surface-hover",children:a.jsx(Me,{trigger:a.jsx(p.Icon,{name:ne.faAlignCenter,size:"xs",color:"current"}),children:a.jsx("div",{className:"tm-px-8 tm-py-4",children:a.jsx(p.Text,{children:"Espéralo muy pronto..."})})})}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx("div",{className:`tm-gap-s ${x.border} ${x.borderHover} transition-all duration-300 tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center
6
- tm-rounded-[8px] tm-border tm-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)]`,children:a.jsx(Wt,{difficulty:s,id:e,canEdit:c})}),a.jsx("div",{className:`tm-gap-s ${y.bg.replace(/\bbg-|border-/g,"tm-$&")??"tm-bg-light-gray-50"} transition-all duration-300 tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center tm-rounded-[8px]
7
- tm-border tm-border-success-medium tm-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)] hover:tm-border-success-dark`,children:a.jsx(Qt,{priority:h(),id:e,canEdit:c})}),(n==null?void 0:n.activa)&&a.jsx("div",{onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),className:`transition-all duration-300 tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center tm-gap-s tm-rounded-[8px]
8
- tm-border tm-border-danger-medium tm-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)] hover:tm-border-danger-dark`,children:a.jsx(Me,{trigger:a.jsx(p.Icon,{name:ne.faTriangleExclamation,size:"xs",color:l?"warning":"primary"}),children:a.jsx("div",{className:"tm-px-8 tm-py-4",children:a.jsx(p.Text,{children:n==null?void 0:n.motivo})})})}),a.jsx(p.Icon,{name:ne.faCalendar,size:"xs",color:"current"}),a.jsx(p.Text,{children:j})]})]})},Ir=({id:e})=>{const{selectedTasks:t,selectTask:s}=Pr();return a.jsxs(a.Fragment,{children:[a.jsx("label",{className:"tm-flex tm-h-[20px] tm-w-[20px] tm-cursor-pointer tm-items-center tm-justify-center tm-rounded-md tm-border-2 tm-border-default",htmlFor:e.toString(),children:a.jsx("span",{className:`${t.includes(e)?"tm-opacity-100":"tm-opacity-0"} tm-transition-opacity tm-duration-500`,children:a.jsx(p.Icon,{name:ne.faCheck,size:"xs",style:{color:Se.primary.regular},color:"current"})})}),a.jsx("input",{className:"tm-hidden",id:e.toString(),type:"checkbox",onChange:()=>s(e)})]})},bs=({task:e})=>a.jsx(Me,{trigger:a.jsx(p.Text,{children:e}),children:a.jsx("div",{className:"tm-py-2 tm-px-4",children:a.jsx(p.Text,{children:e})})}),Fr=({id:e})=>{var d,c,m,f;const[t,s]=u.useState(!1),{tasksProject:o}=st(),{reasignResponsible:n}=He(),{getOBPUrlApi:i}=fe(),r=(d=o==null?void 0:o.data)==null?void 0:d.find(g=>g.id===e),{user:l}=ve();return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"tm-border-b tm-border-default tm-pb-3",children:a.jsxs("div",{className:"tm-mb-3 tm-ml-[30px] tm-mt-1 tm-flex tm-flex-wrap tm-items-center tm-gap-xl tm-rounded-md tm-p-2 hover:tm-bg-surface-hover",onClick:()=>s(!0),children:[!(r!=null&&r.nameRequiredTask)||(r==null?void 0:r.nameRequiredTask)!==""&&(r==null?void 0:r.statusRequiredTask)===2&&a.jsx(Ir,{id:e}),a.jsx(rs,{id:e,idAtraso:(c=r==null?void 0:r.atraso)==null?void 0:c.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)&&a.jsx(cs,{idTask:r.id,paused:r.paused,popupId:`child-task-pause-menu-${r.id}`,children:g=>a.jsx(p.Button,{ref:g,color:"tertiary",icon:r!=null&&r.paused?ne.faPause:ne.faPlay,className:"tm-font-regular tm-flex tm-items-center tm-gap-8 tm-text-sm tm-text-gray-400",size:"xs"})}),a.jsx(os,{responsibleCandidateIds:((m=r==null?void 0:r.users)==null?void 0:m.map(g=>g.id))??[],role:l==null?void 0:l.role,status:r==null?void 0:r.status,onClick:async(g,h)=>{await n({idNewResponsible:g,id:e,typeOfSelect:h})},responsible:r==null?void 0:r.responsible,users:((f=r==null?void 0:r.users)==null?void 0:f.map(g=>Ut(g,i())))??[]}),a.jsx(bs,{task:(r==null?void 0:r.task)??""}),a.jsx(xs,{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,role:l==null?void 0:l.role,status:(r==null?void 0:r.status)??-1}),a.jsx(hs,{startDate:r==null?void 0:r.startDate,endDate:r==null?void 0:r.endDate})]})}),a.jsx(is,{taskId:e,isOpen:t,setIsOpen:s,initialFromList:(r==null?void 0:r.panelDataFromList)??void 0})]})},ys=({id:e})=>{var d,c,m,f,g,h;const{user:t}=ve(),{tasksProject:s,openTasks:o,openTask:n}=st(),i=(d=s==null?void 0:s.data)==null?void 0:d.find(x=>x.id===e),l=(()=>{var j;const x=s==null?void 0:s.data,y=[];return(j=i==null?void 0:i.tasks)==null||j.forEach(b=>{const w=x.find(v=>v.id===(b==null?void 0:b.id));w&&y.push(w)}),y})();return i?a.jsxs("div",{className:"tm-mb-2 tm-flex tm-flex-col tm-gap-m tm-overflow-y-auto",children:[a.jsxs("div",{className:"tm-flex tm-cursor-pointer tm-flex-wrap tm-items-center tm-gap-16 tm-rounded-md tm-p-2 hover:tm-bg-surface-hover",onClick:()=>n(e),children:[a.jsx("button",{type:"button",className:`${o.includes(e)?"":"tm--rotate-90"} tm-transition-all tm-duration-300`,children:a.jsx(p.Icon,{name:ne.faChevronDown,size:"sm",style:{color:Se.texts.subtext},color:"current"})}),a.jsx("div",{className:"tm-mx-1 tm-flex tm-h-[28px] tm-min-h-[28px] tm-w-fit tm-min-w-[28px] tm-items-center tm-justify-center tm-rounded-full tm-bg-surface-default",children:a.jsx("p",{className:"tm-text-primary tm-text-md",children:((c=i==null?void 0:i.tasks)==null?void 0:c.length)===0?1:l.length})}),a.jsx(bs,{task:(i==null?void 0:i.task)??""}),a.jsx(xs,{id:e,priority:i==null?void 0:i.priority,difficulty:i==null?void 0:i.difficulty,endDate:i==null?void 0:i.endDate,atraso:i==null?void 0:i.atraso,role:t==null?void 0:t.role,status:(i==null?void 0:i.status)??-1}),a.jsx(hs,{startDate:i==null?void 0:i.startDate,endDate:i==null?void 0:i.endDate}),a.jsxs("button",{type:"button",className:"tm-flex tm-h-[30px] tm-w-fit tm-items-center tm-justify-center tm-gap-s tm-rounded-md tm-bg-surface-default tm-px-m hover:tm-bg-surface-hover",children:[a.jsx(p.Icon,{name:ne.faDiagramSubtask,size:"sm",color:"current"}),a.jsx(p.Text,{children:((m=i==null?void 0:i.tasks)==null?void 0:m.length)===0?1:(f=i==null?void 0:i.tasks)==null?void 0:f.length})]})]}),o.includes(e)&&a.jsx("div",{className:"tm-ml-[30px]",children:((g=i==null?void 0:i.tasks)==null?void 0:g.length)>0?(h=i==null?void 0:i.tasks)==null?void 0:h.map(x=>a.jsx(ys,{id:x==null?void 0:x.id})):a.jsx(Fr,{id:i==null?void 0:i.id})})]}):null},Mr=()=>{const{tasksProject:e,projectID:t}=st();if(e!=null&&e.isFetching||e!=null&&e.isLoading)return a.jsx(Dr,{});const o=((e==null?void 0:e.data)??[]).filter(n=>n.isPrincipalTask);return a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-m",children:a.jsx(Ar,{project:t,children:o.sort((n,i)=>(n.orden??0)-(i.orden??0)).map(n=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-m tm-border-b tm-border-default tm-pb-m ",children:a.jsx(ys,{id:n.id})}))})})};function kr({title:e,color:t,icon:s}){return a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[a.jsx(p.Icon,{name:s,size:"md",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotoneSecondary:.5}),a.jsx("p",{className:"tm-text-base tm-py-0.5 tm-font-body-sm-bold tm-text-body-sm-bold tm-leading-none tm-text-primary",children:e})]})}function Lr({value:e,onChange:t}){return a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-4",children:[a.jsx("label",{className:"tm-text-body-sm-bold tm-text-primary",children:"Nombre del equipo"}),a.jsx(p.Input,{size:"xs",placeholder:"Creative",value:e,onChange:s=>t(s.target.value)})]})}const js=({title:e})=>a.jsxs("div",{className:"flex-1 tm-flex tm-items-center tm-gap-x-8",children:[a.jsx(p.Icon,{background:!0,name:ne.faFilePen,color:"blue",size:"lg"}),a.jsx(p.Text,{size:"xl",weight:"bold",children:e})]}),Xe={search:"",debouncedSearch:"",filters:[]},Or={"kanban-general":{...Xe},"lista-campanias":{...Xe},"kanban-campania":{...Xe},"teams-container":{...Xe},"templates-container":{...Xe}},bt=We.create((e,t)=>({viewFilters:Or,currentPath:null,debounceTimeouts:{},setCurrentPath:s=>{const o=t().currentPath;e({currentPath:s}),o&&o!==s&&t().resetPathData(o)},setSearch:(s,o)=>{const n=o||t().currentPath;if(!n)return;const i=`search_${n}`,r=t().debounceTimeouts[i];r&&clearTimeout(r),e(d=>({viewFilters:{...d.viewFilters,[n]:{...d.viewFilters[n],search:s}}}));const l=setTimeout(()=>{e(d=>({viewFilters:{...d.viewFilters,[n]:{...d.viewFilters[n],debouncedSearch:s}},debounceTimeouts:{...d.debounceTimeouts,[i]:void 0}}))},500);e(d=>({debounceTimeouts:{...d.debounceTimeouts,[i]:l}}))},setFilters:(s,o)=>{const n=o||t().currentPath;n&&e(i=>({viewFilters:{...i.viewFilters,[n]:{...i.viewFilters[n],filters:s}}}))},getSearch:s=>{var n;const o=s||t().currentPath;return o&&((n=t().viewFilters[o])==null?void 0:n.search)||""},getDebouncedSearch:s=>{var n;const o=s||t().currentPath;return o&&((n=t().viewFilters[o])==null?void 0:n.debouncedSearch)||""},getFilters:s=>{var n;const o=s||t().currentPath;return o?((n=t().viewFilters[o])==null?void 0:n.filters)||[]:[]},resetPathData:s=>{const o=`search_${s}`,n=t().debounceTimeouts[o];n&&clearTimeout(n),e(i=>({viewFilters:{...i.viewFilters,[s]:{...Xe}},debounceTimeouts:{...i.debounceTimeouts,[o]:void 0}}))}}));function ws({path:e}){const{getSearch:t,setSearch:s}=bt(),o=t(e);return a.jsx(p.Input,{leftSlot:ne.faSearch,placeholder:"Buscar...",size:"xs",value:o,onChange:n=>s(n.target.value,e)})}const Sa={fase_plantilla:"",tipo_plantilla:"",modo_configuracion:"",categoria:"",formato_salida:"",tipo_medio:"",medio_especifico:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},Br={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},Rr={fase_plantilla:"",tipo_plantilla:"",categoria:"",tipo_medio:"",medio_especifico:"",modo_configuracion:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},Ea={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},Le=We.create(e=>({path:"",viewMode:"grid",isOpenModalLimit:!1,template:null,clave:"XX-XXX-XX-XXX-XX-X-X",templateFormData:Sa,disabledFields:Ea,claveParams:Rr,paramsTipo:Br,isEditTemplate:!1,openModalCreateTemplate:!1,currentTemplateForEdit:null,refetch:null,openModalUnsavedChanges:!1,isDuplicateTemplate:!1,hasFormChanges:!1,openModalPublishTemplate:!1,currentTemplateId:null,openModalDeleteTemplate:!1,setPath:t=>e({path:t}),setViewMode:t=>e({viewMode:t}),setIsOpenModalLimit:t=>e({isOpenModalLimit:t}),setTemplate:t=>e({template:t}),setClave:t=>e({clave:t}),setTemplateFormData:t=>{e(s=>({templateFormData:{...s.templateFormData,...t}}))},resetTemplateFormData:()=>e({templateFormData:Sa}),setDisableField:({fields:t,value:s})=>{for(const o of t)e(n=>({disabledFields:{...n.disabledFields,[o]:s}}))},resetDisabledFields:()=>e({disabledFields:Ea}),setClaveParams:({field:t,value:s})=>{e(o=>({claveParams:{...o.claveParams,[t]:s}}))},resetClave:()=>e(()=>({clave:"XX-XXX-XX-XXX-XX-X-X"})),setParamTipo:t=>e(s=>({paramsTipo:{...s.paramsTipo,...t}})),setIsEditTemplate:t=>e({isEditTemplate:t}),setOpenModalCreateTemplate:t=>e({openModalCreateTemplate:t}),setCurrentTemplateForEdit:t=>e({currentTemplateForEdit:t}),setRefetch:t=>e({refetch:t}),setOpenModalUnsavedChanges:t=>e({openModalUnsavedChanges:t}),setIsDuplicateTemplate:t=>e({isDuplicateTemplate:t}),setHasFormChanges:t=>e({hasFormChanges:t}),setOpenModalPublishTemplate:t=>e({openModalPublishTemplate:t}),setCurrentTemplateId:t=>e({currentTemplateId:t}),setOpenModalDeleteTemplate:t=>e({openModalDeleteTemplate:t})})),vs=e=>{const{getSearch:t,getDebouncedSearch:s,setSearch:o,getFilters:n,setFilters:i,resetPathData:r}=bt();return{search:t(e),debouncedSearch:s(e),filters:n(e),setSearch:l=>o(l,e),setFilters:l=>i(l,e),resetData:()=>r(e)}},zr=()=>a.jsx(js,{title:"Flujos de trabajo"}),ze=We.create(e=>({activeTemplate:null,setActiveTemplate:t=>e({activeTemplate:t}),clearActiveTemplate:()=>e({activeTemplate:null})})),_e=We.create((e,t)=>({mode:"grid",id:null,setMode:(s,o)=>{const n=t();if(s==="grid"||n.id!==null&&n.id!==o){const{clearAllGroupData:r}=t();r()}e({mode:s,id:o??null})},setId:s=>e({id:s}),reset:()=>{const{clearAllGroupData:s}=t();s(),e({mode:"grid",id:null})},addNode:null,addBranch:null,addNodeFromHandle:null,addNodeWithType:null,savePositions:null,loadPositions:null,clearPositions:null,activePlusNode:null,templateViewModes:{},setViewMode:(s,o)=>{const{templateViewModes:n}=t();e({templateViewModes:{...n,[s]:o}})},getViewMode:s=>{const{templateViewModes:o}=t();return o[s]??"readonly"},clearViewMode:s=>{const{templateViewModes:o}=t(),n={...o};delete n[s],e({templateViewModes:n})},flowViewportByTemplateId:{},setFlowViewportForTemplate:(s,o)=>{const{flowViewportByTemplateId:n}=t();e({flowViewportByTemplateId:{...n,[s]:{x:o.x,y:o.y,zoom:o.zoom}}})},expandedGroups:new Set,groupTemplateData:{},toggleGroupExpansion:s=>{const{expandedGroups:o}=t(),n=new Set(o);n.has(s)?n.delete(s):n.add(s),e({expandedGroups:n})},setGroupTemplateData:(s,o)=>{const{groupTemplateData:n}=t();e({groupTemplateData:{...n,[s]:o}})},clearGroupTemplateData:s=>{const{groupTemplateData:o}=t(),n={...o};delete n[s],e({groupTemplateData:n})},clearAllGroupData:()=>{e({expandedGroups:new Set,groupTemplateData:{}})},copiedNodes:[],setCopiedNodes:s=>e({copiedNodes:s}),clearCopiedNodes:()=>e({copiedNodes:[]}),expandGroup:null,collapseGroup:null})),_s=()=>{const{tasks_api:e}=fe();return{getTemplateWithTasks:async s=>{var o;try{const n=De.stringify({filters:{plantilla:{id:s}}},{encodeValuesOnly:!0}),i=await e.get(`/api/plantillas/plantilla-tareas-grafico?${n}`);if(i.data&&i.data.data)return i.data.data;throw new Error(`No se encontraron datos para la plantilla con ID ${s}`)}catch(n){throw console.error("Error en getTemplateWithTasks:",{error:n.message,status:(o=n.response)==null?void 0:o.status}),n}}}},Te={DIRTY:"dirty",IDLE:"idle",NEW:"new"},Pe={DRAFT:"draft",PUBLISHED:"published",DELETED:"deleted"},Ye="templates",Je="templates_states";function qr(e,t){return We.create((s,o)=>{let n=null;const i=f=>s({isLoading:f}),r=f=>s({error:f}),l=f=>s({data:f}),d=()=>new Promise((f,g)=>{const h=indexedDB.open(e.name,e.version);h.onerror=()=>{r("Error al abrir la base de datos"),g(new Error("Error al abrir la base de datos"))},h.onsuccess=()=>{n=h.result,s({isConnected:!0,error:null}),f(n)},h.onupgradeneeded=x=>{const y=x.target.result;e.stores.forEach(j=>{var b;if(!y.objectStoreNames.contains(j.name)){const w=y.createObjectStore(j.name,{keyPath:j.keyPath,autoIncrement:j.autoIncrement??!1});(b=j.indexes)==null||b.forEach(v=>{w.createIndex(v.name,v.keyPath,v.options)})}})}}),c=(f="readonly")=>{if(!n)throw new Error("Base de datos no conectada");return n.transaction(t,f)},m=(f="readonly")=>c(f).objectStore(t);return{data:[],isLoading:!1,error:null,isConnected:!1,connect:async()=>{try{i(!0),r(null),await d(),await o().getAll()}catch(f){r(f instanceof Error?f.message:"Error desconocido")}finally{i(!1)}},disconnect:()=>{n&&(n.close(),n=null,s({isConnected:!1,data:[]}))},add:async f=>{try{i(!0),r(null);const g=m("readwrite");return new Promise((h,x)=>{const y=g.add(f);y.onsuccess=async()=>{await o().getAll(),h()},y.onerror=()=>{r("Error al agregar elemento"),x(new Error("Error al agregar elemento"))}})}finally{i(!1)}},addMany:async f=>{try{i(!0),r(null);const g=m("readwrite");return new Promise((h,x)=>{let y=0,j=!1;f.forEach(b=>{const w=g.add(b);w.onsuccess=()=>{y++,y===f.length&&!j&&o().getAll().then(()=>h())},w.onerror=()=>{j||(j=!0,r("Error al agregar elementos"),x(new Error("Error al agregar elementos")))}})})}finally{i(!1)}},get:async f=>{try{r(null);const g=m();return new Promise((h,x)=>{const y=g.get(f);y.onsuccess=()=>{h(y.result)},y.onerror=()=>{r("Error al obtener elemento"),x(new Error("Error al obtener elemento"))}})}catch(g){r(g instanceof Error?g.message:"Error desconocido");return}},getAll:async()=>{try{r(null);const f=m();return new Promise((g,h)=>{const x=f.getAll();x.onsuccess=()=>{const y=x.result;l(y),g(y)},x.onerror=()=>{r("Error al obtener elementos"),h(new Error("Error al obtener elementos"))}})}catch(f){return r(f instanceof Error?f.message:"Error desconocido"),[]}},update:async(f,g)=>{try{i(!0),r(null);const h=m("readwrite");return new Promise((x,y)=>{const j=h.get(f);j.onsuccess=()=>{const b=j.result;if(!b){r("Elemento no encontrado"),y(new Error("Elemento no encontrado"));return}const w={...b,...g},v=h.put(w);v.onsuccess=async()=>{await o().getAll(),x()},v.onerror=()=>{r("Error al actualizar elemento"),y(new Error("Error al actualizar elemento"))}},j.onerror=()=>{r("Error al obtener elemento para actualizar"),y(new Error("Error al obtener elemento para actualizar"))}})}finally{i(!1)}},delete:async f=>{try{i(!0),r(null);const g=m("readwrite");return new Promise((h,x)=>{const y=g.delete(f);y.onsuccess=async()=>{await o().getAll(),h()},y.onerror=()=>{r("Error al eliminar elemento"),x(new Error("Error al eliminar elemento"))}})}finally{i(!1)}},clear:async()=>{try{i(!0),r(null);const f=m("readwrite");return new Promise((g,h)=>{const x=f.clear();x.onsuccess=()=>{l([]),g()},x.onerror=()=>{r("Error al limpiar store"),h(new Error("Error al limpiar store"))}})}finally{i(!1)}},query:async(f,g)=>{try{r(null);const x=m().index(f);return new Promise((y,j)=>{const b=x.getAll(g);b.onsuccess=()=>{y(b.result)},b.onerror=()=>{r("Error en consulta"),j(new Error("Error en consulta"))}})}catch(h){return r(h instanceof Error?h.message:"Error desconocido"),[]}},queryRange:async(f,g,h)=>{try{r(null);const y=m().index(f);return new Promise((j,b)=>{const w=IDBKeyRange.bound(g,h),v=y.getAll(w);v.onsuccess=()=>{j(v.result)},v.onerror=()=>{r("Error en consulta por rango"),b(new Error("Error en consulta por rango"))}})}catch(x){return r(x instanceof Error?x.message:"Error desconocido"),[]}}}})}const St=new Map;function Aa(e,t,s=!0){const o=u.useMemo(()=>{const v=`${e.name}-${t}`;if(!St.has(v)){const N=qr(e,t);St.set(v,N)}return St.get(v)},[e.name,t]);u.useEffect(()=>{s&&!o.getState().isConnected&&o.getState().connect()},[s,o]);const n=o(v=>v.data),i=o(v=>v.isLoading),r=o(v=>v.error),l=o(v=>v.isConnected),d=u.useCallback(()=>o.getState().connect(),[o]),c=u.useCallback(()=>o.getState().disconnect(),[o]),m=u.useCallback(v=>o.getState().add(v),[o]),f=u.useCallback(v=>o.getState().addMany(v),[o]),g=u.useCallback(v=>o.getState().get(v),[o]),h=u.useCallback(()=>o.getState().getAll(),[o]),x=u.useCallback((v,N)=>o.getState().update(v,N),[o]),y=u.useCallback(v=>o.getState().delete(v),[o]),j=u.useCallback(()=>o.getState().clear(),[o]),b=u.useCallback((v,N)=>o.getState().query(v,N),[o]),w=u.useCallback((v,N,L)=>o.getState().queryRange(v,N,L),[o]);return{data:n,isLoading:i,error:r,isConnected:l,connect:d,disconnect:c,add:m,addMany:f,get:g,getAll:h,update:x,delete:y,clear:j,query:b,queryRange:w}}const Ts=u.createContext(void 0);function $r({children:e}){const[t,s]=u.useState(!1),[o,n]=u.useState(!0),[i,r]=u.useState(null),l={name:"template_tabs_v1",version:2,stores:[{name:Ye,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]},{name:Je,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]}]},d=Aa(l,Ye,!0),c=Aa(l,Je,!0),m=u.useRef(new Map);m.current.has(Ye)||m.current.set(Ye,d),m.current.has(Je)||m.current.set(Je,c);const f=d.isConnected,g=d.error;u.useEffect(()=>{m.current.set(Ye,d),m.current.set(Je,c)},[d,c]);const h=u.useCallback(y=>{const j=m.current.get(y);if(!j)throw new Error(`Store ${y} no encontrado. Asegúrate de que esté configurada en indexedDBConfig.`);return{data:j.data,isLoading:j.isLoading,add:j.add,addMany:j.addMany,get:j.get,getAll:j.getAll,update:j.update,delete:j.delete,clear:j.clear,query:j.query,queryRange:j.queryRange,error:j.error}},[]);u.useEffect(()=>{(async()=>{try{if(n(!0),r(null),await d.connect(),f)s(!0);else throw new Error("No se pudo establecer la conexión con IndexedDB")}catch(j){r(j instanceof Error?j.message:"Error desconocido")}finally{n(!1)}})()},[d.connect,f]),u.useEffect(()=>{g&&r(g)},[g]);const x={isInitialized:t,isInitializing:o,error:i,isConnected:f,getStore:h};return a.jsx(Ts.Provider,{value:x,children:e})}function Ns(){const e=u.useContext(Ts);if(e===void 0)throw new Error("useIndexedDBContext debe usarse dentro de IndexedDBProvider");return e}function ea(){const{getStore:e}=Ns();return e(Ye)}function Cs(){const{add:e}=ea(),t=async r=>{try{await e(r)}catch(l){console.error("Error al guardar plantilla a indexDB:",l)}},s=async r=>{const l={},d=c=>{c.id&&(l[c.id]=c),c.tareas&&Array.isArray(c.tareas)&&c.tareas.forEach(m=>{d(m)}),c.ids_t_dependientes&&Array.isArray(c.ids_t_dependientes)&&c.ids_t_dependientes.forEach(m=>{typeof m=="object"&&m.id&&d(m)}),c.plantilla_dependents&&Array.isArray(c.plantilla_dependents)&&c.plantilla_dependents.forEach(m=>{m.tarea_plantillas&&Array.isArray(m.tarea_plantillas)&&m.tarea_plantillas.forEach(f=>{d(f)})})};return r.tarea_plantillas.forEach(c=>{d(c)}),l},o=(r,l)=>{const d=l[r];if(!d)return[];const c=[d];return d.tareas&&Array.isArray(d.tareas)&&d.tareas.forEach(m=>{m.id&&c.push(...o(m.id,l))}),d.ids_t_dependientes&&Array.isArray(d.ids_t_dependientes)&&d.ids_t_dependientes.forEach(m=>{typeof m=="object"&&m.id?c.push(...o(m.id,l)):typeof m=="number"&&l[m]&&c.push(...o(m,l))}),c},n=(r,l)=>{const d=l[r];if(!d)return[];const c=[d];return d.tarea_padre&&l[d.tarea_padre]&&c.unshift(...n(d.tarea_padre,l)),c};return{hydrateTasks:async r=>{var c,m;const l=await s(r);return(m=(c=r==null?void 0:r.graph_layout)==null?void 0:c.snapshot)==null?void 0:m.nodes.map(f=>{if(f.type==="group")return{...f,data:{...f.data,type:"template"},type:"group",selected:!1};const g=f.data.tareaId?l[f.data.tareaId]:r;return g!=null&&g.start?{...f,data:{...g.plantilla,id:g.id},selected:!1}:{...f,data:{...g,type:"task"},selected:!1}})},initializeTemplateStore:t,indexedTasks:s,getTaskHierarchy:o,getTaskPath:n}}function Ss(){const{getStore:e}=Ns();return e(Je)}const ct=()=>{const{add:e,get:t,delete:s,update:o}=Ss(),{get:n}=ea(),i={created:[],updated:[],deleted:[]},r=async({templateId:h})=>{const x=await t(h);return x||null};return{addTaskToState:async({task:h})=>{const x=await r({templateId:h.plantilla.id}),y=await n(h.plantilla.id);if(console.log("🔄 template:",y),!x)e({...i,id:h.plantilla.id,created:[...i.created,h]});else{const j=x.created.findIndex(b=>b.id===h.id);if(j!==-1){const b=x.created[j];x.created[j]={...b,...h},await o(h.plantilla.id,x)}else x.created.push(h),await o(h.plantilla.id,x)}},getTaskFromState:r,removeTemplateStates:async h=>{await s(h)},updateTaskInState:async({task:h})=>{const x=await r({templateId:h.plantilla.id}),j=(await n(h.plantilla.id)).graph_layout.snapshot.nodes;if(console.log("🔄 nodes:",j),x){const b=x.updated.findIndex(w=>w.id===h.id);if(b!==-1){const w=x.updated[b];console.log("🔄 currentTask:",w),x.updated[b]={...w,...h}}else x.updated.push(h);await o(h.plantilla.id,x)}else e({...i,id:h.plantilla.id,updated:[...i.updated,h]})},removeTaskFromState:async({templateId:h,id:x})=>{const y=await r({templateId:h});if(y){if(x>0){const b=y.deleted.findIndex(w=>w===x);if(b!==-1){y.deleted.splice(b,1),await o(h,y);return}}const j=y.created.findIndex(b=>b.id===x);if(j!==-1){y.created.splice(j,1),await o(h,y);return}}else if(x>0){e({...i,id:h,deleted:[...i.deleted,x]});return}},removeParentIdFromNodes:async({templateId:h,id:x})=>{const y=await r({templateId:h});if(y){const j=y.created.findIndex(w=>w.id===x);if(j!==-1){y.created[j].tarea_padre=null,y.created[j].id_t_requerida=null,await o(h,y);return}const b=y.updated.findIndex(w=>w.id===x);if(b!==-1){y.updated[b].tarea_padre=null,y.updated[b].id_t_requerida=null,await o(h,y);return}}},updateNodeWithNewEdge:async({templateId:h,edge:x,task:y})=>{console.log("🔵 updateNodeWithNewEdge - Inicio",{templateId:h,taskId:y.id,taskData:y});const j=await r({templateId:h});if(console.log("🔵 updateNodeWithNewEdge - Estado actual:",j),j){console.log("🔵 updateNodeWithNewEdge - Estado existe, buscando tarea...");const b=j.created.findIndex(v=>v.id===y.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en created:",b),b!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en created"),j.created[b]=y,await o(h,j),console.log("✅ updateNodeWithNewEdge - Actualizado en created");return}const w=j.updated.findIndex(v=>v.id===y.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en updated:",w),w!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en updated"),j.updated[w]=y,await o(h,j),console.log("✅ updateNodeWithNewEdge - Actualizado en updated");return}if(console.log("🔵 updateNodeWithNewEdge - Tarea no encontrada en arrays"),y.id&&y.id!==0){const v=y.id<0;v?(console.log("🔵 updateNodeWithNewEdge - Agregando a created (tarea nueva)"),j.created.push(y)):(console.log("🔵 updateNodeWithNewEdge - Agregando a updated (tarea existente)"),j.updated.push(y)),await o(h,j),console.log("✅ updateNodeWithNewEdge - Tarea agregada exitosamente a",v?"created":"updated")}else console.error("❌ updateNodeWithNewEdge - task.id no válido para agregar:",y.id)}else if(console.log("🔵 updateNodeWithNewEdge - Creando nuevo estado"),y.id&&y.id!==0){const b=y.id<0,w={...i,id:h,created:b?[y]:[],updated:b?[]:[y]};console.log("🔵 updateNodeWithNewEdge - Nuevo estado:",w,b?"(created)":"(updated)"),e(w),console.log("✅ updateNodeWithNewEdge - Estado creado exitosamente")}else console.error("❌ updateNodeWithNewEdge - task.id no válido:",y.id);console.log("🔵 updateNodeWithNewEdge - Fin")}}};function qe(){const{activeTemplate:e,setActiveTemplate:t}=ze(),{mode:s,setMode:o,setViewMode:n,clearViewMode:i}=_e(),{template:r,setIsOpenModalLimit:l,setOpenModalUnsavedChanges:d,setOpenModalPublishTemplate:c,setOpenModalDeleteTemplate:m}=Le(),{hydrateTasks:f}=Cs(),{addTaskToState:g,removeTemplateStates:h}=ct(),x=de.useQueryClient(),{data:y,add:j,update:b,get:w,getAll:v,delete:N,isLoading:L,error:O}=ea(),{get:C}=Ss(),{getTemplateWithTasks:F}=_s(),{tasks_api:E}=fe(),[X,U]=u.useState(!1),[z,M]=u.useState(!1),[K,I]=u.useState(!1),$=u.useMemo(()=>y.sort((S,q)=>S.order-q.order),[y]);u.useEffect(()=>{$.length===0&&s!=="grid"&&o("grid")},[$,s,o]);const R=async(_,S=Te.IDLE)=>{var q;try{const k=await F(_.id),T=await f(k),Q={id:crypto.randomUUID(),data:k,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},Z=T||[Q],ae={...k,graph_layout:{...k==null?void 0:k.graph_layout,snapshot:{...(q=k==null?void 0:k.graph_layout)==null?void 0:q.snapshot,nodes:Z}},estatus:S,estatusFromStrapi:k.estatus};await j(ae)}catch(k){console.warn("No se pudieron obtener los datos completos de la plantilla, creando versión básica:",k);const T=_,Q={id:crypto.randomUUID(),data:T,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},Z={id:T.id,snapshot:{nodes:[Q],edges:[],viewport:{x:0,y:0,zoom:1}},history:null,zoom:1,position:{x:0,y:0}},ae={...T,graph_layout:T.graph_layout||Z,estatus:S,tarea_plantillas:T.tarea_plantillas||[]};await j(ae)}},V=async({template:_,checkTemplateInIndexedDB:S=!1,statusTemplate:q=Te.IDLE})=>{const k=$;if(!k.find(Q=>Q.id===_.id)){if(k.length===5){l(!0);return}if(S&&await w(_.id))return;await R({..._,order:k.length+1},q)}await D(_.id),await G(_),o("create-edit",_==null?void 0:_.id)},G=async _=>{const S=await w(_.id);t(S)},D=async _=>{try{const S=await v();S.sort((k,T)=>(k.order||0)-(T.order||0));const q=S.findIndex(k=>k.id===_);if(q!==-1){const[k]=S.splice(q,1);S.unshift(k),S.forEach((Q,Z)=>{Q.order=Z+1});const T=S.map(Q=>b(Q.id,Q));await Promise.all(T)}else return}catch{}},te=async _=>{try{await N(_),i(_);const S=await v();S.forEach((k,T)=>{k.order=T+1});const q=S.map(k=>b(k.id,k));await Promise.all(q)}catch{}};return{screens:$,isLoading:L,error:O,add:j,data:y,addScreen:R,openTemplate:V,update:b,delete:te,get:w,activeTemplate:e,activateTemplate:G,reorderingTemplates:D,replaceTemplate:async()=>{try{const _=[...$],S={..._[_.length-1]};await N(S.id);const q={...r,order:S.order};await R(q);const T=(await v()).sort((Z,ae)=>Z.order-ae.order);if(T.some((Z,ae)=>(Z.order||0)!==ae+1)){const Z=T.map((ae,re)=>({...ae,order:re+1}));for(const ae of Z)try{await b(ae.id,ae)}catch{}}}catch{}finally{l(!1)}},addTaskUpdatingTemplate:async(_,S,q="hija")=>{var Z,ae,re,J;const k=await w(S);if(!k)return null;const T={id:_.id,uuid:crypto.randomUUID(),reference_graph:_.reference_graph,texto_corto:_.title,texto_largo:_.description||"",prioridad:_.priority||null,nivel_dificultad:_.difficulty||1,duracion:_.duration||null,start:!1,is_monitoring_trigger:_.is_monitoring_trigger??!1,type:"task",equipo:{id:Number(_.team)||null},responsable:{id:Number(_.responsible)||null},plantilla:{id:k.id,clave:k.clave,categoria:k.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:q==="dependiente"?(ae=(Z=_.parent)==null?void 0:Z.data)==null?void 0:ae.id:null,ids_t_dependientes:[],tarea_padre:q==="hija"?(J=(re=_.parent)==null?void 0:re.data)==null?void 0:J.id:null,tareas:[]},Q={...k,estatus:Te.DIRTY};return await b(S,Q),e&&e.id===S&&t(Q),await g({task:T}),T},addTemplateUpdatingTemplate:async(_,S,q,k="hija")=>{let T=null;if(e&&e.id===S?T=e:T=await w(S),!T)return null;const Q=(ae,re,J,se)=>{for(let ce=0;ce<ae.length;ce++){const me=ae[ce];if(me.id===re||me.uuid===re)return se==="dependiente"?(me.plantilla_dependents||(me.plantilla_dependents=[]),me.plantilla_dependents.push(J)):se==="hija"&&(me.plantilla_dependents||(me.plantilla_dependents=[]),me.plantilla_dependents.push(J)),!0;if(me.tareas&&me.tareas.length>0){const ie=Q(me.tareas,re,J,se);if(ie)return ie}}return!1};if(Q(T.tarea_plantillas,q,_,k)){const ae={...T,estatus:Te.DIRTY,updatedAt:new Date().toISOString()};return await b(S,ae),e&&e.id===S&&t(ae),!0}else return!1},updateGraphLayout:async(_,S)=>{var q;if(!_){console.warn("⚠️ updateGraphLayout - Template ID no válido");return}try{const k=await w(_);if(!k){console.warn("⚠️ updateGraphLayout - Template no encontrado");return}const T=(S.nodes||[]).filter(se=>{var ce;return!((ce=se.data)!=null&&ce.isInternal)&&!se.parentId}).map(se=>{const{style:ce,measured:me,data:ie,...ye}=se,{expandedDimensions:pe,isExpanded:be,needsReExpansion:Ae,...we}=ie||{},$e=ce?{...ce,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...ye,style:$e,data:we,position:se.position}}),Q=(S.edges||[]).filter(se=>{var ce;return!((ce=se.data)!=null&&ce.isInternal)}).map(se=>{var ce;if((ce=se.data)!=null&&ce.redirectedToInternal){const{redirectedToInternal:me,originalTarget:ie,...ye}=se.data;return{...se,target:ie||se.target,data:ye}}return se}),Z={...S,nodes:T,edges:Q},ae=(q=k.graph_layout)==null?void 0:q.snapshot;if(!(!ae||JSON.stringify(ae)!==JSON.stringify(Z)))return;const J={...k,graph_layout:{...k.graph_layout,snapshot:Z},estatus:Te.DIRTY,updatedAt:new Date().toISOString()};await b(_,J),e&&e.id===_&&t(J)}catch(k){console.error("❌ updateGraphLayout - Error:",k)}},saveTemplateChanges:async(_=!0)=>{try{if(e.estatus===Te.DIRTY){M(!0);const{id:S}=e,q=await w(S),k=await C(S),T=q.graph_layout.snapshot.nodes||[],Q=T.filter(J=>{var se;return!((se=J.data)!=null&&se.isInternal)&&!J.parentId}),Z=T.length-Q.length;Z>0&&console.warn(`💾 [saveTemplateChanges] Se filtraron ${Z} nodos internos al guardar plantilla ${S}`);const ae={graph_layout:{...q.graph_layout,snapshot:{...q.graph_layout.snapshot,nodes:Q.map(J=>{const{style:se,measured:ce,selected:me,...ie}=J,ye=se?{...se,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return J.type==="group"?{...ie,style:ye,data:{tareaId:J.data.id&&J.data.id>0?J.data.id:null,clave:J.data.clave,estatus:J.data.estatus,updatedAt:J.data.updatedAt,id:J.data.id}}:{...ie,style:ye,data:{tareaId:J.data.id&&J.data.id>0?J.data.id:null}}}),edges:(q.graph_layout.snapshot.edges||[]).filter(J=>{var se;return!((se=J.data)!=null&&se.isInternal)})}},tasks:{created:(k==null?void 0:k.created)||[],updated:(k==null?void 0:k.updated)||[],deleted:(k==null?void 0:k.deleted)||[]}},re=await E.post("/api/tareas/save-tareas-grafico",{data:ae});if(re.data&&re.status===200){try{const J=await F(S),se=await f(J),ce={...J,graph_layout:{...J.graph_layout,snapshot:{...J.graph_layout.snapshot,nodes:se}},estatus:Te.IDLE};await b(S,ce),_||t(ce)}catch{const se=await w(S);if(se&&!_){const ce={...se,estatus:Te.IDLE};await b(S,ce),t(ce)}}await x.invalidateQueries({queryKey:["template",S]}),await x.invalidateQueries({queryKey:["template"]}),await x.invalidateQueries({queryKey:["templates"]}),h(S),_&&(te(S),d(!1)),n(S,"readonly")}}}catch(S){console.log(S)}finally{M(!1)}},publishTemplate:async _=>{try{U(!0);const S={estatus:Pe.PUBLISHED,publication_date:new Date},q=await E.put(`/api/plantillas/plantilla-update-estatus/${_}`,{data:S});q.data&&q.status===200&&(t({...e,estatusFromStrapi:Pe.PUBLISHED}),c(!1),p.toast.info("Se publicó correctamente el proceso"))}catch(S){console.log(S),p.toast.error("Surgió un error al publicar el proceso")}finally{U(!1)}},deleteTemplate:async _=>{try{I(!0);const S={estatus:Pe.DELETED,sjdaksd:0},q=await E.put(`/api/plantillas/plantilla-update-estatus/${_}`,{data:S});q.data&&q.status===200&&(m(!1),p.toast.info("Se eliminó correctamente el proceso"))}catch(S){console.error(S),p.toast.error("Surgión un error al eliminar el proceso")}finally{I(!1)}},loadingPublishTemplate:X,loadingSaveChanges:z,loadingDeleteTemplate:K}}const Ur=async({tasks_api:e})=>{try{return(await e.get("/api/getAllOBPusers")).data}catch(t){throw console.log("Error al obtener los usuarios de OBP",t),`Error al obtener los usuarios de OBP: ${t}`}},Hr=()=>{const{tasks_api:e}=fe();return{users:de.useQuery({queryKey:["usersOBP"],queryFn:()=>Ur({tasks_api:e}),staleTime:1e3*60*60*24})}},nt=()=>{const{users:e}=Hr(),t=de.useQuery({queryKey:["users_index",e.data],queryFn:()=>Fo({users:e.data||[]}),staleTime:1e3*60*60*24,enabled:!!e.data});return{users:t.data,isLoading:t.isLoading||e.isLoading}},ta=()=>{const{users:e,isLoading:t}=nt(),{getImageOBP:s}=fe();return{getImageByEmail:i=>{const r=e==null?void 0:e[i];return s(r==null?void 0:r.image)},getNameByEmail:i=>{const r=e==null?void 0:e[i];return(r==null?void 0:r.nombre)||""},isLoading:t}},dt=({isLoading:e})=>e?a.jsxs("div",{className:"tm-fixed tm-inset-0 tm-z-50 tm-flex tm-items-center tm-justify-center",children:[a.jsx("div",{className:"tm-absolute tm-inset-0",style:{backgroundColor:"rgba(0, 0, 0, 0.5)"}}),a.jsx("div",{className:"tm-relative tm-flex tm-flex-col tm-items-center tm-justify-center tm-gap-4",children:a.jsx(p.Spinner,{})})]}):null,Pa=({template:e,openModalPublishTemplate:t,onHadleClickEditTemplateParams:s,onEditTasks:o,canDuplicateAndDeleteTemplates:n,onHandleClickDuplicateTemplate:i,openModalDeleteTemplate:r})=>a.jsx(p.Popup,{color:"secondary",pill:"pill",icon:le.faEllipsis,stopPropagationList:!0,children:a.jsxs(p.List,{className:"tm-p-6 tm-gap-4",children:[e.estatus!==Pe.PUBLISHED&&e.counts_tasks>2&&a.jsx(p.ListItem,{icon:le.faArrowUp,onClick:t,children:"Publicar"}),a.jsx(p.ListItem,{icon:le.faEdit,onClick:()=>{s(e)},children:"Editar parámetros"}),a.jsx(p.ListItem,{icon:le.faEdit,onClick:()=>{o&&o(e)},children:"Editar tareas"}),n&&a.jsx(p.ListItem,{icon:le.faClone,onClick:l=>{l.stopPropagation(),i(e)},children:"Duplicar"}),n&&a.jsx(p.ListItem,{color:"red",icon:le.faTrash,onClick:r,children:"Eliminar"})]})}),Es=(e=7)=>{const t=(o,n)=>o>=n?{populate:"*"}:{miembro_padre:{fields:["id"]},idUser:{populate:"*"},miembros:{populate:t(o+1,n),filters:{idUser:{blocked:!1}}}};return{miembros:{populate:t(0,e),filters:{idUser:{blocked:!1}}}}},Kr=e=>{const t=new Set,s=[],o=n=>{var i;if(Array.isArray(n))for(const r of n){const l=r,d=l==null?void 0:l.idUser;(d==null?void 0:d.id)!=null&&(d.email||d.nombre)&&(t.has(d.id)||(t.add(d.id),s.push({id:d.id,nombre:d.nombre??"",email:d.email??"",image:d.image}))),(i=l==null?void 0:l.miembros)!=null&&i.length&&o(l.miembros)}};return o(e),s},Vr=async(e,t)=>{var l;const s=De.stringify({fields:["nombre","id"],populate:Es(2)},{encodeValuesOnly:!0}),o=await e.get(`/api/equipos/${t}?${s}`),n=((l=o.data)==null?void 0:l.data)??o.data,i=je(n),r=Kr((i==null?void 0:i.miembros)??[]);return{team:{nombre:(i==null?void 0:i.nombre)??"",miembros:(i==null?void 0:i.miembros)??[]},members:r}},Gr=e=>{const{tasks_api:t}=fe(),s=typeof e=="number"&&e>0&&!Number.isNaN(e)?e:null;return de.useQuery({queryKey:["equipo-flow-preview",s],queryFn:()=>Vr(t,s),enabled:s!=null,staleTime:300*1e3})},Wr=3,Qr=e=>{if(!(e!=null&&e.id)&&(e==null?void 0:e.id)!==0)return null;const t=Number(e.id);return!Number.isNaN(t)&&t>0?t:null},Xr=({equipo:e})=>{var h;const t=Qr(e),s=((h=e==null?void 0:e.nombre)==null?void 0:h.trim())??"",{data:o,isLoading:n,isError:i}=Gr(t),{getImageByEmail:r,isLoading:l}=ta();if(!t)return null;const d=((o==null?void 0:o.team.nombre)??s).trim()||"Equipo",c=(o==null?void 0:o.members)??[],m=d,f=[...c].map(x=>{var y;return{src:r(x.email),name:((y=x.nombre)==null?void 0:y.trim())||x.email}}).sort((x,y)=>+!!y.src-+!!x.src),g=a.jsx("div",{className:"tm-flex tm-items-center tm-justify-center",children:n||l?a.jsx("div",{className:"tm-flex tm-items-center",children:[0,1,2].map(x=>a.jsx("div",{className:`tm-h-7 tm-w-7 tm-shrink-0 tm-rounded-full tm-bg-neutral-100 tm-ring-2 tm-ring-white ${x>0?"tm-ml-[-12px]":""}`},x))}):c.length>0?a.jsx(p.Avatar,{counterColor:"blue",counterTheme:"solid",maxVisible:Wr,size:"xs",stack:f,stroke:!0}):a.jsx(p.Avatar,{size:"xs",stroke:!0,type:"people"})});return a.jsxs("div",{className:"tm-flex tm-min-w-0 tm-shrink-0 tm-flex-col tm-items-center tm-justify-end tm-gap-2",children:[a.jsx(p.Tooltip,{preserveLayout:!0,label:i&&!s?"Equipo":m,children:g}),a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Equipo"})]})},Yr={1:"blue",2:"green",3:"red",4:"yellow"},Jr=({difficulty:e})=>a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end tm-gap-2",children:[a.jsx(p.Icon,{name:le.faRhombus,size:"md",color:Yr[e]}),a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Dificultad"})]}),Zr=({duration:e})=>a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end",children:[a.jsx("p",{className:"tm-text-icon-all-colors-blue tm-text-body-lg-regular tm-leading-none tm-font-semibold",children:e}),a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Duración"})]}),ei={1:"neutral",2:"blue",3:"yellow",4:"red"},ti=({priority:e})=>a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end tm-gap-2",children:[a.jsx(p.Icon,{name:le.faFlag,size:"md",color:ei[e]}),a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Prioridad"})]});class ai{static toUsers(t){return{id:t.id,name:t.nombre,image:t.image,email:t.email}}}const si=async({tasks_api:e})=>{try{const t=De.stringify({filters:{blocked:!1}},{encodeValuesOnly:!0}),s=await e.get(`/api/users?${t}`);return je(s.data).map(ai.toUsers).sort((n,i)=>n.name.localeCompare(i.name))}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},yt=()=>{const{tasks_api:e}=fe(),t=de.useQuery({queryKey:["users-mt"],queryFn:()=>si({tasks_api:e}),staleTime:1e3*60*60*24});return{isLoading:t.isLoading,users:t.data}},ni=(e,t,s)=>{var r;const o=(r=e==null?void 0:e.email)==null?void 0:r.trim();if(o){const l=t(o);return l||o}const n=e==null?void 0:e.id,i=n!==""&&n!=null&&!Number.isNaN(Number(n))?Number(n):NaN;if(!Number.isNaN(i)&&(s!=null&&s.length)){const l=s.find(d=>d.id===i);if(l!=null&&l.name)return l.name}return""},oi=({responsible:e})=>{const{isLoading:t,users:s}=yt(),{getImageByEmail:o,getNameByEmail:n,isLoading:i}=ta();if(t||i)return null;const r=ni(e,n,s),l=a.jsx(p.Avatar,{size:"xs",src:o((e==null?void 0:e.email)??""),type:"people"});return a.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[r?a.jsx(p.Tooltip,{label:r,children:l}):l,a.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Responsable"})]})},As=({layout:e="column"})=>e==="row"?a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-1",children:[a.jsx(p.Icon,{name:le.faCamera,size:"sm",color:"blue"}),a.jsx(p.Text,{size:"xs",weight:"regular",color:"tertiary",children:"Testigos"})]}):a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end tm-gap-2",children:[a.jsx(p.Icon,{name:le.faCamera,size:"md",color:"blue"}),a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Testigos"})]}),Ps=({fullWidth:e,mode:t="grid",onClick:s,active:o,template:n,withOptions:i=!0})=>{var G;const{openTemplate:r}=qe(),{getImageByEmail:l,getNameByEmail:d}=ta(),{setIsEditTemplate:c,setOpenModalCreateTemplate:m,setCurrentTemplateForEdit:f,setIsDuplicateTemplate:g,setOpenModalPublishTemplate:h,setCurrentTemplateId:x,setOpenModalDeleteTemplate:y}=Le(),j={0:{color:"accent",theme:"solid"},1:{color:"accent",theme:"soft"},2:{color:"warning",theme:"solid"},3:{color:"info",theme:"solid"},4:{color:"gray",theme:"solid"},5:{color:"warning",theme:"soft"},6:{color:"danger",theme:"solid"},7:{color:"info",theme:"soft"},8:{color:"success",theme:"solid"},9:{color:"danger",theme:"solid"}},[b,w]=u.useState(!1),v=async()=>{if(w(!0),t==="grid")try{w(!0),await r({template:n,checkTemplateInIndexedDB:!0})}catch(D){console.error(D)}finally{w(!1)}else w(!1);s==null||s(n==null?void 0:n.id)},N=async()=>{if(!(t!=="grid"||!n)){w(!0);try{await r({template:n,checkTemplateInIndexedDB:!0}),s==null||s(n==null?void 0:n.id)}catch(D){console.error(D)}finally{w(!1)}}},L=D=>{c(!0),m(!0),f(D)},O=D=>{g(!0),m(!0),f(D)},C=()=>{x(n==null?void 0:n.id),h(!0)},F=()=>{x(n==null?void 0:n.id),y(!0)},E=(n==null?void 0:n.dias_duracion)===1?"Día":"Días",X=(n==null?void 0:n.counts_tasks)===1?"Tarea":"Tareas",U=(n==null?void 0:n.estatus)===Pe.PUBLISHED?It(n==null?void 0:n.publication_date).format("DD/MM/YYYY"):It(n==null?void 0:n.createdAt).format("DD/MM/YYYY"),z=(n==null?void 0:n.updated_by)||(n==null?void 0:n.created_by),M=l(z==null?void 0:z.email),K=d(z==null?void 0:z.email)||"",I=(n==null?void 0:n.estatus)===Pe.PUBLISHED?"Fecha de publicación":"Fecha de creación",$=(n==null?void 0:n.estatus)===Pe.DRAFT,R=((G=n==null?void 0:n.tarea_plantillas)==null?void 0:G.some(D=>D.is_monitoring_trigger===!0))??!1,V=D=>{const te=D.split("-");return a.jsx(a.Fragment,{children:te.map((ee,A)=>a.jsxs("span",{children:[ee,A<te.length-1&&a.jsx("span",{className:"tm-text-neutral-200",children:"-"})]},A))})};return a.jsxs(p.Card,{active:o,fullWidth:e,onClick:v,className:`${e?"md:tm-flex-row":"tm-flex-col"}`,children:[a.jsx(dt,{isLoading:b}),a.jsx(p.Card.Header,{children:a.jsx("div",{className:"tm-flex tm-justify-between tm-items-start tm-gap-x-4",children:a.jsxs("div",{className:"tm-flex tm-justify-between tm-items-start tm-gap-4 tm-flex-1",children:[a.jsxs("div",{className:"tm-flex tm-place-items-start tm-gap-x-8",children:[a.jsx("div",{className:"tm-flex tm-items-center",children:a.jsx(p.Icon,{name:Ge.faChartDiagram,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"lg"})}),a.jsxs("div",{className:"tm-flex tm-gap-x-8 tm-flex-col tm-gap-y-4",children:[a.jsx(p.Text,{size:"sm",weight:"semibold",color:"primary",truncateLabel:!0,children:V((n==null?void 0:n.clave)||(n==null?void 0:n.nombre_plantilla))}),a.jsxs("div",{className:"tm-flex tm-items-baseline tm-gap-x-1",children:[a.jsx(p.Badge,{size:"sm",theme:"soft",color:(n==null?void 0:n.estatus)===Pe.PUBLISHED?"success":"gray",label:(n==null?void 0:n.estatus)===Pe.PUBLISHED?"Publicado":"Borrador"}),!(typeof U=="string"&&U==="Invalid date")&&a.jsx(p.Tooltip,{label:I,children:a.jsx(p.Text,{size:"sm",weight:"medium",color:"tertiary",children:U})})]})]})]}),!e&&a.jsx(Pa,{template:n,openModalPublishTemplate:C,onHadleClickEditTemplateParams:L,onEditTasks:N,canDuplicateAndDeleteTemplates:$,onHandleClickDuplicateTemplate:O,openModalDeleteTemplate:F})]})})}),a.jsx(p.Card.Separator,{vertical:e}),a.jsx(p.Card.Body,{className:"tm-flex tm-flex-wrap tm-gap-x-6 tm-gap-y-4 tm-w-full md:tm-w-auto tm-flex-1 tm-items-center",children:n==null?void 0:n.params_plantillas.map(D=>{const te=j[D.params_tipo.order-1];return a.jsx(p.Badge,{color:te.color,theme:te.theme,label:D.name,size:"sm"},D.name)})}),!e&&a.jsx(p.Card.Separator,{vertical:e}),a.jsxs(p.Card.Footer,{className:"tm-flex tm-justify-between tm-w-full md:tm-w-auto tm-gap-x-4",children:[a.jsxs("div",{className:`tm-flex tm-flex-1 ${e?"tm-gap-x-2 md:tm-gap-20 lg:tm-gap-32 2xl:tm-gap-44":""}`,children:[a.jsx("div",{className:`tm-flex tm-gap-x-8 tm-justify-center tm-items-center tm-flex-1 ${e?"tm-flex-col":"tm-flex-row"}`,children:a.jsx(p.Tooltip,{label:"Tareas totales",children:a.jsxs("div",{className:`tm-flex tm-items-center tm-gap-8 ${e?"tm-flex-col":"tm-flex-row"}`,children:[a.jsx(p.Text,{size:"xs",weight:"semibold",color:"brand",children:(n==null?void 0:n.counts_tasks)||0}),a.jsx(p.Text,{size:"xs",weight:"regular",color:"tertiary",children:X})]})})}),a.jsx("div",{className:`tm-flex tm-gap-x-8 tm-justify-center tm-items-center tm-flex-1 ${e?"tm-flex-col":"tm-flex-row"}`,children:a.jsx(p.Tooltip,{label:"Tareas totales",children:a.jsxs("div",{className:`tm-flex tm-items-center tm-gap-8 ${e?"tm-flex-col":"tm-flex-row"}`,children:[a.jsx(p.Text,{size:"xs",weight:"semibold",color:"brand",children:(n==null?void 0:n.dias_duracion)||0}),a.jsx(p.Text,{size:"xs",weight:"regular",color:"tertiary",children:E})]})})}),a.jsxs("div",{className:`tm-flex tm-gap-x-8 tm-justify-center tm-items-center tm-flex-1 ${e?"tm-flex-col-reverse tm-gap-y-1":"tm-flex-row"}`,children:[a.jsx(p.Text,{size:"xs",weight:"regular",color:"tertiary",children:"Editor"}),a.jsx(p.Tooltip,{label:K,children:a.jsx(p.Avatar,{src:M,size:"xxs",type:"people"})})]}),R&&a.jsx("div",{className:`tm-flex tm-gap-x-8 tm-justify-center tm-items-center tm-flex-1 ${e?"tm-flex-col":"tm-flex-row"}`,children:a.jsx(As,{layout:"row"})})]}),e&&i&&a.jsx(p.Card.Separator,{vertical:e}),i&&a.jsx("div",{className:`tm-w-auto ${e?"tm-flex tm-items-center":""}`,children:e&&a.jsx(Pa,{template:n,openModalPublishTemplate:C,onHadleClickEditTemplateParams:L,onEditTasks:N,canDuplicateAndDeleteTemplates:$,onHandleClickDuplicateTemplate:O,openModalDeleteTemplate:F})})]})]})},ri=[{label:"Muy alta",value:4,icon:le.faFlag,iconColor:"red"},{label:"Alta",value:3,icon:le.faFlag,iconColor:"yellow"},{label:"Media",value:2,icon:le.faFlag,iconColor:"blue"},{label:"Baja",value:1,icon:le.faFlag,iconColor:"neutral"}],ii=[{label:"Muy alta",value:4,icon:le.faRhombus,iconColor:"red"},{label:"Alta",value:3,icon:le.faRhombus,iconColor:"yellow"},{label:"Media",value:2,icon:le.faRhombus,iconColor:"blue"},{label:"Baja",value:1,icon:le.faRhombus,iconColor:"neutral"}],li=[{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},{label:"6 días",value:6},{label:"7 días",value:7}],Ds=({isOpen:e,onClose:t,onSuccess:s,nodeDataType:o,parentNodeInfo:n,editMode:i=!1,taskToEdit:r})=>{const{data:l}=$a(),{users:d}=yt(),{users:c}=nt(),{getImageOBP:m}=fe(),f=u.useMemo(()=>{try{return!d||!c?[]:d.map(C=>{const F=c[C.email],E=F!=null&&F.image?m(F.image):"";return{label:C.name,value:C.id.toString(),icon:E}})}catch(C){return console.error("Error mapeando usuarios:",C),[]}},[d,c]),g=()=>{if(i&&r){const C=U=>{if(U==null)return"";const z=Number(U);return isNaN(z)?"":z},F=U=>U?typeof U=="string"?Number(U)||"":U.id||"":"",E=U=>{var z;return U?typeof U=="string"?U:((z=U.id)==null?void 0:z.toString())||U.name||U.nombre||"":""};return{title:r.texto_corto||"",description:r.texto_largo||"",priority:C(r.prioridad),difficulty:C(r.nivel_dificultad),duration:C(r.duracion),team:F(r.equipo),responsible:E(r.responsable),type:"tarea",is_monitoring_trigger:r.is_monitoring_trigger===!0}}return{title:"",description:"",priority:"",difficulty:"",duration:"",team:"",responsible:"",type:"tarea",is_monitoring_trigger:!1}},{control:h,handleSubmit:x,formState:{errors:y,isValid:j},reset:b,watch:w}=Ce.useForm({mode:"onChange",defaultValues:g()});u.useEffect(()=>{e&&b(g())},[e,i,r,b]);const v=w(),N=j&&v.title&&v.description&&v.priority&&v.difficulty&&v.duration&&v.team&&Object.keys(y).length===0,L=async C=>{try{if(["title","description","priority","difficulty","duration","team"].filter(X=>!C[X]).length>0)return;s&&await s({...C,parent:n}),i||b()}catch{}},O=()=>{b(),t()};return a.jsx(p.Drawer,{titleIcon:le.faPencil,isOpen:e,onClose:O,onSuccess:()=>{x(C=>{L(C)},C=>{const F=Object.entries(C).map(([E,X])=>`${E}: ${X.message}`).join(`
5
+ `,children:te()})})]})})},Se={texts:{subtext:"#4f4f4f",placeholder:"#929292"},primary:{regular:"#425CAC"},success:{dark:"#368156",regular:"#43B071"},danger:{dark:"#8C352C",regular:"#C34335"},warning:{dark:"#B4782F",regular:"#D38A31"}},hr=({id:e,idAtraso:t})=>{const[s,o]=u.useState(!1),{completeTask:n}=Ke();return{checked:s,checkTask:()=>{o(!s),n({id:e,idAtraso:t})}}},Ia={checked:"tm-mx-[2px] tm-flex tm-h-[20px] tm-w-[20px] tm-items-center tm-justify-center tm-rounded-full tm-bg-success-regular tm-transition-all",unchecked:"tm-transition-colors"},xr="tm-mx-[2px] tm-flex tm-items-center tm-justify-center tm-rounded-full tm-bg-success-regular tm-transition-all",Pa="tm-text-sm tm-flex tm-w-fit tm-max-w-[400px] tm-flex-col tm-gap-m tm-rounded-lg tm-bg-surface-warning-default tm-p-l tm-text-primary",vs=({id:e,nameRequiredTask:t,statusRequiredTask:s,status:o,idAtraso:n,nameRequiredTaskResponsible:i,name_father_required_task:r,name_father_required_task_responsible:l,repeatsAreCompleted:d=!1})=>{const c=u.useId(),m=`checkbox-${e}-${c}`,{checked:f,checkTask:h}=hr({id:e,idAtraso:n}),b=!!(t&&t!==""&&s===2)||!t,w=!!r,j=o===1&&d,x=()=>a.jsx("label",{htmlFor:m,className:f?Ia.checked:Ia.unchecked,children:f?a.jsx(p.Icon,{name:ne.faCheck,size:"xs",style:{color:"white"},color:"current"}):a.jsx(p.Icon,{name:ne.faCircle,size:"sm",style:{color:Se.texts.placeholder},color:"current"})});return o===2?a.jsx("div",{className:xr,children:a.jsx(p.Icon,{name:le.faCircleCheck,size:"xs",style:{color:"white"},color:"current"})}):w?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"tm-flex tm-w-fit tm-shrink-0 tm-flex-row tm-flex-nowrap tm-items-center tm-gap-1",children:[a.jsx(ke,{position:"bottom",popoverArrow:!1,triggerWrapperClassName:"tm-inline-flex tm-items-center",trigger:a.jsx("span",{className:"tm-cursor-help tm-inline-flex","aria-hidden":!0,children:a.jsx(p.Icon,{name:ne.faCircleInfo,size:"sm",style:{color:Se.warning.regular},color:"current"})}),children:a.jsxs("div",{className:Pa,children:[a.jsx("p",{className:"tm-w-[210px] tm-font-bold",children:"Tarea padre:"}),a.jsx("p",{children:r}),l&&a.jsxs("p",{className:"tm-font-bold",children:["Responsable:"," ",a.jsx("span",{className:"tm-font-normal",children:l})]}),a.jsx(p.Text,{children:"Esta tarea completa automáticamente la tarea padre."})]})}),j&&x()]}),a.jsx("input",{id:m,checked:f,onChange:h,type:"checkbox",className:"tm-hidden","aria-hidden":!0})]}):b?a.jsxs(a.Fragment,{children:[o===1&&x(),a.jsx("input",{id:m,checked:f,onChange:h,type:"checkbox",className:"tm-hidden","aria-hidden":!0})]}):a.jsxs(a.Fragment,{children:[a.jsx(ke,{position:"bottom",popoverArrow:!1,triggerWrapperClassName:"tm-inline-flex tm-items-center",trigger:a.jsx("span",{className:"tm-cursor-help tm-inline-flex","aria-hidden":!0,children:a.jsx(p.Icon,{name:ne.faCircleInfo,size:"sm",style:{color:Se.warning.regular},color:"current"})}),children:a.jsxs("div",{className:Pa,children:[a.jsx("p",{className:"tm-w-[210px] tm-font-bold",children:"Requiere completar su tarea:"}),a.jsx("p",{children:t}),i&&a.jsxs("p",{className:"tm-font-bold",children:["Responsable: ",a.jsx("span",{className:"tm-font-normal",children:i})]})]})}),a.jsx("input",{id:m,checked:f,onChange:h,type:"checkbox",className:"tm-hidden","aria-hidden":!0})]})};function br({items:e}){var o;const[t,s]=u.useState(1);return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"tm-mb-2 tm-mt-4 tm-flex tm-flex-row tm-border-b tm-border-black-light tm-bg-surface-default",children:e.map(n=>a.jsx("div",{className:"tm-border-r tm-border-black-light",children:a.jsx(p.Button,{color:"tertiary",pill:"none",size:"xs",active:t===n.id,onClick:()=>s(n.id),children:n.label},n.id)},n.id))}),a.jsx("div",{className:"tm-flex-1 tm-overflow-y-auto tm-bg-surface-default tm-pt-4",children:(o=e.find(n=>n.id===t))==null?void 0:o.component})]})}function yr({comment:e}){var n,i,r,l,d;const{getImageOBP:t}=pe(),s=(l=(r=(i=(n=e==null?void 0:e.autor)==null?void 0:n.imagen)==null?void 0:i.formats)==null?void 0:r.thumbnail)==null?void 0:l.url;function o(c){const m=c==null?new Date:typeof c=="string"?it.parseISO(c):c;return it.formatDistanceToNow(m,{locale:zt.es,addSuffix:!0})}return a.jsx("div",{children:a.jsxs("div",{className:"tm-flex tm-flex-row tm-items-start tm-gap-3",children:[a.jsx(Me,{size:"xxl",imageUrl:s?t(s):"",alt:"@shadcn"}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-4",children:[a.jsxs("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-4",children:[a.jsx(p.Text,{type:"title",size:"sm",weight:"medium",color:"secondary",children:(d=e==null?void 0:e.autor)==null?void 0:d.nombre}),a.jsx(p.Text,{children:o(e==null?void 0:e.createdAt)})]}),a.jsx(p.Text,{children:e==null?void 0:e.comentario})]})]})})}function jr({currentUser:e,data:t,taskId:s,onNewComment:o}){var g,b,w;const{tasks_api:n,getImageOBP:i}=pe(),{control:r,handleSubmit:l,reset:d}=Ce.useForm({defaultValues:{comment:""}}),[c,m]=u.useState([]),f=(w=(b=(g=e==null?void 0:e.imagen)==null?void 0:g.formats)==null?void 0:b.thumbnail)==null?void 0:w.url;u.useEffect(()=>{if(t!=null&&t.comentarios){const j=[...t.comentarios].sort((x,y)=>new Date(y.createdAt).getTime()-new Date(x.createdAt).getTime());m(j)}},[t]);const h=async j=>{try{const x={id:Date.now(),autor:{id:e==null?void 0:e.id,email:e==null?void 0:e.email,nombre:e==null?void 0:e.nombre,imagen:e==null?void 0:e.imagen},comentario:j.comment,createdAt:new Date().toISOString(),updatedAt:null};await n.post("/api/comentarios",{data:{autor:e==null?void 0:e.id,comentario:j.comment,tarea:s}}),o(!0),m(y=>[x,...y]),d()}catch(x){console.error("Error al agregar comentario:",x)}};return a.jsxs("div",{className:"tm-flex tm-h-full tm-flex-col tm-gap-4",children:[a.jsxs("form",{onSubmit:l(h),className:"tm-flex tm-flex-row tm-items-center tm-gap-3",children:[a.jsx(Me,{size:"xxl",imageUrl:f?i(f):"",alt:"@shadcn"}),a.jsx("div",{className:"tm-min-w-0 tm-flex-1",children:a.jsx(Ce.Controller,{name:"comment",control:r,rules:{required:"Escribe un comentario"},render:({field:j,fieldState:{error:x}})=>a.jsx(p.Input,{fullWidth:!0,placeholder:"Escribe un comentario",autoComplete:"off",size:"xs",error:x==null?void 0:x.message,...j,value:j.value??""})})})]}),c&&c.map((j,x)=>a.jsx(yr,{comment:j},x))]})}function wr(e,t){const s=(e==null?void 0:e.trim())??"";return s?/^https?:\/\//i.test(s)?s:t(s):""}function vr({data:e}){const{getImageOBP:t}=pe(),s={0:{color:"tm-bg-gray-400",label:"Sin estado"},1:{color:"tm-bg-primary-regular",label:"En curso"},2:{color:"tm-bg-success-regular",label:"Finalizada"},3:{color:"tm-bg-success-regular",label:"Finalizada"}},o=n=>n?it.format(new Date(n),"d MMM",{locale:zt.es}):"";return a.jsxs("div",{children:[a.jsxs("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-4",children:[a.jsx(p.Text,{children:"Tareas dependientes"}),a.jsx(p.Text,{className:"tm-flex tm-h-24 tm-w-24 tm-items-center tm-justify-center tm-rounded-full tm-bg-[#E1EBF9] tm-text-xs tm-font-normal tm-text-primary",children:(e==null?void 0:e.length)??0})]}),a.jsx("div",{className:"tm-mt-3 tm-flex tm-flex-col tm-gap-2 tm-rounded-lg tm-border tm-border-default",children:e==null?void 0:e.map((n,i)=>{var m,f,h,g,b,w,j,x,y,v,N,B;const r=n==null?void 0:n.responsable,l=((h=(f=(m=r==null?void 0:r.image)==null?void 0:m.formats)==null?void 0:f.thumbnail)==null?void 0:h.url)??((w=(b=(g=r==null?void 0:r.imagen)==null?void 0:g.formats)==null?void 0:b.thumbnail)==null?void 0:w.url)??((v=(y=(x=(j=r==null?void 0:r.userOBP)==null?void 0:j.imagen)==null?void 0:x.formats)==null?void 0:y.thumbnail)==null?void 0:v.url),d=(n==null?void 0:n.createdAt)??(n==null?void 0:n.created_at),c=wr(l,t);return a.jsxs("div",{className:"tm-flex tm-w-full tm-flex-row tm-items-center tm-justify-between tm-gap-s tm-px-2 tm-py-1",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx(Me,{imageUrl:c}),a.jsx(p.Text,{children:((N=n==null?void 0:n.texto_corto)==null?void 0:N.trim())||"—"})]}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-1",children:[a.jsx(p.Text,{children:o(d)}),a.jsx("div",{className:`tm-block tm-h-4 tm-w-4 tm-rounded-full tm-bg-gray-400 ${((B=s[n==null?void 0:n.estatus])==null?void 0:B.color)??"tm-bg-gray-400"}`})]})]},n.id!=null?String(n.id):`dep-${i}`)})})]})}function _r({id:e,texto_largo:t,user_id:s}){const[o,n]=u.useState(t),{updatingTask:i}=Ke(),r=async()=>{await i({id:e,data:{texto_largo:o},user:s})};return u.useEffect(()=>{n(t)},[t]),a.jsx("div",{className:"tm-mt-16 tm-flex tm-w-full tm-flex-col tm-gap-3",children:a.jsx(p.Textarea,{fullWidth:!0,label:"Descripción",value:o,onChange:n,onBlur:r,placeholder:"Agregar descripción",className:"tm-resize-none"})})}function Da(e,t,s){var n;if(e!=null){const i=e instanceof Date?e:new Date(e);if(!Number.isNaN(i.getTime()))return s(i)}const o=(n=t==null?void 0:t.nombre)==null?void 0:n.trim();return o||s(null)}function _s({isOpen:e,setIsOpen:t,taskId:s,initialFromList:o}){var D,C,M,E,X,U,z,k,K;const[n,i]=u.useState(null),[r,l]=u.useState(!1),[d,c]=u.useState(!1),[m,f]=u.useState(null),h=(E=(M=(C=(D=n==null?void 0:n.responsable)==null?void 0:D.imagen)==null?void 0:C.formats)==null?void 0:M.thumbnail)==null?void 0:E.url,{tasks_api:g,getImageOBP:b}=pe(),{user:w}=we(),j=u.useRef({taskId:null,source:"none"}),x=Number(n==null?void 0:n.estatus),y=Number.isFinite(x)?x:-1,v=yt(w==null?void 0:w.role,y);u.useEffect(()=>{const F=async()=>{const V=await g.get(`/api/users/${w.id}`);f(V==null?void 0:V.data)};if(r){(async()=>{const P=await g.get(`/api/detalleTarea/${s}`);i(P==null?void 0:P.data),j.current={taskId:s,source:"api"}})(),F();return}if(!e){i(null),j.current={taskId:null,source:"none"};return}if(!s)return;const{taskId:$,source:R}=j.current;if($===s&&(R==="api"||R==="list")){R==="list"&&o&&i(V=>{if(!V)return o;const P=o.ids_t_dependientes;if(!Array.isArray(P))return V;const te=Array.isArray(V.ids_t_dependientes)?V.ids_t_dependientes.length:0,ee=P.length;return ee>te||te===0&&ee>0?{...V,ids_t_dependientes:P}:V}),F();return}if(j.current.taskId!=null&&j.current.taskId!==s&&(j.current={taskId:null,source:"none"}),o){i(o),j.current={taskId:s,source:"list"},F();return}(async()=>{const V=await g.get(`/api/detalleTarea/${s}`);i(V==null?void 0:V.data),j.current={taskId:s,source:"api"}})(),F()},[e,s,r,w.id,g,o]);const N=F=>F?it.format(F,"d MMM yyyy, h:mmaaa",{locale:zt.es}):"Fecha no disponible",B=u.useMemo(()=>[{id:1,label:"Todo",component:a.jsx(jr,{taskId:s,currentUser:m,data:n,onNewComment:l})},{id:2,label:"Dependencias",component:a.jsx(vr,{data:n==null?void 0:n.ids_t_dependientes})}],[n,s,m]);return e&&Rt.createPortal(a.jsxs(a.Fragment,{children:[a.jsx("div",{className:`tm-fixed tm-inset-0 tm-z-20 tm-flex tm-items-center tm-justify-center tm-bg-transparent tm-bg-opacity-50 ${e?"tm-pointer-events-auto tm-block":"tm-pointer-events-none tm-hidden"}`,onClick:()=>t(!1)}),a.jsx("section",{className:`tm-fixed tm-bottom-0 tm-top-0 tm-z-50 tm-flex tm-h-screen tm-w-[550px] tm-items-center tm-justify-center tm-overflow-hidden tm-bg-surface-default tm-bg-opacity-50 tm-shadow-2xl tm-transition-all tm-duration-500 tm-ease-in-out ${e?"tm-pointer-events-auto tm-right-0 tm-block":"tm-pointer-events-none tm-right-[-100%] tm-hidden"}`,children:a.jsxs("div",{className:"tm-flex tm-h-full tm-w-full tm-flex-col tm-overflow-y-scroll tm-border-none tm-bg-surface-default tm-p-16 tm-shadow-04",children:[a.jsxs("div",{className:"tm-flex tm-w-full tm-flex-row tm-items-center tm-justify-between tm-gap-10 tm-border-none tm-pb-4",children:[a.jsxs("div",{className:"tm-relative tm-flex tm-flex-row tm-items-start tm-gap-8",children:[(((X=n==null?void 0:n.id_t_requerida)==null?void 0:X.id)??0)>0?a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"tm-cursor-help",onMouseOver:()=>c(!0),onMouseLeave:()=>c(!1),children:a.jsx(p.Icon,{name:ne.faCircleInfo,size:"sm",style:{color:Se.warning.regular},color:"current"})}),d&&(()=>{var $;const F=ct(n==null?void 0:n.id_t_requerida);return a.jsxs("div",{style:{top:"25px"},className:"tm-absolute tm-z-50 tm-flex tm-w-fit tm-max-w-[400px] tm-flex-col tm-gap-m tm-rounded-lg tm-bg-surface-warning-default tm-p-l tm-text-xs tm-text-primary",children:[a.jsx(p.Text,{type:"body",size:"sm",weight:"bold",children:"Requiere completar su tarea:"}),a.jsx(p.Text,{type:"body",size:"xs",weight:"medium",children:($=n==null?void 0:n.id_t_requerida)==null?void 0:$.texto_corto}),F&&a.jsxs(p.Text,{type:"body",size:"xs",weight:"medium",children:["Responsable: ",a.jsx("span",{className:"tm-font-normal",children:F})]})]})})()]}):null,a.jsx("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-8",children:a.jsxs("h3",{className:"tm-text-base tm-font-semibold tm-text-neutral-900",children:[n==null?void 0:n.texto_corto,(n==null?void 0:n.atraso)&&a.jsx(p.Tooltip,{label:(U=n==null?void 0:n.atraso)==null?void 0:U.motivo,position:"bottom",children:a.jsx("button",{className:"tm-ml-2 tm-inline-block tm-h-fit tm-align-middle",children:a.jsx(p.Icon,{name:ne.faTriangleExclamation,size:"md",style:{color:Se.warning.dark},color:"current"})})})]})})]}),a.jsx(p.Button,{color:"secondary",pill:"pill",size:"xs",onClick:()=>t(!1),icon:ne.faXmark})]}),a.jsx("div",{className:"tm-mt-6 tm-flex tm-w-full tm-flex-row tm-justify-between",children:a.jsxs("span",{className:"tm-text-xs tm-text-light-gray-700",children:[n==null?void 0:n.campania," / ",n==null?void 0:n.nombre_medio]})}),a.jsx(_r,{id:s,texto_largo:n==null?void 0:n.texto_largo,user_id:w.id}),a.jsx(p.Accordion,{id:`details-task-detalles-${s}`,title:"Detalles",defaultOpen:!0,className:"tm-mt-6 tm-w-full",headerClassName:"tm-border-b tm-border-black-light tm-pb-4",children:a.jsxs("div",{className:"tm-gap-8 tm-grid tm-w-full tm-grid-cols-3 tm-p-4",children:[a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Responsable"}),(z=n==null?void 0:n.responsable)!=null&&z.nombre?a.jsxs("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-8",children:[a.jsx(Me,{size:"xxl",imageUrl:h?b(h):"",alt:"@shadcn"}),a.jsx(p.Text,{children:(k=n==null?void 0:n.responsable)==null?void 0:k.nombre})]}):a.jsx(p.Text,{children:"Sin responsable"})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Equipo asignado"}),a.jsx("div",{className:"tm-flex tm-flex-row tm-gap-8",children:a.jsx(p.Text,{children:((K=n==null?void 0:n.equipo)==null?void 0:K.nombre)??"Sin equipo"})})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Prioridad"}),a.jsx(ea,{priority:parseInt(String(n==null?void 0:n.prioridad),10)||0,id:s,withLabel:!0,canEdit:v})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Dificultad"}),a.jsx(Zt,{difficulty:(n==null?void 0:n.nivel_dificultad)!=null&&(n==null?void 0:n.nivel_dificultad)!==""?Number(n.nivel_dificultad):void 0,id:s,withLabel:!0,canEdit:v})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Lista"}),a.jsx("div",{className:"tm-flex tm-flex-row tm-gap-8",children:a.jsx(p.Text,{children:(n==null?void 0:n.lista)??"Sin lista"})})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Fecha estimada de inicio"}),a.jsx(p.Text,{children:N(n==null?void 0:n.f_inicio_estimada)})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Fecha estimada de fin"}),a.jsx(p.Text,{children:N(n==null?void 0:n.f_fin_estimada)})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Fecha de fin"}),a.jsx(p.Text,{children:N(n==null?void 0:n.ffin)})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Creado"}),a.jsx(p.Text,{children:Da(n==null?void 0:n.createdAt,n==null?void 0:n.createdBy,N)})]}),a.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[a.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Última modificación"}),a.jsx(p.Text,{children:Da(n==null?void 0:n.updatedAt,n==null?void 0:n.updatedBy,N)})]})]})}),a.jsx(br,{items:B})]})})]}),document.body)}class Tr{static toPauseReasons(t){return{id:t.id,motivo_imj:t.motivo_imj}}}const Nr=async({tasks_api:e})=>{try{const t=await e.get("/api/motivos");return je(t.data).map(Tr.toPauseReasons)}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},Cr=()=>{const{tasks_api:e}=pe();return{pauseReasons:de.useQuery({queryKey:["pause_task_reasons"],queryFn:()=>Nr({tasks_api:e}),staleTime:1e3*60*60*24})}},dt=30;function ta(e,t){var i;if(!e)return;const s=!!e.clientSideFilterActive,o=e.rawPageCount??((i=e.tasks)==null?void 0:i.length)??0;if(s)return o<dt?void 0:t.length+1;if(!(t.reduce((r,l)=>{var d;return r+(((d=l.tasks)==null?void 0:d.length)??0)},0)>=e.total)&&!(o<dt))return t.length+1}const aa=e=>{var t;if(e!=null&&e.hasNextPage){const s=(t=e==null?void 0:e.data)==null?void 0:t.pages[e.data.pages.length-1],o=s!=null&&typeof s=="object"&&!Array.isArray(s)&&"tasks"in s&&Array.isArray(s.tasks)?s.tasks:Array.isArray(s)?s:null,n=s;((n==null?void 0:n.rawPageCount)??(o==null?void 0:o.length)??0)===dt&&(e==null||e.fetchNextPage())}},jt=e=>({pagination:{page:e,pageSize:dt,withCount:!0}});function sa(e,t,s){var o;return{...e,owner:{user:t.id,config:at((o=e==null?void 0:e.owner)==null?void 0:o.config,t.role),role:t.role},status:s}}function na(e){var s;const t=(s=e==null?void 0:e.owner)==null?void 0:s.config;return t!=null&&`${t}`.trim()!==""}const Ts=()=>{const{tasks_api:e}=pe(),{user:t}=we(),{filters:s}=De(),o=u.useMemo(()=>sa(s,t,"por_hacer"),[s,t.id,t.role]),n=na(s),i=de.useInfiniteQuery({initialPageParam:1,queryKey:["to_do_tasks",o],enabled:n&&!!(t!=null&&t.id),queryFn:({pageParam:d})=>bt({filters:{...o,status:"por_hacer",...jt(d)},tasks_api:e}),staleTime:1e3*60*60*24,getNextPageParam:ta}),r=u.useMemo(()=>Ut(s),[s==null?void 0:s.assignment,s==null?void 0:s.teamMemberIds]),l=u.useMemo(()=>{var d;return Ht((d=i.data)==null?void 0:d.pages,r)},[i.data,r]);return{toDoTasks:i,total:l,filtersToSend:o}};function Sr(e){return(e??[]).map(t=>({id:t.id,label:t.motivo_imj}))}const Er=({idTask:e,setOpen:t,paused:s})=>{const o=de.useQueryClient(),{toDoTasks:n,filtersToSend:i}=Ts(),[r,l]=u.useState(!1),[d,c]=u.useState(null),{tasksProject:m}=ot(),{postPauseTask:f,postReanudeTask:h}=Ke(),{pauseReasons:g}=Cr(),b=Sr(g==null?void 0:g.data),w=async()=>{try{if(d==null)return;if(t(!1),await f({id:e,motiveId:d}),await o.invalidateQueries({queryKey:["to_do_tasks",i]}),await o.invalidateQueries({queryKey:["tasksProject"]}),n&&typeof n.refetch=="function"||m&&typeof m.refetch=="function"){const x=await n.refetch(),y=await m.refetch();return[x,y]}}catch(x){console.error("Error al pausar la tarea:",x)}},j=async()=>{try{if(t(!1),await h({id:e}),await o.invalidateQueries({queryKey:["to_do_tasks",i]}),await o.invalidateQueries({queryKey:["tasksProject"]}),n&&typeof n.refetch=="function"||m&&typeof m.refetch=="function"){const x=await n.refetch(),y=await m.refetch();return[x,y]}}catch(x){console.error("Error al reanudar la tarea:",x)}};return a.jsx("div",{className:"tm-flex tm-w-[300px] tm-max-w-[300px] tm-items-center !tm-p-4",children:a.jsxs("div",{className:"tm-flex tm-w-full tm-flex-col tm-gap-s ",children:[a.jsx("h6",{className:"tm-font-regular tm-text-texts-subtext tm-truncate tm-text-xl",children:"Pausar tarea:"}),r?a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-s",children:[a.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"Esta acción detendrá la campaña en curso."}),a.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):s?a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-s",children:[a.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"Esta acción reanudará la campaña en curso."}),a.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):a.jsx(p.Dropdown,{field:{placeholder:"Selecciona una razón"},items:{options:b,idName:"id"},values:{value:d??""},menuSearch:{searchable:!0,searchPlaceholder:"Buscar"},popover:{absolute:!1,closeOnClickOutside:!0,dropdownId:`task-pause-motivo-${e}`,popoverZIndex:1200},events:{onValueChange:x=>{const y=Number(x);Number.isNaN(y)||c(y)},onOptionSelect:x=>{const y=Number(x.id);Number.isNaN(y)||c(y)}}}),a.jsxs("div",{className:"tm-mt-5 tm-flex tm-w-full tm-justify-end tm-gap-m",children:[a.jsx(p.Button,{type:"button",onClick:()=>t(!1),size:"xs",color:"secondary",children:"Cancelar"}),s?a.jsx(p.Button,{type:"button",onClick:()=>j(),size:"xs",color:"primary",children:"Si, reanudar"}):a.jsx(p.Button,{type:"button",disabled:!d,onClick:()=>r?w():l(!0),size:"xs",color:"primary",children:"Aceptar"})]})]})})},Ns=({idTask:e,paused:t,popupId:s,children:o})=>{const n=u.useRef(null),i=u.useRef(null),[r,l]=u.useState(!1),[d,c]=u.useState(0),m=`task-pause-motivo-${e}`,f=u.useCallback(()=>{var h;(h=n.current)==null||h.close()},[]);return u.useEffect(()=>{if(!r)return;const h=g=>{const b=g.target;b instanceof Element&&(b.closest(`[data-popup-id="${s}"]`)||b.closest(`[data-dropdown-id="${m}"]`))||f()};return window.addEventListener("scroll",h,!0),document.addEventListener("scroll",h,!0),()=>{window.removeEventListener("scroll",h,!0),document.removeEventListener("scroll",h,!0)}},[r,f,s,m]),a.jsxs(a.Fragment,{children:[o(i),a.jsx(p.Popup,{ref:n,triggerRef:i,popupId:s,position:"bottom-left",offset:5,closeOnClick:!1,closeOnClickOutside:!1,popoverArrow:!1,onOpen:()=>{l(!0),c(h=>h+1)},onClose:()=>l(!1),children:a.jsx(Er,{idTask:e,paused:t,setOpen:h=>{h||f()}},d)})]})},Ar=({id:e,task:t,endDate:s,users:o,willBePaused:n,nameProject:i,comments:r,priority:l,difficulty:d,responsible:c,nameRequiredTask:m,nameRequiredTaskResponsible:f,statusRequiredTask:h,status:g,repeatsToDo:b,repeats:w,medioName:j,paused:x,idProject:y,atraso:v,categoria:N,cambio_arte:B,name_father_required_task:D,name_father_required_task_responsible:C,panelDataFromList:M,boardColumnTitle:E,isBulkColumnLocked:X=!1})=>{const[U,z]=u.useState(!1),k=u.useId(),{reasignResponsible:K,updateUnitys:F}=Ke(),{getOBPUrlApi:$}=pe(),[R,G]=u.useState(w??0);u.useEffect(()=>{G(w??0)},[w]);const V=Number(w??0),P=Number(b??0),te=P>0&&V===P,ee=P>=1&&!te&&g===1,A=P<=1,H=g===0,Y=!ee&&(te||A||H)&&g!==2,O=(m??"")!==""&&h===2,{user:I}=we(),W=yt(I==null?void 0:I.role,g),_=Yt(),S=!!(_!=null&&_.selectedTaskIds.includes(e)),q=Y&&(O||!m),L=!!_&&!!E&&E!=="Completadas"&&!X,T=L&&q,Q=L&&!q&&!!(_!=null&&_.isBulkSessionActive),Z=!!(_!=null&&_.isMultiSelectActive&&T&&O),ae=!T||!!(_!=null&&_.isBulkLoading),re=fe=>{!_||!E||ae||_.toggleTaskSelection(e,E)},J=()=>a.jsxs("div",{className:"tm-relative tm-flex tm-h-fit tm-w-full tm-items-center tm-justify-between",children:[a.jsxs("div",{className:"tm-flex tm-min-w-0 tm-flex-1 tm-flex-row tm-items-start tm-gap-[8px]",children:[g<2&&!ee&&(D||te||A||H)&&a.jsx("span",{"data-prevent-bulk-select":!0,children:a.jsx(vs,{id:e,nameRequiredTask:m??"",statusRequiredTask:h??0,status:g,idAtraso:v==null?void 0:v.atrasoId,nameRequiredTaskResponsible:f,name_father_required_task:D,name_father_required_task_responsible:C,repeatsAreCompleted:te})}),a.jsx("p",{className:"tm-w-full tm-overflow-hidden tm-text-ellipsis tm-text-nowrap tm-text-base tm-text-neutral-900","data-prevent-bulk-select":!0,onClick:fe=>{fe.stopPropagation(),z(!0)},children:t})]}),q&&a.jsxs("div",{className:"tm-flex tm-shrink-0 tm-items-center tm-gap-2","data-prevent-bulk-select":!0,children:[_?a.jsx("div",{className:"tm-flex tm-items-center tm-pt-0.5 tm-pr-2",children:a.jsx(p.Checkbox,{id:`kanban-bulk-select-${e}-${k}`,size:"sm",checked:S,disabled:ae,onChange:re})}):null,a.jsx(gr,{id:e,nameRequiredTask:m,status:g,statusRequiredTask:h,projectID:y,atrasoId:v==null?void 0:v.atrasoId,categoria:N,disabled:Z})]})]}),se=fe=>{const be=P>0?P:Number(b??0);G(Ae=>{const ve=Number.isFinite(Number(Ae))?Number(Ae):V;return fe==="minus"?Math.max(0,ve-1):!Number.isFinite(be)||be<=0?ve:Math.min(be,ve+1)})},ce=fe=>{var be;return((be=fe==null?void 0:fe.charAt(0))==null?void 0:be.toUpperCase())??""},me=fe=>fe==="Venta"?"accent":"danger",ie=X||!!(_!=null&&_.isBulkLoading),ye=Q?"tm-cursor-not-allowed tm-opacity-60 hover:tm-border-cards hover:tm-bg-surface-default":"tm-cursor-pointer hover:tm-border-default hover:tm-border-primary-regular hover:tm-bg-primary-light";return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:`tm-relative tm-h-fit tm-max-w-[350px] tm-rounded-lg tm-border tm-p-[12px_12px] tm-transition-all tm-duration-300 ${ye} ${S?"tm-border-blue-500 tm-bg-primary-light":"tm-border-transparent tm-bg-surface-default"} ${ie?"tm-pointer-events-none":""}`,children:[a.jsx(J,{}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-[4px] tm-py-2",children:[a.jsx("p",{className:"tm-font-regular tm-max-w-[250px] tm-truncate tm-text-xs tm-text-texts-subtext",children:i}),j&&a.jsx(p.Text,{type:"body",size:"sm",weight:"medium",children:j})]}),B&&a.jsx(p.Badge,{label:B.nombre,color:"gray",icon:ne.faImage,size:"md",theme:"solid"}),a.jsxs("div",{"data-prevent-bulk-select":!0,className:"tm-relative tm-flex tm-h-fit tm-w-full tm-items-center tm-justify-between tm-pb-1 tm-pt-5",children:[a.jsxs("div",{className:"tm-relative tm-flex tm-items-center",children:[a.jsx(ws,{responsible:c,responsibleCandidateIds:o.map(fe=>fe.id),role:I==null?void 0:I.role,status:g,users:o.filter(fe=>c?fe.id===c:!0).map(fe=>Xt(fe,$())),onClick:async(fe,be)=>{await K({idNewResponsible:fe,id:e,typeOfSelect:be})}}),n&&a.jsx(Ns,{idTask:e,paused:x,popupId:`task-pause-menu-${e}`,children:fe=>a.jsx("button",{ref:fe,type:"button",className:"tm-font-regular tm-flex !tm-h-[32px] !tm-w-[32px] tm-items-center tm-justify-center tm-gap-2 tm-text-sm tm-text-gray-400",children:a.jsx(p.Icon,{name:x?ne.faPlay:ne.faPause,size:"xs",color:"current"})})})]}),a.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-8",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx(p.Badge,{label:ce((N==null?void 0:N.tipo)??"P"),color:me((N==null?void 0:N.tipo)??"Preventa"),size:"sm",theme:"solid"}),v&&a.jsx(ke,{trigger:a.jsx(p.Icon,{name:ne.faTriangleExclamation,size:"sm",color:"warning"}),children:a.jsx(p.Text,{color:"warning",children:`Tarea atrasada debido a: ${v==null?void 0:v.motivo}`})}),a.jsx(Zt,{difficulty:d,id:e,canEdit:W}),a.jsx(ea,{priority:l,id:e,canEdit:W}),!b||b&&g===0&&a.jsxs(a.Fragment,{children:[a.jsx(p.Icon,{name:ne.faCalendar,size:"xs",color:"primary"}),a.jsx(p.Text,{color:"primary",children:`${s.getDate()} ${Qt(s.getMonth()).slice(0,3)}`})]})]}),g===1&&P>0&&a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-m",children:[a.jsx(p.Text,{color:"primary",children:"unidades"}),a.jsx("button",{type:"button",onClick:()=>se("minus"),className:"tm-mr-[4px] tm-flex tm-h-8 tm-w-8 tm-shrink-0 tm-items-center tm-justify-center tm-rounded-full tm-bg-surface-default hover:tm-bg-surface-hover",children:a.jsx(p.Icon,{name:ne.faCircleMinus,size:"xs",color:"primary"})}),a.jsx(p.Text,{color:"primary",children:`${R??0} / ${P}`}),a.jsx("button",{type:"button",onClick:()=>se("plus"),className:"tm-ml-[4px] tm-flex tm-h-8 tm-w-8 tm-shrink-0 tm-items-center tm-justify-center tm-rounded-full tm-bg-surface-default hover:tm-bg-surface-hover",children:a.jsx(p.Icon,{name:ne.faCirclePlus,size:"xs",color:"primary"})}),a.jsx(p.Button,{type:"button",color:"primary",size:"xs",pill:"none",className:"tm-ml-[4px]",disabled:R===V,onClick:()=>{F({repeats:R,id:e})},children:"Agregar Unidad"})]})]})]}),r>0&&a.jsx("div",{className:"tm-mt-4 tm-border-t tm-border-default tm-pt-2",children:a.jsxs("button",{type:"button","data-prevent-bulk-select":!0,onClick:fe=>{fe.stopPropagation(),z(!0)},className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx(p.Icon,{name:ne.faComment,size:"xs",color:"current"}),a.jsx("span",{className:"tm-font-regular tm-text-xl tm-text-gray-400",children:r})]})})]}),a.jsx(_s,{taskId:e,isOpen:U,setIsOpen:z,initialFromList:M??void 0})]})},wt=({title:e,tasks:t,loadNextPage:s,isFetching:o,total:n,bulkSelectAllIds:i})=>{const r=u.useRef(null),l=u.useRef(null),d=u.useRef(!1);u.useEffect(()=>{const j=r.current,x=l.current;j&&x&&(x.style.minHeight=`${j.clientHeight-300}px`)},[]);const c=j=>{if(d.current)return;const{scrollTop:x,clientHeight:y,scrollHeight:v}=j.currentTarget,N=v-y,B=N===0?0:x/N*100;B<=95||B>=95&&(d.current=!0,s&&s(),setTimeout(()=>{d.current=!1},200))},m={"Por hacer":"tm-border-texts-placeholder",Trabajando:"tm-border-primary-regular",Completadas:"tm-border-success-regular"},f=Yt(),h=e,g=!!(f!=null&&f.baseColumn&&f.baseColumn!==e),b=!!f&&e!=="Completadas"&&(f==null?void 0:f.isBulkSessionActive)&&f.baseColumn===e&&typeof i=="function",w=()=>{if(!(!f||!i)){if(f.isFullColumnSelected){f.deselectAllSelectedTasks();return}f.selectEntireColumn(h,i)}};return a.jsxs("div",{ref:r,className:`tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-fit tm-min-w-[400px] tm-max-w-[400px] tm-flex-col tm-overflow-hidden tm-rounded-lg tm-border-t-4 tm-bg-canvas tm-p-[16px] ${m[e]} ${g?"tm-opacity-40":""}`,children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-w-full",children:[a.jsx("p",{className:"tm-text-sm",children:e}),b&&a.jsx("button",{type:"button",className:"tm-text-base tm-text-brand disabled:tm-cursor-not-allowed disabled:tm-opacity-50 tm-mx-3",disabled:f==null?void 0:f.isBulkLoading,onClick:w,children:f!=null&&f.isBulkLoading?"Cargando…":f!=null&&f.isFullColumnSelected?"Quitar Selección":"Seleccionar todas"})]}),a.jsx("div",{className:"tm-flex tm-items-center tm-gap-[8px]",children:a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-[4px]",children:[a.jsx(p.Icon,{name:ne.faFiles,size:"sm",color:"secondary"}),a.jsx("p",{className:"tm-text-base tm-text-texts-placeholder",children:n??0})]})})]}),a.jsxs("div",{ref:l,className:"tm-flex tm-h-full tm-max-w-[350px] tm-flex-col tm-gap-[12px] tm-overflow-y-auto tm-pb-[200px] tm-pt-4 tm-scrollbar-none hover:tm-border-default hover:tm-bg-surface-hover focus:tm-border-default focus:tm-bg-light-gray-50 focus:tm-outline-none",onScroll:c,children:[t==null?void 0:t.map(j=>a.jsx(Ar,{...j,boardColumnTitle:f?h:void 0,isBulkColumnLocked:!!(f&&g)},j.id)),o?a.jsx(Yo,{}):a.jsx("p",{className:"tm-text-center tm-text-sm tm-text-light-gray-900",children:"No hay más tareas por mostrar..."})]})]})},Fa=[{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"}]}],oa=(e=7)=>{const t=(o,n)=>o>=n?{populate:"*"}:{miembro_padre:{fields:["id"]},idUser:{populate:"*"},miembros:{populate:t(o+1,n),filters:{idUser:{blocked:!1}}}};return{miembros:{populate:t(0,e),filters:{idUser:{blocked:!1}}}}};function Ir(){return Pe.stringify({populate:oa(7),pagination:{pageSize:9999}},{encodeValuesOnly:!0})}function Cs(e,t){return(e??[]).some(s=>{var o;return s.esEncargado&&((o=s.idUser)==null?void 0:o.id)===t})}function Pr(e,t){return e.some(s=>Cs(s.miembros,t))}function Dr(e,t){const s=new Map;for(const o of e)Cs(o.miembros,t)&&xt(o.miembros,n=>{const i=n.idUser.id,r=n.idUser.nombre??"";s.has(i)||s.set(i,r)});return[...s.entries()].map(([o,n])=>({id:o,name:n})).sort((o,n)=>o.name.localeCompare(n.name,"es"))}async function Fr(e){var o;const t=Ir(),s=await e.get(`/api/equipos?${t}`);return je(((o=s.data)==null?void 0:o.data)??[])}function Ss(){const{tasks_api:e}=pe(),{user:t}=we();return de.useQuery({queryKey:["kanban-general","equipos","encargados",t.id],queryFn:()=>Fr(e),staleTime:1e3*60*60,refetchOnWindowFocus:!1,select:s=>({esEncargado:Pr(s,t.id),integrantesOptions:Dr(s,t.id)})})}const Mr=()=>{const{user:e}=we(),{data:t}=Ss(),s=(t==null?void 0:t.esEncargado)??!1,o=JSON.stringify((t==null?void 0:t.integrantesOptions)??[]),[n,i]=u.useState([...Fa]);return u.useEffect(()=>{const r=(t==null?void 0:t.integrantesOptions)??[];let l=Va([...Fa],s,r);l=gs(l,e.role);const d=JSON.stringify(n),c=JSON.stringify(l);d!==c&&i(l)},[e.role,s,o,t]),{filters:n}},kr="/api/tareas/bulk-update-status";async function Lr(e,t){const{data:s}=await e.post(kr,t);return s}function Or(e){var t,s,o,n;if(nt.isAxiosError(e)){const i=(t=e.response)==null?void 0:t.status,r=(s=e.response)==null?void 0:s.data;if(i===400){if(typeof r=="string"&&r.trim().length>0)return r.trim();if(r&&typeof r=="object"){const l=r.message;if(typeof l=="string"&&l.trim())return l.trim();const d=(o=r.details)==null?void 0:o.errors,c=(n=d==null?void 0:d[0])==null?void 0:n.message;if(typeof c=="string"&&c.trim())return c.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 Br(){const{tasks_api:e}=pe(),{user:t}=we();return de.useMutation({mutationKey:["tareas","bulk-update-status"],mutationFn:async s=>{const o=s.user_id??(t==null?void 0:t.id);if(o==null||o<1)throw new Error("No hay usuario válido para la actualización masiva.");try{return await Lr(e,{...s,user_id:o})}catch(n){throw new Error(Or(n))}}})}const Et={MOVE_TO_TRABAJANDO:"kanban-bulk-move-trabajando",MOVE_TO_POR_HACER:"kanban-bulk-move-por-hacer",MOVE_TO_COMPLETADAS:"kanban-bulk-move-completadas"};function Rr(e){const{isBulkLoading:t}=e;return[{type:"button",label:"Cancelar",icon:ne.faXmark,color:"secondary",pill:"pill",disabled:t,onClick:()=>{t||(e.setPendingTargetStatus(null),e.setActiveButtonId(null))}},{type:"button",label:"Confirmar",icon:ne.faCheck,color:"secondary",pill:"pill",disabled:t,onClick:()=>{t||e.onConfirmBulkMove()}}]}const At="secondary";function zr(e){const t=Rr({setActiveButtonId:e.setActiveButtonId,setPendingTargetStatus:e.setPendingTargetStatus,onConfirmBulkMove:e.onConfirmBulkMove,isBulkLoading:e.isBulkLoading});return e.baseColumn==="Por hacer"?[{id:Et.MOVE_TO_TRABAJANDO,label:"Mover a trabajando",icon:ne.faArrowRight,color:At,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(1)},addons:t}]:e.baseColumn==="Trabajando"?[{id:Et.MOVE_TO_POR_HACER,label:"Mover a por hacer",icon:ne.faArrowLeft,color:At,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(0)},addons:t},{id:Et.MOVE_TO_COMPLETADAS,label:"Mover a completadas",icon:ne.faArrowRight,color:At,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(2)},addons:t}]:[]}const qr="Seleccionados";function Es(){const e=Yt(),[t,s]=u.useState(null),o=t!==null,n=de.useQueryClient(),{mutate:i}=Br(),r=(e==null?void 0:e.selectedTaskIds.length)??0;u.useEffect(()=>{r===0&&s(null)},[r]);const l=u.useCallback(()=>{e!=null&&e.isBulkLoading||e==null||e.setPendingTargetStatus(null)},[e]),d=u.useCallback(()=>{s(null),e==null||e.exitBulkSelectionMode()},[e]),c=u.useCallback(()=>{if(!e)return;const f=e.pendingTargetStatus,h=e.selectedTaskIds;if(f==null||h.length===0)return;const g={tasks_ids:[...h],estatus:f,...f===2?{ended_at:new Date().toISOString()}:{}};e.setIsBulkLoading(!0),i(g,{onSettled:()=>{e.setIsBulkLoading(!1)},onSuccess:async()=>{await e.invalidateAfterBulkSuccess(n),s(null),e.exitBulkSelectionMode()},onError:()=>{s(null),e.setPendingTargetStatus(null)}})},[e,i,n]),m=u.useMemo(()=>e?zr({baseColumn:e.baseColumn,setPendingTargetStatus:e.setPendingTargetStatus,setActiveButtonId:s,onConfirmBulkMove:c,isBulkLoading:e.isBulkLoading}):[],[e,c]);return!e||r===0||e.baseColumn!=="Por hacer"&&e.baseColumn!=="Trabajando"?null:a.jsx(p.Toolbar,{visible:!0,count:r,text:qr,activeButtonId:t,onActiveButtonIdChange:s,onBackClick:l,buttons:m,onClose:d,showCounterInButtonsView:!o,showBackButton:!o,showCloseButton:!o})}const As=["to_do_tasks","working_tasks","done_tasks"],Is="tasksProject";function $r(e){return Promise.all(As.map(t=>e.invalidateQueries({queryKey:[t]}))).then(()=>{})}function Ur(e){return Promise.all(As.map(t=>e.resetQueries({queryKey:[t]}))).then(()=>{})}function Hr(e){return e.refetchQueries({queryKey:[Is],type:"active"}).then(()=>{})}function Kr(e){return e.invalidateQueries({queryKey:[Is]}).then(()=>{})}function Gr(e){const t=!!(e.repeatsToDo&&e.repeats===e.repeatsToDo),s=!e.repeatsToDo||e.repeatsToDo===1,o=e.status===0;return t||s||o}function Vr(e,t){return(e??"")!==""&&(t??0)===2||!(e??"")}function Ps(e){return e.status===2||!Gr(e)?!1:Vr(e.nameRequiredTask,e.statusRequiredTask)}const Wr=["Por hacer","Trabajando","Completadas"],Qr=()=>{const{defineFields:e}=De(),{tasksProject:t}=ot(),{filters:s}=Mr();u.useEffect(()=>{e([...s])},[e,s]);const o=u.useMemo(()=>{var i;return(((i=t==null?void 0:t.data)==null?void 0:i.filter(r=>{var l;return(((l=r==null?void 0:r.tasks)==null?void 0:l.length)??0)===0}))??[]).reduce((r,l)=>(r[l.status]=r[l.status]||[],r[l.status].push(l),r),{})},[t==null?void 0:t.data]);return a.jsxs(bs,{invalidateAfterBulkSuccess:Kr,children:[a.jsx(Es,{}),a.jsx("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-gap-8",children:Wr.map((n,i)=>{const r=(o==null?void 0:o[i])??[];return a.jsx(wt,{total:r.length,title:n,tasks:r,isFetching:t==null?void 0:t.isFetching,isLoadingData:t==null?void 0:t.isLoading,bulkSelectAllIds:()=>Promise.resolve(r.filter(l=>Ps({status:l.status,nameRequiredTask:l.nameRequiredTask,statusRequiredTask:l.statusRequiredTask,repeatsToDo:l.repeatsToDo,repeats:l.repeats})).map(l=>l.id))},n)})})]})};function Xr(e,t){return!e||e.length!==t.length?!1:JSON.stringify(e)===JSON.stringify(t)}async function Ds(e){const t=[];let s=1;for(;;){const{tasks:o,rawPageCount:n}=await bt({filters:{...e.filters,status:e.status,...jt(s)},tasks_api:e.tasks_api});for(const i of o)Ps({status:i.status,nameRequiredTask:i.nameRequiredTask,statusRequiredTask:i.statusRequiredTask,repeatsToDo:i.repeatsToDo,repeats:i.repeats})&&t.push(i.id);if((n??o.length)<dt)break;s+=1}return t}const Yr=()=>{var i,r;const{tasks_api:e}=pe(),{toDoTasks:t,total:s,filtersToSend:o}=Ts(),n=[...((r=(i=t==null?void 0:t.data)==null?void 0:i.pages)==null?void 0:r.flatMap(l=>l.tasks))??[]];return a.jsx(wt,{total:s,title:"Por hacer",tasks:n,loadNextPage:()=>aa(t),isFetching:t==null?void 0:t.isFetching,isLoadingData:t==null?void 0:t.isLoading,bulkSelectAllIds:()=>Ds({tasks_api:e,filters:o,status:"por_hacer"})})},Jr=()=>{const{tasks_api:e}=pe(),{user:t}=we(),{filters:s}=De(),o=u.useMemo(()=>sa(s,t,"trabajando"),[s,t.id,t.role]),n=na(s),i=de.useInfiniteQuery({initialPageParam:1,queryKey:["working_tasks",o],enabled:n&&!!(t!=null&&t.id),queryFn:({pageParam:d})=>bt({filters:{...o,status:"trabajando",...jt(d)},tasks_api:e}),staleTime:1e3*60*60*24,getNextPageParam:ta}),r=u.useMemo(()=>Ut(s),[s==null?void 0:s.assignment,s==null?void 0:s.teamMemberIds]),l=u.useMemo(()=>{var d;return Ht((d=i.data)==null?void 0:d.pages,r)},[i.data,r]);return{workingTasks:i,total:l,filtersToSend:o}},Zr=()=>{var i,r;const{tasks_api:e}=pe(),{workingTasks:t,total:s,filtersToSend:o}=Jr(),n=[...((r=(i=t==null?void 0:t.data)==null?void 0:i.pages)==null?void 0:r.flatMap(l=>l.tasks))??[]];return a.jsx(wt,{total:s,title:"Trabajando",tasks:n,loadNextPage:()=>aa(t),isFetching:t==null?void 0:t.isFetching,bulkSelectAllIds:()=>Ds({tasks_api:e,filters:o,status:"trabajando"})})},ei=()=>{const{user:e}=we(),{tasks_api:t}=pe(),{filters:s}=De(),o=u.useMemo(()=>sa(s,e,"completadas"),[s,e.id,e.role]),n=na(s),i=de.useInfiniteQuery({initialPageParam:1,queryKey:["done_tasks",o],enabled:n&&!!(e!=null&&e.id),queryFn:({pageParam:d})=>bt({filters:{...o,status:"completadas",...jt(d)},tasks_api:t}),staleTime:1e3*60*60*24,getNextPageParam:ta}),r=u.useMemo(()=>Ut(s),[s==null?void 0:s.assignment,s==null?void 0:s.teamMemberIds]),l=u.useMemo(()=>{var d;return Ht((d=i.data)==null?void 0:d.pages,r)},[i.data,r]);return{doneTasks:i,total:l,filtersToSend:o}},ti=()=>{var o,n;const{doneTasks:e,total:t}=ei(),s=[...((n=(o=e==null?void 0:e.data)==null?void 0:o.pages)==null?void 0:n.flatMap(i=>i.tasks))??[]];return a.jsx(wt,{title:"Completadas",tasks:s,loadNextPage:()=>aa(e),isFetching:e==null?void 0:e.isFetching,total:t})};class gt{static toSalesmanUsers(t){return{id:t.id,name:t.nombre}}}const ai=()=>{const{tasks_api:e}=pe(),{filters:t}=De(),{user:s}=we(),o=async()=>(await e.get("/api/obtener-comerciales")).data.map(gt.toSalesmanUsers),n=async()=>{var l;return(await e.get("/api/listado_tareas",{params:{...ua(t),owner:{user:s.id,config:at((l=t==null?void 0:t.owner)==null?void 0:l.config,s.role),role:s.role},justProjects:!0,cancelada:!1}})).data.map(gt.toSalesmanUsers)};return{getSalesmanAndProjects:u.useCallback(async(r={})=>{var g;const l={...t,...r},d=at((r==null?void 0:r["owner.config"])??((g=t==null?void 0:t.owner)==null?void 0:g.config),s==null?void 0:s.role),c={...l};delete c["owner.config"];const m=ua(c),[f,h]=await Promise.all([e.get("/api/obtener-comerciales"),e.get("/api/listado_tareas",{params:{...m,owner:{user:s==null?void 0:s.id,config:d,role:s.role},justProjects:!0,cancelada:!1}})]);return{salesmanUsers:f.data.map(gt.toSalesmanUsers),projects:h.data.map(gt.toSalesmanUsers)}},[e,t,s==null?void 0:s.id,s==null?void 0:s.role]),getProjects:n,getSalesmans:o}},si=()=>{const{user:e}=we(),{data:t}=Ss(),s=(t==null?void 0:t.esEncargado)??!1,o=JSON.stringify((t==null?void 0:t.integrantesOptions)??[]),[n,i]=u.useState([...ga]);return u.useEffect(()=>{const r=(t==null?void 0:t.integrantesOptions)??[];let l=Va([...ga],s,r);l=gs(l,e.role);const d=JSON.stringify(n),c=JSON.stringify(l);d!==c&&i(l)},[e.role,s,o,t]),{filters:n}},ni=()=>{const{defineFields:e,initialFilters:t,fields:s}=De(),{getSalesmanAndProjects:o}=ai(),{filters:n}=si(),i=u.useRef(s);i.current=s;const r=(t==null?void 0:t["owner.config"])??"yo_y_mis_equipos";return u.useEffect(()=>{let l=!1;return(async()=>{const{salesmanUsers:c,projects:m}=await o({"owner.config":r});if(l)return;const f=n.map(h=>h.id==="project.id"?{...h,options:m}:h.id==="salesman.id"?{...h,options:c}:h);Xr(i.current,f)||e(f)})(),()=>{l=!0}},[e,n,o,r]),a.jsxs(bs,{invalidateAfterBulkSuccess:$r,children:[a.jsx(Es,{}),a.jsxs("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-gap-8",children:[a.jsx(Yr,{}),a.jsx(Zr,{}),a.jsx(ti,{})]})]})},Fs=u.createContext({}),oi=({children:e})=>{const[t,s]=u.useState([]),o=n=>{s(i=>i.includes(n)?i.filter(r=>r!==n):[...i,n])};return a.jsx(Fs.Provider,{value:{selectedTasks:t,selectTask:o},children:e})},ri=()=>u.useContext(Fs),ii=()=>{const e=()=>a.jsxs("div",{className:"tm-flex tm-w-full tm-gap-m",children:[a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-full tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-w-[30%] tm-animate-pulse tm-rounded-md tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-w-[10%] tm-animate-pulse tm-rounded-md tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-w-[10%] tm-animate-pulse tm-rounded-md tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),a.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"})]});return a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-m",children:[a.jsx(e,{}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-m tm-pl-5",children:[a.jsx(e,{}),a.jsx("div",{className:"tm-pl-5",children:a.jsx(e,{})})]}),a.jsx(e,{}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-m tm-pl-5",children:[a.jsx(e,{}),a.jsx("div",{className:"tm-pl-5",children:a.jsx(e,{})})]})]})},Ms=({startDate:e,endDate:t})=>a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"tm-flex tm-h-[30px] tm-w-fit tm-items-center tm-justify-center tm-gap-s tm-rounded-md tm-bg-surface-default tm-px-xl",children:[a.jsx(p.Icon,{name:ne.faCalendar,size:"xs",color:"current"}),a.jsxs(p.Text,{children:[" ",Ta(e)]})]}),a.jsx(p.Icon,{name:ne.faArrowRight,size:"xs",color:"current"}),a.jsxs("div",{className:"tm-flex tm-h-[30px] tm-w-fit tm-items-center tm-justify-center tm-gap-s tm-rounded-md tm-bg-surface-default tm-px-xxxl",children:[a.jsx(p.Icon,{name:ne.faCalendar,size:"xs",color:"current"}),a.jsxs(p.Text,{children:[" ",Ta(t)]})]})]}),ks=({id:e,priority:t,difficulty:s,endDate:o,atraso:n,role:i,status:r})=>{const[l,d]=u.useState(!1),c=yt(i,r),m={0:{title:"N/A",color:Se.success.regular,bg:"tm-bg-texts-placeholder tm-border-texts-placeholder",border:"tm-border-success-medium",borderHover:"hover:tm-border-success-dark"},1:{title:"Baja",color:Se.success.regular,bg:"tm-bg-success-medium tm-border-success-pastel",border:"tm-border-success-pastel",borderHover:"hover:tm-border-success-dark"},2:{title:"Media",color:Se.warning.regular,bg:"tm-bg-warning-light tm-border-warning-regular",border:"tm-border-warning-regular",borderHover:"hover:tm-border-warning-dark"},3:{title:"Alta",color:Se.danger.regular,bg:"tm-bg-danger-light tm-border-danger-regular",border:"tm-border-danger-regular",borderHover:"hover:tm-border-danger-dark"}},f={1:{title:"Muy fácil",color:Se.success.dark,iconColor:"brand",bg:"tm-bg-success-medium tm-border-success-regular",border:"tm-border-success-medium",borderHover:"hover:tm-border-success-dark"},2:{title:"Fácil",color:Se.success.regular,iconColor:"success",bg:"tm-bg-success-medium tm-border-success-pastel",border:"tm-border-success-medium",borderHover:"hover:tm-border-success-dark"},3:{title:"Media",color:Se.warning.regular,iconColor:"warning",bg:"tm-bg-warning-light tm-border-warning-regular",border:"tm-border-warning-medium",borderHover:"hover:tm-border-warning-dark"},4:{title:"Difícil",color:Se.danger.regular,iconColor:"danger",bg:"tm-bg-danger-light tm-border-danger-regular",border:"tm-border-danger-medium",borderHover:"hover:tm-border-danger-dark"},5:{title:"Muy difícil",color:Se.danger.dark,iconColor:"danger",bg:"tm-bg-danger-light tm-border-danger-regular",border:"tm-border-danger-medium",borderHover:"hover:tm-border-danger-dark"}},h=()=>{if(s==null||Number.isNaN(Number(s)))return 1;const x=Math.trunc(Number(s));return x===0?1:x>=1&&x<=5?x:1},g=()=>{if(t==null||Number.isNaN(Number(t)))return 0;const x=Math.trunc(Number(t));return x>=0&&x<=3?x:0},b=f[h()]??f[1],w=m[g()]??m[0],j=o instanceof Date&&!Number.isNaN(o.getTime())?`${o.getDate()} ${Qt(o.getMonth()).slice(0,3)}`:"—";return a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",className:"tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center tm-gap-8 tm-rounded-[8px] tm-bg-surface-default hover:tm-bg-surface-hover",children:a.jsx(ke,{trigger:a.jsx(p.Icon,{name:ne.faAlignCenter,size:"xs",color:"current"}),children:a.jsx("div",{className:"tm-px-8 tm-py-4",children:a.jsx(p.Text,{children:"Espéralo muy pronto..."})})})}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx("div",{className:`tm-gap-s ${b.border} ${b.borderHover} transition-all duration-300 tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center
6
+ tm-rounded-[8px] tm-border tm-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)]`,children:a.jsx(Zt,{difficulty:s,id:e,canEdit:c})}),a.jsx("div",{className:`tm-gap-s ${w.bg.replace(/\bbg-|border-/g,"tm-$&")??"tm-bg-light-gray-50"} transition-all duration-300 tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center tm-rounded-[8px]
7
+ tm-border tm-border-success-medium tm-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)] hover:tm-border-success-dark`,children:a.jsx(ea,{priority:g(),id:e,canEdit:c})}),(n==null?void 0:n.activa)&&a.jsx("div",{onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),className:`transition-all duration-300 tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center tm-gap-s tm-rounded-[8px]
8
+ tm-border tm-border-danger-medium tm-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)] hover:tm-border-danger-dark`,children:a.jsx(ke,{trigger:a.jsx(p.Icon,{name:ne.faTriangleExclamation,size:"xs",color:l?"warning":"primary"}),children:a.jsx("div",{className:"tm-px-8 tm-py-4",children:a.jsx(p.Text,{children:n==null?void 0:n.motivo})})})}),a.jsx(p.Icon,{name:ne.faCalendar,size:"xs",color:"current"}),a.jsx(p.Text,{children:j})]})]})},li=({id:e})=>{const{selectedTasks:t,selectTask:s}=ri();return a.jsxs(a.Fragment,{children:[a.jsx("label",{className:"tm-flex tm-h-[20px] tm-w-[20px] tm-cursor-pointer tm-items-center tm-justify-center tm-rounded-md tm-border-2 tm-border-default",htmlFor:e.toString(),children:a.jsx("span",{className:`${t.includes(e)?"tm-opacity-100":"tm-opacity-0"} tm-transition-opacity tm-duration-500`,children:a.jsx(p.Icon,{name:ne.faCheck,size:"xs",style:{color:Se.primary.regular},color:"current"})})}),a.jsx("input",{className:"tm-hidden",id:e.toString(),type:"checkbox",onChange:()=>s(e)})]})},Ls=({task:e})=>a.jsx(ke,{trigger:a.jsx(p.Text,{children:e}),children:a.jsx("div",{className:"tm-py-2 tm-px-4",children:a.jsx(p.Text,{children:e})})}),ci=({id:e})=>{var d,c,m,f;const[t,s]=u.useState(!1),{tasksProject:o}=ot(),{reasignResponsible:n}=Ke(),{getOBPUrlApi:i}=pe(),r=(d=o==null?void 0:o.data)==null?void 0:d.find(h=>h.id===e),{user:l}=we();return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"tm-border-b tm-border-default tm-pb-3",children:a.jsxs("div",{className:"tm-mb-3 tm-ml-[30px] tm-mt-1 tm-flex tm-flex-wrap tm-items-center tm-gap-xl tm-rounded-md tm-p-2 hover:tm-bg-surface-hover",onClick:()=>s(!0),children:[!(r!=null&&r.nameRequiredTask)||(r==null?void 0:r.nameRequiredTask)!==""&&(r==null?void 0:r.statusRequiredTask)===2&&a.jsx(li,{id:e}),a.jsx(vs,{id:e,idAtraso:(c=r==null?void 0:r.atraso)==null?void 0:c.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)&&a.jsx(Ns,{idTask:r.id,paused:r.paused,popupId:`child-task-pause-menu-${r.id}`,children:h=>a.jsx(p.Button,{ref:h,color:"tertiary",icon:r!=null&&r.paused?ne.faPause:ne.faPlay,className:"tm-font-regular tm-flex tm-items-center tm-gap-8 tm-text-sm tm-text-gray-400",size:"xs"})}),a.jsx(ws,{responsibleCandidateIds:((m=r==null?void 0:r.users)==null?void 0:m.map(h=>h.id))??[],role:l==null?void 0:l.role,status:r==null?void 0:r.status,onClick:async(h,g)=>{await n({idNewResponsible:h,id:e,typeOfSelect:g})},responsible:r==null?void 0:r.responsible,users:((f=r==null?void 0:r.users)==null?void 0:f.map(h=>Xt(h,i())))??[]}),a.jsx(Ls,{task:(r==null?void 0:r.task)??""}),a.jsx(ks,{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,role:l==null?void 0:l.role,status:(r==null?void 0:r.status)??-1}),a.jsx(Ms,{startDate:r==null?void 0:r.startDate,endDate:r==null?void 0:r.endDate})]})}),a.jsx(_s,{taskId:e,isOpen:t,setIsOpen:s,initialFromList:(r==null?void 0:r.panelDataFromList)??void 0})]})},Os=({id:e})=>{var d,c,m,f,h,g;const{user:t}=we(),{tasksProject:s,openTasks:o,openTask:n}=ot(),i=(d=s==null?void 0:s.data)==null?void 0:d.find(b=>b.id===e),l=(()=>{var j;const b=s==null?void 0:s.data,w=[];return(j=i==null?void 0:i.tasks)==null||j.forEach(x=>{const y=b.find(v=>v.id===(x==null?void 0:x.id));y&&w.push(y)}),w})();return i?a.jsxs("div",{className:"tm-mb-2 tm-flex tm-flex-col tm-gap-m tm-overflow-y-auto",children:[a.jsxs("div",{className:"tm-flex tm-cursor-pointer tm-flex-wrap tm-items-center tm-gap-16 tm-rounded-md tm-p-2 hover:tm-bg-surface-hover",onClick:()=>n(e),children:[a.jsx("button",{type:"button",className:`${o.includes(e)?"":"tm--rotate-90"} tm-transition-all tm-duration-300`,children:a.jsx(p.Icon,{name:ne.faChevronDown,size:"sm",style:{color:Se.texts.subtext},color:"current"})}),a.jsx("div",{className:"tm-mx-1 tm-flex tm-h-[28px] tm-min-h-[28px] tm-w-fit tm-min-w-[28px] tm-items-center tm-justify-center tm-rounded-full tm-bg-surface-default",children:a.jsx("p",{className:"tm-text-primary tm-text-md",children:((c=i==null?void 0:i.tasks)==null?void 0:c.length)===0?1:l.length})}),a.jsx(Ls,{task:(i==null?void 0:i.task)??""}),a.jsx(ks,{id:e,priority:i==null?void 0:i.priority,difficulty:i==null?void 0:i.difficulty,endDate:i==null?void 0:i.endDate,atraso:i==null?void 0:i.atraso,role:t==null?void 0:t.role,status:(i==null?void 0:i.status)??-1}),a.jsx(Ms,{startDate:i==null?void 0:i.startDate,endDate:i==null?void 0:i.endDate}),a.jsxs("button",{type:"button",className:"tm-flex tm-h-[30px] tm-w-fit tm-items-center tm-justify-center tm-gap-s tm-rounded-md tm-bg-surface-default tm-px-m hover:tm-bg-surface-hover",children:[a.jsx(p.Icon,{name:ne.faDiagramSubtask,size:"sm",color:"current"}),a.jsx(p.Text,{children:((m=i==null?void 0:i.tasks)==null?void 0:m.length)===0?1:(f=i==null?void 0:i.tasks)==null?void 0:f.length})]})]}),o.includes(e)&&a.jsx("div",{className:"tm-ml-[30px]",children:((h=i==null?void 0:i.tasks)==null?void 0:h.length)>0?(g=i==null?void 0:i.tasks)==null?void 0:g.map(b=>a.jsx(Os,{id:b==null?void 0:b.id})):a.jsx(ci,{id:i==null?void 0:i.id})})]}):null},di=()=>{const{tasksProject:e,projectID:t}=ot();if(e!=null&&e.isFetching||e!=null&&e.isLoading)return a.jsx(ii,{});const o=((e==null?void 0:e.data)??[]).filter(n=>n.isPrincipalTask);return a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-m",children:a.jsx(oi,{project:t,children:o.sort((n,i)=>(n.orden??0)-(i.orden??0)).map(n=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-m tm-border-b tm-border-default tm-pb-m ",children:a.jsx(Os,{id:n.id})}))})})};function mi({title:e,color:t,icon:s}){return a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[a.jsx(p.Icon,{name:s,size:"md",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotoneSecondary:.5}),a.jsx("p",{className:"tm-text-base tm-py-0.5 tm-font-body-sm-bold tm-text-body-sm-bold tm-leading-none tm-text-primary",children:e})]})}function ui({value:e,onChange:t}){return a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-4",children:[a.jsx("label",{className:"tm-text-body-sm-bold tm-text-primary",children:"Nombre del equipo"}),a.jsx(p.Input,{size:"xs",placeholder:"Creative",value:e,onChange:s=>t(s.target.value)})]})}const Bs=({title:e})=>a.jsxs("div",{className:"flex-1 tm-flex tm-items-center tm-gap-x-8",children:[a.jsx(p.Icon,{background:!0,name:ne.faFilePen,color:"blue",size:"lg"}),a.jsx(p.Text,{size:"xl",weight:"bold",children:e})]}),Ye={search:"",debouncedSearch:"",filters:[]},pi={"kanban-general":{...Ye},"lista-campanias":{...Ye},"kanban-campania":{...Ye},"teams-container":{...Ye},"templates-container":{...Ye}},vt=Qe.create((e,t)=>({viewFilters:pi,currentPath:null,debounceTimeouts:{},setCurrentPath:s=>{const o=t().currentPath;e({currentPath:s}),o&&o!==s&&t().resetPathData(o)},setSearch:(s,o)=>{const n=o||t().currentPath;if(!n)return;const i=`search_${n}`,r=t().debounceTimeouts[i];r&&clearTimeout(r),e(d=>({viewFilters:{...d.viewFilters,[n]:{...d.viewFilters[n],search:s}}}));const l=setTimeout(()=>{e(d=>({viewFilters:{...d.viewFilters,[n]:{...d.viewFilters[n],debouncedSearch:s}},debounceTimeouts:{...d.debounceTimeouts,[i]:void 0}}))},500);e(d=>({debounceTimeouts:{...d.debounceTimeouts,[i]:l}}))},setFilters:(s,o)=>{const n=o||t().currentPath;n&&e(i=>({viewFilters:{...i.viewFilters,[n]:{...i.viewFilters[n],filters:s}}}))},getSearch:s=>{var n;const o=s||t().currentPath;return o&&((n=t().viewFilters[o])==null?void 0:n.search)||""},getDebouncedSearch:s=>{var n;const o=s||t().currentPath;return o&&((n=t().viewFilters[o])==null?void 0:n.debouncedSearch)||""},getFilters:s=>{var n;const o=s||t().currentPath;return o?((n=t().viewFilters[o])==null?void 0:n.filters)||[]:[]},resetPathData:s=>{const o=`search_${s}`,n=t().debounceTimeouts[o];n&&clearTimeout(n),e(i=>({viewFilters:{...i.viewFilters,[s]:{...Ye}},debounceTimeouts:{...i.debounceTimeouts,[o]:void 0}}))}}));function Rs({path:e}){const{getSearch:t,setSearch:s}=vt(),o=t(e);return a.jsx(p.Input,{leftSlot:ne.faSearch,placeholder:"Buscar...",size:"xs",value:o,onChange:n=>s(n.target.value,e)})}const Ma={fase_plantilla:"",tipo_plantilla:"",modo_configuracion:"",categoria:"",formato_salida:"",tipo_medio:"",medio_especifico:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},fi={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},gi={fase_plantilla:"",tipo_plantilla:"",categoria:"",tipo_medio:"",medio_especifico:"",modo_configuracion:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},ka={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},Le=Qe.create(e=>({path:"",viewMode:"grid",isOpenModalLimit:!1,template:null,clave:"XX-XXX-XX-XXX-XX-X-X",templateFormData:Ma,disabledFields:ka,claveParams:gi,paramsTipo:fi,isEditTemplate:!1,openModalCreateTemplate:!1,currentTemplateForEdit:null,refetch:null,openModalUnsavedChanges:!1,isDuplicateTemplate:!1,hasFormChanges:!1,openModalPublishTemplate:!1,currentTemplateId:null,openModalDeleteTemplate:!1,setPath:t=>e({path:t}),setViewMode:t=>e({viewMode:t}),setIsOpenModalLimit:t=>e({isOpenModalLimit:t}),setTemplate:t=>e({template:t}),setClave:t=>e({clave:t}),setTemplateFormData:t=>{e(s=>({templateFormData:{...s.templateFormData,...t}}))},resetTemplateFormData:()=>e({templateFormData:Ma}),setDisableField:({fields:t,value:s})=>{for(const o of t)e(n=>({disabledFields:{...n.disabledFields,[o]:s}}))},resetDisabledFields:()=>e({disabledFields:ka}),setClaveParams:({field:t,value:s})=>{e(o=>({claveParams:{...o.claveParams,[t]:s}}))},resetClave:()=>e(()=>({clave:"XX-XXX-XX-XXX-XX-X-X"})),setParamTipo:t=>e(s=>({paramsTipo:{...s.paramsTipo,...t}})),setIsEditTemplate:t=>e({isEditTemplate:t}),setOpenModalCreateTemplate:t=>e({openModalCreateTemplate:t}),setCurrentTemplateForEdit:t=>e({currentTemplateForEdit:t}),setRefetch:t=>e({refetch:t}),setOpenModalUnsavedChanges:t=>e({openModalUnsavedChanges:t}),setIsDuplicateTemplate:t=>e({isDuplicateTemplate:t}),setHasFormChanges:t=>e({hasFormChanges:t}),setOpenModalPublishTemplate:t=>e({openModalPublishTemplate:t}),setCurrentTemplateId:t=>e({currentTemplateId:t}),setOpenModalDeleteTemplate:t=>e({openModalDeleteTemplate:t})})),zs=e=>{const{getSearch:t,getDebouncedSearch:s,setSearch:o,getFilters:n,setFilters:i,resetPathData:r}=vt();return{search:t(e),debouncedSearch:s(e),filters:n(e),setSearch:l=>o(l,e),setFilters:l=>i(l,e),resetData:()=>r(e)}},hi=()=>a.jsx(Bs,{title:"Flujos de trabajo"}),ze=Qe.create(e=>({activeTemplate:null,setActiveTemplate:t=>e({activeTemplate:t}),clearActiveTemplate:()=>e({activeTemplate:null})})),_e=Qe.create((e,t)=>({mode:"grid",id:null,setMode:(s,o)=>{const n=t();if(s==="grid"||n.id!==null&&n.id!==o){const{clearAllGroupData:r}=t();r()}e({mode:s,id:o??null})},setId:s=>e({id:s}),reset:()=>{const{clearAllGroupData:s}=t();s(),e({mode:"grid",id:null})},addNode:null,addBranch:null,addNodeFromHandle:null,addNodeWithType:null,savePositions:null,loadPositions:null,clearPositions:null,activePlusNode:null,templateViewModes:{},setViewMode:(s,o)=>{const{templateViewModes:n}=t();e({templateViewModes:{...n,[s]:o}})},getViewMode:s=>{const{templateViewModes:o}=t();return o[s]??"readonly"},clearViewMode:s=>{const{templateViewModes:o}=t(),n={...o};delete n[s],e({templateViewModes:n})},flowViewportByTemplateId:{},setFlowViewportForTemplate:(s,o)=>{const{flowViewportByTemplateId:n}=t();e({flowViewportByTemplateId:{...n,[s]:{x:o.x,y:o.y,zoom:o.zoom}}})},expandedGroups:new Set,groupTemplateData:{},toggleGroupExpansion:s=>{const{expandedGroups:o}=t(),n=new Set(o);n.has(s)?n.delete(s):n.add(s),e({expandedGroups:n})},setGroupTemplateData:(s,o)=>{const{groupTemplateData:n}=t();e({groupTemplateData:{...n,[s]:o}})},clearGroupTemplateData:s=>{const{groupTemplateData:o}=t(),n={...o};delete n[s],e({groupTemplateData:n})},clearAllGroupData:()=>{e({expandedGroups:new Set,groupTemplateData:{}})},copiedNodes:[],setCopiedNodes:s=>e({copiedNodes:s}),clearCopiedNodes:()=>e({copiedNodes:[]}),expandGroup:null,collapseGroup:null})),qs=()=>{const{tasks_api:e}=pe();return{getTemplateWithTasks:async s=>{var o;try{const n=Pe.stringify({filters:{plantilla:{id:s}}},{encodeValuesOnly:!0}),i=await e.get(`/api/plantillas/plantilla-tareas-grafico?${n}`);if(i.data&&i.data.data)return i.data.data;throw new Error(`No se encontraron datos para la plantilla con ID ${s}`)}catch(n){throw console.error("Error en getTemplateWithTasks:",{error:n.message,status:(o=n.response)==null?void 0:o.status}),n}}}},Te={DIRTY:"dirty",IDLE:"idle",NEW:"new"},Ie={DRAFT:"draft",PUBLISHED:"published",DELETED:"deleted"},Je="templates",Ze="templates_states";function xi(e,t){return Qe.create((s,o)=>{let n=null;const i=f=>s({isLoading:f}),r=f=>s({error:f}),l=f=>s({data:f}),d=()=>new Promise((f,h)=>{const g=indexedDB.open(e.name,e.version);g.onerror=()=>{r("Error al abrir la base de datos"),h(new Error("Error al abrir la base de datos"))},g.onsuccess=()=>{n=g.result,s({isConnected:!0,error:null}),f(n)},g.onupgradeneeded=b=>{const w=b.target.result;e.stores.forEach(j=>{var x;if(!w.objectStoreNames.contains(j.name)){const y=w.createObjectStore(j.name,{keyPath:j.keyPath,autoIncrement:j.autoIncrement??!1});(x=j.indexes)==null||x.forEach(v=>{y.createIndex(v.name,v.keyPath,v.options)})}})}}),c=(f="readonly")=>{if(!n)throw new Error("Base de datos no conectada");return n.transaction(t,f)},m=(f="readonly")=>c(f).objectStore(t);return{data:[],isLoading:!1,error:null,isConnected:!1,connect:async()=>{try{i(!0),r(null),await d(),await o().getAll()}catch(f){r(f instanceof Error?f.message:"Error desconocido")}finally{i(!1)}},disconnect:()=>{n&&(n.close(),n=null,s({isConnected:!1,data:[]}))},add:async f=>{try{i(!0),r(null);const h=m("readwrite");return new Promise((g,b)=>{const w=h.add(f);w.onsuccess=async()=>{await o().getAll(),g()},w.onerror=()=>{r("Error al agregar elemento"),b(new Error("Error al agregar elemento"))}})}finally{i(!1)}},addMany:async f=>{try{i(!0),r(null);const h=m("readwrite");return new Promise((g,b)=>{let w=0,j=!1;f.forEach(x=>{const y=h.add(x);y.onsuccess=()=>{w++,w===f.length&&!j&&o().getAll().then(()=>g())},y.onerror=()=>{j||(j=!0,r("Error al agregar elementos"),b(new Error("Error al agregar elementos")))}})})}finally{i(!1)}},get:async f=>{try{r(null);const h=m();return new Promise((g,b)=>{const w=h.get(f);w.onsuccess=()=>{g(w.result)},w.onerror=()=>{r("Error al obtener elemento"),b(new Error("Error al obtener elemento"))}})}catch(h){r(h instanceof Error?h.message:"Error desconocido");return}},getAll:async()=>{try{r(null);const f=m();return new Promise((h,g)=>{const b=f.getAll();b.onsuccess=()=>{const w=b.result;l(w),h(w)},b.onerror=()=>{r("Error al obtener elementos"),g(new Error("Error al obtener elementos"))}})}catch(f){return r(f instanceof Error?f.message:"Error desconocido"),[]}},update:async(f,h)=>{try{i(!0),r(null);const g=m("readwrite");return new Promise((b,w)=>{const j=g.get(f);j.onsuccess=()=>{const x=j.result;if(!x){r("Elemento no encontrado"),w(new Error("Elemento no encontrado"));return}const y={...x,...h},v=g.put(y);v.onsuccess=async()=>{await o().getAll(),b()},v.onerror=()=>{r("Error al actualizar elemento"),w(new Error("Error al actualizar elemento"))}},j.onerror=()=>{r("Error al obtener elemento para actualizar"),w(new Error("Error al obtener elemento para actualizar"))}})}finally{i(!1)}},delete:async f=>{try{i(!0),r(null);const h=m("readwrite");return new Promise((g,b)=>{const w=h.delete(f);w.onsuccess=async()=>{await o().getAll(),g()},w.onerror=()=>{r("Error al eliminar elemento"),b(new Error("Error al eliminar elemento"))}})}finally{i(!1)}},clear:async()=>{try{i(!0),r(null);const f=m("readwrite");return new Promise((h,g)=>{const b=f.clear();b.onsuccess=()=>{l([]),h()},b.onerror=()=>{r("Error al limpiar store"),g(new Error("Error al limpiar store"))}})}finally{i(!1)}},query:async(f,h)=>{try{r(null);const b=m().index(f);return new Promise((w,j)=>{const x=b.getAll(h);x.onsuccess=()=>{w(x.result)},x.onerror=()=>{r("Error en consulta"),j(new Error("Error en consulta"))}})}catch(g){return r(g instanceof Error?g.message:"Error desconocido"),[]}},queryRange:async(f,h,g)=>{try{r(null);const w=m().index(f);return new Promise((j,x)=>{const y=IDBKeyRange.bound(h,g),v=w.getAll(y);v.onsuccess=()=>{j(v.result)},v.onerror=()=>{r("Error en consulta por rango"),x(new Error("Error en consulta por rango"))}})}catch(b){return r(b instanceof Error?b.message:"Error desconocido"),[]}}}})}const It=new Map;function La(e,t,s=!0){const o=u.useMemo(()=>{const v=`${e.name}-${t}`;if(!It.has(v)){const N=xi(e,t);It.set(v,N)}return It.get(v)},[e.name,t]);u.useEffect(()=>{s&&!o.getState().isConnected&&o.getState().connect()},[s,o]);const n=o(v=>v.data),i=o(v=>v.isLoading),r=o(v=>v.error),l=o(v=>v.isConnected),d=u.useCallback(()=>o.getState().connect(),[o]),c=u.useCallback(()=>o.getState().disconnect(),[o]),m=u.useCallback(v=>o.getState().add(v),[o]),f=u.useCallback(v=>o.getState().addMany(v),[o]),h=u.useCallback(v=>o.getState().get(v),[o]),g=u.useCallback(()=>o.getState().getAll(),[o]),b=u.useCallback((v,N)=>o.getState().update(v,N),[o]),w=u.useCallback(v=>o.getState().delete(v),[o]),j=u.useCallback(()=>o.getState().clear(),[o]),x=u.useCallback((v,N)=>o.getState().query(v,N),[o]),y=u.useCallback((v,N,B)=>o.getState().queryRange(v,N,B),[o]);return{data:n,isLoading:i,error:r,isConnected:l,connect:d,disconnect:c,add:m,addMany:f,get:h,getAll:g,update:b,delete:w,clear:j,query:x,queryRange:y}}const $s=u.createContext(void 0);function bi({children:e}){const[t,s]=u.useState(!1),[o,n]=u.useState(!0),[i,r]=u.useState(null),l={name:"template_tabs_v1",version:2,stores:[{name:Je,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]},{name:Ze,keyPath:"id",autoIncrement:!1,indexes:[{name:"id",keyPath:"id",options:{unique:!0}}]}]},d=La(l,Je,!0),c=La(l,Ze,!0),m=u.useRef(new Map);m.current.has(Je)||m.current.set(Je,d),m.current.has(Ze)||m.current.set(Ze,c);const f=d.isConnected,h=d.error;u.useEffect(()=>{m.current.set(Je,d),m.current.set(Ze,c)},[d,c]);const g=u.useCallback(w=>{const j=m.current.get(w);if(!j)throw new Error(`Store ${w} no encontrado. Asegúrate de que esté configurada en indexedDBConfig.`);return{data:j.data,isLoading:j.isLoading,add:j.add,addMany:j.addMany,get:j.get,getAll:j.getAll,update:j.update,delete:j.delete,clear:j.clear,query:j.query,queryRange:j.queryRange,error:j.error}},[]);u.useEffect(()=>{(async()=>{try{if(n(!0),r(null),await d.connect(),f)s(!0);else throw new Error("No se pudo establecer la conexión con IndexedDB")}catch(j){r(j instanceof Error?j.message:"Error desconocido")}finally{n(!1)}})()},[d.connect,f]),u.useEffect(()=>{h&&r(h)},[h]);const b={isInitialized:t,isInitializing:o,error:i,isConnected:f,getStore:g};return a.jsx($s.Provider,{value:b,children:e})}function Us(){const e=u.useContext($s);if(e===void 0)throw new Error("useIndexedDBContext debe usarse dentro de IndexedDBProvider");return e}function ra(){const{getStore:e}=Us();return e(Je)}function Hs(){const{add:e}=ra(),t=async r=>{try{await e(r)}catch(l){console.error("Error al guardar plantilla a indexDB:",l)}},s=async r=>{const l={},d=c=>{c.id&&(l[c.id]=c),c.tareas&&Array.isArray(c.tareas)&&c.tareas.forEach(m=>{d(m)}),c.ids_t_dependientes&&Array.isArray(c.ids_t_dependientes)&&c.ids_t_dependientes.forEach(m=>{typeof m=="object"&&m.id&&d(m)}),c.plantilla_dependents&&Array.isArray(c.plantilla_dependents)&&c.plantilla_dependents.forEach(m=>{m.tarea_plantillas&&Array.isArray(m.tarea_plantillas)&&m.tarea_plantillas.forEach(f=>{d(f)})})};return r.tarea_plantillas.forEach(c=>{d(c)}),l},o=(r,l)=>{const d=l[r];if(!d)return[];const c=[d];return d.tareas&&Array.isArray(d.tareas)&&d.tareas.forEach(m=>{m.id&&c.push(...o(m.id,l))}),d.ids_t_dependientes&&Array.isArray(d.ids_t_dependientes)&&d.ids_t_dependientes.forEach(m=>{typeof m=="object"&&m.id?c.push(...o(m.id,l)):typeof m=="number"&&l[m]&&c.push(...o(m,l))}),c},n=(r,l)=>{const d=l[r];if(!d)return[];const c=[d];return d.tarea_padre&&l[d.tarea_padre]&&c.unshift(...n(d.tarea_padre,l)),c};return{hydrateTasks:async r=>{var c,m;const l=await s(r);return(m=(c=r==null?void 0:r.graph_layout)==null?void 0:c.snapshot)==null?void 0:m.nodes.map(f=>{if(f.type==="group")return{...f,data:{...f.data,type:"template"},type:"group",selected:!1};const h=f.data.tareaId?l[f.data.tareaId]:r;return h!=null&&h.start?{...f,data:{...h.plantilla,id:h.id},selected:!1}:{...f,data:{...h,type:"task"},selected:!1}})},initializeTemplateStore:t,indexedTasks:s,getTaskHierarchy:o,getTaskPath:n}}function Ks(){const{getStore:e}=Us();return e(Ze)}const ut=()=>{const{add:e,get:t,delete:s,update:o}=Ks(),{get:n}=ra(),i={created:[],updated:[],deleted:[]},r=async({templateId:g})=>{const b=await t(g);return b||null};return{addTaskToState:async({task:g})=>{const b=await r({templateId:g.plantilla.id}),w=await n(g.plantilla.id);if(console.log("🔄 template:",w),!b)e({...i,id:g.plantilla.id,created:[...i.created,g]});else{const j=b.created.findIndex(x=>x.id===g.id);if(j!==-1){const x=b.created[j];b.created[j]={...x,...g},await o(g.plantilla.id,b)}else b.created.push(g),await o(g.plantilla.id,b)}},getTaskFromState:r,removeTemplateStates:async g=>{await s(g)},updateTaskInState:async({task:g})=>{const b=await r({templateId:g.plantilla.id}),j=(await n(g.plantilla.id)).graph_layout.snapshot.nodes;if(console.log("🔄 nodes:",j),b){const x=b.updated.findIndex(y=>y.id===g.id);if(x!==-1){const y=b.updated[x];console.log("🔄 currentTask:",y),b.updated[x]={...y,...g}}else b.updated.push(g);await o(g.plantilla.id,b)}else e({...i,id:g.plantilla.id,updated:[...i.updated,g]})},removeTaskFromState:async({templateId:g,id:b})=>{const w=await r({templateId:g});if(w){if(b>0){const x=w.deleted.findIndex(y=>y===b);if(x!==-1){w.deleted.splice(x,1),await o(g,w);return}}const j=w.created.findIndex(x=>x.id===b);if(j!==-1){w.created.splice(j,1),await o(g,w);return}}else if(b>0){e({...i,id:g,deleted:[...i.deleted,b]});return}},removeParentIdFromNodes:async({templateId:g,id:b})=>{const w=await r({templateId:g});if(w){const j=w.created.findIndex(y=>y.id===b);if(j!==-1){w.created[j].tarea_padre=null,w.created[j].id_t_requerida=null,await o(g,w);return}const x=w.updated.findIndex(y=>y.id===b);if(x!==-1){w.updated[x].tarea_padre=null,w.updated[x].id_t_requerida=null,await o(g,w);return}}},updateNodeWithNewEdge:async({templateId:g,edge:b,task:w})=>{console.log("🔵 updateNodeWithNewEdge - Inicio",{templateId:g,taskId:w.id,taskData:w});const j=await r({templateId:g});if(console.log("🔵 updateNodeWithNewEdge - Estado actual:",j),j){console.log("🔵 updateNodeWithNewEdge - Estado existe, buscando tarea...");const x=j.created.findIndex(v=>v.id===w.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en created:",x),x!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en created"),j.created[x]=w,await o(g,j),console.log("✅ updateNodeWithNewEdge - Actualizado en created");return}const y=j.updated.findIndex(v=>v.id===w.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en updated:",y),y!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en updated"),j.updated[y]=w,await o(g,j),console.log("✅ updateNodeWithNewEdge - Actualizado en updated");return}if(console.log("🔵 updateNodeWithNewEdge - Tarea no encontrada en arrays"),w.id&&w.id!==0){const v=w.id<0;v?(console.log("🔵 updateNodeWithNewEdge - Agregando a created (tarea nueva)"),j.created.push(w)):(console.log("🔵 updateNodeWithNewEdge - Agregando a updated (tarea existente)"),j.updated.push(w)),await o(g,j),console.log("✅ updateNodeWithNewEdge - Tarea agregada exitosamente a",v?"created":"updated")}else console.error("❌ updateNodeWithNewEdge - task.id no válido para agregar:",w.id)}else if(console.log("🔵 updateNodeWithNewEdge - Creando nuevo estado"),w.id&&w.id!==0){const x=w.id<0,y={...i,id:g,created:x?[w]:[],updated:x?[]:[w]};console.log("🔵 updateNodeWithNewEdge - Nuevo estado:",y,x?"(created)":"(updated)"),e(y),console.log("✅ updateNodeWithNewEdge - Estado creado exitosamente")}else console.error("❌ updateNodeWithNewEdge - task.id no válido:",w.id);console.log("🔵 updateNodeWithNewEdge - Fin")}}};function $e(){const{activeTemplate:e,setActiveTemplate:t}=ze(),{mode:s,setMode:o,setViewMode:n,clearViewMode:i}=_e(),{template:r,setIsOpenModalLimit:l,setOpenModalUnsavedChanges:d,setOpenModalPublishTemplate:c,setOpenModalDeleteTemplate:m}=Le(),{hydrateTasks:f}=Hs(),{addTaskToState:h,removeTemplateStates:g}=ut(),b=de.useQueryClient(),{data:w,add:j,update:x,get:y,getAll:v,delete:N,isLoading:B,error:D}=ra(),{get:C}=Ks(),{getTemplateWithTasks:M}=qs(),{tasks_api:E}=pe(),[X,U]=u.useState(!1),[z,k]=u.useState(!1),[K,F]=u.useState(!1),$=u.useMemo(()=>w.sort((S,q)=>S.order-q.order),[w]);u.useEffect(()=>{$.length===0&&s!=="grid"&&o("grid")},[$,s,o]);const R=async(_,S=Te.IDLE)=>{var q;try{const L=await M(_.id),T=await f(L),Q={id:crypto.randomUUID(),data:L,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},Z=T||[Q],ae={...L,graph_layout:{...L==null?void 0:L.graph_layout,snapshot:{...(q=L==null?void 0:L.graph_layout)==null?void 0:q.snapshot,nodes:Z}},estatus:S,estatusFromStrapi:L.estatus};await j(ae)}catch(L){console.warn("No se pudieron obtener los datos completos de la plantilla, creando versión básica:",L);const T=_,Q={id:crypto.randomUUID(),data:T,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},Z={id:T.id,snapshot:{nodes:[Q],edges:[],viewport:{x:0,y:0,zoom:1}},history:null,zoom:1,position:{x:0,y:0}},ae={...T,graph_layout:T.graph_layout||Z,estatus:S,tarea_plantillas:T.tarea_plantillas||[]};await j(ae)}},G=async({template:_,checkTemplateInIndexedDB:S=!1,statusTemplate:q=Te.IDLE})=>{const L=$;if(!L.find(Q=>Q.id===_.id)){if(L.length===5){l(!0);return}if(S&&await y(_.id))return;await R({..._,order:L.length+1},q)}await P(_.id),await V(_),o("create-edit",_==null?void 0:_.id)},V=async _=>{const S=await y(_.id);t(S)},P=async _=>{try{const S=await v();S.sort((L,T)=>(L.order||0)-(T.order||0));const q=S.findIndex(L=>L.id===_);if(q!==-1){const[L]=S.splice(q,1);S.unshift(L),S.forEach((Q,Z)=>{Q.order=Z+1});const T=S.map(Q=>x(Q.id,Q));await Promise.all(T)}else return}catch{}},te=async _=>{try{await N(_),i(_);const S=await v();S.forEach((L,T)=>{L.order=T+1});const q=S.map(L=>x(L.id,L));await Promise.all(q)}catch{}};return{screens:$,isLoading:B,error:D,add:j,data:w,addScreen:R,openTemplate:G,update:x,delete:te,get:y,activeTemplate:e,activateTemplate:V,reorderingTemplates:P,replaceTemplate:async()=>{try{const _=[...$],S={..._[_.length-1]};await N(S.id);const q={...r,order:S.order};await R(q);const T=(await v()).sort((Z,ae)=>Z.order-ae.order);if(T.some((Z,ae)=>(Z.order||0)!==ae+1)){const Z=T.map((ae,re)=>({...ae,order:re+1}));for(const ae of Z)try{await x(ae.id,ae)}catch{}}}catch{}finally{l(!1)}},addTaskUpdatingTemplate:async(_,S,q="hija")=>{var Z,ae,re,J;const L=await y(S);if(!L)return null;const T={id:_.id,uuid:crypto.randomUUID(),reference_graph:_.reference_graph,texto_corto:_.title,texto_largo:_.description||"",prioridad:_.priority||null,nivel_dificultad:_.difficulty||1,duracion:_.duration||null,start:!1,is_monitoring_trigger:_.is_monitoring_trigger??!1,type:"task",equipo:{id:Number(_.team)||null},responsable:{id:Number(_.responsible)||null},plantilla:{id:L.id,clave:L.clave,categoria:L.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:q==="dependiente"?(ae=(Z=_.parent)==null?void 0:Z.data)==null?void 0:ae.id:null,ids_t_dependientes:[],tarea_padre:q==="hija"?(J=(re=_.parent)==null?void 0:re.data)==null?void 0:J.id:null,tareas:[]},Q={...L,estatus:Te.DIRTY};return await x(S,Q),e&&e.id===S&&t(Q),await h({task:T}),T},addTemplateUpdatingTemplate:async(_,S,q,L="hija")=>{let T=null;if(e&&e.id===S?T=e:T=await y(S),!T)return null;const Q=(ae,re,J,se)=>{for(let ce=0;ce<ae.length;ce++){const me=ae[ce];if(me.id===re||me.uuid===re)return se==="dependiente"?(me.plantilla_dependents||(me.plantilla_dependents=[]),me.plantilla_dependents.push(J)):se==="hija"&&(me.plantilla_dependents||(me.plantilla_dependents=[]),me.plantilla_dependents.push(J)),!0;if(me.tareas&&me.tareas.length>0){const ie=Q(me.tareas,re,J,se);if(ie)return ie}}return!1};if(Q(T.tarea_plantillas,q,_,L)){const ae={...T,estatus:Te.DIRTY,updatedAt:new Date().toISOString()};return await x(S,ae),e&&e.id===S&&t(ae),!0}else return!1},updateGraphLayout:async(_,S)=>{var q;if(!_){console.warn("⚠️ updateGraphLayout - Template ID no válido");return}try{const L=await y(_);if(!L){console.warn("⚠️ updateGraphLayout - Template no encontrado");return}const T=(S.nodes||[]).filter(se=>{var ce;return!((ce=se.data)!=null&&ce.isInternal)&&!se.parentId}).map(se=>{const{style:ce,measured:me,data:ie,...ye}=se,{expandedDimensions:fe,isExpanded:be,needsReExpansion:Ae,...ve}=ie||{},Ue=ce?{...ce,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...ye,style:Ue,data:ve,position:se.position}}),Q=(S.edges||[]).filter(se=>{var ce;return!((ce=se.data)!=null&&ce.isInternal)}).map(se=>{var ce;if((ce=se.data)!=null&&ce.redirectedToInternal){const{redirectedToInternal:me,originalTarget:ie,...ye}=se.data;return{...se,target:ie||se.target,data:ye}}return se}),Z={...S,nodes:T,edges:Q},ae=(q=L.graph_layout)==null?void 0:q.snapshot;if(!(!ae||JSON.stringify(ae)!==JSON.stringify(Z)))return;const J={...L,graph_layout:{...L.graph_layout,snapshot:Z},estatus:Te.DIRTY,updatedAt:new Date().toISOString()};await x(_,J),e&&e.id===_&&t(J)}catch(L){console.error("❌ updateGraphLayout - Error:",L)}},saveTemplateChanges:async(_=!0)=>{try{if(e.estatus===Te.DIRTY){k(!0);const{id:S}=e,q=await y(S),L=await C(S),T=q.graph_layout.snapshot.nodes||[],Q=T.filter(J=>{var se;return!((se=J.data)!=null&&se.isInternal)&&!J.parentId}),Z=T.length-Q.length;Z>0&&console.warn(`💾 [saveTemplateChanges] Se filtraron ${Z} nodos internos al guardar plantilla ${S}`);const ae={graph_layout:{...q.graph_layout,snapshot:{...q.graph_layout.snapshot,nodes:Q.map(J=>{const{style:se,measured:ce,selected:me,...ie}=J,ye=se?{...se,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return J.type==="group"?{...ie,style:ye,data:{tareaId:J.data.id&&J.data.id>0?J.data.id:null,clave:J.data.clave,estatus:J.data.estatus,updatedAt:J.data.updatedAt,id:J.data.id}}:{...ie,style:ye,data:{tareaId:J.data.id&&J.data.id>0?J.data.id:null}}}),edges:(q.graph_layout.snapshot.edges||[]).filter(J=>{var se;return!((se=J.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)||[]}},re=await E.post("/api/tareas/save-tareas-grafico",{data:ae});if(re.data&&re.status===200){try{const J=await M(S),se=await f(J),ce={...J,graph_layout:{...J.graph_layout,snapshot:{...J.graph_layout.snapshot,nodes:se}},estatus:Te.IDLE};await x(S,ce),_||t(ce)}catch{const se=await y(S);if(se&&!_){const ce={...se,estatus:Te.IDLE};await x(S,ce),t(ce)}}await b.invalidateQueries({queryKey:["template",S]}),await b.invalidateQueries({queryKey:["template"]}),await b.invalidateQueries({queryKey:["templates"]}),g(S),_&&(te(S),d(!1)),n(S,"readonly")}}}catch(S){console.log(S)}finally{k(!1)}},publishTemplate:async _=>{try{U(!0);const S={estatus:Ie.PUBLISHED,publication_date:new Date},q=await E.put(`/api/plantillas/plantilla-update-estatus/${_}`,{data:S});q.data&&q.status===200&&(t({...e,estatusFromStrapi:Ie.PUBLISHED}),c(!1),p.toast.info("Se publicó correctamente el proceso"))}catch(S){console.log(S),p.toast.error("Surgió un error al publicar el proceso")}finally{U(!1)}},deleteTemplate:async _=>{try{F(!0);const S={estatus:Ie.DELETED,sjdaksd:0},q=await E.put(`/api/plantillas/plantilla-update-estatus/${_}`,{data:S});q.data&&q.status===200&&(m(!1),p.toast.info("Se eliminó correctamente el proceso"))}catch(S){console.error(S),p.toast.error("Surgión un error al eliminar el proceso")}finally{F(!1)}},loadingPublishTemplate:X,loadingSaveChanges:z,loadingDeleteTemplate:K}}const yi=async({tasks_api:e})=>{try{return(await e.get("/api/getAllOBPusers")).data}catch(t){throw console.log("Error al obtener los usuarios de OBP",t),`Error al obtener los usuarios de OBP: ${t}`}},ji=()=>{const{tasks_api:e}=pe();return{users:de.useQuery({queryKey:["usersOBP"],queryFn:()=>yi({tasks_api:e}),staleTime:1e3*60*60*24})}},rt=()=>{const{users:e}=ji(),t=de.useQuery({queryKey:["users_index",e.data],queryFn:()=>or({users:e.data||[]}),staleTime:1e3*60*60*24,enabled:!!e.data});return{users:t.data,isLoading:t.isLoading||e.isLoading}},ia=()=>{const{users:e,isLoading:t}=rt(),{getImageOBP:s}=pe();return{getImageByEmail:i=>{const r=e==null?void 0:e[i];return s(r==null?void 0:r.image)},getNameByEmail:i=>{const r=e==null?void 0:e[i];return(r==null?void 0:r.nombre)||""},isLoading:t}},pt=({isLoading:e})=>e?a.jsxs("div",{className:"tm-fixed tm-inset-0 tm-z-50 tm-flex tm-items-center tm-justify-center",children:[a.jsx("div",{className:"tm-absolute tm-inset-0",style:{backgroundColor:"rgba(0, 0, 0, 0.5)"}}),a.jsx("div",{className:"tm-relative tm-flex tm-flex-col tm-items-center tm-justify-center tm-gap-4",children:a.jsx(p.Spinner,{})})]}):null,Oa=({template:e,openModalPublishTemplate:t,onHadleClickEditTemplateParams:s,onEditTasks:o,canDuplicateAndDeleteTemplates:n,onHandleClickDuplicateTemplate:i,openModalDeleteTemplate:r})=>a.jsx(p.Popup,{color:"secondary",pill:"pill",icon:le.faEllipsis,stopPropagationList:!0,children:a.jsxs(p.List,{className:"tm-p-6 tm-gap-4",children:[e.estatus!==Ie.PUBLISHED&&e.counts_tasks>2&&a.jsx(p.ListItem,{icon:le.faArrowUp,onClick:t,children:"Publicar"}),a.jsx(p.ListItem,{icon:le.faEdit,onClick:()=>{s(e)},children:"Editar parámetros"}),a.jsx(p.ListItem,{icon:le.faEdit,onClick:()=>{o&&o(e)},children:"Editar tareas"}),n&&a.jsx(p.ListItem,{icon:le.faClone,onClick:l=>{l.stopPropagation(),i(e)},children:"Duplicar"}),n&&a.jsx(p.ListItem,{color:"red",icon:le.faTrash,onClick:r,children:"Eliminar"})]})}),wi=e=>{const t=new Set,s=[],o=n=>{var i;if(Array.isArray(n))for(const r of n){const l=r,d=l==null?void 0:l.idUser;(d==null?void 0:d.id)!=null&&(d.email||d.nombre)&&(t.has(d.id)||(t.add(d.id),s.push({id:d.id,nombre:d.nombre??"",email:d.email??"",image:d.image}))),(i=l==null?void 0:l.miembros)!=null&&i.length&&o(l.miembros)}};return o(e),s},vi=async(e,t)=>{var l;const s=Pe.stringify({fields:["nombre","id"],populate:oa(2)},{encodeValuesOnly:!0}),o=await e.get(`/api/equipos/${t}?${s}`),n=((l=o.data)==null?void 0:l.data)??o.data,i=je(n),r=wi((i==null?void 0:i.miembros)??[]);return{team:{nombre:(i==null?void 0:i.nombre)??"",miembros:(i==null?void 0:i.miembros)??[]},members:r}},_i=e=>{const{tasks_api:t}=pe(),s=typeof e=="number"&&e>0&&!Number.isNaN(e)?e:null;return de.useQuery({queryKey:["equipo-flow-preview",s],queryFn:()=>vi(t,s),enabled:s!=null,staleTime:300*1e3})},Ti=3,Ni=e=>{if(!(e!=null&&e.id)&&(e==null?void 0:e.id)!==0)return null;const t=Number(e.id);return!Number.isNaN(t)&&t>0?t:null},Ci=({equipo:e})=>{var g;const t=Ni(e),s=((g=e==null?void 0:e.nombre)==null?void 0:g.trim())??"",{data:o,isLoading:n,isError:i}=_i(t),{getImageByEmail:r,isLoading:l}=ia();if(!t)return null;const d=((o==null?void 0:o.team.nombre)??s).trim()||"Equipo",c=(o==null?void 0:o.members)??[],m=d,f=[...c].map(b=>{var w;return{src:r(b.email),name:((w=b.nombre)==null?void 0:w.trim())||b.email}}).sort((b,w)=>+!!w.src-+!!b.src),h=a.jsx("div",{className:"tm-flex tm-items-center tm-justify-center",children:n||l?a.jsx("div",{className:"tm-flex tm-items-center",children:[0,1,2].map(b=>a.jsx("div",{className:`tm-h-7 tm-w-7 tm-shrink-0 tm-rounded-full tm-bg-neutral-100 tm-ring-2 tm-ring-white ${b>0?"tm-ml-[-12px]":""}`},b))}):c.length>0?a.jsx(p.Avatar,{counterColor:"blue",counterTheme:"solid",maxVisible:Ti,size:"xs",stack:f,stroke:!0}):a.jsx(p.Avatar,{size:"xs",stroke:!0,type:"people"})});return a.jsxs("div",{className:"tm-flex tm-min-w-0 tm-shrink-0 tm-flex-col tm-items-center tm-justify-end tm-gap-2",children:[a.jsx(p.Tooltip,{preserveLayout:!0,label:i&&!s?"Equipo":m,children:h}),a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Equipo"})]})},Si={1:"blue",2:"green",3:"red",4:"yellow"},Ei=({difficulty:e})=>a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end tm-gap-2",children:[a.jsx(p.Icon,{name:le.faRhombus,size:"md",color:Si[e]}),a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Dificultad"})]}),Ai=({duration:e})=>a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end",children:[a.jsx("p",{className:"tm-text-icon-all-colors-blue tm-text-body-lg-regular tm-leading-none tm-font-semibold",children:e}),a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Duración"})]}),Ii={1:"neutral",2:"blue",3:"yellow",4:"red"},Pi=({priority:e})=>a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end tm-gap-2",children:[a.jsx(p.Icon,{name:le.faFlag,size:"md",color:Ii[e]}),a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Prioridad"})]});class Di{static toUsers(t){return{id:t.id,name:t.nombre,image:t.image,email:t.email}}}const Fi=async({tasks_api:e})=>{try{const t=Pe.stringify({filters:{blocked:!1}},{encodeValuesOnly:!0}),s=await e.get(`/api/users?${t}`);return je(s.data).map(Di.toUsers).sort((n,i)=>n.name.localeCompare(i.name))}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},_t=()=>{const{tasks_api:e}=pe(),t=de.useQuery({queryKey:["users-mt"],queryFn:()=>Fi({tasks_api:e}),staleTime:1e3*60*60*24});return{isLoading:t.isLoading,users:t.data}},Mi=(e,t,s)=>{var r;const o=(r=e==null?void 0:e.email)==null?void 0:r.trim();if(o){const l=t(o);return l||o}const n=e==null?void 0:e.id,i=n!==""&&n!=null&&!Number.isNaN(Number(n))?Number(n):NaN;if(!Number.isNaN(i)&&(s!=null&&s.length)){const l=s.find(d=>d.id===i);if(l!=null&&l.name)return l.name}return""},ki=({responsible:e})=>{const{isLoading:t,users:s}=_t(),{getImageByEmail:o,getNameByEmail:n,isLoading:i}=ia();if(t||i)return null;const r=Mi(e,n,s),l=a.jsx(p.Avatar,{size:"xs",src:o((e==null?void 0:e.email)??""),type:"people"});return a.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[r?a.jsx(p.Tooltip,{label:r,children:l}):l,a.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Responsable"})]})},Gs=({layout:e="column"})=>e==="row"?a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-1",children:[a.jsx(p.Icon,{name:le.faCamera,size:"sm",color:"blue"}),a.jsx(p.Text,{size:"xs",weight:"regular",color:"tertiary",children:"Testigos"})]}):a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end tm-gap-2",children:[a.jsx(p.Icon,{name:le.faCamera,size:"md",color:"blue"}),a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Testigos"})]}),Vs=({fullWidth:e,mode:t="grid",onClick:s,active:o,template:n,withOptions:i=!0})=>{var V;const{openTemplate:r}=$e(),{getImageByEmail:l,getNameByEmail:d}=ia(),{setIsEditTemplate:c,setOpenModalCreateTemplate:m,setCurrentTemplateForEdit:f,setIsDuplicateTemplate:h,setOpenModalPublishTemplate:g,setCurrentTemplateId:b,setOpenModalDeleteTemplate:w}=Le(),j={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"}},[x,y]=u.useState(!1),v=async()=>{if(y(!0),t==="grid")try{y(!0),await r({template:n,checkTemplateInIndexedDB:!0})}catch(P){console.error(P)}finally{y(!1)}else y(!1);s==null||s(n==null?void 0:n.id)},N=async()=>{if(!(t!=="grid"||!n)){y(!0);try{await r({template:n,checkTemplateInIndexedDB:!0}),s==null||s(n==null?void 0:n.id)}catch(P){console.error(P)}finally{y(!1)}}},B=P=>{c(!0),m(!0),f(P)},D=P=>{h(!0),m(!0),f(P)},C=()=>{b(n==null?void 0:n.id),g(!0)},M=()=>{b(n==null?void 0:n.id),w(!0)},E=(n==null?void 0:n.dias_duracion)===1?"Día":"Días",X=(n==null?void 0:n.counts_tasks)===1?"Tarea":"Tareas",U=(n==null?void 0:n.estatus)===Ie.PUBLISHED?kt(n==null?void 0:n.publication_date).format("DD/MM/YYYY"):kt(n==null?void 0:n.createdAt).format("DD/MM/YYYY"),z=(n==null?void 0:n.updated_by)||(n==null?void 0:n.created_by),k=l(z==null?void 0:z.email),K=d(z==null?void 0:z.email)||"",F=(n==null?void 0:n.estatus)===Ie.PUBLISHED?"Fecha de publicación":"Fecha de creación",$=(n==null?void 0:n.estatus)===Ie.DRAFT,R=((V=n==null?void 0:n.tarea_plantillas)==null?void 0:V.some(P=>P.is_monitoring_trigger===!0))??!1,G=P=>{const te=P.split("-");return a.jsx(a.Fragment,{children:te.map((ee,A)=>a.jsxs("span",{children:[ee,A<te.length-1&&a.jsx("span",{className:"tm-text-neutral-200",children:"-"})]},A))})};return a.jsxs(p.Card,{active:o,fullWidth:e,onClick:v,className:`${e?"md:tm-flex-row":"tm-flex-col"}`,children:[a.jsx(pt,{isLoading:x}),a.jsx(p.Card.Header,{children:a.jsx("div",{className:"tm-flex tm-justify-between tm-items-start tm-gap-x-4",children:a.jsxs("div",{className:"tm-flex tm-justify-between tm-items-start tm-gap-4 tm-flex-1",children:[a.jsxs("div",{className:"tm-flex tm-place-items-start tm-gap-x-8",children:[a.jsx("div",{className:"tm-flex tm-items-center",children:a.jsx(p.Icon,{name:We.faChartDiagram,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"lg"})}),a.jsxs("div",{className:"tm-flex tm-gap-x-8 tm-flex-col tm-gap-y-4",children:[a.jsx(p.Text,{size:"sm",weight:"semibold",color:"primary",truncateLabel:!0,children:G((n==null?void 0:n.clave)||(n==null?void 0:n.nombre_plantilla))}),a.jsxs("div",{className:"tm-flex tm-items-baseline tm-gap-x-1",children:[a.jsx(p.Badge,{size:"sm",theme:"soft",color:(n==null?void 0:n.estatus)===Ie.PUBLISHED?"success":"gray",label:(n==null?void 0:n.estatus)===Ie.PUBLISHED?"Publicado":"Borrador"}),!(typeof U=="string"&&U==="Invalid date")&&a.jsx(p.Tooltip,{label:F,children:a.jsx(p.Text,{size:"sm",weight:"medium",color:"tertiary",children:U})})]})]})]}),!e&&a.jsx(Oa,{template:n,openModalPublishTemplate:C,onHadleClickEditTemplateParams:B,onEditTasks:N,canDuplicateAndDeleteTemplates:$,onHandleClickDuplicateTemplate:D,openModalDeleteTemplate:M})]})})}),a.jsx(p.Card.Separator,{vertical:e}),a.jsx(p.Card.Body,{className:"tm-flex tm-flex-wrap tm-gap-x-6 tm-gap-y-4 tm-w-full md:tm-w-auto tm-flex-1 tm-items-center",children:n==null?void 0:n.params_plantillas.map(P=>{const te=j[P.params_tipo.order-1];return a.jsx(p.Badge,{color:te.color,theme:te.theme,label:P.name,size:"sm"},P.name)})}),!e&&a.jsx(p.Card.Separator,{vertical:e}),a.jsxs(p.Card.Footer,{className:"tm-flex tm-justify-between tm-w-full md:tm-w-auto tm-gap-x-4",children:[a.jsxs("div",{className:`tm-flex tm-flex-1 ${e?"tm-gap-x-2 md:tm-gap-20 lg:tm-gap-32 2xl:tm-gap-44":""}`,children:[a.jsx("div",{className:`tm-flex tm-gap-x-8 tm-justify-center tm-items-center tm-flex-1 ${e?"tm-flex-col":"tm-flex-row"}`,children:a.jsx(p.Tooltip,{label:"Tareas totales",children:a.jsxs("div",{className:`tm-flex tm-items-center tm-gap-8 ${e?"tm-flex-col":"tm-flex-row"}`,children:[a.jsx(p.Text,{size:"xs",weight:"semibold",color:"brand",children:(n==null?void 0:n.counts_tasks)||0}),a.jsx(p.Text,{size:"xs",weight:"regular",color:"tertiary",children:X})]})})}),a.jsx("div",{className:`tm-flex tm-gap-x-8 tm-justify-center tm-items-center tm-flex-1 ${e?"tm-flex-col":"tm-flex-row"}`,children:a.jsx(p.Tooltip,{label:"Tareas totales",children:a.jsxs("div",{className:`tm-flex tm-items-center tm-gap-8 ${e?"tm-flex-col":"tm-flex-row"}`,children:[a.jsx(p.Text,{size:"xs",weight:"semibold",color:"brand",children:(n==null?void 0:n.dias_duracion)||0}),a.jsx(p.Text,{size:"xs",weight:"regular",color:"tertiary",children:E})]})})}),a.jsxs("div",{className:`tm-flex tm-gap-x-8 tm-justify-center tm-items-center tm-flex-1 ${e?"tm-flex-col-reverse tm-gap-y-1":"tm-flex-row"}`,children:[a.jsx(p.Text,{size:"xs",weight:"regular",color:"tertiary",children:"Editor"}),a.jsx(p.Tooltip,{label:K,children:a.jsx(p.Avatar,{src:k,size:"xxs",type:"people"})})]}),R&&a.jsx("div",{className:`tm-flex tm-gap-x-8 tm-justify-center tm-items-center tm-flex-1 ${e?"tm-flex-col":"tm-flex-row"}`,children:a.jsx(Gs,{layout:"row"})})]}),e&&i&&a.jsx(p.Card.Separator,{vertical:e}),i&&a.jsx("div",{className:`tm-w-auto ${e?"tm-flex tm-items-center":""}`,children:e&&a.jsx(Oa,{template:n,openModalPublishTemplate:C,onHadleClickEditTemplateParams:B,onEditTasks:N,canDuplicateAndDeleteTemplates:$,onHandleClickDuplicateTemplate:D,openModalDeleteTemplate:M})})]})]})},Li=[{label:"Muy alta",value:4,icon:le.faFlag,iconColor:"red"},{label:"Alta",value:3,icon:le.faFlag,iconColor:"yellow"},{label:"Media",value:2,icon:le.faFlag,iconColor:"blue"},{label:"Baja",value:1,icon:le.faFlag,iconColor:"neutral"}],Oi=[{label:"Muy alta",value:4,icon:le.faRhombus,iconColor:"red"},{label:"Alta",value:3,icon:le.faRhombus,iconColor:"yellow"},{label:"Media",value:2,icon:le.faRhombus,iconColor:"blue"},{label:"Baja",value:1,icon:le.faRhombus,iconColor:"neutral"}],Bi=[{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},{label:"6 días",value:6},{label:"7 días",value:7}],Ws=({isOpen:e,onClose:t,onSuccess:s,nodeDataType:o,parentNodeInfo:n,editMode:i=!1,taskToEdit:r})=>{const{data:l}=Za(),{users:d}=_t(),{users:c}=rt(),{getImageOBP:m}=pe(),f=u.useMemo(()=>{try{return!d||!c?[]:d.map(C=>{const M=c[C.email],E=M!=null&&M.image?m(M.image):"";return{label:C.name,value:C.id.toString(),icon:E}})}catch(C){return console.error("Error mapeando usuarios:",C),[]}},[d,c]),h=()=>{if(i&&r){const C=U=>{if(U==null)return"";const z=Number(U);return isNaN(z)?"":z},M=U=>U?typeof U=="string"?Number(U)||"":U.id||"":"",E=U=>{var z;return U?typeof U=="string"?U:((z=U.id)==null?void 0:z.toString())||U.name||U.nombre||"":""};return{title:r.texto_corto||"",description:r.texto_largo||"",priority:C(r.prioridad),difficulty:C(r.nivel_dificultad),duration:C(r.duracion),team:M(r.equipo),responsible:E(r.responsable),type:"tarea",is_monitoring_trigger:r.is_monitoring_trigger===!0}}return{title:"",description:"",priority:"",difficulty:"",duration:"",team:"",responsible:"",type:"tarea",is_monitoring_trigger:!1}},{control:g,handleSubmit:b,formState:{errors:w,isValid:j},reset:x,watch:y}=Ce.useForm({mode:"onChange",defaultValues:h()});u.useEffect(()=>{e&&x(h())},[e,i,r,x]);const v=y(),N=j&&v.title&&v.description&&v.priority&&v.difficulty&&v.duration&&v.team&&Object.keys(w).length===0,B=async C=>{try{if(["title","description","priority","difficulty","duration","team"].filter(X=>!C[X]).length>0)return;s&&await s({...C,parent:n}),i||x()}catch{}},D=()=>{x(),t()};return a.jsx(p.Drawer,{titleIcon:le.faPencil,isOpen:e,onClose:D,onSuccess:()=>{b(C=>{B(C)},C=>{const M=Object.entries(C).map(([E,X])=>`${E}: ${X.message}`).join(`
9
9
  `);console.log(`📝 Por favor, completa los siguientes campos:
10
- `+F)})()},title:i?"Editar tarea":"Nueva tarea",successButtonText:i?"Actualizar":"Crear",disabledSuccessButton:!N,children:a.jsxs("form",{className:"tm-flex tm-flex-col tm-gap-4",children:[a.jsx(Ce.Controller,{control:h,name:"title",rules:{required:"El título es obligatorio",minLength:{value:3,message:"El título debe tener al menos 3 caracteres"}},render:({field:C})=>{var F;return a.jsx(p.Input,{fullWidth:!0,label:"Título",placeholder:"Ingresa el título de la tarea...",error:(F=y.title)==null?void 0:F.message,...C})}}),a.jsx(Ce.Controller,{control:h,name:"description",rules:{required:"La descripción es obligatoria",minLength:{value:10,message:"La descripción debe tener al menos 10 caracteres"}},render:({field:C})=>{var F;return a.jsx(p.Textarea,{className:"ui-w-full tw-w-full",placeholder:"Describe la tarea a realizar...",label:"Descripción",error:(F=y.description)==null?void 0:F.message,...C})}}),a.jsx(p.Separator,{}),a.jsx(Ce.Controller,{control:h,name:"priority",rules:{required:"La prioridad es obligatoria"},render:({field:C,fieldState:{error:F}})=>a.jsx(p.Dropdown,{fullWidth:!0,label:"Prioridad",placeholder:"Selecciona la prioridad...",options:ri,error:F==null?void 0:F.message,value:C.value,onValueChange:E=>{C.onChange(E)}})}),a.jsx(Ce.Controller,{control:h,name:"difficulty",rules:{required:"La dificultad es obligatoria"},render:({field:C,fieldState:{error:F}})=>a.jsx(p.Dropdown,{fullWidth:!0,label:"Dificultad",placeholder:"Selecciona la dificultad...",options:ii,error:F==null?void 0:F.message,value:C.value,onValueChange:E=>{C.onChange(E)}})}),a.jsx(Ce.Controller,{control:h,name:"duration",rules:{required:"La duración es obligatoria"},render:({field:C,fieldState:{error:F}})=>a.jsx(p.Dropdown,{fullWidth:!0,label:"Duración",placeholder:"Selecciona la duración...",options:li,error:F==null?void 0:F.message,value:C.value,onValueChange:E=>{C.onChange(E)}})}),a.jsx(p.Separator,{}),a.jsx(Ce.Controller,{control:h,name:"team",rules:{required:"El equipo es obligatorio"},render:({field:C,fieldState:{error:F}})=>a.jsx(p.Dropdown,{fullWidth:!0,label:"Equipo",placeholder:"Selecciona el equipo...",options:l,error:F==null?void 0:F.message,value:C.value,onValueChange:E=>{C.onChange(E)}})}),a.jsx(Ce.Controller,{control:h,name:"responsible",render:({field:C,fieldState:{error:F}})=>a.jsx(p.Dropdown,{fullWidth:!0,absolute:!0,label:"Responsable",placeholder:"Selecciona el responsable...",options:f,error:F==null?void 0:F.message,value:C.value,onValueChange:E=>{C.onChange(E)}})}),a.jsx(p.Separator,{}),a.jsx("div",{className:"tm-mt-3",children:a.jsx(Ce.Controller,{control:h,name:"is_monitoring_trigger",render:({field:C})=>a.jsx(p.Toggle,{label:"Activar solicitud de testigos",checked:!!C.value,onChange:C.onChange})})})]})})},ci=()=>{const{get:e}=qe(),t=ze(i=>i.activeTemplate),{updateTaskInState:s,addTaskToState:o}=ct();return{updateTaskInTemplate:async(i,r)=>{if(!t)return console.error("No hay plantilla activa"),!1;try{const l=await e(t.id);if(!l)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,is_monitoring_trigger:r.is_monitoring_trigger??!1,equipo:r.equipo||null,responsable:r.responsable||null,plantilla:{id:l.id,clave:l.clave,categoria:l.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 s({task:d}):await o({task:d})}catch(l){return console.error("❌ Error al actualizar tarea en plantilla:",l),!1}}}},Ne={DEFAULT_CHILD_WIDTH:260,DEFAULT_CHILD_HEIGHT:80,MAGNETIC_CONNECTION_DISTANCE:800,GRAPH_LAYOUT_UPDATE_DELAY:100,START_NODE_ID:"start",DEFAULT_SOURCE_HANDLE:"bottom-source",DEFAULT_TARGET_HANDLE:"top-target"},Da={dependiente:{stroke:"#3B82F6",strokeDasharray:"5,5",strokeWidth:2},normal:{stroke:"#6B7280",strokeWidth:2}},Et=e=>{const t=e.map(s=>({...s}));return t.filter(s=>s.type==="group").forEach(s=>{const o=t.filter(m=>m.parentId===s.id);if(o.length===0)return;const n=Math.min(...o.map(m=>m.position.x)),r=Math.max(...o.map(m=>{var f;return m.position.x+(typeof((f=m.style)==null?void 0:f.width)=="number"?m.style.width:Ne.DEFAULT_CHILD_WIDTH)}))-n,l=Math.min(...o.map(m=>m.position.y)),c=Math.max(...o.map(m=>{var f;return m.position.y+(typeof((f=m.style)==null?void 0:f.height)=="number"?m.style.height:Ne.DEFAULT_CHILD_HEIGHT)}))-l;s.style={...s.style??{},width:r,height:c}}),t},At=e=>e.source===Ne.START_NODE_ID||e.target===Ne.START_NODE_ID,tt=e=>e===Ne.START_NODE_ID,di=e=>e==="dependiente"?Da.dependiente:Da.normal,mi=(e,t,s)=>({id:e,type:"main",position:t,selected:!1,deletable:!0,data:s}),Pt=(e,t,s,o,n,i=!1,r=null,l=null)=>{const d=di(o),c=i?Ne.DEFAULT_SOURCE_HANDLE:s;return{id:`edge-${e}-${t}`,source:e,sourceHandle:c,target:t,targetHandle:Ne.DEFAULT_TARGET_HANDLE,type:"smoothstep",deletable:!0,style:d,markerEnd:{type:"arrowclosed",width:12,height:12,color:d.stroke,strokeWidth:1},data:{connectionType:o,nodeType:n,isFromStartNode:i,parentId:r,childId:l}}},ui=(e,t)=>!(!e||!t||e===t),pi=e=>{const{clientX:t,clientY:s}="changedTouches"in e?e.changedTouches[0]:e;return{x:t,y:s}},fi=e=>e.filter(t=>t.type==="position"&&t.dragging===!1),Is=e=>e.map(t=>t.id),Fs=({nodes:e,edges:t,setNodes:s,setEdges:o,newNodePopup:n,connectionPopup:i,closeNewNodePopup:r,closeConnectionPopup:l,setIsConnectingExistingNodes:d})=>{const{screenToFlowPosition:c,getNode:m,setViewport:f,fitView:g}=oe.useReactFlow(),{get:h,update:x,addTaskUpdatingTemplate:y,addTemplateUpdatingTemplate:j}=qe(),b=ze(M=>M.activeTemplate),w=de.useQueryClient(),v=ze(M=>M.setActiveTemplate),{removeTaskFromState:N,updateNodeWithNewEdge:L,updateTaskInState:O}=ct(),C=u.useCallback(async M=>{const K=e.find($=>$.id===M);if(!(K!=null&&K.data))return null;if(K.id===Ne.START_NODE_ID){if(!b)return null;try{const $=await h(b.id),R=$.tarea_plantillas.find(V=>V.start===!0);return R!=null&&R.id?R.id:$.tarea_plantillas.length>0?$.tarea_plantillas[0].id:null}catch{return null}}const I=K.data.id;if(!I&&I!==0)return null;if(typeof I=="string"){if(I.includes("-"))return I;{const $=parseInt(I,10);return isNaN($)?null:$}}else if(typeof I=="number")return I;return null},[e,b,h]),F=u.useCallback(async(M=e,K=t)=>{var I,$,R,V,G,D,te;if(!b){p.toast.warning("No hay template activo para actualizar layout");return}try{const ee=await h(b.id);if(!ee){p.toast.warning("Template no encontrado en IndexedDB");return}const A=(I=ee.graph_layout)==null?void 0:I.snapshot;if(!(!A||JSON.stringify(A.nodes)!==JSON.stringify(M)||JSON.stringify(A.edges)!==JSON.stringify(K))){console.log("🔄 No hay cambios en el layout, omitiendo actualización");return}const Y=M.filter(W=>{var _;return!((_=W.data)!=null&&_.isInternal)&&!W.parentId}).map(W=>{const{style:_,measured:S,data:q,selected:k,...T}=W,{expandedDimensions:Q,isExpanded:Z,needsReExpansion:ae,...re}=q||{},J=_?{..._,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...T,style:J,data:re}}),B=K.filter(W=>{var _;return!((_=W.data)!=null&&_.isInternal)}),P={...ee,graph_layout:{id:(($=ee.graph_layout)==null?void 0:$.id)||0,snapshot:{nodes:Y,edges:B,viewport:((V=(R=ee.graph_layout)==null?void 0:R.snapshot)==null?void 0:V.viewport)||{x:0,y:0,zoom:1}},history:((G=ee.graph_layout)==null?void 0:G.history)||[],zoom:((D=ee.graph_layout)==null?void 0:D.zoom)||1,position:((te=ee.graph_layout)==null?void 0:te.position)||{x:0,y:0}},estatus:Te.DIRTY,updatedAt:new Date().toISOString()};await x(b.id,P),console.log("🗑️ [useFlowActions] Invalidando caché de la plantilla:",b.id),await w.invalidateQueries({queryKey:["template",b.id]}),await w.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlowActions] Caché invalidado exitosamente"),v(P)}catch(ee){console.error("❌ Error al actualizar template layout:",ee)}},[b,h,x,e,t,v]),E=u.useCallback(async(M=[],K=[],I,$)=>{var V,G,D,te,ee,A,H,Y,B,P,W,_;const R=I||(b==null?void 0:b.id);if(!R){p.toast.warning("No hay template ID disponible para actualizar");return}try{const S=await h(R);if(!S)return;const q=(D=(G=(V=S.graph_layout)==null?void 0:V.snapshot)==null?void 0:G.nodes)==null?void 0:D.filter(Q=>{var Z;return!M.includes(Q.id)&&!((Z=Q.data)!=null&&Z.isInternal)&&!Q.parentId}).map(Q=>{const{style:Z,measured:ae,data:re,...J}=Q,{expandedDimensions:se,...ce}=re||{},me=Z?{...Z,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...J,style:me,data:ce}}),k=((A=(ee=(te=S.graph_layout)==null?void 0:te.snapshot)==null?void 0:ee.edges)==null?void 0:A.filter(Q=>{var Z;return!M.includes(Q.source)&&!M.includes(Q.target)&&!((Z=Q.data)!=null&&Z.isInternal)}))||[],T={...S,graph_layout:{id:((H=S.graph_layout)==null?void 0:H.id)||0,snapshot:{nodes:q,edges:k,viewport:((B=(Y=S.graph_layout)==null?void 0:Y.snapshot)==null?void 0:B.viewport)||{x:0,y:0,zoom:1}},history:((P=S.graph_layout)==null?void 0:P.history)||[],zoom:((W=S.graph_layout)==null?void 0:W.zoom)||1,position:((_=S.graph_layout)==null?void 0:_.position)||{x:0,y:0}},estatus:Te.DIRTY,updatedAt:new Date().toISOString()};await N({templateId:R,id:$||0}),await x(R,T),await w.invalidateQueries({queryKey:["template",R]}),await w.invalidateQueries({queryKey:["template"]}),R===(b==null?void 0:b.id)&&v(T)}catch(S){console.error("❌ updateAfterDeleted - Error al actualizar template layout:",S)}},[b,h,x,t,e,N,v]),X=u.useCallback(async(M,K,I)=>{if(!n||!b)return;const{nodeId:$,sourceNodeId:R,sourceHandleId:V}=n;if(R)try{const G=await C(R);if(!G)return;if(M==="plantilla"){const D=I;if(!(D!=null&&D.templateId))return;if(!await j(D.templateId,b.id,G,K)){p.toast.error("No se pudo agregar la plantilla. Intenta nuevamente."),r();return}try{const W=await h(b.id);if(W){const _=(q,k)=>{for(const T of q){if(T.id===k||T.uuid===k)return T;if(T.tareas&&T.tareas.length>0){const Q=_(T.tareas,k);if(Q)return Q}}return null},S=_(W.tarea_plantillas,G);if(S&&S.id){const q=(S.plantilla_dependents||[]).map(T=>typeof T=="object"&&T.id?{id:T.id}:typeof T=="number"?{id:T}:T),k={...S,plantilla_dependents:q,plantilla:{id:b.id,clave:W.clave,categoria:W.categoria||{id:0,nombre:"Sin categoría"}}};await O({task:k}),console.log("✅ Tarea padre agregada a templates_states.updated con plantilla_dependents:",S.id,k.plantilla_dependents)}}}catch(W){console.error("❌ Error al actualizar tarea padre en templates_states:",W)}const ee=c({x:n.position.x,y:n.position.y}),A=D.templateData||{id:D.templateId,nombre_plantilla:`Flujo de trabajo ${D.templateId}`,clave:`TPL-${D.templateId}`,estatus:"activo",categoria:null,counts_tasks:0,dias_duracion:0},H={id:$,type:"group",position:ee,selected:!1,deletable:!0,data:{id:D.templateId,templateId:D.templateId,type:"template",nombre_plantilla:A.nombre_plantilla||`Flujo de trabajo ${D.templateId}`,clave:A.clave||`TPL-${D.templateId}`,estatus:A.estatus||"activo",categoria:A.categoria||null,counts_tasks:A.counts_tasks||0,dias_duracion:A.dias_duracion||0,tarea_plantillas:A.tarea_plantillas||[],params_plantillas:A.params_plantillas||[],createdAt:A.createdAt||new Date().toISOString(),updatedAt:A.updatedAt||new Date().toISOString(),created_by:A.created_by||null,updated_by:A.updated_by||null}};s(W=>[...W,H]);const Y=V||Ne.DEFAULT_SOURCE_HANDLE,B=tt(R),P=Pt(R,$,Y,K,"plantilla",B,G);o(W=>[...W,P]);try{const W=[...e,H],_=[...t,P];await F(W,_)}catch(W){console.error("❌ Error al actualizar layout después de agregar plantilla:",W)}}else if(M==="tarea"){const D=I;if(!D)return;const te=c({x:n.position.x,y:n.position.y}),ee=-new Date().getTime(),A={id:ee,reference_graph:$,title:D.title,description:D.description,priority:D.priority,difficulty:D.difficulty,duration:D.duration,team:D.team,responsible:D.responsible,is_monitoring_trigger:D.is_monitoring_trigger??!1,parent:{data:{id:G}}},H=await y(A,b.id,K),Y=mi($,te,H);s(_=>[..._,Y]);const B=V||Ne.DEFAULT_SOURCE_HANDLE,P=tt(R),W=Pt(R,$,B,K,M,P,G,ee);o(_=>[..._,W]);try{const _=[...e,Y],S=[...t,W];await F(_,S)}catch(_){console.error("❌ Error al actualizar layout después de agregar tarea:",_)}setTimeout(()=>{try{const _=m($);if(_){const S=window.innerWidth,q=window.innerHeight,k=S/2,T=q/2;f({x:k-_.position.x-130,y:T-_.position.y-40,zoom:1},{duration:800})}else g({padding:.1,duration:800})}catch{try{g({padding:.1,duration:800})}catch{}}},200)}r()}catch(G){console.error("❌ Error en createNodeFromPopup:",G)}},[n,b,y,j,C,c,s,o,r,F,e,t]),U=u.useCallback(async(M,K)=>{var V,G;if(console.log("🟢 createConnectionFromPopup - INICIO",{nodeType:M,connectionType:K}),!i){console.warn("⚠️ createConnectionFromPopup - No hay connectionPopup");return}const{sourceNodeId:I,sourceHandleId:$,targetNodeId:R}=i;console.log("🟢 createConnectionFromPopup - Datos de conexión:",{sourceNodeId:I,targetNodeId:R,sourceHandleId:$});try{if(!(window.validConnectionTypes||{dependiente:!0,hija:!0})[K]){console.warn("⚠️ createConnectionFromPopup - Tipo de conexión no válido:",K),p.toast.warning("Tipo de conexión no válido"),d(!1),l();return}const te=e.find(k=>k.id===I),ee=e.find(k=>k.id===R);console.log("🟢 createConnectionFromPopup - Nodos encontrados:",{sourceNode:te==null?void 0:te.id,targetNode:ee==null?void 0:ee.id,sourceData:te==null?void 0:te.data,targetData:ee==null?void 0:ee.data});const A=ee==null?void 0:ee.data,H=((V=te==null?void 0:te.data)==null?void 0:V.id)||I,Y=((G=ee==null?void 0:ee.data)==null?void 0:G.id)||R;console.log("🟢 createConnectionFromPopup - IDs extraídos:",{parentId:H,childId:Y});const B=Pt(I,R,$||Ne.DEFAULT_SOURCE_HANDLE,K,M,tt(I),H,Y);console.log("🟢 createConnectionFromPopup - Nuevo edge creado:",B),o(k=>[...k,B]);const P=[...t,B],W=A.id||-Date.now(),_=A.reference_graph||R,S={id:W,uuid:A.uuid||crypto.randomUUID(),reference_graph:_,texto_corto:A.texto_corto||"",texto_largo:A.texto_largo||"",prioridad:A.prioridad||null,nivel_dificultad:A.nivel_dificultad||1,duracion:A.duracion||null,start:A.start||!1,is_monitoring_trigger:A.is_monitoring_trigger??!1,equipo:A.equipo||null,responsable:A.responsable||null,plantilla:{id:A.plantilla.id,clave:A.plantilla.clave,categoria:A.plantilla.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:A.plantilla_dependents||[],ids_t_dependientes:A.ids_t_dependientes||[],tarea_padre:K==="hija"?{id:B.data.parentId}:null,id_t_requerida:K==="dependiente"?{id:B.data.parentId}:null,tareas:A.tareas||[],type:"task"};console.log("🟢 createConnectionFromPopup - taskForState creado:",S),console.log("🟢 createConnectionFromPopup - currentTemplate.id:",b.id);const q=e.map(k=>k.id===R?{...k,data:S}:k);console.log("🟢 createConnectionFromPopup - Actualizando nodos en React Flow..."),s(q),console.log("✅ createConnectionFromPopup - Nodos actualizados en React Flow"),console.log("🟢 createConnectionFromPopup - Actualizando template layout..."),await F(q,P),console.log("✅ createConnectionFromPopup - Template layout actualizado"),console.log("🟢 createConnectionFromPopup - Llamando a updateNodeWithNewEdge..."),await L({templateId:b.id,edge:B,task:S}),console.log("✅ createConnectionFromPopup - updateNodeWithNewEdge completado")}catch(D){console.error("❌ createConnectionFromPopup - Error al crear conexión:",D),console.error("❌ createConnectionFromPopup - Stack:",D.stack)}finally{console.log("🟢 createConnectionFromPopup - Limpiando estado..."),d(!1),l(),console.log("🟢 createConnectionFromPopup - FIN")}},[i,o,d,l,t,e,F]),z=u.useCallback(async M=>{if(!n||!b){p.toast.warning("No hay newNodePopup o template activo para actualizar el nodo");return}const{nodeId:K}=n;if(!K){p.toast.warning("No se encontró nodeId en newNodePopup");return}try{const I=e.find(R=>R.id===K);if(!I){p.toast.warning(`No se encontró el nodo con ID: ${K}`);return}const $={...I,data:{...I.data,...M,id:I.data.id||I.id,type:I.data.type||I.data.type,updatedAt:new Date().toISOString()}};s(R=>R.map(V=>V.id===K?$:V));try{const R=e.map(V=>V.id===K?$:V);await F(R,t)}catch(R){p.toast.error("Error al actualizar layout después de actualizar nodo:",R)}r()}catch(I){p.toast.error("Error al actualizar el nodo:",I)}},[n,b,e,s,t,F,r]);return{createNodeFromPopup:X,createConnectionFromPopup:U,updateNodeFromPopup:z,updateAfterDeleted:E}},gi=({data:e,id:t,isConnectable:s,selected:o})=>{const n=_e(U=>U.getViewMode),[i,r]=u.useState(!1),[l,d]=u.useState(e),c=ze(U=>U.activeTemplate),m=ze(U=>U.setActiveTemplate),{get:f,update:g}=qe(),{data:h}=$a(),{users:x}=yt(),y=c!=null&&c.id?n(c.id):"readonly",{updateTaskInTemplate:j}=ci(),{setNodes:b,setEdges:w,getNodes:v,getEdges:N}=oe.useReactFlow(),L=de.useQueryClient(),{updateAfterDeleted:O}=Fs({nodes:v(),edges:N(),setNodes:b,setEdges:w,newNodePopup:null,connectionPopup:null,closeNewNodePopup:()=>{},closeConnectionPopup:()=>{},setIsConnectingExistingNodes:()=>{}}),C=()=>{r(!0)},F=u.useCallback(async()=>{var $,R,V;const U=v().find(G=>G.id===t);if(!U){console.warn("⚠️ Nodo no encontrado para eliminar");return}const z=[U],M=Is(z),K=z.length>0?(R=($=z[0])==null?void 0:$.data)==null?void 0:R.id:0;w(G=>G.filter(D=>!M.includes(D.source)&&!M.includes(D.target))),b(G=>G.filter(D=>D.id!==t));let I;for(const G of z)try{const D=G.data;if((V=D==null?void 0:D.plantilla)!=null&&V.id){I=D.plantilla.id;break}}catch{}try{w(G=>((async()=>{await O(M,G,I,K)})().catch(D=>{console.error("❌ Error en updateAfterDeleted:",D)}),G))}catch(G){console.error("❌ Error en handleDeleteNode:",G)}},[t,v,b,w,O]),E=u.useCallback(async U=>{var z,M,K,I,$,R,V,G,D,te;if(!c){console.warn("⚠️ MainNode.updateTemplateLayout - No hay template activo");return}try{const ee=await f(c.id);if(!ee){console.warn("⚠️ MainNode.updateTemplateLayout - Template no encontrado en IndexedDB");return}const A=(z=ee.graph_layout)==null?void 0:z.snapshot;if(!(!A||JSON.stringify(A.nodes)!==JSON.stringify(U))){console.log("🔄 MainNode.updateTemplateLayout - No hay cambios en nodos, omitiendo actualización");return}const Y=U.filter(W=>{var _;return!((_=W.data)!=null&&_.isInternal)&&!W.parentId}).map(W=>{const{style:_,measured:S,data:q,selected:k,...T}=W,{expandedDimensions:Q,isExpanded:Z,needsReExpansion:ae,...re}=q||{},J=_?{..._,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...T,style:J,data:re}}),B=(((K=(M=ee.graph_layout)==null?void 0:M.snapshot)==null?void 0:K.edges)||[]).filter(W=>{var _;return!((_=W.data)!=null&&_.isInternal)}),P={...ee,graph_layout:{id:((I=ee.graph_layout)==null?void 0:I.id)||0,snapshot:{...($=ee.graph_layout)==null?void 0:$.snapshot,nodes:Y,edges:B,viewport:((V=(R=ee.graph_layout)==null?void 0:R.snapshot)==null?void 0:V.viewport)||{x:0,y:0,zoom:1}},history:((G=ee.graph_layout)==null?void 0:G.history)||[],zoom:((D=ee.graph_layout)==null?void 0:D.zoom)||1,position:((te=ee.graph_layout)==null?void 0:te.position)||{x:0,y:0}},estatus:Te.DIRTY,updatedAt:new Date().toISOString()};await g(c.id,P),await L.invalidateQueries({queryKey:["template",c.id]}),await L.invalidateQueries({queryKey:["template"]}),c&&c.id===P.id&&m(P)}catch(ee){console.error("❌ MainNode.updateTemplateLayout - Error al actualizar template layout:",ee)}},[c,f,g,m,L]),X=async U=>{if(c){const z=U.responsible,M=z!==""&&z!=null&&!Number.isNaN(Number(z))?Number(z):null,K=M!=null?x==null?void 0:x.find(V=>V.id===M):void 0,I=e.responsable&&typeof e.responsable=="object"&&"email"in e.responsable&&typeof e.responsable.email=="string"?e.responsable.email:"",$=M!=null?{id:M,email:(K==null?void 0:K.email)??I}:{id:null,email:""},R={...e,texto_corto:U.title,texto_largo:U.description,prioridad:U.priority?typeof U.priority=="number"?U.priority:parseInt(U.priority.toString()):null,nivel_dificultad:U.difficulty?typeof U.difficulty=="number"?U.difficulty:parseInt(U.difficulty.toString()):1,duracion:U.duration?typeof U.duration=="number"?U.duration:parseInt(U.duration.toString()):null,equipo:(()=>{var D;const V=Number(U.team)||null;if(!V)return{id:null};const G=(D=h==null?void 0:h.find(te=>te.value===V))==null?void 0:D.label;return{id:V,...G?{nombre:G}:{}}})(),responsable:$,is_monitoring_trigger:U.is_monitoring_trigger};await j(e.id,R),b(V=>{const G=V.map(D=>D.id===t?{...D,data:{...D.data,...R,tarea_padre:e.tarea_padre,id_t_requerida:e.id_t_requerida,updatedAt:new Date().toISOString()}}:D);return setTimeout(()=>E(G),0),G})}r(!1)};return u.useEffect(()=>{d(e)},[e]),a.jsxs("div",{className:`tm-border-[1px] tm-bg-surface-default tm-px-4 tm-py-2 tm-rounded-lg tm-transition-all tm-duration-200 tm-max-w-[550px] ${o?"tm-border-brand tm-shadow-02 tm-ring-2 tm-ring-blue-300 tm-ring-opacity-50":e.main?"tm-border-success tm-shadow-02":"tm-border-default tm-shadow-02"}`,children:[a.jsx(oe.Handle,{isConnectable:s,id:"top-target",type:"target",position:oe.Position.Top,className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default"}),a.jsx(oe.Handle,{isConnectable:s,id:"right-target",type:"target",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Right}),a.jsx(oe.Handle,{isConnectable:s,id:"bottom-target",type:"target",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Bottom}),a.jsx(oe.Handle,{isConnectable:s,id:"left-target",type:"target",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Left}),a.jsxs("div",{className:"tm-flex tm-h-full tm-flex-col tm-gap-y-8 tm-p-12 ",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-gap-x-4 ",children:[a.jsx(p.Text,{size:"lg",weight:"semibold",color:"primary",truncateLabel:!0,children:l.texto_corto}),!e.isInternal&&c.estatusFromStrapi!==Pe.PUBLISHED&&y!=="readonly"&&a.jsx("div",{children:e.type==="task"?a.jsx(p.Popup,{position:"right",absolute:!0,size:"xxs",pill:"pill",color:"secondary",icon:le.faEllipsis,containerClassName:"nopan nodrag",buttonClassName:"nopan nodrag",children:a.jsxs(p.List,{className:"tm-p-8 tm-gap-4",children:[a.jsx(p.ListItem,{icon:le.faEdit,onClick:C,children:"Editar"}),a.jsx(p.ListItem,{icon:le.faPlus,color:"red",onClick:F,children:"Eliminar"})]})}):a.jsx(p.Button,{size:"xxs",color:"secondary",pill:"pill",icon:le.faMaximize,className:"nopan"})})]}),a.jsx(p.Text,{size:"xs",weight:"regular",color:"tertiary",children:l.texto_largo}),a.jsxs("div",{className:"tm-flex tm-flex-row tm-flex-nowrap tm-items-center tm-gap-x-4 tm-justify-between md:tm-gap-x-6",children:[a.jsx(Zr,{duration:l.duracion}),a.jsx(Jr,{difficulty:l.nivel_dificultad}),a.jsx(ti,{priority:l.prioridad}),a.jsx(Xr,{equipo:l.equipo}),a.jsx(oi,{responsible:l.responsable}),l.is_monitoring_trigger===!0&&a.jsx(As,{})]})]}),a.jsx(oe.Handle,{isConnectable:s,id:"top-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Top}),a.jsx(oe.Handle,{isConnectable:s,id:"right-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Right}),a.jsx(oe.Handle,{isConnectable:s,id:"bottom-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Bottom}),a.jsx(oe.Handle,{isConnectable:s,id:"left-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Left}),e.type==="task"&&i&&a.jsx(Ds,{isOpen:i,onClose:()=>r(!1),onSuccess:X,editMode:!0,taskToEdit:l})]})},hi=async({tasks_api:e,page:t=1,pageSize:s=10,search:o="",filters:n={}})=>{const i={clave:{$notNull:!0},estatus:{$ne:Pe.DELETED},...o?{$or:[{nombre_plantilla:{$containsi:o}},{clave:{$containsi:o}}]}:{},...Object.keys(n).reduce((d,c)=>(Array.isArray(n[c])?d[c]={id:{$in:n[c]}}:d[c]=n[c],d),{})},r=De.stringify({filters:i,fields:["id","clave","estatus","dias_duracion","createdAt","publication_date"],count_tasks:!0,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","is_monitoring_trigger","start"]}},sort:{createdAt:"asc"},pagination:{page:t,pageSize:s}},{encodeValuesOnly:!0}),l=await e.get(`/api/plantillas/all-plantillas?${r}`);return l.data?{data:je(l.data.data),meta:l.data.meta}:{data:[],meta:{pagination:{page:t,pageSize:s,pageCount:0,total:0}}}},Ms=({page:e=1,pageSize:t=10,search:s="",filters:o={}})=>{const{tasks_api:n}=fe();return de.useQuery({queryKey:["templates",e,t,s,o],queryFn:()=>hi({tasks_api:n,page:e,pageSize:t,search:s,filters:o}),staleTime:1e3*60*60*24,placeholderData:de.keepPreviousData,select:i=>({data:(i==null?void 0:i.data)||[],meta:i==null?void 0:i.meta})})},ks=({isOpen:e,onClose:t,onSuccess:s,nodeDataType:o,parentNodeInfo:n})=>{var v,N,L,O;const i=_e(C=>C.addNodeWithType),[r,l]=u.useState(0),d=5,[c,m]=u.useState(1),[f,g]=u.useState("");u.useEffect(()=>{e&&(m(1),g(""),l(0))},[e]),u.useEffect(()=>{m(1)},[f]);const{data:h,isLoading:x}=Ms({page:c,pageSize:d,search:f}),y=C=>{g(C.target.value)},j=()=>{var F;if(r===0)return;const C=(F=h==null?void 0:h.data)==null?void 0:F.find(E=>E.id===r);if(!C){console.error("No se encontró el flujo de trabajo seleccionado en los datos");return}s?s({templateId:r,templateData:C}):i&&i(o.id,o.type,o.connectionType)};if(x)return a.jsx("div",{children:"Cargando..."});if(!(h!=null&&h.data))return a.jsx("div",{children:"No hay datos disponibles"});const b=((N=(v=h.meta)==null?void 0:v.pagination)==null?void 0:N.total)||0,w=b===1?"flujo encontrado":"flujos encontrados";return a.jsx(p.Modal,{iconConfig:{icon:Ee.faPencil},isOpen:e,size:"lg",onSuccess:j,onClose:t,title:"Agregar flujo de trabajo",successButtonText:"Agregar",disableSuccessButton:r===0,closeAtSuccess:!0,children:a.jsxs(p.Modal.Body,{withPadding:!1,children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-gap-6 tm-px-12 tm-py-3",children:[a.jsxs("p",{className:"tm-flex-1 tm-text-[14px] tm-text-neutral-500",children:[b," ",w]}),a.jsx(p.Input,{className:"tm-flex-1",leftSlot:Ee.faSearch,fullWidth:!0,placeholder:"Buscar por nombre, parámetros o estado...",value:f,onChange:y})]}),a.jsx(p.Separator,{}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-6 tm-p-12",children:[h.data.map(C=>a.jsx(Ps,{mode:"modal",template:C,active:r===C.id,fullWidth:!0,onClick:l,withOptions:!1},C.id)),h.data.length===0&&a.jsx("div",{className:"tm-flex tm-items-center tm-justify-center tm-h-full",children:a.jsx("p",{className:"tm-text-[14px] tm-text-neutral-500",children:"No se encontraron flujos de trabajo con ese criterio de búsqueda"})})]}),a.jsx(p.Separator,{}),a.jsx("div",{className:"tm-mt-6",children:a.jsx(p.Pagination,{className:"tm-pt-0",pageSize:d,pageCount:((O=(L=h==null?void 0:h.meta)==null?void 0:L.pagination)==null?void 0:O.pageCount)||1,currentPage:c,onPageChange:C=>m(C)})})]})})},xi=({data:e,id:t})=>{const s=_e(m=>m.addNodeWithType),[o,n]=u.useState(!1),[i,r]=u.useState(!1),[l,d]=u.useState({id:t,type:"tarea",connectionType:"dependiente"}),c=({type:m,connectionType:f})=>{s&&(d({id:t,type:m,connectionType:f}),m==="tarea"?n(!0):m==="plantilla"&&r(!0))};return console.log({data:e,id:t}),a.jsxs("div",{className:"tm-flex tm-items-center tm-justify-center",children:[l.type==="plantilla"&&a.jsx(ks,{isOpen:i,onClose:()=>r(!1),nodeDataType:l}),a.jsx(oe.Handle,{id:"top-target",type:"target",position:oe.Position.Top}),a.jsx(oe.Handle,{id:"right-target",type:"target",position:oe.Position.Right}),a.jsx(oe.Handle,{id:"bottom-target",type:"target",position:oe.Position.Bottom}),a.jsx(oe.Handle,{id:"left-target",type:"target",position:oe.Position.Left}),a.jsx(oe.Handle,{id:"top-source",type:"source",position:oe.Position.Top}),a.jsx(oe.Handle,{id:"right-source",type:"source",position:oe.Position.Right}),a.jsx(oe.Handle,{id:"bottom-source",type:"source",position:oe.Position.Bottom}),a.jsx(oe.Handle,{id:"left-source",type:"source",position:oe.Position.Left}),a.jsx(p.Popup,{position:"right",absolute:!0,size:"md",rounded:!0,icon:le.faPlus,containerClassName:"nopan",buttonClassName:"nopan",children:a.jsxs(p.List,{className:"nopan nodrag",children:[a.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Tarea"}),a.jsx(p.ListItem,{icon:le.faArrowUpLeft,iconColor:"neutral",onClick:()=>c({type:"tarea",connectionType:"dependiente"}),children:"Dependiente"}),a.jsx(p.ListItem,{icon:le.faArrowDownRight,iconColor:"neutral",onClick:()=>c({type:"tarea",connectionType:"hija"}),children:"Hija"}),a.jsx(p.ListSeparator,{}),a.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Flujo de trabajo"}),a.jsx(p.ListItem,{icon:le.faArrowUpLeft,iconColor:"neutral",onClick:()=>c({type:"plantilla",connectionType:"dependiente"}),children:"Dependiente"}),a.jsx(p.ListItem,{icon:le.faArrowDownRight,iconColor:"neutral",onClick:()=>c({type:"plantilla",connectionType:"hija"}),children:"Hija"})]})})]})},bi=({isOpen:e,position:t,onClose:s,createNodeFromPopup:o,parentNodeInfo:n})=>{const[i,r]=u.useState(!1),[l,d]=u.useState(!1),[c,m]=u.useState(null);if(!e)return null;const f=(j,b)=>{m({type:j,connectionType:b}),j==="tarea"?r(!0):j==="plantilla"&&d(!0)},g=()=>{r(!1),m(null),s()},h=()=>{d(!1),m(null),s()},x=j=>{c&&o(c.type,c.connectionType,j),g()},y=j=>{c&&j&&o(c.type,c.connectionType,j),h()};return a.jsxs(a.Fragment,{children:[!i&&!l&&a.jsx("div",{className:"tm-fixed tm-inset-0 tm-z-50",onClick:s}),!i&&!l&&a.jsx("div",{className:"tm-fixed tm-z-50 tm-bg-surface-default tm-rounded-lg tm-shadow-02 tm-border tm-border-black-light tm-min-w-[200px]",style:{left:t.x+50,top:t.y-100},children:a.jsx("div",{className:"tm-p-2",children:a.jsxs(p.List,{children:[a.jsx("p",{className:"tm-text-sm tm-p-4 tm-gap-4 tm-font-medium tm-text-neutral-300",children:"Tarea"}),a.jsx(p.ListItem,{icon:le.faArrowUpLeft,iconColor:"neutral",onClick:()=>f("tarea","dependiente"),children:"Dependiente"}),a.jsx(p.ListItem,{icon:le.faArrowDownRight,iconColor:"neutral",onClick:()=>f("tarea","hija"),children:"Hija"}),a.jsx(p.ListSeparator,{}),a.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Flujo de trabajo"}),a.jsx(p.ListItem,{icon:le.faArrowUpLeft,iconColor:"neutral",onClick:()=>f("plantilla","dependiente"),children:"Dependiente"})]})})}),i&&c&&a.jsx(Ds,{isOpen:i,onClose:g,onSuccess:x,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:n}),l&&c&&a.jsx(ks,{isOpen:l,onClose:h,onSuccess:y,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:n})]})};function yi({reactFlowWrapper:e,nodes:t,resetZoomHistoryKey:s}){const{setViewport:o,getViewport:n}=oe.useReactFlow(),{zoom:i}=oe.useViewport(),r=Math.round(i*100),[l,d]=u.useState([]),[c,m]=u.useState(-1),[f,g]=u.useState(!1),[h,x]=u.useState(0);u.useLayoutEffect(()=>{const O=e==null?void 0:e.current;if(O){const C=O.getBoundingClientRect();x(C.width)}},[e]);const y=u.useMemo(()=>{var E;if(!t||t.length===0)return{x:0,y:0,zoom:1};const O=t.find(X=>{var U;return(U=X==null?void 0:X.data)==null?void 0:U.main})??t[0];return{x:(h||(typeof window<"u"?window.innerWidth:0))/2-(((E=O==null?void 0:O.position)==null?void 0:E.x)??0),y:20,zoom:1}},[t,h]),j=u.useCallback(O=>{if(!f){const C=[...l.slice(0,c+1),O];d(C),m(C.length-1)}},[l,c,f]),b=u.useCallback(()=>{if(f)return;const O=n(),C=Math.min(O.zoom*1.2,2);j(O),g(!0),o({x:O.x,y:O.y,zoom:C}),setTimeout(()=>g(!1),100)},[n,o,j,f]),w=u.useCallback(()=>{if(f)return;const O=n(),C=Math.max(O.zoom/1.2,.5);j(O),g(!0),o({x:O.x,y:O.y,zoom:C}),setTimeout(()=>g(!1),100)},[n,o,j,f]),v=u.useCallback(()=>{if(f)return;const O=n();Math.abs(O.zoom-1)>.01&&j(O),g(!0),o({x:O.x,y:O.y,zoom:1}),setTimeout(()=>g(!1),100)},[n,o,j,f]),N=u.useCallback(()=>{if(f||c<=0)return;const O=l[c-1];g(!0),o(O),m(c-1),setTimeout(()=>g(!1),100)},[c,l,o,f]);return u.useEffect(()=>{l.length===0&&(d([{zoom:1,x:0,y:0}]),m(0))},[l.length]),u.useEffect(()=>{s!=null&&(d([{zoom:1,x:0,y:0}]),m(0))},[s]),{isReady:h!==0&&Array.isArray(t)&&t.length>0,defaultViewport:y,zoomPercentage:r,handleZoomIn:b,handleZoomOut:w,handleZoomTo100:v,handleDoubleClick:N}}const ji=e=>{var i,r;const t=((i=e.data)==null?void 0:i.isInternal)||!1,s=(r=e.data)==null?void 0:r.originalGroupId,o=e.selected||!1,n=l=>{if(l.preventDefault(),l.stopPropagation(),s){const c=_e.getState().collapseGroup;c&&c(s)}};return a.jsxs("div",{className:`tm-flex tm-flex-col tm-border-1 tm-border-default tm-gap-y-2 tm-rounded-lg tm-bg-surface-default tm-p-8 tm-transition-all tm-duration-200 ${o?"tm-border-brand tm-shadow-02 tm-ring-2 tm-ring-blue-300 tm-ring-opacity-50":"tm-border-default tm-shadow-02"}`,children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[a.jsx(p.Icon,{name:Ge.faFlag,size:"sm",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,background:!0,padding:"md"}),a.jsx("p",{className:"tm-text-primary tm-font-body-sm-semibold tm-leading-none tm-text-body-sm-regular tm-truncate tm-tracking-wider",children:e.data.clave}),t&&a.jsx(p.Button,{size:"sm",color:"secondary",onClick:n,className:"tm-p-2 nopan nodrag",icon:le.faMinimize,pill:"pill"})]}),t&&a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[a.jsx(p.Tag,{color:e.data.estatus==="published"?"success":"warning",label:e.data.estatus==="published"?"Publicado":"Borrador"}),(e.data.updatedAt||e.data.updated_at)&&a.jsx("p",{className:"tm-text-sm tm-text-neutral-500 tm-font-medium",children:new Date(e.data.updatedAt||e.data.updated_at).toLocaleDateString("es-ES")})]}),a.jsx(oe.Handle,{id:"bottom-source",type:"source",position:oe.Position.Bottom,className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default tm-cursor-crosshair"}),a.jsx(oe.Handle,{id:"top-target",type:"target",position:oe.Position.Top,className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default tm-cursor-crosshair"})]})},wi=()=>{const e=u.useCallback((n,i,r,l)=>{const d=(f,g)=>{const h=f.position.x,x=f.position.y,y=120,j=60,b=15;switch(g){case"top-source":case"top-target":return{x:h,y:x-j/2-b};case"bottom-source":case"bottom-target":return{x:h,y:x+j/2+b};case"left-source":case"left-target":return{x:h-y/2-b,y:x};case"right-source":case"right-target":return{x:h+y/2+b,y:x};default:return{x:h,y:x}}},c=d(n,r),m=d(i,l);return Math.sqrt(Math.pow(m.x-c.x,2)+Math.pow(m.y-c.y,2))},[]),t=u.useCallback((n,i)=>{if(n.includes("source")===i.includes("source"))return!1;const r=m=>m.includes("top")?"top":m.includes("bottom")?"bottom":m.includes("left")?"left":m.includes("right")?"right":null,l=r(n),d=r(i);return{top:"bottom",bottom:"top",left:"right",right:"left"}[l]===d},[]),s=u.useCallback((n,i)=>{const r=["top-source","bottom-source","left-source","right-source"],l=["top-target","bottom-target","left-target","right-target"];let d=1/0,c={handle1:r[0],handle2:l[0]};for(const m of r)for(const f of l){if(!t(m,f))continue;const g=e(n,i,m,f);g<d&&(d=g,c={handle1:m,handle2:f})}return c},[e,t]),o=u.useCallback((n,i,r=800)=>Math.sqrt(Math.pow(i.position.x-n.position.x,2)+Math.pow(i.position.y-n.position.y,2))<r,[]);return{findClosestHandles:s,calculateHandleDistance:e,areHandlesCompatible:t,shouldApplyMagneticConnection:o}},vi=e=>{const[t,s]=u.useState(null),[o,n]=u.useState(null),[i,r]=u.useState(!1),l=u.useCallback((g,h,x,y)=>{s({isOpen:!0,nodeId:g,position:h,sourceNodeId:x,sourceHandleId:y})},[]),d=u.useCallback(()=>{s(null)},[]),c=u.useCallback((g,h,x,y,j)=>{r(!0),n({isOpen:!0,sourceNodeId:g,sourceHandleId:x,targetNodeId:h,targetHandleId:y,position:j})},[]),m=u.useCallback(()=>{r(!1),n(null)},[]),f=u.useCallback(()=>{var h,x,y;if(!(t!=null&&t.sourceNodeId))return null;const g=e.find(j=>j.id===t.sourceNodeId);return g?{id:g.id,label:(h=g.data)==null?void 0:h.label,nodeType:(x=g.data)==null?void 0:x.nodeType,connectionType:(y=g.data)==null?void 0:y.connectionType,data:g.data}:null},[t,e]);return{newNodePopup:t,connectionPopup:o,isConnectingExistingNodes:i,openNewNodePopup:l,closeNewNodePopup:d,openConnectionPopup:c,closeConnectionPopup:m,getParentNodeInfo:f,setIsConnectingExistingNodes:r}},_i=({initialNodes:e,initialEdges:t})=>{const[s,o,n]=oe.useNodesState(Et(e)),[i,r,l]=oe.useEdgesState(t),[d,c]=u.useState(!1),m=u.useCallback(B=>{r(B)},[r]),{toObject:f}=oe.useReactFlow(),{findClosestHandles:g,shouldApplyMagneticConnection:h}=wi(),{updateGraphLayout:x,get:y,update:j}=qe(),b=ze(B=>B.activeTemplate),w=ze(B=>B.setActiveTemplate),v=de.useQueryClient(),{removeParentIdFromNodes:N}=ct(),{newNodePopup:L,connectionPopup:O,isConnectingExistingNodes:C,openNewNodePopup:F,closeNewNodePopup:E,openConnectionPopup:X,closeConnectionPopup:U,getParentNodeInfo:z,setIsConnectingExistingNodes:M}=vi(s),{createNodeFromPopup:K,createConnectionFromPopup:I,updateNodeFromPopup:$,updateAfterDeleted:R}=Fs({nodes:s,edges:i,setNodes:o,setEdges:m,newNodePopup:L,connectionPopup:O,closeNewNodePopup:E,closeConnectionPopup:U,setIsConnectingExistingNodes:M});u.useEffect(()=>{if(e&&e.length>0){if(!(e.some((k,T)=>{const Q=s[T];return Q?k.id!==Q.id||JSON.stringify(k.position)!==JSON.stringify(Q.position)||JSON.stringify(k.data)!==JSON.stringify(Q.data):!0})||e.length!==s.filter(k=>{var T;return!((T=k.data)!=null&&T.isInternal)}).length)&&s.length>0)return;const{expandedGroups:P,groupTemplateData:W}=_e.getState(),_=Et(e),S=new Set(_.map(k=>k.id)),q=s.filter(k=>{var T,Q;return((T=k.data)==null?void 0:T.isInternal)&&typeof((Q=k.data)==null?void 0:Q.originalGroupId)=="string"&&P.has(k.data.originalGroupId)&&S.has(k.data.originalGroupId)});if(q.length>0){const k=_.map(T=>{var Q;if(P.has(T.id)){const Z=s.find(re=>re.id===T.id),ae=(Q=Z==null?void 0:Z.data)==null?void 0:Q.expandedDimensions;if(ae)return{...T,style:{...T.style,width:ae.width,height:ae.height},data:{...T.data,isExpanded:!0,expandedDimensions:ae}}}return T});o([...k,...q])}else if(P.size>0){const k=_.map(T=>P.has(T.id)&&W[T.id]?{...T,data:{...T.data,isExpanded:!0,needsReExpansion:!0}}:T);o(k)}else o(_)}else o([])},[e,o]),u.useEffect(()=>{if(!d&&t&&t.length>0){const{expandedGroups:B}=_e.getState(),P=Et(e),W=new Set(P.map(q=>q.id)),_=i.filter(q=>{var k,T;return((k=q.data)==null?void 0:k.isInternal)&&typeof((T=q.data)==null?void 0:T.originalGroupId)=="string"&&B.has(q.data.originalGroupId)&&W.has(q.data.originalGroupId)}),S=i.filter(q=>{var k,T;return((k=q.data)==null?void 0:k.redirectedToInternal)&&typeof((T=q.data)==null?void 0:T.originalTarget)=="string"&&B.has(q.data.originalTarget)&&W.has(q.data.originalTarget)});if(_.length>0||S.length>0){const q=t.filter(k=>!S.some(T=>{var Q;return((Q=T.data)==null?void 0:Q.originalTarget)===k.target}));m([...q,..._,...S])}else m(t)}},[t,m,d]);const V=u.useCallback((B,P,W=!1)=>{const S=i.filter(T=>T.target===P).length>0;if(i.some(T=>T.source===B&&T.target===P||T.source===P&&T.target===B)&&!W)return p.toast.warning("La tarea destino ya tiene una conexión"),!1;const k=!S;return typeof window<"u"&&(window.validConnectionTypes={dependiente:k,hija:k}),k?!0:(p.toast.warning("La tarea destino ya tiene una conexión de entrada"),!1)},[i]),G=u.useCallback(B=>{if(!ui(B.source,B.target))return;tt(B.source)&&!B.sourceHandle&&(B.sourceHandle=Ne.DEFAULT_SOURCE_HANDLE);const P=s.find(_=>_.id===B.source),W=s.find(_=>_.id===B.target);if(P&&W){if(!V(B.source,B.target))return;X(B.source,B.target,B.sourceHandle,B.targetHandle);return}return m(_=>oe.addEdge(B,_))},[s,X,m,V]),D=u.useCallback((B,P)=>{var W;if(!C&&!P.isValid&&P.fromNode){const _=s.find(ae=>ae.id===P.fromNode.id);if((_==null?void 0:_.type)==="group"){p.toast.warning("En una plantilla, no se puede crear una conexión");return}const S=pi(B),q=document.elementFromPoint(S.x,S.y);if(q!=null&&q.closest(".react-flow__node"))return;const k=crypto.randomUUID(),T=((W=P.fromHandle)==null?void 0:W.id)||Ne.DEFAULT_SOURCE_HANDLE,Z=tt(P.fromNode.id)?Ne.DEFAULT_SOURCE_HANDLE:T;F(k,S,P.fromNode.id,Z)}},[C,F,s]),te=u.useCallback(async B=>{var S,q,k;const P=Is(B),W=B.length>0?(q=(S=B[0])==null?void 0:S.data)==null?void 0:q.id:0;m(T=>T.filter(Q=>!P.includes(Q.source)&&!P.includes(Q.target)));let _;for(const T of B)try{const Q=T.data;if((k=Q==null?void 0:Q.plantilla)!=null&&k.id){_=Q.plantilla.id;break}}catch{}try{m(T=>((async()=>{await R(P,T,_,W)})().catch(Q=>{console.error("❌ Error en updateAfterDeleted:",Q)}),T))}catch(T){console.error("❌ Error en onDeleteNode:",T)}},[m,R]),ee=u.useCallback(async B=>{var W,_,S,q,k,T,Q,Z,ae,re,J,se,ce,me;if(!B||B.length===0)return;let P;if(b!=null&&b.id)P=b.id;else for(const ie of B){const ye=s.find(be=>be.id===ie.source),pe=s.find(be=>be.id===ie.target);if(ye!=null&&ye.data&&typeof ye.data=="object"&&"plantilla"in ye.data){const be=ye.data.plantilla;if(be!=null&&be.id){P=be.id;break}}if(pe!=null&&pe.data&&typeof pe.data=="object"&&"plantilla"in pe.data){const be=pe.data.plantilla;if(be!=null&&be.id){P=be.id;break}}}if(!P){console.warn("⚠️ onEdgesDelete - No se pudo obtener templateId");return}try{const ie=await y(P);if(!ie){console.warn("⚠️ onEdgesDelete - Template no encontrado en IndexedDB");return}const ye=B.map(ue=>ue.id),pe=((S=(_=(W=ie.graph_layout)==null?void 0:W.snapshot)==null?void 0:_.edges)==null?void 0:S.filter(ue=>{var he;return!ye.includes(ue.id)&&!((he=ue.data)!=null&&he.isInternal)}))||[],Ae=(((T=(k=(q=ie.graph_layout)==null?void 0:q.snapshot)==null?void 0:k.nodes)==null?void 0:T.filter(ue=>{var he;return!((he=ue.data)!=null&&he.isInternal)&&!ue.parentId}))||[]).map(ue=>{const{style:he,measured:Ie,data:xe,...Be}=ue,{expandedDimensions:Oe,isExpanded:mt,needsReExpansion:Wl,...oa}=xe||{},Js=he?{...he,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0,Zs=ue.data.id===B[0].data.childId?{...oa,tarea_padre:null,id_t_requerida:null}:oa;return{...Be,style:Js,data:Zs}}),we=((Z=(Q=ie.graph_layout)==null?void 0:Q.snapshot)==null?void 0:Z.edges)||[];if(!(JSON.stringify(we)!==JSON.stringify(pe)))return;const ge={...ie,graph_layout:{id:((ae=ie.graph_layout)==null?void 0:ae.id)||0,snapshot:{nodes:Ae,edges:pe,viewport:((J=(re=ie.graph_layout)==null?void 0:re.snapshot)==null?void 0:J.viewport)||{x:0,y:0,zoom:1}},history:((se=ie.graph_layout)==null?void 0:se.history)||[],zoom:((ce=ie.graph_layout)==null?void 0:ce.zoom)||1,position:((me=ie.graph_layout)==null?void 0:me.position)||{x:0,y:0}},estatus:Te.DIRTY,updatedAt:new Date().toISOString()};await N({templateId:P,id:B[0].data.childId}),await j(P,ge),console.log("🗑️ [useFlow] Invalidando caché de la plantilla:",P),await v.invalidateQueries({queryKey:["template",P]}),await v.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlow] Caché invalidado exitosamente"),P===(b==null?void 0:b.id)&&w(ge)}catch(ie){console.error("❌ onEdgesDelete - Error al actualizar template layout:",ie)}},[s,b,y,j,w,N]),A=u.useCallback(async B=>!B.nodes.some(W=>W.type==="start"||W.id===Ne.START_NODE_ID),[]),H=u.useCallback((B,P,W)=>{var k,T,Q;const _=s.find(Z=>Z.id===P.id);if(!_)return;if(_.type==="group"&&((k=_.data)!=null&&k.isExpanded)){m(Z=>Z.map(ae=>{if(ae.hidden&&ae.target===P.id){const{hidden:re,...J}=ae;return J}return ae}));return}let S;if(_.type==="group"?S=b==null?void 0:b.id:(Q=(T=P==null?void 0:P.data)==null?void 0:T.plantilla)!=null&&Q.id&&(S=P.data.plantilla.id),!S)return;const q=i.map(Z=>{var J,se,ce,me,ie;if(At(Z))return Z;const ae=s.find(ye=>ye.id===Z.source),re=s.find(ye=>ye.id===Z.target);if(ae&&re){const ye=ae.type==="group"&&((J=ae.data)==null?void 0:J.isExpanded),pe=re.type==="group"&&((se=re.data)==null?void 0:se.isExpanded),be=(ce=ae.data)==null?void 0:ce.isInternal,Ae=(me=re.data)==null?void 0:me.isInternal,we=(ie=Z.data)==null?void 0:ie.redirectedToInternal;if(ye||pe||be||Ae||we)return Z;if(ae.id===P.id||re.id===P.id||h(ae,re,Ne.MAGNETIC_CONNECTION_DISTANCE)){const ge=g(ae,re);if(ge!=null&&ge.handle1&&(ge!=null&&ge.handle2))return{...Z,sourceHandle:ge.handle1,targetHandle:ge.handle2}}}return Z});if(JSON.stringify(i)!==JSON.stringify(q))m(q),setTimeout(()=>{const Z=f();x(S,Z)},100);else{const Z=f();x(S,Z)}},[s,i,b,x,f,m,g,h]),Y=u.useCallback(B=>{n(B);const P=fi(B);if(P.length>0){const W=P.filter(_=>{var q;const S=s.find(k=>k.id===_);return(S==null?void 0:S.type)==="group"&&((q=S==null?void 0:S.data)==null?void 0:q.isExpanded)});if(W.length>0){m(_=>_.map(S=>{var T;const q=W.includes(S.target),k=!((T=S.data)!=null&&T.redirectedToInternal);return q&&k?{...S,hidden:!0}:S}));return}c(!0),setTimeout(()=>{const _=i.map(q=>{var Q,Z,ae,re;if(At(q))return{...q};const k=s.find(J=>J.id===q.source),T=s.find(J=>J.id===q.target);if(k&&T){const J=k.type==="group"&&((Q=k.data)==null?void 0:Q.isExpanded),se=T.type==="group"&&((Z=T.data)==null?void 0:Z.isExpanded),ce=(ae=k.data)==null?void 0:ae.isInternal,me=(re=T.data)==null?void 0:re.isInternal;if(J||se||ce||me)return{...q};if(h(k,T,Ne.MAGNETIC_CONNECTION_DISTANCE)){const ie=g(k,T);if(ie!=null&&ie.handle1&&(ie!=null&&ie.handle2)&&(q.sourceHandle!==ie.handle1||q.targetHandle!==ie.handle2))return{...q,sourceHandle:ie.handle1,targetHandle:ie.handle2}}}return{...q}});if(i.some((q,k)=>{const T=_[k];return q.sourceHandle!==T.sourceHandle||q.targetHandle!==T.targetHandle})){const q=_.map(k=>({...k,id:k.id}));m(q)}setTimeout(()=>{c(!1)},200)},0)}},[n,i,s,m,g,h,c]);return{nodes:s,edges:i,newNodePopup:L,connectionPopup:O,setNodes:o,setEdges:m,onEdgesChange:l,onConnect:G,onConnectEnd:D,onDeleteNode:te,onEdgesDelete:ee,onBeforeDelete:A,handleNodesChange:Y,onDragEnd:H,getParentNodeInfo:z,isProtectedConnection:At,isStartNode:tt,createNodeFromPopup:K,updateNodeFromPopup:$,closeNewNodePopup:E,createConnectionFromPopup:I,closeConnectionPopup:U}},Ti=({isOpen:e,onClose:t,createConnectionFromPopup:s,availableConnections:o})=>{if(!e)return null;const n=o||{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}},i=(r,l)=>{(r==="tarea"?n.tarea[l]:n.plantilla[l])&&s(r,l)};return a.jsx(a.Fragment,{children:a.jsxs("div",{className:"tm-fixed tm-inset-0 tm-z-50 tm-flex tm-items-center tm-justify-center",children:[a.jsx("div",{className:"tm-bg-black/20 tm-absolute tm-inset-0",onClick:t}),a.jsx("div",{className:"tm-shadow-lg tm-border-default tm-border-1 tm-relative tm-rounded-lg tm-bg-surface-default tm-p-4",children:a.jsx("div",{children:a.jsxs(p.List,{children:[a.jsx("p",{className:"tm-text-sm tm-px-4 tm-font-medium tm-text-neutral-300",children:"Tarea"}),a.jsxs(p.ListItem,{icon:le.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("tarea","dependiente"),children:["Dependiente ",!n.tarea.dependiente&&"(No disponible)"]}),a.jsxs(p.ListItem,{icon:le.faArrowDownRight,iconColor:"neutral",onClick:()=>i("tarea","hija"),children:["Hija ",!n.tarea.hija&&"(No disponible)"]}),a.jsx(p.ListSeparator,{}),a.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Flujo de trabajo"}),a.jsxs(p.ListItem,{icon:le.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("plantilla","dependiente"),children:["Dependiente ",!n.plantilla.dependiente&&"(No disponible)"]})]})})})]})})},Ni=({data:e,id:t,selected:s})=>{const{expandedGroups:o}=_e(),[n,i]=u.useState(!1),r=u.useRef(!1);u.useEffect(()=>{const f=(e==null?void 0:e.needsReExpansion)&&o.has(t),g=(e==null?void 0:e.templateId)||(e==null?void 0:e.id);if(f&&g&&!r.current){r.current=!0;const x=_e.getState().expandGroup;x&&x(t,g).catch(y=>{console.error("Error al re-expandir grupo:",y),r.current=!1})}o.has(t)||(r.current=!1)},[e,t,o]);const l=async f=>{f.preventDefault(),f.stopPropagation();const g=(e==null?void 0:e.templateId)||(e==null?void 0:e.id);if(g){i(!0);try{const h=_e.getState(),x=h.expandGroup,y=h.collapseGroup,j=o.has(t);j&&y?y(t):!j&&x&&await x(t,g)}catch{}finally{i(!1)}}},d=o.has(t),c=e==null?void 0:e.expandedDimensions,m=d&&c?{width:c.width,height:c.height,minWidth:c.width,minHeight:c.height}:{minWidth:268,minHeight:80};return a.jsxs("div",{className:`tm-rounded-lg tm-shadow-02 tm-bg-surface-default tm-relative tm-transition-all tm-duration-200 ${s?"tm-border-1 tm-border-brand tm-shadow-02 tm-ring-2 tm-ring-brand-default tm-ring-opacity-50":d?"tm-border-2 tm-border-brand tm-shadow-02":"tm-border-2 tm-border-default"}`,style:m,children:[a.jsx(dt,{isLoading:n}),a.jsx(oe.Handle,{id:"top-target",type:"target",position:oe.Position.Top,className:`tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default ${d?"tm-opacity-0 tm-pointer-events-none":""}`,isConnectable:!d}),a.jsx(oe.Handle,{id:"right-target",type:"target",className:`tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default ${d?"tm-opacity-0 tm-pointer-events-none":""}`,position:oe.Position.Right,isConnectable:!d}),a.jsx(oe.Handle,{id:"bottom-target",type:"target",className:`tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default ${d?"tm-opacity-0 tm-pointer-events-none":""}`,position:oe.Position.Bottom,isConnectable:!d}),a.jsx(oe.Handle,{id:"left-target",type:"target",className:`tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default ${d?"tm-opacity-0 tm-pointer-events-none":""}`,position:oe.Position.Left,isConnectable:!d}),!d&&a.jsxs("div",{className:"tm-flex tm-justify-between tm-gap-x-8 tm-p-16",children:[a.jsx(p.Icon,{name:le.faChartDiagram,color:"brand",size:"lg"}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:[a.jsx("p",{className:"tm-text-primary tm-font-bold tm-leading-none tm-text-body-lg-regular tm-truncate tm-tracking-wider",children:e.clave||e.nombre_plantilla||"N/A"}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-4",children:[a.jsx(p.Badge,{size:"sm",theme:"soft",color:e.estatus==="published"?"success":"warning",label:e.estatus==="published"?"Publicado":"Borrador"}),e.updatedAt&&a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-semibold",children:new Date(e.updatedAt).toLocaleDateString("es-ES")})]})]}),a.jsx("div",{children:a.jsx(p.Button,{size:"sm",color:"secondary",pill:"pill",onClick:l,disabled:n,className:`tm-p-2 ${n?"tm-opacity-50":""} nopan nodrag`,icon:d?Ee.faCompress:Ee.faExpand})})]})]})},Ci=(e,t,s,o)=>{const n=u.useRef(e),i=u.useRef(t);u.useEffect(()=>{n.current=e},[e]),u.useEffect(()=>{i.current=t},[t]);const{expandedGroups:r,groupTemplateData:l,toggleGroupExpansion:d,setGroupTemplateData:c,clearGroupTemplateData:m}=_e(),f=de.useQueryClient(),{getTemplateWithTasks:g}=_s(),{hydrateTasks:h}=Cs(),x=u.useCallback(async(w,v)=>{var N,L,O,C;try{await f.invalidateQueries({queryKey:["template",v]});const F=await g(v),E=(O=(L=(N=F==null?void 0:F.graph_layout)==null?void 0:N.snapshot)==null?void 0:L.nodes)==null?void 0:O.filter(T=>{var Q,Z;return((Q=T.data)==null?void 0:Q.isInternal)||T.parentId||((Z=T.id)==null?void 0:Z.includes("-internal-"))});if(E&&E.length>0&&console.warn("⚠️ [expandGroup] Nodos sospechosos en API para plantilla",v,":",E),!((C=F==null?void 0:F.graph_layout)!=null&&C.snapshot))throw new Error(`No se encontraron datos de graph_layout en la plantilla: ${v}`);const X=F.graph_layout.snapshot.nodes||[],U=X.filter(T=>{var J,se;const Q=(J=T.data)==null?void 0:J.isInternal,Z=!!T.parentId,ae=(se=T.id)==null?void 0:se.includes("-internal-"),re=Q||Z||ae;return re&&console.warn("🗑️ [expandGroup] Filtrando nodo corrupto:",{id:T.id,type:T.type,esInterno:Q,tieneParentId:Z,tieneInternalEnId:ae}),!re}),z={...F,graph_layout:{...F.graph_layout,snapshot:{...F.graph_layout.snapshot,nodes:U,edges:(F.graph_layout.snapshot.edges||[]).filter(T=>{var Q,Z;return!((Q=T.data)!=null&&Q.isInternal)&&!((Z=T.id)!=null&&Z.includes("-internal-"))})}}},M=X.length-U.length;M>0?console.warn(`⚠️ [expandGroup] Se filtraron ${M} nodos internos corruptos de la BD para plantilla ${v}`):console.log(`✅ [expandGroup] No se encontraron nodos corruptos en plantilla ${v}`);const K=await h(z),I={...z,hydratedNodes:K,nodes:K||z.graph_layout.snapshot.nodes||[],edges:z.graph_layout.snapshot.edges||[]},$=I.nodes,R=I.edges;if(!$||!R){console.error("❌ No se encontraron nodos o edges en la plantilla:",v);return}c(w,{nodes:$,edges:R,viewport:I.graph_layout.snapshot.viewport||{x:0,y:0,zoom:1}});const V=n.current.find(T=>T.id===w);if(!V){console.error("❌ No se encontró el nodo grupo:",w);return}const G=$.filter(T=>T.id!==w);let D=1/0,te=1/0,ee=-1/0,A=-1/0;G.forEach(T=>{var ie,ye,pe,be,Ae,we;const Q=((ie=T.position)==null?void 0:ie.x)||0,Z=((ye=T.position)==null?void 0:ye.y)||0,ae=typeof((pe=T.style)==null?void 0:pe.width)=="number"?T.style.width:((be=T.measured)==null?void 0:be.width)||268,re=typeof((Ae=T.style)==null?void 0:Ae.height)=="number"?T.style.height:((we=T.measured)==null?void 0:we.height)||111,J=Q-ae/2,se=Q+ae/2,ce=Z,me=Z+re;D=Math.min(D,J),te=Math.min(te,ce),ee=Math.max(ee,se),A=Math.max(A,me)});const H=80,Y=60,B=ee-D,P=A-te,W=B+H*2,_=P+H*2+Y,S=$.map(T=>{var me,ie;if(T.id===w)return null;const Q=((me=T.position)==null?void 0:me.x)||0,Z=((ie=T.position)==null?void 0:ie.y)||0,ae=Q-D+H,re=Z-te+H+Y,J=T.type==="start"||T.id==="start",se=J?{...T.data,estatus:V.data.estatus,updatedAt:V.data.updatedAt,createdAt:V.data.createdAt,isInternal:!0,originalGroupId:w,originalNodeId:T.id}:{...T.data,isInternal:!0,originalGroupId:w,originalNodeId:T.id};return{...T,id:`${w}-internal-${T.id}`,parentId:w,extent:"parent",type:T.type==="group"?"main":T.type,position:{x:ae,y:re},style:{...T.style},data:se,draggable:!1,selectable:J,selected:!1,deletable:!1,connectable:!1,focusable:J,zIndex:999}}).filter(Boolean),q=R.map(T=>{const Q=S.some(re=>re&&re.id===`${w}-internal-${T.source}`),Z=S.some(re=>re&&re.id===`${w}-internal-${T.target}`);return!Q||!Z?null:{...T,id:`${w}-internal-${T.id}`,source:`${w}-internal-${T.source}`,target:`${w}-internal-${T.target}`,style:{...T.style},data:{...T.data,isInternal:!0,originalGroupId:w}}}).filter(Boolean),k=S.find(T=>{var Q;return T&&((Q=T.data)==null?void 0:Q.originalNodeId)==="start"});k&&o(T=>T.map(Q=>Q.target===w?{...Q,target:k.id,targetHandle:"top-target",data:{...Q.data,redirectedToInternal:!0,originalTarget:w,originalTargetHandle:Q.targetHandle}}:Q)),d(w),s(T=>[...T.map(Z=>{if(Z.id===w){const{needsReExpansion:ae,...re}=Z.data||{};return{...Z,style:{...Z.style,width:W,height:_},data:{...re,isExpanded:!0,expandedDimensions:{width:W,height:_}},zIndex:1e3}}return Z}),...S]),o(T=>[...T,...q])}catch(F){console.error("❌ Error al expandir el grupo:",F)}},[f,g,h,c,d,s,o]),y=u.useCallback(w=>{var E,X;const v=n.current,N=i.current,L=v.find(U=>U.id===w),O=((E=L==null?void 0:L.data)==null?void 0:E.templateId)||((X=L==null?void 0:L.data)==null?void 0:X.id),C=v.filter(U=>!U.id.startsWith(`${w}-internal-`)&&U.parentId!==w).map(U=>U.id===w?{...U,style:{...U.style,width:void 0,height:void 0},data:{...U.data,isExpanded:!1,expandedDimensions:void 0},zIndex:void 0}:U),F=N.filter(U=>!U.id.startsWith(`${w}-internal-`)).map(U=>{var z,M;if((z=U.data)!=null&&z.redirectedToInternal&&((M=U.data)==null?void 0:M.originalTarget)===w){const{redirectedToInternal:K,originalTarget:I,originalTargetHandle:$,...R}=U.data;return{...U,target:w,targetHandle:$||U.targetHandle,data:R}}return U});s(C),o(F),d(w),m(w),O&&f.invalidateQueries({queryKey:["template",O]})},[s,o,d,m,f]),j=u.useCallback(async(w,v)=>{r.has(w)?y(w):await x(w,v)},[r,x,y]),b=u.useCallback(w=>r.has(w),[r]);return{expandGroup:x,collapseGroup:y,toggleGroup:j,isGroupExpanded:b,groupTemplateData:l}},Si=()=>{const{getNodes:e,setNodes:t,screenToFlowPosition:s,setCenter:o}=oe.useReactFlow(),{copiedNodes:n,setCopiedNodes:i,getViewMode:r}=_e(),{activeTemplate:l,setActiveTemplate:d}=ze(),{updateGraphLayout:c,get:m,update:f}=qe(),g=l!=null&&l.id?r(l.id):"readonly",h=u.useCallback(()=>`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,[]),x=u.useCallback(()=>e().filter(C=>C.selected).filter(C=>!(C.type==="start"||C.id==="start"||C.type==="group")),[e]),y=u.useCallback(()=>{if(g==="readonly"){p.toast.error("No puedes copiar tareas en modo solo lectura");return}if(!l){p.toast.error("No hay una plantilla activa");return}const N=x();if(N.length===0){const O=e().filter(C=>C.selected);if(O.length>0){const C=O.some(E=>E.type==="group"),F=O.some(E=>E.type==="start"||E.id==="start");C?p.toast.error("Las plantillas conectadas no pueden ser copiadas"):F&&p.toast.error("El nodo de inicio no puede ser copiado")}else p.toast.error("No hay tareas seleccionadas para copiar");return}const L=N.map(O=>{const{selected:C,...F}=O;return{...F,data:{...F.data,_originalTemplateId:l.id}}});i(L),p.toast.success(`${N.length} ${N.length===1?"tarea copiada":"tareas copiadas"} con éxito`)},[g,l,x,e,i]),j=u.useCallback(async N=>{if(g==="readonly"){p.toast.error("No puedes pegar tareas en modo solo lectura");return}if(!l){p.toast.error("No hay una plantilla activa");return}if(n.length===0){p.toast.error("No hay tareas copiadas para pegar");return}const L=e();let O={x:0,y:0};if(N)O=s({x:N.x,y:N.y});else if(L.length>0){const M=L.reduce((I,$)=>I+$.position.x,0)/L.length,K=L.reduce((I,$)=>I+$.position.y,0)/L.length;O={x:M+50,y:K+100}}const C=n[0],F=O.x-C.position.x,E=O.y-C.position.y,X=n.map((M,K)=>{const I=h(),$=-(Date.now()+K),R=M.data.plantilla&&typeof M.data.plantilla=="object"?{...M.data.plantilla,id:l.id}:{id:l.id},{id:V,...G}=M.data,D={...G,id:$,reference_graph:I,plantilla:R,parent:{data:{id:null}},_originalTemplateId:void 0};return{...M,id:I,position:{x:M.position.x+F,y:M.position.y+E},data:D,selected:!0}}),z=[...L.map(M=>({...M,selected:!1})),...X];if(t(z),l.id)try{const M=await m(l.id);if(!M)return;const K=X.filter($=>$.type!=="start"&&$.type!=="group").map($=>{const R=$.data;return{id:R.id,reference_graph:$.id,nombre:R.nombre||R.texto_corto||"Tarea sin nombre",texto_corto:R.texto_corto||"",texto_largo:R.texto_largo||"",prioridad:R.prioridad??0,nivel_dificultad:R.nivel_dificultad??0,dias_duracion:R.dias_duracion??0,plantilla:{id:l.id},parent:{data:{id:null}},tareas:[],plantilla_dependents:R.plantilla_dependents||[],start:R.start||!1,is_monitoring_trigger:R.is_monitoring_trigger??!1,es_grupo:R.es_grupo||!1,optional:R.optional||!1,subtask_completadas:R.subtask_completadas||0,subtask_totales:R.subtask_totales||0}}),I={...M,tarea_plantillas:[...M.tarea_plantillas,...K],estatus:"dirty",updatedAt:new Date().toISOString()};await f(l.id,I),d(I),setTimeout(async()=>{await c(l.id,{nodes:z,edges:[]})},50)}catch(M){console.error("Error al actualizar template en IndexedDB:",M)}if(X.length>0){const M=X.reduce((I,$)=>I+$.position.x,0)/X.length,K=X.reduce((I,$)=>I+$.position.y,0)/X.length;o(M,K,{zoom:1,duration:800})}p.toast.success(`${X.length} ${X.length===1?"tarea pegada":"tareas pegadas"} con éxito`)},[g,l,n,e,t,s,o,h,c,m,f,d]),b=u.useCallback(()=>n.length>0,[n]),v=x().length>0;return{handleCopy:y,handlePaste:j,hasCopiedNodes:b,hasSelectableNodes:v,copiedNodesCount:n.length}},Ei={main:gi,plus:xi,start:ji,group:Ni},Ai=[.5,0],Pi=({initialNodes:e,initialEdges:t,debugEvents:s=!1})=>{var we,$e;const o=u.useRef(null),{nodes:n,edges:i,onEdgesChange:r,onConnect:l,onConnectEnd:d,onBeforeDelete:c,onDeleteNode:m,onEdgesDelete:f,handleNodesChange:g,newNodePopup:h,getParentNodeInfo:x,createNodeFromPopup:y,closeNewNodePopup:j,connectionPopup:b,createConnectionFromPopup:w,closeConnectionPopup:v,onDragEnd:N,setNodes:L,setEdges:O}=_i({initialNodes:e,initialEdges:t}),{expandGroup:C,collapseGroup:F}=Ci(n,i,L,O),{handleCopy:E,handlePaste:X,hasCopiedNodes:U,copiedNodesCount:z}=Si();u.useEffect(()=>{if(!s)return;const ge=xe=>{console.log("🔍 [DEBUG] KeyDown:",{key:xe.key,code:xe.code,shiftKey:xe.shiftKey,ctrlKey:xe.ctrlKey,metaKey:xe.metaKey,altKey:xe.altKey,target:xe.target,defaultPrevented:xe.defaultPrevented,bubbles:xe.bubbles,timestamp:new Date().toISOString()})},ue=xe=>{console.log("🔍 [DEBUG] KeyUp:",{key:xe.key,code:xe.code,shiftKey:xe.shiftKey,timestamp:new Date().toISOString()})},he=xe=>{var Be,Oe;console.log("🔍 [DEBUG] Click:",{button:xe.button,shiftKey:xe.shiftKey,ctrlKey:xe.ctrlKey,metaKey:xe.metaKey,altKey:xe.altKey,target:(Be=xe.target)==null?void 0:Be.tagName,targetClass:(Oe=xe.target)==null?void 0:Oe.className,defaultPrevented:xe.defaultPrevented,bubbles:xe.bubbles,timestamp:new Date().toISOString()})},Ie=xe=>{console.log("🔍 [DEBUG] MouseDown:",{button:xe.button,shiftKey:xe.shiftKey,ctrlKey:xe.ctrlKey,metaKey:xe.metaKey,defaultPrevented:xe.defaultPrevented,timestamp:new Date().toISOString()})};return document.addEventListener("keydown",ge,!0),document.addEventListener("keyup",ue,!0),document.addEventListener("click",he,!0),document.addEventListener("mousedown",Ie,!0),console.log("🔍 [DEBUG] Event listeners activados. Presiona Shift + Click en un nodo para ver los eventos."),()=>{document.removeEventListener("keydown",ge,!0),document.removeEventListener("keyup",ue,!0),document.removeEventListener("click",he,!0),document.removeEventListener("mousedown",Ie,!0),console.log("🔍 [DEBUG] Event listeners desactivados.")}},[s]);const K=n.filter(ge=>!(!ge.selected||ge.type==="start"||ge.id==="start"||ge.type==="group")).length,I=K>0,$=u.useRef(C),R=u.useRef(F);u.useEffect(()=>{$.current=C,R.current=F},[C,F]),u.useEffect(()=>{const ge=async(he,Ie)=>{$.current&&await $.current(he,Ie)},ue=he=>{R.current&&R.current(he)};_e.setState({expandGroup:ge,collapseGroup:ue})},[]);const{getViewMode:V,setFlowViewportForTemplate:G}=_e(),{activeTemplate:D}=ze(),te=(D==null?void 0:D.id)??null,ee=_e(ge=>te!=null?ge.flowViewportByTemplateId[te]:void 0),A=u.useMemo(()=>{var ue,he;if(te==null)return;if(ee)return ee;const ge=(he=(ue=D==null?void 0:D.graph_layout)==null?void 0:ue.snapshot)==null?void 0:he.viewport;if(ge&&typeof ge.x=="number"&&typeof ge.y=="number"&&typeof ge.zoom=="number")return{x:ge.x,y:ge.y,zoom:ge.zoom}},[te,ee,($e=(we=D==null?void 0:D.graph_layout)==null?void 0:we.snapshot)==null?void 0:$e.viewport]),H=u.useCallback((ge,ue)=>{te!=null&&G(te,ue)},[te,G]),{zoomPercentage:Y,handleZoomIn:B,handleZoomOut:P,handleZoomTo100:W,handleDoubleClick:_}=yi({reactFlowWrapper:o,nodes:n,resetZoomHistoryKey:te}),q=(D!=null&&D.id?V(D.id):"readonly")==="readonly";u.useEffect(()=>{if(q)return;const ge=ue=>{const he=ue.target;he.tagName==="INPUT"||he.tagName==="TEXTAREA"||he.isContentEditable||((ue.ctrlKey||ue.metaKey)&&ue.key==="c"&&(ue.preventDefault(),E()),(ue.ctrlKey||ue.metaKey)&&ue.key==="v"&&(ue.preventDefault(),X()))};return document.addEventListener("keydown",ge),()=>{document.removeEventListener("keydown",ge)}},[E,X,q]);const k=u.useCallback((ge,ue)=>{const he=ge.target;he.tagName==="BUTTON"||he.closest("button")||he.closest('[role="button"]')||he.classList.contains("nopan")||he.classList.contains("nodrag")},[]),T=u.useCallback(ge=>{const ue=ge.filter(he=>{var Ie,xe;if(he.type==="position"&&he.dragging===!1){const Be=n.find(Oe=>Oe.id===he.id);if(Be&&he.position){const Oe=Math.abs((he.position.x||0)-(((Ie=Be.position)==null?void 0:Ie.x)||0)),mt=Math.abs((he.position.y||0)-(((xe=Be.position)==null?void 0:xe.y)||0));if(Oe<3&&mt<3)return!1}}return!0});ue.length>0&&g(ue)},[g,n]),Q=q?void 0:r,Z=q?void 0:T,ae=q?void 0:l,re=q?void 0:d,J=q?void 0:c,se=q?void 0:N,ce=q?void 0:m,me=q?void 0:f,ie=q?null:["Backspace","Delete"],be=q?{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},Ae=()=>{if(b)return{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}}};return a.jsxs("div",{className:"wrapper",ref:o,style:{width:"100%",height:"100vh"},children:[a.jsxs(oe.ReactFlow,{nodes:n,edges:i,nodeTypes:Ei,onEdgesChange:Q,onNodesChange:Z,onConnect:ae,onConnectEnd:re,onBeforeDelete:J,onNodeDragStop:se,onNodesDelete:ce,onEdgesDelete:me,onNodeClick:k,onMoveEnd:H,...be,...A?{defaultViewport:A,fitView:!1}:{fitView:!0,fitViewOptions:{padding:2}},nodeOrigin:Ai,defaultEdgeOptions:{type:"smoothstep"},connectionLineType:oe.ConnectionLineType.SmoothStep,deleteKeyCode:ie,multiSelectionKeyCode:q?null:"Shift",selectionOnDrag:!1,panOnDrag:q?!0:[0],nodeClickDistance:15,selectNodesOnDrag:!1,nodeDragThreshold:10,autoPanOnNodeDrag:!1,autoPanOnConnect:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",children:[a.jsx(oe.Background,{}),!q&&a.jsx(oe.Panel,{position:"bottom-left",className:"tm-m-0",children:a.jsxs("div",{className:"tm-bg-surface-default tm-border tm-border-black-light tm-rounded-lg tm-p-3 tm-shadow-02 tm-text-sm tm-text-neutral-500",children:[a.jsx("div",{className:"tm-font-semibold tm-text-neutral-900 tm-mb-2",children:"Atajos de teclado"}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-1",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"Shift"}),a.jsx("span",{children:"+ clic para seleccionar múltiples tareas"})]}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"Ctrl"}),a.jsx("span",{children:"+"}),a.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"C"}),a.jsx("span",{children:"Copiar"})]}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"Ctrl"}),a.jsx("span",{children:"+"}),a.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"V"}),a.jsx("span",{children:"Ppegar"})]})]})]})}),a.jsx(oe.Panel,{position:"top-left",className:"tm-m-0",children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-2",children:[a.jsxs("div",{children:[D.estatusFromStrapi===Pe.PUBLISHED&&a.jsx(p.Tag,{color:"success",label:"Publicado"}),D.estatusFromStrapi===Pe.DRAFT&&a.jsx(p.Tag,{color:"warning",label:"Borrador"})]}),!q&&K>0&&a.jsxs("p",{className:"tm-text-blue-dark-500 tm-text-xs tm-font-medium",children:[K," ",K===1?"tarea seleccionada":"tareas seleccionadas"]})]})}),a.jsx(oe.Panel,{position:"top-right",className:"tm-m-0",children:a.jsxs("div",{className:"tm-flex tm-gap-4",children:[!q&&a.jsxs(p.ButtonGroup,{children:[a.jsxs(p.Button,{leftSlot:le.faCopy,onClick:E,disabled:!I,size:"xxs",color:I?"primary":"secondary",title:I?`Copiar ${K} ${K===1?"tarea":"tareas"} (Ctrl+C)`:"Selecciona tareas para copiar (mantén Shift y haz clic)",children:["Copiar ",K>0&&`(${K})`]}),a.jsxs(p.Button,{leftSlot:le.faFile,size:"xxs",onClick:()=>X(),disabled:!U(),color:U()?"primary":"secondary",title:U()?`Pegar ${z} ${z===1?"tarea":"tareas"} (Ctrl+V)`:"No hay tareas copiadas",children:["Pegar ",z>0&&`(${z})`]})]}),a.jsxs(p.ButtonGroup,{color:"secondary",size:"xxs",children:[a.jsx(p.Button,{icon:le.faMinus,onClick:P,color:"secondary"}),a.jsxs(p.Button,{onClick:W,onDoubleClick:_,color:"secondary",children:[Y,"%"]}),a.jsx(p.Button,{icon:le.faPlus,onClick:B})]})]})})]},te??"flow-none"),h&&a.jsx(bi,{isOpen:h.isOpen,position:h.position,onClose:j,createNodeFromPopup:y,parentNodeInfo:x()}),b&&a.jsx(Ti,{isOpen:b.isOpen,onClose:v,createConnectionFromPopup:w,availableConnections:Ae()})]})},Di=({initialNodes:e,initialEdges:t,debugEvents:s})=>a.jsx(oe.ReactFlowProvider,{children:a.jsx(Pi,{initialNodes:e,initialEdges:t,debugEvents:s})}),lt=We.create(e=>({step:1,setStep:t=>e({step:t}),reset:()=>e({step:1})})),Ii=({limit:e})=>{const t=lt(r=>r.step),s=lt(r=>r.setStep),o=u.useCallback(()=>{t<e&&s(t+1)},[t,s,e]),n=u.useCallback(()=>{t>1&&t<=e&&s(t-1)},[t,s,e]),i=u.useCallback(r=>{r>0&&r<=e&&s(r)},[s,e]);return u.useMemo(()=>({step:t,nextStep:o,prevStep:n,onStepChange:i}),[t,o,n,i])},Ia=["fase_plantilla","tipo_plantilla","categoria","tipo_medio","medio_especifico","pertenencia_medio","ubicacion_medio","responsable_impresion"],Fa=["fase_plantilla","modo_configuracion","tipo_medio","formato_salida"],Ma=["tipo_medio","formato_salida","medio_especifico"],ka={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"]}}},La={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 aa(e){const[t,s]=u.useState([]),[o,n]=u.useState({}),{setClaveParams:i,templateFormData:r,setTemplateFormData:l,resetTemplateFormData:d,setDisableField:c,setClave:m,claveParams:f,setParamTipo:g}=Le(),{tasks_api:h}=fe(),x=lt(A=>A.step),{data:y,error:j,isSuccess:b,isError:w}=de.useQuery({queryKey:["paramsTipoPlantilla"],queryFn:async()=>{const A=De.stringify({populate:{params_plantillas:{fields:["id","abbreviation","name","active","tipomedio_nombre","reference_id"]}},sort:["order:asc"],fields:["id","step","key","label","order"]},{encodeValuesOnly:!0}),H=await h.get(`/api/params-tipos?${A}`);return H.data?{paramsTiposPlantilla:je(H.data.data)}:{paramsTiposPlantilla:[]}},refetchOnWindowFocus:!1});u.useEffect(()=>{j&&w&&console.log(j)},[j,w]),u.useEffect(()=>{if(y&&b){const A=y.paramsTiposPlantilla;s(A)}},[y,b]);const v={fase_plantilla:(A,H)=>{l({fase_plantilla:A}),g({fase_plantilla:H})},tipo_plantilla:(A,H)=>{l({tipo_plantilla:A}),g({tipo_plantilla:H})},modo_configuracion:(A,H)=>{l({modo_configuracion:A}),g({modo_configuracion:H})},categoria:(A,H)=>{l({categoria:A}),g({categoria:H})},formato_salida:(A,H)=>{l({formato_salida:A}),g({formato_salida:H})},tipo_medio:(A,H)=>{l({tipo_medio:A}),g({tipo_medio:H})},medio_especifico:(A,H)=>{l({medio_especifico:A}),g({medio_especifico:H})},responsable_impresion:(A,H)=>{l({responsable_impresion:A}),g({responsable_impresion:H})},pertenencia_medio:(A,H)=>{l({pertenencia_medio:A}),g({pertenencia_medio:H})},ubicacion_medio:(A,H)=>{l({ubicacion_medio:A}),g({ubicacion_medio:H})}},N={fase_plantilla:(A,H)=>i({field:A,value:H}),tipo_plantilla:(A,H)=>i({field:A,value:H}),categoria:(A,H)=>i({field:A,value:H}),tipo_medio:(A,H)=>i({field:A,value:H}),medio_especifico:(A,H)=>i({field:A,value:H}),responsable_impresion:(A,H)=>i({field:A,value:H}),pertenencia_medio:(A,H)=>i({field:A,value:H}),ubicacion_medio:(A,H)=>i({field:A,value:H})},L={Digital:{execute:()=>{const A=t.filter(B=>B.step===3).find(B=>B.key==="responsable_impresion").params_plantillas.find(B=>B.name==="N/A").id,H="step3.responsable_impresion",Y=["responsable_impresion"];l({responsable_impresion:"N/A"}),e(H,A),c({fields:Y,value:!0}),i({field:"responsable_impresion",value:"NA"})}},Impreso:{execute:()=>{const A="step3.responsable_impresion",H=["responsable_impresion"];l({responsable_impresion:""}),e(A,""),c({fields:H,value:!1}),i({field:"responsable_impresion",value:""})}}},O={"Sitios Fijos":{execute:()=>z()},"Vallas Móviles":{execute:()=>M()},Indoors:{execute:()=>z()},Camiones:{execute:()=>K()},"Brand Riders":{execute:()=>K()}},C={"Sitios Fijos":{execute:()=>U()},"Vallas Móviles":{execute:()=>U()},Indoors:{execute:()=>U()},Camiones:{execute:()=>{X(),L.Impreso.execute()}},"Brand Riders":{execute:()=>{X(),L.Impreso.execute()}}},F={"Sitios Fijos":{execute:()=>E()},"Vallas Móviles":{execute:()=>X()},Indoors:{execute:()=>E()},Camiones:{execute:()=>X()},"Brand Riders":{execute:()=>X()}},E=()=>{const A=["medio_especifico"],H=r.modo_configuracion,Y=`step${x}.medio_especifico`,B=`step${x}.formato_salida`;c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0}),c(H==="Default"?{fields:A,value:!0}:{fields:A,value:!1}),l({medio_especifico:""}),l({formato_salida:""}),e(Y,""),e(B,""),i({field:"medio_especifico",value:""}),i({field:"formato_salida",value:""})},X=()=>{const A=t.filter(W=>W.step===x).find(W=>W.key==="formato_salida").params_plantillas.find(W=>W.name==="Impreso").id;c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0});const Y=`step${x}.formato_salida`,B=["formato_salida","medio_especifico"],P=`step${x}.medio_especifico`;l({medio_especifico:""}),l({formato_salida:"Impreso"}),e(Y,A),e(P,""),i({field:"medio_especifico",value:""}),i({field:"tipo_medio",value:r.tipo_medio}),c({fields:B,value:!0})},U=()=>{const A=["formato_salida"],H=`step${x}.formato_salida`,Y={};Y.formato_salida="",l(Y),e(H,""),c({fields:A,value:!1})},z=()=>{const A=["formato_salida","medio_especifico"],H=`step${x}.formato_salida`,Y={};Y.formato_salida="",l(Y),e(H,""),c({fields:A,value:!1})},M=()=>{const A=["formato_salida"],H=["medio_especifico"],Y=`step${x}.formato_salida`,B=`step${x}.medio_especifico`,P={};P.formato_salida="",P.medio_especifico="",l(P),e(Y,""),e(B,""),c({fields:A,value:!1}),c({fields:H,value:!0})},K=()=>{const A=t.filter(P=>P.step===x).find(P=>P.key==="formato_salida").params_plantillas.find(P=>P.name==="Impreso").id,H=`step${x}.formato_salida`,Y=`step${x}.medio_especifico`,B=["formato_salida","medio_especifico"];l({formato_salida:"Impreso"}),e(H,A),e(Y,""),c({fields:B,value:!0}),L.Impreso.execute()},I=(A,H)=>{Object.keys(ka).includes(A)&&ka[A][H].fieldsToClear.forEach(P=>{const W={};W[P]="",l(W),i({field:P,value:""}),e&&[...new Set(t.map(S=>S.step))].forEach(S=>{const q=`step${S}.${P}`;e(q,"")})})},$=(A,H,Y)=>A==="modo_configuracion"&&Y?La[A][Y][H].fieldsToEnableDisable:La[A][H].fieldsToEnableDisable,R=A=>t.filter(H=>H.step===A),V=A=>{var H;return o[A]||((H=t.find(Y=>Y.key===A))==null?void 0:H.params_plantillas)},G=(A,H)=>{var B,P,W,_;let Y=[];A==="Sitios Fijos"?H==="Preventa"?Y=(B=t.find(S=>S.key==="medio_especifico"))==null?void 0:B.params_plantillas.filter(S=>S.tipomedio_nombre==="OOH"&&S.name==="PANTALLA DIGITAL"):H==="Venta"&&(Y=(P=t.find(S=>S.key==="medio_especifico"))==null?void 0:P.params_plantillas.filter(S=>S.tipomedio_nombre==="OOH")):A==="Indoors"?Y=(W=t.find(S=>S.key==="medio_especifico"))==null?void 0:W.params_plantillas.filter(S=>S.tipomedio_nombre==="InDoor"):Y=(_=t.find(S=>S.key==="medio_especifico"))==null?void 0:_.params_plantillas,n(S=>({...S,medio_especifico:Y}))},D=(A,H)=>{const Y=A.key;if(Ma.includes(Y)&&Y==="tipo_medio"){const B=H.label,P=r.fase_plantilla,W=r.modo_configuracion;if(P==="Preventa"){G(B,P);return}else if(W==="Especifico"){G(B,P);return}}},te=(A,H,Y)=>{const B=A.params_plantillas.find(P=>A.key==="categoria"?P.reference_id===H.value:P.id===H.value);if(B){const P=A.key,W=H.label;if(v[P](W,Y),Fa.includes(P))if(I(P,W),P==="fase_plantilla"){const _=W,S=$(P,_);c({fields:["categoria","modo_configuracion","tipo_plantilla"],value:!0}),S.length>0&&c({fields:S,value:!1}),_==="Preventa"&&c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(P==="modo_configuracion"){const _=W,S=r.fase_plantilla,q=$(P,_,S);c({fields:["medio_especifico","formato_salida"],value:!0}),q.length>0&&c({fields:q,value:!1}),S==="Preventa"&&c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(P==="tipo_medio"){const _=W,S=r.modo_configuracion;r.fase_plantilla==="Venta"?S==="Especifico"?O[_].execute():C[_].execute():F[_].execute()}else if(P==="formato_salida")L[W].execute();else{const _=$(P,W);_.length>0&&c({fields:_,value:!1})}if(Ia.includes(P)){let _="",S="";if(P==="formato_salida"){const q=r.modo_configuracion,k=W;S="tipo_medio",_=q==="Default"&&k==="Digital"?_="DDG":_="DRP"}else S=P,_=B.abbreviation;N[S](S,_)}Ma.includes(P)&&D(A,H)}},ee=()=>{if(r){const A=r.fase_plantilla;if(A==="Preventa"){const H=r.modo_configuracion,Y=f.fase_plantilla||"XX";let B=null;if(H==="Default")B=f.tipo_medio||"XXX";else{const W=r.tipo_medio;["Vallas Móviles","Camiones","Brand Riders"].includes(W)?B=f.tipo_medio||"XXX":B=f.medio_especifico||"XXX"}const P=`${Y}-${B}`;m(P)}if(A==="Venta"){const H=f.fase_plantilla||"XX",Y=f.tipo_plantilla||"XXX",B=f.categoria||"XX",P=f.medio_especifico||f.tipo_medio||f.modo_configuracion||"XXX",W=f.responsable_impresion||"XX",_=f.pertenencia_medio||"X",S=f.ubicacion_medio||"X",q=`${H}-${Y}-${B}-${P}-${W}-${_}-${S}`;m(q)}}};return u.useEffect(()=>{ee()},[f]),{templateFields:t,getFieldsByStep:R,dropdownFunctionsUpdateClave:N,fieldsForUpdateClave:Ia,resetTemplateFormData:d,fieldsWithDisableTrigger:Fa,getFieldsToDisable:$,handleOptionSelected:te,getFilteredOptions:V,dropdownFunctionsUpdateFormData:v}}const sa=()=>{const{control:e,setValue:t}=Ce.useFormContext(),s=lt(c=>c.step),{getFieldsByStep:o,handleOptionSelected:n,getFilteredOptions:i}=aa(t),{disabledFields:r}=Le(),l=u.useMemo(()=>o(s),[s,o]),d=c=>`El campo ${c.charAt(0).toLocaleLowerCase()+c.slice(1)} es requerido`;return l.map(c=>{const m=`step${c.step}.${c.key}`,f=c.label,h=i(c.key).map(x=>({label:x.name,value:c.key==="categoria"?x.reference_id:x.id}));return a.jsx(Ce.Controller,{name:m,control:e,rules:{required:{value:!r[c.key],message:d(f)},validate:x=>r[c.key]||x?!0:d(f)},render:({field:x,fieldState:{error:y}})=>a.jsx("div",{children:a.jsx(p.Dropdown,{label:f,value:x.value,onValueChange:j=>{x.onChange(j)},error:y==null?void 0:y.message,options:h,onOptionSelect:j=>{n(c,j,c.id)},disabled:r[c.key]||!1})})},c.id)})},Fi=()=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:a.jsx(sa,{})}),Mi=()=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:a.jsx(sa,{})}),ki=()=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:a.jsx(sa,{})}),Li=({step:e})=>a.jsxs("div",{className:"tm-flex tm-min-h-[270px] tm-flex-col tm-gap-y-4",children:[e===1&&a.jsx(Fi,{}),e===2&&a.jsx(Mi,{}),e===3&&a.jsx(ki,{})]}),Oi=e=>{const t={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((s,o)=>{const n=`step${o.step}`,i=t[n];return i&&i.includes(o.key)&&(s[n]||(s[n]={}),s[n][o.key]=""),s},{})},Bi=e=>{const t={step1:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria"],step2:["tipo_medio","formato_salida","medio_especifico"],step3:["responsable_impresion","pertenencia_medio","ubicacion_medio"]},s={};return Object.keys(t).forEach(o=>{s[o]={},t[o].forEach(n=>{var r;const i=(r=e[o])==null?void 0:r[n];s[o][n]=i!==void 0?i:""})}),s},Ri=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 zi(e,t){const{clave:s,paramsTipo:o,currentTemplateForEdit:n,isEditTemplate:i,setDisableField:r,setClaveParams:l,isDuplicateTemplate:d,templateFormData:c}=Le(),{tasks_api:m}=fe(),{getFieldsByStep:f,dropdownFunctionsUpdateFormData:g,templateFields:h}=aa(),x=()=>{var O;try{const C={},F=e(),E=Bi(F),{step1:X}=E,U=[];C.clave=s,X.categoria!=""&&(C.categoria=X.categoria);for(const[z,M]of Object.entries(E))for(const[K,I]of Object.entries(M)){const $={id:null,params_tipo:{id:null}};if(I!=""){const R=o[K];if(K==="categoria"){const V=h.find(D=>D.key==="categoria"),G=(O=V==null?void 0:V.params_plantillas)==null?void 0:O.find(D=>D.reference_id===I);$.id=G==null?void 0:G.id}else $.id=I;$.params_tipo.id=R,U.push($)}}return Object.keys(U).length>0&&(C.params_plantillas=U),C}catch(C){console.log(C)}},y=async O=>{var C;try{let F=null;return i?F=await m.put(`/api/plantillas/${n.id}`,{data:O}):F=await m.post("/api/plantillas",{data:O}),F.data?je(F.data):null}catch(F){throw console.error("Error en saveTemplateToStrapi:",{error:F.message,status:(C=F.response)==null?void 0:C.status}),F}},j=async O=>{var C;try{const F=De.stringify({filters:{plantilla:{id:O}},populate:{graph_layout:!0}},{encodeValuesOnly:!0}),E=await m.get(`/api/plantillas/plantilla-tareas-grafico?${F}`);return E.data?je(E.data.data):null}catch(F){throw console.error("Error en getTemplateWithTasks:",{error:F.message,status:(C=F.response)==null?void 0:C.status}),F}},b=async(O,C,F)=>{var E,X,U,z,M,K,I;try{const $=await j(O),R=await j(C);if(!$||!$.tarea_plantillas)return console.warn("No se encontraron tareas para duplicar en la plantilla original"),null;const V=new Map,G=new Map;let D=1;$.tarea_plantillas.forEach(Y=>{let B=null;Y.start?B=F:B=-(Date.now()+D++),V.set(Y.id,B)}),(X=(E=$.graph_layout)==null?void 0:E.snapshot)!=null&&X.nodes&&$.graph_layout.snapshot.nodes.forEach(Y=>{const B=`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`;G.set(Y.id,B)});const te=$.tarea_plantillas.filter(Y=>!Y.start).map(Y=>{var P,W,_,S;return{id:V.get(Y.id),uuid:crypto.randomUUID(),reference_graph:Y.reference_graph,texto_corto:Y.texto_corto,texto_largo:Y.texto_largo||null,prioridad:Y.prioridad,nivel_dificultad:Y.nivel_dificultad,duracion:Y.duracion,start:Y.start,type:Y.type||"task",equipo:((P=Y.equipo)==null?void 0:P.id)||null,responsable:((W=Y.responsable)==null?void 0:W.id)||null,plantilla:{id:C,clave:$.clave,categoria:$.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:V.get((_=Y.id_t_requerida)==null?void 0:_.id)||null,ids_t_dependientes:[],tarea_padre:V.get((S=Y.tarea_padre)==null?void 0:S.id)||null,tareas:[]}});let ee=null;if($.graph_layout){const Y=R.tarea_plantillas.find(B=>B.start===!0);ee={...$.graph_layout,id:(U=R.graph_layout)==null?void 0:U.id,snapshot:{...$.graph_layout.snapshot,edges:$.graph_layout.snapshot.edges.map(B=>{if(B.source==="start")return{...B,data:{...B.data,childId:te.find(P=>P.reference_graph===B.target).id,parentId:Y.id}};{const P=te.find(W=>W.reference_graph===B.target);return{...B,data:{...B.data,childId:P==null?void 0:P.id,parentId:(P==null?void 0:P.id_t_requerida)||(P==null?void 0:P.tarea_padre)}}}}),nodes:((M=(z=$.graph_layout.snapshot)==null?void 0:z.nodes)==null?void 0:M.map(B=>{let P={};return B.type==="start"?P={...B,data:{...B.data,tareaId:Y.id}}:P={...B,data:{tareaId:null}},P}))||[]}}}if(!ee)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 A={graph_layout:ee,tasks:{created:te,updated:[],deleted:[]}},H=await m.post("/api/tareas/save-tareas-grafico",{data:A});if(H.data&&H.status===200){const Y=await j(C),B=new Map;Y.tarea_plantillas.forEach(_=>B.set(_.reference_graph,_.id));let P=Y.graph_layout;return(!((K=P==null?void 0:P.snapshot)!=null&&K.nodes)||P.snapshot.nodes.length===0)&&(console.log("Graph layout vacío, reconstruyendo desde el original..."),P=ee),(I=P==null?void 0:P.snapshot)!=null&&I.nodes&&(P.snapshot.nodes=P.snapshot.nodes.map(_=>{var T;const S={..._,position:_.position||{x:0,y:0}},q=S.id,k=B.get(q);if(k)return{...S,data:{...S.data,id:k,tareaId:k}};if((T=S.data)!=null&&T.tareaId){const Q=Y.tarea_plantillas.find(Z=>Z.reference_graph===q);if(Q)return{...S,data:{...S.data,id:Q.id,tareaId:Q.id}}}return S})),await m.put(`/api/plantillas/${C}`,{data:{graph_layout:P}}),await j(C)}return null}catch($){throw console.error("Error al duplicar las tareas de la plantilla:",$),$}},w=async()=>{var O,C;try{const F=x(),E=await y(F);if(!E)return{success:!1,message:"No se pudo guardar el flujo de trabajo en Strapi",error:"templateData es null"};const X=De.stringify({filters:{id:{$eq:E.id}},populate:{tarea_plantillas:{filters:{start:{$eq:!0}}}}},{encodeValuesOnly:!0}),{data:U}=await m.get(`/api/plantillas?${X}`),M=je(U.data)[0].tarea_plantillas[0].id;if(d&&(n!=null&&n.id))try{const I=await b(n.id,E.id,M);return I?{success:!0,message:"Flujo de trabajo duplicado completamente con todas sus tareas",data:I}:{success:!0,message:"Flujo de trabajo creado, pero no se pudieron duplicar las tareas",data:await j(E.id)}}catch(I){return console.error("Error al duplicar tareas:",I),{success:!0,message:"Flujo de trabajo creado, pero hubo un error al duplicar las tareas",data:await j(E.id)}}const K=await j(E.id);return K?{success:!0,message:"Flujo de trabajo creado y sincronizado completamente",data:K}:{success:!1,message:"No se pudieron obtener los datos completos del flujo de trabajo",error:"completeData es null"}}catch(F){const E=Ri(((C=(O=F==null?void 0:F.response)==null?void 0:O.data)==null?void 0:C.error)||F);return console.error("Error al guardar el flujo de trabajo: ",{level:E.failureLevel,message:E.errorMessage,technicalDetails:E.technicalDetails}),{success:!1,message:E.errorMessage||"Error al guardar el flujo de trabajo",error:E.technicalDetails||F.message}}},v=()=>{const O=n==null?void 0:n.params_plantillas;if(!(O!=null&&O.length))return;const C={};[1,2,3].forEach(E=>{const X=`step${E}`;C[X]={},f(E).forEach(z=>{var K;const M=O.find(I=>I.params_tipo.key===z.key);if(M){let I=null;if(z.key==="categoria"){const $=(K=z.params_plantillas)==null?void 0:K.find(R=>R.id===M.id);I=($==null?void 0:$.reference_id)||M.id}else I=M.id;C[X][z.key]=I}})}),t(C)},N=()=>{var C;const O=n==null?void 0:n.params_plantillas;if(O!=null&&O.length)for(const F of O){const{params_tipo:{id:E,key:X},name:U,id:z}=F,M=h.find(I=>I.key===X),K=(C=M==null?void 0:M.params_plantillas)==null?void 0:C.find(I=>I.id===z);g[X]&&g[X](U,E),K&&l({field:X,value:K.abbreviation})}},L=()=>{try{const{fase_plantilla:O,modo_configuracion:C,formato_salida:F,tipo_medio:E}=c;if(O==="Venta")r({fields:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria","tipo_medio"],value:!1}),C==="Default"?(r({fields:["tipo_medio","formato_salida"],value:!1}),r({fields:["medio_especifico"],value:!0}),["Sitios Fijos","Vallas Móviles","Indoors"].includes(E)||r({fields:["formato_salida","medio_especifico"],value:!0}),F==="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(E)&&r({fields:["formato_salida","medio_especifico"],value:!1}),["Vallas Móviles"].includes(E)&&(r({fields:["formato_salida"],value:!1}),r({fields:["medio_especifico"],value:!0})),["Camiones","Brand Riders"].includes(E)&&r({fields:["formato_salida","medio_especifico"],value:!0}),F==="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}),C=="Default"){const X=["formato_salida","medio_especifico","responsable_impresion","pertenencia_medio","ubicacion_medio"];r({fields:["tipo_medio"],value:!1}),r({fields:X,value:!0})}else["Sitios Fijos","Indoors"].includes(E)?(r({fields:["formato_salida"],value:!0}),r({fields:["medio_especifico"],value:!1})):r({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!0})}catch(O){console.error("Error al aplicar reglas de habilitar y deshabilitar campos",O)}};return u.useEffect(()=>{(i||d)&&n&&(v(),N())},[i,d,n]),u.useEffect(()=>{(i||d)&&c&&L()},[i,c,d]),{savePlantilla:w,getTemplateWithTasks:j}}const qi=()=>{const{watch:e,getValues:t}=Ce.useFormContext(),{templateFormData:s,isDuplicateTemplate:o,currentTemplateForEdit:n}=Le(),[i,r]=u.useState(!1),l=u.useRef(null),d=u.useRef(null),c=u.useRef(!1),m=e();return u.useEffect(()=>{if(!c.current&&o&&n){const g=setTimeout(()=>{l.current=t(),d.current={...s},c.current=!0,r(!1)},500);return()=>clearTimeout(g)}},[o,n,t,s]),u.useEffect(()=>{if(l.current&&d.current&&c.current){const g=t(),h=s,x=JSON.stringify(g)!==JSON.stringify(l.current),y=JSON.stringify(h)!==JSON.stringify(d.current);r(x||y)}},[m,s,t]),{hasChanges:i,resetChanges:()=>{l.current=null,d.current=null,c.current=!1,r(!1)}}},$i=({onReset:e})=>{const{hasChanges:t,resetChanges:s}=qi(),{setHasFormChanges:o}=Le();return u.useEffect(()=>{o(t)},[t,o]),u.useEffect(()=>{e(s)},[e,s]),null},Ui=({isOpen:e,onClose:t})=>{const{step:s,nextStep:o,prevStep:n,onStepChange:i}=Ii({limit:3}),r=lt(P=>P.reset),{templateFields:l,resetTemplateFormData:d}=aa(),{clave:c,resetClave:m,resetDisabledFields:f,isEditTemplate:g,setIsEditTemplate:h,refetch:x,isDuplicateTemplate:y,hasFormChanges:j,setIsDuplicateTemplate:b,setCurrentTemplateForEdit:w}=Le(),{openTemplate:v}=qe(),[N,L]=u.useState(!1),[O,C]=u.useState(""),[F,E]=u.useState(!1),X=u.useRef(null),U=P=>{X.current=P},z=u.useMemo(()=>Oi(l),[l]),M=s===1,K=s===3,I=M?"Cancelar":"Atrás",$=Ce.useForm({mode:"onChange",defaultValues:z}),{trigger:R,reset:V,clearErrors:G,getValues:D}=$,{savePlantilla:te}=zi(D,V),ee=u.useRef(!1);u.useEffect(()=>{e&&(r(),ee.current=!1)},[e,r]),u.useEffect(()=>{e&&!g&&!y&&!ee.current&&(V(z),d(),ee.current=!0)},[e,g,y,V,z,d]);const A=async()=>{if(await R()){if(s===3){if(!j&&y){C("Ya existe un proceso con éstos parámetros. Modifica al menos uno para poder duplicarlo."),E(!0);return}try{L(!0);const W=await te();if(W.success){const _=W.data;if(B(),Y(),E(!1),!g)try{await v({template:_,statusTemplate:Te.NEW})}catch(S){console.warn("La plantilla se creó exitosamente pero hubo un problema al abrirla:",S)}x()}else{const{error:_}=W;C(_),E(!0)}}catch(W){console.error("Error inesperado al guardar la plantilla:",W);return}finally{L(!1)}}o()}},H=()=>{C(""),E(!1)},Y=()=>{G(),V(z),d(),f(),m(),H(),h(!1),b(!1),w(null),X.current&&X.current()},B=()=>{Y(),ee.current=!1,t(),console.log("cerrar modal")};return N?a.jsx(dt,{isLoading:N}):a.jsxs(Ce.FormProvider,{...$,children:[a.jsx($i,{onReset:U}),a.jsx(p.Modal,{isOpen:e,closeAtCancel:!1,onSuccess:A,cancelButtonText:I,successButtonText:K?g?"Guardar":"Crear":"Continuar",onCancel:M?B:n,onClose:B,size:"sm",iconConfig:{icon:ne.faFilePen},title:g?"Editar flujo de trabajo":"Nuevo flujo de trabajo",children:a.jsxs(p.Modal.Body,{children:[a.jsx("div",{className:"tm-flex tm-w-full tm-overflow-x-auto tm-pb-16 tm-pt-12",children:a.jsx("div",{className:"tm-flex tm-w-full",style:{justifyContent:"center",minWidth:"fit-content"},children:a.jsx(p.Stepper,{currentStep:s-1,onStepChange:P=>i(P+1),steps:[{title:"Paso 1",description:"INFORMACIÓN"},{title:"Paso 2",description:"DETALLES"},{title:"Paso 3",description:"PRODUCCIÓN"}]})})}),a.jsx("div",{className:"tm-flex tm-w-full tm-justify-center",children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-gap-0",children:[a.jsx("div",{className:"tm-bg-canvas-default tm-rounded-[100px] tm-p-2",style:{width:"fit-content",minWidth:"fit-content"},children:a.jsx("div",{className:"tm-font-bold tm-py-1 tm-p-[90px]",children:c})}),a.jsx("div",{className:"tm-bg-blue-500 tm-text-white tm-px-3 tm-py-1.5 tm-font-medium tm--mt-4",style:{borderRadius:"100px",fontSize:"10px"},children:"CLAVE"})]})}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-4 tm-p-16",children:[F&&a.jsx(p.Alert,{open:!0,color:"danger",message:O,className:"tm-mb-6",onClose:H}),a.jsx(Li,{step:s})]})]})})]})},Hi=({isOpen:e,onClose:t,replaceTemplate:s})=>a.jsx(a.Fragment,{children:a.jsx(p.Modal,{isOpen:e,closeAtCancel:!1,cancelButtonText:"Cancelar",successButtonText:"Abrir",onCancel:t,onClose:t,onSuccess:s,size:"sm",iconConfig:{icon:le.faExclamationTriangle},title:"Límite de flujos de trabajo",children:a.jsx(p.Modal.Body,{children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-overflow-auto tm-w-full tm-p-4 tm-gap-8",children:[a.jsx("div",{className:"tm-flex tm-justify-center tm-w-full",style:{minWidth:"fit-content"},children:a.jsx("div",{className:"tm-flex tm-justify-center tm-items-center tm-gap-[10px] tm-rounded-full tm-p-16",style:{backgroundColor:"#EBEEF9"},children:a.jsx(p.Icon,{name:le.faExclamationTriangle,size:"lg",color:"blue"})})}),a.jsx("div",{className:"tm-text-center tm-mt-6",children:a.jsx("h2",{className:"tm-text-[24px] tm-font-bold tm-text-brand tm-leading-tight",children:"¿Quieres continuar?"})}),a.jsx("div",{className:"tm-text-center tm-mt-2",children:a.jsx("div",{className:"tm-text-[12px] tm-font-normal tm-text-[#6B6B6B]",children:"Ya tienes 5 flujos de trabajo abiertos, si abres uno nuevo, se cerrará automáticamente el que lleva más tiempo sin usarse."})})]})})})}),Ki=We.create(e=>({cachedTemplate:null,canCreateTemplate:!1,setCachedTemplate:t=>e({cachedTemplate:t}),clearCachedTemplate:()=>e({cachedTemplate:null}),setCanCreateTemplate:t=>{const s=!(t<5);e({canCreateTemplate:s})}})),Vi=({isOpen:e,onClose:t,discardChanges:s,saveAndExit:o})=>a.jsx("div",{children:a.jsx(p.Modal,{isOpen:e,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Guardar y salir",onCancel:t,onClose:t,onSuccess:o,size:"sm",iconConfig:{icon:le.faExclamationTriangle},title:"Cambios sin guardar",children:a.jsx(p.Modal.Body,{children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-overflow-auto tm-w-full tm-p-4 tm-gap-8",children:[a.jsx("div",{className:"tm-flex tm-justify-center tm-w-full",style:{minWidth:"fit-content"},children:a.jsx("div",{className:"tm-flex tm-justify-center tm-items-center tm-gap-[10px] tm-rounded-full tm-p-16 tm-bg-canvas-default",children:a.jsx(p.Icon,{name:le.faSave,size:"lg",color:"brand"})})}),a.jsx("div",{className:"tm-flex tm-flex-col tm-mx-6",children:a.jsx(p.Alert,{open:!0,variant:"outlined",color:"danger",showCloseButton:!1,message:"Tienes cambios sin guardar en este flujo de trabajo",title:"No has guardado",className:"tm-mt-8"})}),a.jsx("div",{className:"tm-text-center tm-mt-5",children:a.jsx("h2",{className:"tm-text-[24px] tm-font-bold tm-text-brand",children:"¿Qué deseas hacer antes de salir?"})}),a.jsx("div",{className:"tm-text-center tm-mt-1",children:a.jsx("div",{className:"tm-text-[12px] tm-font-normal tm-text-[#6B6B6B]",children:"Si sales ahora sin guardar se perderán los cambios actuales."})}),a.jsx("div",{className:"tm-flex tm-justify-center tm-mt-4",children:a.jsx(p.Button,{size:"xs",color:"secondary",onClick:()=>{s(),t()},children:"Descartar cambios"})})]})})})}),Ls=({isOpen:e,onClose:t,publishTemplate:s})=>a.jsx(p.Modal,{isOpen:e,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Confirmar",onCancel:t,onClose:t,onSuccess:s,size:"sm",iconConfig:{icon:le.faArrowUp},title:"Publicar",children:a.jsx(p.Modal.Body,{children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-overflow-auto tm-w-full tm-p-8 tm-gap-16",children:[a.jsx("div",{className:"tm-flex tm-justify-center tm-w-full",style:{minWidth:"fit-content"},children:a.jsx(p.Icon,{name:le.faArrowUp,size:"lg",color:"blue",background:!0,padding:"lg"})}),a.jsx("div",{className:"tm-text-center",children:a.jsx("h2",{className:"tm-text-[24px] tm-font-bold tm-text-[#3658C1] tm-leading-tight",children:"¿Estás seguro de que deseas publicar este proceso?"})}),a.jsx("div",{className:"tm-text-center",children:a.jsx("div",{className:"tm-text-[12px] tm-font-normal tm-text-[#6B6B6B]",children:"Al publicar este proceso, estará disponible para su uso en los flujos correspondientes. Asegúrate de que toda la información sea correcta antes de continuar."})})]})})}),Gi=()=>{const e="grid",t="create-edit",s=u.useRef(null),{isOpenModalLimit:o,setIsOpenModalLimit:n,setOpenModalCreateTemplate:i,openModalCreateTemplate:r,setOpenModalUnsavedChanges:l,openModalUnsavedChanges:d,openModalPublishTemplate:c,setOpenModalPublishTemplate:m,setCurrentTemplateForEdit:f,setIsDuplicateTemplate:g,setIsEditTemplate:h}=Le(),{removeTemplateStates:x}=ct(),{mode:y,setMode:j,setViewMode:b,getViewMode:w}=_e(),{setCanCreateTemplate:v,canCreateTemplate:N}=Ki(),L=y===e,{screens:O,get:C,delete:F,activeTemplate:E,activateTemplate:X,reorderingTemplates:U,replaceTemplate:z,saveTemplateChanges:M,publishTemplate:K,loadingPublishTemplate:I,loadingSaveChanges:$}=qe(),R=178,[V,G]=u.useState([]),[D,te]=u.useState([]),[ee,A]=u.useState(null),[H,Y]=u.useState(!1),B=E!=null&&E.id?w(E.id):"readonly";u.useEffect(()=>{const J=()=>{if(!s.current)return;const ce=s.current.offsetWidth;let me=0;const ie=[],ye=[],pe=10,be=s.current.querySelector("button:not([data-screen])"),Ae=s.current.querySelector(".tm-mx-1");let we=0;be&&(we+=be.getBoundingClientRect().width),Ae&&O.length>0&&(we+=Ae.getBoundingClientRect().width,we+=pe);const $e=(ue,he)=>{const Oe=he?54:0,mt=(ue==null?void 0:ue.length)*8;return Math.max(80,mt+40+Oe)},ge=ce-R-we;O.forEach((ue,he)=>{const Ie=!!(ue.isNew||ue.badgeLabel),xe=$e(ue.clave,Ie),Be=he>0?pe:0,Oe=xe+Be;me+Oe<=ge?(ie.push(ue),me+=Oe):ye.push(ue)}),G(ie),te(ye)},se=()=>{const ce=O.length;v(ce)};return O.length>0&&(J(),se(),window.addEventListener("resize",J)),()=>{window.removeEventListener("resize",J)}},[O,y]);const P=J=>J.estatus===Te.DIRTY||J.estatus===Te.NEW,W=async J=>{P(J)?(A(J.id),l(!0)):await F(J.id)},_=()=>m(!0),S=async()=>{await F(ee),await x(ee)},q=async()=>{await M(!1)},k=async()=>{await M()},T=()=>{var se,ce;const J=(ce=(se=E==null?void 0:E.graph_layout)==null?void 0:se.snapshot)==null?void 0:ce.nodes.length;Y(()=>J-1>=1)};u.useEffect(()=>{T()},[E,B]);const Q=()=>!((E==null?void 0:E.estatus)==Te.IDLE&&H&&E.estatusFromStrapi!==Pe.PUBLISHED),Z=()=>{var ce;const J=(ce=E==null?void 0:E.graph_layout)==null?void 0:ce.snapshot,se=J==null?void 0:J.nodes;return se==null?void 0:se.some(me=>{var ie,ye;return me.type!=="start"&&((ie=me==null?void 0:me.data)==null?void 0:ie.tarea_padre)===null&&((ye=me==null?void 0:me.data)==null?void 0:ye.id_t_requerida)===null})},ae=()=>(E==null?void 0:E.estatus)===Te.IDLE||Z()?!0:!H,re=async()=>{await K(E.id)};return $||I?a.jsx(dt,{isLoading:$||I}):a.jsxs("div",{className:"tm-flex tm-gap-4 tm-justify-between tm-items-center tm-flex-wrap",children:[r&&a.jsx(Ui,{isOpen:r,onClose:()=>i(!1)}),o&&a.jsx(Hi,{isOpen:o,onClose:()=>n(!1),replaceTemplate:z}),d&&a.jsx(Vi,{isOpen:d,onClose:()=>l(!1),discardChanges:S,saveAndExit:k}),c&&a.jsx(Ls,{isOpen:c,onClose:()=>m(!1),publishTemplate:re}),a.jsxs("div",{className:"tm-flex tm-gap-2.5 tm-items-center tm-justify-between tm-flex-1 tm-flex-wrap",ref:s,children:[a.jsxs("div",{className:"tm-flex tm-gap-2.5 tm-items-center tm-justify-start tm-flex-1 tm-flex-wrap",children:[a.jsx(p.Button,{size:"xs",color:L?"primary":"secondary",onClick:()=>j(e),children:"Listado de flujos"}),O.length>0&&a.jsx(p.Separator,{vertical:!0,className:"tm-mx-1"}),O.filter(J=>V.some(se=>se.clave===J.clave)).map(J=>{const se=(E==null?void 0:E.clave)===J.clave&&y===t;return a.jsxs(p.Button,{"data-screen":J.clave,size:"xs",onClick:async()=>{await X(J),j(t,J.id)},color:se?"primary":"secondary",leftSlot:Ee.faFilePen,badgeColor:P(J)?"warning":void 0,onClickRightSlot:()=>W(J),rightSlot:Ee.faXmark,children:[J.clave," ",J.status]},J.id)})]}),D.length>0&&a.jsx(p.Popup,{absolute:!0,rightSlot:Ee.faAngleDown,label:`${D.length}+`,size:"xs",color:"secondary",children:a.jsx("div",{className:"tm-py-2 tm-gap-4",style:{minWidth:"280px"},children:a.jsx(p.List,{icon:Ee.faFilePen,items:D.map(J=>({id:J.id,label:J.clave})),className:"tm-p-8 tm-gap-4",onClick:async J=>{const se=await C(J.id);await U(se.id),await X(se),j("create-edit",se.id)}})})})]}),y===t?a.jsx("div",{className:"tm-flex tm-gap-4 tm-items-center tm-justify-end tm-flex-wrap",children:E.estatusFromStrapi!==Pe.PUBLISHED&&a.jsxs(a.Fragment,{children:[a.jsx(p.Button,{color:"secondary",size:"xs",leftSlot:Ee.faArrowUp,disabled:Q(),onClick:_,children:"Publicar"}),B=="readonly"&&a.jsx(p.Button,{size:"xs",color:"primary",leftSlot:Ee.faEdit,onClick:()=>(E==null?void 0:E.id)&&b(E.id,"edit"),children:"Editar"}),B==="edit"&&a.jsx(p.Button,{size:"xs",color:"primary",leftSlot:Ee.faSave,onClick:q,disabled:ae(),children:"Guardar"})]})}):a.jsx(p.Button,{disabled:N,tooltip:N?"Límite de 5 plantillas con cambios sin guardar. Guarda y cierra alguna para crear una nueva.":"",leftSlot:Ee.faPlus,size:"xs",color:"primary",onClick:()=>{f(null),g(!1),h(!1),i(!0)},children:"Nuevo flujo"})]})},Wi=({isOpen:e,onClose:t,deleteTemplate:s})=>a.jsx(p.AlertDialog,{title:"Eliminar Borrador",iconContent:le.faBan,heading:"¿Estás seguro?",subheading:"Si eliminas este borrador, también se borrarán todas sus tareas y conexiones con otros borradores.",icon:le.faBan,label:"Escribe 'Eliminar' para continuar",confirmationText:"Eliminar",isOpen:e,onClose:t,onConfirm:s,placeholder:""}),Qi=()=>{const{viewMode:e,setRefetch:t,openModalPublishTemplate:s,setOpenModalPublishTemplate:o,currentTemplateId:n,setOpenModalDeleteTemplate:i,openModalDeleteTemplate:r}=Le(),{publishTemplate:l,deleteTemplate:d}=qe(),{debouncedSearch:c,filters:m}=vs("templates-container"),f=e==="list",[g,h]=u.useState(1),x=9,{data:y,isLoading:j,isFetching:b,refetch:w}=Ms({page:g,pageSize:x,search:c,filters:m});u.useEffect(()=>{t(w)},[]),u.useEffect(()=>{h(1)},[m,c]);const{users:v}=nt(),{getImageOBP:N}=fe(),L=E=>{if(!(E!=null&&E.email))return"";const X=v==null?void 0:v[E==null?void 0:E.email];return X!=null&&X.image?N(X==null?void 0:X.image):""},O=u.useMemo(()=>{try{return!y||!v?[]:y.data.map(E=>{const X=L((E==null?void 0:E.updated_by)||(E==null?void 0:E.created_by));return{...E,updated_by:{...E.updated_by,image:X}}})}catch(E){return console.error("Error al mapear las plantillas:",E),[]}},[y,v]),C=async()=>{await l(n),await w()},F=async()=>{await d(n),await w()};return j||b?a.jsx(dt,{isLoading:j||b}):a.jsxs("div",{className:"tm-flex tm-flex-col tm-justify-between tm-gap-y-4 tm-h-full",children:[a.jsx(Ls,{isOpen:s,onClose:()=>o(!1),publishTemplate:C}),a.jsx(Wi,{isOpen:r,onClose:()=>i(!1),deleteTemplate:F}),a.jsx("div",{className:`tm-grid tm-gap-12 ${f?"tm-grid-cols-1":"tm-grid-cols-1 md:tm-grid-cols-2 lg:tm-grid-cols-3"}`,children:O.map(E=>a.jsx(Ps,{fullWidth:f,template:E},E.id))}),a.jsx("div",{children:a.jsx(p.Pagination,{pageSize:x,pageCount:y==null?void 0:y.meta.pagination.pageCount,currentPage:g,onPageChange:E=>h(E)})})]})},Os=()=>{var r,l,d,c;const e="grid",t="create-edit",{mode:s}=_e(),o=s===e,n=s===t,i=ze(m=>m.activeTemplate);return a.jsxs("div",{className:"tm-h-full tm-flex tm-flex-col tm-gap-y-6",children:[a.jsx(Gi,{}),o&&a.jsx(Qi,{}),n&&a.jsx(Di,{initialNodes:((l=(r=i==null?void 0:i.graph_layout)==null?void 0:r.snapshot)==null?void 0:l.nodes)||[],initialEdges:((c=(d=i==null?void 0:i.graph_layout)==null?void 0:d.snapshot)==null?void 0:c.edges)||[]})]})},Xi=()=>({header:a.jsx(zr,{}),body:a.jsx(Os,{})});function Yi(e){const{users:t}=ko(),{tasks_api:s,getImageOBP:o}=fe(),n=u.useMemo(()=>t.data?t.data.map(l=>{const{image:d,id:c,name:m}=l,f=o(d);return{value:c,label:m,icon:f}}):[],[t.data]),i=async l=>{const d=De.stringify({populate:{params_plantillas:{fields:["id","abbreviation","name","active","tipomedio_nombre","reference_id"]}},sort:["order:asc"],fields:["id","step","key","label","order"]},{encodeValuesOnly:!0}),{data:c}=await l.get(`/api/params-tipos?${d}`);return je(c.data).flatMap((f,g)=>{const h={id:`group-${g+1}`,label:f.label,value:`group-${g+1}`,isGroupTitle:!0},x=f.params_plantillas.map(y=>({id:y.id,label:y.name,value:y.id,checked:!1,icon:"CheckCircleOutlined",iconColor:"blue"}));return[h,...x]})},r=de.useQuery({queryKey:["paramsPlantilla"],queryFn:()=>i(s),enabled:e==="templates-container",staleTime:1e3*60*30});return{userOptions:n,paramsPlantillasOptions:r.data||[]}}const Ji={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"}},Zi={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"}},el={"templates-container":Ji,"teams-container":Zi,"kanban-general":null,"lista-campanias":null,"kanban-campania":null},tl=e=>({inputFilters:el[e]||null}),al=e=>{const{inputFilters:t}=tl(e),{userOptions:s,paramsPlantillasOptions:o}=Yi(e);return{inputFilters:u.useMemo(()=>{if(t&&s.length>0&&o.length>0){const i=t;return[{...i.estatus},{...i.publication_date},{...i.propietario,options:s},{...i.created_by,options:s},{...i.updated_by,options:s},{...i.params_plantillas,options:o}]}return null},[e,t,s,o])}};function sl(){const{setFilters:e}=bt(),{refetch:t}=Le();return{handleApplyFilters:o=>{let n={...o};n=Object.fromEntries(Object.entries(n).filter(([i,r])=>!(r===""||r===null||Array.isArray(r)&&r.length===0))),"publication_date"in n&&n.publication_date!==""&&(n={...n,publication_date:It(n.publication_date).format("YYYY-MM-DD")}),e(n,"templates-container"),t&&t()}}}const Oa="templates-container";function nl(){const{mode:e}=_e(),{inputFilters:t}=al(Oa),{handleApplyFilters:s}=sl(),{viewMode:o,setViewMode:n}=Le();return e!=="grid"?null:a.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-2.5 md:tm-flex-nowrap",children:[a.jsx(ws,{path:Oa}),a.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-x-8 md:tm-flex-nowrap",children:[t&&a.jsx(p.Filters,{filters:t,onApply:s}),a.jsx(p.Button,{size:"xs",color:"secondary",icon:o==="list"?ne.faGrid2:ne.faList,className:"tm-min-w-fit",onClick:()=>n(o==="list"?"grid":"list")})]})]})}const Ft={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()},na="Project Manager",Bs=({open:e,handleChange:t,children:s,title:o="¿Estás seguro?",onConfirm:n,contentLabel:i="",confirmLabel:r="Aceptar",cancelLabel:l="Regresar",isLoading:d=!1})=>a.jsx(p.Modal,{isOpen:e,onClose:()=>t(!1),onCancel:()=>t(!1),onSuccess:n,size:"xs",title:o,disableEscapeClose:!0,disableOutsideClick:!0,disableOutsideTab:!0,children:a.jsxs(p.Modal.Body,{children:[a.jsx(p.Text,{children:i}),s&&s]})}),ol=({member:e,level:t,isUpdate:s=!1,addHandler:o,updateHandler:n,removeHandler:i,updateMemberHandler:r})=>{var z,M,K;const{users:l,isLoading:d}=yt(),{users:c,isLoading:m}=nt(),{getImageOBP:f}=fe(),[g,h]=u.useState(!1),[x,y]=u.useState(s?e:{...Ft,miembro_padre:t>1?e:null}),[j,b]=u.useState(null),[w,v]=u.useState({id:0,nombre:"",email:""}),[N,L]=u.useState(!1);u.useEffect(()=>{var I;b(c==null?void 0:c[(I=x==null?void 0:x.idUser)==null?void 0:I.email])},[x,c]),u.useEffect(()=>{e&&y({...e,miembro_padre:t>1?e.miembro_padre:null})},[e,t]);const O=u.useMemo(()=>(l||[]).map(I=>{var V,G;const $=c==null?void 0:c[I.email??""],R=$!=null&&$.image?f($.image):"";return{...I,label:I.name,value:I.id,subtitle:I.email??"",avatar:((G=(V=I.name)==null?void 0:V.slice(0,2))==null?void 0:G.toUpperCase())??"",avatarUrl:R}}),[l,c,f]),C=()=>{h(!1),v({id:0,nombre:"",email:""})},F=({id:I,name:$,email:R})=>{const V={...x,idUser:{...x.idUser,id:I,nombre:$,email:R}};y(V),n(V),v({id:I,nombre:$,email:R})},E=async()=>{if(!w.nombre&&!w.email){C();return}try{x.id&&r({user_id:w.id,miembro_id:e.id});const I={...x,idUser:{...x.idUser,id:w.id,nombre:w.nombre,email:w.email}};y(I),n(I),b(c==null?void 0:c[w.email]),C()}catch(I){p.toast.error(I instanceof Error?I.message:"Error al actualizar el colaborador")}},X=()=>{const I={...Ft,uid:new Date().getTime()+Math.floor(Math.random()*1e3),miembro_padre:e,miembros:[]};o(I)},U=()=>{i(e),L(!1)};return m||d?null:a.jsxs("div",{className:"tm-flex tm-items-baseline tm-justify-between",children:[N&&a.jsx(Bs,{open:N,handleChange:L,onConfirm:U,contentLabel:"Estás eliminando el colaborador seleccionado"}),a.jsxs("div",{className:"tm-flex tm-flex-1 tm-justify-between tm-gap-y-4 tm-mb-2",children:[a.jsxs("div",{children:[a.jsx("div",{className:"tm-flex tm-items-center tm-gap-x-6 tm-mb-2",children:(z=x==null?void 0:x.idUser)!=null&&z.email&&!g?a.jsxs(a.Fragment,{children:[a.jsx(Fe,{size:"m",alt:((M=x==null?void 0:x.idUser)==null?void 0:M.nombre)??"Avatar",imageUrl:j!=null&&j.image?f(j.image):""}),a.jsx("p",{className:"tm-text-body-sm-regular tm-font-body-sm-regular tm-leading-body-sm-regular tm-tracking-body-sm",children:(K=x==null?void 0:x.idUser)==null?void 0:K.nombre})]}):a.jsx(p.Dropdown,{placeholder:"Seleccionar colaborador",options:O,valueName:"name",idName:"id",listVariant:"user",absolute:!0,closeOnClickOutside:!0,searchable:!0,searchPlaceholder:"Buscar colaborador...",onOptionSelect:I=>{F({id:I.id,name:I.name,email:I.email})}})}),a.jsx(p.Button,{onClick:X,leftSlot:ne.faPlus,size:"xxs",color:"tertiary",children:"Añadir colaborador"})]}),a.jsxs("div",{className:"tm-flex tm-gap-x-4",children:[g?a.jsxs(a.Fragment,{children:[a.jsx(p.Button,{onClick:C,icon:ne.faXmark,size:"xs",color:"secondary",tooltip:"Cancelar"}),a.jsx(p.Button,{onClick:E,icon:Ge.faCheck,size:"xs",color:"primary",tooltip:"Guardar"})]}):a.jsx(p.Button,{onClick:()=>h(!0),icon:ne.faPencil,size:"xs",color:"tertiary",tooltip:"Editar"}),a.jsx(p.Button,{onClick:()=>L(!0),icon:ne.faTrash,size:"xs",color:"destructive",tooltip:"Eliminar"})]})]})]})},Rs=({members:e,level:t=1,isUpdate:s=!1,setData:o})=>{const n=()=>{o(i=>{const r=i.miembros.length===0;return{...i,miembros:[...i.miembros,{...Ft,esEncargado:r,uid:new Date().getTime()+Math.floor(Math.random()*1e3)}]}})};return a.jsxs("div",{children:[(e==null?void 0:e.length)===0&&t===1&&a.jsx("div",{className:"tm-flex tm-justify-end",children:a.jsx(p.Button,{size:"xxs",color:"tertiary",leftSlot:Ge.faPlus,onClick:n,children:" Agregar miembro del equipo "})}),(e==null?void 0:e.length)>0&&(e==null?void 0:e.map(i=>a.jsx(rl,{isUpdate:s,member:i,level:t,setData:o},i.uid)))]})},rl=({member:e,level:t,isUpdate:s=!1,setData:o})=>{const n=c=>{o(m=>{if(!c.miembro_padre)return{...m,miembros:[...m.miembros,c]};const f=g=>g==null?void 0:g.map(h=>h.uid===c.miembro_padre.uid?{...h,miembros:[...h.miembros||[],c]}:h.miembros&&h.miembros.length>0?{...h,miembros:f(h.miembros)}:h);return{...m,miembros:f(m.miembros)}})},i=c=>{o(m=>{const f=g=>g.map(h=>h.uid===c.uid?(h.miembros&&h.miembros.length>0&&h.miembros.forEach(x=>{x.miembro_padre=c}),{...c,miembros:h.miembros||[]}):h.miembros&&h.miembros.length>0?{...h,miembros:f(h.miembros)}:h);return{...m,miembros:f(m.miembros)}})},r=c=>{var f;const m=[];return c.id&&m.push(c.id),(f=c.miembros)!=null&&f.length&&c.miembros.forEach(g=>{m.push(...r(g))}),m},l=c=>{o(m=>{const f=r(c),g=x=>x.filter(y=>y.uid!==c.uid).map(y=>({...y,miembros:y.miembros?g(y.miembros):[]})),h=m.miembros_actualizar.filter(x=>!f.includes(x.miembro_id));return{...m,miembros:g(m.miembros),miembros_eliminar:[...m.miembros_eliminar,...f],miembros_actualizar:h}})},d=c=>{o(m=>m.miembros_actualizar.some(g=>g.miembro_id===c.miembro_id)?m:{...m,miembros_actualizar:[...m.miembros_actualizar,c]})};return a.jsxs("div",{"data-id":e.uid,style:{paddingLeft:t===1?0:"30px",marginTop:t===1?"15px":"0px",paddingBottom:"5px"},children:[a.jsx(ol,{isUpdate:s,level:t,member:e,addHandler:n,updateHandler:i,removeHandler:l,updateMemberHandler:d}),Array.isArray(e.miembros)&&e.miembros.length>0&&a.jsx(Rs,{isUpdate:s,members:e.miembros,level:t+1,setData:o})]},e.uid)};function jt(e){const t=e??[],s=t.filter(o=>o.esEncargado);return s.length>0?s:t}function il(e){const t=jt(e??[]),s=[],o=new Set,n=new Set,i=new Set,r=l=>{var d,c;for(const m of l){const f=m.id,g=m.uid??m.id,h=(d=m.idUser)==null?void 0:d.id;f!=null&&o.has(f)||g!=null&&n.has(Number(g))||typeof h=="number"&&h>0&&i.has(h)||(s.push(m),f!=null&&o.add(f),g!=null&&n.add(Number(g)),typeof h=="number"&&h>0&&i.add(h)),(c=m.miembros)!=null&&c.length&&r(m.miembros)}};return r(t),s}const ll=()=>"#"+Math.floor(Math.random()*16777215).toString(16),cl=({search:e,filters:t})=>{const s={};return e!=null&&e.trim()&&(s.nombre={$containsi:e.trim()}),t!=null&&t.createdAt&&(s.createdAt={$eq:t.createdAt}),s},dl=({items:e})=>{if(!e)return{members:[],allMembers:[]};const t={};for(const r of e)t[r.uid]=r;const s=[],o=new Set,n=r=>{const l={...r};if(l.id&&(l.uid=l.id),l.uid&&!o.has(l.uid)&&(s.push(l),o.add(l.uid)),!l.miembros)return l;const d=l.miembros.map(c=>{const m={...c};m.id&&(m.uid=m.id);const f=t[m.uid];return n(f||m)}).filter(Boolean);return{...l,miembros:d}};return{members:e.filter(r=>r.miembro_padre===null).map(n),allMembers:s}},ml=({items:e})=>e?e.map(t=>{const s=dl({items:t.miembros}),o=il(s.members);return{...t,integrantes:o.length,miembros:s.members,miembros_planos:o,miembros_eliminar:[],miembros_actualizar:[]}}):[],ul=async({tasks_api:e,page:t=1,pageSize:s=10,search:o="",filters:n={}})=>{const i=De.stringify({filters:cl({search:o,filters:n}),populate:Es(),sort:["createdAt:asc"],pagination:{page:t,pageSize:s}},{encodeValuesOnly:!0}),r=await e.get(`/api/equipos?${i}`);return r.data?{data:je(r.data.data),meta:r.data.meta}:{data:[],meta:{pagination:{page:t,pageSize:s,pageCount:0,total:0}}}},pl=({page:e=1,pageSize:t=10,search:s="",filters:o={}})=>{const{tasks_api:n}=fe();return de.useQuery({queryKey:["teams",e,t,s,o],queryFn:()=>ul({tasks_api:n,page:e,pageSize:t,search:s,filters:o}),staleTime:1e3*60*60*24,placeholderData:de.keepPreviousData,select:i=>({data:ml({items:(i==null?void 0:i.data)||[]}),meta:i==null?void 0:i.meta})})},zs=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(zs):[]}),Ba=e=>{const t=jt(e.miembros);return{...e,id:void 0,miembros:t.map((s,o)=>zs({...s,esEncargado:o===0}))}},qs=()=>{const{tasks_api:e}=fe(),t=de.useQueryClient(),s=async g=>{const h=Ba(g);return(await e.post("/api/registrar-equipo-miembros",{data:h})).data},o=async g=>(await e.delete(`/api/equipos/${g}`)).data,n=async(g,h)=>{const x=Ba(h);return(await e.patch(`/api/actualizar-equipo-miembros/${g}`,{data:x})).data},i=async(g,h,x)=>{const y=await e.put(`/api/miembros/${g}`,{data:{[h]:x}});if(!y.data)throw new Error("Error al actualizar el miembro");return y.data},{mutateAsync:r,isPending:l}=de.useMutation({mutationFn:o,onSuccess:()=>{t.invalidateQueries({queryKey:["teams"]})},onError:g=>{throw console.error("Failed to delete the team.",g),g}}),{mutateAsync:d}=de.useMutation({mutationFn:s,onSuccess:()=>{t.invalidateQueries({queryKey:["teams"]})},onError:g=>{throw console.error("Failed to update the team.",g),g},onMutate:async()=>{await t.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:c}=de.useMutation({mutationFn:g=>n(g.teamId,g.data),onSuccess:()=>{t.invalidateQueries({queryKey:["teams"]})},onError:g=>{throw console.error("Failed to update the team.",g),g},onMutate:async()=>{await t.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:m}=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:c,updateMemberHandler:m,invalidateTeams:()=>{t.invalidateQueries({queryKey:["teams"]})},isLoadingDeleteTeam:l}},fl=(e,t,s)=>{const o=u.useCallback(n=>{e.current&&!e.current.contains(n.target)&&t(!1)},[e,t]);u.useEffect(()=>(s&&document.addEventListener("mousedown",o),()=>{document.removeEventListener("mousedown",o)}),[o,s])},gl=({color:e,onChange:t})=>a.jsxs(a.Fragment,{children:[a.jsx("style",{children:`
10
+ `+M)})()},title:i?"Editar tarea":"Nueva tarea",successButtonText:i?"Actualizar":"Crear",disabledSuccessButton:!N,children:a.jsxs("form",{className:"tm-flex tm-flex-col tm-gap-4",children:[a.jsx(Ce.Controller,{control:g,name:"title",rules:{required:"El título es obligatorio",minLength:{value:3,message:"El título debe tener al menos 3 caracteres"}},render:({field:C})=>{var M;return a.jsx(p.Input,{fullWidth:!0,label:"Título",placeholder:"Ingresa el título de la tarea...",error:(M=w.title)==null?void 0:M.message,...C})}}),a.jsx(Ce.Controller,{control:g,name:"description",rules:{required:"La descripción es obligatoria",minLength:{value:10,message:"La descripción debe tener al menos 10 caracteres"}},render:({field:C})=>{var M;return a.jsx(p.Textarea,{className:"ui-w-full tw-w-full",placeholder:"Describe la tarea a realizar...",label:"Descripción",error:(M=w.description)==null?void 0:M.message,...C})}}),a.jsx(p.Separator,{}),a.jsx(Ce.Controller,{control:g,name:"priority",rules:{required:"La prioridad es obligatoria"},render:({field:C,fieldState:{error:M}})=>a.jsx(p.Dropdown,{fullWidth:!0,label:"Prioridad",placeholder:"Selecciona la prioridad...",options:Li,error:M==null?void 0:M.message,value:C.value,onValueChange:E=>{C.onChange(E)}})}),a.jsx(Ce.Controller,{control:g,name:"difficulty",rules:{required:"La dificultad es obligatoria"},render:({field:C,fieldState:{error:M}})=>a.jsx(p.Dropdown,{fullWidth:!0,label:"Dificultad",placeholder:"Selecciona la dificultad...",options:Oi,error:M==null?void 0:M.message,value:C.value,onValueChange:E=>{C.onChange(E)}})}),a.jsx(Ce.Controller,{control:g,name:"duration",rules:{required:"La duración es obligatoria"},render:({field:C,fieldState:{error:M}})=>a.jsx(p.Dropdown,{fullWidth:!0,label:"Duración",placeholder:"Selecciona la duración...",options:Bi,error:M==null?void 0:M.message,value:C.value,onValueChange:E=>{C.onChange(E)}})}),a.jsx(p.Separator,{}),a.jsx(Ce.Controller,{control:g,name:"team",rules:{required:"El equipo es obligatorio"},render:({field:C,fieldState:{error:M}})=>a.jsx(p.Dropdown,{fullWidth:!0,label:"Equipo",placeholder:"Selecciona el equipo...",options:l,error:M==null?void 0:M.message,value:C.value,onValueChange:E=>{C.onChange(E)}})}),a.jsx(Ce.Controller,{control:g,name:"responsible",render:({field:C,fieldState:{error:M}})=>a.jsx(p.Dropdown,{fullWidth:!0,absolute:!0,label:"Responsable",placeholder:"Selecciona el responsable...",options:f,error:M==null?void 0:M.message,value:C.value,onValueChange:E=>{C.onChange(E)}})}),a.jsx(p.Separator,{}),a.jsx("div",{className:"tm-mt-3",children:a.jsx(Ce.Controller,{control:g,name:"is_monitoring_trigger",render:({field:C})=>a.jsx(p.Toggle,{label:"Activar solicitud de testigos",checked:!!C.value,onChange:C.onChange})})})]})})},Ri=()=>{const{get:e}=$e(),t=ze(i=>i.activeTemplate),{updateTaskInState:s,addTaskToState:o}=ut();return{updateTaskInTemplate:async(i,r)=>{if(!t)return console.error("No hay plantilla activa"),!1;try{const l=await e(t.id);if(!l)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,is_monitoring_trigger:r.is_monitoring_trigger??!1,equipo:r.equipo||null,responsable:r.responsable||null,plantilla:{id:l.id,clave:l.clave,categoria:l.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 s({task:d}):await o({task:d})}catch(l){return console.error("❌ Error al actualizar tarea en plantilla:",l),!1}}}},Ne={DEFAULT_CHILD_WIDTH:260,DEFAULT_CHILD_HEIGHT:80,MAGNETIC_CONNECTION_DISTANCE:800,GRAPH_LAYOUT_UPDATE_DELAY:100,START_NODE_ID:"start",DEFAULT_SOURCE_HANDLE:"bottom-source",DEFAULT_TARGET_HANDLE:"top-target"},Ba={dependiente:{stroke:"#3B82F6",strokeDasharray:"5,5",strokeWidth:2},normal:{stroke:"#6B7280",strokeWidth:2}},Pt=e=>{const t=e.map(s=>({...s}));return t.filter(s=>s.type==="group").forEach(s=>{const o=t.filter(m=>m.parentId===s.id);if(o.length===0)return;const n=Math.min(...o.map(m=>m.position.x)),r=Math.max(...o.map(m=>{var f;return m.position.x+(typeof((f=m.style)==null?void 0:f.width)=="number"?m.style.width:Ne.DEFAULT_CHILD_WIDTH)}))-n,l=Math.min(...o.map(m=>m.position.y)),c=Math.max(...o.map(m=>{var f;return m.position.y+(typeof((f=m.style)==null?void 0:f.height)=="number"?m.style.height:Ne.DEFAULT_CHILD_HEIGHT)}))-l;s.style={...s.style??{},width:r,height:c}}),t},Dt=e=>e.source===Ne.START_NODE_ID||e.target===Ne.START_NODE_ID,st=e=>e===Ne.START_NODE_ID,zi=e=>e==="dependiente"?Ba.dependiente:Ba.normal,qi=(e,t,s)=>({id:e,type:"main",position:t,selected:!1,deletable:!0,data:s}),Ft=(e,t,s,o,n,i=!1,r=null,l=null)=>{const d=zi(o),c=i?Ne.DEFAULT_SOURCE_HANDLE:s;return{id:`edge-${e}-${t}`,source:e,sourceHandle:c,target:t,targetHandle:Ne.DEFAULT_TARGET_HANDLE,type:"smoothstep",deletable:!0,style:d,markerEnd:{type:"arrowclosed",width:12,height:12,color:d.stroke,strokeWidth:1},data:{connectionType:o,nodeType:n,isFromStartNode:i,parentId:r,childId:l}}},$i=(e,t)=>!(!e||!t||e===t),Ui=e=>{const{clientX:t,clientY:s}="changedTouches"in e?e.changedTouches[0]:e;return{x:t,y:s}},Hi=e=>e.filter(t=>t.type==="position"&&t.dragging===!1),Qs=e=>e.map(t=>t.id),Xs=({nodes:e,edges:t,setNodes:s,setEdges:o,newNodePopup:n,connectionPopup:i,closeNewNodePopup:r,closeConnectionPopup:l,setIsConnectingExistingNodes:d})=>{const{screenToFlowPosition:c,getNode:m,setViewport:f,fitView:h}=oe.useReactFlow(),{get:g,update:b,addTaskUpdatingTemplate:w,addTemplateUpdatingTemplate:j}=$e(),x=ze(k=>k.activeTemplate),y=de.useQueryClient(),v=ze(k=>k.setActiveTemplate),{removeTaskFromState:N,updateNodeWithNewEdge:B,updateTaskInState:D}=ut(),C=u.useCallback(async k=>{const K=e.find($=>$.id===k);if(!(K!=null&&K.data))return null;if(K.id===Ne.START_NODE_ID){if(!x)return null;try{const $=await g(x.id),R=$.tarea_plantillas.find(G=>G.start===!0);return R!=null&&R.id?R.id:$.tarea_plantillas.length>0?$.tarea_plantillas[0].id:null}catch{return null}}const F=K.data.id;if(!F&&F!==0)return null;if(typeof F=="string"){if(F.includes("-"))return F;{const $=parseInt(F,10);return isNaN($)?null:$}}else if(typeof F=="number")return F;return null},[e,x,g]),M=u.useCallback(async(k=e,K=t)=>{var F,$,R,G,V,P,te;if(!x){p.toast.warning("No hay template activo para actualizar layout");return}try{const ee=await g(x.id);if(!ee){p.toast.warning("Template no encontrado en IndexedDB");return}const A=(F=ee.graph_layout)==null?void 0:F.snapshot;if(!(!A||JSON.stringify(A.nodes)!==JSON.stringify(k)||JSON.stringify(A.edges)!==JSON.stringify(K))){console.log("🔄 No hay cambios en el layout, omitiendo actualización");return}const Y=k.filter(W=>{var _;return!((_=W.data)!=null&&_.isInternal)&&!W.parentId}).map(W=>{const{style:_,measured:S,data:q,selected:L,...T}=W,{expandedDimensions:Q,isExpanded:Z,needsReExpansion:ae,...re}=q||{},J=_?{..._,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...T,style:J,data:re}}),O=K.filter(W=>{var _;return!((_=W.data)!=null&&_.isInternal)}),I={...ee,graph_layout:{id:(($=ee.graph_layout)==null?void 0:$.id)||0,snapshot:{nodes:Y,edges:O,viewport:((G=(R=ee.graph_layout)==null?void 0:R.snapshot)==null?void 0:G.viewport)||{x:0,y:0,zoom:1}},history:((V=ee.graph_layout)==null?void 0:V.history)||[],zoom:((P=ee.graph_layout)==null?void 0:P.zoom)||1,position:((te=ee.graph_layout)==null?void 0:te.position)||{x:0,y:0}},estatus:Te.DIRTY,updatedAt:new Date().toISOString()};await b(x.id,I),console.log("🗑️ [useFlowActions] Invalidando caché de la plantilla:",x.id),await y.invalidateQueries({queryKey:["template",x.id]}),await y.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlowActions] Caché invalidado exitosamente"),v(I)}catch(ee){console.error("❌ Error al actualizar template layout:",ee)}},[x,g,b,e,t,v]),E=u.useCallback(async(k=[],K=[],F,$)=>{var G,V,P,te,ee,A,H,Y,O,I,W,_;const R=F||(x==null?void 0:x.id);if(!R){p.toast.warning("No hay template ID disponible para actualizar");return}try{const S=await g(R);if(!S)return;const q=(P=(V=(G=S.graph_layout)==null?void 0:G.snapshot)==null?void 0:V.nodes)==null?void 0:P.filter(Q=>{var Z;return!k.includes(Q.id)&&!((Z=Q.data)!=null&&Z.isInternal)&&!Q.parentId}).map(Q=>{const{style:Z,measured:ae,data:re,...J}=Q,{expandedDimensions:se,...ce}=re||{},me=Z?{...Z,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...J,style:me,data:ce}}),L=((A=(ee=(te=S.graph_layout)==null?void 0:te.snapshot)==null?void 0:ee.edges)==null?void 0:A.filter(Q=>{var Z;return!k.includes(Q.source)&&!k.includes(Q.target)&&!((Z=Q.data)!=null&&Z.isInternal)}))||[],T={...S,graph_layout:{id:((H=S.graph_layout)==null?void 0:H.id)||0,snapshot:{nodes:q,edges:L,viewport:((O=(Y=S.graph_layout)==null?void 0:Y.snapshot)==null?void 0:O.viewport)||{x:0,y:0,zoom:1}},history:((I=S.graph_layout)==null?void 0:I.history)||[],zoom:((W=S.graph_layout)==null?void 0:W.zoom)||1,position:((_=S.graph_layout)==null?void 0:_.position)||{x:0,y:0}},estatus:Te.DIRTY,updatedAt:new Date().toISOString()};await N({templateId:R,id:$||0}),await b(R,T),await y.invalidateQueries({queryKey:["template",R]}),await y.invalidateQueries({queryKey:["template"]}),R===(x==null?void 0:x.id)&&v(T)}catch(S){console.error("❌ updateAfterDeleted - Error al actualizar template layout:",S)}},[x,g,b,t,e,N,v]),X=u.useCallback(async(k,K,F)=>{if(!n||!x)return;const{nodeId:$,sourceNodeId:R,sourceHandleId:G}=n;if(R)try{const V=await C(R);if(!V)return;if(k==="plantilla"){const P=F;if(!(P!=null&&P.templateId))return;if(!await j(P.templateId,x.id,V,K)){p.toast.error("No se pudo agregar la plantilla. Intenta nuevamente."),r();return}try{const W=await g(x.id);if(W){const _=(q,L)=>{for(const T of q){if(T.id===L||T.uuid===L)return T;if(T.tareas&&T.tareas.length>0){const Q=_(T.tareas,L);if(Q)return Q}}return null},S=_(W.tarea_plantillas,V);if(S&&S.id){const q=(S.plantilla_dependents||[]).map(T=>typeof T=="object"&&T.id?{id:T.id}:typeof T=="number"?{id:T}:T),L={...S,plantilla_dependents:q,plantilla:{id:x.id,clave:W.clave,categoria:W.categoria||{id:0,nombre:"Sin categoría"}}};await D({task:L}),console.log("✅ Tarea padre agregada a templates_states.updated con plantilla_dependents:",S.id,L.plantilla_dependents)}}}catch(W){console.error("❌ Error al actualizar tarea padre en templates_states:",W)}const ee=c({x:n.position.x,y:n.position.y}),A=P.templateData||{id:P.templateId,nombre_plantilla:`Flujo de trabajo ${P.templateId}`,clave:`TPL-${P.templateId}`,estatus:"activo",categoria:null,counts_tasks:0,dias_duracion:0},H={id:$,type:"group",position:ee,selected:!1,deletable:!0,data:{id:P.templateId,templateId:P.templateId,type:"template",nombre_plantilla:A.nombre_plantilla||`Flujo de trabajo ${P.templateId}`,clave:A.clave||`TPL-${P.templateId}`,estatus:A.estatus||"activo",categoria:A.categoria||null,counts_tasks:A.counts_tasks||0,dias_duracion:A.dias_duracion||0,tarea_plantillas:A.tarea_plantillas||[],params_plantillas:A.params_plantillas||[],createdAt:A.createdAt||new Date().toISOString(),updatedAt:A.updatedAt||new Date().toISOString(),created_by:A.created_by||null,updated_by:A.updated_by||null}};s(W=>[...W,H]);const Y=G||Ne.DEFAULT_SOURCE_HANDLE,O=st(R),I=Ft(R,$,Y,K,"plantilla",O,V);o(W=>[...W,I]);try{const W=[...e,H],_=[...t,I];await M(W,_)}catch(W){console.error("❌ Error al actualizar layout después de agregar plantilla:",W)}}else if(k==="tarea"){const P=F;if(!P)return;const te=c({x:n.position.x,y:n.position.y}),ee=-new Date().getTime(),A={id:ee,reference_graph:$,title:P.title,description:P.description,priority:P.priority,difficulty:P.difficulty,duration:P.duration,team:P.team,responsible:P.responsible,is_monitoring_trigger:P.is_monitoring_trigger??!1,parent:{data:{id:V}}},H=await w(A,x.id,K),Y=qi($,te,H);s(_=>[..._,Y]);const O=G||Ne.DEFAULT_SOURCE_HANDLE,I=st(R),W=Ft(R,$,O,K,k,I,V,ee);o(_=>[..._,W]);try{const _=[...e,Y],S=[...t,W];await M(_,S)}catch(_){console.error("❌ Error al actualizar layout después de agregar tarea:",_)}setTimeout(()=>{try{const _=m($);if(_){const S=window.innerWidth,q=window.innerHeight,L=S/2,T=q/2;f({x:L-_.position.x-130,y:T-_.position.y-40,zoom:1},{duration:800})}else h({padding:.1,duration:800})}catch{try{h({padding:.1,duration:800})}catch{}}},200)}r()}catch(V){console.error("❌ Error en createNodeFromPopup:",V)}},[n,x,w,j,C,c,s,o,r,M,e,t]),U=u.useCallback(async(k,K)=>{var G,V;if(console.log("🟢 createConnectionFromPopup - INICIO",{nodeType:k,connectionType:K}),!i){console.warn("⚠️ createConnectionFromPopup - No hay connectionPopup");return}const{sourceNodeId:F,sourceHandleId:$,targetNodeId:R}=i;console.log("🟢 createConnectionFromPopup - Datos de conexión:",{sourceNodeId:F,targetNodeId:R,sourceHandleId:$});try{if(!(window.validConnectionTypes||{dependiente:!0,hija:!0})[K]){console.warn("⚠️ createConnectionFromPopup - Tipo de conexión no válido:",K),p.toast.warning("Tipo de conexión no válido"),d(!1),l();return}const te=e.find(L=>L.id===F),ee=e.find(L=>L.id===R);console.log("🟢 createConnectionFromPopup - Nodos encontrados:",{sourceNode:te==null?void 0:te.id,targetNode:ee==null?void 0:ee.id,sourceData:te==null?void 0:te.data,targetData:ee==null?void 0:ee.data});const A=ee==null?void 0:ee.data,H=((G=te==null?void 0:te.data)==null?void 0:G.id)||F,Y=((V=ee==null?void 0:ee.data)==null?void 0:V.id)||R;console.log("🟢 createConnectionFromPopup - IDs extraídos:",{parentId:H,childId:Y});const O=Ft(F,R,$||Ne.DEFAULT_SOURCE_HANDLE,K,k,st(F),H,Y);console.log("🟢 createConnectionFromPopup - Nuevo edge creado:",O),o(L=>[...L,O]);const I=[...t,O],W=A.id||-Date.now(),_=A.reference_graph||R,S={id:W,uuid:A.uuid||crypto.randomUUID(),reference_graph:_,texto_corto:A.texto_corto||"",texto_largo:A.texto_largo||"",prioridad:A.prioridad||null,nivel_dificultad:A.nivel_dificultad||1,duracion:A.duracion||null,start:A.start||!1,is_monitoring_trigger:A.is_monitoring_trigger??!1,equipo:A.equipo||null,responsable:A.responsable||null,plantilla:{id:A.plantilla.id,clave:A.plantilla.clave,categoria:A.plantilla.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:A.plantilla_dependents||[],ids_t_dependientes:A.ids_t_dependientes||[],tarea_padre:K==="hija"?{id:O.data.parentId}:null,id_t_requerida:K==="dependiente"?{id:O.data.parentId}:null,tareas:A.tareas||[],type:"task"};console.log("🟢 createConnectionFromPopup - taskForState creado:",S),console.log("🟢 createConnectionFromPopup - currentTemplate.id:",x.id);const q=e.map(L=>L.id===R?{...L,data:S}:L);console.log("🟢 createConnectionFromPopup - Actualizando nodos en React Flow..."),s(q),console.log("✅ createConnectionFromPopup - Nodos actualizados en React Flow"),console.log("🟢 createConnectionFromPopup - Actualizando template layout..."),await M(q,I),console.log("✅ createConnectionFromPopup - Template layout actualizado"),console.log("🟢 createConnectionFromPopup - Llamando a updateNodeWithNewEdge..."),await B({templateId:x.id,edge:O,task:S}),console.log("✅ createConnectionFromPopup - updateNodeWithNewEdge completado")}catch(P){console.error("❌ createConnectionFromPopup - Error al crear conexión:",P),console.error("❌ createConnectionFromPopup - Stack:",P.stack)}finally{console.log("🟢 createConnectionFromPopup - Limpiando estado..."),d(!1),l(),console.log("🟢 createConnectionFromPopup - FIN")}},[i,o,d,l,t,e,M]),z=u.useCallback(async k=>{if(!n||!x){p.toast.warning("No hay newNodePopup o template activo para actualizar el nodo");return}const{nodeId:K}=n;if(!K){p.toast.warning("No se encontró nodeId en newNodePopup");return}try{const F=e.find(R=>R.id===K);if(!F){p.toast.warning(`No se encontró el nodo con ID: ${K}`);return}const $={...F,data:{...F.data,...k,id:F.data.id||F.id,type:F.data.type||F.data.type,updatedAt:new Date().toISOString()}};s(R=>R.map(G=>G.id===K?$:G));try{const R=e.map(G=>G.id===K?$:G);await M(R,t)}catch(R){p.toast.error("Error al actualizar layout después de actualizar nodo:",R)}r()}catch(F){p.toast.error("Error al actualizar el nodo:",F)}},[n,x,e,s,t,M,r]);return{createNodeFromPopup:X,createConnectionFromPopup:U,updateNodeFromPopup:z,updateAfterDeleted:E}},Ki=({data:e,id:t,isConnectable:s,selected:o})=>{const n=_e(U=>U.getViewMode),[i,r]=u.useState(!1),[l,d]=u.useState(e),c=ze(U=>U.activeTemplate),m=ze(U=>U.setActiveTemplate),{get:f,update:h}=$e(),{data:g}=Za(),{users:b}=_t(),w=c!=null&&c.id?n(c.id):"readonly",{updateTaskInTemplate:j}=Ri(),{setNodes:x,setEdges:y,getNodes:v,getEdges:N}=oe.useReactFlow(),B=de.useQueryClient(),{updateAfterDeleted:D}=Xs({nodes:v(),edges:N(),setNodes:x,setEdges:y,newNodePopup:null,connectionPopup:null,closeNewNodePopup:()=>{},closeConnectionPopup:()=>{},setIsConnectingExistingNodes:()=>{}}),C=()=>{r(!0)},M=u.useCallback(async()=>{var $,R,G;const U=v().find(V=>V.id===t);if(!U){console.warn("⚠️ Nodo no encontrado para eliminar");return}const z=[U],k=Qs(z),K=z.length>0?(R=($=z[0])==null?void 0:$.data)==null?void 0:R.id:0;y(V=>V.filter(P=>!k.includes(P.source)&&!k.includes(P.target))),x(V=>V.filter(P=>P.id!==t));let F;for(const V of z)try{const P=V.data;if((G=P==null?void 0:P.plantilla)!=null&&G.id){F=P.plantilla.id;break}}catch{}try{y(V=>((async()=>{await D(k,V,F,K)})().catch(P=>{console.error("❌ Error en updateAfterDeleted:",P)}),V))}catch(V){console.error("❌ Error en handleDeleteNode:",V)}},[t,v,x,y,D]),E=u.useCallback(async U=>{var z,k,K,F,$,R,G,V,P,te;if(!c){console.warn("⚠️ MainNode.updateTemplateLayout - No hay template activo");return}try{const ee=await f(c.id);if(!ee){console.warn("⚠️ MainNode.updateTemplateLayout - Template no encontrado en IndexedDB");return}const A=(z=ee.graph_layout)==null?void 0:z.snapshot;if(!(!A||JSON.stringify(A.nodes)!==JSON.stringify(U))){console.log("🔄 MainNode.updateTemplateLayout - No hay cambios en nodos, omitiendo actualización");return}const Y=U.filter(W=>{var _;return!((_=W.data)!=null&&_.isInternal)&&!W.parentId}).map(W=>{const{style:_,measured:S,data:q,selected:L,...T}=W,{expandedDimensions:Q,isExpanded:Z,needsReExpansion:ae,...re}=q||{},J=_?{..._,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...T,style:J,data:re}}),O=(((K=(k=ee.graph_layout)==null?void 0:k.snapshot)==null?void 0:K.edges)||[]).filter(W=>{var _;return!((_=W.data)!=null&&_.isInternal)}),I={...ee,graph_layout:{id:((F=ee.graph_layout)==null?void 0:F.id)||0,snapshot:{...($=ee.graph_layout)==null?void 0:$.snapshot,nodes:Y,edges:O,viewport:((G=(R=ee.graph_layout)==null?void 0:R.snapshot)==null?void 0:G.viewport)||{x:0,y:0,zoom:1}},history:((V=ee.graph_layout)==null?void 0:V.history)||[],zoom:((P=ee.graph_layout)==null?void 0:P.zoom)||1,position:((te=ee.graph_layout)==null?void 0:te.position)||{x:0,y:0}},estatus:Te.DIRTY,updatedAt:new Date().toISOString()};await h(c.id,I),await B.invalidateQueries({queryKey:["template",c.id]}),await B.invalidateQueries({queryKey:["template"]}),c&&c.id===I.id&&m(I)}catch(ee){console.error("❌ MainNode.updateTemplateLayout - Error al actualizar template layout:",ee)}},[c,f,h,m,B]),X=async U=>{if(c){const z=U.responsible,k=z!==""&&z!=null&&!Number.isNaN(Number(z))?Number(z):null,K=k!=null?b==null?void 0:b.find(G=>G.id===k):void 0,F=e.responsable&&typeof e.responsable=="object"&&"email"in e.responsable&&typeof e.responsable.email=="string"?e.responsable.email:"",$=k!=null?{id:k,email:(K==null?void 0:K.email)??F}:{id:null,email:""},R={...e,texto_corto:U.title,texto_largo:U.description,prioridad:U.priority?typeof U.priority=="number"?U.priority:parseInt(U.priority.toString()):null,nivel_dificultad:U.difficulty?typeof U.difficulty=="number"?U.difficulty:parseInt(U.difficulty.toString()):1,duracion:U.duration?typeof U.duration=="number"?U.duration:parseInt(U.duration.toString()):null,equipo:(()=>{var P;const G=Number(U.team)||null;if(!G)return{id:null};const V=(P=g==null?void 0:g.find(te=>te.value===G))==null?void 0:P.label;return{id:G,...V?{nombre:V}:{}}})(),responsable:$,is_monitoring_trigger:U.is_monitoring_trigger};await j(e.id,R),x(G=>{const V=G.map(P=>P.id===t?{...P,data:{...P.data,...R,tarea_padre:e.tarea_padre,id_t_requerida:e.id_t_requerida,updatedAt:new Date().toISOString()}}:P);return setTimeout(()=>E(V),0),V})}r(!1)};return u.useEffect(()=>{d(e)},[e]),a.jsxs("div",{className:`tm-border-[1px] tm-bg-surface-default tm-px-4 tm-py-2 tm-rounded-lg tm-transition-all tm-duration-200 tm-max-w-[550px] ${o?"tm-border-brand tm-shadow-02 tm-ring-2 tm-ring-blue-300 tm-ring-opacity-50":e.main?"tm-border-success tm-shadow-02":"tm-border-default tm-shadow-02"}`,children:[a.jsx(oe.Handle,{isConnectable:s,id:"top-target",type:"target",position:oe.Position.Top,className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default"}),a.jsx(oe.Handle,{isConnectable:s,id:"right-target",type:"target",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Right}),a.jsx(oe.Handle,{isConnectable:s,id:"bottom-target",type:"target",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Bottom}),a.jsx(oe.Handle,{isConnectable:s,id:"left-target",type:"target",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Left}),a.jsxs("div",{className:"tm-flex tm-h-full tm-flex-col tm-gap-y-8 tm-p-12 ",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-gap-x-4 ",children:[a.jsx(p.Text,{size:"lg",weight:"semibold",color:"primary",truncateLabel:!0,children:l.texto_corto}),!e.isInternal&&c.estatusFromStrapi!==Ie.PUBLISHED&&w!=="readonly"&&a.jsx("div",{children:e.type==="task"?a.jsx(p.Popup,{position:"right",absolute:!0,size:"xxs",pill:"pill",color:"secondary",icon:le.faEllipsis,containerClassName:"nopan nodrag",buttonClassName:"nopan nodrag",children:a.jsxs(p.List,{className:"tm-p-8 tm-gap-4",children:[a.jsx(p.ListItem,{icon:le.faEdit,onClick:C,children:"Editar"}),a.jsx(p.ListItem,{icon:le.faPlus,color:"red",onClick:M,children:"Eliminar"})]})}):a.jsx(p.Button,{size:"xxs",color:"secondary",pill:"pill",icon:le.faMaximize,className:"nopan"})})]}),a.jsx(p.Text,{size:"xs",weight:"regular",color:"tertiary",children:l.texto_largo}),a.jsxs("div",{className:"tm-flex tm-flex-row tm-flex-nowrap tm-items-center tm-gap-x-4 tm-justify-between md:tm-gap-x-6",children:[a.jsx(Ai,{duration:l.duracion}),a.jsx(Ei,{difficulty:l.nivel_dificultad}),a.jsx(Pi,{priority:l.prioridad}),a.jsx(Ci,{equipo:l.equipo}),a.jsx(ki,{responsible:l.responsable}),l.is_monitoring_trigger===!0&&a.jsx(Gs,{})]})]}),a.jsx(oe.Handle,{isConnectable:s,id:"top-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Top}),a.jsx(oe.Handle,{isConnectable:s,id:"right-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Right}),a.jsx(oe.Handle,{isConnectable:s,id:"bottom-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Bottom}),a.jsx(oe.Handle,{isConnectable:s,id:"left-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Left}),e.type==="task"&&i&&a.jsx(Ws,{isOpen:i,onClose:()=>r(!1),onSuccess:X,editMode:!0,taskToEdit:l})]})},Gi=async({tasks_api:e,page:t=1,pageSize:s=10,search:o="",filters:n={}})=>{const i={clave:{$notNull:!0},estatus:{$ne:Ie.DELETED},...o?{$or:[{nombre_plantilla:{$containsi:o}},{clave:{$containsi:o}}]}:{},...Object.keys(n).reduce((d,c)=>(Array.isArray(n[c])?d[c]={id:{$in:n[c]}}:d[c]=n[c],d),{})},r=Pe.stringify({filters:i,fields:["id","clave","estatus","dias_duracion","createdAt","publication_date"],count_tasks:!0,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","is_monitoring_trigger","start"]}},sort:{createdAt:"asc"},pagination:{page:t,pageSize:s}},{encodeValuesOnly:!0}),l=await e.get(`/api/plantillas/all-plantillas?${r}`);return l.data?{data:je(l.data.data),meta:l.data.meta}:{data:[],meta:{pagination:{page:t,pageSize:s,pageCount:0,total:0}}}},Ys=({page:e=1,pageSize:t=10,search:s="",filters:o={}})=>{const{tasks_api:n}=pe();return de.useQuery({queryKey:["templates",e,t,s,o],queryFn:()=>Gi({tasks_api:n,page:e,pageSize:t,search:s,filters:o}),staleTime:1e3*60*60*24,placeholderData:de.keepPreviousData,select:i=>({data:(i==null?void 0:i.data)||[],meta:i==null?void 0:i.meta})})},Js=({isOpen:e,onClose:t,onSuccess:s,nodeDataType:o,parentNodeInfo:n})=>{var v,N,B,D;const i=_e(C=>C.addNodeWithType),[r,l]=u.useState(0),d=5,[c,m]=u.useState(1),[f,h]=u.useState("");u.useEffect(()=>{e&&(m(1),h(""),l(0))},[e]),u.useEffect(()=>{m(1)},[f]);const{data:g,isLoading:b}=Ys({page:c,pageSize:d,search:f}),w=C=>{h(C.target.value)},j=()=>{var M;if(r===0)return;const C=(M=g==null?void 0:g.data)==null?void 0:M.find(E=>E.id===r);if(!C){console.error("No se encontró el flujo de trabajo seleccionado en los datos");return}s?s({templateId:r,templateData:C}):i&&i(o.id,o.type,o.connectionType)};if(b)return a.jsx("div",{children:"Cargando..."});if(!(g!=null&&g.data))return a.jsx("div",{children:"No hay datos disponibles"});const x=((N=(v=g.meta)==null?void 0:v.pagination)==null?void 0:N.total)||0,y=x===1?"flujo encontrado":"flujos encontrados";return a.jsx(p.Modal,{iconConfig:{icon:Ee.faPencil},isOpen:e,size:"lg",onSuccess:j,onClose:t,title:"Agregar flujo de trabajo",successButtonText:"Agregar",disableSuccessButton:r===0,closeAtSuccess:!0,children:a.jsxs(p.Modal.Body,{withPadding:!1,children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-gap-6 tm-px-12 tm-py-3",children:[a.jsxs("p",{className:"tm-flex-1 tm-text-[14px] tm-text-neutral-500",children:[x," ",y]}),a.jsx(p.Input,{className:"tm-flex-1",leftSlot:Ee.faSearch,fullWidth:!0,placeholder:"Buscar por nombre, parámetros o estado...",value:f,onChange:w})]}),a.jsx(p.Separator,{}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-6 tm-p-12",children:[g.data.map(C=>a.jsx(Vs,{mode:"modal",template:C,active:r===C.id,fullWidth:!0,onClick:l,withOptions:!1},C.id)),g.data.length===0&&a.jsx("div",{className:"tm-flex tm-items-center tm-justify-center tm-h-full",children:a.jsx("p",{className:"tm-text-[14px] tm-text-neutral-500",children:"No se encontraron flujos de trabajo con ese criterio de búsqueda"})})]}),a.jsx(p.Separator,{}),a.jsx("div",{className:"tm-mt-6",children:a.jsx(p.Pagination,{className:"tm-pt-0",pageSize:d,pageCount:((D=(B=g==null?void 0:g.meta)==null?void 0:B.pagination)==null?void 0:D.pageCount)||1,currentPage:c,onPageChange:C=>m(C)})})]})})},Vi=({data:e,id:t})=>{const s=_e(m=>m.addNodeWithType),[o,n]=u.useState(!1),[i,r]=u.useState(!1),[l,d]=u.useState({id:t,type:"tarea",connectionType:"dependiente"}),c=({type:m,connectionType:f})=>{s&&(d({id:t,type:m,connectionType:f}),m==="tarea"?n(!0):m==="plantilla"&&r(!0))};return console.log({data:e,id:t}),a.jsxs("div",{className:"tm-flex tm-items-center tm-justify-center",children:[l.type==="plantilla"&&a.jsx(Js,{isOpen:i,onClose:()=>r(!1),nodeDataType:l}),a.jsx(oe.Handle,{id:"top-target",type:"target",position:oe.Position.Top}),a.jsx(oe.Handle,{id:"right-target",type:"target",position:oe.Position.Right}),a.jsx(oe.Handle,{id:"bottom-target",type:"target",position:oe.Position.Bottom}),a.jsx(oe.Handle,{id:"left-target",type:"target",position:oe.Position.Left}),a.jsx(oe.Handle,{id:"top-source",type:"source",position:oe.Position.Top}),a.jsx(oe.Handle,{id:"right-source",type:"source",position:oe.Position.Right}),a.jsx(oe.Handle,{id:"bottom-source",type:"source",position:oe.Position.Bottom}),a.jsx(oe.Handle,{id:"left-source",type:"source",position:oe.Position.Left}),a.jsx(p.Popup,{position:"right",absolute:!0,size:"md",rounded:!0,icon:le.faPlus,containerClassName:"nopan",buttonClassName:"nopan",children:a.jsxs(p.List,{className:"nopan nodrag",children:[a.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Tarea"}),a.jsx(p.ListItem,{icon:le.faArrowUpLeft,iconColor:"neutral",onClick:()=>c({type:"tarea",connectionType:"dependiente"}),children:"Dependiente"}),a.jsx(p.ListItem,{icon:le.faArrowDownRight,iconColor:"neutral",onClick:()=>c({type:"tarea",connectionType:"hija"}),children:"Hija"}),a.jsx(p.ListSeparator,{}),a.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Flujo de trabajo"}),a.jsx(p.ListItem,{icon:le.faArrowUpLeft,iconColor:"neutral",onClick:()=>c({type:"plantilla",connectionType:"dependiente"}),children:"Dependiente"}),a.jsx(p.ListItem,{icon:le.faArrowDownRight,iconColor:"neutral",onClick:()=>c({type:"plantilla",connectionType:"hija"}),children:"Hija"})]})})]})},Wi=({isOpen:e,position:t,onClose:s,createNodeFromPopup:o,parentNodeInfo:n})=>{const[i,r]=u.useState(!1),[l,d]=u.useState(!1),[c,m]=u.useState(null);if(!e)return null;const f=(j,x)=>{m({type:j,connectionType:x}),j==="tarea"?r(!0):j==="plantilla"&&d(!0)},h=()=>{r(!1),m(null),s()},g=()=>{d(!1),m(null),s()},b=j=>{c&&o(c.type,c.connectionType,j),h()},w=j=>{c&&j&&o(c.type,c.connectionType,j),g()};return a.jsxs(a.Fragment,{children:[!i&&!l&&a.jsx("div",{className:"tm-fixed tm-inset-0 tm-z-50",onClick:s}),!i&&!l&&a.jsx("div",{className:"tm-fixed tm-z-50 tm-bg-surface-default tm-rounded-lg tm-shadow-02 tm-border tm-border-black-light tm-min-w-[200px]",style:{left:t.x+50,top:t.y-100},children:a.jsx("div",{className:"tm-p-2",children:a.jsxs(p.List,{children:[a.jsx("p",{className:"tm-text-sm tm-p-4 tm-gap-4 tm-font-medium tm-text-neutral-300",children:"Tarea"}),a.jsx(p.ListItem,{icon:le.faArrowUpLeft,iconColor:"neutral",onClick:()=>f("tarea","dependiente"),children:"Dependiente"}),a.jsx(p.ListItem,{icon:le.faArrowDownRight,iconColor:"neutral",onClick:()=>f("tarea","hija"),children:"Hija"}),a.jsx(p.ListSeparator,{}),a.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Flujo de trabajo"}),a.jsx(p.ListItem,{icon:le.faArrowUpLeft,iconColor:"neutral",onClick:()=>f("plantilla","dependiente"),children:"Dependiente"})]})})}),i&&c&&a.jsx(Ws,{isOpen:i,onClose:h,onSuccess:b,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:n}),l&&c&&a.jsx(Js,{isOpen:l,onClose:g,onSuccess:w,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:n})]})};function Qi({reactFlowWrapper:e,nodes:t,resetZoomHistoryKey:s}){const{setViewport:o,getViewport:n}=oe.useReactFlow(),{zoom:i}=oe.useViewport(),r=Math.round(i*100),[l,d]=u.useState([]),[c,m]=u.useState(-1),[f,h]=u.useState(!1),[g,b]=u.useState(0);u.useLayoutEffect(()=>{const D=e==null?void 0:e.current;if(D){const C=D.getBoundingClientRect();b(C.width)}},[e]);const w=u.useMemo(()=>{var E;if(!t||t.length===0)return{x:0,y:0,zoom:1};const D=t.find(X=>{var U;return(U=X==null?void 0:X.data)==null?void 0:U.main})??t[0];return{x:(g||(typeof window<"u"?window.innerWidth:0))/2-(((E=D==null?void 0:D.position)==null?void 0:E.x)??0),y:20,zoom:1}},[t,g]),j=u.useCallback(D=>{if(!f){const C=[...l.slice(0,c+1),D];d(C),m(C.length-1)}},[l,c,f]),x=u.useCallback(()=>{if(f)return;const D=n(),C=Math.min(D.zoom*1.2,2);j(D),h(!0),o({x:D.x,y:D.y,zoom:C}),setTimeout(()=>h(!1),100)},[n,o,j,f]),y=u.useCallback(()=>{if(f)return;const D=n(),C=Math.max(D.zoom/1.2,.5);j(D),h(!0),o({x:D.x,y:D.y,zoom:C}),setTimeout(()=>h(!1),100)},[n,o,j,f]),v=u.useCallback(()=>{if(f)return;const D=n();Math.abs(D.zoom-1)>.01&&j(D),h(!0),o({x:D.x,y:D.y,zoom:1}),setTimeout(()=>h(!1),100)},[n,o,j,f]),N=u.useCallback(()=>{if(f||c<=0)return;const D=l[c-1];h(!0),o(D),m(c-1),setTimeout(()=>h(!1),100)},[c,l,o,f]);return u.useEffect(()=>{l.length===0&&(d([{zoom:1,x:0,y:0}]),m(0))},[l.length]),u.useEffect(()=>{s!=null&&(d([{zoom:1,x:0,y:0}]),m(0))},[s]),{isReady:g!==0&&Array.isArray(t)&&t.length>0,defaultViewport:w,zoomPercentage:r,handleZoomIn:x,handleZoomOut:y,handleZoomTo100:v,handleDoubleClick:N}}const Xi=e=>{var i,r;const t=((i=e.data)==null?void 0:i.isInternal)||!1,s=(r=e.data)==null?void 0:r.originalGroupId,o=e.selected||!1,n=l=>{if(l.preventDefault(),l.stopPropagation(),s){const c=_e.getState().collapseGroup;c&&c(s)}};return a.jsxs("div",{className:`tm-flex tm-flex-col tm-border-1 tm-border-default tm-gap-y-2 tm-rounded-lg tm-bg-surface-default tm-p-8 tm-transition-all tm-duration-200 ${o?"tm-border-brand tm-shadow-02 tm-ring-2 tm-ring-blue-300 tm-ring-opacity-50":"tm-border-default tm-shadow-02"}`,children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[a.jsx(p.Icon,{name:We.faFlag,size:"sm",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,background:!0,padding:"md"}),a.jsx("p",{className:"tm-text-primary tm-font-body-sm-semibold tm-leading-none tm-text-body-sm-regular tm-truncate tm-tracking-wider",children:e.data.clave}),t&&a.jsx(p.Button,{size:"sm",color:"secondary",onClick:n,className:"tm-p-2 nopan nodrag",icon:le.faMinimize,pill:"pill"})]}),t&&a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[a.jsx(p.Tag,{color:e.data.estatus==="published"?"success":"warning",label:e.data.estatus==="published"?"Publicado":"Borrador"}),(e.data.updatedAt||e.data.updated_at)&&a.jsx("p",{className:"tm-text-sm tm-text-neutral-500 tm-font-medium",children:new Date(e.data.updatedAt||e.data.updated_at).toLocaleDateString("es-ES")})]}),a.jsx(oe.Handle,{id:"bottom-source",type:"source",position:oe.Position.Bottom,className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default tm-cursor-crosshair"}),a.jsx(oe.Handle,{id:"top-target",type:"target",position:oe.Position.Top,className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default tm-cursor-crosshair"})]})},Yi=()=>{const e=u.useCallback((n,i,r,l)=>{const d=(f,h)=>{const g=f.position.x,b=f.position.y,w=120,j=60,x=15;switch(h){case"top-source":case"top-target":return{x:g,y:b-j/2-x};case"bottom-source":case"bottom-target":return{x:g,y:b+j/2+x};case"left-source":case"left-target":return{x:g-w/2-x,y:b};case"right-source":case"right-target":return{x:g+w/2+x,y:b};default:return{x:g,y:b}}},c=d(n,r),m=d(i,l);return Math.sqrt(Math.pow(m.x-c.x,2)+Math.pow(m.y-c.y,2))},[]),t=u.useCallback((n,i)=>{if(n.includes("source")===i.includes("source"))return!1;const r=m=>m.includes("top")?"top":m.includes("bottom")?"bottom":m.includes("left")?"left":m.includes("right")?"right":null,l=r(n),d=r(i);return{top:"bottom",bottom:"top",left:"right",right:"left"}[l]===d},[]),s=u.useCallback((n,i)=>{const r=["top-source","bottom-source","left-source","right-source"],l=["top-target","bottom-target","left-target","right-target"];let d=1/0,c={handle1:r[0],handle2:l[0]};for(const m of r)for(const f of l){if(!t(m,f))continue;const h=e(n,i,m,f);h<d&&(d=h,c={handle1:m,handle2:f})}return c},[e,t]),o=u.useCallback((n,i,r=800)=>Math.sqrt(Math.pow(i.position.x-n.position.x,2)+Math.pow(i.position.y-n.position.y,2))<r,[]);return{findClosestHandles:s,calculateHandleDistance:e,areHandlesCompatible:t,shouldApplyMagneticConnection:o}},Ji=e=>{const[t,s]=u.useState(null),[o,n]=u.useState(null),[i,r]=u.useState(!1),l=u.useCallback((h,g,b,w)=>{s({isOpen:!0,nodeId:h,position:g,sourceNodeId:b,sourceHandleId:w})},[]),d=u.useCallback(()=>{s(null)},[]),c=u.useCallback((h,g,b,w,j)=>{r(!0),n({isOpen:!0,sourceNodeId:h,sourceHandleId:b,targetNodeId:g,targetHandleId:w,position:j})},[]),m=u.useCallback(()=>{r(!1),n(null)},[]),f=u.useCallback(()=>{var g,b,w;if(!(t!=null&&t.sourceNodeId))return null;const h=e.find(j=>j.id===t.sourceNodeId);return h?{id:h.id,label:(g=h.data)==null?void 0:g.label,nodeType:(b=h.data)==null?void 0:b.nodeType,connectionType:(w=h.data)==null?void 0:w.connectionType,data:h.data}:null},[t,e]);return{newNodePopup:t,connectionPopup:o,isConnectingExistingNodes:i,openNewNodePopup:l,closeNewNodePopup:d,openConnectionPopup:c,closeConnectionPopup:m,getParentNodeInfo:f,setIsConnectingExistingNodes:r}},Zi=({initialNodes:e,initialEdges:t})=>{const[s,o,n]=oe.useNodesState(Pt(e)),[i,r,l]=oe.useEdgesState(t),[d,c]=u.useState(!1),m=u.useCallback(O=>{r(O)},[r]),{toObject:f}=oe.useReactFlow(),{findClosestHandles:h,shouldApplyMagneticConnection:g}=Yi(),{updateGraphLayout:b,get:w,update:j}=$e(),x=ze(O=>O.activeTemplate),y=ze(O=>O.setActiveTemplate),v=de.useQueryClient(),{removeParentIdFromNodes:N}=ut(),{newNodePopup:B,connectionPopup:D,isConnectingExistingNodes:C,openNewNodePopup:M,closeNewNodePopup:E,openConnectionPopup:X,closeConnectionPopup:U,getParentNodeInfo:z,setIsConnectingExistingNodes:k}=Ji(s),{createNodeFromPopup:K,createConnectionFromPopup:F,updateNodeFromPopup:$,updateAfterDeleted:R}=Xs({nodes:s,edges:i,setNodes:o,setEdges:m,newNodePopup:B,connectionPopup:D,closeNewNodePopup:E,closeConnectionPopup:U,setIsConnectingExistingNodes:k});u.useEffect(()=>{if(e&&e.length>0){if(!(e.some((L,T)=>{const Q=s[T];return Q?L.id!==Q.id||JSON.stringify(L.position)!==JSON.stringify(Q.position)||JSON.stringify(L.data)!==JSON.stringify(Q.data):!0})||e.length!==s.filter(L=>{var T;return!((T=L.data)!=null&&T.isInternal)}).length)&&s.length>0)return;const{expandedGroups:I,groupTemplateData:W}=_e.getState(),_=Pt(e),S=new Set(_.map(L=>L.id)),q=s.filter(L=>{var T,Q;return((T=L.data)==null?void 0:T.isInternal)&&typeof((Q=L.data)==null?void 0:Q.originalGroupId)=="string"&&I.has(L.data.originalGroupId)&&S.has(L.data.originalGroupId)});if(q.length>0){const L=_.map(T=>{var Q;if(I.has(T.id)){const Z=s.find(re=>re.id===T.id),ae=(Q=Z==null?void 0:Z.data)==null?void 0:Q.expandedDimensions;if(ae)return{...T,style:{...T.style,width:ae.width,height:ae.height},data:{...T.data,isExpanded:!0,expandedDimensions:ae}}}return T});o([...L,...q])}else if(I.size>0){const L=_.map(T=>I.has(T.id)&&W[T.id]?{...T,data:{...T.data,isExpanded:!0,needsReExpansion:!0}}:T);o(L)}else o(_)}else o([])},[e,o]),u.useEffect(()=>{if(!d&&t&&t.length>0){const{expandedGroups:O}=_e.getState(),I=Pt(e),W=new Set(I.map(q=>q.id)),_=i.filter(q=>{var L,T;return((L=q.data)==null?void 0:L.isInternal)&&typeof((T=q.data)==null?void 0:T.originalGroupId)=="string"&&O.has(q.data.originalGroupId)&&W.has(q.data.originalGroupId)}),S=i.filter(q=>{var L,T;return((L=q.data)==null?void 0:L.redirectedToInternal)&&typeof((T=q.data)==null?void 0:T.originalTarget)=="string"&&O.has(q.data.originalTarget)&&W.has(q.data.originalTarget)});if(_.length>0||S.length>0){const q=t.filter(L=>!S.some(T=>{var Q;return((Q=T.data)==null?void 0:Q.originalTarget)===L.target}));m([...q,..._,...S])}else m(t)}},[t,m,d]);const G=u.useCallback((O,I,W=!1)=>{const S=i.filter(T=>T.target===I).length>0;if(i.some(T=>T.source===O&&T.target===I||T.source===I&&T.target===O)&&!W)return p.toast.warning("La tarea destino ya tiene una conexión"),!1;const L=!S;return typeof window<"u"&&(window.validConnectionTypes={dependiente:L,hija:L}),L?!0:(p.toast.warning("La tarea destino ya tiene una conexión de entrada"),!1)},[i]),V=u.useCallback(O=>{if(!$i(O.source,O.target))return;st(O.source)&&!O.sourceHandle&&(O.sourceHandle=Ne.DEFAULT_SOURCE_HANDLE);const I=s.find(_=>_.id===O.source),W=s.find(_=>_.id===O.target);if(I&&W){if(!G(O.source,O.target))return;X(O.source,O.target,O.sourceHandle,O.targetHandle);return}return m(_=>oe.addEdge(O,_))},[s,X,m,G]),P=u.useCallback((O,I)=>{var W;if(!C&&!I.isValid&&I.fromNode){const _=s.find(ae=>ae.id===I.fromNode.id);if((_==null?void 0:_.type)==="group"){p.toast.warning("En una plantilla, no se puede crear una conexión");return}const S=Ui(O),q=document.elementFromPoint(S.x,S.y);if(q!=null&&q.closest(".react-flow__node"))return;const L=crypto.randomUUID(),T=((W=I.fromHandle)==null?void 0:W.id)||Ne.DEFAULT_SOURCE_HANDLE,Z=st(I.fromNode.id)?Ne.DEFAULT_SOURCE_HANDLE:T;M(L,S,I.fromNode.id,Z)}},[C,M,s]),te=u.useCallback(async O=>{var S,q,L;const I=Qs(O),W=O.length>0?(q=(S=O[0])==null?void 0:S.data)==null?void 0:q.id:0;m(T=>T.filter(Q=>!I.includes(Q.source)&&!I.includes(Q.target)));let _;for(const T of O)try{const Q=T.data;if((L=Q==null?void 0:Q.plantilla)!=null&&L.id){_=Q.plantilla.id;break}}catch{}try{m(T=>((async()=>{await R(I,T,_,W)})().catch(Q=>{console.error("❌ Error en updateAfterDeleted:",Q)}),T))}catch(T){console.error("❌ Error en onDeleteNode:",T)}},[m,R]),ee=u.useCallback(async O=>{var W,_,S,q,L,T,Q,Z,ae,re,J,se,ce,me;if(!O||O.length===0)return;let I;if(x!=null&&x.id)I=x.id;else for(const ie of O){const ye=s.find(be=>be.id===ie.source),fe=s.find(be=>be.id===ie.target);if(ye!=null&&ye.data&&typeof ye.data=="object"&&"plantilla"in ye.data){const be=ye.data.plantilla;if(be!=null&&be.id){I=be.id;break}}if(fe!=null&&fe.data&&typeof fe.data=="object"&&"plantilla"in fe.data){const be=fe.data.plantilla;if(be!=null&&be.id){I=be.id;break}}}if(!I){console.warn("⚠️ onEdgesDelete - No se pudo obtener templateId");return}try{const ie=await w(I);if(!ie){console.warn("⚠️ onEdgesDelete - Template no encontrado en IndexedDB");return}const ye=O.map(ue=>ue.id),fe=((S=(_=(W=ie.graph_layout)==null?void 0:W.snapshot)==null?void 0:_.edges)==null?void 0:S.filter(ue=>{var he;return!ye.includes(ue.id)&&!((he=ue.data)!=null&&he.isInternal)}))||[],Ae=(((T=(L=(q=ie.graph_layout)==null?void 0:q.snapshot)==null?void 0:L.nodes)==null?void 0:T.filter(ue=>{var he;return!((he=ue.data)!=null&&he.isInternal)&&!ue.parentId}))||[]).map(ue=>{const{style:he,measured:Fe,data:xe,...Be}=ue,{expandedDimensions:Oe,isExpanded:ft,needsReExpansion:Tc,...ma}=xe||{},hn=he?{...he,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0,xn=ue.data.id===O[0].data.childId?{...ma,tarea_padre:null,id_t_requerida:null}:ma;return{...Be,style:hn,data:xn}}),ve=((Z=(Q=ie.graph_layout)==null?void 0:Q.snapshot)==null?void 0:Z.edges)||[];if(!(JSON.stringify(ve)!==JSON.stringify(fe)))return;const ge={...ie,graph_layout:{id:((ae=ie.graph_layout)==null?void 0:ae.id)||0,snapshot:{nodes:Ae,edges:fe,viewport:((J=(re=ie.graph_layout)==null?void 0:re.snapshot)==null?void 0:J.viewport)||{x:0,y:0,zoom:1}},history:((se=ie.graph_layout)==null?void 0:se.history)||[],zoom:((ce=ie.graph_layout)==null?void 0:ce.zoom)||1,position:((me=ie.graph_layout)==null?void 0:me.position)||{x:0,y:0}},estatus:Te.DIRTY,updatedAt:new Date().toISOString()};await N({templateId:I,id:O[0].data.childId}),await j(I,ge),console.log("🗑️ [useFlow] Invalidando caché de la plantilla:",I),await v.invalidateQueries({queryKey:["template",I]}),await v.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlow] Caché invalidado exitosamente"),I===(x==null?void 0:x.id)&&y(ge)}catch(ie){console.error("❌ onEdgesDelete - Error al actualizar template layout:",ie)}},[s,x,w,j,y,N]),A=u.useCallback(async O=>!O.nodes.some(W=>W.type==="start"||W.id===Ne.START_NODE_ID),[]),H=u.useCallback((O,I,W)=>{var L,T,Q;const _=s.find(Z=>Z.id===I.id);if(!_)return;if(_.type==="group"&&((L=_.data)!=null&&L.isExpanded)){m(Z=>Z.map(ae=>{if(ae.hidden&&ae.target===I.id){const{hidden:re,...J}=ae;return J}return ae}));return}let S;if(_.type==="group"?S=x==null?void 0:x.id:(Q=(T=I==null?void 0:I.data)==null?void 0:T.plantilla)!=null&&Q.id&&(S=I.data.plantilla.id),!S)return;const q=i.map(Z=>{var J,se,ce,me,ie;if(Dt(Z))return Z;const ae=s.find(ye=>ye.id===Z.source),re=s.find(ye=>ye.id===Z.target);if(ae&&re){const ye=ae.type==="group"&&((J=ae.data)==null?void 0:J.isExpanded),fe=re.type==="group"&&((se=re.data)==null?void 0:se.isExpanded),be=(ce=ae.data)==null?void 0:ce.isInternal,Ae=(me=re.data)==null?void 0:me.isInternal,ve=(ie=Z.data)==null?void 0:ie.redirectedToInternal;if(ye||fe||be||Ae||ve)return Z;if(ae.id===I.id||re.id===I.id||g(ae,re,Ne.MAGNETIC_CONNECTION_DISTANCE)){const ge=h(ae,re);if(ge!=null&&ge.handle1&&(ge!=null&&ge.handle2))return{...Z,sourceHandle:ge.handle1,targetHandle:ge.handle2}}}return Z});if(JSON.stringify(i)!==JSON.stringify(q))m(q),setTimeout(()=>{const Z=f();b(S,Z)},100);else{const Z=f();b(S,Z)}},[s,i,x,b,f,m,h,g]),Y=u.useCallback(O=>{n(O);const I=Hi(O);if(I.length>0){const W=I.filter(_=>{var q;const S=s.find(L=>L.id===_);return(S==null?void 0:S.type)==="group"&&((q=S==null?void 0:S.data)==null?void 0:q.isExpanded)});if(W.length>0){m(_=>_.map(S=>{var T;const q=W.includes(S.target),L=!((T=S.data)!=null&&T.redirectedToInternal);return q&&L?{...S,hidden:!0}:S}));return}c(!0),setTimeout(()=>{const _=i.map(q=>{var Q,Z,ae,re;if(Dt(q))return{...q};const L=s.find(J=>J.id===q.source),T=s.find(J=>J.id===q.target);if(L&&T){const J=L.type==="group"&&((Q=L.data)==null?void 0:Q.isExpanded),se=T.type==="group"&&((Z=T.data)==null?void 0:Z.isExpanded),ce=(ae=L.data)==null?void 0:ae.isInternal,me=(re=T.data)==null?void 0:re.isInternal;if(J||se||ce||me)return{...q};if(g(L,T,Ne.MAGNETIC_CONNECTION_DISTANCE)){const ie=h(L,T);if(ie!=null&&ie.handle1&&(ie!=null&&ie.handle2)&&(q.sourceHandle!==ie.handle1||q.targetHandle!==ie.handle2))return{...q,sourceHandle:ie.handle1,targetHandle:ie.handle2}}}return{...q}});if(i.some((q,L)=>{const T=_[L];return q.sourceHandle!==T.sourceHandle||q.targetHandle!==T.targetHandle})){const q=_.map(L=>({...L,id:L.id}));m(q)}setTimeout(()=>{c(!1)},200)},0)}},[n,i,s,m,h,g,c]);return{nodes:s,edges:i,newNodePopup:B,connectionPopup:D,setNodes:o,setEdges:m,onEdgesChange:l,onConnect:V,onConnectEnd:P,onDeleteNode:te,onEdgesDelete:ee,onBeforeDelete:A,handleNodesChange:Y,onDragEnd:H,getParentNodeInfo:z,isProtectedConnection:Dt,isStartNode:st,createNodeFromPopup:K,updateNodeFromPopup:$,closeNewNodePopup:E,createConnectionFromPopup:F,closeConnectionPopup:U}},el=({isOpen:e,onClose:t,createConnectionFromPopup:s,availableConnections:o})=>{if(!e)return null;const n=o||{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}},i=(r,l)=>{(r==="tarea"?n.tarea[l]:n.plantilla[l])&&s(r,l)};return a.jsx(a.Fragment,{children:a.jsxs("div",{className:"tm-fixed tm-inset-0 tm-z-50 tm-flex tm-items-center tm-justify-center",children:[a.jsx("div",{className:"tm-bg-black/20 tm-absolute tm-inset-0",onClick:t}),a.jsx("div",{className:"tm-shadow-lg tm-border-default tm-border-1 tm-relative tm-rounded-lg tm-bg-surface-default tm-p-4",children:a.jsx("div",{children:a.jsxs(p.List,{children:[a.jsx("p",{className:"tm-text-sm tm-px-4 tm-font-medium tm-text-neutral-300",children:"Tarea"}),a.jsxs(p.ListItem,{icon:le.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("tarea","dependiente"),children:["Dependiente ",!n.tarea.dependiente&&"(No disponible)"]}),a.jsxs(p.ListItem,{icon:le.faArrowDownRight,iconColor:"neutral",onClick:()=>i("tarea","hija"),children:["Hija ",!n.tarea.hija&&"(No disponible)"]}),a.jsx(p.ListSeparator,{}),a.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Flujo de trabajo"}),a.jsxs(p.ListItem,{icon:le.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("plantilla","dependiente"),children:["Dependiente ",!n.plantilla.dependiente&&"(No disponible)"]})]})})})]})})},tl=({data:e,id:t,selected:s})=>{const{expandedGroups:o}=_e(),[n,i]=u.useState(!1),r=u.useRef(!1);u.useEffect(()=>{const f=(e==null?void 0:e.needsReExpansion)&&o.has(t),h=(e==null?void 0:e.templateId)||(e==null?void 0:e.id);if(f&&h&&!r.current){r.current=!0;const b=_e.getState().expandGroup;b&&b(t,h).catch(w=>{console.error("Error al re-expandir grupo:",w),r.current=!1})}o.has(t)||(r.current=!1)},[e,t,o]);const l=async f=>{f.preventDefault(),f.stopPropagation();const h=(e==null?void 0:e.templateId)||(e==null?void 0:e.id);if(h){i(!0);try{const g=_e.getState(),b=g.expandGroup,w=g.collapseGroup,j=o.has(t);j&&w?w(t):!j&&b&&await b(t,h)}catch{}finally{i(!1)}}},d=o.has(t),c=e==null?void 0:e.expandedDimensions,m=d&&c?{width:c.width,height:c.height,minWidth:c.width,minHeight:c.height}:{minWidth:268,minHeight:80};return a.jsxs("div",{className:`tm-rounded-lg tm-shadow-02 tm-bg-surface-default tm-relative tm-transition-all tm-duration-200 ${s?"tm-border-1 tm-border-brand tm-shadow-02 tm-ring-2 tm-ring-brand-default tm-ring-opacity-50":d?"tm-border-2 tm-border-brand tm-shadow-02":"tm-border-2 tm-border-default"}`,style:m,children:[a.jsx(pt,{isLoading:n}),a.jsx(oe.Handle,{id:"top-target",type:"target",position:oe.Position.Top,className:`tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default ${d?"tm-opacity-0 tm-pointer-events-none":""}`,isConnectable:!d}),a.jsx(oe.Handle,{id:"right-target",type:"target",className:`tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default ${d?"tm-opacity-0 tm-pointer-events-none":""}`,position:oe.Position.Right,isConnectable:!d}),a.jsx(oe.Handle,{id:"bottom-target",type:"target",className:`tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default ${d?"tm-opacity-0 tm-pointer-events-none":""}`,position:oe.Position.Bottom,isConnectable:!d}),a.jsx(oe.Handle,{id:"left-target",type:"target",className:`tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default ${d?"tm-opacity-0 tm-pointer-events-none":""}`,position:oe.Position.Left,isConnectable:!d}),!d&&a.jsxs("div",{className:"tm-flex tm-justify-between tm-gap-x-8 tm-p-16",children:[a.jsx(p.Icon,{name:le.faChartDiagram,color:"brand",size:"lg"}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:[a.jsx("p",{className:"tm-text-primary tm-font-bold tm-leading-none tm-text-body-lg-regular tm-truncate tm-tracking-wider",children:e.clave||e.nombre_plantilla||"N/A"}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-4",children:[a.jsx(p.Badge,{size:"sm",theme:"soft",color:e.estatus==="published"?"success":"warning",label:e.estatus==="published"?"Publicado":"Borrador"}),e.updatedAt&&a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-semibold",children:new Date(e.updatedAt).toLocaleDateString("es-ES")})]})]}),a.jsx("div",{children:a.jsx(p.Button,{size:"sm",color:"secondary",pill:"pill",onClick:l,disabled:n,className:`tm-p-2 ${n?"tm-opacity-50":""} nopan nodrag`,icon:d?Ee.faCompress:Ee.faExpand})})]})]})},al=(e,t,s,o)=>{const n=u.useRef(e),i=u.useRef(t);u.useEffect(()=>{n.current=e},[e]),u.useEffect(()=>{i.current=t},[t]);const{expandedGroups:r,groupTemplateData:l,toggleGroupExpansion:d,setGroupTemplateData:c,clearGroupTemplateData:m}=_e(),f=de.useQueryClient(),{getTemplateWithTasks:h}=qs(),{hydrateTasks:g}=Hs(),b=u.useCallback(async(y,v)=>{var N,B,D,C;try{await f.invalidateQueries({queryKey:["template",v]});const M=await h(v),E=(D=(B=(N=M==null?void 0:M.graph_layout)==null?void 0:N.snapshot)==null?void 0:B.nodes)==null?void 0:D.filter(T=>{var Q,Z;return((Q=T.data)==null?void 0:Q.isInternal)||T.parentId||((Z=T.id)==null?void 0:Z.includes("-internal-"))});if(E&&E.length>0&&console.warn("⚠️ [expandGroup] Nodos sospechosos en API para plantilla",v,":",E),!((C=M==null?void 0:M.graph_layout)!=null&&C.snapshot))throw new Error(`No se encontraron datos de graph_layout en la plantilla: ${v}`);const X=M.graph_layout.snapshot.nodes||[],U=X.filter(T=>{var J,se;const Q=(J=T.data)==null?void 0:J.isInternal,Z=!!T.parentId,ae=(se=T.id)==null?void 0:se.includes("-internal-"),re=Q||Z||ae;return re&&console.warn("🗑️ [expandGroup] Filtrando nodo corrupto:",{id:T.id,type:T.type,esInterno:Q,tieneParentId:Z,tieneInternalEnId:ae}),!re}),z={...M,graph_layout:{...M.graph_layout,snapshot:{...M.graph_layout.snapshot,nodes:U,edges:(M.graph_layout.snapshot.edges||[]).filter(T=>{var Q,Z;return!((Q=T.data)!=null&&Q.isInternal)&&!((Z=T.id)!=null&&Z.includes("-internal-"))})}}},k=X.length-U.length;k>0?console.warn(`⚠️ [expandGroup] Se filtraron ${k} nodos internos corruptos de la BD para plantilla ${v}`):console.log(`✅ [expandGroup] No se encontraron nodos corruptos en plantilla ${v}`);const K=await g(z),F={...z,hydratedNodes:K,nodes:K||z.graph_layout.snapshot.nodes||[],edges:z.graph_layout.snapshot.edges||[]},$=F.nodes,R=F.edges;if(!$||!R){console.error("❌ No se encontraron nodos o edges en la plantilla:",v);return}c(y,{nodes:$,edges:R,viewport:F.graph_layout.snapshot.viewport||{x:0,y:0,zoom:1}});const G=n.current.find(T=>T.id===y);if(!G){console.error("❌ No se encontró el nodo grupo:",y);return}const V=$.filter(T=>T.id!==y);let P=1/0,te=1/0,ee=-1/0,A=-1/0;V.forEach(T=>{var ie,ye,fe,be,Ae,ve;const Q=((ie=T.position)==null?void 0:ie.x)||0,Z=((ye=T.position)==null?void 0:ye.y)||0,ae=typeof((fe=T.style)==null?void 0:fe.width)=="number"?T.style.width:((be=T.measured)==null?void 0:be.width)||268,re=typeof((Ae=T.style)==null?void 0:Ae.height)=="number"?T.style.height:((ve=T.measured)==null?void 0:ve.height)||111,J=Q-ae/2,se=Q+ae/2,ce=Z,me=Z+re;P=Math.min(P,J),te=Math.min(te,ce),ee=Math.max(ee,se),A=Math.max(A,me)});const H=80,Y=60,O=ee-P,I=A-te,W=O+H*2,_=I+H*2+Y,S=$.map(T=>{var me,ie;if(T.id===y)return null;const Q=((me=T.position)==null?void 0:me.x)||0,Z=((ie=T.position)==null?void 0:ie.y)||0,ae=Q-P+H,re=Z-te+H+Y,J=T.type==="start"||T.id==="start",se=J?{...T.data,estatus:G.data.estatus,updatedAt:G.data.updatedAt,createdAt:G.data.createdAt,isInternal:!0,originalGroupId:y,originalNodeId:T.id}:{...T.data,isInternal:!0,originalGroupId:y,originalNodeId:T.id};return{...T,id:`${y}-internal-${T.id}`,parentId:y,extent:"parent",type:T.type==="group"?"main":T.type,position:{x:ae,y:re},style:{...T.style},data:se,draggable:!1,selectable:J,selected:!1,deletable:!1,connectable:!1,focusable:J,zIndex:999}}).filter(Boolean),q=R.map(T=>{const Q=S.some(re=>re&&re.id===`${y}-internal-${T.source}`),Z=S.some(re=>re&&re.id===`${y}-internal-${T.target}`);return!Q||!Z?null:{...T,id:`${y}-internal-${T.id}`,source:`${y}-internal-${T.source}`,target:`${y}-internal-${T.target}`,style:{...T.style},data:{...T.data,isInternal:!0,originalGroupId:y}}}).filter(Boolean),L=S.find(T=>{var Q;return T&&((Q=T.data)==null?void 0:Q.originalNodeId)==="start"});L&&o(T=>T.map(Q=>Q.target===y?{...Q,target:L.id,targetHandle:"top-target",data:{...Q.data,redirectedToInternal:!0,originalTarget:y,originalTargetHandle:Q.targetHandle}}:Q)),d(y),s(T=>[...T.map(Z=>{if(Z.id===y){const{needsReExpansion:ae,...re}=Z.data||{};return{...Z,style:{...Z.style,width:W,height:_},data:{...re,isExpanded:!0,expandedDimensions:{width:W,height:_}},zIndex:1e3}}return Z}),...S]),o(T=>[...T,...q])}catch(M){console.error("❌ Error al expandir el grupo:",M)}},[f,h,g,c,d,s,o]),w=u.useCallback(y=>{var E,X;const v=n.current,N=i.current,B=v.find(U=>U.id===y),D=((E=B==null?void 0:B.data)==null?void 0:E.templateId)||((X=B==null?void 0:B.data)==null?void 0:X.id),C=v.filter(U=>!U.id.startsWith(`${y}-internal-`)&&U.parentId!==y).map(U=>U.id===y?{...U,style:{...U.style,width:void 0,height:void 0},data:{...U.data,isExpanded:!1,expandedDimensions:void 0},zIndex:void 0}:U),M=N.filter(U=>!U.id.startsWith(`${y}-internal-`)).map(U=>{var z,k;if((z=U.data)!=null&&z.redirectedToInternal&&((k=U.data)==null?void 0:k.originalTarget)===y){const{redirectedToInternal:K,originalTarget:F,originalTargetHandle:$,...R}=U.data;return{...U,target:y,targetHandle:$||U.targetHandle,data:R}}return U});s(C),o(M),d(y),m(y),D&&f.invalidateQueries({queryKey:["template",D]})},[s,o,d,m,f]),j=u.useCallback(async(y,v)=>{r.has(y)?w(y):await b(y,v)},[r,b,w]),x=u.useCallback(y=>r.has(y),[r]);return{expandGroup:b,collapseGroup:w,toggleGroup:j,isGroupExpanded:x,groupTemplateData:l}},sl=()=>{const{getNodes:e,setNodes:t,screenToFlowPosition:s,setCenter:o}=oe.useReactFlow(),{copiedNodes:n,setCopiedNodes:i,getViewMode:r}=_e(),{activeTemplate:l,setActiveTemplate:d}=ze(),{updateGraphLayout:c,get:m,update:f}=$e(),h=l!=null&&l.id?r(l.id):"readonly",g=u.useCallback(()=>`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,[]),b=u.useCallback(()=>e().filter(C=>C.selected).filter(C=>!(C.type==="start"||C.id==="start"||C.type==="group")),[e]),w=u.useCallback(()=>{if(h==="readonly"){p.toast.error("No puedes copiar tareas en modo solo lectura");return}if(!l){p.toast.error("No hay una plantilla activa");return}const N=b();if(N.length===0){const D=e().filter(C=>C.selected);if(D.length>0){const C=D.some(E=>E.type==="group"),M=D.some(E=>E.type==="start"||E.id==="start");C?p.toast.error("Las plantillas conectadas no pueden ser copiadas"):M&&p.toast.error("El nodo de inicio no puede ser copiado")}else p.toast.error("No hay tareas seleccionadas para copiar");return}const B=N.map(D=>{const{selected:C,...M}=D;return{...M,data:{...M.data,_originalTemplateId:l.id}}});i(B),p.toast.success(`${N.length} ${N.length===1?"tarea copiada":"tareas copiadas"} con éxito`)},[h,l,b,e,i]),j=u.useCallback(async N=>{if(h==="readonly"){p.toast.error("No puedes pegar tareas en modo solo lectura");return}if(!l){p.toast.error("No hay una plantilla activa");return}if(n.length===0){p.toast.error("No hay tareas copiadas para pegar");return}const B=e();let D={x:0,y:0};if(N)D=s({x:N.x,y:N.y});else if(B.length>0){const k=B.reduce((F,$)=>F+$.position.x,0)/B.length,K=B.reduce((F,$)=>F+$.position.y,0)/B.length;D={x:k+50,y:K+100}}const C=n[0],M=D.x-C.position.x,E=D.y-C.position.y,X=n.map((k,K)=>{const F=g(),$=-(Date.now()+K),R=k.data.plantilla&&typeof k.data.plantilla=="object"?{...k.data.plantilla,id:l.id}:{id:l.id},{id:G,...V}=k.data,P={...V,id:$,reference_graph:F,plantilla:R,parent:{data:{id:null}},_originalTemplateId:void 0};return{...k,id:F,position:{x:k.position.x+M,y:k.position.y+E},data:P,selected:!0}}),z=[...B.map(k=>({...k,selected:!1})),...X];if(t(z),l.id)try{const k=await m(l.id);if(!k)return;const K=X.filter($=>$.type!=="start"&&$.type!=="group").map($=>{const R=$.data;return{id:R.id,reference_graph:$.id,nombre:R.nombre||R.texto_corto||"Tarea sin nombre",texto_corto:R.texto_corto||"",texto_largo:R.texto_largo||"",prioridad:R.prioridad??0,nivel_dificultad:R.nivel_dificultad??0,dias_duracion:R.dias_duracion??0,plantilla:{id:l.id},parent:{data:{id:null}},tareas:[],plantilla_dependents:R.plantilla_dependents||[],start:R.start||!1,is_monitoring_trigger:R.is_monitoring_trigger??!1,es_grupo:R.es_grupo||!1,optional:R.optional||!1,subtask_completadas:R.subtask_completadas||0,subtask_totales:R.subtask_totales||0}}),F={...k,tarea_plantillas:[...k.tarea_plantillas,...K],estatus:"dirty",updatedAt:new Date().toISOString()};await f(l.id,F),d(F),setTimeout(async()=>{await c(l.id,{nodes:z,edges:[]})},50)}catch(k){console.error("Error al actualizar template en IndexedDB:",k)}if(X.length>0){const k=X.reduce((F,$)=>F+$.position.x,0)/X.length,K=X.reduce((F,$)=>F+$.position.y,0)/X.length;o(k,K,{zoom:1,duration:800})}p.toast.success(`${X.length} ${X.length===1?"tarea pegada":"tareas pegadas"} con éxito`)},[h,l,n,e,t,s,o,g,c,m,f,d]),x=u.useCallback(()=>n.length>0,[n]),v=b().length>0;return{handleCopy:w,handlePaste:j,hasCopiedNodes:x,hasSelectableNodes:v,copiedNodesCount:n.length}},nl={main:Ki,plus:Vi,start:Xi,group:tl},ol=[.5,0],rl=({initialNodes:e,initialEdges:t,debugEvents:s=!1})=>{var ve,Ue;const o=u.useRef(null),{nodes:n,edges:i,onEdgesChange:r,onConnect:l,onConnectEnd:d,onBeforeDelete:c,onDeleteNode:m,onEdgesDelete:f,handleNodesChange:h,newNodePopup:g,getParentNodeInfo:b,createNodeFromPopup:w,closeNewNodePopup:j,connectionPopup:x,createConnectionFromPopup:y,closeConnectionPopup:v,onDragEnd:N,setNodes:B,setEdges:D}=Zi({initialNodes:e,initialEdges:t}),{expandGroup:C,collapseGroup:M}=al(n,i,B,D),{handleCopy:E,handlePaste:X,hasCopiedNodes:U,copiedNodesCount:z}=sl();u.useEffect(()=>{if(!s)return;const ge=xe=>{console.log("🔍 [DEBUG] KeyDown:",{key:xe.key,code:xe.code,shiftKey:xe.shiftKey,ctrlKey:xe.ctrlKey,metaKey:xe.metaKey,altKey:xe.altKey,target:xe.target,defaultPrevented:xe.defaultPrevented,bubbles:xe.bubbles,timestamp:new Date().toISOString()})},ue=xe=>{console.log("🔍 [DEBUG] KeyUp:",{key:xe.key,code:xe.code,shiftKey:xe.shiftKey,timestamp:new Date().toISOString()})},he=xe=>{var Be,Oe;console.log("🔍 [DEBUG] Click:",{button:xe.button,shiftKey:xe.shiftKey,ctrlKey:xe.ctrlKey,metaKey:xe.metaKey,altKey:xe.altKey,target:(Be=xe.target)==null?void 0:Be.tagName,targetClass:(Oe=xe.target)==null?void 0:Oe.className,defaultPrevented:xe.defaultPrevented,bubbles:xe.bubbles,timestamp:new Date().toISOString()})},Fe=xe=>{console.log("🔍 [DEBUG] MouseDown:",{button:xe.button,shiftKey:xe.shiftKey,ctrlKey:xe.ctrlKey,metaKey:xe.metaKey,defaultPrevented:xe.defaultPrevented,timestamp:new Date().toISOString()})};return document.addEventListener("keydown",ge,!0),document.addEventListener("keyup",ue,!0),document.addEventListener("click",he,!0),document.addEventListener("mousedown",Fe,!0),console.log("🔍 [DEBUG] Event listeners activados. Presiona Shift + Click en un nodo para ver los eventos."),()=>{document.removeEventListener("keydown",ge,!0),document.removeEventListener("keyup",ue,!0),document.removeEventListener("click",he,!0),document.removeEventListener("mousedown",Fe,!0),console.log("🔍 [DEBUG] Event listeners desactivados.")}},[s]);const K=n.filter(ge=>!(!ge.selected||ge.type==="start"||ge.id==="start"||ge.type==="group")).length,F=K>0,$=u.useRef(C),R=u.useRef(M);u.useEffect(()=>{$.current=C,R.current=M},[C,M]),u.useEffect(()=>{const ge=async(he,Fe)=>{$.current&&await $.current(he,Fe)},ue=he=>{R.current&&R.current(he)};_e.setState({expandGroup:ge,collapseGroup:ue})},[]);const{getViewMode:G,setFlowViewportForTemplate:V}=_e(),{activeTemplate:P}=ze(),te=(P==null?void 0:P.id)??null,ee=_e(ge=>te!=null?ge.flowViewportByTemplateId[te]:void 0),A=u.useMemo(()=>{var ue,he;if(te==null)return;if(ee)return ee;const ge=(he=(ue=P==null?void 0:P.graph_layout)==null?void 0:ue.snapshot)==null?void 0:he.viewport;if(ge&&typeof ge.x=="number"&&typeof ge.y=="number"&&typeof ge.zoom=="number")return{x:ge.x,y:ge.y,zoom:ge.zoom}},[te,ee,(Ue=(ve=P==null?void 0:P.graph_layout)==null?void 0:ve.snapshot)==null?void 0:Ue.viewport]),H=u.useCallback((ge,ue)=>{te!=null&&V(te,ue)},[te,V]),{zoomPercentage:Y,handleZoomIn:O,handleZoomOut:I,handleZoomTo100:W,handleDoubleClick:_}=Qi({reactFlowWrapper:o,nodes:n,resetZoomHistoryKey:te}),q=(P!=null&&P.id?G(P.id):"readonly")==="readonly";u.useEffect(()=>{if(q)return;const ge=ue=>{const he=ue.target;he.tagName==="INPUT"||he.tagName==="TEXTAREA"||he.isContentEditable||((ue.ctrlKey||ue.metaKey)&&ue.key==="c"&&(ue.preventDefault(),E()),(ue.ctrlKey||ue.metaKey)&&ue.key==="v"&&(ue.preventDefault(),X()))};return document.addEventListener("keydown",ge),()=>{document.removeEventListener("keydown",ge)}},[E,X,q]);const L=u.useCallback((ge,ue)=>{const he=ge.target;he.tagName==="BUTTON"||he.closest("button")||he.closest('[role="button"]')||he.classList.contains("nopan")||he.classList.contains("nodrag")},[]),T=u.useCallback(ge=>{const ue=ge.filter(he=>{var Fe,xe;if(he.type==="position"&&he.dragging===!1){const Be=n.find(Oe=>Oe.id===he.id);if(Be&&he.position){const Oe=Math.abs((he.position.x||0)-(((Fe=Be.position)==null?void 0:Fe.x)||0)),ft=Math.abs((he.position.y||0)-(((xe=Be.position)==null?void 0:xe.y)||0));if(Oe<3&&ft<3)return!1}}return!0});ue.length>0&&h(ue)},[h,n]),Q=q?void 0:r,Z=q?void 0:T,ae=q?void 0:l,re=q?void 0:d,J=q?void 0:c,se=q?void 0:N,ce=q?void 0:m,me=q?void 0:f,ie=q?null:["Backspace","Delete"],be=q?{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},Ae=()=>{if(x)return{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}}};return a.jsxs("div",{className:"wrapper",ref:o,style:{width:"100%",height:"100vh"},children:[a.jsxs(oe.ReactFlow,{nodes:n,edges:i,nodeTypes:nl,onEdgesChange:Q,onNodesChange:Z,onConnect:ae,onConnectEnd:re,onBeforeDelete:J,onNodeDragStop:se,onNodesDelete:ce,onEdgesDelete:me,onNodeClick:L,onMoveEnd:H,...be,...A?{defaultViewport:A,fitView:!1}:{fitView:!0,fitViewOptions:{padding:2}},nodeOrigin:ol,defaultEdgeOptions:{type:"smoothstep"},connectionLineType:oe.ConnectionLineType.SmoothStep,deleteKeyCode:ie,multiSelectionKeyCode:q?null:"Shift",selectionOnDrag:!1,panOnDrag:q?!0:[0],nodeClickDistance:15,selectNodesOnDrag:!1,nodeDragThreshold:10,autoPanOnNodeDrag:!1,autoPanOnConnect:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",children:[a.jsx(oe.Background,{}),!q&&a.jsx(oe.Panel,{position:"bottom-left",className:"tm-m-0",children:a.jsxs("div",{className:"tm-bg-surface-default tm-border tm-border-black-light tm-rounded-lg tm-p-3 tm-shadow-02 tm-text-sm tm-text-neutral-500",children:[a.jsx("div",{className:"tm-font-semibold tm-text-neutral-900 tm-mb-2",children:"Atajos de teclado"}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-1",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"Shift"}),a.jsx("span",{children:"+ clic para seleccionar múltiples tareas"})]}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"Ctrl"}),a.jsx("span",{children:"+"}),a.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"C"}),a.jsx("span",{children:"Copiar"})]}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[a.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"Ctrl"}),a.jsx("span",{children:"+"}),a.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"V"}),a.jsx("span",{children:"Ppegar"})]})]})]})}),a.jsx(oe.Panel,{position:"top-left",className:"tm-m-0",children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-2",children:[a.jsxs("div",{children:[P.estatusFromStrapi===Ie.PUBLISHED&&a.jsx(p.Tag,{color:"success",label:"Publicado"}),P.estatusFromStrapi===Ie.DRAFT&&a.jsx(p.Tag,{color:"warning",label:"Borrador"})]}),!q&&K>0&&a.jsxs("p",{className:"tm-text-blue-dark-500 tm-text-xs tm-font-medium",children:[K," ",K===1?"tarea seleccionada":"tareas seleccionadas"]})]})}),a.jsx(oe.Panel,{position:"top-right",className:"tm-m-0",children:a.jsxs("div",{className:"tm-flex tm-gap-4",children:[!q&&a.jsxs(p.ButtonGroup,{children:[a.jsxs(p.Button,{leftSlot:le.faCopy,onClick:E,disabled:!F,size:"xxs",color:F?"primary":"secondary",title:F?`Copiar ${K} ${K===1?"tarea":"tareas"} (Ctrl+C)`:"Selecciona tareas para copiar (mantén Shift y haz clic)",children:["Copiar ",K>0&&`(${K})`]}),a.jsxs(p.Button,{leftSlot:le.faFile,size:"xxs",onClick:()=>X(),disabled:!U(),color:U()?"primary":"secondary",title:U()?`Pegar ${z} ${z===1?"tarea":"tareas"} (Ctrl+V)`:"No hay tareas copiadas",children:["Pegar ",z>0&&`(${z})`]})]}),a.jsxs(p.ButtonGroup,{color:"secondary",size:"xxs",children:[a.jsx(p.Button,{icon:le.faMinus,onClick:I,color:"secondary"}),a.jsxs(p.Button,{onClick:W,onDoubleClick:_,color:"secondary",children:[Y,"%"]}),a.jsx(p.Button,{icon:le.faPlus,onClick:O})]})]})})]},te??"flow-none"),g&&a.jsx(Wi,{isOpen:g.isOpen,position:g.position,onClose:j,createNodeFromPopup:w,parentNodeInfo:b()}),x&&a.jsx(el,{isOpen:x.isOpen,onClose:v,createConnectionFromPopup:y,availableConnections:Ae()})]})},il=({initialNodes:e,initialEdges:t,debugEvents:s})=>a.jsx(oe.ReactFlowProvider,{children:a.jsx(rl,{initialNodes:e,initialEdges:t,debugEvents:s})}),mt=Qe.create(e=>({step:1,setStep:t=>e({step:t}),reset:()=>e({step:1})})),ll=({limit:e})=>{const t=mt(r=>r.step),s=mt(r=>r.setStep),o=u.useCallback(()=>{t<e&&s(t+1)},[t,s,e]),n=u.useCallback(()=>{t>1&&t<=e&&s(t-1)},[t,s,e]),i=u.useCallback(r=>{r>0&&r<=e&&s(r)},[s,e]);return u.useMemo(()=>({step:t,nextStep:o,prevStep:n,onStepChange:i}),[t,o,n,i])},Ra=["fase_plantilla","tipo_plantilla","categoria","tipo_medio","medio_especifico","pertenencia_medio","ubicacion_medio","responsable_impresion"],za=["fase_plantilla","modo_configuracion","tipo_medio","formato_salida"],qa=["tipo_medio","formato_salida","medio_especifico"],$a={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"]}}},Ua={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 la(e){const[t,s]=u.useState([]),[o,n]=u.useState({}),{setClaveParams:i,templateFormData:r,setTemplateFormData:l,resetTemplateFormData:d,setDisableField:c,setClave:m,claveParams:f,setParamTipo:h}=Le(),{tasks_api:g}=pe(),b=mt(A=>A.step),{data:w,error:j,isSuccess:x,isError:y}=de.useQuery({queryKey:["paramsTipoPlantilla"],queryFn:async()=>{const A=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}),H=await g.get(`/api/params-tipos?${A}`);return H.data?{paramsTiposPlantilla:je(H.data.data)}:{paramsTiposPlantilla:[]}},refetchOnWindowFocus:!1});u.useEffect(()=>{j&&y&&console.log(j)},[j,y]),u.useEffect(()=>{if(w&&x){const A=w.paramsTiposPlantilla;s(A)}},[w,x]);const v={fase_plantilla:(A,H)=>{l({fase_plantilla:A}),h({fase_plantilla:H})},tipo_plantilla:(A,H)=>{l({tipo_plantilla:A}),h({tipo_plantilla:H})},modo_configuracion:(A,H)=>{l({modo_configuracion:A}),h({modo_configuracion:H})},categoria:(A,H)=>{l({categoria:A}),h({categoria:H})},formato_salida:(A,H)=>{l({formato_salida:A}),h({formato_salida:H})},tipo_medio:(A,H)=>{l({tipo_medio:A}),h({tipo_medio:H})},medio_especifico:(A,H)=>{l({medio_especifico:A}),h({medio_especifico:H})},responsable_impresion:(A,H)=>{l({responsable_impresion:A}),h({responsable_impresion:H})},pertenencia_medio:(A,H)=>{l({pertenencia_medio:A}),h({pertenencia_medio:H})},ubicacion_medio:(A,H)=>{l({ubicacion_medio:A}),h({ubicacion_medio:H})}},N={fase_plantilla:(A,H)=>i({field:A,value:H}),tipo_plantilla:(A,H)=>i({field:A,value:H}),categoria:(A,H)=>i({field:A,value:H}),tipo_medio:(A,H)=>i({field:A,value:H}),medio_especifico:(A,H)=>i({field:A,value:H}),responsable_impresion:(A,H)=>i({field:A,value:H}),pertenencia_medio:(A,H)=>i({field:A,value:H}),ubicacion_medio:(A,H)=>i({field:A,value:H})},B={Digital:{execute:()=>{const A=t.filter(O=>O.step===3).find(O=>O.key==="responsable_impresion").params_plantillas.find(O=>O.name==="N/A").id,H="step3.responsable_impresion",Y=["responsable_impresion"];l({responsable_impresion:"N/A"}),e(H,A),c({fields:Y,value:!0}),i({field:"responsable_impresion",value:"NA"})}},Impreso:{execute:()=>{const A="step3.responsable_impresion",H=["responsable_impresion"];l({responsable_impresion:""}),e(A,""),c({fields:H,value:!1}),i({field:"responsable_impresion",value:""})}}},D={"Sitios Fijos":{execute:()=>z()},"Vallas Móviles":{execute:()=>k()},Indoors:{execute:()=>z()},Camiones:{execute:()=>K()},"Brand Riders":{execute:()=>K()}},C={"Sitios Fijos":{execute:()=>U()},"Vallas Móviles":{execute:()=>U()},Indoors:{execute:()=>U()},Camiones:{execute:()=>{X(),B.Impreso.execute()}},"Brand Riders":{execute:()=>{X(),B.Impreso.execute()}}},M={"Sitios Fijos":{execute:()=>E()},"Vallas Móviles":{execute:()=>X()},Indoors:{execute:()=>E()},Camiones:{execute:()=>X()},"Brand Riders":{execute:()=>X()}},E=()=>{const A=["medio_especifico"],H=r.modo_configuracion,Y=`step${b}.medio_especifico`,O=`step${b}.formato_salida`;c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0}),c(H==="Default"?{fields:A,value:!0}:{fields:A,value:!1}),l({medio_especifico:""}),l({formato_salida:""}),e(Y,""),e(O,""),i({field:"medio_especifico",value:""}),i({field:"formato_salida",value:""})},X=()=>{const A=t.filter(W=>W.step===b).find(W=>W.key==="formato_salida").params_plantillas.find(W=>W.name==="Impreso").id;c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0});const Y=`step${b}.formato_salida`,O=["formato_salida","medio_especifico"],I=`step${b}.medio_especifico`;l({medio_especifico:""}),l({formato_salida:"Impreso"}),e(Y,A),e(I,""),i({field:"medio_especifico",value:""}),i({field:"tipo_medio",value:r.tipo_medio}),c({fields:O,value:!0})},U=()=>{const A=["formato_salida"],H=`step${b}.formato_salida`,Y={};Y.formato_salida="",l(Y),e(H,""),c({fields:A,value:!1})},z=()=>{const A=["formato_salida","medio_especifico"],H=`step${b}.formato_salida`,Y={};Y.formato_salida="",l(Y),e(H,""),c({fields:A,value:!1})},k=()=>{const A=["formato_salida"],H=["medio_especifico"],Y=`step${b}.formato_salida`,O=`step${b}.medio_especifico`,I={};I.formato_salida="",I.medio_especifico="",l(I),e(Y,""),e(O,""),c({fields:A,value:!1}),c({fields:H,value:!0})},K=()=>{const A=t.filter(I=>I.step===b).find(I=>I.key==="formato_salida").params_plantillas.find(I=>I.name==="Impreso").id,H=`step${b}.formato_salida`,Y=`step${b}.medio_especifico`,O=["formato_salida","medio_especifico"];l({formato_salida:"Impreso"}),e(H,A),e(Y,""),c({fields:O,value:!0}),B.Impreso.execute()},F=(A,H)=>{Object.keys($a).includes(A)&&$a[A][H].fieldsToClear.forEach(I=>{const W={};W[I]="",l(W),i({field:I,value:""}),e&&[...new Set(t.map(S=>S.step))].forEach(S=>{const q=`step${S}.${I}`;e(q,"")})})},$=(A,H,Y)=>A==="modo_configuracion"&&Y?Ua[A][Y][H].fieldsToEnableDisable:Ua[A][H].fieldsToEnableDisable,R=A=>t.filter(H=>H.step===A),G=A=>{var H;return o[A]||((H=t.find(Y=>Y.key===A))==null?void 0:H.params_plantillas)},V=(A,H)=>{var O,I,W,_;let Y=[];A==="Sitios Fijos"?H==="Preventa"?Y=(O=t.find(S=>S.key==="medio_especifico"))==null?void 0:O.params_plantillas.filter(S=>S.tipomedio_nombre==="OOH"&&S.name==="PANTALLA DIGITAL"):H==="Venta"&&(Y=(I=t.find(S=>S.key==="medio_especifico"))==null?void 0:I.params_plantillas.filter(S=>S.tipomedio_nombre==="OOH")):A==="Indoors"?Y=(W=t.find(S=>S.key==="medio_especifico"))==null?void 0:W.params_plantillas.filter(S=>S.tipomedio_nombre==="InDoor"):Y=(_=t.find(S=>S.key==="medio_especifico"))==null?void 0:_.params_plantillas,n(S=>({...S,medio_especifico:Y}))},P=(A,H)=>{const Y=A.key;if(qa.includes(Y)&&Y==="tipo_medio"){const O=H.label,I=r.fase_plantilla,W=r.modo_configuracion;if(I==="Preventa"){V(O,I);return}else if(W==="Especifico"){V(O,I);return}}},te=(A,H,Y)=>{const O=A.params_plantillas.find(I=>A.key==="categoria"?I.reference_id===H.value:I.id===H.value);if(O){const I=A.key,W=H.label;if(v[I](W,Y),za.includes(I))if(F(I,W),I==="fase_plantilla"){const _=W,S=$(I,_);c({fields:["categoria","modo_configuracion","tipo_plantilla"],value:!0}),S.length>0&&c({fields:S,value:!1}),_==="Preventa"&&c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(I==="modo_configuracion"){const _=W,S=r.fase_plantilla,q=$(I,_,S);c({fields:["medio_especifico","formato_salida"],value:!0}),q.length>0&&c({fields:q,value:!1}),S==="Preventa"&&c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(I==="tipo_medio"){const _=W,S=r.modo_configuracion;r.fase_plantilla==="Venta"?S==="Especifico"?D[_].execute():C[_].execute():M[_].execute()}else if(I==="formato_salida")B[W].execute();else{const _=$(I,W);_.length>0&&c({fields:_,value:!1})}if(Ra.includes(I)){let _="",S="";if(I==="formato_salida"){const q=r.modo_configuracion,L=W;S="tipo_medio",_=q==="Default"&&L==="Digital"?_="DDG":_="DRP"}else S=I,_=O.abbreviation;N[S](S,_)}qa.includes(I)&&P(A,H)}},ee=()=>{if(r){const A=r.fase_plantilla;if(A==="Preventa"){const H=r.modo_configuracion,Y=f.fase_plantilla||"XX";let O=null;if(H==="Default")O=f.tipo_medio||"XXX";else{const W=r.tipo_medio;["Vallas Móviles","Camiones","Brand Riders"].includes(W)?O=f.tipo_medio||"XXX":O=f.medio_especifico||"XXX"}const I=`${Y}-${O}`;m(I)}if(A==="Venta"){const H=f.fase_plantilla||"XX",Y=f.tipo_plantilla||"XXX",O=f.categoria||"XX",I=f.medio_especifico||f.tipo_medio||f.modo_configuracion||"XXX",W=f.responsable_impresion||"XX",_=f.pertenencia_medio||"X",S=f.ubicacion_medio||"X",q=`${H}-${Y}-${O}-${I}-${W}-${_}-${S}`;m(q)}}};return u.useEffect(()=>{ee()},[f]),{templateFields:t,getFieldsByStep:R,dropdownFunctionsUpdateClave:N,fieldsForUpdateClave:Ra,resetTemplateFormData:d,fieldsWithDisableTrigger:za,getFieldsToDisable:$,handleOptionSelected:te,getFilteredOptions:G,dropdownFunctionsUpdateFormData:v}}const ca=()=>{const{control:e,setValue:t}=Ce.useFormContext(),s=mt(c=>c.step),{getFieldsByStep:o,handleOptionSelected:n,getFilteredOptions:i}=la(t),{disabledFields:r}=Le(),l=u.useMemo(()=>o(s),[s,o]),d=c=>`El campo ${c.charAt(0).toLocaleLowerCase()+c.slice(1)} es requerido`;return l.map(c=>{const m=`step${c.step}.${c.key}`,f=c.label,g=i(c.key).map(b=>({label:b.name,value:c.key==="categoria"?b.reference_id:b.id}));return a.jsx(Ce.Controller,{name:m,control:e,rules:{required:{value:!r[c.key],message:d(f)},validate:b=>r[c.key]||b?!0:d(f)},render:({field:b,fieldState:{error:w}})=>a.jsx("div",{children:a.jsx(p.Dropdown,{label:f,value:b.value,onValueChange:j=>{b.onChange(j)},error:w==null?void 0:w.message,options:g,onOptionSelect:j=>{n(c,j,c.id)},disabled:r[c.key]||!1})})},c.id)})},cl=()=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:a.jsx(ca,{})}),dl=()=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:a.jsx(ca,{})}),ml=()=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:a.jsx(ca,{})}),ul=({step:e})=>a.jsxs("div",{className:"tm-flex tm-min-h-[270px] tm-flex-col tm-gap-y-4",children:[e===1&&a.jsx(cl,{}),e===2&&a.jsx(dl,{}),e===3&&a.jsx(ml,{})]}),pl=e=>{const t={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((s,o)=>{const n=`step${o.step}`,i=t[n];return i&&i.includes(o.key)&&(s[n]||(s[n]={}),s[n][o.key]=""),s},{})},fl=e=>{const t={step1:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria"],step2:["tipo_medio","formato_salida","medio_especifico"],step3:["responsable_impresion","pertenencia_medio","ubicacion_medio"]},s={};return Object.keys(t).forEach(o=>{s[o]={},t[o].forEach(n=>{var r;const i=(r=e[o])==null?void 0:r[n];s[o][n]=i!==void 0?i:""})}),s},gl=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 hl(e,t){const{clave:s,paramsTipo:o,currentTemplateForEdit:n,isEditTemplate:i,setDisableField:r,setClaveParams:l,isDuplicateTemplate:d,templateFormData:c}=Le(),{tasks_api:m}=pe(),{getFieldsByStep:f,dropdownFunctionsUpdateFormData:h,templateFields:g}=la(),b=()=>{var D;try{const C={},M=e(),E=fl(M),{step1:X}=E,U=[];C.clave=s,X.categoria!=""&&(C.categoria=X.categoria);for(const[z,k]of Object.entries(E))for(const[K,F]of Object.entries(k)){const $={id:null,params_tipo:{id:null}};if(F!=""){const R=o[K];if(K==="categoria"){const G=g.find(P=>P.key==="categoria"),V=(D=G==null?void 0:G.params_plantillas)==null?void 0:D.find(P=>P.reference_id===F);$.id=V==null?void 0:V.id}else $.id=F;$.params_tipo.id=R,U.push($)}}return Object.keys(U).length>0&&(C.params_plantillas=U),C}catch(C){console.log(C)}},w=async D=>{var C;try{let M=null;return i?M=await m.put(`/api/plantillas/${n.id}`,{data:D}):M=await m.post("/api/plantillas",{data:D}),M.data?je(M.data):null}catch(M){throw console.error("Error en saveTemplateToStrapi:",{error:M.message,status:(C=M.response)==null?void 0:C.status}),M}},j=async D=>{var C;try{const M=Pe.stringify({filters:{plantilla:{id:D}},populate:{graph_layout:!0}},{encodeValuesOnly:!0}),E=await m.get(`/api/plantillas/plantilla-tareas-grafico?${M}`);return E.data?je(E.data.data):null}catch(M){throw console.error("Error en getTemplateWithTasks:",{error:M.message,status:(C=M.response)==null?void 0:C.status}),M}},x=async(D,C,M)=>{var E,X,U,z,k,K,F;try{const $=await j(D),R=await j(C);if(!$||!$.tarea_plantillas)return console.warn("No se encontraron tareas para duplicar en la plantilla original"),null;const G=new Map,V=new Map;let P=1;$.tarea_plantillas.forEach(Y=>{let O=null;Y.start?O=M:O=-(Date.now()+P++),G.set(Y.id,O)}),(X=(E=$.graph_layout)==null?void 0:E.snapshot)!=null&&X.nodes&&$.graph_layout.snapshot.nodes.forEach(Y=>{const O=`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`;V.set(Y.id,O)});const te=$.tarea_plantillas.filter(Y=>!Y.start).map(Y=>{var I,W,_,S;return{id:G.get(Y.id),uuid:crypto.randomUUID(),reference_graph:Y.reference_graph,texto_corto:Y.texto_corto,texto_largo:Y.texto_largo||null,prioridad:Y.prioridad,nivel_dificultad:Y.nivel_dificultad,duracion:Y.duracion,start:Y.start,type:Y.type||"task",equipo:((I=Y.equipo)==null?void 0:I.id)||null,responsable:((W=Y.responsable)==null?void 0:W.id)||null,plantilla:{id:C,clave:$.clave,categoria:$.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:G.get((_=Y.id_t_requerida)==null?void 0:_.id)||null,ids_t_dependientes:[],tarea_padre:G.get((S=Y.tarea_padre)==null?void 0:S.id)||null,tareas:[]}});let ee=null;if($.graph_layout){const Y=R.tarea_plantillas.find(O=>O.start===!0);ee={...$.graph_layout,id:(U=R.graph_layout)==null?void 0:U.id,snapshot:{...$.graph_layout.snapshot,edges:$.graph_layout.snapshot.edges.map(O=>{if(O.source==="start")return{...O,data:{...O.data,childId:te.find(I=>I.reference_graph===O.target).id,parentId:Y.id}};{const I=te.find(W=>W.reference_graph===O.target);return{...O,data:{...O.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:((k=(z=$.graph_layout.snapshot)==null?void 0:z.nodes)==null?void 0:k.map(O=>{let I={};return O.type==="start"?I={...O,data:{...O.data,tareaId:Y.id}}:I={...O,data:{tareaId:null}},I}))||[]}}}if(!ee)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 A={graph_layout:ee,tasks:{created:te,updated:[],deleted:[]}},H=await m.post("/api/tareas/save-tareas-grafico",{data:A});if(H.data&&H.status===200){const Y=await j(C),O=new Map;Y.tarea_plantillas.forEach(_=>O.set(_.reference_graph,_.id));let I=Y.graph_layout;return(!((K=I==null?void 0:I.snapshot)!=null&&K.nodes)||I.snapshot.nodes.length===0)&&(console.log("Graph layout vacío, reconstruyendo desde el original..."),I=ee),(F=I==null?void 0:I.snapshot)!=null&&F.nodes&&(I.snapshot.nodes=I.snapshot.nodes.map(_=>{var T;const S={..._,position:_.position||{x:0,y:0}},q=S.id,L=O.get(q);if(L)return{...S,data:{...S.data,id:L,tareaId:L}};if((T=S.data)!=null&&T.tareaId){const Q=Y.tarea_plantillas.find(Z=>Z.reference_graph===q);if(Q)return{...S,data:{...S.data,id:Q.id,tareaId:Q.id}}}return S})),await m.put(`/api/plantillas/${C}`,{data:{graph_layout:I}}),await j(C)}return null}catch($){throw console.error("Error al duplicar las tareas de la plantilla:",$),$}},y=async()=>{var D,C;try{const M=b(),E=await w(M);if(!E)return{success:!1,message:"No se pudo guardar el flujo de trabajo en Strapi",error:"templateData es null"};const X=Pe.stringify({filters:{id:{$eq:E.id}},populate:{tarea_plantillas:{filters:{start:{$eq:!0}}}}},{encodeValuesOnly:!0}),{data:U}=await m.get(`/api/plantillas?${X}`),k=je(U.data)[0].tarea_plantillas[0].id;if(d&&(n!=null&&n.id))try{const F=await x(n.id,E.id,k);return F?{success:!0,message:"Flujo de trabajo duplicado completamente con todas sus tareas",data:F}:{success:!0,message:"Flujo de trabajo creado, pero no se pudieron duplicar las tareas",data:await j(E.id)}}catch(F){return console.error("Error al duplicar tareas:",F),{success:!0,message:"Flujo de trabajo creado, pero hubo un error al duplicar las tareas",data:await j(E.id)}}const K=await j(E.id);return K?{success:!0,message:"Flujo de trabajo creado y sincronizado completamente",data:K}:{success:!1,message:"No se pudieron obtener los datos completos del flujo de trabajo",error:"completeData es null"}}catch(M){const E=gl(((C=(D=M==null?void 0:M.response)==null?void 0:D.data)==null?void 0:C.error)||M);return console.error("Error al guardar el flujo de trabajo: ",{level:E.failureLevel,message:E.errorMessage,technicalDetails:E.technicalDetails}),{success:!1,message:E.errorMessage||"Error al guardar el flujo de trabajo",error:E.technicalDetails||M.message}}},v=()=>{const D=n==null?void 0:n.params_plantillas;if(!(D!=null&&D.length))return;const C={};[1,2,3].forEach(E=>{const X=`step${E}`;C[X]={},f(E).forEach(z=>{var K;const k=D.find(F=>F.params_tipo.key===z.key);if(k){let F=null;if(z.key==="categoria"){const $=(K=z.params_plantillas)==null?void 0:K.find(R=>R.id===k.id);F=($==null?void 0:$.reference_id)||k.id}else F=k.id;C[X][z.key]=F}})}),t(C)},N=()=>{var C;const D=n==null?void 0:n.params_plantillas;if(D!=null&&D.length)for(const M of D){const{params_tipo:{id:E,key:X},name:U,id:z}=M,k=g.find(F=>F.key===X),K=(C=k==null?void 0:k.params_plantillas)==null?void 0:C.find(F=>F.id===z);h[X]&&h[X](U,E),K&&l({field:X,value:K.abbreviation})}},B=()=>{try{const{fase_plantilla:D,modo_configuracion:C,formato_salida:M,tipo_medio:E}=c;if(D==="Venta")r({fields:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria","tipo_medio"],value:!1}),C==="Default"?(r({fields:["tipo_medio","formato_salida"],value:!1}),r({fields:["medio_especifico"],value:!0}),["Sitios Fijos","Vallas Móviles","Indoors"].includes(E)||r({fields:["formato_salida","medio_especifico"],value:!0}),M==="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(E)&&r({fields:["formato_salida","medio_especifico"],value:!1}),["Vallas Móviles"].includes(E)&&(r({fields:["formato_salida"],value:!1}),r({fields:["medio_especifico"],value:!0})),["Camiones","Brand Riders"].includes(E)&&r({fields:["formato_salida","medio_especifico"],value:!0}),M==="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}),C=="Default"){const X=["formato_salida","medio_especifico","responsable_impresion","pertenencia_medio","ubicacion_medio"];r({fields:["tipo_medio"],value:!1}),r({fields:X,value:!0})}else["Sitios Fijos","Indoors"].includes(E)?(r({fields:["formato_salida"],value:!0}),r({fields:["medio_especifico"],value:!1})):r({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!0})}catch(D){console.error("Error al aplicar reglas de habilitar y deshabilitar campos",D)}};return u.useEffect(()=>{(i||d)&&n&&(v(),N())},[i,d,n]),u.useEffect(()=>{(i||d)&&c&&B()},[i,c,d]),{savePlantilla:y,getTemplateWithTasks:j}}const xl=()=>{const{watch:e,getValues:t}=Ce.useFormContext(),{templateFormData:s,isDuplicateTemplate:o,currentTemplateForEdit:n}=Le(),[i,r]=u.useState(!1),l=u.useRef(null),d=u.useRef(null),c=u.useRef(!1),m=e();return u.useEffect(()=>{if(!c.current&&o&&n){const h=setTimeout(()=>{l.current=t(),d.current={...s},c.current=!0,r(!1)},500);return()=>clearTimeout(h)}},[o,n,t,s]),u.useEffect(()=>{if(l.current&&d.current&&c.current){const h=t(),g=s,b=JSON.stringify(h)!==JSON.stringify(l.current),w=JSON.stringify(g)!==JSON.stringify(d.current);r(b||w)}},[m,s,t]),{hasChanges:i,resetChanges:()=>{l.current=null,d.current=null,c.current=!1,r(!1)}}},bl=({onReset:e})=>{const{hasChanges:t,resetChanges:s}=xl(),{setHasFormChanges:o}=Le();return u.useEffect(()=>{o(t)},[t,o]),u.useEffect(()=>{e(s)},[e,s]),null},yl=({isOpen:e,onClose:t})=>{const{step:s,nextStep:o,prevStep:n,onStepChange:i}=ll({limit:3}),r=mt(I=>I.reset),{templateFields:l,resetTemplateFormData:d}=la(),{clave:c,resetClave:m,resetDisabledFields:f,isEditTemplate:h,setIsEditTemplate:g,refetch:b,isDuplicateTemplate:w,hasFormChanges:j,setIsDuplicateTemplate:x,setCurrentTemplateForEdit:y}=Le(),{openTemplate:v}=$e(),[N,B]=u.useState(!1),[D,C]=u.useState(""),[M,E]=u.useState(!1),X=u.useRef(null),U=I=>{X.current=I},z=u.useMemo(()=>pl(l),[l]),k=s===1,K=s===3,F=k?"Cancelar":"Atrás",$=Ce.useForm({mode:"onChange",defaultValues:z}),{trigger:R,reset:G,clearErrors:V,getValues:P}=$,{savePlantilla:te}=hl(P,G),ee=u.useRef(!1);u.useEffect(()=>{e&&(r(),ee.current=!1)},[e,r]),u.useEffect(()=>{e&&!h&&!w&&!ee.current&&(G(z),d(),ee.current=!0)},[e,h,w,G,z,d]);const A=async()=>{if(await R()){if(s===3){if(!j&&w){C("Ya existe un proceso con éstos parámetros. Modifica al menos uno para poder duplicarlo."),E(!0);return}try{B(!0);const W=await te();if(W.success){const _=W.data;if(O(),Y(),E(!1),!h)try{await v({template:_,statusTemplate:Te.NEW})}catch(S){console.warn("La plantilla se creó exitosamente pero hubo un problema al abrirla:",S)}b()}else{const{error:_}=W;C(_),E(!0)}}catch(W){console.error("Error inesperado al guardar la plantilla:",W);return}finally{B(!1)}}o()}},H=()=>{C(""),E(!1)},Y=()=>{V(),G(z),d(),f(),m(),H(),g(!1),x(!1),y(null),X.current&&X.current()},O=()=>{Y(),ee.current=!1,t(),console.log("cerrar modal")};return N?a.jsx(pt,{isLoading:N}):a.jsxs(Ce.FormProvider,{...$,children:[a.jsx(bl,{onReset:U}),a.jsx(p.Modal,{isOpen:e,closeAtCancel:!1,onSuccess:A,cancelButtonText:F,successButtonText:K?h?"Guardar":"Crear":"Continuar",onCancel:k?O:n,onClose:O,size:"sm",iconConfig:{icon:ne.faFilePen},title:h?"Editar flujo de trabajo":"Nuevo flujo de trabajo",children:a.jsxs(p.Modal.Body,{children:[a.jsx("div",{className:"tm-flex tm-w-full tm-overflow-x-auto tm-pb-16 tm-pt-12",children:a.jsx("div",{className:"tm-flex tm-w-full",style:{justifyContent:"center",minWidth:"fit-content"},children:a.jsx(p.Stepper,{currentStep:s-1,onStepChange:I=>i(I+1),steps:[{title:"Paso 1",description:"INFORMACIÓN"},{title:"Paso 2",description:"DETALLES"},{title:"Paso 3",description:"PRODUCCIÓN"}]})})}),a.jsx("div",{className:"tm-flex tm-w-full tm-justify-center",children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-gap-0",children:[a.jsx("div",{className:"tm-bg-canvas-default tm-rounded-[100px] tm-p-2",style:{width:"fit-content",minWidth:"fit-content"},children:a.jsx("div",{className:"tm-font-bold tm-py-1 tm-p-[90px]",children:c})}),a.jsx("div",{className:"tm-bg-blue-500 tm-text-white tm-px-3 tm-py-1.5 tm-font-medium tm--mt-4",style:{borderRadius:"100px",fontSize:"10px"},children:"CLAVE"})]})}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-4 tm-p-16",children:[M&&a.jsx(p.Alert,{open:!0,color:"danger",message:D,className:"tm-mb-6",onClose:H}),a.jsx(ul,{step:s})]})]})})]})},jl=({isOpen:e,onClose:t,replaceTemplate:s})=>a.jsx(a.Fragment,{children:a.jsx(p.Modal,{isOpen:e,closeAtCancel:!1,cancelButtonText:"Cancelar",successButtonText:"Abrir",onCancel:t,onClose:t,onSuccess:s,size:"sm",iconConfig:{icon:le.faExclamationTriangle},title:"Límite de flujos de trabajo",children:a.jsx(p.Modal.Body,{children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-overflow-auto tm-w-full tm-p-4 tm-gap-8",children:[a.jsx("div",{className:"tm-flex tm-justify-center tm-w-full",style:{minWidth:"fit-content"},children:a.jsx("div",{className:"tm-flex tm-justify-center tm-items-center tm-gap-[10px] tm-rounded-full tm-p-16",style:{backgroundColor:"#EBEEF9"},children:a.jsx(p.Icon,{name:le.faExclamationTriangle,size:"lg",color:"blue"})})}),a.jsx("div",{className:"tm-text-center tm-mt-6",children:a.jsx("h2",{className:"tm-text-[24px] tm-font-bold tm-text-brand tm-leading-tight",children:"¿Quieres continuar?"})}),a.jsx("div",{className:"tm-text-center tm-mt-2",children:a.jsx("div",{className:"tm-text-[12px] tm-font-normal tm-text-[#6B6B6B]",children:"Ya tienes 5 flujos de trabajo abiertos, si abres uno nuevo, se cerrará automáticamente el que lleva más tiempo sin usarse."})})]})})})}),wl=Qe.create(e=>({cachedTemplate:null,canCreateTemplate:!1,setCachedTemplate:t=>e({cachedTemplate:t}),clearCachedTemplate:()=>e({cachedTemplate:null}),setCanCreateTemplate:t=>{const s=!(t<5);e({canCreateTemplate:s})}})),vl=({isOpen:e,onClose:t,discardChanges:s,saveAndExit:o})=>a.jsx("div",{children:a.jsx(p.Modal,{isOpen:e,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Guardar y salir",onCancel:t,onClose:t,onSuccess:o,size:"sm",iconConfig:{icon:le.faExclamationTriangle},title:"Cambios sin guardar",children:a.jsx(p.Modal.Body,{children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-overflow-auto tm-w-full tm-p-4 tm-gap-8",children:[a.jsx("div",{className:"tm-flex tm-justify-center tm-w-full",style:{minWidth:"fit-content"},children:a.jsx("div",{className:"tm-flex tm-justify-center tm-items-center tm-gap-[10px] tm-rounded-full tm-p-16 tm-bg-canvas-default",children:a.jsx(p.Icon,{name:le.faSave,size:"lg",color:"brand"})})}),a.jsx("div",{className:"tm-flex tm-flex-col tm-mx-6",children:a.jsx(p.Alert,{open:!0,variant:"outlined",color:"danger",showCloseButton:!1,message:"Tienes cambios sin guardar en este flujo de trabajo",title:"No has guardado",className:"tm-mt-8"})}),a.jsx("div",{className:"tm-text-center tm-mt-5",children:a.jsx("h2",{className:"tm-text-[24px] tm-font-bold tm-text-brand",children:"¿Qué deseas hacer antes de salir?"})}),a.jsx("div",{className:"tm-text-center tm-mt-1",children:a.jsx("div",{className:"tm-text-[12px] tm-font-normal tm-text-[#6B6B6B]",children:"Si sales ahora sin guardar se perderán los cambios actuales."})}),a.jsx("div",{className:"tm-flex tm-justify-center tm-mt-4",children:a.jsx(p.Button,{size:"xs",color:"secondary",onClick:()=>{s(),t()},children:"Descartar cambios"})})]})})})}),Zs=({isOpen:e,onClose:t,publishTemplate:s})=>a.jsx(p.Modal,{isOpen:e,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Confirmar",onCancel:t,onClose:t,onSuccess:s,size:"sm",iconConfig:{icon:le.faArrowUp},title:"Publicar",children:a.jsx(p.Modal.Body,{children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-overflow-auto tm-w-full tm-p-8 tm-gap-16",children:[a.jsx("div",{className:"tm-flex tm-justify-center tm-w-full",style:{minWidth:"fit-content"},children:a.jsx(p.Icon,{name:le.faArrowUp,size:"lg",color:"blue",background:!0,padding:"lg"})}),a.jsx("div",{className:"tm-text-center",children:a.jsx("h2",{className:"tm-text-[24px] tm-font-bold tm-text-[#3658C1] tm-leading-tight",children:"¿Estás seguro de que deseas publicar este proceso?"})}),a.jsx("div",{className:"tm-text-center",children:a.jsx("div",{className:"tm-text-[12px] tm-font-normal tm-text-[#6B6B6B]",children:"Al publicar este proceso, estará disponible para su uso en los flujos correspondientes. Asegúrate de que toda la información sea correcta antes de continuar."})})]})})}),_l=()=>{const e="grid",t="create-edit",s=u.useRef(null),{isOpenModalLimit:o,setIsOpenModalLimit:n,setOpenModalCreateTemplate:i,openModalCreateTemplate:r,setOpenModalUnsavedChanges:l,openModalUnsavedChanges:d,openModalPublishTemplate:c,setOpenModalPublishTemplate:m,setCurrentTemplateForEdit:f,setIsDuplicateTemplate:h,setIsEditTemplate:g}=Le(),{removeTemplateStates:b}=ut(),{mode:w,setMode:j,setViewMode:x,getViewMode:y}=_e(),{setCanCreateTemplate:v,canCreateTemplate:N}=wl(),B=w===e,{screens:D,get:C,delete:M,activeTemplate:E,activateTemplate:X,reorderingTemplates:U,replaceTemplate:z,saveTemplateChanges:k,publishTemplate:K,loadingPublishTemplate:F,loadingSaveChanges:$}=$e(),R=178,[G,V]=u.useState([]),[P,te]=u.useState([]),[ee,A]=u.useState(null),[H,Y]=u.useState(!1),O=E!=null&&E.id?y(E.id):"readonly";u.useEffect(()=>{const J=()=>{if(!s.current)return;const ce=s.current.offsetWidth;let me=0;const ie=[],ye=[],fe=10,be=s.current.querySelector("button:not([data-screen])"),Ae=s.current.querySelector(".tm-mx-1");let ve=0;be&&(ve+=be.getBoundingClientRect().width),Ae&&D.length>0&&(ve+=Ae.getBoundingClientRect().width,ve+=fe);const Ue=(ue,he)=>{const Oe=he?54:0,ft=(ue==null?void 0:ue.length)*8;return Math.max(80,ft+40+Oe)},ge=ce-R-ve;D.forEach((ue,he)=>{const Fe=!!(ue.isNew||ue.badgeLabel),xe=Ue(ue.clave,Fe),Be=he>0?fe:0,Oe=xe+Be;me+Oe<=ge?(ie.push(ue),me+=Oe):ye.push(ue)}),V(ie),te(ye)},se=()=>{const ce=D.length;v(ce)};return D.length>0&&(J(),se(),window.addEventListener("resize",J)),()=>{window.removeEventListener("resize",J)}},[D,w]);const I=J=>J.estatus===Te.DIRTY||J.estatus===Te.NEW,W=async J=>{I(J)?(A(J.id),l(!0)):await M(J.id)},_=()=>m(!0),S=async()=>{await M(ee),await b(ee)},q=async()=>{await k(!1)},L=async()=>{await k()},T=()=>{var se,ce;const J=(ce=(se=E==null?void 0:E.graph_layout)==null?void 0:se.snapshot)==null?void 0:ce.nodes.length;Y(()=>J-1>=1)};u.useEffect(()=>{T()},[E,O]);const Q=()=>!((E==null?void 0:E.estatus)==Te.IDLE&&H&&E.estatusFromStrapi!==Ie.PUBLISHED),Z=()=>{var ce;const J=(ce=E==null?void 0:E.graph_layout)==null?void 0:ce.snapshot,se=J==null?void 0:J.nodes;return se==null?void 0:se.some(me=>{var ie,ye;return me.type!=="start"&&((ie=me==null?void 0:me.data)==null?void 0:ie.tarea_padre)===null&&((ye=me==null?void 0:me.data)==null?void 0:ye.id_t_requerida)===null})},ae=()=>(E==null?void 0:E.estatus)===Te.IDLE||Z()?!0:!H,re=async()=>{await K(E.id)};return $||F?a.jsx(pt,{isLoading:$||F}):a.jsxs("div",{className:"tm-flex tm-gap-4 tm-justify-between tm-items-center tm-flex-wrap",children:[r&&a.jsx(yl,{isOpen:r,onClose:()=>i(!1)}),o&&a.jsx(jl,{isOpen:o,onClose:()=>n(!1),replaceTemplate:z}),d&&a.jsx(vl,{isOpen:d,onClose:()=>l(!1),discardChanges:S,saveAndExit:L}),c&&a.jsx(Zs,{isOpen:c,onClose:()=>m(!1),publishTemplate:re}),a.jsxs("div",{className:"tm-flex tm-gap-2.5 tm-items-center tm-justify-between tm-flex-1 tm-flex-wrap",ref:s,children:[a.jsxs("div",{className:"tm-flex tm-gap-2.5 tm-items-center tm-justify-start tm-flex-1 tm-flex-wrap",children:[a.jsx(p.Button,{size:"xs",color:B?"primary":"secondary",onClick:()=>j(e),children:"Listado de flujos"}),D.length>0&&a.jsx(p.Separator,{vertical:!0,className:"tm-mx-1"}),D.filter(J=>G.some(se=>se.clave===J.clave)).map(J=>{const se=(E==null?void 0:E.clave)===J.clave&&w===t;return a.jsxs(p.Button,{"data-screen":J.clave,size:"xs",onClick:async()=>{await X(J),j(t,J.id)},color:se?"primary":"secondary",leftSlot:Ee.faFilePen,badgeColor:I(J)?"warning":void 0,onClickRightSlot:()=>W(J),rightSlot:Ee.faXmark,children:[J.clave," ",J.status]},J.id)})]}),P.length>0&&a.jsx(p.Popup,{absolute:!0,rightSlot:Ee.faAngleDown,label:`${P.length}+`,size:"xs",color:"secondary",children:a.jsx("div",{className:"tm-py-2 tm-gap-4",style:{minWidth:"280px"},children:a.jsx(p.List,{icon:Ee.faFilePen,items:P.map(J=>({id:J.id,label:J.clave})),className:"tm-p-8 tm-gap-4",onClick:async J=>{const se=await C(J.id);await U(se.id),await X(se),j("create-edit",se.id)}})})})]}),w===t?a.jsx("div",{className:"tm-flex tm-gap-4 tm-items-center tm-justify-end tm-flex-wrap",children:E.estatusFromStrapi!==Ie.PUBLISHED&&a.jsxs(a.Fragment,{children:[a.jsx(p.Button,{color:"secondary",size:"xs",leftSlot:Ee.faArrowUp,disabled:Q(),onClick:_,children:"Publicar"}),O=="readonly"&&a.jsx(p.Button,{size:"xs",color:"primary",leftSlot:Ee.faEdit,onClick:()=>(E==null?void 0:E.id)&&x(E.id,"edit"),children:"Editar"}),O==="edit"&&a.jsx(p.Button,{size:"xs",color:"primary",leftSlot:Ee.faSave,onClick:q,disabled:ae(),children:"Guardar"})]})}):a.jsx(p.Button,{disabled:N,tooltip:N?"Límite de 5 plantillas con cambios sin guardar. Guarda y cierra alguna para crear una nueva.":"",leftSlot:Ee.faPlus,size:"xs",color:"primary",onClick:()=>{f(null),h(!1),g(!1),i(!0)},children:"Nuevo flujo"})]})},Tl=({isOpen:e,onClose:t,deleteTemplate:s})=>a.jsx(p.AlertDialog,{title:"Eliminar Borrador",iconContent:le.faBan,heading:"¿Estás seguro?",subheading:"Si eliminas este borrador, también se borrarán todas sus tareas y conexiones con otros borradores.",icon:le.faBan,label:"Escribe 'Eliminar' para continuar",confirmationText:"Eliminar",isOpen:e,onClose:t,onConfirm:s,placeholder:""}),Nl=()=>{const{viewMode:e,setRefetch:t,openModalPublishTemplate:s,setOpenModalPublishTemplate:o,currentTemplateId:n,setOpenModalDeleteTemplate:i,openModalDeleteTemplate:r}=Le(),{publishTemplate:l,deleteTemplate:d}=$e(),{debouncedSearch:c,filters:m}=zs("templates-container"),f=e==="list",[h,g]=u.useState(1),b=9,{data:w,isLoading:j,isFetching:x,refetch:y}=Ys({page:h,pageSize:b,search:c,filters:m});u.useEffect(()=>{t(y)},[]),u.useEffect(()=>{g(1)},[m,c]);const{users:v}=rt(),{getImageOBP:N}=pe(),B=E=>{if(!(E!=null&&E.email))return"";const X=v==null?void 0:v[E==null?void 0:E.email];return X!=null&&X.image?N(X==null?void 0:X.image):""},D=u.useMemo(()=>{try{return!w||!v?[]:w.data.map(E=>{const X=B((E==null?void 0:E.updated_by)||(E==null?void 0:E.created_by));return{...E,updated_by:{...E.updated_by,image:X}}})}catch(E){return console.error("Error al mapear las plantillas:",E),[]}},[w,v]),C=async()=>{await l(n),await y()},M=async()=>{await d(n),await y()};return j||x?a.jsx(pt,{isLoading:j||x}):a.jsxs("div",{className:"tm-flex tm-flex-col tm-justify-between tm-gap-y-4 tm-h-full",children:[a.jsx(Zs,{isOpen:s,onClose:()=>o(!1),publishTemplate:C}),a.jsx(Tl,{isOpen:r,onClose:()=>i(!1),deleteTemplate:M}),a.jsx("div",{className:`tm-grid tm-gap-12 ${f?"tm-grid-cols-1":"tm-grid-cols-1 md:tm-grid-cols-2 lg:tm-grid-cols-3"}`,children:D.map(E=>a.jsx(Vs,{fullWidth:f,template:E},E.id))}),a.jsx("div",{children:a.jsx(p.Pagination,{pageSize:b,pageCount:w==null?void 0:w.meta.pagination.pageCount,currentPage:h,onPageChange:E=>g(E)})})]})},en=()=>{var r,l,d,c;const e="grid",t="create-edit",{mode:s}=_e(),o=s===e,n=s===t,i=ze(m=>m.activeTemplate);return a.jsxs("div",{className:"tm-h-full tm-flex tm-flex-col tm-gap-y-6",children:[a.jsx(_l,{}),o&&a.jsx(Nl,{}),n&&a.jsx(il,{initialNodes:((l=(r=i==null?void 0:i.graph_layout)==null?void 0:r.snapshot)==null?void 0:l.nodes)||[],initialEdges:((c=(d=i==null?void 0:i.graph_layout)==null?void 0:d.snapshot)==null?void 0:c.edges)||[]})]})},Cl=()=>({header:a.jsx(hi,{}),body:a.jsx(en,{})});function Sl(e){const{users:t}=ir(),{tasks_api:s,getImageOBP:o}=pe(),n=u.useMemo(()=>t.data?t.data.map(l=>{const{image:d,id:c,name:m}=l,f=o(d);return{value:c,label:m,icon:f}}):[],[t.data]),i=async l=>{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:c}=await l.get(`/api/params-tipos?${d}`);return je(c.data).flatMap((f,h)=>{const g={id:`group-${h+1}`,label:f.label,value:`group-${h+1}`,isGroupTitle:!0},b=f.params_plantillas.map(w=>({id:w.id,label:w.name,value:w.id,checked:!1,icon:"CheckCircleOutlined",iconColor:"blue"}));return[g,...b]})},r=de.useQuery({queryKey:["paramsPlantilla"],queryFn:()=>i(s),enabled:e==="templates-container",staleTime:1e3*60*30});return{userOptions:n,paramsPlantillasOptions:r.data||[]}}const El={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"}},Al={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"}},Il={"templates-container":El,"teams-container":Al,"kanban-general":null,"lista-campanias":null,"kanban-campania":null},Pl=e=>({inputFilters:Il[e]||null}),Dl=e=>{const{inputFilters:t}=Pl(e),{userOptions:s,paramsPlantillasOptions:o}=Sl(e);return{inputFilters:u.useMemo(()=>{if(t&&s.length>0&&o.length>0){const i=t;return[{...i.estatus},{...i.publication_date},{...i.propietario,options:s},{...i.created_by,options:s},{...i.updated_by,options:s},{...i.params_plantillas,options:o}]}return null},[e,t,s,o])}};function Fl(){const{setFilters:e}=vt(),{refetch:t}=Le();return{handleApplyFilters:o=>{let n={...o};n=Object.fromEntries(Object.entries(n).filter(([i,r])=>!(r===""||r===null||Array.isArray(r)&&r.length===0))),"publication_date"in n&&n.publication_date!==""&&(n={...n,publication_date:kt(n.publication_date).format("YYYY-MM-DD")}),e(n,"templates-container"),t&&t()}}}const Ha="templates-container";function Ml(){const{mode:e}=_e(),{inputFilters:t}=Dl(Ha),{handleApplyFilters:s}=Fl(),{viewMode:o,setViewMode:n}=Le();return e!=="grid"?null:a.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-2.5 md:tm-flex-nowrap",children:[a.jsx(Rs,{path:Ha}),a.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-x-8 md:tm-flex-nowrap",children:[t&&a.jsx(p.Filters,{filters:t,onApply:s}),a.jsx(p.Button,{size:"xs",color:"secondary",icon:o==="list"?ne.faGrid2:ne.faList,className:"tm-min-w-fit",onClick:()=>n(o==="list"?"grid":"list")})]})]})}const Lt={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()},da="Project Manager",tn=({open:e,handleChange:t,children:s,title:o="¿Estás seguro?",onConfirm:n,contentLabel:i="",confirmLabel:r="Aceptar",cancelLabel:l="Regresar",isLoading:d=!1})=>a.jsx(p.Modal,{isOpen:e,onClose:()=>t(!1),onCancel:()=>t(!1),onSuccess:n,size:"xs",title:o,disableEscapeClose:!0,disableOutsideClick:!0,disableOutsideTab:!0,children:a.jsxs(p.Modal.Body,{children:[a.jsx(p.Text,{children:i}),s&&s]})}),kl=({member:e,level:t,isUpdate:s=!1,addHandler:o,updateHandler:n,removeHandler:i,updateMemberHandler:r})=>{var z,k,K;const{users:l,isLoading:d}=_t(),{users:c,isLoading:m}=rt(),{getImageOBP:f}=pe(),[h,g]=u.useState(!1),[b,w]=u.useState(s?e:{...Lt,miembro_padre:t>1?e:null}),[j,x]=u.useState(null),[y,v]=u.useState({id:0,nombre:"",email:""}),[N,B]=u.useState(!1);u.useEffect(()=>{var F;x(c==null?void 0:c[(F=b==null?void 0:b.idUser)==null?void 0:F.email])},[b,c]),u.useEffect(()=>{e&&w({...e,miembro_padre:t>1?e.miembro_padre:null})},[e,t]);const D=u.useMemo(()=>(l||[]).map(F=>{var G,V;const $=c==null?void 0:c[F.email??""],R=$!=null&&$.image?f($.image):"";return{...F,label:F.name,value:F.id,subtitle:F.email??"",avatar:((V=(G=F.name)==null?void 0:G.slice(0,2))==null?void 0:V.toUpperCase())??"",avatarUrl:R}}),[l,c,f]),C=()=>{g(!1),v({id:0,nombre:"",email:""})},M=({id:F,name:$,email:R})=>{const G={...b,idUser:{...b.idUser,id:F,nombre:$,email:R}};w(G),n(G),v({id:F,nombre:$,email:R})},E=async()=>{if(!y.nombre&&!y.email){C();return}try{b.id&&r({user_id:y.id,miembro_id:e.id});const F={...b,idUser:{...b.idUser,id:y.id,nombre:y.nombre,email:y.email}};w(F),n(F),x(c==null?void 0:c[y.email]),C()}catch(F){p.toast.error(F instanceof Error?F.message:"Error al actualizar el colaborador")}},X=()=>{const F={...Lt,uid:new Date().getTime()+Math.floor(Math.random()*1e3),miembro_padre:e,miembros:[]};o(F)},U=()=>{i(e),B(!1)};return m||d?null:a.jsxs("div",{className:"tm-flex tm-items-baseline tm-justify-between",children:[N&&a.jsx(tn,{open:N,handleChange:B,onConfirm:U,contentLabel:"Estás eliminando el colaborador seleccionado"}),a.jsxs("div",{className:"tm-flex tm-flex-1 tm-justify-between tm-gap-y-4 tm-mb-2",children:[a.jsxs("div",{children:[a.jsx("div",{className:"tm-flex tm-items-center tm-gap-x-6 tm-mb-2",children:(z=b==null?void 0:b.idUser)!=null&&z.email&&!h?a.jsxs(a.Fragment,{children:[a.jsx(Me,{size:"m",alt:((k=b==null?void 0:b.idUser)==null?void 0:k.nombre)??"Avatar",imageUrl:j!=null&&j.image?f(j.image):""}),a.jsx("p",{className:"tm-text-body-sm-regular tm-font-body-sm-regular tm-leading-body-sm-regular tm-tracking-body-sm",children:(K=b==null?void 0:b.idUser)==null?void 0:K.nombre})]}):a.jsx(p.Dropdown,{placeholder:"Seleccionar colaborador",options:D,valueName:"name",idName:"id",listVariant:"user",absolute:!0,closeOnClickOutside:!0,searchable:!0,searchPlaceholder:"Buscar colaborador...",onOptionSelect:F=>{M({id:F.id,name:F.name,email:F.email})}})}),a.jsx(p.Button,{onClick:X,leftSlot:ne.faPlus,size:"xxs",color:"tertiary",children:"Añadir colaborador"})]}),a.jsxs("div",{className:"tm-flex tm-gap-x-4",children:[h?a.jsxs(a.Fragment,{children:[a.jsx(p.Button,{onClick:C,icon:ne.faXmark,size:"xs",color:"secondary",tooltip:"Cancelar"}),a.jsx(p.Button,{onClick:E,icon:We.faCheck,size:"xs",color:"primary",tooltip:"Guardar"})]}):a.jsx(p.Button,{onClick:()=>g(!0),icon:ne.faPencil,size:"xs",color:"tertiary",tooltip:"Editar"}),a.jsx(p.Button,{onClick:()=>B(!0),icon:ne.faTrash,size:"xs",color:"destructive",tooltip:"Eliminar"})]})]})]})},an=({members:e,level:t=1,isUpdate:s=!1,setData:o})=>{const n=()=>{o(i=>{const r=i.miembros.length===0;return{...i,miembros:[...i.miembros,{...Lt,esEncargado:r,uid:new Date().getTime()+Math.floor(Math.random()*1e3)}]}})};return a.jsxs("div",{children:[(e==null?void 0:e.length)===0&&t===1&&a.jsx("div",{className:"tm-flex tm-justify-end",children:a.jsx(p.Button,{size:"xxs",color:"tertiary",leftSlot:We.faPlus,onClick:n,children:" Agregar miembro del equipo "})}),(e==null?void 0:e.length)>0&&(e==null?void 0:e.map(i=>a.jsx(Ll,{isUpdate:s,member:i,level:t,setData:o},i.uid)))]})},Ll=({member:e,level:t,isUpdate:s=!1,setData:o})=>{const n=c=>{o(m=>{if(!c.miembro_padre)return{...m,miembros:[...m.miembros,c]};const f=h=>h==null?void 0:h.map(g=>g.uid===c.miembro_padre.uid?{...g,miembros:[...g.miembros||[],c]}:g.miembros&&g.miembros.length>0?{...g,miembros:f(g.miembros)}:g);return{...m,miembros:f(m.miembros)}})},i=c=>{o(m=>{const f=h=>h.map(g=>g.uid===c.uid?(g.miembros&&g.miembros.length>0&&g.miembros.forEach(b=>{b.miembro_padre=c}),{...c,miembros:g.miembros||[]}):g.miembros&&g.miembros.length>0?{...g,miembros:f(g.miembros)}:g);return{...m,miembros:f(m.miembros)}})},r=c=>{var f;const m=[];return c.id&&m.push(c.id),(f=c.miembros)!=null&&f.length&&c.miembros.forEach(h=>{m.push(...r(h))}),m},l=c=>{o(m=>{const f=r(c),h=b=>b.filter(w=>w.uid!==c.uid).map(w=>({...w,miembros:w.miembros?h(w.miembros):[]})),g=m.miembros_actualizar.filter(b=>!f.includes(b.miembro_id));return{...m,miembros:h(m.miembros),miembros_eliminar:[...m.miembros_eliminar,...f],miembros_actualizar:g}})},d=c=>{o(m=>m.miembros_actualizar.some(h=>h.miembro_id===c.miembro_id)?m:{...m,miembros_actualizar:[...m.miembros_actualizar,c]})};return a.jsxs("div",{"data-id":e.uid,style:{paddingLeft:t===1?0:"30px",marginTop:t===1?"15px":"0px",paddingBottom:"5px"},children:[a.jsx(kl,{isUpdate:s,level:t,member:e,addHandler:n,updateHandler:i,removeHandler:l,updateMemberHandler:d}),Array.isArray(e.miembros)&&e.miembros.length>0&&a.jsx(an,{isUpdate:s,members:e.miembros,level:t+1,setData:o})]},e.uid)};function Tt(e){const t=e??[],s=t.filter(o=>o.esEncargado);return s.length>0?s:t}function Ol(e){const t=Tt(e??[]),s=[],o=new Set,n=new Set,i=new Set,r=l=>{var d,c;for(const m of l){const f=m.id,h=m.uid??m.id,g=(d=m.idUser)==null?void 0:d.id;f!=null&&o.has(f)||h!=null&&n.has(Number(h))||typeof g=="number"&&g>0&&i.has(g)||(s.push(m),f!=null&&o.add(f),h!=null&&n.add(Number(h)),typeof g=="number"&&g>0&&i.add(g)),(c=m.miembros)!=null&&c.length&&r(m.miembros)}};return r(t),s}const Bl=()=>"#"+Math.floor(Math.random()*16777215).toString(16),Rl=({search:e,filters:t})=>{const s={};return e!=null&&e.trim()&&(s.nombre={$containsi:e.trim()}),t!=null&&t.createdAt&&(s.createdAt={$eq:t.createdAt}),s},zl=({items:e})=>{if(!e)return{members:[],allMembers:[]};const t={};for(const r of e)t[r.uid]=r;const s=[],o=new Set,n=r=>{const l={...r};if(l.id&&(l.uid=l.id),l.uid&&!o.has(l.uid)&&(s.push(l),o.add(l.uid)),!l.miembros)return l;const d=l.miembros.map(c=>{const m={...c};m.id&&(m.uid=m.id);const f=t[m.uid];return n(f||m)}).filter(Boolean);return{...l,miembros:d}};return{members:e.filter(r=>r.miembro_padre===null).map(n),allMembers:s}},ql=({items:e})=>e?e.map(t=>{const s=zl({items:t.miembros}),o=Ol(s.members);return{...t,integrantes:o.length,miembros:s.members,miembros_planos:o,miembros_eliminar:[],miembros_actualizar:[]}}):[],$l=async({tasks_api:e,page:t=1,pageSize:s=10,search:o="",filters:n={}})=>{const i=Pe.stringify({filters:Rl({search:o,filters:n}),populate:oa(),sort:["createdAt:asc"],pagination:{page:t,pageSize:s}},{encodeValuesOnly:!0}),r=await e.get(`/api/equipos?${i}`);return r.data?{data:je(r.data.data),meta:r.data.meta}:{data:[],meta:{pagination:{page:t,pageSize:s,pageCount:0,total:0}}}},Ul=({page:e=1,pageSize:t=10,search:s="",filters:o={}})=>{const{tasks_api:n}=pe();return de.useQuery({queryKey:["teams",e,t,s,o],queryFn:()=>$l({tasks_api:n,page:e,pageSize:t,search:s,filters:o}),staleTime:1e3*60*60*24,placeholderData:de.keepPreviousData,select:i=>({data:ql({items:(i==null?void 0:i.data)||[]}),meta:i==null?void 0:i.meta})})},sn=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(sn):[]}),Ka=e=>{const t=Tt(e.miembros);return{...e,id:void 0,miembros:t.map((s,o)=>sn({...s,esEncargado:o===0}))}},nn=()=>{const{tasks_api:e}=pe(),t=de.useQueryClient(),s=async h=>{const g=Ka(h);return(await e.post("/api/registrar-equipo-miembros",{data:g})).data},o=async h=>(await e.delete(`/api/equipos/${h}`)).data,n=async(h,g)=>{const b=Ka(g);return(await e.patch(`/api/actualizar-equipo-miembros/${h}`,{data:b})).data},i=async(h,g,b)=>{const w=await e.put(`/api/miembros/${h}`,{data:{[g]:b}});if(!w.data)throw new Error("Error al actualizar el miembro");return w.data},{mutateAsync:r,isPending:l}=de.useMutation({mutationFn:o,onSuccess:()=>{t.invalidateQueries({queryKey:["teams"]})},onError:h=>{throw console.error("Failed to delete the team.",h),h}}),{mutateAsync:d}=de.useMutation({mutationFn:s,onSuccess:()=>{t.invalidateQueries({queryKey:["teams"]})},onError:h=>{throw console.error("Failed to update the team.",h),h},onMutate:async()=>{await t.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:c}=de.useMutation({mutationFn:h=>n(h.teamId,h.data),onSuccess:()=>{t.invalidateQueries({queryKey:["teams"]})},onError:h=>{throw console.error("Failed to update the team.",h),h},onMutate:async()=>{await t.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:m}=de.useMutation({mutationFn:h=>i(h.memberId,h.field,h.value),onError:h=>{throw console.error("Failed to update the member.",h),new Error("Error al actualizar el miembro")}});return{addTeamHandler:d,deleteTeamHandler:r,updateTeamHandler:c,updateMemberHandler:m,invalidateTeams:()=>{t.invalidateQueries({queryKey:["teams"]})},isLoadingDeleteTeam:l}},Hl=(e,t,s)=>{const o=u.useCallback(n=>{e.current&&!e.current.contains(n.target)&&t(!1)},[e,t]);u.useEffect(()=>(s&&document.addEventListener("mousedown",o),()=>{document.removeEventListener("mousedown",o)}),[o,s])},Kl=({color:e,onChange:t})=>a.jsxs(a.Fragment,{children:[a.jsx("style",{children:`
11
11
  .react-pick-color div button {
12
12
  border-radius: 50% !important;
13
13
  width: 20px;
@@ -24,4 +24,4 @@
24
24
  .react-pick-color div label > span {
25
25
  display: none !important;
26
26
  }
27
- `}),a.jsx("div",{className:"react-pick-color tm-overflow-hidden tm-rounded-lg tm-shadow-02",children:a.jsx(tn.ColorPicker,{color:e,theme:{inputBackground:"#FFF"},combinations:["monochromatic"],onChange:s=>t(s)})})]});function hl({color:e,setColor:t,label:s="Elige el color",className:o=""}){const[n,i]=u.useState(!1),r=u.useRef(null);return fl(r,i,n),a.jsxs("div",{className:"tm-relative tm-w-full",children:[a.jsx("button",{onClick:l=>{l.stopPropagation(),i(!n)},style:{backgroundColor:e},className:`tm-h-control-xs tm-w-full tm-rounded-control-sm tm-border-[1px] tm-border-default tm-px-8 tm-text-body-sm-bold tm-text-primary tm-text-left tm-text-white ${o}`,children:s}),n&&a.jsx("div",{ref:r,className:"tm-absolute tm-z-50 tm-mt-2",children:a.jsx(gl,{color:e,onChange:l=>t(l.hex)})})]})}const Dt="Ha ocurrido un error inesperado. Por favor, intente nuevamente.",xl={"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"},$s=()=>({handleApiError:t=>{var s,o,n,i,r;if(t instanceof at.AxiosError&&((s=t.response)==null?void 0:s.status)===400){const l=t.response.data;if(((n=(o=l.details)==null?void 0:o.errors)==null?void 0:n.length)>0){const d=l.details.errors[0];let c=xl[d.message]||Dt;return c=c.replace("{field}",d.path.join(".")),((i=d.params)==null?void 0:i.min)!==void 0&&(c=c.replace("{min}",d.params.min.toString())),((r=d.params)==null?void 0:r.max)!==void 0&&(c=c.replace("{max}",d.params.max.toString())),c}return l.message||Dt}return Dt}});function Us({open:e,handleChange:t,team:s}){const{addTeamHandler:o,updateTeamHandler:n}=qs(),{handleApiError:i}=$s(),[r,l]=u.useState(""),[d,c]=u.useState(s||{id:0,nombre:"",color:ll(),miembros:[],miembros_planos:[],integrantes:0,miembros_eliminar:[],miembros_actualizar:[]}),m=d.id>0,f=u.useMemo(()=>jt(d.miembros),[d.miembros]),g=async()=>{if(d.nombre.length===0){l("El nombre del equipo es requerido");return}if(f.length===0){l("El equipo debe tener al menos un miembro");return}const h=async()=>m?await n({data:d,teamId:d.id}):await o(d);try{await h(),l(""),t(!1);const x=m?"Equipo actualizado correctamente":"Equipo creado correctamente";p.toast.success(x)}catch(x){l(i(x))}};return a.jsx(p.Modal,{onCancel:()=>t(!1),onSuccess:g,title:"Información del equipo",icon:Ge.faUser,showCloseButton:!0,showCancelButton:!0,showSuccessButton:!0,closeAtSuccess:!0,closeAtCancel:!0,isOpen:e,onClose:()=>t(!1),size:"lg",children:a.jsxs(p.Modal.Body,{children:[a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-8",children:[a.jsxs("div",{className:"tm-flex tm-w-full tm-items-center tm-gap-8 tm-flex-wrap",children:[a.jsx(Lr,{value:d.nombre,onChange:h=>c({...d,nombre:h})}),a.jsxs("div",{className:"tm-flex tm-flex-1 tm-items-center tm-gap-x-8",children:[a.jsx("label",{className:"tm-text-body-sm-bold tm-text-primary tm-flex-1 tm-min-w-fit",children:"Color del equipo"}),a.jsx(hl,{color:d.color,setColor:h=>c({...d,color:h})})]})]}),r&&a.jsx("p",{className:"tm-mt-4 tm-text-sm tm-text-danger-pastel",children:r})]}),a.jsxs("div",{className:"tm-mt-8",children:[a.jsx(kr,{title:"Miembros del equipo",icon:Ge.faUsers}),a.jsx(Rs,{members:f,setData:c,isUpdate:m})]})]})})}const Re=384,bl=80,yl=180,Mt=20,jl=2,Hs=4,kt=.8;function wl({data:e}){const{getImageOBP:t}=fe();return a.jsxs("div",{className:"tm-w-[290px] tm-rounded-md tm-border-[0.5px] tm-border-default tm-bg-surface-default tm-px-8 tm-py-4 tm-shadow-04",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-4",children:[a.jsx("div",{className:"tm-flex tm-items-center tm-justify-center tm-rounded-full tm-bg-surface-default",children:a.jsx(Fe,{size:"xxl",alt:"@shadcn",imageUrl:e!=null&&e.image?t(e==null?void 0:e.image):void 0})}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-2",children:[a.jsx(p.Text,{size:"xs",weight:"bold",children:e.name}),a.jsx(p.Text,{children:e.job||"Puesto no asignado"})]})]}),a.jsx(oe.Handle,{type:"target",position:oe.Position.Top,className:"tm-bg-transparent",isConnectable:!1}),a.jsx(oe.Handle,{type:"source",position:oe.Position.Bottom,className:"tm-w-16 tm-border-none tm-bg-transparent",isConnectable:!1})]})}const vl={custom:wl},_l={style:{stroke:"#6366f1",strokeWidth:2}},Ks=(e,t=0)=>e?e.map(s=>{const o=s.miembros?Ks(s.miembros,t+1):[];return{width:Re,height:bl,children:o,x:0,y:t*yl,totalWidth:0,depth:t}}):[],Vs=e=>{if(e.children.length===0)return e.totalWidth=Re,Re;const t=e.children.reduce((n,i)=>n+Vs(i),0),s=e.children.length>Hs?kt:1,o=(e.children.length-1)*Mt*s;return e.totalWidth=Math.max(Re,t+o),e.totalWidth},Gs=(e,t=0)=>{let s=t;return e.forEach(o=>{o.totalWidth===0&&Vs(o);const n=o.children.length>jl,i=o.children.length>Hs;if(o.children.length>0){if(Gs(o.children,s),i){const f=(o.totalWidth-Re)/(o.children.length-1)*kt;o.children.forEach((g,h)=>{g.x=s+h*f})}else if(n){const f=(o.totalWidth-Re)/(o.children.length-1);o.children.forEach((g,h)=>{g.x=s+h*f})}const l=o.children[0].x,d=o.children[o.children.length-1].x+Re,c=i?Re*.1:0;o.x=(l+d-Re)/2+c}else o.x=s;const r=i?kt:1;s=Math.max(s+Re+Mt*r,o.x+Re+Mt*r)}),s},Ws=(e,t,s,o)=>{const n=[],i=[];return e.forEach((r,l)=>{var m,f,g,h,x,y;const d=t[l],c=d.id.toString();if(n.push({id:c,type:"custom",data:{name:(m=d.idUser)==null?void 0:m.nombre,image:(g=s==null?void 0:s[(f=d.idUser)==null?void 0:f.email])==null?void 0:g.image,job:((y=(x=s==null?void 0:s[(h=d.idUser)==null?void 0:h.email])==null?void 0:x.role)==null?void 0:y.name)||""},position:{x:r.x,y:r.y}}),o&&i.push({id:`e-${o}-${c}`,source:o,target:c,style:{stroke:"#6366f1",strokeWidth:2}}),d.miembros&&d.miembros.length>0){const j=Ws(r.children,d.miembros,s,c);n.push(...j.nodes),i.push(...j.edges)}}),{nodes:n,edges:i}};function Tl({members:e}){const[t,s]=u.useState([]),[o,n]=u.useState([]),{users:i,isLoading:r}=nt();return u.useEffect(()=>{if(e&&!r){const l=Ks(e);Gs(l);const{nodes:d,edges:c}=Ws(l,e,i);s(d),n(c)}},[e,i,r]),r?null:a.jsx(oe.ReactFlow,{nodeTypes:vl,nodes:t,edges:o,draggable:!1,fitView:!0,defaultViewport:{x:0,y:0,zoom:1},minZoom:.5,maxZoom:2,defaultEdgeOptions:_l})}function Nl({open:e,handleChange:t,members:s}){const o=u.useMemo(()=>jt(s??[]),[s]);return a.jsx(p.Modal,{showCancelButton:!1,showSuccessButton:!1,hideFooter:!0,isOpen:e,onClose:()=>t(!1),size:"xl",title:"Organigrama de equipo",children:a.jsx("div",{className:"tm-mx-auto tm-bg-surface-default",style:{width:"100%",height:"600px"},children:a.jsx(oe.ReactFlowProvider,{children:a.jsx(Tl,{members:o})})})})}const Qs="tm-grid tm-w-full tm-grid-cols-1 tm-items-baseline tm-gap-x-12 tm-gap-y-12 md:tm-grid-cols-2 lg:tm-grid-cols-3 lg:tm-gap-x-8 xl:tm-grid-cols-4",Cl="tm-relative tm-block tm-overflow-hidden tm-rounded-md tm-bg-gray-200 tm-bg-gradient-to-r tm-from-gray-200 tm-via-gray-50 tm-to-gray-200 tm-bg-[length:200%_100%] tm-animate-skeleton-shimmer";function Ve({className:e="",rounded:t="md"}){const s=t==="full"?"tm-rounded-full":"tm-rounded-md";return a.jsx("span",{className:`${Cl} ${s} ${e}`.trim(),"aria-hidden":!0})}function Xs(){return a.jsx("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:Array.from({length:2},(e,t)=>a.jsx(Ve,{className:"tm-h-8 tm-w-8 tm-shrink-0",rounded:"full"},t))})}function Sl(){const{user:e}=ve(),t=(e==null?void 0:e.role)===na;return a.jsxs(p.Card,{className:"tm-w-full",children:[a.jsxs(p.Card.Header,{className:"tm-flex tm-items-center justify-between",children:[a.jsx("div",{className:"tm-flex tm-flex-col tm-justify-start tm-items-start tm-gap-y-2",children:a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[a.jsx(Ve,{className:"tm-h-2.5 tm-w-2.5 tm-shrink-0",rounded:"full"}),a.jsx(Ve,{className:"tm-h-8 tm-w-8 tm-shrink-0"}),a.jsx(Ve,{className:"tm-h-5 tm-min-h-[1.25rem] tm-w-40 tm-max-w-[min(100%,10rem)]"})]})}),a.jsx("div",{children:t?a.jsx(Ve,{className:"tm-h-8 tm-w-8 tm-shrink-0",rounded:"full"}):null})]}),a.jsx(p.Card.Separator,{}),a.jsxs(p.Card.Body,{scrollable:!1,children:[a.jsx(Xs,{}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-4 tm-mt-2",children:[a.jsx(Ve,{className:"tm-h-4 tm-w-6"}),a.jsx(Ve,{className:"tm-h-4 tm-w-28"})]})]})]})}function El({length:e}){const s=e??10;return a.jsx("div",{"aria-busy":"true","aria-live":"polite",className:Qs,children:Array.from({length:s},(o,n)=>a.jsx(Sl,{},n))})}function Al({members:e}){const{getImageOBP:t}=fe(),{users:s,isLoading:o}=nt();if(o)return a.jsx(Xs,{});const n=e.filter(i=>{var r,l;return(l=s[(r=i.idUser)==null?void 0:r.email])==null?void 0:l.image}).slice(0,3);return a.jsx("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:a.jsx(p.Avatar,{maxVisible:2,stroke:!0,stack:n.map(i=>{var l;const r=s[(l=i.idUser)==null?void 0:l.email];return{src:t(r.image),name:r.name}}),size:"sm"})})}function Pl({team:e}){const[t,s]=u.useState(!1),[o,n]=u.useState(!1),{user:i}=ve(),[r,l]=u.useState(!1),{handleApiError:d}=$s(),{deleteTeamHandler:c,isLoadingDeleteTeam:m}=qs(),f=async()=>{try{await c(e.id),p.toast.success("Equipo eliminado correctamente")}catch(g){p.toast.error(d(g))}};return a.jsxs(p.Card,{children:[t&&a.jsx(Us,{handleChange:s,open:t,team:e}),r&&a.jsx(Bs,{isLoading:m,open:r,handleChange:l,onConfirm:f,contentLabel:"Estás eliminando el equipo seleccionado"}),o&&a.jsx(Nl,{handleChange:n,open:o,members:e.miembros}),a.jsxs(p.Card.Header,{className:"tm-flex tm-items-center tm-justify-between tm-w-full",children:[a.jsx("div",{className:"tm-flex tm-flex-col tm-justify-start tm-items-start tm-gap-y-2",children:a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8 tm-justify-between tm-w-full",children:[a.jsx(p.Badge,{size:"dot",customColor:e.color,theme:"solid"}),a.jsx(p.Icon,{name:Ge.faPeopleGroup,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"md"}),a.jsx("h1",{className:"tm-py-0.5 tm-font-body-sm-bold tm-text-body-sm-bold tm-leading-none tm-text-primary",children:e.nombre})]})}),a.jsx("div",{children:(i==null?void 0:i.role)==na&&a.jsx(p.Popup,{size:"xs",color:"secondary",pill:"pill",icon:ne.faEllipsis,stopPropagationList:!0,children:a.jsxs(p.List,{className:"tm-gap-4",padding:"sm",children:[a.jsx(p.ListItem,{icon:ne.faPencil,onClick:()=>s(!0),children:"Editar"}),a.jsx(p.ListItem,{icon:ne.faEye,onClick:()=>n(!0),children:"Ver organigrama"}),a.jsx(p.ListItem,{color:"red",icon:ne.faTrash,onClick:()=>l(!0),children:"Eliminar"})]})})})]}),a.jsx(p.Card.Separator,{}),a.jsxs(p.Card.Body,{children:[a.jsx(Al,{members:e.miembros_planos}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-4 tm-mt-2",children:[a.jsx("p",{className:"tm-text-icon-all-colors-blue tm-text-xs tm-text-center tm-leading-none tm-font-semibold",children:e.integrantes||0}),a.jsxs("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:["Integrante",e.integrantes>1?"s":""]})]})]})]})}function Dl({teams:e}){return a.jsx("div",{className:Qs,children:e==null?void 0:e.map(t=>a.jsx(Pl,{team:t},t.id))})}const Il="teams-container";function Fl(){return a.jsx("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-2.5 md:tm-flex-nowrap",children:a.jsx(ws,{path:Il})})}function Ys(){var w,v,N,L,O;const[e,t]=u.useState(!1),[s,o]=u.useState(1),[n,i]=u.useState(10),{user:r}=ve(),{debouncedSearch:l,filters:d}=vs("teams-container"),c=Array.isArray(d)?d:[];u.useEffect(()=>{o(1)},[l,d]);const{data:m,isLoading:f}=pl({page:s,pageSize:n,search:l,filters:{nombre:"",createdAt:(w=c.find(C=>C.keyName==="createdAt"))==null?void 0:w.value,integrantes_min:(v=c.find(C=>C.keyName==="integrantes_min"))==null?void 0:v.value,integrantes_max:(N=c.find(C=>C.keyName==="integrantes_max"))==null?void 0:N.value}}),g=(m==null?void 0:m.data)||[],h=m==null?void 0:m.meta,x=((L=h==null?void 0:h.pagination)==null?void 0:L.pageCount)||0,y=((O=h==null?void 0:h.pagination)==null?void 0:O.total)||0,j=C=>{o(C)},b=C=>{i(C),o(1)};return a.jsxs("div",{className:"tm-grid tm-h-full tm-grid-rows-[auto,1fr] tm-gap-y-8",children:[e&&a.jsx(Us,{handleChange:t,open:e}),(r==null?void 0:r.role)===na&&a.jsx("div",{className:"tm-flex tm-items-center tm-justify-end",children:a.jsx(p.Button,{size:"xs",color:"primary",leftSlot:ne.faPlus,onClick:()=>t(!0),children:" Nuevo equipo "})}),a.jsx("div",{className:"custom-scrollbar",style:{scrollbarGutter:"stable",paddingRight:"4px"},children:g.length===0&&!f?a.jsx("div",{className:"flex tm-h-full tm-items-center tm-justify-center",children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-center tm-gap-y-6",children:[a.jsx("p",{className:"tm-text-3xl tm-font-bold",children:l?"No se encontraron equipos con ese nombre":"¡Parece que aún no has creado un equipo!"}),!l&&a.jsx(p.Button,{color:"primary",onClick:()=>t(!0),children:"¡Empieza ahora!"})]})}):f?a.jsx("div",{className:"tm-pb-16 tm-opacity-100 tm-transition tm-duration-300",children:a.jsx(El,{length:n})}):a.jsx("div",{className:`tm-pb-16 ${f?"tm-opacity-0 tm-transition tm-duration-300":"tm-opacity-100 tm-transition tm-duration-300"}`,children:a.jsx(Dl,{teams:g})})}),x>0&&a.jsx(p.Pagination,{currentPage:s,pageCount:x,pageSize:n,total:y,onPageChange:j,handlePageSize:b,showVisiblePages:!0,showPagesSelector:!0})]})}const Ml=()=>({header:a.jsx(Rl,{}),body:a.jsx(Ys,{})}),kl={"templates-container":nl,"teams-container":Fl};function Ll({path:e}){const t=e?kl[e]:null;return t?a.jsx(t,{}):null}function Ol({path:e}){return e==="templates-container"?Xi():e==="teams-container"?Ml():{header:null,body:null}}const Bl=({startPath:e})=>{const{path:t,setPath:s}=Le(),{setCurrentPath:o}=bt();u.useEffect(()=>{s(e),o(e)},[e,s,o]);const{header:n,body:i}=Ol({path:t});return a.jsxs(p.Card,{fullWidth:!0,className:"tm-h-full",children:[a.jsxs(p.Card.Header,{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-16 tm-justify-between",children:[n,a.jsx(Ll,{path:t})]}),a.jsx(p.Card.Separator,{}),a.jsx(p.Card.Body,{fullHeight:!0,className:"tm-flex tm-flex-1 tm-flex-col tm-gap-y-4",children:i})]})},Rl=()=>a.jsx(js,{title:"Equipos"}),zl=({path:e,tab:t,setPath:s,project:o,setProject:n})=>{const i={"kanban-general":{kanban:a.jsx(Er,{})},"teams-container":{teams:a.jsx(Ys,{})},"lista-campanias":{lista:a.jsx(oo,{setPath:s,setProject:n}),gantt:a.jsx("div",{children:"gantt-campanias"})},"kanban-campania":{kanban:a.jsx(yr,{}),lista:a.jsx(Mr,{}),gantt:a.jsx("div",{children:"kanban-campania-gantt"})},"templates-container":{templates:a.jsx(Os,{})}};return e==="kanban-campania"?a.jsx(To,{project:o==null?void 0:o.id,children:i[e][t]}):i[e][t]},ql=({label:e,active:t,onClick:s,disabled:o})=>o?a.jsx(Me,{position:"bottom",trigger:a.jsx("button",{type:"button",className:"tm-cursor-help tm-text-xs tm-font-semibold tm-text-texts-placeholder",children:e}),children:a.jsx("div",{className:"tm-px-4 tm-py-2",children:a.jsx(p.Text,{children:"Espéralo muy pronto..."})})}):a.jsx("button",{type:"button",disabled:o,onClick:s,className:`${t?" tm-text-black-regular":""} tm-text-xs ${o?"tm-cursor-not-allowed tm-text-lg tm-text-black-regular":"tm-text-black-regular"}`,children:e}),$l=({tabs:e,renderItem:t,initialTab:s})=>{const[o,n]=u.useState(s??e[0].toLowerCase());u.useEffect(()=>{s&&n(s)},[s]);const i=r=>{n(r),t(r)};return a.jsx("div",{className:"tm-flex",children:e.map((r,l)=>a.jsx("div",{className:`${l===0?"tm-border-l-2":""} tm-border-r-2 tm-border-default tm-px-m`,children:a.jsx(ql,{onClick:()=>i(r.toLowerCase()),label:r,active:r.toLowerCase()===o,disabled:["gantt"].includes(r.toLowerCase())},l)}))})},Ul=({path:e})=>{const t=()=>{const s=de.useQueryClient(),{selectPath:o,updateFilters:n,applyFilters:i,filters:r,fields:l}=ke(),[d,c]=u.useState("kanban"),[m,f]=u.useState(e),[g,h]=u.useState({id:1704,project:"Kanban de Campania"}),[x,y]=u.useState([{path:"lista-campanias",search:(r==null?void 0:r.search)??""},{path:"kanban-campania",search:(r==null?void 0:r.taskName)??""},{path:"kanban-general",search:(r==null?void 0:r.taskName)??""},{path:"teams-container",search:(r==null?void 0:r.taskName)??""},{path:"templates-container",search:(r==null?void 0:r.taskName)??""}]),[j,b]=u.useState();u.useEffect(()=>{var E;c(m==="lista-campanias"?"lista":m==="kanban-campania"?"kanban":m==="teams-container"?"teams":m==="templates-container"?"templates":"kanban"),o(m),b(((E=x.find(X=>X.path===m))==null?void 0:E.search)??"")},[e,m]),u.useEffect(()=>{var X;((X=O())==null?void 0:X.trim())===""&&n({name:m==="lista-campanias"||m==="teams-container"||m==="templates-container"?"search":"taskName",value:null}),(!(m==="kanban-general"||m==="kanban-campania")||l.length>0)&&i()},[x,m,l.length]);const w=E=>({"kanban-general":"Kanban General","lista-campanias":"Campanias","teams-container":"Equipos","kanban-campania":`Kanban de ${g.project}`,"templates-container":"Flujos de trabajo"})[E],v=E=>{f(E)},N=["lista-campanias","kanban-campania"],L={"lista-campanias":["lista","gantt"],"kanban-campania":["kanban","lista","gantt"],"teams-container":["teams"],"templates-container":["templates"]},O=()=>{var E;return((E=x.find(X=>X.path===m))==null?void 0:E.search)??""},C=()=>{m==="kanban-general"?pr(s):m==="kanban-campania"&&fr(s)},F=E=>{y(X=>X.map(U=>U.path===m?{...U,search:E}:U))};return u.useEffect(()=>{const E=setTimeout(()=>{n({name:m==="lista-campanias"||m==="teams-container"||m==="templates-container"?"search":"taskName",value:j==null?void 0:j.trim()}),F(j)},500);return()=>{clearTimeout(E)}},[j]),a.jsxs("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-flex-col tm-gap-m tm-overflow-hidden tm-rounded-lg tm-border tm-border-default tm-bg-surface-default tm-p-m",children:[a.jsxs("div",{className:"tm-flex tm-w-full tm-flex-wrap tm-items-end tm-justify-between tm-gap-l tm-border-b tm-border-default tm-pb-m",children:[a.jsxs("div",{className:"tm-flex tm-gap-xl tm-items-center",children:[m==="kanban-campania"&&a.jsx(p.Button,{icon:ne.faArrowLeft,onClick:()=>v("lista-campanias"),color:"secondary",pill:"pill",size:"xxs"}),a.jsx(p.Text,{size:"lg",weight:"medium",color:"primary",children:w(m)}),N.includes(m)&&a.jsx($l,{tabs:L[m],renderItem:E=>{c(E)},initialTab:d})]}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-s !tm-text-[16px]",children:[a.jsx(p.Input,{leftSlot:le.faSearch,onChange:E=>{b(E.target.value)},placeholder:`Buscar por ${m==="lista-campanias"?"campaña":"campaña / tarea"}`,value:j,fullWidth:!0,className:"tm-min-w-[280px]"}),l.length>0&&a.jsx(io,{children:a.jsx(uo,{})}),(m==="kanban-general"||m==="kanban-campania")&&a.jsx(p.Button,{icon:ne.faRotate,onClick:C,color:"secondary",pill:"pill",size:"xs"})]})]}),a.jsx("div",{className:"tm-h-full tm-max-h-[100%] tm-overflow-y-auto tm-scrollbar-none",children:a.jsx(zl,{path:m,tab:d,setPath:v,project:g,setProject:h})})]})};return a.jsx(an,{children:a.jsx(t,{})})},Hl=({path:e})=>["templates-container","teams-container"].includes(e)?a.jsx(Bl,{startPath:e}):a.jsx(Ul,{path:e}),Kl=()=>a.jsx("div",{className:"tm-relative tm-h-full tm-min-h-[100%] tm-w-full",children:a.jsx("div",{className:"tm-flex tm-h-full tm-items-center tm-justify-center",children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-text-2xl tm-font-bold",children:[a.jsx("div",{className:"tm-h-10 tm-w-10 tm-animate-pulse tm-rounded-full tm-bg-primary-regular"}),a.jsx("p",{className:"tm-text-l tm-text-texts-enfasis",children:"No encontramos tu acceso"}),a.jsx("p",{className:"tm-text-sm tm-text-texts-placeholder",children:"por favor, contacta al administrador"})]})})}),Vl=()=>a.jsx("div",{className:"tm-relative tm-h-full tm-min-h-[100%] tm-w-full",children:a.jsx("div",{className:"tm-flex tm-h-full tm-items-center tm-justify-center",children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-text-2xl tm-font-bold",children:[a.jsx("div",{className:"tm-h-10 tm-w-10 tm-animate-pulse tm-rounded-full tm-bg-primary-regular"}),a.jsx("p",{className:"tm-text-l tm-text-texts-enfasis",children:"un momento..."}),a.jsx("p",{className:"tm-text-sm tm-text-texts-placeholder",children:"estamos buscando tu usuario"})]})})}),Gl=({path:e,user:t,url:s,mode:o})=>{const n=new de.QueryClient;if(!t)return a.jsx(Vl,{});if(!t.accessToken)return a.jsx(Kl,{});const i={user:t,url:s,mode:o};return a.jsxs($r,{children:[a.jsx(p.Messaging,{}),a.jsx(nn,{...i,children:a.jsx(sn,{...i,children:a.jsx("div",{className:"tm-relative tm-h-full tm-min-h-[100%] tm-w-full",children:a.jsxs(de.QueryClientProvider,{client:n,children:[a.jsx(Hl,{path:e})," "]})})})})]})};exports.AppTasks=Gl;
27
+ `}),a.jsx("div",{className:"react-pick-color tm-overflow-hidden tm-rounded-lg tm-shadow-02",children:a.jsx(yn.ColorPicker,{color:e,theme:{inputBackground:"#FFF"},combinations:["monochromatic"],onChange:s=>t(s)})})]});function Gl({color:e,setColor:t,label:s="Elige el color",className:o=""}){const[n,i]=u.useState(!1),r=u.useRef(null);return Hl(r,i,n),a.jsxs("div",{className:"tm-relative tm-w-full",children:[a.jsx("button",{onClick:l=>{l.stopPropagation(),i(!n)},style:{backgroundColor:e},className:`tm-h-control-xs tm-w-full tm-rounded-control-sm tm-border-[1px] tm-border-default tm-px-8 tm-text-body-sm-bold tm-text-primary tm-text-left tm-text-white ${o}`,children:s}),n&&a.jsx("div",{ref:r,className:"tm-absolute tm-z-50 tm-mt-2",children:a.jsx(Kl,{color:e,onChange:l=>t(l.hex)})})]})}const Mt="Ha ocurrido un error inesperado. Por favor, intente nuevamente.",Vl={"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"},on=()=>({handleApiError:t=>{var s,o,n,i,r;if(t instanceof nt.AxiosError&&((s=t.response)==null?void 0:s.status)===400){const l=t.response.data;if(((n=(o=l.details)==null?void 0:o.errors)==null?void 0:n.length)>0){const d=l.details.errors[0];let c=Vl[d.message]||Mt;return c=c.replace("{field}",d.path.join(".")),((i=d.params)==null?void 0:i.min)!==void 0&&(c=c.replace("{min}",d.params.min.toString())),((r=d.params)==null?void 0:r.max)!==void 0&&(c=c.replace("{max}",d.params.max.toString())),c}return l.message||Mt}return Mt}});function rn({open:e,handleChange:t,team:s}){const{addTeamHandler:o,updateTeamHandler:n}=nn(),{handleApiError:i}=on(),[r,l]=u.useState(""),[d,c]=u.useState(s||{id:0,nombre:"",color:Bl(),miembros:[],miembros_planos:[],integrantes:0,miembros_eliminar:[],miembros_actualizar:[]}),m=d.id>0,f=u.useMemo(()=>Tt(d.miembros),[d.miembros]),h=async()=>{if(d.nombre.length===0){l("El nombre del equipo es requerido");return}if(f.length===0){l("El equipo debe tener al menos un miembro");return}const g=async()=>m?await n({data:d,teamId:d.id}):await o(d);try{await g(),l(""),t(!1);const b=m?"Equipo actualizado correctamente":"Equipo creado correctamente";p.toast.success(b)}catch(b){l(i(b))}};return a.jsx(p.Modal,{onCancel:()=>t(!1),onSuccess:h,title:"Información del equipo",icon:We.faUser,showCloseButton:!0,showCancelButton:!0,showSuccessButton:!0,closeAtSuccess:!0,closeAtCancel:!0,isOpen:e,onClose:()=>t(!1),size:"lg",children:a.jsxs(p.Modal.Body,{children:[a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-8",children:[a.jsxs("div",{className:"tm-flex tm-w-full tm-items-center tm-gap-8 tm-flex-wrap",children:[a.jsx(ui,{value:d.nombre,onChange:g=>c({...d,nombre:g})}),a.jsxs("div",{className:"tm-flex tm-flex-1 tm-items-center tm-gap-x-8",children:[a.jsx("label",{className:"tm-text-body-sm-bold tm-text-primary tm-flex-1 tm-min-w-fit",children:"Color del equipo"}),a.jsx(Gl,{color:d.color,setColor:g=>c({...d,color:g})})]})]}),r&&a.jsx("p",{className:"tm-mt-4 tm-text-sm tm-text-danger-pastel",children:r})]}),a.jsxs("div",{className:"tm-mt-8",children:[a.jsx(mi,{title:"Miembros del equipo",icon:We.faUsers}),a.jsx(an,{members:f,setData:c,isUpdate:m})]})]})})}const Re=384,Wl=80,Ql=180,Ot=20,Xl=2,ln=4,Bt=.8;function Yl({data:e}){const{getImageOBP:t}=pe();return a.jsxs("div",{className:"tm-w-[290px] tm-rounded-md tm-border-[0.5px] tm-border-default tm-bg-surface-default tm-px-8 tm-py-4 tm-shadow-04",children:[a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-4",children:[a.jsx("div",{className:"tm-flex tm-items-center tm-justify-center tm-rounded-full tm-bg-surface-default",children:a.jsx(Me,{size:"xxl",alt:"@shadcn",imageUrl:e!=null&&e.image?t(e==null?void 0:e.image):void 0})}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-2",children:[a.jsx(p.Text,{size:"xs",weight:"bold",children:e.name}),a.jsx(p.Text,{children:e.job||"Puesto no asignado"})]})]}),a.jsx(oe.Handle,{type:"target",position:oe.Position.Top,className:"tm-bg-transparent",isConnectable:!1}),a.jsx(oe.Handle,{type:"source",position:oe.Position.Bottom,className:"tm-w-16 tm-border-none tm-bg-transparent",isConnectable:!1})]})}const Jl={custom:Yl},Zl={style:{stroke:"#6366f1",strokeWidth:2}},cn=(e,t=0)=>e?e.map(s=>{const o=s.miembros?cn(s.miembros,t+1):[];return{width:Re,height:Wl,children:o,x:0,y:t*Ql,totalWidth:0,depth:t}}):[],dn=e=>{if(e.children.length===0)return e.totalWidth=Re,Re;const t=e.children.reduce((n,i)=>n+dn(i),0),s=e.children.length>ln?Bt:1,o=(e.children.length-1)*Ot*s;return e.totalWidth=Math.max(Re,t+o),e.totalWidth},mn=(e,t=0)=>{let s=t;return e.forEach(o=>{o.totalWidth===0&&dn(o);const n=o.children.length>Xl,i=o.children.length>ln;if(o.children.length>0){if(mn(o.children,s),i){const f=(o.totalWidth-Re)/(o.children.length-1)*Bt;o.children.forEach((h,g)=>{h.x=s+g*f})}else if(n){const f=(o.totalWidth-Re)/(o.children.length-1);o.children.forEach((h,g)=>{h.x=s+g*f})}const l=o.children[0].x,d=o.children[o.children.length-1].x+Re,c=i?Re*.1:0;o.x=(l+d-Re)/2+c}else o.x=s;const r=i?Bt:1;s=Math.max(s+Re+Ot*r,o.x+Re+Ot*r)}),s},un=(e,t,s,o)=>{const n=[],i=[];return e.forEach((r,l)=>{var m,f,h,g,b,w;const d=t[l],c=d.id.toString();if(n.push({id:c,type:"custom",data:{name:(m=d.idUser)==null?void 0:m.nombre,image:(h=s==null?void 0:s[(f=d.idUser)==null?void 0:f.email])==null?void 0:h.image,job:((w=(b=s==null?void 0:s[(g=d.idUser)==null?void 0:g.email])==null?void 0:b.role)==null?void 0:w.name)||""},position:{x:r.x,y:r.y}}),o&&i.push({id:`e-${o}-${c}`,source:o,target:c,style:{stroke:"#6366f1",strokeWidth:2}}),d.miembros&&d.miembros.length>0){const j=un(r.children,d.miembros,s,c);n.push(...j.nodes),i.push(...j.edges)}}),{nodes:n,edges:i}};function ec({members:e}){const[t,s]=u.useState([]),[o,n]=u.useState([]),{users:i,isLoading:r}=rt();return u.useEffect(()=>{if(e&&!r){const l=cn(e);mn(l);const{nodes:d,edges:c}=un(l,e,i);s(d),n(c)}},[e,i,r]),r?null:a.jsx(oe.ReactFlow,{nodeTypes:Jl,nodes:t,edges:o,draggable:!1,fitView:!0,defaultViewport:{x:0,y:0,zoom:1},minZoom:.5,maxZoom:2,defaultEdgeOptions:Zl})}function tc({open:e,handleChange:t,members:s}){const o=u.useMemo(()=>Tt(s??[]),[s]);return a.jsx(p.Modal,{showCancelButton:!1,showSuccessButton:!1,hideFooter:!0,isOpen:e,onClose:()=>t(!1),size:"xl",title:"Organigrama de equipo",children:a.jsx("div",{className:"tm-mx-auto tm-bg-surface-default",style:{width:"100%",height:"600px"},children:a.jsx(oe.ReactFlowProvider,{children:a.jsx(ec,{members:o})})})})}const pn="tm-grid tm-w-full tm-grid-cols-1 tm-items-baseline tm-gap-x-12 tm-gap-y-12 md:tm-grid-cols-2 lg:tm-grid-cols-3 lg:tm-gap-x-8 xl:tm-grid-cols-4",ac="tm-relative tm-block tm-overflow-hidden tm-rounded-md tm-bg-gray-200 tm-bg-gradient-to-r tm-from-gray-200 tm-via-gray-50 tm-to-gray-200 tm-bg-[length:200%_100%] tm-animate-skeleton-shimmer";function Ve({className:e="",rounded:t="md"}){const s=t==="full"?"tm-rounded-full":"tm-rounded-md";return a.jsx("span",{className:`${ac} ${s} ${e}`.trim(),"aria-hidden":!0})}function fn(){return a.jsx("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:Array.from({length:2},(e,t)=>a.jsx(Ve,{className:"tm-h-8 tm-w-8 tm-shrink-0",rounded:"full"},t))})}function sc(){const{user:e}=we(),t=(e==null?void 0:e.role)===da;return a.jsxs(p.Card,{className:"tm-w-full",children:[a.jsxs(p.Card.Header,{className:"tm-flex tm-items-center justify-between",children:[a.jsx("div",{className:"tm-flex tm-flex-col tm-justify-start tm-items-start tm-gap-y-2",children:a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[a.jsx(Ve,{className:"tm-h-2.5 tm-w-2.5 tm-shrink-0",rounded:"full"}),a.jsx(Ve,{className:"tm-h-8 tm-w-8 tm-shrink-0"}),a.jsx(Ve,{className:"tm-h-5 tm-min-h-[1.25rem] tm-w-40 tm-max-w-[min(100%,10rem)]"})]})}),a.jsx("div",{children:t?a.jsx(Ve,{className:"tm-h-8 tm-w-8 tm-shrink-0",rounded:"full"}):null})]}),a.jsx(p.Card.Separator,{}),a.jsxs(p.Card.Body,{scrollable:!1,children:[a.jsx(fn,{}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-4 tm-mt-2",children:[a.jsx(Ve,{className:"tm-h-4 tm-w-6"}),a.jsx(Ve,{className:"tm-h-4 tm-w-28"})]})]})]})}function nc({length:e}){const s=e??10;return a.jsx("div",{"aria-busy":"true","aria-live":"polite",className:pn,children:Array.from({length:s},(o,n)=>a.jsx(sc,{},n))})}function oc({members:e}){const{getImageOBP:t}=pe(),{users:s,isLoading:o}=rt();if(o)return a.jsx(fn,{});const n=e.filter(i=>{var r,l;return(l=s[(r=i.idUser)==null?void 0:r.email])==null?void 0:l.image}).slice(0,3);return a.jsx("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:a.jsx(p.Avatar,{maxVisible:2,stroke:!0,stack:n.map(i=>{var l;const r=s[(l=i.idUser)==null?void 0:l.email];return{src:t(r.image),name:r.name}}),size:"sm"})})}function rc({team:e}){const[t,s]=u.useState(!1),[o,n]=u.useState(!1),{user:i}=we(),[r,l]=u.useState(!1),{handleApiError:d}=on(),{deleteTeamHandler:c,isLoadingDeleteTeam:m}=nn(),f=async()=>{try{await c(e.id),p.toast.success("Equipo eliminado correctamente")}catch(h){p.toast.error(d(h))}};return a.jsxs(p.Card,{children:[t&&a.jsx(rn,{handleChange:s,open:t,team:e}),r&&a.jsx(tn,{isLoading:m,open:r,handleChange:l,onConfirm:f,contentLabel:"Estás eliminando el equipo seleccionado"}),o&&a.jsx(tc,{handleChange:n,open:o,members:e.miembros}),a.jsxs(p.Card.Header,{className:"tm-flex tm-items-center tm-justify-between tm-w-full",children:[a.jsx("div",{className:"tm-flex tm-flex-col tm-justify-start tm-items-start tm-gap-y-2",children:a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8 tm-justify-between tm-w-full",children:[a.jsx(p.Badge,{size:"dot",customColor:e.color,theme:"solid"}),a.jsx(p.Icon,{name:We.faPeopleGroup,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"md"}),a.jsx("h1",{className:"tm-py-0.5 tm-font-body-sm-bold tm-text-body-sm-bold tm-leading-none tm-text-primary",children:e.nombre})]})}),a.jsx("div",{children:(i==null?void 0:i.role)==da&&a.jsx(p.Popup,{size:"xs",color:"secondary",pill:"pill",icon:ne.faEllipsis,stopPropagationList:!0,children:a.jsxs(p.List,{className:"tm-gap-4",padding:"sm",children:[a.jsx(p.ListItem,{icon:ne.faPencil,onClick:()=>s(!0),children:"Editar"}),a.jsx(p.ListItem,{icon:ne.faEye,onClick:()=>n(!0),children:"Ver organigrama"}),a.jsx(p.ListItem,{color:"red",icon:ne.faTrash,onClick:()=>l(!0),children:"Eliminar"})]})})})]}),a.jsx(p.Card.Separator,{}),a.jsxs(p.Card.Body,{children:[a.jsx(oc,{members:e.miembros_planos}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-4 tm-mt-2",children:[a.jsx("p",{className:"tm-text-icon-all-colors-blue tm-text-xs tm-text-center tm-leading-none tm-font-semibold",children:e.integrantes||0}),a.jsxs("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:["Integrante",e.integrantes>1?"s":""]})]})]})]})}function ic({teams:e}){return a.jsx("div",{className:pn,children:e==null?void 0:e.map(t=>a.jsx(rc,{team:t},t.id))})}const lc="teams-container";function cc(){return a.jsx("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-2.5 md:tm-flex-nowrap",children:a.jsx(Rs,{path:lc})})}function gn(){var y,v,N,B,D;const[e,t]=u.useState(!1),[s,o]=u.useState(1),[n,i]=u.useState(10),{user:r}=we(),{debouncedSearch:l,filters:d}=zs("teams-container"),c=Array.isArray(d)?d:[];u.useEffect(()=>{o(1)},[l,d]);const{data:m,isLoading:f}=Ul({page:s,pageSize:n,search:l,filters:{nombre:"",createdAt:(y=c.find(C=>C.keyName==="createdAt"))==null?void 0:y.value,integrantes_min:(v=c.find(C=>C.keyName==="integrantes_min"))==null?void 0:v.value,integrantes_max:(N=c.find(C=>C.keyName==="integrantes_max"))==null?void 0:N.value}}),h=(m==null?void 0:m.data)||[],g=m==null?void 0:m.meta,b=((B=g==null?void 0:g.pagination)==null?void 0:B.pageCount)||0,w=((D=g==null?void 0:g.pagination)==null?void 0:D.total)||0,j=C=>{o(C)},x=C=>{i(C),o(1)};return a.jsxs("div",{className:"tm-grid tm-h-full tm-grid-rows-[auto,1fr] tm-gap-y-8",children:[e&&a.jsx(rn,{handleChange:t,open:e}),(r==null?void 0:r.role)===da&&a.jsx("div",{className:"tm-flex tm-items-center tm-justify-end",children:a.jsx(p.Button,{size:"xs",color:"primary",leftSlot:ne.faPlus,onClick:()=>t(!0),children:" Nuevo equipo "})}),a.jsx("div",{className:"custom-scrollbar",style:{scrollbarGutter:"stable",paddingRight:"4px"},children:h.length===0&&!f?a.jsx("div",{className:"flex tm-h-full tm-items-center tm-justify-center",children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-center tm-gap-y-6",children:[a.jsx("p",{className:"tm-text-3xl tm-font-bold",children:l?"No se encontraron equipos con ese nombre":"¡Parece que aún no has creado un equipo!"}),!l&&a.jsx(p.Button,{color:"primary",onClick:()=>t(!0),children:"¡Empieza ahora!"})]})}):f?a.jsx("div",{className:"tm-pb-16 tm-opacity-100 tm-transition tm-duration-300",children:a.jsx(nc,{length:n})}):a.jsx("div",{className:`tm-pb-16 ${f?"tm-opacity-0 tm-transition tm-duration-300":"tm-opacity-100 tm-transition tm-duration-300"}`,children:a.jsx(ic,{teams:h})})}),b>0&&a.jsx(p.Pagination,{currentPage:s,pageCount:b,pageSize:n,total:w,onPageChange:j,handlePageSize:x,showVisiblePages:!0,showPagesSelector:!0})]})}const dc=()=>({header:a.jsx(gc,{}),body:a.jsx(gn,{})}),mc={"templates-container":Ml,"teams-container":cc};function uc({path:e}){const t=e?mc[e]:null;return t?a.jsx(t,{}):null}function pc({path:e}){return e==="templates-container"?Cl():e==="teams-container"?dc():{header:null,body:null}}const fc=({startPath:e})=>{const{path:t,setPath:s}=Le(),{setCurrentPath:o}=vt();u.useEffect(()=>{s(e),o(e)},[e,s,o]);const{header:n,body:i}=pc({path:t});return a.jsxs(p.Card,{fullWidth:!0,className:"tm-h-full",children:[a.jsxs(p.Card.Header,{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-16 tm-justify-between",children:[n,a.jsx(uc,{path:t})]}),a.jsx(p.Card.Separator,{}),a.jsx(p.Card.Body,{fullHeight:!0,className:"tm-flex tm-flex-1 tm-flex-col tm-gap-y-4",children:i})]})},gc=()=>a.jsx(Bs,{title:"Equipos"}),hc=({path:e,tab:t,setPath:s,project:o,setProject:n})=>{const i={"kanban-general":{kanban:a.jsx(ni,{})},"teams-container":{teams:a.jsx(gn,{})},"lista-campanias":{lista:a.jsx(Io,{setPath:s,setProject:n}),gantt:a.jsx("div",{children:"gantt-campanias"})},"kanban-campania":{kanban:a.jsx(Qr,{}),lista:a.jsx(di,{}),gantt:a.jsx("div",{children:"kanban-campania-gantt"})},"templates-container":{templates:a.jsx(en,{})}};return e==="kanban-campania"?a.jsx(Xo,{project:o==null?void 0:o.id,children:i[e][t]}):i[e][t]},xc=({label:e,active:t,onClick:s,disabled:o})=>o?a.jsx(ke,{position:"bottom",trigger:a.jsx("button",{type:"button",className:"tm-cursor-help tm-text-xs tm-font-semibold tm-text-texts-placeholder",children:e}),children:a.jsx("div",{className:"tm-px-4 tm-py-2",children:a.jsx(p.Text,{children:"Espéralo muy pronto..."})})}):a.jsx("button",{type:"button",disabled:o,onClick:s,className:`${t?" tm-text-black-regular":""} tm-text-xs ${o?"tm-cursor-not-allowed tm-text-lg tm-text-black-regular":"tm-text-black-regular"}`,children:e}),bc=({tabs:e,renderItem:t,initialTab:s})=>{const[o,n]=u.useState(s??e[0].toLowerCase());u.useEffect(()=>{s&&n(s)},[s]);const i=r=>{n(r),t(r)};return a.jsx("div",{className:"tm-flex",children:e.map((r,l)=>a.jsx("div",{className:`${l===0?"tm-border-l-2":""} tm-border-r-2 tm-border-default tm-px-m`,children:a.jsx(xc,{onClick:()=>i(r.toLowerCase()),label:r,active:r.toLowerCase()===o,disabled:["gantt"].includes(r.toLowerCase())},l)}))})},yc=({path:e})=>{const t=()=>{const s=de.useQueryClient(),{selectPath:o,updateFilters:n,applyFilters:i,filters:r,fields:l}=De(),[d,c]=u.useState("kanban"),[m,f]=u.useState(e),[h,g]=u.useState({id:1704,project:"Kanban de Campania"}),[b,w]=u.useState([{path:"lista-campanias",search:(r==null?void 0:r.search)??""},{path:"kanban-campania",search:(r==null?void 0:r.taskName)??""},{path:"kanban-general",search:(r==null?void 0:r.taskName)??""},{path:"teams-container",search:(r==null?void 0:r.taskName)??""},{path:"templates-container",search:(r==null?void 0:r.taskName)??""}]),[j,x]=u.useState();u.useEffect(()=>{var E;c(m==="lista-campanias"?"lista":m==="kanban-campania"?"kanban":m==="teams-container"?"teams":m==="templates-container"?"templates":"kanban"),o(m),x(((E=b.find(X=>X.path===m))==null?void 0:E.search)??"")},[e,m]),u.useEffect(()=>{var X;((X=D())==null?void 0:X.trim())===""&&n({name:m==="lista-campanias"||m==="teams-container"||m==="templates-container"?"search":"taskName",value:null}),(!(m==="kanban-general"||m==="kanban-campania")||l.length>0)&&i()},[b,m,l.length]);const y=E=>({"kanban-general":"Kanban General","lista-campanias":"Campanias","teams-container":"Equipos","kanban-campania":`Kanban de ${h.project}`,"templates-container":"Flujos de trabajo"})[E],v=E=>{f(E)},N=["lista-campanias","kanban-campania"],B={"lista-campanias":["lista","gantt"],"kanban-campania":["kanban","lista","gantt"],"teams-container":["teams"],"templates-container":["templates"]},D=()=>{var E;return((E=b.find(X=>X.path===m))==null?void 0:E.search)??""},C=()=>{m==="kanban-general"?Ur(s):m==="kanban-campania"&&Hr(s)},M=E=>{w(X=>X.map(U=>U.path===m?{...U,search:E}:U))};return u.useEffect(()=>{const E=setTimeout(()=>{n({name:m==="lista-campanias"||m==="teams-container"||m==="templates-container"?"search":"taskName",value:j==null?void 0:j.trim()}),M(j)},500);return()=>{clearTimeout(E)}},[j]),a.jsxs("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-flex-col tm-gap-m tm-overflow-hidden tm-rounded-lg tm-border tm-border-default tm-bg-surface-default tm-p-m",children:[a.jsxs("div",{className:"tm-flex tm-w-full tm-flex-wrap tm-items-end tm-justify-between tm-gap-l tm-border-b tm-border-default tm-pb-m",children:[a.jsxs("div",{className:"tm-flex tm-gap-xl tm-items-center",children:[m==="kanban-campania"&&a.jsx(p.Button,{icon:ne.faArrowLeft,onClick:()=>v("lista-campanias"),color:"secondary",pill:"pill",size:"xxs"}),a.jsx(p.Text,{size:"lg",weight:"medium",color:"primary",children:y(m)}),N.includes(m)&&a.jsx(bc,{tabs:B[m],renderItem:E=>{c(E)},initialTab:d})]}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-s !tm-text-[16px]",children:[a.jsx(p.Input,{leftSlot:le.faSearch,onChange:E=>{x(E.target.value)},placeholder:`Buscar por ${m==="lista-campanias"?"campaña":"campaña / tarea"}`,value:j,fullWidth:!0,className:"tm-min-w-[280px]"}),l.length>0&&a.jsx(Fo,{children:a.jsx(Bo,{})}),(m==="kanban-general"||m==="kanban-campania")&&a.jsx(p.Button,{icon:ne.faRotate,onClick:C,color:"secondary",pill:"pill",size:"xs"})]})]}),a.jsx("div",{className:"tm-h-full tm-max-h-[100%] tm-overflow-y-auto tm-scrollbar-none",children:a.jsx(hc,{path:m,tab:d,setPath:v,project:h,setProject:g})})]})};return a.jsx(Sn,{children:a.jsx(t,{})})},jc=({path:e})=>["templates-container","teams-container"].includes(e)?a.jsx(fc,{startPath:e}):a.jsx(yc,{path:e}),wc=()=>a.jsx("div",{className:"tm-relative tm-h-full tm-min-h-[100%] tm-w-full",children:a.jsx("div",{className:"tm-flex tm-h-full tm-items-center tm-justify-center",children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-text-2xl tm-font-bold",children:[a.jsx("div",{className:"tm-h-10 tm-w-10 tm-animate-pulse tm-rounded-full tm-bg-primary-regular"}),a.jsx("p",{className:"tm-text-l tm-text-texts-enfasis",children:"No encontramos tu acceso"}),a.jsx("p",{className:"tm-text-sm tm-text-texts-placeholder",children:"por favor, contacta al administrador"})]})})}),vc=()=>a.jsx("div",{className:"tm-relative tm-h-full tm-min-h-[100%] tm-w-full",children:a.jsx("div",{className:"tm-flex tm-h-full tm-items-center tm-justify-center",children:a.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-text-2xl tm-font-bold",children:[a.jsx("div",{className:"tm-h-10 tm-w-10 tm-animate-pulse tm-rounded-full tm-bg-primary-regular"}),a.jsx("p",{className:"tm-text-l tm-text-texts-enfasis",children:"un momento..."}),a.jsx("p",{className:"tm-text-sm tm-text-texts-placeholder",children:"estamos buscando tu usuario"})]})})}),_c=({path:e,user:t,url:s,mode:o})=>{const n=new de.QueryClient;if(!t)return a.jsx(vc,{});if(!t.accessToken)return a.jsx(wc,{});const i={user:t,url:s,mode:o};return a.jsxs(bi,{children:[a.jsx(p.Messaging,{}),a.jsx(An,{...i,children:a.jsx(En,{...i,children:a.jsx("div",{className:"tm-relative tm-h-full tm-min-h-[100%] tm-w-full",children:a.jsxs(de.QueryClientProvider,{client:n,children:[a.jsx(jc,{path:e})," "]})})})})]})};exports.AppTasks=_c;